From 3c9651a09703ec4baf2738b72d91d8fd823c0cb4 Mon Sep 17 00:00:00 2001 From: KholdFuzion Date: Sat, 29 Oct 2022 10:41:01 -0400 Subject: [PATCH] Figure its time to update this again --- .github/workflows/EU.yml | 2 +- .github/workflows/JPN.yml | 7 +- .github/workflows/main.yml | 49 +- .gitignore | 116 +- Makefile | 122 +- .../player_gait_object/modelnode.inc.c | 8 +- assets/images.def | 4 +- assets/obseg/prop/alarm1/Model.c | 6 +- assets/ramrom/ramrom.s | 154 +- bin/aspboot.data.bin | Bin 704 -> 0 bytes bin/aspboot.text.bin | Bin 3520 -> 0 bytes bin/gspboot.data.bin | Bin 2048 -> 0 bytes bin/gspboot.text.bin | Bin 5152 -> 0 bytes bin/rspboot.text.bin | Bin 208 -> 0 bytes build/test.c | 1001 +- extract_asp_gsp_rsp.sh | 157 + extract_baserom.u.sh | 2 + ge007.d.ld | 4346 ------ ge007.e-test_basis.csv | 10 +- ge007.e.ld | 4445 ------ ge007.j-test_basis.csv | 10 +- ge007.j.ld | 4345 ------ ge007.ld | 4211 +----- ge007.u-test_basis.csv | 10 +- ge007.u.ld | 4346 ------ imagelist.u.csv | 5398 ++++---- include/CPPLib.h | 28 +- include/gbi_extension.h | 56 + ld/game.bss.ld.inc | 133 + ld/game.data.ld.inc | 133 + ld/game.rodata.ld.inc | 133 + ld/game.text.ld.inc | 133 + ld/images.ld.inc | 2699 ++++ ld/lib.bss.ld.inc | 252 + ld/lib.data.ld.inc | 256 + ld/lib.rodata.ld.inc | 254 + ld/lib.text.ld.inc | 253 + src/aicommands.def | 24 +- src/audi.c | 4 +- src/bondconstants.h | 88 +- src/bondtypes.h | 538 +- src/boss.c | 6 +- src/{fault.c => crash.c} | 436 +- src/{deb_print.h => crash.h} | 17 +- src/deb.c | 10 +- src/deb_print.c | 348 - src/debugmenu.c | 32 +- src/debugmenu.h | 7 + src/fault.h | 9 - src/fr.c | 30 +- src/game/alloc_window_pieces.c | 2 +- src/game/bg.c | 814 +- src/game/bg.h | 31 +- src/game/blood_animation.c | 32 +- src/game/blood_animation.h | 2 +- src/game/bondhead.c | 147 +- src/game/bondhead.h | 4 +- src/game/bondinv.h | 2 + src/game/bondview.c | 3980 ++---- src/game/bondview.h | 352 +- src/game/bondview_r.c | 26 +- src/game/bondwalk2.c | 693 +- src/game/cheat_buttons.c | 8 +- src/game/chr.c | 466 +- src/game/chr.h | 7 +- src/game/chr_b.c | 4 +- src/game/chrai.c | 131 +- src/game/chrai.h | 45 +- src/game/chrlv.c | 161 +- src/game/chrlv.h | 39 +- src/game/chrobjdata.h | 8 +- src/game/chrobjhandler.c | 2621 ++-- src/game/chrobjhandler.h | 4 +- src/game/chrprop.c | 1260 +- src/game/cleanup_objects.c | 6 +- src/game/cleanwindowpieces.c | 2 +- src/game/compiletime.c | 26 +- src/game/deb_loadallmodels.c | 470 +- src/game/deb_loadallmodels.h | 16 + src/game/debugmenu_handler.c | 2 +- src/game/decompress.c | 2 +- src/game/decompress.h | 2 +- src/game/ejectedcartridges.c | 74 +- src/game/ejectedcartridges.h | 2 +- src/game/explosions.c | 2180 +-- src/game/explosions.h | 98 +- src/game/file.c | 59 - src/game/file2.c | 81 +- src/game/file2.h | 17 +- src/game/front.c | 2248 ++-- src/game/front.h | 55 +- src/game/gun.c | 10227 ++------------ src/game/gun.h | 86 +- src/game/image.c | 8354 +++--------- src/game/image.h | 95 +- src/game/image_bank.c | 465 +- src/game/image_bank.h | 8 +- src/game/indy_commands.c | 38 +- src/game/indy_commands.h | 20 + src/game/initBondDATA.c | 12 +- src/game/initBondDATAdefaults.c | 22 +- src/game/initactorpropstuff.c | 69 +- src/game/initactorpropstuff.h | 25 + src/game/initanitable.c | 27 +- src/game/initanitable.h | 1 - src/game/initexplosioncasing.c | 13 +- src/game/initgamedata.c | 4 +- src/game/initimages.c | 20 +- src/game/initmenus.c | 20 +- src/game/initmttex.c | 4 +- src/game/initobjects.c | 2 +- src/game/initpathtablelinks.c | 4 +- src/game/initunk_0009E0.c | 5 +- src/game/lightfixture.c | 1678 +-- src/game/lightfixture.h | 9 +- src/game/loadobjectmodel.c | 24 +- src/game/loadobjectmodel.h | 2 + src/game/lvl.c | 54 +- src/game/lvl_text.c | 14 +- src/game/matrixmath.c | 325 +- src/game/matrixmath.h | 9 +- src/game/mp_music.h | 1 + src/game/mp_watch.c | 2740 +--- src/game/mp_watch.h | 23 +- src/game/ob.c | 427 +- src/game/ob.h | 39 +- src/game/objecthandler.c | 255 +- src/game/objecthandler.h | 33 +- src/game/objecthandler_1.c | 11129 ++++------------ src/game/objecthandler_2.c | 14 +- src/game/objective_status.c | 134 +- src/game/objective_status2.c | 127 +- src/game/othermodemicrocode.c | 900 +- src/game/padhalllv.c | 1860 +-- src/game/padhalllv.h | 2 +- src/game/player.c | 9556 ++++--------- src/game/player.h | 18 +- src/game/player_2.c | 3297 +---- src/game/player_2.h | 2 + src/game/prop.c | 378 +- src/game/ramromreplay.c | 32 +- src/game/spectrum.c | 8 +- src/game/stan.c | 510 +- src/game/stan.h | 2 +- src/game/textrelated.c | 58 +- src/game/textrelated.h | 1 + src/game/title.c | 49 +- src/game/unk_091080.c | 2 +- src/game/unk_092E50.c | 111 +- src/game/unk_092E50.h | 3 +- src/game/unk_09B7A0.c | 6 +- src/game/unk_0A1DA0.c | 1151 +- src/game/unk_0A1DA0.h | 22 +- src/game/unk_0B3200.c | 622 +- src/game/unk_0CC4C0.c | 1126 +- src/game/unk_0CC4C0.h | 2 +- src/game/watch.c | 147 +- src/init.c | 18 +- src/libultra/io/pirawwrite.c | 10 + src/libultra/io/piwrite.c | 12 + src/libultrare/Makefile.libultrare | 2 + src/memp.c | 154 +- src/memp.h | 34 +- src/rmon.c | 233 +- src/rmon.h | 2 +- src/sched.c | 8 +- src/speed_graph.c | 16 +- src/thread_config.h | 4 + src/token.c | 2 +- src/usb.c | 1610 +++ src/usb.h | 126 + test_files.sh | 2 +- tools/ge-stats.py | 15 +- tools/mktex/.gitignore | 1 + tools/mktex/Makefile | 13 + tools/mktex/README.md | 29 + tools/mktex/src/libpdtex/pdtex.c | 163 + tools/mktex/src/libpdtex/pdtex.h | 61 + tools/mktex/src/libpdtex/reader.c | 877 ++ tools/mktex/src/libpdtex/writer.c | 10 + tools/mktex/src/tex2png.c | 276 + 181 files changed, 29557 insertions(+), 81351 deletions(-) delete mode 100644 bin/aspboot.data.bin delete mode 100644 bin/aspboot.text.bin delete mode 100644 bin/gspboot.data.bin delete mode 100644 bin/gspboot.text.bin delete mode 100644 bin/rspboot.text.bin create mode 100755 extract_asp_gsp_rsp.sh delete mode 100644 ge007.d.ld delete mode 100644 ge007.e.ld delete mode 100644 ge007.j.ld delete mode 100644 ge007.u.ld create mode 100644 ld/game.bss.ld.inc create mode 100644 ld/game.data.ld.inc create mode 100644 ld/game.rodata.ld.inc create mode 100644 ld/game.text.ld.inc create mode 100644 ld/images.ld.inc create mode 100644 ld/lib.bss.ld.inc create mode 100644 ld/lib.data.ld.inc create mode 100644 ld/lib.rodata.ld.inc create mode 100644 ld/lib.text.ld.inc rename src/{fault.c => crash.c} (56%) rename src/{deb_print.h => crash.h} (55%) delete mode 100644 src/deb_print.c delete mode 100644 src/fault.h create mode 100644 src/libultra/io/pirawwrite.c create mode 100644 src/libultra/io/piwrite.c create mode 100644 src/usb.c create mode 100644 src/usb.h create mode 100644 tools/mktex/.gitignore create mode 100644 tools/mktex/Makefile create mode 100644 tools/mktex/README.md create mode 100644 tools/mktex/src/libpdtex/pdtex.c create mode 100644 tools/mktex/src/libpdtex/pdtex.h create mode 100644 tools/mktex/src/libpdtex/reader.c create mode 100644 tools/mktex/src/libpdtex/writer.c create mode 100644 tools/mktex/src/tex2png.c diff --git a/.github/workflows/EU.yml b/.github/workflows/EU.yml index 43b362cc..6b474305 100644 --- a/.github/workflows/EU.yml +++ b/.github/workflows/EU.yml @@ -54,7 +54,7 @@ jobs: run: ./extract_diff.e.sh - name: Make EU - run: make -j IDO_RECOMP=YES VERSION=EU + run: make -j IDO_RECOMP=YES VERSION=EU VERBOSE=1 - name: Make report run: make -C tools/report diff --git a/.github/workflows/JPN.yml b/.github/workflows/JPN.yml index c52395c1..ae699105 100644 --- a/.github/workflows/JPN.yml +++ b/.github/workflows/JPN.yml @@ -54,7 +54,7 @@ jobs: run: ./extract_diff.j.sh - name: Make JP - run: make -j IDO_RECOMP=YES VERSION=JP + run: make -j IDO_RECOMP=YES VERSION=JP VERBOSE=1 - name: Make report run: make -C tools/report @@ -64,7 +64,7 @@ jobs: - name: Upload output files - uses: dmnemec/copy_file_to_another_repo_action@v1.0.4 + uses: dmnemec/copy_file_to_another_repo_action@main env: API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} @@ -75,7 +75,6 @@ jobs: destination_repo: 'kholdfuzion/goldeneyestatus' user_email: $API_TOKEN_EMAIL user_name: $API_TOKEN_USER - source_file: | - tools/report/JPN.htm + 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 8304eb67..9eb5bd28 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,13 +17,29 @@ on: workflow_dispatch: jobs: + changedfiles: + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + all: ${{ steps.changes.outputs.all}} + steps: + # Make sure we have some code to diff. + - name: Checkout repository + uses: actions/checkout@v2 + - name: Get changed files + id: changes + # Set outputs using the command. + run: | + echo "::set-output name=all::$(git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | xargs)" + buildus: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - + # with: + # fetch-depth: 2 - name: Install Depedencies run: | sudo apt update @@ -43,19 +59,40 @@ jobs: FILE_US: ${{ secrets.SECRET_FILE_US }} run: wget -O baserom.u.z64 $FILE_US + # cach is only usefull if downloading things takes longer than copying things - in this case, extraction is quicker + #- name: Cache Assets + # id: cache-assets + # uses: actions/cache@v3 + # with: + # path: assets + # key: ${{ hashFiles('extract_baserom.u.sh') }} + - name: Extract US Assets + #if: steps.cache-assets.outputs.cache-hit != 'true' run: ./extract_baserom.u.sh - name: Make US - run: make -j IDO_RECOMP=YES VERSION=US + run: make -j IDO_RECOMP=YES VERSION=US VERBOSE=1 - name: Make report run: make -C tools/report - + + # for refrence, these diff commands wont work in GHA, so, "Last modified file" will never work + # GHA makes new copies of all files (so modified date is all the same) and wont lok at logs (commands below) + #- name: difftest1 + # run: git diff --name-only origin/master ${GITHUB_HEAD_REF} + + #- name: difftest2 + # run: git diff --name-only ${{ github.event.before }} ${{ github.sha }} + + #- name: difftest3 + # run: git diff --name-only -1 + + #- name: difftest4 + # run: git diff --name-only @"{10 minutes ago}" + - name: Stats - run: python3 tools/ge-stats.py --version us --report - #git diff HEAD^ HEAD --name-only - + run: python3 tools/ge-stats.py --version us --report # expected args # 1481 15854 12774 232276 564 1312 652 20330 15471 269772 49 336 tools/report/index.html "src/game/bondview.c" diff --git a/.gitignore b/.gitignore index 78904ecf..222801f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ +#Git and VS files .*~ __pycache__/* .vscode/ +.[vV][sS]/ + *.rz *.tmp *.o @@ -8,10 +11,14 @@ branchdiff.sh branchdiff_report.txt *.dump *.cdata* +/StructLayoutSettings.json +# rom files *.[zZnN]64 -.[vV][sS]/ + 021990.bin 0219D0.bin + +# Assets assets/animationtable_data.bin assets/animationtable_entries.bin assets/font/*.bin @@ -27,7 +34,11 @@ assets/ge007.u.117880.jfont_dl.bin assets/ge007.u.117940.jfont_chardata.bin assets/ge007.u.123040.efont_chardata.bin assets/ge007.u.29E560.Globalimagetable_commandblock.bin +#images assets/images/split/*.bin* +assets/images/out/* +assets/images/split/png/* +#music assets/music/*.bin assets/music/*.ctl assets/music/*.tbl @@ -35,6 +46,7 @@ assets/music/*.sbk assets/music/*.seq assets/music/*.aifc assets/music/*.aiff +#obseg assets/obseg/bg/*.bin assets/obseg/bg/e/*.bin assets/obseg/chr/*.bin @@ -46,13 +58,17 @@ assets/obseg/setup/[eju]/*.bin assets/obseg/stan/*.bin assets/obseg/text/*.bin assets/obseg/text/[eju]/*.bin +assets/obseg/text/[eju]/*.c assets/ramrom/*.bin assets/ramrom/[eju]/*.bin +# bin is required, but lets prevent accidental deletion +bin/* build/* build-*/* notes/* !build/test.c !notes/StyleGuide.md +#tools tools/extractor/*.o tools/extractor/extractor tools/aaa_rip/main.o @@ -62,94 +78,18 @@ tools/armips tools/gzipsrc/gzip tools/gzipsrc/*.o tools/report/report -/StructLayoutSettings.json - - - -assets/obseg/text/e/LameP.c -assets/obseg/text/e/LarchP.c -assets/obseg/text/e/LarecE.c -assets/obseg/text/e/LarecJ.c -assets/obseg/text/e/LarecP.c -assets/obseg/text/e/LarkE.c -assets/obseg/text/e/LarkJ.c -assets/obseg/text/e/LarkP.c -assets/obseg/text/e/LashP.c -assets/obseg/text/e/LaztP.c -assets/obseg/text/e/LcatP.c -assets/obseg/text/e/LcaveP.c -assets/obseg/text/e/LcradE.c -assets/obseg/text/e/LcradJ.c -assets/obseg/text/e/LcradP.c -assets/obseg/text/e/LcrypE.c -assets/obseg/text/e/LcrypJ.c -assets/obseg/text/e/LcrypP.c -assets/obseg/text/e/LdamE.c -assets/obseg/text/e/LdamJ.c -assets/obseg/text/e/LdamP.c -assets/obseg/text/e/LdepoE.c -assets/obseg/text/e/LdepoJ.c -assets/obseg/text/e/LdepoP.c -assets/obseg/text/e/LdestP.c -assets/obseg/text/e/LdishP.c -assets/obseg/text/e/LearP.c -assets/obseg/text/e/LeldP.c -assets/obseg/text/e/LgunE.c -assets/obseg/text/e/LgunJ.c -assets/obseg/text/e/LgunP.c -assets/obseg/text/e/LimpP.c -assets/obseg/text/e/LjunE.c -assets/obseg/text/e/LjunJ.c -assets/obseg/text/e/LjunP.c -assets/obseg/text/e/LleeP.c -assets/obseg/text/e/LlenE.c -assets/obseg/text/e/LlenJ.c -assets/obseg/text/e/LlenP.c -assets/obseg/text/e/LlipP.c -assets/obseg/text/e/LlueP.c -assets/obseg/text/e/LmiscP.c -assets/obseg/text/e/LmpmenuE.c -assets/obseg/text/e/LmpmenuJ.c -assets/obseg/text/e/LmpmenuP.c -assets/obseg/text/e/LmpweaponsE.c -assets/obseg/text/e/LmpweaponsJ.c -assets/obseg/text/e/LmpweaponsP.c -assets/obseg/text/e/LoatP.c -assets/obseg/text/e/LoptionsE.c -assets/obseg/text/e/LoptionsJ.c -assets/obseg/text/e/LoptionsP.c -assets/obseg/text/e/LpamP.c -assets/obseg/text/e/LpeteE.c -assets/obseg/text/e/LpeteJ.c -assets/obseg/text/e/LpeteP.c -assets/obseg/text/e/LpropobjE.c -assets/obseg/text/e/LpropobjJ.c -assets/obseg/text/e/LpropobjP.c -assets/obseg/text/e/LrefP.c -assets/obseg/text/e/LritP.c -assets/obseg/text/e/LrunP.c -assets/obseg/text/e/LsevbP.c -assets/obseg/text/e/LsevE.c -assets/obseg/text/e/LsevJ.c -assets/obseg/text/e/LsevP.c -assets/obseg/text/e/LsevxbP.c -assets/obseg/text/e/LsevxE.c -assets/obseg/text/e/LsevxJ.c -assets/obseg/text/e/LsevxP.c -assets/obseg/text/e/LshoP.c -assets/obseg/text/e/LsiloE.c -assets/obseg/text/e/LsiloJ.c -assets/obseg/text/e/LsiloP.c -assets/obseg/text/e/LstatP.c -assets/obseg/text/e/LtitleE.c -assets/obseg/text/e/LtitleJ.c -assets/obseg/text/e/LtitleP.c -assets/obseg/text/e/LtraE.c -assets/obseg/text/e/LtraJ.c -assets/obseg/text/e/LtraP.c -assets/obseg/text/e/LwaxP.c tools/report/index.html tools/report/JPN.htm tools/gaudio/* bondtypes_AI.h -baserom* +acpp_c.c +as1_c.c +cc_c.c +cfe_c.c +copt_c.c +ugen_c.c +ujoin_c.c +uld_c.c +umerge_c.c +uopt_c.c +usplit_c.c diff --git a/Makefile b/Makefile index fce1c3a7..cfce136f 100644 --- a/Makefile +++ b/Makefile @@ -68,6 +68,15 @@ BG_VIOLET:= 105 BG_CYAN:= 106 BG_WHITE:= 107 +# define a "newline" variable to be used in make scripts +# use with ${\n} +# https://stackoverflow.com/questions/12528637/how-do-i-execute-each-command-in-a-list +define \n + + +endef +#end newline. + ### Build Functions ### # Common build print status function PRINT_STATUS = @echo "$(call SET_TEXTATTRIB,$(FG_GREEN))$(1) $(call SET_TEXTATTRIB,$(FG_OLIVE))$(2)$(call SET_TEXTATTRIB,$(FG_GRAY)) $(if $3, -> $(call SET_TEXTATTRIB,$(FG_NAVY))$(3))$(RESTORECOLOUR)" @@ -201,33 +210,52 @@ endif ifeq ($(VERSION), US) COUNTRYCODE := u OUTCODE := $(COUNTRYCODE) - LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 - ASMDEFS := --defsym VERSION_US=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 + LANG := US + LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DBYTEMATCH + ASMDEFS := --defsym VERSION_US=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 --defsym BYTEMATCH=1 + LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE) endif ifeq ($(VERSION), EU) COUNTRYCODE := e OUTCODE := $(COUNTRYCODE) - LCDEFS := -DVERSION_EU -DLANG_EU -DREFRESH_PAL -DBUGFIX_R1 -DBUGFIX_R2 - ASMDEFS := --defsym VERSION_EU=1 --defsym LANG_EU=1 --defsym REFRESH_PAL=1 --defsym BUGFIX_R1=1 --defsym BUGFIX_R2=1 + LANG := EU + LCDEFS := -DVERSION_EU -DLANG_EU -DREFRESH_PAL -DBUGFIX_R1 -DBUGFIX_R2 -DBYTEMATCH + ASMDEFS := --defsym VERSION_EU=1 --defsym LANG_EU=1 --defsym REFRESH_PAL=1 --defsym BUGFIX_R1=1 --defsym BUGFIX_R2=1 --defsym BYTEMATCH=1 + LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE) endif ifeq ($(VERSION), JP) COUNTRYCODE := j OUTCODE := $(COUNTRYCODE) - LCDEFS := -DVERSION_JP -DLANG_JP -DREFRESH_NTSC -DBUGFIX_R1 -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM - ASMDEFS := --defsym VERSION_JP=1 --defsym LANG_JP=1 --defsym REFRESH_NTSC=1 --defsym BUGFIX_R1=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 + LANG := JP + LCDEFS := -DVERSION_JP -DLANG_JP -DREFRESH_NTSC -DBUGFIX_R1 -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBYTEMATCH + ASMDEFS := --defsym VERSION_JP=1 --defsym LANG_JP=1 --defsym REFRESH_NTSC=1 --defsym BUGFIX_R1=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BYTEMATCH=1 + LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE) endif ifeq ($(VERSION), DEBUG) COUNTRYCODE := u OUTCODE := d - LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DDEBUGMENU + LANG := US + LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DDEBUGMENU -DVERSION_DEBUG ASMDEFS := --defsym VERSION_DEBUG=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 --defsym DEBUGMENU=1 COMPARE := 0 + LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE) endif -ALLOWED_VERSIONS := US EU JP DEBUG +ifeq ($(VERSION), USB) + COUNTRYCODE := u + OUTCODE := usb + LANG := US + LCDEFS := -DVERSION_US -DLANG_US -DREFRESH_NTSC -DLEFTOVERDEBUG -DLEFTOVERSPECTRUM -DBUGFIX_R0 -DDEBUGMENU -DENABLE_USB + ASMDEFS := --defsym VERSION_US=1 --defsym LANG_US=1 --defsym REFRESH_NTSC=1 --defsym LEFTOVERDEBUG=1 --defsym LEFTOVERSPECTRUM=1 --defsym BUGFIX_R0=1 --defsym DEBUGMENU=1 --defsym ENABLE_USB=1 + COMPARE := 0 + LDFILEOPTS := -DVERSION_$(LANG) -DOUTCODE=$(OUTCODE) -DENABLE_USB +endif + +ALLOWED_VERSIONS := US EU JP DEBUG USB +ALLOWED_COUNTRYCODE := u e j BUILD_DIR_BASE := build # BUILD_DIR is the location where all build artifacts are placed @@ -312,7 +340,8 @@ INCLUDE := -I . -I include -I include/ultra64 -I include/PR -I src -I src/game - # 712 : illegal combination of pointer and integer - could be fixed by casting, but implicit is fine. # 807 : member cannot be of function or incomplete type - Variable length structs # 838 : Microsoft extension (unnamed structs) - used for "Inheritance" and member/array call swapping -WOFF := -woff 609,649,709,712,807,838 +# 763 : Max Float +WOFF := -woff 609,649,709,712,807,838,763 ifeq ($(IDO_RECOMP), NO) CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc @@ -323,7 +352,7 @@ endif CFLAGS := -Wab,-r4300_mul -non_shared -Olimit 2000 -G 0 -Xcpluscomm $(CFLAGWARNING) $(WOFF) -signed $(INCLUDE) $(MIPSISET) $(LCDEFS) -DTARGET_N64 LD := $(TOOLCHAIN)ld -LD_SCRIPT := ge007.$(OUTCODE).ld +LD_SCRIPT := build/ge007.$(OUTCODE).ld # --no-warn-mismatch is needed to link -mips3 object files (some libultra math) with the regular files compiled with -mips2 LDFLAGS := -T $(LD_SCRIPT) -Map build/ge007.$(OUTCODE).map --no-warn-mismatch @@ -374,7 +403,7 @@ endif $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \ $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) -ifeq ($(filter clean dataclean help codeclean context cmdbuilder test stanclean setupclean colour print-%,$(MAKECMDGOALS)),) +ifeq ($(filter clean nuke dataclean help codeclean context cmdbuilder test stanclean setupclean colour print-%,$(MAKECMDGOALS)),) # Dont print version on "default" since it will be spat out twice ifneq ($(filter $(VERSION),$(ALLOWED_VERSIONS)),) #$(info VERSION=$(VERSION)) @@ -472,9 +501,10 @@ endif # $(CC) -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm $(CFLAGWARNING) -woff 819,820,852,821,838,649 -signed $(INCLUDE) $(MIPSISET) $(LCDEFS) -DTARGET_N64 $(OPTIMIZATION) -o $@ $< #Link Files -$(APPELF): $(RSPOBJECTS) $(ULTRAOBJECTS) $(HEADEROBJECTS) $(OBSEG_RZ) $(BUILD_DIR)/$(OBSEGMENT) $(MUSIC_RZ_FILES) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(ROMOBJECTS) $(ASSET_DATAOBJECTS) $(ROMOBJECTS2) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(OBSEG_OBJECTS) pb14 +$(APPELF): $(RSPOBJECTS) $(ULTRAOBJECTS) $(HEADEROBJECTS) $(OBSEG_RZ) $(BUILD_DIR)/$(OBSEGMENT) $(MUSIC_RZ_FILES) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(ROMOBJECTS) $(ASSET_DATAOBJECTS) $(ROMOBJECTS2) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(OBSEG_OBJECTS) pb14 ge007.ld + cpp $(LDFILEOPTS) -P ge007.ld -o build/ge007.$(OUTCODE).ld @echo "Linking Files into ELF" - $(LD) $(LDFLAGS) -o $@ & $(call IncrementProgressBarFromAtRate,87,1.5) + $(LD) $(LDFLAGS) -o $@ $(APPBIN): $(APPELF) ifeq ($(VERBOSE),0) @@ -523,8 +553,8 @@ ifeq ($(VERBOSE),1) $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(RSPOBJECTS) else @clear - $(call SetupProgressBar) - @echo "\n\nDeleting All Code Binaries Only [Assets will be left from previous compile]" + @$(call SetupProgressBar) + @echo "\n\n\nDeleting All Code Binaries Only [Assets will be left from previous compile]" @rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map @$(call DrawProgressBar,50) @rm -f $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) $(RSPOBJECTS) @@ -537,28 +567,46 @@ dataclean: $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) \ $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES) -clean: +# "Conditionals control what 'make' actually "sees" in the makefile, so they cannot be used to control recipes at the time of execution." +# https://www.gnu.org/software/make/manual/html_node/Conditionals.html ifeq ($(VERBOSE),1) +clean:: + # if this command is modified, make sure to update this in the `nuke` recipe. rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map \ $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \ $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) \ $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES) else +clean:: @clear - @echo "\n\nDeleting All Code and Asset Binaries" - $(call SetupProgressBar) - @$(call DrawProgressBar,0) - @rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map - @$(call DrawProgressBar,1,4) - @rm -f $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) - @$(call DrawProgressBar,2,4) - @rm -f $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) - @$(call DrawProgressBar,3,4) - @rm -f $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES) - @$(call DrawProgressBar,100) -endif - @echo "\033[1J$(RESTORESCROLLREGION)\nAll Code and Asset Binaries Cleared! Make will Re-Build these next time.\n" + @echo "\n\n\nDeleting All Code and Asset Binaries" + @$(call SetupProgressBar) + @rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map & $(call IncrementProgressBarFromAtRate,0,0.125) + @rm -f $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) & $(call IncrementProgressBarFromAtRate,25,0.125) + @rm -f $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) & $(call IncrementProgressBarFromAtRate,50,0.125) + @rm -f $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES)& $(call IncrementProgressBarFromAtRate,75,0.125) + @$(call DrawProgressBar,100) + @echo "\033[1J$(RESTORESCROLLREGION)\nAll Code and Asset Binaries Cleared! Make will Re-Build these next time.\n" +endif + +nuke: + @echo deleting files specified from make clean ... + @# if this command is modified, update the `clean` recipe above. + rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(OUTCODE).map \ + $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \ + $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONTOBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) $(RSPOBJECTS) \ + $(STAN_BUILD_FILES) $(SETUP_BUILD_FILES) + @echo + @echo make: deleting build folders and files + $(foreach x,$(ALLOWED_COUNTRYCODE),rm -r -f -d "$(BUILD_DIR_BASE)/$(x)/"${\n}) + @echo + @echo make: deleting bin / rsp / asp + rm -r -f -d "bin/" + @echo + @echo make: deleting assets + rm -r -f -d "assets/images/split/" + rm -r -f "assets/music/*.bin" "assets/obseg/bg/*.bin" "assets/obseg/brief/*.bin" "assets/obseg/chr/*.bin" "assets/obseg/gun/*.bin" "assets/obseg/prop/*.bin" "assets/obseg/setup/*.bin" "assets/obseg/setup/e/*.bin" "assets/obseg/setup/u/*.bin" "assets/obseg/setup/j/*.bin" "assets/obseg/stan/*.bin" "assets/obseg/text/*.bin" "assets/obseg/text/e/*.bin" "assets/obseg/text/u/*.bin" "assets/obseg/text/j/*.bin" "assets/ramrom/*.bin" "assets/ramrom/e/*.bin" "assets/ramrom/u/*.bin" "assets/ramrom/j/*.bin" # 0 4 35 80 80(with colour codes) help: @@ -567,7 +615,10 @@ help: @echo " supported targets:" @echo "" @echo " all $(call SET_TEXTATTRIB,$(FG_LIME)) Build$(RESTORECOLOUR) all (default)" - @echo " clean $(call SET_TEXTATTRIB,$(FG_RED)) Delete all$(RESTORECOLOUR) build artifacts" + @echo " clean $(call SET_TEXTATTRIB,$(FG_RED)) Delete all$(RESTORECOLOUR) known build artifacts" + @echo " nuke $(call SET_TEXTATTRIB,$(FG_RED)) Delete all$(RESTORECOLOUR) files explicitly listed in Makefile (same as make clean)," + @echo " all build output for all versions, any .bin file in assets folders," + @echo " and asp/rsp bin." @echo " dataclean $(call SET_TEXTATTRIB,$(FG_RED)) Delete$(RESTORECOLOUR) only asset build artifacts" @echo " codeclean $(call SET_TEXTATTRIB,$(FG_RED)) Delete$(RESTORECOLOUR) only code (asm, .c) build artifacts" @echo " libultraclean $(call SET_TEXTATTRIB,$(FG_RED)) Delete$(RESTORECOLOUR) only code (asm, .c) build artifacts " @@ -692,6 +743,9 @@ testPB: $(call SetupProgressBar) $(call IncrementProgressBarFromAtRate,0,0.125) +textures: + for file in assets/images/split/*.bin; do ../../tools/mktex/build/tex2png $file .assets/images/out; done + colour: @echo "\033[3A" ifeq ($(VERBOSE),0) @@ -707,8 +761,12 @@ colour: -e "s/((([^\/]*([^s][^t][^d][^i][^n])\.c)|([^\/]*\.o))\s)/$$(echo "$(call SET_TEXTATTRIB,$(FG_WHITE))")&$$(echo "$(RESTORECOLOUR)")/g" @echo "$(SAVECURSOR)$(RESTORESCROLLREGION)$(RESTORECURSOR)\033[1A" -ifeq ($(VERBOSE),0) -.SILENT: +# hide output by default, unless this one of the following targets +ifeq ($(filter nuke,$(MAKECMDGOALS)),) +else + ifeq ($(VERBOSE),0) + .SILENT: + endif endif diff --git a/assets/embedded/player_gait_object/modelnode.inc.c b/assets/embedded/player_gait_object/modelnode.inc.c index b7277bba..35243b85 100644 --- a/assets/embedded/player_gait_object/modelnode.inc.c +++ b/assets/embedded/player_gait_object/modelnode.inc.c @@ -7,13 +7,13 @@ ModelNode player_gait_pos_hdr_2 = {2, &player_gait_pos_2, &player_gait_pos_hdr_1 //D:8003C5C8 ModelNode player_gait_pos_hdr_3 = {2, &player_gait_pos_3, &player_gait_pos_hdr_2, 0, 0, 0}; //D:8003C5E0 -ModelNode_HeaderRecord player_gait_obj = {1, &player_gait_pos_hdr_1, 0, 0, 0, 0}; +ModelRoData_HeaderRecord player_gait_obj = {1, &player_gait_pos_hdr_1, 0, 0, 0, 0}; //D:8003C5F0 -ModelNode_GroupRecord player_gait_pos_1 = {{0.0, 0.0, 0.0}, 0x0001, 0x0002, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_2, 0}; +ModelRoData_GroupRecord player_gait_pos_1 = {{0.0, 0.0, 0.0}, 0x0001, 0x0002, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_2, 0}; //D:8003C60C -ModelNode_GroupRecord player_gait_pos_2 = {{1.177982, 41.14437, 0.0}, 0x0002, 0x0003, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_3, 0}; +ModelRoData_GroupRecord player_gait_pos_2 = {{1.177982, 41.14437, 0.0}, 0x0002, 0x0003, 0xFFFF, 0xFFFF, &player_gait_pos_hdr_3, 0}; //D:8003C628 -ModelNode_GroupRecord player_gait_pos_3 = {{-2.576027, 480.42902, 0.0}, 0x0003, 0x0000, 0xFFFF, 0xFFFF, NULL, 0}; +ModelRoData_GroupRecord player_gait_pos_3 = {{-2.576027, 480.42902, 0.0}, 0x0003, 0x0000, 0xFFFF, 0xFFFF, NULL, 0}; //FIXME File split likely //D:8003C644 diff --git a/assets/images.def b/assets/images.def index da0a2ca4..80068e34 100644 --- a/assets/images.def +++ b/assets/images.def @@ -19,8 +19,8 @@ IMAGE(17, 0x3DA, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0) IMAGE(VERTICALSTRIPES_RED, 0x1A, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0) IMAGE(VERTICALSTRIPES_RED2, 0x1A, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0) IMAGE(GRAVELGREY, 0x619, HIT_DIRT, HIT_DIRT, 0, 0, 0, 0) -IMAGE(GRAVELDETAIL, 0x135, HIT_DEFAULT, HIT_DEFAULT, 0x38, 0xD2, 0, 0) -IMAGE(TARDETAIL, 0x5F5, HIT_DIRT, HIT_DIRT, 0x38, 0xD2, 0, 0) +IMAGE(GRAVELDETAIL, 0x135, HIT_DEFAULT, HIT_DEFAULT, 0x3, 0x8, 0xD, 0x2) +IMAGE(TARDETAIL, 0x5F5, HIT_DIRT, HIT_DIRT, 0x3, 0x8, 0xD, 0x2) IMAGE(TAZER_TEXT, 0x35F, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0) IMAGE(BOY_TEXT, 0x350, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0) IMAGE(25, 0x60C, HIT_DEFAULT, HIT_DEFAULT, 0, 0, 0, 0) diff --git a/assets/obseg/prop/alarm1/Model.c b/assets/obseg/prop/alarm1/Model.c index 785fb7aa..f4002010 100644 --- a/assets/obseg/prop/alarm1/Model.c +++ b/assets/obseg/prop/alarm1/Model.c @@ -12,7 +12,7 @@ ModelNode ModelNode_05000018 = {0x2, ModelNode_GroupRecord_05000060, 0x0, 0x0, 0 ModelNode ModelNode_05000030 = {0xA, ModelNode_BoundingBoxRecord_0500007c, ModelNode_05000018, 0x0, 0x0, ModelNode_05000048}; ModelNode ModelNode_05000048 = {0x18, ModelNode_DisplayList_CollisionRecord_05000230, ModelNode_05000030, 0x0, 0x0, 0x0}; -ModelNode_GroupRecord ModelNode_GroupRecord_05000060 = +ModelRoData_GroupRecord ModelNode_GroupRecord_05000060 = { {962.5, 2015.0167, -36.117146}, 0x0, @@ -23,7 +23,7 @@ ModelNode_GroupRecord ModelNode_GroupRecord_05000060 = 304.6402 }; -ModelNode_BoundingBoxRecord ModelNode_BoundingBoxRecord_0500007c = +ModelRoData_BoundingBoxRecord ModelNode_BoundingBoxRecord_0500007c = { 0x1, {-146.0, 146.0, -265.0, 265.0, -36.0, 36.0} @@ -116,7 +116,7 @@ s16 POINT_USAGE_ARRAY_05000218[VERTEXGROUPCOUNT0] = 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, }; -ModelNode_DisplayList_CollisionRecord ModelNode_DisplayList_CollisionRecord_05000230 = +ModelRoData_DisplayList_CollisionRecord ModelNode_DisplayList_CollisionRecord_05000230 = { GFX_ARRAY_PRIMARY_05000250, GFX_ARRAY_SECONDARY_050002B0, diff --git a/assets/ramrom/ramrom.s b/assets/ramrom/ramrom.s index dfa8d4c4..8137da5b 100644 --- a/assets/ramrom/ramrom.s +++ b/assets/ramrom/ramrom.s @@ -3,155 +3,7 @@ .global _ramromDam1SegmentRomStart _ramromDam1SegmentRomStart: -# VERSION_US is same as VERSION_JP - -.ifdef VERSION_US - -.global ramrom_Dam_1 -ramrom_Dam_1: -.incbin "assets/ramrom/ramrom_Dam_1.bin" -ramrom_Dam_1_end: - -.global ramrom_Dam_2 -ramrom_Dam_2: -.incbin "assets/ramrom/ramrom_Dam_2.bin" -ramrom_Dam_2_end: - -.global ramrom_Facility_1 -ramrom_Facility_1: -.incbin "assets/ramrom/ramrom_Facility_1.bin" -ramrom_Facility_1_end: - -.global ramrom_Facility_2 -ramrom_Facility_2: -.incbin "assets/ramrom/ramrom_Facility_2.bin" -ramrom_Facility_2_end: - -.global ramrom_Facility_3 -ramrom_Facility_3: -.incbin "assets/ramrom/ramrom_Facility_3.bin" -ramrom_Facility_3_end: - -.global ramrom_Runway_1 -ramrom_Runway_1: -.incbin "assets/ramrom/ramrom_Runway_1.bin" -ramrom_Runway_1_end: - -.global ramrom_Runway_2 -ramrom_Runway_2: -.incbin "assets/ramrom/ramrom_Runway_2.bin" -ramrom_Runway_2_end: - -.global ramrom_BunkerI_1 -ramrom_BunkerI_1: -.incbin "assets/ramrom/ramrom_BunkerI_1.bin" -ramrom_BunkerI_1_end: - -.global ramrom_BunkerI_2 -ramrom_BunkerI_2: -.incbin "assets/ramrom/ramrom_BunkerI_2.bin" -ramrom_BunkerI_2_end: - -.global ramrom_Silo_1 -ramrom_Silo_1: -.incbin "assets/ramrom/ramrom_Silo_1.bin" -ramrom_Silo_1_end: - -.global ramrom_Silo_2 -ramrom_Silo_2: -.incbin "assets/ramrom/ramrom_Silo_2.bin" -ramrom_Silo_2_end: - -.global ramrom_Frigate_1 -ramrom_Frigate_1: -.incbin "assets/ramrom/ramrom_Frigate_1.bin" -ramrom_Frigate_1_end: - -.global ramrom_Frigate_2 -ramrom_Frigate_2: -.incbin "assets/ramrom/ramrom_Frigate_2.bin" -ramrom_Frigate_2_end: - -.global ramrom_Train -ramrom_Train: -.incbin "assets/ramrom/ramrom_Train.bin" -ramrom_Train_end: - -.endif - -.ifdef VERSION_JP - -.global ramrom_Dam_1 -ramrom_Dam_1: -.incbin "assets/ramrom/ramrom_Dam_1.bin" -ramrom_Dam_1_end: - -.global ramrom_Dam_2 -ramrom_Dam_2: -.incbin "assets/ramrom/ramrom_Dam_2.bin" -ramrom_Dam_2_end: - -.global ramrom_Facility_1 -ramrom_Facility_1: -.incbin "assets/ramrom/ramrom_Facility_1.bin" -ramrom_Facility_1_end: - -.global ramrom_Facility_2 -ramrom_Facility_2: -.incbin "assets/ramrom/ramrom_Facility_2.bin" -ramrom_Facility_2_end: - -.global ramrom_Facility_3 -ramrom_Facility_3: -.incbin "assets/ramrom/ramrom_Facility_3.bin" -ramrom_Facility_3_end: - -.global ramrom_Runway_1 -ramrom_Runway_1: -.incbin "assets/ramrom/ramrom_Runway_1.bin" -ramrom_Runway_1_end: - -.global ramrom_Runway_2 -ramrom_Runway_2: -.incbin "assets/ramrom/ramrom_Runway_2.bin" -ramrom_Runway_2_end: - -.global ramrom_BunkerI_1 -ramrom_BunkerI_1: -.incbin "assets/ramrom/ramrom_BunkerI_1.bin" -ramrom_BunkerI_1_end: - -.global ramrom_BunkerI_2 -ramrom_BunkerI_2: -.incbin "assets/ramrom/ramrom_BunkerI_2.bin" -ramrom_BunkerI_2_end: - -.global ramrom_Silo_1 -ramrom_Silo_1: -.incbin "assets/ramrom/ramrom_Silo_1.bin" -ramrom_Silo_1_end: - -.global ramrom_Silo_2 -ramrom_Silo_2: -.incbin "assets/ramrom/ramrom_Silo_2.bin" -ramrom_Silo_2_end: - -.global ramrom_Frigate_1 -ramrom_Frigate_1: -.incbin "assets/ramrom/ramrom_Frigate_1.bin" -ramrom_Frigate_1_end: - -.global ramrom_Frigate_2 -ramrom_Frigate_2: -.incbin "assets/ramrom/ramrom_Frigate_2.bin" -ramrom_Frigate_2_end: - -.global ramrom_Train -ramrom_Train: -.incbin "assets/ramrom/ramrom_Train.bin" -ramrom_Train_end: - -.endif +# VERSION_EU is only one with differences .ifdef VERSION_EU @@ -225,9 +77,7 @@ ramrom_Train: .incbin "assets/ramrom/e/ramrom_Train.bin" ramrom_Train_end: -.endif - -.ifdef VERSION_DEBUG +.else .global ramrom_Dam_1 ramrom_Dam_1: diff --git a/bin/aspboot.data.bin b/bin/aspboot.data.bin deleted file mode 100644 index 7e6f8d852f7cd8b2a9e880642b1877632ee8adc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmb7+T`22u7{{Ogf3uBk_V$8VDdgSy2Dz_x~ir z`{e1*^k@Fw|7=uX04IEdA8-N>fGE)UwuL5)@pV3b`XJt<8GXZ|S&XLk`3l7c80JlT zFC=ex%nf)QGA)KUPo7(50fU@kPeaBFuBS}67c;HsXI~9P#rPrODH0T)!}vw8vlJHVo>dSV0zr*KL2O6>v@+mNm$AP~ zfNuLfObnsG4{Q0Ug&ULEHZv{`j!=0}P4yadYQ&NTV!a_!xE0^6Nl z(6^`{UHX5=2JVcli#m?l>Re>9CsT)cfhSaE2;O#_e>~S104xGS-r-hflKPO_a>6hm zfsB4bX@aF>TJV6NE=cJiluyZ%SNz+c4mBOK0y{QsLD z6XZ9*h?!jJ!tHqAjpR#@MB+bzAZv2gv!NOBY0H?GFtgi2*U2zD(ox7J`t@%`OEi*pun}{ z zNx4L^oa-$1nttGC49xXPG3nb;V;c~`hB^C;?H#|3X3@7wB~Fr zt~+yV)&=?e5bnAN>V-Ltq?LS*f?<&`WKk>GCe(`Sn`=YutO*F{|4)iT_{krF#Q;Jv z=Dtb?m&I*)iE_2FCocYXfrujNoXy5qNunb^?Tfhd?xZ&$S!=jl%X?O;RplWTdb|t9RJ*eIN?!H6aG8JM>kuz2>09GIjRz*OtD#C(=akY)W z%5?aFl?cGjp993c0t%FTOXos1C;V_d=|~T@Uy7&Ao!H*<^f}w+iOM2Bh5*<=y%IzZe$mO##u~6qc%V=LD^t*5+Iy z4dlX$9fcg_NGF9yuM>k-Z#9tlKbB);Qq^sJ&1W93=37Q z&Q;W>swJEWmsdOL=ySYg^PR%mHii2>h5Nl;24``X<484X4Fta`f~Pj#a}dvuJSKQrNq z6zI4jg*OW&x)$*|6V`1-ws7nfH2}@sJAoBLrg_^gX#QD0)%E6WKc&M`Hy_8`KZ562 z_2>$-fr;j0Ofu`4Y%XOU^HEli?_a_SwOgpWn-C*C@Y_>w@tqg9^Qx&)zH(|gUwyKL zzxKuxd~eTk{-enjif5yq?HyQdmvkkMBhHtxjDR<}70WRYligT`p*Y!v6qa8= zX>tpeBT$e`VtEz($xiTFF_zQM5uQ?8f>g zmGB$if8<@_V0>>;AMr50`{iedi;>0e$jA6Cen(Em+xQ)M8E@ftJvY4 zG?IVt6HjC7@BOn}anFz2>llP|kcf8?6#N+XyK3L|%9I0I`xLIawg|l9!?hZ|Efuk* zTT|&}PzWk~%Cv)@q8_5SAEJ0}pe}k*Yoxg^IxGH{UQw%08vqMf3F>7t6SBn&_x?I@ z(KZlJhth=r6AgZ!CQ&%6pF3=9iD+XafaUk=l#0b!3xde822SCOL5)s%(_snNPN|; z^L)vzQ4Ukv`K_s^_{}M$YCp)>ZsCCg(IP0!zjLu(!#@}TKJiM1Tc7EMnr`OSSjJF# zvo^-GF{brxEFp}IXXb@6Mdqh4_HH-!jmeAr`eeEa-}M|ONBIl=uVCyN!ix1F{y{&+ z-i5I*1IG4p>-{*!?zSsbXSop<;+N-x91(XR@g&?dC-J3uG4`rE z9Pa5SK7^S#5oY2=n28(lxR)RCp}U)SV!Xw~%f_|0aqVqfdsmN7-+M>Qo~3km(YvWk zhalmot8*M}BfTGo@V$WV{}p&|?HC7q%Yd~9%TG{OgUIvau?*dtyy|aRJh$`jDE{&L baT>#`{@P7rY#fW&8TsOUdV_pt-*f*4)T$hA diff --git a/bin/gspboot.data.bin b/bin/gspboot.data.bin deleted file mode 100644 index bf402e7b58ecd5c66792bd05e68ec0973ce5bd9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmZQzU|`@c7ia*I6%6eHK%M{tlf3u@1_mJo#_1qhcn3qe_yqo6AK2>u1Em=l7#W!U z|94=G|H3B(RtWwPo*=M7_<_I*(HPMjffeEr z0xLjJh)1|ZxI?%GD3>A}B5WdbL+FCg8lfpdQ-mdi0>qz)zmRZ{2$Ad&Un71(AOdJR z96;=T&%p!nEnJ*|p#f|+M8E;$3_5@YpdBC#2Ms_L5ZA*6a4-leK-KqvQT{&z3j+hl z(-5eLG2a-=sTm12^f@Ng5J{S-VLX6J00Q5Hy@a9_TVA*?|Nj42r8P ze4h$Yh|meUJDmgvTyX~>#DwU6jjW$9oSi||0qhPYpfkENvm@Isug*n5qcX@Nck8q; zv;Sf5_noeDPF0;pRh@dY6Kp2Q7gQI>cT2E?z?6Q1{RWZ^5GjOTf&mKT<-Ti(1VYu& z=`+9{$%PsIPHP7?~xI z+h$F2dSg340RhR_rU1tqKT~f&4UEjtpXoS`)2H`;4Yb0EOQi2DsF`NKG;vKo5x?#) zv_Fmfz9yKnU4|*0)^%fQBlNunM$T8(bsr|xW+Zvuve-*TOXW`O7XJCYtM0U;M)dT1ty#3!}kSjOj-G4cl@p+D;2!xeBAWj~q>)bum^+C;Bq?eB9OqsjKm@6c zh*G~3Y=sd&9OP?b---M67fY@rOi=@oWro0}MjY6Le^wOvE8hmrCuaLJFb&^E9 zl3Gq6wStJgwbpsk4(iP}M-+*~C1N}Fnj&m@5#$7DkPtK>0Xjlm;B-_12ht@InVOWy z)TM++b0j>vBcULz6KOLvF_ERo372L|xHWr1L0+eh^E%G!IIr9IItjOKA2~!I5)@Z+ zeW&`dufV}UMX-b56iE;S@-o24yBaoKBo3K?{Z905p+gWi&b{`_OF z`fPO5PwXQfs(AmqJ-x>viw->M?mYoI9cb``mZ4nUecVmoz0bp{Ho8YX^x0WeYlDx# zBZVIWq1oHJ;X7it${;9rBJaZ>ytFb{TdzPk?r<>w=Z)d9)vKBRj0*0x zz`W;V!EFSY_hOykLg=^LgQ>JVLHDS2mid4GV(J?WSi$dyQ(tQWy|SlRg5=bv08> zUCGSOBap?#W_JfV{sDmJJh<-Ptd^5(CG>;5Ej5$OG!H6`0u^D5{=32ltH6AmfK~SS2#zqOD z3|iC<1m>#*mTLsM2!SIZ5<`3p@iD~55RZ5LAt?X_;oRtL5Q-K8LI1~FF{u_i5iX31 z*5#NeaQ{1npXnw~bgJ@2R98+%rzlaxC#gSTUrBE!aY{S+R6#lWT zI2>Ia%I&=Vrtn}>FuZEsJj_e}F8+Ph9aqgm_SqsB6tL@fnJP zy4Ej>&v#1Hy(&9?m(vkno*~6oWH{KYg$~?f8k@8Ig$PBM9bJNZPh+JIIKr=}z{-d6 z!}|%o^PQhyyZ~WA#Vif|o?uiEfix0G))Fu(0zlLNB$YsA6k{)b)c2fEc&K6)_4YNU z>D!RrXhM4AX+wHLLwYrUHu*Eo!~7SL{QOkE@UQ8+;GOb1L8k6?*=*xEJKK1%f%_JI zpW5u-0l!bJdIBK3@7FB9b*=E_6U9t#En^vr%5p&X;ca2`E4Zfc!Rlf*tGP_L&>3XT zWn~2*+{#KHEUR_=j@up(J9NrP5H}BDJg@_>-G%d+|4J__rXl8EFi}1P@y)}K!yahC zaq|QldBrZuU;V5nrfevD|PZK05}+?tZJ!7-^IxssCxEio#QsT`VSc8_Ox$$X{9LgyQS333PCKqMW`62)goZ&3 zct8oLpwd+pcmXpoj znKZ}o9(N7RG*4x?FdreP&oDbUB==mvGauYJ+ViD#jrp&;dnT;QiG*q!DfQV#ex%wG z$CT{E`-(d9y{v3jaL?M2*;y(pShIGdNx|{r*G8HZmHC<@%(tv(+^ZBaZ*%XsPnp5I z%Nm&Pu*`h#yO{Tgn|a?qPP-S{Xct8rK;8IWw=wSC{CtLzhga24;pPm{T;_ zoQmdwN+1%4z*F95>^*-EEF*0_$iwZkn3Js*t}5`S&b}vOP%Oe{ZjO zUbC@&)?j|7IhgpkY<{kxEj`#{UeM5n@XhIwXQ}AJ1{}6_a=P0LNk}%o5Ke?ib&=UuAl*`=Tj4gp(FJB(a@@S6OU(Wl(m#UqkM){=!W_i*NP~G0*#pFOp7f<3wPRdyZWwGAkr4HMtV{3Px@*&Clq?9_ifM)i+ns-JYx{Eyu< z|6~Kz-bA}Ri1zqVgleCR(!7s*Y2L}>H*;*dr=G4WF6Rc zT9p*#d(77LCJwWrxz=gS&C>Z_0p%H)p z&SOl2T*JEDg|W1-#G1?p>ni8V2J1Xu1>?^{BHKEny96#3hLIQZI?V6H+J9OJVrOHp z*0&OF9mD@96u8WDddvY!hTa1hIs{^30oDps6GkGK+jnUK*o{uCGu&(=##`Zgb}AI6 z^-JMCH-(0V^jrGz+3j@6g%k7_|LLRu{@;zY%6Zfg#+4_VzD&oLR_&+_t6kPwd7N$3 zj#k4^@3X3EAI-nmNK?1SG&Qr1Uc4`hUTnZO zWw{dzE5wnXR)~p(=+A%Zv$01X=wd5>+>@H9fYgL8#3wZTzrl8U^ddlQ#!9Y>j&dgm zk(U4l6?lEnCfKpgpXB*+M1t45L=d|KkOK;cSg*LbJbA9i_3(f5;iw?Y#{3>I50|l8 zDvX~FL40P#ZFKs{&rlYp;=xb_b(}nbb3b7IxwEJ(&`DQ>PSB%yTWNRYA)Q#4NWe;_ zu2w(@>)if}AoYI%4t`G5dk5A6GR`Z!Mvo zoDS8->5;}b_ifZ3uA%n4Ix2?Hu$*L=lre=mJq9wwiScz~L<@N_I zH@xqBtnK@`Uaheader = NULL; + itementries_1 = nextitementry; + } while (nextitementry < (PitemZ_entries + 0xFF0)); + + textptr = setup_text_pointers[stageID]; + + // ptrsp174 = &sp174; + // ptronly_read_by_stageload = &only_read_by_stageload; + if ((stageID < 0x3B) && textptr) + { + // struct copy + // ptrsp174 = ptronly_read_by_stageload; + + sp175 = 0; + sp174 = *vtextptr; + phi_s3 = 0; + phi_s3_3 = 0; + phi_s4_3 = 0; + if (getPlayerCount() >= 2) + { + strcat(ptrsp174, "mp_"); + } + strcat(ptrsp174, *textptr + 1); + resource = _load_resource_named_to_membank(ptrsp174, 1, 0x100, 4); + g_ptrStageSetupFile = resource; + load_mission_text_bank(get_textbank_number_for_stagenum(stageID)); + g_CurrentSetup.pathwaypoints = resource->pathwaypoints; + g_CurrentSetup.waypointgroups = resource->waypointgroups; + g_CurrentSetup.intro = resource->intro; + g_CurrentSetup.propDefs = resource->propDefs; + g_CurrentSetup.patrolpaths = resource->patrolpaths; + g_CurrentSetup.ailists = resource->ailists; + g_CurrentSetup.pads = resource->pads; + g_CurrentSetup.boundpads = resource->boundpads; + padnames = resource->padnames; + phi_a3 = &g_CurrentSetup; + phi_a3_3 = &g_CurrentSetup; + if (padnames != 0) + { + g_CurrentSetup.padnames = resource->padnames; + } + else + { + g_CurrentSetup.padnames = NULL; + } + boundpadnames = resource->boundpadnames; + if (boundpadnames != 0) + { + g_CurrentSetup.boundpadnames = resource->boundpadnames; + } + else + { + g_CurrentSetup.boundpadnames = NULL; + } + waypoints = g_CurrentSetup.pathwaypoints; + if (waypoints != 0) + { + itementries_1_2 = waypoints; + phi_v1 = 0; + if (waypoints->padID >= 0) + { + do + { + bnoobj_2 = phi_v1 + 0x10; + // itementries_1_2->neighbours += resource; + temp_v0_6 = g_CurrentSetup.pathwaypoints + bnoobj_2; + itementries_1_2 = temp_v0_6; + phi_v1 = bnoobj_2; + } while (temp_v0_6->padID >= 0); + } + } + waygroups = g_CurrentSetup.waypointgroups; + if (waygroups != 0) + { + itementries_1_3 = waygroups; + phi_v1_2 = 0; + if (waygroups->neighbours != 0) + { + phi_a0 = waygroups->neighbours; + do + { + // itementries_1_3->neighbours = phi_a0 + resource; + temp_v0_7 = g_CurrentSetup.waypointgroups[phi_v1_2]; + bnoobj_3 = phi_v1_2++; + // temp_v0_7->waypoints = temp_v0_7->waypoints; + // temp_v0_8 = g_CurrentSetup.waypointgroups[bnoobj_3]; + temp_a0 = temp_v0_8->neighbours; + phi_a0 = temp_a0; + itementries_1_3 = temp_v0_8; + phi_v1_2 = bnoobj_3; + } while (temp_a0 != 0); + } + } + ailists = g_CurrentSetup.ailists; + if (ailists != 0) + { + itementries_1_4 = ailists; + phi_a1 = 0; + if (ailists->ailist != 0) + { + phi_v1_3 = ailists->ailist; + do + { + // itementries_1_4->ailist = phi_v1_3 + resource; + waypoints_3 = phi_a1 + 8; + temp_v0_9 = g_CurrentSetup.ailists + waypoints_3; + bnoobj_4 = temp_v0_9->ailist; + phi_v1_3 = bnoobj_4; + itementries_1_4 = temp_v0_9; + phi_a1 = waypoints_3; + } while (bnoobj_4 != 0); + } + } + patrolpaths = g_CurrentSetup.patrolpaths; + if (patrolpaths != 0) + { + patrolpath = patrolpaths; + i = 0; + if (patrolpaths->waypoints != 0) + { + pathwaypoint = patrolpaths->waypoints; + do + { + // patrolpath->pathwaypoints = pathwaypoint + resource; + // path = phi_a3->patrolpaths [i]; + // temp_a0_3 = path->unk0; + itementries_1_5 = temp_a0_3; + phi_v1_4 = 0; + phi_a3_2 = phi_a3; + phi_v1_10 = 0; + if (*temp_a0_3 >= 0) + { + do + { + bnoobj_5 = phi_v1_10 + 1; + itementries_1_5 += 4; + phi_v1_4 = bnoobj_5; + phi_v1_10 = bnoobj_5; + } while (0); // itementries_1_5->unk4 >= 0); + phi_a3_2 = &g_CurrentSetup; + } + // path->unk6 = phi_v1_4; + + bnochr_4 = phi_a3_2->patrolpaths + waypoints_4; + // temp_a0_2 = bnochr_4->pathwaypoints; + pathwaypoint = temp_a0_2; + patrolpath = bnochr_4; + phi_a3 = phi_a3_2; + i++; + phi_a3_3 = phi_a3_2; + } while (temp_a0_2 != 0); + } + } + if (phi_a3_3->pads != 0) + { + pad = g_CurrentSetup.pads; + // temp_v0_11 = pad->plink; + itementries_1_6 = temp_v0_11; + pad = pad; + roompos = get_room_data_float2(); + if (temp_v0_11 != 0) + { + do + { + // waypoints_5 = resource + itementries_1_6; + // pad->plink = waypoints_5; + pad->pos.f[0] *= roompos; + pad->pos.f[1] *= roompos; + pad->pos.f[2] *= roompos; + sp15C = roompos; + init_pathtable_something(pad, waypoints_5, pad + 0x28); + // pad = pad->unk50; + itementries_1_6 = pad; + pad += 0x2C; + } while (pad != 0); + } + //sprintf("pad number %d has no stan! (%s)\n",(char *)num); + //sprintf("pad number %d changed stan from %s to %s\n",(char *)num); + } + if (g_CurrentSetup.boundpads != 0) + { + boundpads = g_CurrentSetup.boundpads; + // temp_v0_13 = boundpads->plink; + itementries_1_7 = temp_v0_13; + boundpads = &boundpads; + roompos_2 = get_room_data_float2(); + if (temp_v0_13 != 0) + { + do + { + // waypoints_6 = resource + itementries_1_7; + // boundpads->plink = waypoints_6; + boundpads->pos.x *= roompos_2; + boundpads->pos.y *= roompos_2; + boundpads->pos.z *= roompos_2; + boundpads->bbox.xmin *= roompos_2; + boundpads->bbox.xmax *= roompos_2; + boundpads->bbox.ymin *= roompos_2; + boundpads->bbox.ymax *= roompos_2; + boundpads->bbox.zmin *= roompos_2; + boundpads->bbox.zmax *= roompos_2; + sp150 = roompos_2; + init_pathtable_something(boundpads, waypoints_6, boundpads + 0x28); + // boundpads = boundpads->unk68; + itementries_1_7 = boundpads; + boundpads++; + } while (boundpads != 0); + } + } + waypoints_7 = g_CurrentSetup.padnames; + if (waypoints_7 != 0) + { + padnames = waypoints_7; + i = 0; + if (*waypoints_7 != 0) + { + padnames = *waypoints_7; + do + { + // *padnames = padnames + resource; + + padnames = g_CurrentSetup.padnames[i]; + padnames = *padnames; + padnames = padnames; + padnames = padnames; + i++; + } while (padnames != 0); + } + } + boundpadnames = g_CurrentSetup.boundpadnames; + if (boundpadnames != 0) + { + temp_t0 = *boundpadnames; + boundpadnames = temp_t0; + boundpadnames = boundpadnames; + i = 0; + if (temp_t0 != 0) + { + do + { + // *boundpadnames = boundpadnames + resource; + + bnoobj_7 = g_CurrentSetup.boundpadnames[i]; + temp_a0_5 = *bnoobj_7; + boundpadnames = temp_a0_5; + boundpadnames = bnoobj_7; + i++; + } while (temp_a0_5 != 0); + } + //sprintf("vol number %d has no stan! (%s)\n",(char *)num); + //sprintf("vol number %d changed stan from %s to %s\n",(char *)num); + } + if (bnoprop != 0) + { + alloc_init_GUARDdata_entries(load_proptype(PROPDEF_GUARD, boundpadnames)); + temp_s4 = load_proptype(PROPDEF_GUARD); + phi_s3 = load_proptype(PROPDEF_COLLECTABLE); + phi_s3 += load_proptype(PROPDEF_KEY); + phi_s3 += load_proptype(PROPDEF_HAT); + phi_s4_3 = temp_s4; + } + else + { + alloc_init_GUARDdata_entries(0, boundpadnames); + } + phi_s3_2 = phi_s3; + phi_s4 = phi_s4_3; + if (bnoprop != 0) + { + // load std props for all stages + phi_s4 += load_proptype(PROPDEF_DOOR); + phi_s4 += load_proptype(PROPDEF_CCTV); + phi_s4 += load_proptype(PROPDEF_AUTOGUN); + phi_s4 += load_proptype(PROPDEF_RACK); + phi_s4 += load_proptype(PROPDEF_MONITOR); + phi_s4 += load_proptype(PROPDEF_MULTI_MONITOR); + phi_s4 += load_proptype(PROPDEF_ARMOUR); + phi_s4 += load_proptype(PROPDEF_PROP); + phi_s4 += load_proptype(PROPDEF_GLASS); + phi_s4 += load_proptype(PROPDEF_TINTED_GLASS); + phi_s4 += load_proptype(PROPDEF_SAFE); + phi_s4 += load_proptype(PROPDEF_UNK41); + phi_s4 += load_proptype(PROPDEF_GAS_RELEASING); + phi_s4 += load_proptype(PROPDEF_ALARM); + phi_s4 += load_proptype(PROPDEF_MAGAZINE); + phi_s4 += load_proptype(PROPDEF_AMMO); + phi_s4 += load_proptype(PROPDEF_TINTED_GLASS); + phi_s4 += load_proptype(PROPDEF_TANK); + phi_s3_2 = phi_s4; + phi_s4 += load_proptype(PROPDEF_AIRCRAFT); + } + sub_GAME_7F005540(phi_s3_2); // without planbe + sub_GAME_7F005624(phi_s4); + i = 0; + if (getPlayerCount() > 0) + { + do + { + set_cur_player(i); + alloc_additional_item_slots(load_proptype(0xE)); + i++; + } while (i < getPlayerCount()); + } + if (g_CurrentSetup.propDefs != 0) + { + temp_s4_2 = 1 << (lvlGetSelectedDifficulty() + 4); + phi_s4_2 = temp_s4_2; + if (getPlayerCount() >= 2) + { + phi_s4_2 = temp_s4_2 | (1 << (getPlayerCount() + 0x14)); + } + prop = g_CurrentSetup.propDefs; + propdefType = prop->type; + + if (propdefType != PROPDEF_END) + + { + do + { + switch (propdefType) + { + // switch 1 + case PROPDEF_GUARD_ATTRIBUTE: // switch 1 + { + temp_s0_5 = prop->; + ChrRecord *chr = chrFindByLiteralId(((GuardRecord *)prop)->chrnum); + if ((chr != 0) && (chr->prop != 0) && (chr->model != 0)) + { + chr->grenadeprob = temp_s0_5; + } + #ifdef DEBUG + else + { + osSyncPrintf("grenade prob: no chr number %d for obj number %d! ", (char *)lVar7); + } + #endif + break; + } + case PROPDEF_GUARD: // switch 1 + if (bnoprop != 0) + { + expand_09_characters(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_DOOR: // switch 1 + if ((bnoprop != 0) && (prop->flags2 & phi_s4_2) == 0) + { + setupDoor(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_DOOR_SCALE: // switch 1 + g_scale_1_0_item_related = ((GlobalDoorScaleRecord *)prop)->Scale / 65536.0f; + break; + case PROPDEF_COLLECTABLE: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + weaponAssignToHome(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_KEY: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupKey(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_HAT: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupHat(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_CCTV: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupCctv(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_AUTOGUN: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupAutogun(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_RACK: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupHangingMonitors(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_MONITOR: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupSingleMonitor(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_MULTI_MONITOR: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + setupMultiMonitor(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_ARMOUR: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + ((BodyArmourRecord*)prop)->Strength /= 65536.0f; + // prop->unk84 = prop->Strength; + domakedefaultobj(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_TINTED_GLASS: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + if ((prop->flags * 8) < 0) + { + temp_v0_18 = prop->pad; + if (temp_v0_18 >= 0x2710) + { + BoundPadRecord *temp_s0_6 = &g_CurrentSetup.boundpads[temp_v0_18 - 0x2710]; + TintedGlassRecord *prop = prop; + sub_GAME_7F001BD4(temp_s0_6, &sp118); + temp_a0_6 = &sp118; + waypoints_9 = &sp10C; + sp10C = (temp_s0_6->up.x * 10.0f) + sp118; + sp110 = (temp_s0_6->up.y * 10.0f) + sp11C; + sp114 = (temp_s0_6->up.z * 10.0f) + sp120; + sp118 -= 10.0f * temp_s0_6->up.x; + sp11C -= 10.0f * temp_s0_6->up.y; + sp120 -= 10.0f * temp_s0_6->up.z; + prop->unk8c = sub_GAME_7F0B9E04(temp_a0_6, waypoints_9); + prop->unk90 = (prop->unk90 / 65536.0f); + } + } + domakedefaultobj(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_PROP: // switch 1 + case PROPDEF_ALARM: // switch 1 + case PROPDEF_MAGAZINE: // switch 1 + case PROPDEF_GAS_RELEASING: // switch 1 + case PROPDEF_UNK41: // switch 1 + case PROPDEF_GLASS: // switch 1 + case PROPDEF_SAFE: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + domakedefaultobj(stageID, prop, phi_s3_3); + } + break; + case PROPDEF_AMMO: // switch 1 + pad_4 = 1; + if (getPlayerCount() >= 2) + { + // bnoobj_10 = getPtrMPWeaponSetData() + (lastmpweaponnum * 0x18); + // temp_s0_7 = bnoobj_10->unk10; + //(prop + (bnoobj_10->unkC * 4))->unk7E = temp_s0_7; + pad_4 = temp_s0_7; + } + if ((pad_4 > 0) && (bnoprop != 0)) + { + pad_5 = prop; + phi_s1 = 0; + if ((prop->flags2 & phi_s4_2) == 0) + { + do + { + // if (pad_5->unk82 > 0) + { + // temp_a0_7 = pad_5->unk80; + if (temp_a0_7 != 0xFFFF) + { + modelLoad(temp_a0_7); + } + } + ptrsp174_2 = phi_s1 + 4; + pad_5 += 4; + phi_s1 = ptrsp174_2; + } while (ptrsp174_2 != 0x34); + domakedefaultobj(stageID, prop, phi_s3_3); + } + } + break; + case PROPDEF_TANK: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + TankRecord *prop = prop; + PropRecord *prp; + spE8 = 0.0f; + weaponLoadProjectileModels(0x20); + domakedefaultobj(stageID, prop, phi_s3_3); + prop->turret_vertical_angle = 0.0f; + prop->turret_orientation_angle = 0.0f; + prp = prop->prop; + prop->tank_orientation_angle = M_TAU_F - atan2f(prop->mtx.m[3][3], prop->mtx.m[3][4]); + if (prp != 0) + { + spE8 = stanGetPositionYValue(prp->stan, prp->pos.x, prp->pos.z); + } + prop->stan_y = spE8; + prop->unkD0 = spE8 / 0.17000002f; + } + break; + case PROPDEF_VEHICHLE: // switch 1 + if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0)) + { + VehichleRecord *prop = prop; + domakedefaultobj(stageID, prop, phi_s3_3); + temp_a0_8 = prop->model; + if (temp_a0_8 != 0) + { + // waypoints_10 = temp_a0_8->obj->Switches->unk14; + if (waypoints_10 != 0) + { + extract_id_from_object_structure_microcode(temp_a0_8, waypoints_10); // = 1;//( prop->flags & 0x10000000) == 0; + } + } + prop->speed = 0.0f; + prop->wheelxrot = 0.0f; + prop->wheelyrot = 0.0f; + prop->speedaim = 0.0f; + prop->turnrot60 = 0.0f; + prop->roty = 0.0f; + prop->speedtime60 = -1.0f; + prop->ailist = ailistFindById(prop->ailist); + prop->aioffset = 0; + prop->aireturnlist = -1; + prop->path = 0; + prop->nextstep = 0; + prop->Sound = 0; + } + break; + case PROPDEF_AIRCRAFT: // switch 1 + if ((bnoprop != 0) && 1) + ; //(( prop->flags2 & phi_s4_2) == 0)) + { + AircraftRecord *prop = prop; + domakedefaultobj(stageID, prop, phi_s3_3); + prop->speed = 0.0f; + prop->speedaim = 0.0f; + prop->rotoryrot = 0.0f; + prop->rotaryspeed = 0.0f; + prop->rotaryspeedaim = 0.0f; + prop->yrot = 0.0f; + prop->speedtime60 = -1.0f; + prop->rotaryspeedtime = -1.0f; + prop->ailist = ailistFindById(prop->ailist); + prop->aioffset = 0; + prop->aireturnlist = -1; + prop->nextstep = 0; + prop->path = 0; + prop->Sound = 0; + } + break; + case PROPDEF_TAG: // switch 1 + vtextptr0 = setupCommandGetObject(stageID, prop->pad + phi_s3_3); + prop->flags2 = vtextptr0; + if (vtextptr0 != 0) + { + vtextptr0->runtime_bitflags |= 0x10; + } + set_parent_cur_tag_entry(prop); + break; + case PROPDEF_RENAME: // switch 1 + { + ObjectRecord *pdef = setupCommandGetObject(stageID, prop->obj + phi_s3_3); + // prop->prev = vtextptr1; + if (pdef != 0) + { + pdef->runtime_bitflags |= 0x400; + } + bondinvAddTextOverride(prop); + break; + } + case PROPDEF_WATCH_MENU_OBJECTIVE_TEXT: // switch 1 + setup_briefing_text_entry_parent(prop); + break; + case PROPDEF_CAMERAPOS: // switch 1 + { + CutsceneRecord *prop = prop; + prop->x /= 100.0f; + prop->y /= 100.0f; + prop->z /= 100.0f; + prop->theta /= 65536.0f; + prop->verta /= 65536.0f; + break; + } + case PROPDEF_OBJECTIVE_START: // switch 1 + add_ptr_to_objective(prop); + break; + case PROPDEF_OBJECTIVE_ENTER_ROOM: // switch 1 + set_parent_cur_obj_enter_room(prop); + break; + case PROPDEF_OBJECTIVE_DEPOSIT_OBJECT_IN_ROOM: // switch 1 + set_parent_cur_obj_deposited_in_room(prop); + break; + case PROPDEF_OBJECTIVE_PHOTOGRAPH: // switch 1 + set_parent_cur_obj_photograph(prop); + break; + } + prop += sizepropdef(prop); + propdefType = prop->type; + + phi_s3_3 += 1; + } while (propdefType != PROPDEF_END); + prop = g_CurrentSetup.propDefs; + } + propdefType = prop->type; + + phi_s3_4 = 0; + if (propdefType != PROPDEF_END) + { + do + { + switch (propdefType) + { + case PROPDEF_PROP: + case PROPDEF_KEY: + case PROPDEF_MAGAZINE: + case PROPDEF_COLLECTABLE: + case PROPDEF_MONITOR: + case PROPDEF_AMMO: + case PROPDEF_ARMOUR: + case PROPDEF_GAS_RELEASING: + case PROPDEF_UNK41: + case PROPDEF_GLASS: + case PROPDEF_SAFE: + case PROPDEF_TINTED_GLASS: + if ((prop->prop != 0) && ((prop->flags & 0x8000) != 0)) + { + vtextptr2 = setupCommandGetObject(stageID, phi_s3_4 + prop->pad); + if ((vtextptr2 != 0) && (vtextptr2->prop != 0)) + { + modal = prop->model; + prop->runtime_bitflags = prop->runtime_bitflags | 0x80000; + modelSetScale(modal, modal->scale); + chrpropReparent(prop->prop, vtextptr2->prop); + } + #ifdef DEBUG + else + { + osSyncPrintf("inobj link not found for object number %d\n"); + } + #endif + } + break; + case PROPDEF_LINK: + temp_s0_8 = setupGetPtrToCommandByIndex(prop->chr + phi_s3_4); + vtextptr3 = setupGetPtrToCommandByIndex(prop->flags + phi_s3_4); + if ((temp_s0_8 != 0) && (vtextptr3 != 0) && (temp_s0_8->type == 8) && (vtextptr3->type == 8)) + { + propweaponSetDual(temp_s0_8, vtextptr3); + } + #ifdef DEBUG + else if ((temp_s0_8->type != PROPDEF_COLLECTABLE) && (vtextptr3->type != PROPDEF_COLLECTABLE)) + { + osSyncPrintf("link type wrong for doublegun object number %d\n"); + } + else + { + osSyncPrintf("link not found for doublegun object number %d\n"); + } + #endif + break; + case PROPDEF_SWITCH: + ptrsp174_3 = prop->flags; + temp_s0_9 = setupCommandGetObject(stageID, phi_s3_4 + prop->chr); + vtextptr4 = setupGetPtrToCommandByIndex(phi_s3_4 + ptrsp174_3); + if (temp_s0_9 != 0) + { + bnoobj_13 = temp_s0_9->prop; + if ((bnoobj_13 != 0) && (vtextptr4 != 0) && (vtextptr4->type == 1) && (vtextptr4->prop != 0)) + { + prop->chr = bnoobj_13; + prop->flags = vtextptr4->prop; + initSetLevelLoadPropSwitch(prop); + temp_s0_9->runtime_bitflags |= 1; + } + } + #ifdef DEBUG + else + { + osSyncPrintf("doorlink object number %d not initialised\n"); + } + #endif + break; + case PROPDEF_SAFE_ITEM: + ptrsp174_4 = prop->flags; + sp80 = prop->flags2; + temp_s0_10 = setupCommandGetObject(stageID, phi_s3_4 + prop->chr); + ptrsp174_5 = setupCommandGetObject(stageID, phi_s3_4 + ptrsp174_4); + vtextptr5 = setupCommandGetObject(stageID, phi_s3_4 + sp80); + if ((temp_s0_10 != 0) && (temp_s0_10->prop != 0) && (ptrsp174_5 != 0) && (ptrsp174_5->prop != 0) && (ptrsp174_5->type == 0x2B) && (vtextptr5 != 0) && (vtextptr5->prop != 0) && (vtextptr5->type == 1)) + { + prop->obj = temp_s0_10; + prop->flags = ptrsp174_5; + prop->flags2 = vtextptr5; + sp74 = vtextptr5; + initSetLevelLoadPropSafeItem(prop); + temp_s0_10->flags2 |= 0x400; + sp74->flags2 |= 0x400; + } + #ifdef DEBUG + else + { + osSyncPrintf("safelink object number %d not initialised\n"); + } + #endif + break; + case PROPDEF_LOCK_DOOR: + ptrsp174_6 = prop->flags; + temp_s0_11 = setupCommandGetObject(stageID, phi_s3_4 + prop->obj); + vtextptr6 = setupCommandGetObject(stageID, phi_s3_4 + ptrsp174_6); + if ((temp_s0_11 != 0) && (temp_s0_11->prop != 0) && (vtextptr6 != 0) && (vtextptr6->prop != 0) && (temp_s0_11->type == 1)) + { + prop->obj = temp_s0_11; + prop->flags = vtextptr6; + initSetLevelLoadPropLockDoor(prop); + temp_s0_11->runtime_bitflags |= 0x2000; + } + #ifdef DEBUG + else + { + osSyncPrintf("doorlock object number %d not initialised\n"); + } + #endif + break; + } + prop = (sizepropdef(prop) * 4) + prop; + propdefType = prop->type; + + prop = prop; + phi_s3_4 += 1; + } while (propdefType != PROPDEF_END); + } + } + } + else + { + g_CurrentSetup.pathwaypoints = NULL; + g_CurrentSetup.waypointgroups = NULL; + g_CurrentSetup.intro = NULL; + g_CurrentSetup.propDefs = NULL; + g_CurrentSetup.patrolpaths = NULL; + g_CurrentSetup.ailists = NULL; + g_CurrentSetup.pads = NULL; + g_CurrentSetup.boundpads = NULL; + g_CurrentSetup.padnames = NULL; + g_CurrentSetup.boundpadnames = NULL; + alloc_init_GUARDdata_entries(0); + sub_GAME_7F005540(0); + sub_GAME_7F005624(0); + } + alloc_false_GUARDdata_to_exec_global_action(); +} diff --git a/extract_asp_gsp_rsp.sh b/extract_asp_gsp_rsp.sh new file mode 100755 index 00000000..23371910 --- /dev/null +++ b/extract_asp_gsp_rsp.sh @@ -0,0 +1,157 @@ +#!/bin/bash + +if ! command -v md5sum &> /dev/null +then + echo "md5sum could not be found" + exit 1 +fi + +if ! command -v dd &> /dev/null +then + echo "dd could not be found" + exit 1 +fi + +if ! command -v dd &> /dev/null +then + echo "gzip could not be found" + exit 1 +fi + + +DATA_FILENAME= +OUT_FILENAME= +ROM_MD5= + +# US +ROM_FILENAME="baserom.u.z64" +OUT_FILENAME="baserom.u.cdata" +MD5_US="70c525880240c1e838b8b1be35666c3b" +if [ -f "${ROM_FILENAME}" ]; then + ROM_MD5=$(md5sum "${ROM_FILENAME}" | cut -d " " -f1) + + if [ "${ROM_MD5}" = "${MD5_US}" ]; then + echo "extracting US compressed data segment" + dd bs=1 skip=137616 count=71760 if="${ROM_FILENAME}" of="${OUT_FILENAME}" status=none + GZ=gzip tools/1172inflate.sh "${OUT_FILENAME}" "${OUT_FILENAME}.bin" + rm "${OUT_FILENAME}" + else + echo "cannot extract compressed data segment from ${ROM_FILENAME}, md5=${ROM_MD5}, expected ${MD5_US}" + fi +else + echo "${ROM_FILENAME} not found" +fi + +MD5_DATA_US="055525d9087f953d43d80639773b4291" + + +RAMSTART=0x80020d90 +rspbootTextStart_ADDR=$((0x80020d90-RAMSTART)) #rspbootTextStart +rspbootTextEnd_ADDR=$((0x80020e60-RAMSTART)) #rspbootTextEnd +rspbootTextSize=$((rspbootTextEnd_ADDR-rspbootTextStart_ADDR)) + +gsp3DTextStart_ADDR=$((0x80020e60-RAMSTART)) #gsp3DTextStart +gsp3DTextEnd_ADDR=$((0x80022280-RAMSTART)) #gsp3DTextEnd +gsp3DTextSize=$((gsp3DTextEnd_ADDR-gsp3DTextStart_ADDR)) + +aspMainTextStart_ADDR=$((0x80022280-RAMSTART)) #aspMainTextStart +aspMainTextEnd_ADDR=$((0x80023040-RAMSTART)) #aspMainTextEnd +aspMainTextSize=$((aspMainTextEnd_ADDR-aspMainTextStart_ADDR)) + +gsp3DDataStart_ADDR=$((0x8005c820-RAMSTART)) #gsp3DDataStart +gsp3DDataEnd_ADDR=$((0x8005d020-RAMSTART)) #gsp3DDataEnd +gsp3DDataSize=$((gsp3DDataEnd_ADDR-gsp3DDataStart_ADDR)) + +aspMainDataStart_ADDR=$((0x8005d020-RAMSTART)) #aspMainDataStart +aspMainDataEnd_ADDR=$((0x8005d2e0-RAMSTART)) #aspMainDataEnd +aspMainDataSize=$((aspMainDataEnd_ADDR-aspMainDataStart_ADDR)) + +# rsp text +OUT_FILENAME="bin/rspboot.text.bin" +DATA_FILENAME="baserom.u.cdata.bin" +START=${rspbootTextStart_ADDR} +SIZE=${rspbootTextSize} +if [ -f "${DATA_FILENAME}" ]; then + ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1) + + if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then + echo "extracting ${OUT_FILENAME}" + dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none + else + echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}" + fi +else + echo "${DATA_FILENAME} not found" +fi + +# gsp3d text +OUT_FILENAME="bin/gspboot.text.bin" +DATA_FILENAME="baserom.u.cdata.bin" +START=${gsp3DTextStart_ADDR} +SIZE=${gsp3DTextSize} +if [ -f "${DATA_FILENAME}" ]; then + ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1) + + if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then + echo "extracting ${OUT_FILENAME}" + dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none + else + echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}" + fi +else + echo "${DATA_FILENAME} not found" +fi + +# gsp3d data +OUT_FILENAME="bin/gspboot.data.bin" +DATA_FILENAME="baserom.u.cdata.bin" +START=${gsp3DDataStart_ADDR} +SIZE=${gsp3DDataSize} +if [ -f "${DATA_FILENAME}" ]; then + ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1) + + if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then + echo "extracting ${OUT_FILENAME}" + dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none + else + echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}" + fi +else + echo "${DATA_FILENAME} not found" +fi + +# asp text +OUT_FILENAME="bin/aspboot.text.bin" +DATA_FILENAME="baserom.u.cdata.bin" +START=${aspMainTextStart_ADDR} +SIZE=${aspMainTextSize} +if [ -f "${DATA_FILENAME}" ]; then + ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1) + + if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then + echo "extracting ${OUT_FILENAME}" + dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none + else + echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}" + fi +else + echo "${DATA_FILENAME} not found" +fi + +# asp data +OUT_FILENAME="bin/aspboot.data.bin" +DATA_FILENAME="baserom.u.cdata.bin" +START=${aspMainDataStart_ADDR} +SIZE=${aspMainDataSize} +if [ -f "${DATA_FILENAME}" ]; then + ROM_MD5=$(md5sum "${DATA_FILENAME}" | cut -d " " -f1) + + if [ "${ROM_MD5}" = "${MD5_DATA_US}" ]; then + echo "extracting ${OUT_FILENAME}" + dd bs=1 skip=${START} count=${SIZE} if="${DATA_FILENAME}" of="${OUT_FILENAME}" status=none + else + echo "cannot ${OUT_FILENAME} from ${DATA_FILENAME}, md5=${ROM_MD5}, expected ${MD5_DATA_US}" + fi +else + echo "${DATA_FILENAME} not found" +fi \ No newline at end of file diff --git a/extract_baserom.u.sh b/extract_baserom.u.sh index 17fdcb34..98997671 100755 --- a/extract_baserom.u.sh +++ b/extract_baserom.u.sh @@ -92,3 +92,5 @@ if [ "$DOALL" == "1" ] || [ $1 == 'images' ]; then #formatting matters, no comments, no extra lines, unix line endings only #and always end with a newline fi +mkdir -p ./bin +./extract_asp_gsp_rsp.sh \ No newline at end of file diff --git a/ge007.d.ld b/ge007.d.ld deleted file mode 100644 index 25ad4c39..00000000 --- a/ge007.d.ld +++ /dev/null @@ -1,4346 +0,0 @@ -/*OUTPUT_FORMAT ("elf32-bigmips")*/ -OUTPUT_ARCH (mips) - -SECTIONS -{ - - osTvType = 0x80000300; - osRomType = 0x80000304; - osRomBase = 0x80000308; - osResetType = 0x8000030c; - osCicId = 0x80000310; - osVersion = 0x80000314; - osMemSize = 0x80000318; - osAppNMIBuffer = 0x8000031c; - - _romSegmentStart = 0; - /* header */ - _headerSegmentStart = ADDR(.header); - _headerSegmentRomStart = _romSegmentStart; - .header 0x04000000 : AT(_romSegmentStart) { - build/d/src/rom_header.o(.data); - } - _headerSegmentEnd = ADDR(.header) + SIZEOF(.header); - _headerSegmentRomEnd = _headerSegmentRomStart + SIZEOF(.header); - - - - /* boot */ - _bootSegmentStart = ADDR(.boot); - _bootSegmentRomStart = _headerSegmentRomEnd; - .boot 0x04000040 : AT(_bootSegmentRomStart) { - build/d/src/bootcode.o(.text); - } - _bootSegmentEnd = ADDR(.boot) + SIZEOF(.boot); - _bootSegmentRomEnd = _bootSegmentRomStart + SIZEOF(.boot); - - - - - /* 0x80000400, 0x80000450 */ - _startSegmentStart = ADDR(.start); - _startSegmentRomStart = _bootSegmentRomEnd; - _alt_startSegmentRomStart = _startSegmentRomStart + 0x100000; - .start 0x80000400 : AT(_startSegmentRomStart) { - build/d/src/_start.o (.text); - } - _alt_startSegmentStart = _startSegmentStart - 0x10000000 + 0x100000; - _startSegmentEnd = ADDR(.start) + SIZEOF(.start); - _startSegmentRomEnd = _startSegmentRomStart + SIZEOF(.start); - - - - /* 0x70000450, 0x70020D90 001050-021990 */ - _codeSegmentStart = ADDR(.code); - _codeSegmentRomStart = _startSegmentRomEnd; - .code 0x70000450 : AT(_codeSegmentRomStart) SUBALIGN(16) { - build/d/src/boot.o (.text); - build/d/src/init.o (.text); - build/d/src/sched.o (.text); - build/d/src/osMapTLB.o (.text); - build/d/src/tlb_manage.o (.text); - build/d/src/tlb_random.o (.text); - build/d/src/tlb_resolve.o (.text); - build/d/src/tlb_hardwire.o (.text); - build/d/src/audi.o (.text); - build/d/src/speed_graph.o (.text); - build/d/src/fr.o (.text); - build/d/src/deb.o (.text); - build/d/src/fault.o (.text); - /*deb_print may be part of fault per pd beta (.text);*/ - build/d/src/deb_print.o (.text); - build/d/src/getra.o (.text); - build/d/src/ramrom.o (.text); - build/d/src/boss.o (.text); - build/d/src/music.o (.text); - build/d/src/snd.o (.text); - build/d/src/memp.o (.text); - build/d/src/mema.o (.text); - build/d/src/random.o (.text); - build/d/src/token.o (.text); - build/d/src/str.o (.text); - build/d/src/sprintf.o (.text); - build/d/src/pi.o (.text); - build/d/src/vi.o (.text); - build/d/src/debugmenu.o (.text); - build/d/src/joy.o (.text); - build/d/src/motor.o (.text); - build/d/src/rmon.o (.text); - - /*build/d/src/libultra/osPiRawStartDma.o (.text);*/ - build/d/src/libultra/io/pirawdma.o (.text); - build/d/src/libultra/io/pigetstat.o (.text); - build/d/src/libultrare/os/initialize.o (.text); - build/d/src/libultra/os/writebackdcacheall.o (.text); - build/d/src/libultra/os/invalicache.o (.text); - build/d/src/libultra/os/unmaptlb.o (.text); - build/d/src/libultra/os/getfpccsr.o (.text); - build/d/src/libultra/os/setfpccsr.o (.text); - build/d/src/libultra/os/createthread.o (.text); - build/d/src/libultra/os/startthread.o (.text); - build/d/src/libultra/os/createmesgqueue.o (.text); - build/d/src/libultra/os/parameters.o (.text); - build/d/src/libultra/os/stopthread.o (.text); - build/d/src/libultra/os/setthreadpri.o (.text); - build/d/src/libultra/os/getcount.o (.text); - build/d/src/libultrare/io/vimgr.o (.text); - build/d/src/libultrare/io/vitbl.o (.text); /*edited*/ - build/d/src/libultra/os/seteventmesg.o (.text); - build/d/src/libultra/io/visetevent.o (.text); - build/d/src/libultra/os/setintmask.o (.text); - build/d/src/libultra/os/recvmesg.o (.text); - build/d/src/libultra/os/sendmesg.o (.text); - build/d/src/libultra/io/visetmode.o (.text); - build/d/src/libultra/io/visetxscale.o (.text); - build/d/src/libultra/io/visetyscale.o (.text); - build/d/src/libultra/io/virepeatline.o (.text); - build/d/src/libultra/io/viblack.o (.text); - build/d/src/libultra/io/sptaskyielded.o (.text); - build/d/src/libultra/io/dpctr.o (.text); - build/d/src/libultra/io/vigetcurrframebuf.o (.text); - build/d/src/libultra/io/vigetnextframebuf.o (.text); - build/d/src/libultra/io/viswapbuf.o (.text); - build/d/src/libultra/io/dpsetstat.o (.text); - build/d/src/libultrare/io/sptask.o (.text); - build/d/src/libultra/io/dpsetnextbuf.o (.text); - build/d/src/libultra/io/sptaskyield.o (.text); - build/d/src/libultra/os/gettlbhi.o (.text); - build/d/src/libultra/os/virtualtophysical.o (.text); - build/d/src/libultra/io/aisetfreq.o (.text); - build/d/src/libultra/audio/sl.o (.text); - build/d/src/libultra/audio/heapalloc.o (.text); - build/d/src/libultra/os/gettime.o (.text); - build/d/src/libultra/libc/ll.o (.text); /*edited*/ - build/d/src/libultrare/io/aisetnextbuf.o (.text); - build/d/src/libultra/io/aigetlen.o (.text); - build/d/src/libultra/audio/synthesizer.o (.text); - build/d/src/libultra/io/pidma.o (.text); - build/d/src/libultra/io/visetspecial.o (.text); - build/d/src/libultra/libc/bcopy.o (.text); - build/d/src/libultra/gu/perspective.o (.text); - build/d/src/libultra/gu/mtxutil.o (.text); - build/d/src/libultra/os/getcurrfaultthread.o (.text); - build/d/src/libultra/os/exception.o (.text); /*edited*/ - build/d/src/libultra/os/thread.o (.text); - build/d/src/libultra/os/yieldthread.o (.text); - build/d/src/libultra/os/invaldcache.o (.text); - build/d/src/libultra/os/writebackdcache.o (.text); - build/d/src/libultra/os/settimer.o (.text); - build/d/src/libultra/audio/heapinit.o (.text); - build/d/src/libultra/audio/bnkf.o (.text); - build/d/src/libultra/audio/csplayer.o (.text); - build/d/src/libultra/audio/seqpsetbank.o (.text); - build/d/src/libultra/audio/cspgetstate.o (.text); - build/d/src/libultra/audio/cseq.o (.text); - build/d/src/libultra/audio/cspsetseq.o (.text); - build/d/src/libultra/audio/cspplay.o (.text); - build/d/src/libultra/audio/cspstop.o (.text); - build/d/src/libultra/audio/cspsetvol.o (.text); - build/d/src/libultra/audio/event.o (.text); - build/d/src/libultra/audio/synaddplayer.o (.text); - build/d/src/libultra/audio/synallocvoice.o (.text); - build/d/src/libultra/audio/synsetvol.o (.text); - build/d/src/libultra/audio/synstartvoice.o (.text); - build/d/src/libultra/audio/synsetpan.o (.text); - build/d/src/libultra/audio/synsetpitch.o (.text); - build/d/src/libultra/audio/synsetfxmix.o (.text); - build/d/src/libultra/audio/synstopvoice.o (.text); - build/d/src/libultra/audio/synfreevoice.o (.text); - build/d/src/libultra/audio/cents2ratio.o (.text); - build/d/src/libultra/io/piread.o (.text); - build/d/src/libultra/libc/string.o (.text); - build/d/src/libultrare/libc/xprintf.o (.text); - build/d/src/libultrare/io/pimgr.o (.text); - build/d/src/libultrare/io/pfsinit.o (.text); - build/d/src/libultrare/io/controller.o (.text); - build/d/src/libultra/io/contquery.o (.text); - build/d/src/libultrare/io/contreaddata.o (.text); - build/d/src/libultrare/io/conteepprobe.o (.text); - build/d/src/libultrare/io/conteepread.o (.text); - build/d/src/libultrare/io/conteepwrite.o (.text); - build/d/src/libultrare/io/conteeplongread.o (.text); - build/d/src/libultrare/io/conteeplongwrite.o (.text); - build/d/src/libultrare/io/pfsisplug.o (.text); - build/d/src/libultra/io/siacs.o (.text); - build/d/src/libultra/io/sirawdma.o (.text); - build/d/src/libultra/io/crc.o (.text); - build/d/src/libultrare/io/contramwrite.o (.text); - build/d/src/libultrare/io/contramread.o (.text); - build/d/src/libultra/gu/align.o (.text); - build/d/src/libultra/gu/ortho.o (.text); - build/d/src/libultra/gu/coss.o (.text); - build/d/src/libultra/gu/sins.o (.text); - build/d/src/libultra/gu/translate.o (.text); - build/d/src/libultra/libc/bcmp.o (.text); - build/d/src/libultra/gu/scale.o (.text); - build/d/src/libultra/gu/lookatref.o (.text); - build/d/src/libultra/gu/lookat.o (.text); - build/d/src/libultra/gu/rotate.o (.text); - build/d/src/libultra/libc/llcvt.o (.text); /*edited*/ - build/d/src/libultra/os/setsr.o (.text); - build/d/src/libultra/os/getsr.o (.text); - build/d/src/libultra/io/sirawread.o (.text); - build/d/src/libultra/io/sirawwrite.o (.text); - build/d/src/libultra/io/pirawread.o (.text); - build/d/src/libultra/libc/bzero.o (.text); - build/d/src/libultra/os/sethwinterrupt.o (.text); - build/d/src/libultrare/io/leointerrupt.o (.text); - build/d/src/libultra/os/interrupt.o (.text); - build/d/src/libultra/os/timerintr.o (.text); - build/d/src/libultra/os/kdebugserver.o (.text); - build/d/src/libultra/os/getthreadpri.o (.text); - build/d/src/libultrare/io/vi.o (.text); /*edited*/ - build/d/src/libultra/io/vigetcurrcontext.o (.text); - build/d/src/libultra/io/viswapcontext.o (.text); - build/d/src/libultra/io/spgetstat.o (.text); - build/d/src/libultra/io/spsetstat.o (.text); - build/d/src/libultra/io/spsetpc.o (.text); - build/d/src/libultra/io/sprawdma.o (.text); - build/d/src/libultra/io/sp.o (.text); - build/d/src/libultra/io/dp.o (.text); - build/d/src/libultra/os/probetlb.o (.text); - build/d/src/libultra/audio/syndelete.o (.text); - build/d/src/libultra/io/ai.o (.text); - build/d/src/libultrare/audio/drvrNew.o (.text); - build/d/src/libultra/audio/synallocfx.o (.text); - build/d/src/libultra/audio/mainbus.o (.text); - build/d/src/libultra/audio/load.o (.text); - build/d/src/libultra/audio/resample.o (.text); - build/d/src/libultrare/audio/env.o (.text); /*edited*/ - build/d/src/libultra/audio/auxbus.o (.text); - build/d/src/libultra/audio/save.o (.text); - build/d/src/libultra/os/jammesg.o (.text); - build/d/src/libultra/io/pigetcmdq.o (.text); - build/d/src/libultra/gu/cosf.o (.text); /*edited*/ - build/d/src/libultra/gu/sinf.o (.text); /*edited*/ - build/d/src/libultrare/os/destroythread.o (.text); - build/d/src/libultra/audio/seqplayer.o (.text); - build/d/src/libultra/audio/synstartvoiceparam.o (.text); - build/d/src/libultra/audio/copy.o (.text); - build/d/src/libultra/io/piacs.o (.text); - build/d/src/libultra/libc/xlitob.o (.text); - build/d/src/libultra/libc/xldtob.o (.text); - build/d/src/libultrare/io/epirawdma.o (.text); - build/d/src/libultrare/io/devmgr.o (.text); - build/d/src/libultra/io/contpfs.o (.text); - build/d/src/libultra/io/si.o (.text); - build/d/src/libultra/gu/normalize.o (.text); - build/d/src/libultra/gu/sqrtf.o (.text); - build/d/src/libultrare/io/leodiskinit.o (.text); - build/d/src/libultra/os/setcompare.o (.text); - build/d/src/libultra/audio/filter.o (.text); - build/d/src/libultrare/audio/reverb.o (.text); /*edited*/ - build/d/src/libultra/gu/libm_vals.o (.text); /*edited*/ - build/d/src/libultra/audio/seq.o (.text); - build/d/src/libultra/audio/synsetpriority.o (.text); - build/d/src/libultra/libc/ldiv.o (.text); - build/d/src/libultra/os/resetglobalintmask.o (.text); - build/d/src/libultrare/io/epirawwrite.o (.text); - build/d/src/libultra/io/vimodentsclan1.o (.text); - build/d/src/libultrare/io/vimodepallan1.o (.text); - build/d/src/libultrare/ultra80069080.o (.text); /*edited*/ - /*build/d/src/libultra/libultra.a:libultra.o (.text);*/ - } - _codeSegmentEnd = ADDR(.code) + SIZEOF(.code); - _codeSegmentRomEnd = _codeSegmentRomStart + SIZEOF(.code); - - - - _cdataSegmentStart = ADDR(.cdata); - _cdataSegmentRomStart = _codeSegmentRomEnd; - .cdata _cdataSegmentRomStart : AT(_cdataSegmentRomStart) { - build/d/src/c_data_filler.o (.data); - } - _cdataSegmentEnd = ADDR(.cdata) + SIZEOF(.cdata); - _cdataSegmentRomEnd = _cdataSegmentRomStart + SIZEOF(.cdata); - - - - /* (0x70200000, 0x702029BC, 0x701CCA70), // 033590-035F4D [29BD] */ - _inflateSegmentStart = ADDR(.inflate); - _inflateSegmentRomStart = _cdataSegmentRomEnd; - .inflate 0x70200000 : AT(_inflateSegmentRomStart) { - build/d/src/inflate/inflate.o (.text); - build/d/src/inflate/inflate.o (.data); - } - _inflateSegmentEnd = ADDR(.inflate) + SIZEOF(.inflate); - _inflateSegmentRomEnd = _inflateSegmentRomStart + SIZEOF(.inflate); - - - - - /* (0x7F000000, 0x7F0E2D50, 0x7EFCB4D0), // 034B30-117881 [E2D51] */ - _gameSegmentStart = ADDR(.game); - _gameSegmentRomStart = _inflateSegmentRomEnd; - .game 0x7F000000 : AT(_gameSegmentRomStart) { - build/d/src/game/initgamedata.o (.text); - build/d/src/game/initweaponanigroups.o (.text); - build/d/src/game/initactorpropstuff.o (.text); - build/d/src/game/initnull_0009D0.o (.text); - build/d/src/game/initunk_0009E0.o (.text); - build/d/src/game/initanitable.o (.text); - build/d/src/game/initplayergaitobject.o (.text); - build/d/src/game/setguscale.o (.text); - build/d/src/game/initnull_000BC0.o (.text); - build/d/src/game/initimages.o (.text); - build/d/src/game/initintromatrices.o (.text); - build/d/src/game/initmenus.o (.text); - build/d/src/game/initguards.o (.text); - build/d/src/game/deb_loadallmodels.o (.text); - build/d/src/game/initobjects.o (.text); - build/d/src/game/prop.o (.text); - build/d/src/game/objective.o (.text); - build/d/src/game/ejectedcartridges.o (.text); - build/d/src/game/initBondDATA.o (.text); - build/d/src/game/initunk_005450.o (.text); - build/d/src/game/initunk_005520.o (.text); - build/d/src/game/bondview_r.o (.text); - build/d/src/game/inititemslots.o (.text); - build/d/src/game/initBondDATAdefaults.o (.text); - build/d/src/game/initpathtablesomething.o (.text); - build/d/src/game/initpathtablelinks.o (.text); - build/d/src/game/initexplosioncasing.o (.text); - build/d/src/game/alloc_window_pieces.o (.text); - build/d/src/game/initunk_007290.o (.text); - build/d/src/game/initcheattext.o (.text); - build/d/src/game/initmttex.o (.text); - build/d/src/game/cleanup_guard_data.o (.text); - build/d/src/game/cleanup_object_sounds.o (.text); - build/d/src/game/cleanup_alarms.o (.text); - build/d/src/game/cleanup_objects.o (.text); - build/d/src/game/cleanup_objectives.o (.text); - build/d/src/game/cleanupSFXRelated.o (.text); - build/d/src/game/playerstats_007770.o (.text); - build/d/src/game/cleanexplosions.o (.text); - build/d/src/game/cleanwindowpieces.o (.text); - build/d/src/game/null_007970.o (.text); - build/d/src/game/cleanplayersound.o (.text); - build/d/src/game/title.o (.text); - build/d/src/game/front.o (.text); - build/d/src/game/unk_01B0E0.o (.text); - build/d/src/game/unk_01B240.o (.text); - build/d/src/game/unk_01BAE0.o (.text); - build/d/src/game/blood_animation.o (.text); - build/d/src/game/blood_decrypt.o (.text); - build/d/src/game/file.o (.text); - build/d/src/game/file2.o (.text); - build/d/src/game/chr.o (.text); - build/d/src/game/chr_b.o (.text); - build/d/src/game/chrlv.o (.text); - build/d/src/game/chrai.o (.text); - build/d/src/game/chrprop.o (.text); - build/d/src/game/chrobjhandler.o (.text); - build/d/src/game/loadobjectmodel.o (.text); - build/d/src/game/objective_status.o (.text); - build/d/src/game/objective_status2.o (.text); - build/d/src/game/math_sincos.o (.text); - build/d/src/game/matrixmath.o (.text); - build/d/src/game/math_unk_05A9E0.o (.text); - build/d/src/game/math_atan2f.o (.text); - build/d/src/game/math_asinacos.o (.text); - build/d/src/game/math_asinfacosf.o (.text); - build/d/src/game/matrixmath_misc.o (.text); - build/d/src/game/quaternion.o (.text); - build/d/src/game/math_floor.o (.text); - build/d/src/game/math_ceil.o (.text); - build/d/src/game/gun.o (.text); - build/d/src/game/bondwalk2.o (.text); - build/d/src/game/objecthandler.o (.text); - build/d/src/game/objecthandler_1.o (.text); - build/d/src/game/objecthandler_2.o (.text); - build/d/src/game/othermodemicrocode.o (.text); - build/d/src/game/bondview.o (.text); - build/d/src/game/bondinv.o (.text); - build/d/src/game/bondhead.o (.text); - build/d/src/game/padhalllv.o (.text); - build/d/src/game/debugmenu_08FE00.o (.text); - build/d/src/game/debugmenu_handler.o (.text); - build/d/src/game/unk_091080.o (.text); - /*build/d/src/game/chraidata.o (.text);*/ - /*build/d/src/game/pobjdata.o (.text);*/ - /*build/d/src/game/gobjdata.o (.text);*/ - /*build/d/src/game/gobjdata2.o (.text);*/ - /*build/d/src/game/cobjdata.o (.text);*/ - build/d/src/game/cheat_buttons.o (.text); - build/d/src/game/unk_092890.o (.text); - build/d/src/game/unk_092E50.o (.text); - build/d/src/game/player.o (.text); - build/d/src/game/player_2.o (.text); - build/d/src/game/crc.o (.text); - build/d/src/game/chrObjRandom.o (.text); - build/d/src/game/unk_09B7A0.o (.text); - build/d/src/game/explosions.o (.text); - build/d/src/game/unk_0A1DA0.o (.text); - build/d/src/game/watch.o (.text); - build/d/src/game/textrelated.o (.text); - build/d/src/game/stan.o (.text); - build/d/src/game/unk_0B3200.o (.text); - build/d/src/game/bg.o (.text); - build/d/src/game/bg2.o (.text); - build/d/src/game/fog.o (.text); - build/d/src/game/lightfixture.o (.text); - build/d/src/game/unk_0BC530.o (.text); - build/d/src/game/ob.o (.text); - build/d/src/game/dyn.o (.text); - build/d/src/game/lvl.o (.text); - build/d/src/game/ramromreplay.o (.text); - build/d/src/game/unk_0C0A70.o (.text); - build/d/src/game/mp_music.o (.text); - build/d/src/game/lvl_text.o (.text); - build/d/src/game/mp_watch.o (.text); - build/d/src/game/radar.o (.text); - build/d/src/game/mp_weapon.o (.text); - build/d/src/game/image.o (.text); - build/d/src/game/image_bank.o (.text); - build/d/src/game/unk_0CC4C0.o (.text); - build/d/src/game/decompress.o (.text); - build/d/src/game/zlib.o (.text); - build/d/src/game/rsp.o (.text); - build/d/src/game/indy_comms.o (.text); - build/d/src/game/indy_commands.o (.text); - build/d/src/game/game_debug.o (.text); - build/d/src/game/compiletime.o (.text); - build/d/src/game/unk_0D1AC0.o (.text); - build/d/src/game/viewport.o (.text); - build/d/src/game/music_0D2720.o (.text); - build/d/src/game/spectrum.o (.text); - } - _gameSegmentEnd = ADDR(.game) + SIZEOF(.game); - _gameSegmentRomEnd = _gameSegmentRomStart + SIZEOF(.game); - - - _fontdlSegmentStart = ADDR(.fontdl); - _fontdlSegmentRomStart = _gameSegmentRomEnd; - .fontdl 0x01000000 : AT(_fontdlSegmentRomStart) { - build/d/assets/font_dl.o (.data); - } - _fontdlSegmentEnd = ADDR(.fontdl) + SIZEOF(.fontdl); - _fontdlSegmentRomEnd = _fontdlSegmentRomStart + SIZEOF(.fontdl); - - _jfontcharSegmentStart = ADDR(.jfontchardata); - _jfontcharSegmentRomStart = _fontdlSegmentRomEnd; - .jfontchardata 0x00000000 : AT(_jfontcharSegmentRomStart) { - build/d/assets/font_chardataj.o (.data); - } - _jfontcharSegmentEnd = ADDR(.jfontchardata) + SIZEOF(.jfontchardata); - _jfontcharSegmentRomEnd = _jfontcharSegmentRomStart + SIZEOF(.jfontchardata); - - _efontcharSegmentStart = ADDR(.efontchardata); - _efontcharSegmentRomStart = _jfontcharSegmentRomEnd; - .efontchardata 0x00000000 : AT(_efontcharSegmentRomStart) { - build/d/assets/font_chardatae.o (.data); - } - _efontcharSegmentEnd = ADDR(.efontchardata) + SIZEOF(.efontchardata); - _efontcharSegmentRomEnd = _efontcharSegmentRomStart + SIZEOF(.efontchardata); - - _animation_entriesSegmentStart = ADDR(.animation_entries); - _animation_entriesSegmentRomStart = _efontcharSegmentRomEnd; - .animation_entries 0x00000000 : AT(_animation_entriesSegmentRomStart) { - build/d/assets/animationtable_entries.o(.data); - } - _animation_entriesSegmentEnd = ADDR(.animation_entries) + SIZEOF(.animation_entries); - _animation_entriesSegmentRomEnd = _animation_entriesSegmentRomStart + SIZEOF(.animation_entries); - - _animation_dataSegmentStart = ADDR(.animation_data); - _animation_dataSegmentRomStart = _animation_entriesSegmentRomEnd; - .animation_data 0x00000000 : AT(_animation_dataSegmentRomStart) { - build/d/assets/animationtable_data.o(.data); - } - _animation_dataSegmentEnd = ADDR(.animation_data) + SIZEOF(.animation_data); - _animation_dataSegmentRomEnd = _animation_dataSegmentRomStart + SIZEOF(.animation_data); - - _GlobalimagetableSegmentStart = ADDR(.Globalimagetable); - _GlobalimagetableSegmentRomStart = _animation_dataSegmentRomEnd; - .Globalimagetable 0x02000000 : AT(_GlobalimagetableSegmentRomStart) { - build/d/assets/GlobalImageTable.o (.data); - } - _GlobalimagetableSegmentEnd = ADDR(.Globalimagetable) + SIZEOF(.Globalimagetable); - _GlobalimagetableSegmentRomEnd = _GlobalimagetableSegmentRomStart + SIZEOF(.Globalimagetable); - - _GlobalimagetablecmdblkSegmentStart = ADDR(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomStart = _GlobalimagetableSegmentRomEnd; - .Globalimagetablecmdblk 0x02000000 : AT(_GlobalimagetablecmdblkSegmentRomStart) { - build/d/assets/Globalimagetable_commandblock.o (.data); - } - _GlobalimagetablecmdblkSegmentEnd = ADDR(.Globalimagetablecmdblk) + SIZEOF(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomEnd = _GlobalimagetablecmdblkSegmentRomStart + SIZEOF(.Globalimagetablecmdblk); - - - _romfiles2SegmentStart = ADDR(.romfiles2); - _romfiles2SegmentRomStart = _GlobalimagetablecmdblkSegmentRomEnd; - .romfiles2 _romfiles2SegmentRomStart : AT(_romfiles2SegmentRomStart) { - build/d/assets/romfiles2.o (.data); - } - _romfiles2SegmentEnd = ADDR(.romfiles2) + SIZEOF(.romfiles2); - _romfiles2SegmentRomEnd = _romfiles2SegmentRomStart + SIZEOF(.romfiles2); - - _ramromfilesSegmentStart = ADDR(.ramromfiles); - _ramromfilesSegmentRomStart = _romfiles2SegmentRomEnd; - .ramromfiles _ramromfilesSegmentRomStart : AT(_ramromfilesSegmentRomStart) { - build/d/assets/ramrom/ramrom.o (.data); - } - _ramromfilesSegmentEnd = ADDR(.ramromfiles) + SIZEOF(.ramromfiles); - _ramromfilesSegmentRomEnd = _ramromfilesSegmentRomStart + SIZEOF(.ramromfiles); - - _fonttablectlsmall1SegmentStart = ADDR(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomStart = _ramromfilesSegmentRomEnd; - .fonttablectlsmall1 _fonttablectlsmall1SegmentRomStart : AT(_fonttablectlsmall1SegmentRomStart) { - build/d/assets/font/font_first_font_table_controller_small.o (.data); - } - _fonttablectlsmall1SegmentEnd = ADDR(.fonttablectlsmall1) + SIZEOF(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomEnd = _fonttablectlsmall1SegmentRomStart + SIZEOF(.fonttablectlsmall1); - - - _fonttablectllarge1SegmentStart = ADDR(.fonttablectllarge1); - _fonttablectllarge1SegmentRomStart = _fonttablectlsmall1SegmentRomEnd; - .fonttablectllarge1 _fonttablectllarge1SegmentRomStart : AT(_fonttablectllarge1SegmentRomStart) { - build/d/assets/font/font_first_font_table_controller_large.o (.data); - } - _fonttablectllarge1SegmentEnd = ADDR(.fonttablectllarge1) + SIZEOF(.fonttablectllarge1); - _fonttablectllarge1SegmentRomEnd = _fonttablectllarge1SegmentRomStart + SIZEOF(.fonttablectllarge1); - - - _musicfilesSegmentStart = ADDR(.musicfiles); - _musicfilesSegmentRomStart = _fonttablectllarge1SegmentRomEnd; - .musicfiles _musicfilesSegmentRomStart : AT(_musicfilesSegmentRomStart) { - build/d/assets/music/sfx.ctl.o (.data); - build/d/assets/music/sfx.tbl.o (.data); - build/d/assets/music/instruments.ctl.o (.data); - build/d/assets/music/instruments.tbl.o (.data); - build/d/assets/music/music.o (.music); - build/d/assets/music/music.o (.musiccompressed); - } - _musicfilesSegmentEnd = ADDR(.musicfiles) + SIZEOF(.musicfiles); - _musicfilesSegmentRomEnd = _musicfilesSegmentRomStart + SIZEOF(.musicfiles); - - - - - _obsegSegmentStart = ADDR(.obseg); - _obsegSegmentRomStart = _musicfilesSegmentRomEnd; - .obseg _obsegSegmentRomStart : AT(_obsegSegmentRomStart) { - build/d/assets/obseg/ob_seg.o (.data); - } - _obsegSegmentEnd = ADDR(.obseg) + SIZEOF(.obseg); - _obsegSegmentRomEnd = _obsegSegmentRomStart + SIZEOF(.obseg); - - - - - _imagesSegmentStart = ADDR(.images); - _imagesSegmentRomStart = _obsegSegmentRomEnd; - .images _imagesSegmentRomStart : AT(_imagesSegmentRomStart) { - _image1_start = .; - build/d/assets/images/split/image1.o (.data); - _image1_end = .; - _image1_size = (_image1_end - _image1_start); - build/d/assets/images/split/image2.o (.data); - build/d/assets/images/split/image3.o (.data); - build/d/assets/images/split/image4.o (.data); - build/d/assets/images/split/image5.o (.data); - build/d/assets/images/split/image6.o (.data); - build/d/assets/images/split/image7.o (.data); - build/d/assets/images/split/image8.o (.data); - build/d/assets/images/split/image9.o (.data); - build/d/assets/images/split/image10.o (.data); - build/d/assets/images/split/image11.o (.data); - build/d/assets/images/split/image12.o (.data); - build/d/assets/images/split/image13.o (.data); - build/d/assets/images/split/image14.o (.data); - build/d/assets/images/split/image15.o (.data); - build/d/assets/images/split/image16.o (.data); - build/d/assets/images/split/image17.o (.data); - build/d/assets/images/split/image18.o (.data); - build/d/assets/images/split/image19.o (.data); - build/d/assets/images/split/image20.o (.data); - build/d/assets/images/split/image21.o (.data); - build/d/assets/images/split/image22.o (.data); - build/d/assets/images/split/image23.o (.data); - build/d/assets/images/split/image24.o (.data); - build/d/assets/images/split/image25.o (.data); - build/d/assets/images/split/image26.o (.data); - build/d/assets/images/split/image27.o (.data); - build/d/assets/images/split/image28.o (.data); - build/d/assets/images/split/image29.o (.data); - build/d/assets/images/split/image30.o (.data); - build/d/assets/images/split/image31.o (.data); - build/d/assets/images/split/image32.o (.data); - build/d/assets/images/split/image33.o (.data); - build/d/assets/images/split/image34.o (.data); - build/d/assets/images/split/image35.o (.data); - build/d/assets/images/split/image36.o (.data); - build/d/assets/images/split/image37.o (.data); - build/d/assets/images/split/image38.o (.data); - build/d/assets/images/split/image39.o (.data); - build/d/assets/images/split/image40.o (.data); - build/d/assets/images/split/image41.o (.data); - build/d/assets/images/split/image42.o (.data); - build/d/assets/images/split/image43.o (.data); - build/d/assets/images/split/image44.o (.data); - build/d/assets/images/split/image45.o (.data); - build/d/assets/images/split/image46.o (.data); - build/d/assets/images/split/image47.o (.data); - build/d/assets/images/split/image48.o (.data); - build/d/assets/images/split/image49.o (.data); - build/d/assets/images/split/image50.o (.data); - build/d/assets/images/split/image51.o (.data); - build/d/assets/images/split/image52.o (.data); - build/d/assets/images/split/image53.o (.data); - build/d/assets/images/split/image54.o (.data); - build/d/assets/images/split/image55.o (.data); - build/d/assets/images/split/image56.o (.data); - build/d/assets/images/split/image57.o (.data); - build/d/assets/images/split/image58.o (.data); - build/d/assets/images/split/image59.o (.data); - build/d/assets/images/split/image60.o (.data); - build/d/assets/images/split/image61.o (.data); - build/d/assets/images/split/image62.o (.data); - build/d/assets/images/split/image63.o (.data); - build/d/assets/images/split/image64.o (.data); - build/d/assets/images/split/image65.o (.data); - build/d/assets/images/split/image66.o (.data); - build/d/assets/images/split/image67.o (.data); - build/d/assets/images/split/image68.o (.data); - build/d/assets/images/split/image69.o (.data); - build/d/assets/images/split/image70.o (.data); - build/d/assets/images/split/image71.o (.data); - build/d/assets/images/split/image72.o (.data); - build/d/assets/images/split/image73.o (.data); - build/d/assets/images/split/image74.o (.data); - build/d/assets/images/split/image75.o (.data); - build/d/assets/images/split/image76.o (.data); - build/d/assets/images/split/image77.o (.data); - build/d/assets/images/split/image78.o (.data); - build/d/assets/images/split/image79.o (.data); - build/d/assets/images/split/image80.o (.data); - build/d/assets/images/split/image81.o (.data); - build/d/assets/images/split/image82.o (.data); - build/d/assets/images/split/image83.o (.data); - build/d/assets/images/split/image84.o (.data); - build/d/assets/images/split/image85.o (.data); - build/d/assets/images/split/image86.o (.data); - build/d/assets/images/split/image87.o (.data); - build/d/assets/images/split/image88.o (.data); - build/d/assets/images/split/image89.o (.data); - build/d/assets/images/split/image90.o (.data); - build/d/assets/images/split/image91.o (.data); - build/d/assets/images/split/image92.o (.data); - build/d/assets/images/split/image93.o (.data); - build/d/assets/images/split/image94.o (.data); - build/d/assets/images/split/image95.o (.data); - build/d/assets/images/split/image96.o (.data); - build/d/assets/images/split/image97.o (.data); - build/d/assets/images/split/image98.o (.data); - build/d/assets/images/split/image99.o (.data); - build/d/assets/images/split/image100.o (.data); - build/d/assets/images/split/image101.o (.data); - build/d/assets/images/split/image102.o (.data); - build/d/assets/images/split/image103.o (.data); - build/d/assets/images/split/image104.o (.data); - build/d/assets/images/split/image105.o (.data); - build/d/assets/images/split/image106.o (.data); - build/d/assets/images/split/image107.o (.data); - build/d/assets/images/split/image108.o (.data); - build/d/assets/images/split/image109.o (.data); - build/d/assets/images/split/image110.o (.data); - build/d/assets/images/split/image111.o (.data); - build/d/assets/images/split/image112.o (.data); - build/d/assets/images/split/image113.o (.data); - build/d/assets/images/split/image114.o (.data); - build/d/assets/images/split/image115.o (.data); - build/d/assets/images/split/image116.o (.data); - build/d/assets/images/split/image117.o (.data); - build/d/assets/images/split/image118.o (.data); - build/d/assets/images/split/image119.o (.data); - build/d/assets/images/split/image120.o (.data); - build/d/assets/images/split/image121.o (.data); - build/d/assets/images/split/image122.o (.data); - build/d/assets/images/split/image123.o (.data); - build/d/assets/images/split/image124.o (.data); - build/d/assets/images/split/image125.o (.data); - build/d/assets/images/split/image126.o (.data); - build/d/assets/images/split/image127.o (.data); - build/d/assets/images/split/image128.o (.data); - build/d/assets/images/split/image129.o (.data); - build/d/assets/images/split/image130.o (.data); - build/d/assets/images/split/image131.o (.data); - build/d/assets/images/split/image132.o (.data); - build/d/assets/images/split/image133.o (.data); - build/d/assets/images/split/image134.o (.data); - build/d/assets/images/split/image135.o (.data); - build/d/assets/images/split/image136.o (.data); - build/d/assets/images/split/image137.o (.data); - build/d/assets/images/split/image138.o (.data); - build/d/assets/images/split/image139.o (.data); - build/d/assets/images/split/image140.o (.data); - build/d/assets/images/split/image141.o (.data); - build/d/assets/images/split/image142.o (.data); - build/d/assets/images/split/image143.o (.data); - build/d/assets/images/split/image144.o (.data); - build/d/assets/images/split/image145.o (.data); - build/d/assets/images/split/image146.o (.data); - build/d/assets/images/split/image147.o (.data); - build/d/assets/images/split/image148.o (.data); - build/d/assets/images/split/image149.o (.data); - build/d/assets/images/split/image150.o (.data); - build/d/assets/images/split/image151.o (.data); - build/d/assets/images/split/image152.o (.data); - build/d/assets/images/split/image153.o (.data); - build/d/assets/images/split/image154.o (.data); - build/d/assets/images/split/image155.o (.data); - build/d/assets/images/split/image156.o (.data); - build/d/assets/images/split/image157.o (.data); - build/d/assets/images/split/image158.o (.data); - build/d/assets/images/split/image159.o (.data); - build/d/assets/images/split/image160.o (.data); - build/d/assets/images/split/image161.o (.data); - build/d/assets/images/split/image162.o (.data); - build/d/assets/images/split/image163.o (.data); - build/d/assets/images/split/image164.o (.data); - build/d/assets/images/split/image165.o (.data); - build/d/assets/images/split/image166.o (.data); - build/d/assets/images/split/image167.o (.data); - build/d/assets/images/split/image168.o (.data); - build/d/assets/images/split/image169.o (.data); - build/d/assets/images/split/image170.o (.data); - build/d/assets/images/split/image171.o (.data); - build/d/assets/images/split/image172.o (.data); - build/d/assets/images/split/image173.o (.data); - build/d/assets/images/split/image174.o (.data); - build/d/assets/images/split/image175.o (.data); - build/d/assets/images/split/image176.o (.data); - build/d/assets/images/split/image177.o (.data); - build/d/assets/images/split/image178.o (.data); - build/d/assets/images/split/image179.o (.data); - build/d/assets/images/split/image180.o (.data); - build/d/assets/images/split/image181.o (.data); - build/d/assets/images/split/image182.o (.data); - build/d/assets/images/split/image183.o (.data); - build/d/assets/images/split/image184.o (.data); - build/d/assets/images/split/image185.o (.data); - build/d/assets/images/split/image186.o (.data); - build/d/assets/images/split/image187.o (.data); - build/d/assets/images/split/image188.o (.data); - build/d/assets/images/split/image189.o (.data); - build/d/assets/images/split/image190.o (.data); - build/d/assets/images/split/image191.o (.data); - build/d/assets/images/split/image192.o (.data); - build/d/assets/images/split/image193.o (.data); - build/d/assets/images/split/image194.o (.data); - build/d/assets/images/split/image195.o (.data); - build/d/assets/images/split/image196.o (.data); - build/d/assets/images/split/image197.o (.data); - build/d/assets/images/split/image198.o (.data); - build/d/assets/images/split/image199.o (.data); - build/d/assets/images/split/image200.o (.data); - build/d/assets/images/split/image201.o (.data); - build/d/assets/images/split/image202.o (.data); - build/d/assets/images/split/image203.o (.data); - build/d/assets/images/split/image204.o (.data); - build/d/assets/images/split/image205.o (.data); - build/d/assets/images/split/image206.o (.data); - build/d/assets/images/split/image207.o (.data); - build/d/assets/images/split/image208.o (.data); - build/d/assets/images/split/image209.o (.data); - build/d/assets/images/split/image210.o (.data); - build/d/assets/images/split/image211.o (.data); - build/d/assets/images/split/image212.o (.data); - build/d/assets/images/split/image213.o (.data); - build/d/assets/images/split/image214.o (.data); - build/d/assets/images/split/image215.o (.data); - build/d/assets/images/split/image216.o (.data); - build/d/assets/images/split/image217.o (.data); - build/d/assets/images/split/image218.o (.data); - build/d/assets/images/split/image219.o (.data); - build/d/assets/images/split/image220.o (.data); - build/d/assets/images/split/image221.o (.data); - build/d/assets/images/split/image222.o (.data); - build/d/assets/images/split/image223.o (.data); - build/d/assets/images/split/image224.o (.data); - build/d/assets/images/split/image225.o (.data); - build/d/assets/images/split/image226.o (.data); - build/d/assets/images/split/image227.o (.data); - build/d/assets/images/split/image228.o (.data); - build/d/assets/images/split/image229.o (.data); - build/d/assets/images/split/image230.o (.data); - build/d/assets/images/split/image231.o (.data); - build/d/assets/images/split/image232.o (.data); - build/d/assets/images/split/image233.o (.data); - build/d/assets/images/split/image234.o (.data); - build/d/assets/images/split/image235.o (.data); - build/d/assets/images/split/image236.o (.data); - build/d/assets/images/split/image237.o (.data); - build/d/assets/images/split/image238.o (.data); - build/d/assets/images/split/image239.o (.data); - build/d/assets/images/split/image240.o (.data); - build/d/assets/images/split/image241.o (.data); - build/d/assets/images/split/image242.o (.data); - build/d/assets/images/split/image243.o (.data); - build/d/assets/images/split/image244.o (.data); - build/d/assets/images/split/image245.o (.data); - build/d/assets/images/split/image246.o (.data); - build/d/assets/images/split/image247.o (.data); - build/d/assets/images/split/image248.o (.data); - build/d/assets/images/split/image249.o (.data); - build/d/assets/images/split/image250.o (.data); - build/d/assets/images/split/image251.o (.data); - build/d/assets/images/split/image252.o (.data); - build/d/assets/images/split/image253.o (.data); - build/d/assets/images/split/image254.o (.data); - build/d/assets/images/split/image255.o (.data); - build/d/assets/images/split/image256.o (.data); - build/d/assets/images/split/image257.o (.data); - build/d/assets/images/split/image258.o (.data); - build/d/assets/images/split/image259.o (.data); - build/d/assets/images/split/image260.o (.data); - build/d/assets/images/split/image261.o (.data); - build/d/assets/images/split/image262.o (.data); - build/d/assets/images/split/image263.o (.data); - build/d/assets/images/split/image264.o (.data); - build/d/assets/images/split/image265.o (.data); - build/d/assets/images/split/image266.o (.data); - build/d/assets/images/split/image267.o (.data); - build/d/assets/images/split/image268.o (.data); - build/d/assets/images/split/image269.o (.data); - build/d/assets/images/split/image270.o (.data); - build/d/assets/images/split/image271.o (.data); - build/d/assets/images/split/image272.o (.data); - build/d/assets/images/split/image273.o (.data); - build/d/assets/images/split/image274.o (.data); - build/d/assets/images/split/image275.o (.data); - build/d/assets/images/split/image276.o (.data); - build/d/assets/images/split/image277.o (.data); - build/d/assets/images/split/image278.o (.data); - build/d/assets/images/split/image279.o (.data); - build/d/assets/images/split/image280.o (.data); - build/d/assets/images/split/image281.o (.data); - build/d/assets/images/split/image282.o (.data); - build/d/assets/images/split/image283.o (.data); - build/d/assets/images/split/image284.o (.data); - build/d/assets/images/split/image285.o (.data); - build/d/assets/images/split/image286.o (.data); - build/d/assets/images/split/image287.o (.data); - build/d/assets/images/split/image288.o (.data); - build/d/assets/images/split/image289.o (.data); - build/d/assets/images/split/image290.o (.data); - build/d/assets/images/split/image291.o (.data); - build/d/assets/images/split/image292.o (.data); - build/d/assets/images/split/image293.o (.data); - build/d/assets/images/split/image294.o (.data); - build/d/assets/images/split/image295.o (.data); - build/d/assets/images/split/image296.o (.data); - build/d/assets/images/split/image297.o (.data); - build/d/assets/images/split/image298.o (.data); - build/d/assets/images/split/image299.o (.data); - build/d/assets/images/split/image300.o (.data); - build/d/assets/images/split/image301.o (.data); - build/d/assets/images/split/image302.o (.data); - build/d/assets/images/split/image303.o (.data); - build/d/assets/images/split/image304.o (.data); - build/d/assets/images/split/image305.o (.data); - build/d/assets/images/split/image306.o (.data); - build/d/assets/images/split/image307.o (.data); - build/d/assets/images/split/image308.o (.data); - build/d/assets/images/split/image309.o (.data); - build/d/assets/images/split/image310.o (.data); - build/d/assets/images/split/image311.o (.data); - build/d/assets/images/split/image312.o (.data); - build/d/assets/images/split/image313.o (.data); - build/d/assets/images/split/image314.o (.data); - build/d/assets/images/split/image315.o (.data); - build/d/assets/images/split/image316.o (.data); - build/d/assets/images/split/image317.o (.data); - build/d/assets/images/split/image318.o (.data); - build/d/assets/images/split/image319.o (.data); - build/d/assets/images/split/image320.o (.data); - build/d/assets/images/split/image321.o (.data); - build/d/assets/images/split/image322.o (.data); - build/d/assets/images/split/image323.o (.data); - build/d/assets/images/split/image324.o (.data); - build/d/assets/images/split/image325.o (.data); - build/d/assets/images/split/image326.o (.data); - build/d/assets/images/split/image327.o (.data); - build/d/assets/images/split/image328.o (.data); - build/d/assets/images/split/image329.o (.data); - build/d/assets/images/split/image330.o (.data); - build/d/assets/images/split/image331.o (.data); - build/d/assets/images/split/image332.o (.data); - build/d/assets/images/split/image333.o (.data); - build/d/assets/images/split/image334.o (.data); - build/d/assets/images/split/image335.o (.data); - build/d/assets/images/split/image336.o (.data); - build/d/assets/images/split/image337.o (.data); - build/d/assets/images/split/image338.o (.data); - build/d/assets/images/split/image339.o (.data); - build/d/assets/images/split/image340.o (.data); - build/d/assets/images/split/image341.o (.data); - build/d/assets/images/split/image342.o (.data); - build/d/assets/images/split/image343.o (.data); - build/d/assets/images/split/image344.o (.data); - build/d/assets/images/split/image345.o (.data); - build/d/assets/images/split/image346.o (.data); - build/d/assets/images/split/image347.o (.data); - build/d/assets/images/split/image348.o (.data); - build/d/assets/images/split/image349.o (.data); - build/d/assets/images/split/image350.o (.data); - build/d/assets/images/split/image351.o (.data); - build/d/assets/images/split/image352.o (.data); - build/d/assets/images/split/image353.o (.data); - build/d/assets/images/split/image354.o (.data); - build/d/assets/images/split/image355.o (.data); - build/d/assets/images/split/image356.o (.data); - build/d/assets/images/split/image357.o (.data); - build/d/assets/images/split/image358.o (.data); - build/d/assets/images/split/image359.o (.data); - build/d/assets/images/split/image360.o (.data); - build/d/assets/images/split/image361.o (.data); - build/d/assets/images/split/image362.o (.data); - build/d/assets/images/split/image363.o (.data); - build/d/assets/images/split/image364.o (.data); - build/d/assets/images/split/image365.o (.data); - build/d/assets/images/split/image366.o (.data); - build/d/assets/images/split/image367.o (.data); - build/d/assets/images/split/image368.o (.data); - build/d/assets/images/split/image369.o (.data); - build/d/assets/images/split/image370.o (.data); - build/d/assets/images/split/image371.o (.data); - build/d/assets/images/split/image372.o (.data); - build/d/assets/images/split/image373.o (.data); - build/d/assets/images/split/image374.o (.data); - build/d/assets/images/split/image375.o (.data); - build/d/assets/images/split/image376.o (.data); - build/d/assets/images/split/image377.o (.data); - build/d/assets/images/split/image378.o (.data); - build/d/assets/images/split/image379.o (.data); - build/d/assets/images/split/image380.o (.data); - build/d/assets/images/split/image381.o (.data); - build/d/assets/images/split/image382.o (.data); - build/d/assets/images/split/image383.o (.data); - build/d/assets/images/split/image384.o (.data); - build/d/assets/images/split/image385.o (.data); - build/d/assets/images/split/image386.o (.data); - build/d/assets/images/split/image387.o (.data); - build/d/assets/images/split/image388.o (.data); - build/d/assets/images/split/image389.o (.data); - build/d/assets/images/split/image390.o (.data); - build/d/assets/images/split/image391.o (.data); - build/d/assets/images/split/image392.o (.data); - build/d/assets/images/split/image393.o (.data); - build/d/assets/images/split/image394.o (.data); - build/d/assets/images/split/image395.o (.data); - build/d/assets/images/split/image396.o (.data); - build/d/assets/images/split/image397.o (.data); - build/d/assets/images/split/image398.o (.data); - build/d/assets/images/split/image399.o (.data); - build/d/assets/images/split/image400.o (.data); - build/d/assets/images/split/image401.o (.data); - build/d/assets/images/split/image402.o (.data); - build/d/assets/images/split/image403.o (.data); - build/d/assets/images/split/image404.o (.data); - build/d/assets/images/split/image405.o (.data); - build/d/assets/images/split/image406.o (.data); - build/d/assets/images/split/image407.o (.data); - build/d/assets/images/split/image408.o (.data); - build/d/assets/images/split/image409.o (.data); - build/d/assets/images/split/image410.o (.data); - build/d/assets/images/split/image411.o (.data); - build/d/assets/images/split/image412.o (.data); - build/d/assets/images/split/image413.o (.data); - build/d/assets/images/split/image414.o (.data); - build/d/assets/images/split/image415.o (.data); - build/d/assets/images/split/image416.o (.data); - build/d/assets/images/split/image417.o (.data); - build/d/assets/images/split/image418.o (.data); - build/d/assets/images/split/image419.o (.data); - build/d/assets/images/split/image420.o (.data); - build/d/assets/images/split/image421.o (.data); - build/d/assets/images/split/image422.o (.data); - build/d/assets/images/split/image423.o (.data); - build/d/assets/images/split/image424.o (.data); - build/d/assets/images/split/image425.o (.data); - build/d/assets/images/split/image426.o (.data); - build/d/assets/images/split/image427.o (.data); - build/d/assets/images/split/image428.o (.data); - build/d/assets/images/split/image429.o (.data); - build/d/assets/images/split/image430.o (.data); - build/d/assets/images/split/image431.o (.data); - build/d/assets/images/split/image432.o (.data); - build/d/assets/images/split/image433.o (.data); - build/d/assets/images/split/image434.o (.data); - build/d/assets/images/split/image435.o (.data); - build/d/assets/images/split/image436.o (.data); - build/d/assets/images/split/image437.o (.data); - build/d/assets/images/split/image438.o (.data); - build/d/assets/images/split/image439.o (.data); - build/d/assets/images/split/image440.o (.data); - build/d/assets/images/split/image441.o (.data); - build/d/assets/images/split/image442.o (.data); - build/d/assets/images/split/image443.o (.data); - build/d/assets/images/split/image444.o (.data); - build/d/assets/images/split/image445.o (.data); - build/d/assets/images/split/image446.o (.data); - build/d/assets/images/split/image447.o (.data); - build/d/assets/images/split/image448.o (.data); - build/d/assets/images/split/image449.o (.data); - build/d/assets/images/split/image450.o (.data); - build/d/assets/images/split/image451.o (.data); - build/d/assets/images/split/image452.o (.data); - build/d/assets/images/split/image453.o (.data); - build/d/assets/images/split/image454.o (.data); - build/d/assets/images/split/image455.o (.data); - build/d/assets/images/split/image456.o (.data); - build/d/assets/images/split/image457.o (.data); - build/d/assets/images/split/image458.o (.data); - build/d/assets/images/split/image459.o (.data); - build/d/assets/images/split/image460.o (.data); - build/d/assets/images/split/image461.o (.data); - build/d/assets/images/split/image462.o (.data); - build/d/assets/images/split/image463.o (.data); - build/d/assets/images/split/image464.o (.data); - build/d/assets/images/split/image465.o (.data); - build/d/assets/images/split/image466.o (.data); - build/d/assets/images/split/image467.o (.data); - build/d/assets/images/split/image468.o (.data); - build/d/assets/images/split/image469.o (.data); - build/d/assets/images/split/image470.o (.data); - build/d/assets/images/split/image471.o (.data); - build/d/assets/images/split/image472.o (.data); - build/d/assets/images/split/image473.o (.data); - build/d/assets/images/split/image474.o (.data); - build/d/assets/images/split/image475.o (.data); - build/d/assets/images/split/image476.o (.data); - build/d/assets/images/split/image477.o (.data); - build/d/assets/images/split/image478.o (.data); - build/d/assets/images/split/image479.o (.data); - build/d/assets/images/split/image480.o (.data); - build/d/assets/images/split/image481.o (.data); - build/d/assets/images/split/image482.o (.data); - build/d/assets/images/split/image483.o (.data); - build/d/assets/images/split/image484.o (.data); - build/d/assets/images/split/image485.o (.data); - build/d/assets/images/split/image486.o (.data); - build/d/assets/images/split/image487.o (.data); - build/d/assets/images/split/image488.o (.data); - build/d/assets/images/split/image489.o (.data); - build/d/assets/images/split/image490.o (.data); - build/d/assets/images/split/image491.o (.data); - build/d/assets/images/split/image492.o (.data); - build/d/assets/images/split/image493.o (.data); - build/d/assets/images/split/image494.o (.data); - build/d/assets/images/split/image495.o (.data); - build/d/assets/images/split/image496.o (.data); - build/d/assets/images/split/image497.o (.data); - build/d/assets/images/split/image498.o (.data); - build/d/assets/images/split/image499.o (.data); - build/d/assets/images/split/image500.o (.data); - build/d/assets/images/split/image501.o (.data); - build/d/assets/images/split/image502.o (.data); - build/d/assets/images/split/image503.o (.data); - build/d/assets/images/split/image504.o (.data); - build/d/assets/images/split/image505.o (.data); - build/d/assets/images/split/image506.o (.data); - build/d/assets/images/split/image507.o (.data); - build/d/assets/images/split/image508.o (.data); - build/d/assets/images/split/image509.o (.data); - build/d/assets/images/split/image510.o (.data); - build/d/assets/images/split/image511.o (.data); - build/d/assets/images/split/image512.o (.data); - build/d/assets/images/split/image513.o (.data); - build/d/assets/images/split/image514.o (.data); - build/d/assets/images/split/image515.o (.data); - build/d/assets/images/split/image516.o (.data); - build/d/assets/images/split/image517.o (.data); - build/d/assets/images/split/image518.o (.data); - build/d/assets/images/split/image519.o (.data); - build/d/assets/images/split/image520.o (.data); - build/d/assets/images/split/image521.o (.data); - build/d/assets/images/split/image522.o (.data); - build/d/assets/images/split/image523.o (.data); - build/d/assets/images/split/image524.o (.data); - build/d/assets/images/split/image525.o (.data); - build/d/assets/images/split/image526.o (.data); - build/d/assets/images/split/image527.o (.data); - build/d/assets/images/split/image528.o (.data); - build/d/assets/images/split/image529.o (.data); - build/d/assets/images/split/image530.o (.data); - build/d/assets/images/split/image531.o (.data); - build/d/assets/images/split/image532.o (.data); - build/d/assets/images/split/image533.o (.data); - build/d/assets/images/split/image534.o (.data); - build/d/assets/images/split/image535.o (.data); - build/d/assets/images/split/image536.o (.data); - build/d/assets/images/split/image537.o (.data); - build/d/assets/images/split/image538.o (.data); - build/d/assets/images/split/image539.o (.data); - build/d/assets/images/split/image540.o (.data); - build/d/assets/images/split/image541.o (.data); - build/d/assets/images/split/image542.o (.data); - build/d/assets/images/split/image543.o (.data); - build/d/assets/images/split/image544.o (.data); - build/d/assets/images/split/image545.o (.data); - build/d/assets/images/split/image546.o (.data); - build/d/assets/images/split/image547.o (.data); - build/d/assets/images/split/image548.o (.data); - build/d/assets/images/split/image549.o (.data); - build/d/assets/images/split/image550.o (.data); - build/d/assets/images/split/image551.o (.data); - build/d/assets/images/split/image552.o (.data); - build/d/assets/images/split/image553.o (.data); - build/d/assets/images/split/image554.o (.data); - build/d/assets/images/split/image555.o (.data); - build/d/assets/images/split/image556.o (.data); - build/d/assets/images/split/image557.o (.data); - build/d/assets/images/split/image558.o (.data); - build/d/assets/images/split/image559.o (.data); - build/d/assets/images/split/image560.o (.data); - build/d/assets/images/split/image561.o (.data); - build/d/assets/images/split/image562.o (.data); - build/d/assets/images/split/image563.o (.data); - build/d/assets/images/split/image564.o (.data); - build/d/assets/images/split/image565.o (.data); - build/d/assets/images/split/image566.o (.data); - build/d/assets/images/split/image567.o (.data); - build/d/assets/images/split/image568.o (.data); - build/d/assets/images/split/image569.o (.data); - build/d/assets/images/split/image570.o (.data); - build/d/assets/images/split/image571.o (.data); - build/d/assets/images/split/image572.o (.data); - build/d/assets/images/split/image573.o (.data); - build/d/assets/images/split/image574.o (.data); - build/d/assets/images/split/image575.o (.data); - build/d/assets/images/split/image576.o (.data); - build/d/assets/images/split/image577.o (.data); - build/d/assets/images/split/image578.o (.data); - build/d/assets/images/split/image579.o (.data); - build/d/assets/images/split/image580.o (.data); - build/d/assets/images/split/image581.o (.data); - build/d/assets/images/split/image582.o (.data); - build/d/assets/images/split/image583.o (.data); - build/d/assets/images/split/image584.o (.data); - build/d/assets/images/split/image585.o (.data); - build/d/assets/images/split/image586.o (.data); - build/d/assets/images/split/image587.o (.data); - build/d/assets/images/split/image588.o (.data); - build/d/assets/images/split/image589.o (.data); - build/d/assets/images/split/image590.o (.data); - build/d/assets/images/split/image591.o (.data); - build/d/assets/images/split/image592.o (.data); - build/d/assets/images/split/image593.o (.data); - build/d/assets/images/split/image594.o (.data); - build/d/assets/images/split/image595.o (.data); - build/d/assets/images/split/image596.o (.data); - build/d/assets/images/split/image597.o (.data); - build/d/assets/images/split/image598.o (.data); - build/d/assets/images/split/image599.o (.data); - build/d/assets/images/split/image600.o (.data); - build/d/assets/images/split/image601.o (.data); - build/d/assets/images/split/image602.o (.data); - build/d/assets/images/split/image603.o (.data); - build/d/assets/images/split/image604.o (.data); - build/d/assets/images/split/image605.o (.data); - build/d/assets/images/split/image606.o (.data); - build/d/assets/images/split/image607.o (.data); - build/d/assets/images/split/image608.o (.data); - build/d/assets/images/split/image609.o (.data); - build/d/assets/images/split/image610.o (.data); - build/d/assets/images/split/image611.o (.data); - build/d/assets/images/split/image612.o (.data); - build/d/assets/images/split/image613.o (.data); - build/d/assets/images/split/image614.o (.data); - build/d/assets/images/split/image615.o (.data); - build/d/assets/images/split/image616.o (.data); - build/d/assets/images/split/image617.o (.data); - build/d/assets/images/split/image618.o (.data); - build/d/assets/images/split/image619.o (.data); - build/d/assets/images/split/image620.o (.data); - build/d/assets/images/split/image621.o (.data); - build/d/assets/images/split/image622.o (.data); - build/d/assets/images/split/image623.o (.data); - build/d/assets/images/split/image624.o (.data); - build/d/assets/images/split/image625.o (.data); - build/d/assets/images/split/image626.o (.data); - build/d/assets/images/split/image627.o (.data); - build/d/assets/images/split/image628.o (.data); - build/d/assets/images/split/image629.o (.data); - build/d/assets/images/split/image630.o (.data); - build/d/assets/images/split/image631.o (.data); - build/d/assets/images/split/image632.o (.data); - build/d/assets/images/split/image633.o (.data); - build/d/assets/images/split/image634.o (.data); - build/d/assets/images/split/image635.o (.data); - build/d/assets/images/split/image636.o (.data); - build/d/assets/images/split/image637.o (.data); - build/d/assets/images/split/image638.o (.data); - build/d/assets/images/split/image639.o (.data); - build/d/assets/images/split/image640.o (.data); - build/d/assets/images/split/image641.o (.data); - build/d/assets/images/split/image642.o (.data); - build/d/assets/images/split/image643.o (.data); - build/d/assets/images/split/image644.o (.data); - build/d/assets/images/split/image645.o (.data); - build/d/assets/images/split/image646.o (.data); - build/d/assets/images/split/image647.o (.data); - build/d/assets/images/split/image648.o (.data); - build/d/assets/images/split/image649.o (.data); - build/d/assets/images/split/image650.o (.data); - build/d/assets/images/split/image651.o (.data); - build/d/assets/images/split/image652.o (.data); - build/d/assets/images/split/image653.o (.data); - build/d/assets/images/split/image654.o (.data); - build/d/assets/images/split/image655.o (.data); - build/d/assets/images/split/image656.o (.data); - build/d/assets/images/split/image657.o (.data); - build/d/assets/images/split/image658.o (.data); - build/d/assets/images/split/image659.o (.data); - build/d/assets/images/split/image660.o (.data); - build/d/assets/images/split/image661.o (.data); - build/d/assets/images/split/image662.o (.data); - build/d/assets/images/split/image663.o (.data); - build/d/assets/images/split/image664.o (.data); - build/d/assets/images/split/image665.o (.data); - build/d/assets/images/split/image666.o (.data); - build/d/assets/images/split/image667.o (.data); - build/d/assets/images/split/image668.o (.data); - build/d/assets/images/split/image669.o (.data); - build/d/assets/images/split/image670.o (.data); - build/d/assets/images/split/image671.o (.data); - build/d/assets/images/split/image672.o (.data); - build/d/assets/images/split/image673.o (.data); - build/d/assets/images/split/image674.o (.data); - build/d/assets/images/split/image675.o (.data); - build/d/assets/images/split/image676.o (.data); - build/d/assets/images/split/image677.o (.data); - build/d/assets/images/split/image678.o (.data); - build/d/assets/images/split/image679.o (.data); - build/d/assets/images/split/image680.o (.data); - build/d/assets/images/split/image681.o (.data); - build/d/assets/images/split/image682.o (.data); - build/d/assets/images/split/image683.o (.data); - build/d/assets/images/split/image684.o (.data); - build/d/assets/images/split/image685.o (.data); - build/d/assets/images/split/image686.o (.data); - build/d/assets/images/split/image687.o (.data); - build/d/assets/images/split/image688.o (.data); - build/d/assets/images/split/image689.o (.data); - build/d/assets/images/split/image690.o (.data); - build/d/assets/images/split/image691.o (.data); - build/d/assets/images/split/image692.o (.data); - build/d/assets/images/split/image693.o (.data); - build/d/assets/images/split/image694.o (.data); - build/d/assets/images/split/image695.o (.data); - build/d/assets/images/split/image696.o (.data); - build/d/assets/images/split/image697.o (.data); - build/d/assets/images/split/image698.o (.data); - build/d/assets/images/split/image699.o (.data); - build/d/assets/images/split/image700.o (.data); - build/d/assets/images/split/image701.o (.data); - build/d/assets/images/split/image702.o (.data); - build/d/assets/images/split/image703.o (.data); - build/d/assets/images/split/image704.o (.data); - build/d/assets/images/split/image705.o (.data); - build/d/assets/images/split/image706.o (.data); - build/d/assets/images/split/image707.o (.data); - build/d/assets/images/split/image708.o (.data); - build/d/assets/images/split/image709.o (.data); - build/d/assets/images/split/image710.o (.data); - build/d/assets/images/split/image711.o (.data); - build/d/assets/images/split/image712.o (.data); - build/d/assets/images/split/image713.o (.data); - build/d/assets/images/split/image714.o (.data); - build/d/assets/images/split/image715.o (.data); - build/d/assets/images/split/image716.o (.data); - build/d/assets/images/split/image717.o (.data); - build/d/assets/images/split/image718.o (.data); - build/d/assets/images/split/image719.o (.data); - build/d/assets/images/split/image720.o (.data); - build/d/assets/images/split/image721.o (.data); - build/d/assets/images/split/image722.o (.data); - build/d/assets/images/split/image723.o (.data); - build/d/assets/images/split/image724.o (.data); - build/d/assets/images/split/image725.o (.data); - build/d/assets/images/split/image726.o (.data); - build/d/assets/images/split/image727.o (.data); - build/d/assets/images/split/image728.o (.data); - build/d/assets/images/split/image729.o (.data); - build/d/assets/images/split/image730.o (.data); - build/d/assets/images/split/image731.o (.data); - build/d/assets/images/split/image732.o (.data); - build/d/assets/images/split/image733.o (.data); - build/d/assets/images/split/image734.o (.data); - build/d/assets/images/split/image735.o (.data); - build/d/assets/images/split/image736.o (.data); - build/d/assets/images/split/image737.o (.data); - build/d/assets/images/split/image738.o (.data); - build/d/assets/images/split/image739.o (.data); - build/d/assets/images/split/image740.o (.data); - build/d/assets/images/split/image741.o (.data); - build/d/assets/images/split/image742.o (.data); - build/d/assets/images/split/image743.o (.data); - build/d/assets/images/split/image744.o (.data); - build/d/assets/images/split/image745.o (.data); - build/d/assets/images/split/image746.o (.data); - build/d/assets/images/split/image747.o (.data); - build/d/assets/images/split/image748.o (.data); - build/d/assets/images/split/image749.o (.data); - build/d/assets/images/split/image750.o (.data); - build/d/assets/images/split/image751.o (.data); - build/d/assets/images/split/image752.o (.data); - build/d/assets/images/split/image753.o (.data); - build/d/assets/images/split/image754.o (.data); - build/d/assets/images/split/image755.o (.data); - build/d/assets/images/split/image756.o (.data); - build/d/assets/images/split/image757.o (.data); - build/d/assets/images/split/image758.o (.data); - build/d/assets/images/split/image759.o (.data); - build/d/assets/images/split/image760.o (.data); - build/d/assets/images/split/image761.o (.data); - build/d/assets/images/split/image762.o (.data); - build/d/assets/images/split/image763.o (.data); - build/d/assets/images/split/image764.o (.data); - build/d/assets/images/split/image765.o (.data); - build/d/assets/images/split/image766.o (.data); - build/d/assets/images/split/image767.o (.data); - build/d/assets/images/split/image768.o (.data); - build/d/assets/images/split/image769.o (.data); - build/d/assets/images/split/image770.o (.data); - build/d/assets/images/split/image771.o (.data); - build/d/assets/images/split/image772.o (.data); - build/d/assets/images/split/image773.o (.data); - build/d/assets/images/split/image774.o (.data); - build/d/assets/images/split/image775.o (.data); - build/d/assets/images/split/image776.o (.data); - build/d/assets/images/split/image777.o (.data); - build/d/assets/images/split/image778.o (.data); - build/d/assets/images/split/image779.o (.data); - build/d/assets/images/split/image780.o (.data); - build/d/assets/images/split/image781.o (.data); - build/d/assets/images/split/image782.o (.data); - build/d/assets/images/split/image783.o (.data); - build/d/assets/images/split/image784.o (.data); - build/d/assets/images/split/image785.o (.data); - build/d/assets/images/split/image786.o (.data); - build/d/assets/images/split/image787.o (.data); - build/d/assets/images/split/image788.o (.data); - build/d/assets/images/split/image789.o (.data); - build/d/assets/images/split/image790.o (.data); - build/d/assets/images/split/image791.o (.data); - build/d/assets/images/split/image792.o (.data); - build/d/assets/images/split/image793.o (.data); - build/d/assets/images/split/image794.o (.data); - build/d/assets/images/split/image795.o (.data); - build/d/assets/images/split/image796.o (.data); - build/d/assets/images/split/image797.o (.data); - build/d/assets/images/split/image798.o (.data); - build/d/assets/images/split/image799.o (.data); - build/d/assets/images/split/image800.o (.data); - build/d/assets/images/split/image801.o (.data); - build/d/assets/images/split/image802.o (.data); - build/d/assets/images/split/image803.o (.data); - build/d/assets/images/split/image804.o (.data); - build/d/assets/images/split/image805.o (.data); - build/d/assets/images/split/image806.o (.data); - build/d/assets/images/split/image807.o (.data); - build/d/assets/images/split/image808.o (.data); - build/d/assets/images/split/image809.o (.data); - build/d/assets/images/split/image810.o (.data); - build/d/assets/images/split/image811.o (.data); - build/d/assets/images/split/image812.o (.data); - build/d/assets/images/split/image813.o (.data); - build/d/assets/images/split/image814.o (.data); - build/d/assets/images/split/image815.o (.data); - build/d/assets/images/split/image816.o (.data); - build/d/assets/images/split/image817.o (.data); - build/d/assets/images/split/image818.o (.data); - build/d/assets/images/split/image819.o (.data); - build/d/assets/images/split/image820.o (.data); - build/d/assets/images/split/image821.o (.data); - build/d/assets/images/split/image822.o (.data); - build/d/assets/images/split/image823.o (.data); - build/d/assets/images/split/image824.o (.data); - build/d/assets/images/split/image825.o (.data); - build/d/assets/images/split/image826.o (.data); - build/d/assets/images/split/image827.o (.data); - build/d/assets/images/split/image828.o (.data); - build/d/assets/images/split/image829.o (.data); - build/d/assets/images/split/image830.o (.data); - build/d/assets/images/split/image831.o (.data); - build/d/assets/images/split/image832.o (.data); - build/d/assets/images/split/image833.o (.data); - build/d/assets/images/split/image834.o (.data); - build/d/assets/images/split/image835.o (.data); - build/d/assets/images/split/image836.o (.data); - build/d/assets/images/split/image837.o (.data); - build/d/assets/images/split/image838.o (.data); - build/d/assets/images/split/image839.o (.data); - build/d/assets/images/split/image840.o (.data); - build/d/assets/images/split/image841.o (.data); - build/d/assets/images/split/image842.o (.data); - build/d/assets/images/split/image843.o (.data); - build/d/assets/images/split/image844.o (.data); - build/d/assets/images/split/image845.o (.data); - build/d/assets/images/split/image846.o (.data); - build/d/assets/images/split/image847.o (.data); - build/d/assets/images/split/image848.o (.data); - build/d/assets/images/split/image849.o (.data); - build/d/assets/images/split/image850.o (.data); - build/d/assets/images/split/image851.o (.data); - build/d/assets/images/split/image852.o (.data); - build/d/assets/images/split/image853.o (.data); - build/d/assets/images/split/image854.o (.data); - build/d/assets/images/split/image855.o (.data); - build/d/assets/images/split/image856.o (.data); - build/d/assets/images/split/image857.o (.data); - build/d/assets/images/split/image858.o (.data); - build/d/assets/images/split/image859.o (.data); - build/d/assets/images/split/image860.o (.data); - build/d/assets/images/split/image861.o (.data); - build/d/assets/images/split/image862.o (.data); - build/d/assets/images/split/image863.o (.data); - build/d/assets/images/split/image864.o (.data); - build/d/assets/images/split/image865.o (.data); - build/d/assets/images/split/image866.o (.data); - build/d/assets/images/split/image867.o (.data); - build/d/assets/images/split/image868.o (.data); - build/d/assets/images/split/image869.o (.data); - build/d/assets/images/split/image870.o (.data); - build/d/assets/images/split/image871.o (.data); - build/d/assets/images/split/image872.o (.data); - build/d/assets/images/split/image873.o (.data); - build/d/assets/images/split/image874.o (.data); - build/d/assets/images/split/image875.o (.data); - build/d/assets/images/split/image876.o (.data); - build/d/assets/images/split/image877.o (.data); - build/d/assets/images/split/image878.o (.data); - build/d/assets/images/split/image879.o (.data); - build/d/assets/images/split/image880.o (.data); - build/d/assets/images/split/image881.o (.data); - build/d/assets/images/split/image882.o (.data); - build/d/assets/images/split/image883.o (.data); - build/d/assets/images/split/image884.o (.data); - build/d/assets/images/split/image885.o (.data); - build/d/assets/images/split/image886.o (.data); - build/d/assets/images/split/image887.o (.data); - build/d/assets/images/split/image888.o (.data); - build/d/assets/images/split/image889.o (.data); - build/d/assets/images/split/image890.o (.data); - build/d/assets/images/split/image891.o (.data); - build/d/assets/images/split/image892.o (.data); - build/d/assets/images/split/image893.o (.data); - build/d/assets/images/split/image894.o (.data); - build/d/assets/images/split/image895.o (.data); - build/d/assets/images/split/image896.o (.data); - build/d/assets/images/split/image897.o (.data); - build/d/assets/images/split/image898.o (.data); - build/d/assets/images/split/image899.o (.data); - build/d/assets/images/split/image900.o (.data); - build/d/assets/images/split/image901.o (.data); - build/d/assets/images/split/image902.o (.data); - build/d/assets/images/split/image903.o (.data); - build/d/assets/images/split/image904.o (.data); - build/d/assets/images/split/image905.o (.data); - build/d/assets/images/split/image906.o (.data); - build/d/assets/images/split/image907.o (.data); - build/d/assets/images/split/image908.o (.data); - build/d/assets/images/split/image909.o (.data); - build/d/assets/images/split/image910.o (.data); - build/d/assets/images/split/image911.o (.data); - build/d/assets/images/split/image912.o (.data); - build/d/assets/images/split/image913.o (.data); - build/d/assets/images/split/image914.o (.data); - build/d/assets/images/split/image915.o (.data); - build/d/assets/images/split/image916.o (.data); - build/d/assets/images/split/image917.o (.data); - build/d/assets/images/split/image918.o (.data); - build/d/assets/images/split/image919.o (.data); - build/d/assets/images/split/image920.o (.data); - build/d/assets/images/split/image921.o (.data); - build/d/assets/images/split/image922.o (.data); - build/d/assets/images/split/image923.o (.data); - build/d/assets/images/split/image924.o (.data); - build/d/assets/images/split/image925.o (.data); - build/d/assets/images/split/image926.o (.data); - build/d/assets/images/split/image927.o (.data); - build/d/assets/images/split/image928.o (.data); - build/d/assets/images/split/image929.o (.data); - build/d/assets/images/split/image930.o (.data); - build/d/assets/images/split/image931.o (.data); - build/d/assets/images/split/image932.o (.data); - build/d/assets/images/split/image933.o (.data); - build/d/assets/images/split/image934.o (.data); - build/d/assets/images/split/image935.o (.data); - build/d/assets/images/split/image936.o (.data); - build/d/assets/images/split/image937.o (.data); - build/d/assets/images/split/image938.o (.data); - build/d/assets/images/split/image939.o (.data); - build/d/assets/images/split/image940.o (.data); - build/d/assets/images/split/image941.o (.data); - build/d/assets/images/split/image942.o (.data); - build/d/assets/images/split/image943.o (.data); - build/d/assets/images/split/image944.o (.data); - build/d/assets/images/split/image945.o (.data); - build/d/assets/images/split/image946.o (.data); - build/d/assets/images/split/image947.o (.data); - build/d/assets/images/split/image948.o (.data); - build/d/assets/images/split/image949.o (.data); - build/d/assets/images/split/image950.o (.data); - build/d/assets/images/split/image951.o (.data); - build/d/assets/images/split/image952.o (.data); - build/d/assets/images/split/image953.o (.data); - build/d/assets/images/split/image954.o (.data); - build/d/assets/images/split/image955.o (.data); - build/d/assets/images/split/image956.o (.data); - build/d/assets/images/split/image957.o (.data); - build/d/assets/images/split/image958.o (.data); - build/d/assets/images/split/image959.o (.data); - build/d/assets/images/split/image960.o (.data); - build/d/assets/images/split/image961.o (.data); - build/d/assets/images/split/image962.o (.data); - build/d/assets/images/split/image963.o (.data); - build/d/assets/images/split/image964.o (.data); - build/d/assets/images/split/image965.o (.data); - build/d/assets/images/split/image966.o (.data); - build/d/assets/images/split/image967.o (.data); - build/d/assets/images/split/image968.o (.data); - build/d/assets/images/split/image969.o (.data); - build/d/assets/images/split/image970.o (.data); - build/d/assets/images/split/image971.o (.data); - build/d/assets/images/split/image972.o (.data); - build/d/assets/images/split/image973.o (.data); - build/d/assets/images/split/image974.o (.data); - build/d/assets/images/split/image975.o (.data); - build/d/assets/images/split/image976.o (.data); - build/d/assets/images/split/image977.o (.data); - build/d/assets/images/split/image978.o (.data); - build/d/assets/images/split/image979.o (.data); - build/d/assets/images/split/image980.o (.data); - build/d/assets/images/split/image981.o (.data); - build/d/assets/images/split/image982.o (.data); - build/d/assets/images/split/image983.o (.data); - build/d/assets/images/split/image984.o (.data); - build/d/assets/images/split/image985.o (.data); - build/d/assets/images/split/image986.o (.data); - build/d/assets/images/split/image987.o (.data); - build/d/assets/images/split/image988.o (.data); - build/d/assets/images/split/image989.o (.data); - build/d/assets/images/split/image990.o (.data); - build/d/assets/images/split/image991.o (.data); - build/d/assets/images/split/image992.o (.data); - build/d/assets/images/split/image993.o (.data); - build/d/assets/images/split/image994.o (.data); - build/d/assets/images/split/image995.o (.data); - build/d/assets/images/split/image996.o (.data); - build/d/assets/images/split/image997.o (.data); - build/d/assets/images/split/image998.o (.data); - build/d/assets/images/split/image999.o (.data); - build/d/assets/images/split/image1000.o (.data); - build/d/assets/images/split/image1001.o (.data); - build/d/assets/images/split/image1002.o (.data); - build/d/assets/images/split/image1003.o (.data); - build/d/assets/images/split/image1004.o (.data); - build/d/assets/images/split/image1005.o (.data); - build/d/assets/images/split/image1006.o (.data); - build/d/assets/images/split/image1007.o (.data); - build/d/assets/images/split/image1008.o (.data); - build/d/assets/images/split/image1009.o (.data); - build/d/assets/images/split/image1010.o (.data); - build/d/assets/images/split/image1011.o (.data); - build/d/assets/images/split/image1012.o (.data); - build/d/assets/images/split/image1013.o (.data); - build/d/assets/images/split/image1014.o (.data); - build/d/assets/images/split/image1015.o (.data); - build/d/assets/images/split/image1016.o (.data); - build/d/assets/images/split/image1017.o (.data); - build/d/assets/images/split/image1018.o (.data); - build/d/assets/images/split/image1019.o (.data); - build/d/assets/images/split/image1020.o (.data); - build/d/assets/images/split/image1021.o (.data); - build/d/assets/images/split/image1022.o (.data); - build/d/assets/images/split/image1023.o (.data); - build/d/assets/images/split/image1024.o (.data); - build/d/assets/images/split/image1025.o (.data); - build/d/assets/images/split/image1026.o (.data); - build/d/assets/images/split/image1027.o (.data); - build/d/assets/images/split/image1028.o (.data); - build/d/assets/images/split/image1029.o (.data); - build/d/assets/images/split/image1030.o (.data); - build/d/assets/images/split/image1031.o (.data); - build/d/assets/images/split/image1032.o (.data); - build/d/assets/images/split/image1033.o (.data); - build/d/assets/images/split/image1034.o (.data); - build/d/assets/images/split/image1035.o (.data); - build/d/assets/images/split/image1036.o (.data); - build/d/assets/images/split/image1037.o (.data); - build/d/assets/images/split/image1038.o (.data); - build/d/assets/images/split/image1039.o (.data); - build/d/assets/images/split/image1040.o (.data); - build/d/assets/images/split/image1041.o (.data); - build/d/assets/images/split/image1042.o (.data); - build/d/assets/images/split/image1043.o (.data); - build/d/assets/images/split/image1044.o (.data); - build/d/assets/images/split/image1045.o (.data); - build/d/assets/images/split/image1046.o (.data); - build/d/assets/images/split/image1047.o (.data); - build/d/assets/images/split/image1048.o (.data); - build/d/assets/images/split/image1049.o (.data); - build/d/assets/images/split/image1050.o (.data); - build/d/assets/images/split/image1051.o (.data); - build/d/assets/images/split/image1052.o (.data); - build/d/assets/images/split/image1053.o (.data); - build/d/assets/images/split/image1054.o (.data); - build/d/assets/images/split/image1055.o (.data); - build/d/assets/images/split/image1056.o (.data); - build/d/assets/images/split/image1057.o (.data); - build/d/assets/images/split/image1058.o (.data); - build/d/assets/images/split/image1059.o (.data); - build/d/assets/images/split/image1060.o (.data); - build/d/assets/images/split/image1061.o (.data); - build/d/assets/images/split/image1062.o (.data); - build/d/assets/images/split/image1063.o (.data); - build/d/assets/images/split/image1064.o (.data); - build/d/assets/images/split/image1065.o (.data); - build/d/assets/images/split/image1066.o (.data); - build/d/assets/images/split/image1067.o (.data); - build/d/assets/images/split/image1068.o (.data); - build/d/assets/images/split/image1069.o (.data); - build/d/assets/images/split/image1070.o (.data); - build/d/assets/images/split/image1071.o (.data); - build/d/assets/images/split/image1072.o (.data); - build/d/assets/images/split/image1073.o (.data); - build/d/assets/images/split/image1074.o (.data); - build/d/assets/images/split/image1075.o (.data); - build/d/assets/images/split/image1076.o (.data); - build/d/assets/images/split/image1077.o (.data); - build/d/assets/images/split/image1078.o (.data); - build/d/assets/images/split/image1079.o (.data); - build/d/assets/images/split/image1080.o (.data); - build/d/assets/images/split/image1081.o (.data); - build/d/assets/images/split/image1082.o (.data); - build/d/assets/images/split/image1083.o (.data); - build/d/assets/images/split/image1084.o (.data); - build/d/assets/images/split/image1085.o (.data); - build/d/assets/images/split/image1086.o (.data); - build/d/assets/images/split/image1087.o (.data); - build/d/assets/images/split/image1088.o (.data); - build/d/assets/images/split/image1089.o (.data); - build/d/assets/images/split/image1090.o (.data); - build/d/assets/images/split/image1091.o (.data); - build/d/assets/images/split/image1092.o (.data); - build/d/assets/images/split/image1093.o (.data); - build/d/assets/images/split/image1094.o (.data); - build/d/assets/images/split/image1095.o (.data); - build/d/assets/images/split/image1096.o (.data); - build/d/assets/images/split/image1097.o (.data); - build/d/assets/images/split/image1098.o (.data); - build/d/assets/images/split/image1099.o (.data); - build/d/assets/images/split/image1100.o (.data); - build/d/assets/images/split/image1101.o (.data); - build/d/assets/images/split/image1102.o (.data); - build/d/assets/images/split/image1103.o (.data); - build/d/assets/images/split/image1104.o (.data); - build/d/assets/images/split/image1105.o (.data); - build/d/assets/images/split/image1106.o (.data); - build/d/assets/images/split/image1107.o (.data); - build/d/assets/images/split/image1108.o (.data); - build/d/assets/images/split/image1109.o (.data); - build/d/assets/images/split/image1110.o (.data); - build/d/assets/images/split/image1111.o (.data); - build/d/assets/images/split/image1112.o (.data); - build/d/assets/images/split/image1113.o (.data); - build/d/assets/images/split/image1114.o (.data); - build/d/assets/images/split/image1115.o (.data); - build/d/assets/images/split/image1116.o (.data); - build/d/assets/images/split/image1117.o (.data); - build/d/assets/images/split/image1118.o (.data); - build/d/assets/images/split/image1119.o (.data); - build/d/assets/images/split/image1120.o (.data); - build/d/assets/images/split/image1121.o (.data); - build/d/assets/images/split/image1122.o (.data); - build/d/assets/images/split/image1123.o (.data); - build/d/assets/images/split/image1124.o (.data); - build/d/assets/images/split/image1125.o (.data); - build/d/assets/images/split/image1126.o (.data); - build/d/assets/images/split/image1127.o (.data); - build/d/assets/images/split/image1128.o (.data); - build/d/assets/images/split/image1129.o (.data); - build/d/assets/images/split/image1130.o (.data); - build/d/assets/images/split/image1131.o (.data); - build/d/assets/images/split/image1132.o (.data); - build/d/assets/images/split/image1133.o (.data); - build/d/assets/images/split/image1134.o (.data); - build/d/assets/images/split/image1135.o (.data); - build/d/assets/images/split/image1136.o (.data); - build/d/assets/images/split/image1137.o (.data); - build/d/assets/images/split/image1138.o (.data); - build/d/assets/images/split/image1139.o (.data); - build/d/assets/images/split/image1140.o (.data); - build/d/assets/images/split/image1141.o (.data); - build/d/assets/images/split/image1142.o (.data); - build/d/assets/images/split/image1143.o (.data); - build/d/assets/images/split/image1144.o (.data); - build/d/assets/images/split/image1145.o (.data); - build/d/assets/images/split/image1146.o (.data); - build/d/assets/images/split/image1147.o (.data); - build/d/assets/images/split/image1148.o (.data); - build/d/assets/images/split/image1149.o (.data); - build/d/assets/images/split/image1150.o (.data); - build/d/assets/images/split/image1151.o (.data); - build/d/assets/images/split/image1152.o (.data); - build/d/assets/images/split/image1153.o (.data); - build/d/assets/images/split/image1154.o (.data); - build/d/assets/images/split/image1155.o (.data); - build/d/assets/images/split/image1156.o (.data); - build/d/assets/images/split/image1157.o (.data); - build/d/assets/images/split/image1158.o (.data); - build/d/assets/images/split/image1159.o (.data); - build/d/assets/images/split/image1160.o (.data); - build/d/assets/images/split/image1161.o (.data); - build/d/assets/images/split/image1162.o (.data); - build/d/assets/images/split/image1163.o (.data); - build/d/assets/images/split/image1164.o (.data); - build/d/assets/images/split/image1165.o (.data); - build/d/assets/images/split/image1166.o (.data); - build/d/assets/images/split/image1167.o (.data); - build/d/assets/images/split/image1168.o (.data); - build/d/assets/images/split/image1169.o (.data); - build/d/assets/images/split/image1170.o (.data); - build/d/assets/images/split/image1171.o (.data); - build/d/assets/images/split/image1172.o (.data); - build/d/assets/images/split/image1173.o (.data); - build/d/assets/images/split/image1174.o (.data); - build/d/assets/images/split/image1175.o (.data); - build/d/assets/images/split/image1176.o (.data); - build/d/assets/images/split/image1177.o (.data); - build/d/assets/images/split/image1178.o (.data); - build/d/assets/images/split/image1179.o (.data); - build/d/assets/images/split/image1180.o (.data); - build/d/assets/images/split/image1181.o (.data); - build/d/assets/images/split/image1182.o (.data); - build/d/assets/images/split/image1183.o (.data); - build/d/assets/images/split/image1184.o (.data); - build/d/assets/images/split/image1185.o (.data); - build/d/assets/images/split/image1186.o (.data); - build/d/assets/images/split/image1187.o (.data); - build/d/assets/images/split/image1188.o (.data); - build/d/assets/images/split/image1189.o (.data); - build/d/assets/images/split/image1190.o (.data); - build/d/assets/images/split/image1191.o (.data); - build/d/assets/images/split/image1192.o (.data); - build/d/assets/images/split/image1193.o (.data); - build/d/assets/images/split/image1194.o (.data); - build/d/assets/images/split/image1195.o (.data); - build/d/assets/images/split/image1196.o (.data); - build/d/assets/images/split/image1197.o (.data); - build/d/assets/images/split/image1198.o (.data); - build/d/assets/images/split/image1199.o (.data); - build/d/assets/images/split/image1200.o (.data); - build/d/assets/images/split/image1201.o (.data); - build/d/assets/images/split/image1202.o (.data); - build/d/assets/images/split/image1203.o (.data); - build/d/assets/images/split/image1204.o (.data); - build/d/assets/images/split/image1205.o (.data); - build/d/assets/images/split/image1206.o (.data); - build/d/assets/images/split/image1207.o (.data); - build/d/assets/images/split/image1208.o (.data); - build/d/assets/images/split/image1209.o (.data); - build/d/assets/images/split/image1210.o (.data); - build/d/assets/images/split/image1211.o (.data); - build/d/assets/images/split/image1212.o (.data); - build/d/assets/images/split/image1213.o (.data); - build/d/assets/images/split/image1214.o (.data); - build/d/assets/images/split/image1215.o (.data); - build/d/assets/images/split/image1216.o (.data); - build/d/assets/images/split/image1217.o (.data); - build/d/assets/images/split/image1218.o (.data); - build/d/assets/images/split/image1219.o (.data); - build/d/assets/images/split/image1220.o (.data); - build/d/assets/images/split/image1221.o (.data); - build/d/assets/images/split/image1222.o (.data); - build/d/assets/images/split/image1223.o (.data); - build/d/assets/images/split/image1224.o (.data); - build/d/assets/images/split/image1225.o (.data); - build/d/assets/images/split/image1226.o (.data); - build/d/assets/images/split/image1227.o (.data); - build/d/assets/images/split/image1228.o (.data); - build/d/assets/images/split/image1229.o (.data); - build/d/assets/images/split/image1230.o (.data); - build/d/assets/images/split/image1231.o (.data); - build/d/assets/images/split/image1232.o (.data); - build/d/assets/images/split/image1233.o (.data); - build/d/assets/images/split/image1234.o (.data); - build/d/assets/images/split/image1235.o (.data); - build/d/assets/images/split/image1236.o (.data); - build/d/assets/images/split/image1237.o (.data); - build/d/assets/images/split/image1238.o (.data); - build/d/assets/images/split/image1239.o (.data); - build/d/assets/images/split/image1240.o (.data); - build/d/assets/images/split/image1241.o (.data); - build/d/assets/images/split/image1242.o (.data); - build/d/assets/images/split/image1243.o (.data); - build/d/assets/images/split/image1244.o (.data); - build/d/assets/images/split/image1245.o (.data); - build/d/assets/images/split/image1246.o (.data); - build/d/assets/images/split/image1247.o (.data); - build/d/assets/images/split/image1248.o (.data); - build/d/assets/images/split/image1249.o (.data); - build/d/assets/images/split/image1250.o (.data); - build/d/assets/images/split/image1251.o (.data); - build/d/assets/images/split/image1252.o (.data); - build/d/assets/images/split/image1253.o (.data); - build/d/assets/images/split/image1254.o (.data); - build/d/assets/images/split/image1255.o (.data); - build/d/assets/images/split/image1256.o (.data); - build/d/assets/images/split/image1257.o (.data); - build/d/assets/images/split/image1258.o (.data); - build/d/assets/images/split/image1259.o (.data); - build/d/assets/images/split/image1260.o (.data); - build/d/assets/images/split/image1261.o (.data); - build/d/assets/images/split/image1262.o (.data); - build/d/assets/images/split/image1263.o (.data); - build/d/assets/images/split/image1264.o (.data); - build/d/assets/images/split/image1265.o (.data); - build/d/assets/images/split/image1266.o (.data); - build/d/assets/images/split/image1267.o (.data); - build/d/assets/images/split/image1268.o (.data); - build/d/assets/images/split/image1269.o (.data); - build/d/assets/images/split/image1270.o (.data); - build/d/assets/images/split/image1271.o (.data); - build/d/assets/images/split/image1272.o (.data); - build/d/assets/images/split/image1273.o (.data); - build/d/assets/images/split/image1274.o (.data); - build/d/assets/images/split/image1275.o (.data); - build/d/assets/images/split/image1276.o (.data); - build/d/assets/images/split/image1277.o (.data); - build/d/assets/images/split/image1278.o (.data); - build/d/assets/images/split/image1279.o (.data); - build/d/assets/images/split/image1280.o (.data); - build/d/assets/images/split/image1281.o (.data); - build/d/assets/images/split/image1282.o (.data); - build/d/assets/images/split/image1283.o (.data); - build/d/assets/images/split/image1284.o (.data); - build/d/assets/images/split/image1285.o (.data); - build/d/assets/images/split/image1286.o (.data); - build/d/assets/images/split/image1287.o (.data); - build/d/assets/images/split/image1288.o (.data); - build/d/assets/images/split/image1289.o (.data); - build/d/assets/images/split/image1290.o (.data); - build/d/assets/images/split/image1291.o (.data); - build/d/assets/images/split/image1292.o (.data); - build/d/assets/images/split/image1293.o (.data); - build/d/assets/images/split/image1294.o (.data); - build/d/assets/images/split/image1295.o (.data); - build/d/assets/images/split/image1296.o (.data); - build/d/assets/images/split/image1297.o (.data); - build/d/assets/images/split/image1298.o (.data); - build/d/assets/images/split/image1299.o (.data); - build/d/assets/images/split/image1300.o (.data); - build/d/assets/images/split/image1301.o (.data); - build/d/assets/images/split/image1302.o (.data); - build/d/assets/images/split/image1303.o (.data); - build/d/assets/images/split/image1304.o (.data); - build/d/assets/images/split/image1305.o (.data); - build/d/assets/images/split/image1306.o (.data); - build/d/assets/images/split/image1307.o (.data); - build/d/assets/images/split/image1308.o (.data); - build/d/assets/images/split/image1309.o (.data); - build/d/assets/images/split/image1310.o (.data); - build/d/assets/images/split/image1311.o (.data); - build/d/assets/images/split/image1312.o (.data); - build/d/assets/images/split/image1313.o (.data); - build/d/assets/images/split/image1314.o (.data); - build/d/assets/images/split/image1315.o (.data); - build/d/assets/images/split/image1316.o (.data); - build/d/assets/images/split/image1317.o (.data); - build/d/assets/images/split/image1318.o (.data); - build/d/assets/images/split/image1319.o (.data); - build/d/assets/images/split/image1320.o (.data); - build/d/assets/images/split/image1321.o (.data); - build/d/assets/images/split/image1322.o (.data); - build/d/assets/images/split/image1323.o (.data); - build/d/assets/images/split/image1324.o (.data); - build/d/assets/images/split/image1325.o (.data); - build/d/assets/images/split/image1326.o (.data); - build/d/assets/images/split/image1327.o (.data); - build/d/assets/images/split/image1328.o (.data); - build/d/assets/images/split/image1329.o (.data); - build/d/assets/images/split/image1330.o (.data); - build/d/assets/images/split/image1331.o (.data); - build/d/assets/images/split/image1332.o (.data); - build/d/assets/images/split/image1333.o (.data); - build/d/assets/images/split/image1334.o (.data); - build/d/assets/images/split/image1335.o (.data); - build/d/assets/images/split/image1336.o (.data); - build/d/assets/images/split/image1337.o (.data); - build/d/assets/images/split/image1338.o (.data); - build/d/assets/images/split/image1339.o (.data); - build/d/assets/images/split/image1340.o (.data); - build/d/assets/images/split/image1341.o (.data); - build/d/assets/images/split/image1342.o (.data); - build/d/assets/images/split/image1343.o (.data); - build/d/assets/images/split/image1344.o (.data); - build/d/assets/images/split/image1345.o (.data); - build/d/assets/images/split/image1346.o (.data); - build/d/assets/images/split/image1347.o (.data); - build/d/assets/images/split/image1348.o (.data); - build/d/assets/images/split/image1349.o (.data); - build/d/assets/images/split/image1350.o (.data); - build/d/assets/images/split/image1351.o (.data); - build/d/assets/images/split/image1352.o (.data); - build/d/assets/images/split/image1353.o (.data); - build/d/assets/images/split/image1354.o (.data); - build/d/assets/images/split/image1355.o (.data); - build/d/assets/images/split/image1356.o (.data); - build/d/assets/images/split/image1357.o (.data); - build/d/assets/images/split/image1358.o (.data); - build/d/assets/images/split/image1359.o (.data); - build/d/assets/images/split/image1360.o (.data); - build/d/assets/images/split/image1361.o (.data); - build/d/assets/images/split/image1362.o (.data); - build/d/assets/images/split/image1363.o (.data); - build/d/assets/images/split/image1364.o (.data); - build/d/assets/images/split/image1365.o (.data); - build/d/assets/images/split/image1366.o (.data); - build/d/assets/images/split/image1367.o (.data); - build/d/assets/images/split/image1368.o (.data); - build/d/assets/images/split/image1369.o (.data); - build/d/assets/images/split/image1370.o (.data); - build/d/assets/images/split/image1371.o (.data); - build/d/assets/images/split/image1372.o (.data); - build/d/assets/images/split/image1373.o (.data); - build/d/assets/images/split/image1374.o (.data); - build/d/assets/images/split/image1375.o (.data); - build/d/assets/images/split/image1376.o (.data); - build/d/assets/images/split/image1377.o (.data); - build/d/assets/images/split/image1378.o (.data); - build/d/assets/images/split/image1379.o (.data); - build/d/assets/images/split/image1380.o (.data); - build/d/assets/images/split/image1381.o (.data); - build/d/assets/images/split/image1382.o (.data); - build/d/assets/images/split/image1383.o (.data); - build/d/assets/images/split/image1384.o (.data); - build/d/assets/images/split/image1385.o (.data); - build/d/assets/images/split/image1386.o (.data); - build/d/assets/images/split/image1387.o (.data); - build/d/assets/images/split/image1388.o (.data); - build/d/assets/images/split/image1389.o (.data); - build/d/assets/images/split/image1390.o (.data); - build/d/assets/images/split/image1391.o (.data); - build/d/assets/images/split/image1392.o (.data); - build/d/assets/images/split/image1393.o (.data); - build/d/assets/images/split/image1394.o (.data); - build/d/assets/images/split/image1395.o (.data); - build/d/assets/images/split/image1396.o (.data); - build/d/assets/images/split/image1397.o (.data); - build/d/assets/images/split/image1398.o (.data); - build/d/assets/images/split/image1399.o (.data); - build/d/assets/images/split/image1400.o (.data); - build/d/assets/images/split/image1401.o (.data); - build/d/assets/images/split/image1402.o (.data); - build/d/assets/images/split/image1403.o (.data); - build/d/assets/images/split/image1404.o (.data); - build/d/assets/images/split/image1405.o (.data); - build/d/assets/images/split/image1406.o (.data); - build/d/assets/images/split/image1407.o (.data); - build/d/assets/images/split/image1408.o (.data); - build/d/assets/images/split/image1409.o (.data); - build/d/assets/images/split/image1410.o (.data); - build/d/assets/images/split/image1411.o (.data); - build/d/assets/images/split/image1412.o (.data); - build/d/assets/images/split/image1413.o (.data); - build/d/assets/images/split/image1414.o (.data); - build/d/assets/images/split/image1415.o (.data); - build/d/assets/images/split/image1416.o (.data); - build/d/assets/images/split/image1417.o (.data); - build/d/assets/images/split/image1418.o (.data); - build/d/assets/images/split/image1419.o (.data); - build/d/assets/images/split/image1420.o (.data); - build/d/assets/images/split/image1421.o (.data); - build/d/assets/images/split/image1422.o (.data); - build/d/assets/images/split/image1423.o (.data); - build/d/assets/images/split/image1424.o (.data); - build/d/assets/images/split/image1425.o (.data); - build/d/assets/images/split/image1426.o (.data); - build/d/assets/images/split/image1427.o (.data); - build/d/assets/images/split/image1428.o (.data); - build/d/assets/images/split/image1429.o (.data); - build/d/assets/images/split/image1430.o (.data); - build/d/assets/images/split/image1431.o (.data); - build/d/assets/images/split/image1432.o (.data); - build/d/assets/images/split/image1433.o (.data); - build/d/assets/images/split/image1434.o (.data); - build/d/assets/images/split/image1435.o (.data); - build/d/assets/images/split/image1436.o (.data); - build/d/assets/images/split/image1437.o (.data); - build/d/assets/images/split/image1438.o (.data); - build/d/assets/images/split/image1439.o (.data); - build/d/assets/images/split/image1440.o (.data); - build/d/assets/images/split/image1441.o (.data); - build/d/assets/images/split/image1442.o (.data); - build/d/assets/images/split/image1443.o (.data); - build/d/assets/images/split/image1444.o (.data); - build/d/assets/images/split/image1445.o (.data); - build/d/assets/images/split/image1446.o (.data); - build/d/assets/images/split/image1447.o (.data); - build/d/assets/images/split/image1448.o (.data); - build/d/assets/images/split/image1449.o (.data); - build/d/assets/images/split/image1450.o (.data); - build/d/assets/images/split/image1451.o (.data); - build/d/assets/images/split/image1452.o (.data); - build/d/assets/images/split/image1453.o (.data); - build/d/assets/images/split/image1454.o (.data); - build/d/assets/images/split/image1455.o (.data); - build/d/assets/images/split/image1456.o (.data); - build/d/assets/images/split/image1457.o (.data); - build/d/assets/images/split/image1458.o (.data); - build/d/assets/images/split/image1459.o (.data); - build/d/assets/images/split/image1460.o (.data); - build/d/assets/images/split/image1461.o (.data); - build/d/assets/images/split/image1462.o (.data); - build/d/assets/images/split/image1463.o (.data); - build/d/assets/images/split/image1464.o (.data); - build/d/assets/images/split/image1465.o (.data); - build/d/assets/images/split/image1466.o (.data); - build/d/assets/images/split/image1467.o (.data); - build/d/assets/images/split/image1468.o (.data); - build/d/assets/images/split/image1469.o (.data); - build/d/assets/images/split/image1470.o (.data); - build/d/assets/images/split/image1471.o (.data); - build/d/assets/images/split/image1472.o (.data); - build/d/assets/images/split/image1473.o (.data); - build/d/assets/images/split/image1474.o (.data); - build/d/assets/images/split/image1475.o (.data); - build/d/assets/images/split/image1476.o (.data); - build/d/assets/images/split/image1477.o (.data); - build/d/assets/images/split/image1478.o (.data); - build/d/assets/images/split/image1479.o (.data); - build/d/assets/images/split/image1480.o (.data); - build/d/assets/images/split/image1481.o (.data); - build/d/assets/images/split/image1482.o (.data); - build/d/assets/images/split/image1483.o (.data); - build/d/assets/images/split/image1484.o (.data); - build/d/assets/images/split/image1485.o (.data); - build/d/assets/images/split/image1486.o (.data); - build/d/assets/images/split/image1487.o (.data); - build/d/assets/images/split/image1488.o (.data); - build/d/assets/images/split/image1489.o (.data); - build/d/assets/images/split/image1490.o (.data); - build/d/assets/images/split/image1491.o (.data); - build/d/assets/images/split/image1492.o (.data); - build/d/assets/images/split/image1493.o (.data); - build/d/assets/images/split/image1494.o (.data); - build/d/assets/images/split/image1495.o (.data); - build/d/assets/images/split/image1496.o (.data); - build/d/assets/images/split/image1497.o (.data); - build/d/assets/images/split/image1498.o (.data); - build/d/assets/images/split/image1499.o (.data); - build/d/assets/images/split/image1500.o (.data); - build/d/assets/images/split/image1501.o (.data); - build/d/assets/images/split/image1502.o (.data); - build/d/assets/images/split/image1503.o (.data); - build/d/assets/images/split/image1504.o (.data); - build/d/assets/images/split/image1505.o (.data); - build/d/assets/images/split/image1506.o (.data); - build/d/assets/images/split/image1507.o (.data); - build/d/assets/images/split/image1508.o (.data); - build/d/assets/images/split/image1509.o (.data); - build/d/assets/images/split/image1510.o (.data); - build/d/assets/images/split/image1511.o (.data); - build/d/assets/images/split/image1512.o (.data); - build/d/assets/images/split/image1513.o (.data); - build/d/assets/images/split/image1514.o (.data); - build/d/assets/images/split/image1515.o (.data); - build/d/assets/images/split/image1516.o (.data); - build/d/assets/images/split/image1517.o (.data); - build/d/assets/images/split/image1518.o (.data); - build/d/assets/images/split/image1519.o (.data); - build/d/assets/images/split/image1520.o (.data); - build/d/assets/images/split/image1521.o (.data); - build/d/assets/images/split/image1522.o (.data); - build/d/assets/images/split/image1523.o (.data); - build/d/assets/images/split/image1524.o (.data); - build/d/assets/images/split/image1525.o (.data); - build/d/assets/images/split/image1526.o (.data); - build/d/assets/images/split/image1527.o (.data); - build/d/assets/images/split/image1528.o (.data); - build/d/assets/images/split/image1529.o (.data); - build/d/assets/images/split/image1530.o (.data); - build/d/assets/images/split/image1531.o (.data); - build/d/assets/images/split/image1532.o (.data); - build/d/assets/images/split/image1533.o (.data); - build/d/assets/images/split/image1534.o (.data); - build/d/assets/images/split/image1535.o (.data); - build/d/assets/images/split/image1536.o (.data); - build/d/assets/images/split/image1537.o (.data); - build/d/assets/images/split/image1538.o (.data); - build/d/assets/images/split/image1539.o (.data); - build/d/assets/images/split/image1540.o (.data); - build/d/assets/images/split/image1541.o (.data); - build/d/assets/images/split/image1542.o (.data); - build/d/assets/images/split/image1543.o (.data); - build/d/assets/images/split/image1544.o (.data); - build/d/assets/images/split/image1545.o (.data); - build/d/assets/images/split/image1546.o (.data); - build/d/assets/images/split/image1547.o (.data); - build/d/assets/images/split/image1548.o (.data); - build/d/assets/images/split/image1549.o (.data); - build/d/assets/images/split/image1550.o (.data); - build/d/assets/images/split/image1551.o (.data); - build/d/assets/images/split/image1552.o (.data); - build/d/assets/images/split/image1553.o (.data); - build/d/assets/images/split/image1554.o (.data); - build/d/assets/images/split/image1555.o (.data); - build/d/assets/images/split/image1556.o (.data); - build/d/assets/images/split/image1557.o (.data); - build/d/assets/images/split/image1558.o (.data); - build/d/assets/images/split/image1559.o (.data); - build/d/assets/images/split/image1560.o (.data); - build/d/assets/images/split/image1561.o (.data); - build/d/assets/images/split/image1562.o (.data); - build/d/assets/images/split/image1563.o (.data); - build/d/assets/images/split/image1564.o (.data); - build/d/assets/images/split/image1565.o (.data); - build/d/assets/images/split/image1566.o (.data); - build/d/assets/images/split/image1567.o (.data); - build/d/assets/images/split/image1568.o (.data); - build/d/assets/images/split/image1569.o (.data); - build/d/assets/images/split/image1570.o (.data); - build/d/assets/images/split/image1571.o (.data); - build/d/assets/images/split/image1572.o (.data); - build/d/assets/images/split/image1573.o (.data); - build/d/assets/images/split/image1574.o (.data); - build/d/assets/images/split/image1575.o (.data); - build/d/assets/images/split/image1576.o (.data); - build/d/assets/images/split/image1577.o (.data); - build/d/assets/images/split/image1578.o (.data); - build/d/assets/images/split/image1579.o (.data); - build/d/assets/images/split/image1580.o (.data); - build/d/assets/images/split/image1581.o (.data); - build/d/assets/images/split/image1582.o (.data); - build/d/assets/images/split/image1583.o (.data); - build/d/assets/images/split/image1584.o (.data); - build/d/assets/images/split/image1585.o (.data); - build/d/assets/images/split/image1586.o (.data); - build/d/assets/images/split/image1587.o (.data); - build/d/assets/images/split/image1588.o (.data); - build/d/assets/images/split/image1589.o (.data); - build/d/assets/images/split/image1590.o (.data); - build/d/assets/images/split/image1591.o (.data); - build/d/assets/images/split/image1592.o (.data); - build/d/assets/images/split/image1593.o (.data); - build/d/assets/images/split/image1594.o (.data); - build/d/assets/images/split/image1595.o (.data); - build/d/assets/images/split/image1596.o (.data); - build/d/assets/images/split/image1597.o (.data); - build/d/assets/images/split/image1598.o (.data); - build/d/assets/images/split/image1599.o (.data); - build/d/assets/images/split/image1600.o (.data); - build/d/assets/images/split/image1601.o (.data); - build/d/assets/images/split/image1602.o (.data); - build/d/assets/images/split/image1603.o (.data); - build/d/assets/images/split/image1604.o (.data); - build/d/assets/images/split/image1605.o (.data); - build/d/assets/images/split/image1606.o (.data); - build/d/assets/images/split/image1607.o (.data); - build/d/assets/images/split/image1608.o (.data); - build/d/assets/images/split/image1609.o (.data); - build/d/assets/images/split/image1610.o (.data); - build/d/assets/images/split/image1611.o (.data); - build/d/assets/images/split/image1612.o (.data); - build/d/assets/images/split/image1613.o (.data); - build/d/assets/images/split/image1614.o (.data); - build/d/assets/images/split/image1615.o (.data); - build/d/assets/images/split/image1616.o (.data); - build/d/assets/images/split/image1617.o (.data); - build/d/assets/images/split/image1618.o (.data); - build/d/assets/images/split/image1619.o (.data); - build/d/assets/images/split/image1620.o (.data); - build/d/assets/images/split/image1621.o (.data); - build/d/assets/images/split/image1622.o (.data); - build/d/assets/images/split/image1623.o (.data); - build/d/assets/images/split/image1624.o (.data); - build/d/assets/images/split/image1625.o (.data); - build/d/assets/images/split/image1626.o (.data); - build/d/assets/images/split/image1627.o (.data); - build/d/assets/images/split/image1628.o (.data); - build/d/assets/images/split/image1629.o (.data); - build/d/assets/images/split/image1630.o (.data); - build/d/assets/images/split/image1631.o (.data); - build/d/assets/images/split/image1632.o (.data); - build/d/assets/images/split/image1633.o (.data); - build/d/assets/images/split/image1634.o (.data); - build/d/assets/images/split/image1635.o (.data); - build/d/assets/images/split/image1636.o (.data); - build/d/assets/images/split/image1637.o (.data); - build/d/assets/images/split/image1638.o (.data); - build/d/assets/images/split/image1639.o (.data); - build/d/assets/images/split/image1640.o (.data); - build/d/assets/images/split/image1641.o (.data); - build/d/assets/images/split/image1642.o (.data); - build/d/assets/images/split/image1643.o (.data); - build/d/assets/images/split/image1644.o (.data); - build/d/assets/images/split/image1645.o (.data); - build/d/assets/images/split/image1646.o (.data); - build/d/assets/images/split/image1647.o (.data); - build/d/assets/images/split/image1648.o (.data); - build/d/assets/images/split/image1649.o (.data); - build/d/assets/images/split/image1650.o (.data); - build/d/assets/images/split/image1651.o (.data); - build/d/assets/images/split/image1652.o (.data); - build/d/assets/images/split/image1653.o (.data); - build/d/assets/images/split/image1654.o (.data); - build/d/assets/images/split/image1655.o (.data); - build/d/assets/images/split/image1656.o (.data); - build/d/assets/images/split/image1657.o (.data); - build/d/assets/images/split/image1658.o (.data); - build/d/assets/images/split/image1659.o (.data); - build/d/assets/images/split/image1660.o (.data); - build/d/assets/images/split/image1661.o (.data); - build/d/assets/images/split/image1662.o (.data); - build/d/assets/images/split/image1663.o (.data); - build/d/assets/images/split/image1664.o (.data); - build/d/assets/images/split/image1665.o (.data); - build/d/assets/images/split/image1666.o (.data); - build/d/assets/images/split/image1667.o (.data); - build/d/assets/images/split/image1668.o (.data); - build/d/assets/images/split/image1669.o (.data); - build/d/assets/images/split/image1670.o (.data); - build/d/assets/images/split/image1671.o (.data); - build/d/assets/images/split/image1672.o (.data); - build/d/assets/images/split/image1673.o (.data); - build/d/assets/images/split/image1674.o (.data); - build/d/assets/images/split/image1675.o (.data); - build/d/assets/images/split/image1676.o (.data); - build/d/assets/images/split/image1677.o (.data); - build/d/assets/images/split/image1678.o (.data); - build/d/assets/images/split/image1679.o (.data); - build/d/assets/images/split/image1680.o (.data); - build/d/assets/images/split/image1681.o (.data); - build/d/assets/images/split/image1682.o (.data); - build/d/assets/images/split/image1683.o (.data); - build/d/assets/images/split/image1684.o (.data); - build/d/assets/images/split/image1685.o (.data); - build/d/assets/images/split/image1686.o (.data); - build/d/assets/images/split/image1687.o (.data); - build/d/assets/images/split/image1688.o (.data); - build/d/assets/images/split/image1689.o (.data); - build/d/assets/images/split/image1690.o (.data); - build/d/assets/images/split/image1691.o (.data); - build/d/assets/images/split/image1692.o (.data); - build/d/assets/images/split/image1693.o (.data); - build/d/assets/images/split/image1694.o (.data); - build/d/assets/images/split/image1695.o (.data); - build/d/assets/images/split/image1696.o (.data); - build/d/assets/images/split/image1697.o (.data); - build/d/assets/images/split/image1698.o (.data); - build/d/assets/images/split/image1699.o (.data); - build/d/assets/images/split/image1700.o (.data); - build/d/assets/images/split/image1701.o (.data); - build/d/assets/images/split/image1702.o (.data); - build/d/assets/images/split/image1703.o (.data); - build/d/assets/images/split/image1704.o (.data); - build/d/assets/images/split/image1705.o (.data); - build/d/assets/images/split/image1706.o (.data); - build/d/assets/images/split/image1707.o (.data); - build/d/assets/images/split/image1708.o (.data); - build/d/assets/images/split/image1709.o (.data); - build/d/assets/images/split/image1710.o (.data); - build/d/assets/images/split/image1711.o (.data); - build/d/assets/images/split/image1712.o (.data); - build/d/assets/images/split/image1713.o (.data); - build/d/assets/images/split/image1714.o (.data); - build/d/assets/images/split/image1715.o (.data); - build/d/assets/images/split/image1716.o (.data); - build/d/assets/images/split/image1717.o (.data); - build/d/assets/images/split/image1718.o (.data); - build/d/assets/images/split/image1719.o (.data); - build/d/assets/images/split/image1720.o (.data); - build/d/assets/images/split/image1721.o (.data); - build/d/assets/images/split/image1722.o (.data); - build/d/assets/images/split/image1723.o (.data); - build/d/assets/images/split/image1724.o (.data); - build/d/assets/images/split/image1725.o (.data); - build/d/assets/images/split/image1726.o (.data); - build/d/assets/images/split/image1727.o (.data); - build/d/assets/images/split/image1728.o (.data); - build/d/assets/images/split/image1729.o (.data); - build/d/assets/images/split/image1730.o (.data); - build/d/assets/images/split/image1731.o (.data); - build/d/assets/images/split/image1732.o (.data); - build/d/assets/images/split/image1733.o (.data); - build/d/assets/images/split/image1734.o (.data); - build/d/assets/images/split/image1735.o (.data); - build/d/assets/images/split/image1736.o (.data); - build/d/assets/images/split/image1737.o (.data); - build/d/assets/images/split/image1738.o (.data); - build/d/assets/images/split/image1739.o (.data); - build/d/assets/images/split/image1740.o (.data); - build/d/assets/images/split/image1741.o (.data); - build/d/assets/images/split/image1742.o (.data); - build/d/assets/images/split/image1743.o (.data); - build/d/assets/images/split/image1744.o (.data); - build/d/assets/images/split/image1745.o (.data); - build/d/assets/images/split/image1746.o (.data); - build/d/assets/images/split/image1747.o (.data); - build/d/assets/images/split/image1748.o (.data); - build/d/assets/images/split/image1749.o (.data); - build/d/assets/images/split/image1750.o (.data); - build/d/assets/images/split/image1751.o (.data); - build/d/assets/images/split/image1752.o (.data); - build/d/assets/images/split/image1753.o (.data); - build/d/assets/images/split/image1754.o (.data); - build/d/assets/images/split/image1755.o (.data); - build/d/assets/images/split/image1756.o (.data); - build/d/assets/images/split/image1757.o (.data); - build/d/assets/images/split/image1758.o (.data); - build/d/assets/images/split/image1759.o (.data); - build/d/assets/images/split/image1760.o (.data); - build/d/assets/images/split/image1761.o (.data); - build/d/assets/images/split/image1762.o (.data); - build/d/assets/images/split/image1763.o (.data); - build/d/assets/images/split/image1764.o (.data); - build/d/assets/images/split/image1765.o (.data); - build/d/assets/images/split/image1766.o (.data); - build/d/assets/images/split/image1767.o (.data); - build/d/assets/images/split/image1768.o (.data); - build/d/assets/images/split/image1769.o (.data); - build/d/assets/images/split/image1770.o (.data); - build/d/assets/images/split/image1771.o (.data); - build/d/assets/images/split/image1772.o (.data); - build/d/assets/images/split/image1773.o (.data); - build/d/assets/images/split/image1774.o (.data); - build/d/assets/images/split/image1775.o (.data); - build/d/assets/images/split/image1776.o (.data); - build/d/assets/images/split/image1777.o (.data); - build/d/assets/images/split/image1778.o (.data); - build/d/assets/images/split/image1779.o (.data); - build/d/assets/images/split/image1780.o (.data); - build/d/assets/images/split/image1781.o (.data); - build/d/assets/images/split/image1782.o (.data); - build/d/assets/images/split/image1783.o (.data); - build/d/assets/images/split/image1784.o (.data); - build/d/assets/images/split/image1785.o (.data); - build/d/assets/images/split/image1786.o (.data); - build/d/assets/images/split/image1787.o (.data); - build/d/assets/images/split/image1788.o (.data); - build/d/assets/images/split/image1789.o (.data); - build/d/assets/images/split/image1790.o (.data); - build/d/assets/images/split/image1791.o (.data); - build/d/assets/images/split/image1792.o (.data); - build/d/assets/images/split/image1793.o (.data); - build/d/assets/images/split/image1794.o (.data); - build/d/assets/images/split/image1795.o (.data); - build/d/assets/images/split/image1796.o (.data); - build/d/assets/images/split/image1797.o (.data); - build/d/assets/images/split/image1798.o (.data); - build/d/assets/images/split/image1799.o (.data); - build/d/assets/images/split/image1800.o (.data); - build/d/assets/images/split/image1801.o (.data); - build/d/assets/images/split/image1802.o (.data); - build/d/assets/images/split/image1803.o (.data); - build/d/assets/images/split/image1804.o (.data); - build/d/assets/images/split/image1805.o (.data); - build/d/assets/images/split/image1806.o (.data); - build/d/assets/images/split/image1807.o (.data); - build/d/assets/images/split/image1808.o (.data); - build/d/assets/images/split/image1809.o (.data); - build/d/assets/images/split/image1810.o (.data); - build/d/assets/images/split/image1811.o (.data); - build/d/assets/images/split/image1812.o (.data); - build/d/assets/images/split/image1813.o (.data); - build/d/assets/images/split/image1814.o (.data); - build/d/assets/images/split/image1815.o (.data); - build/d/assets/images/split/image1816.o (.data); - build/d/assets/images/split/image1817.o (.data); - build/d/assets/images/split/image1818.o (.data); - build/d/assets/images/split/image1819.o (.data); - build/d/assets/images/split/image1820.o (.data); - build/d/assets/images/split/image1821.o (.data); - build/d/assets/images/split/image1822.o (.data); - build/d/assets/images/split/image1823.o (.data); - build/d/assets/images/split/image1824.o (.data); - build/d/assets/images/split/image1825.o (.data); - build/d/assets/images/split/image1826.o (.data); - build/d/assets/images/split/image1827.o (.data); - build/d/assets/images/split/image1828.o (.data); - build/d/assets/images/split/image1829.o (.data); - build/d/assets/images/split/image1830.o (.data); - build/d/assets/images/split/image1831.o (.data); - build/d/assets/images/split/image1832.o (.data); - build/d/assets/images/split/image1833.o (.data); - build/d/assets/images/split/image1834.o (.data); - build/d/assets/images/split/image1835.o (.data); - build/d/assets/images/split/image1836.o (.data); - build/d/assets/images/split/image1837.o (.data); - build/d/assets/images/split/image1838.o (.data); - build/d/assets/images/split/image1839.o (.data); - build/d/assets/images/split/image1840.o (.data); - build/d/assets/images/split/image1841.o (.data); - build/d/assets/images/split/image1842.o (.data); - build/d/assets/images/split/image1843.o (.data); - build/d/assets/images/split/image1844.o (.data); - build/d/assets/images/split/image1845.o (.data); - build/d/assets/images/split/image1846.o (.data); - build/d/assets/images/split/image1847.o (.data); - build/d/assets/images/split/image1848.o (.data); - build/d/assets/images/split/image1849.o (.data); - build/d/assets/images/split/image1850.o (.data); - build/d/assets/images/split/image1851.o (.data); - build/d/assets/images/split/image1852.o (.data); - build/d/assets/images/split/image1853.o (.data); - build/d/assets/images/split/image1854.o (.data); - build/d/assets/images/split/image1855.o (.data); - build/d/assets/images/split/image1856.o (.data); - build/d/assets/images/split/image1857.o (.data); - build/d/assets/images/split/image1858.o (.data); - build/d/assets/images/split/image1859.o (.data); - build/d/assets/images/split/image1860.o (.data); - build/d/assets/images/split/image1861.o (.data); - build/d/assets/images/split/image1862.o (.data); - build/d/assets/images/split/image1863.o (.data); - build/d/assets/images/split/image1864.o (.data); - build/d/assets/images/split/image1865.o (.data); - build/d/assets/images/split/image1866.o (.data); - build/d/assets/images/split/image1867.o (.data); - build/d/assets/images/split/image1868.o (.data); - build/d/assets/images/split/image1869.o (.data); - build/d/assets/images/split/image1870.o (.data); - build/d/assets/images/split/image1871.o (.data); - build/d/assets/images/split/image1872.o (.data); - build/d/assets/images/split/image1873.o (.data); - build/d/assets/images/split/image1874.o (.data); - build/d/assets/images/split/image1875.o (.data); - build/d/assets/images/split/image1876.o (.data); - build/d/assets/images/split/image1877.o (.data); - build/d/assets/images/split/image1878.o (.data); - build/d/assets/images/split/image1879.o (.data); - build/d/assets/images/split/image1880.o (.data); - build/d/assets/images/split/image1881.o (.data); - build/d/assets/images/split/image1882.o (.data); - build/d/assets/images/split/image1883.o (.data); - build/d/assets/images/split/image1884.o (.data); - build/d/assets/images/split/image1885.o (.data); - build/d/assets/images/split/image1886.o (.data); - build/d/assets/images/split/image1887.o (.data); - build/d/assets/images/split/image1888.o (.data); - build/d/assets/images/split/image1889.o (.data); - build/d/assets/images/split/image1890.o (.data); - build/d/assets/images/split/image1891.o (.data); - build/d/assets/images/split/image1892.o (.data); - build/d/assets/images/split/image1893.o (.data); - build/d/assets/images/split/image1894.o (.data); - build/d/assets/images/split/image1895.o (.data); - build/d/assets/images/split/image1896.o (.data); - build/d/assets/images/split/image1897.o (.data); - build/d/assets/images/split/image1898.o (.data); - build/d/assets/images/split/image1899.o (.data); - build/d/assets/images/split/image1900.o (.data); - build/d/assets/images/split/image1901.o (.data); - build/d/assets/images/split/image1902.o (.data); - build/d/assets/images/split/image1903.o (.data); - build/d/assets/images/split/image1904.o (.data); - build/d/assets/images/split/image1905.o (.data); - build/d/assets/images/split/image1906.o (.data); - build/d/assets/images/split/image1907.o (.data); - build/d/assets/images/split/image1908.o (.data); - build/d/assets/images/split/image1909.o (.data); - build/d/assets/images/split/image1910.o (.data); - build/d/assets/images/split/image1911.o (.data); - build/d/assets/images/split/image1912.o (.data); - build/d/assets/images/split/image1913.o (.data); - build/d/assets/images/split/image1914.o (.data); - build/d/assets/images/split/image1915.o (.data); - build/d/assets/images/split/image1916.o (.data); - build/d/assets/images/split/image1917.o (.data); - build/d/assets/images/split/image1918.o (.data); - build/d/assets/images/split/image1919.o (.data); - build/d/assets/images/split/image1920.o (.data); - build/d/assets/images/split/image1921.o (.data); - build/d/assets/images/split/image1922.o (.data); - build/d/assets/images/split/image1923.o (.data); - build/d/assets/images/split/image1924.o (.data); - build/d/assets/images/split/image1925.o (.data); - build/d/assets/images/split/image1926.o (.data); - build/d/assets/images/split/image1927.o (.data); - build/d/assets/images/split/image1928.o (.data); - build/d/assets/images/split/image1929.o (.data); - build/d/assets/images/split/image1930.o (.data); - build/d/assets/images/split/image1931.o (.data); - build/d/assets/images/split/image1932.o (.data); - build/d/assets/images/split/image1933.o (.data); - build/d/assets/images/split/image1934.o (.data); - build/d/assets/images/split/image1935.o (.data); - build/d/assets/images/split/image1936.o (.data); - build/d/assets/images/split/image1937.o (.data); - build/d/assets/images/split/image1938.o (.data); - build/d/assets/images/split/image1939.o (.data); - build/d/assets/images/split/image1940.o (.data); - build/d/assets/images/split/image1941.o (.data); - build/d/assets/images/split/image1942.o (.data); - build/d/assets/images/split/image1943.o (.data); - build/d/assets/images/split/image1944.o (.data); - build/d/assets/images/split/image1945.o (.data); - build/d/assets/images/split/image1946.o (.data); - build/d/assets/images/split/image1947.o (.data); - build/d/assets/images/split/image1948.o (.data); - build/d/assets/images/split/image1949.o (.data); - build/d/assets/images/split/image1950.o (.data); - build/d/assets/images/split/image1951.o (.data); - build/d/assets/images/split/image1952.o (.data); - build/d/assets/images/split/image1953.o (.data); - build/d/assets/images/split/image1954.o (.data); - build/d/assets/images/split/image1955.o (.data); - build/d/assets/images/split/image1956.o (.data); - build/d/assets/images/split/image1957.o (.data); - build/d/assets/images/split/image1958.o (.data); - build/d/assets/images/split/image1959.o (.data); - build/d/assets/images/split/image1960.o (.data); - build/d/assets/images/split/image1961.o (.data); - build/d/assets/images/split/image1962.o (.data); - build/d/assets/images/split/image1963.o (.data); - build/d/assets/images/split/image1964.o (.data); - build/d/assets/images/split/image1965.o (.data); - build/d/assets/images/split/image1966.o (.data); - build/d/assets/images/split/image1967.o (.data); - build/d/assets/images/split/image1968.o (.data); - build/d/assets/images/split/image1969.o (.data); - build/d/assets/images/split/image1970.o (.data); - build/d/assets/images/split/image1971.o (.data); - build/d/assets/images/split/image1972.o (.data); - build/d/assets/images/split/image1973.o (.data); - build/d/assets/images/split/image1974.o (.data); - build/d/assets/images/split/image1975.o (.data); - build/d/assets/images/split/image1976.o (.data); - build/d/assets/images/split/image1977.o (.data); - build/d/assets/images/split/image1978.o (.data); - build/d/assets/images/split/image1979.o (.data); - build/d/assets/images/split/image1980.o (.data); - build/d/assets/images/split/image1981.o (.data); - build/d/assets/images/split/image1982.o (.data); - build/d/assets/images/split/image1983.o (.data); - build/d/assets/images/split/image1984.o (.data); - build/d/assets/images/split/image1985.o (.data); - build/d/assets/images/split/image1986.o (.data); - build/d/assets/images/split/image1987.o (.data); - build/d/assets/images/split/image1988.o (.data); - build/d/assets/images/split/image1989.o (.data); - build/d/assets/images/split/image1990.o (.data); - build/d/assets/images/split/image1991.o (.data); - build/d/assets/images/split/image1992.o (.data); - build/d/assets/images/split/image1993.o (.data); - build/d/assets/images/split/image1994.o (.data); - build/d/assets/images/split/image1995.o (.data); - build/d/assets/images/split/image1996.o (.data); - build/d/assets/images/split/image1997.o (.data); - build/d/assets/images/split/image1998.o (.data); - build/d/assets/images/split/image1999.o (.data); - build/d/assets/images/split/image2000.o (.data); - build/d/assets/images/split/image2001.o (.data); - build/d/assets/images/split/image2002.o (.data); - build/d/assets/images/split/image2003.o (.data); - build/d/assets/images/split/image2004.o (.data); - build/d/assets/images/split/image2005.o (.data); - build/d/assets/images/split/image2006.o (.data); - build/d/assets/images/split/image2007.o (.data); - build/d/assets/images/split/image2008.o (.data); - build/d/assets/images/split/image2009.o (.data); - build/d/assets/images/split/image2010.o (.data); - build/d/assets/images/split/image2011.o (.data); - build/d/assets/images/split/image2012.o (.data); - build/d/assets/images/split/image2013.o (.data); - build/d/assets/images/split/image2014.o (.data); - build/d/assets/images/split/image2015.o (.data); - build/d/assets/images/split/image2016.o (.data); - build/d/assets/images/split/image2017.o (.data); - build/d/assets/images/split/image2018.o (.data); - build/d/assets/images/split/image2019.o (.data); - build/d/assets/images/split/image2020.o (.data); - build/d/assets/images/split/image2021.o (.data); - build/d/assets/images/split/image2022.o (.data); - build/d/assets/images/split/image2023.o (.data); - build/d/assets/images/split/image2024.o (.data); - build/d/assets/images/split/image2025.o (.data); - build/d/assets/images/split/image2026.o (.data); - build/d/assets/images/split/image2027.o (.data); - build/d/assets/images/split/image2028.o (.data); - build/d/assets/images/split/image2029.o (.data); - build/d/assets/images/split/image2030.o (.data); - build/d/assets/images/split/image2031.o (.data); - build/d/assets/images/split/image2032.o (.data); - build/d/assets/images/split/image2033.o (.data); - build/d/assets/images/split/image2034.o (.data); - build/d/assets/images/split/image2035.o (.data); - build/d/assets/images/split/image2036.o (.data); - build/d/assets/images/split/image2037.o (.data); - build/d/assets/images/split/image2038.o (.data); - build/d/assets/images/split/image2039.o (.data); - build/d/assets/images/split/image2040.o (.data); - build/d/assets/images/split/image2041.o (.data); - build/d/assets/images/split/image2042.o (.data); - build/d/assets/images/split/image2043.o (.data); - build/d/assets/images/split/image2044.o (.data); - build/d/assets/images/split/image2045.o (.data); - build/d/assets/images/split/image2046.o (.data); - build/d/assets/images/split/image2047.o (.data); - build/d/assets/images/split/image2048.o (.data); - build/d/assets/images/split/image2049.o (.data); - build/d/assets/images/split/image2050.o (.data); - build/d/assets/images/split/image2051.o (.data); - build/d/assets/images/split/image2052.o (.data); - build/d/assets/images/split/image2053.o (.data); - build/d/assets/images/split/image2054.o (.data); - build/d/assets/images/split/image2055.o (.data); - build/d/assets/images/split/image2056.o (.data); - build/d/assets/images/split/image2057.o (.data); - build/d/assets/images/split/image2058.o (.data); - build/d/assets/images/split/image2059.o (.data); - build/d/assets/images/split/image2060.o (.data); - build/d/assets/images/split/image2061.o (.data); - build/d/assets/images/split/image2062.o (.data); - build/d/assets/images/split/image2063.o (.data); - build/d/assets/images/split/image2064.o (.data); - build/d/assets/images/split/image2065.o (.data); - build/d/assets/images/split/image2066.o (.data); - build/d/assets/images/split/image2067.o (.data); - build/d/assets/images/split/image2068.o (.data); - build/d/assets/images/split/image2069.o (.data); - build/d/assets/images/split/image2070.o (.data); - build/d/assets/images/split/image2071.o (.data); - build/d/assets/images/split/image2072.o (.data); - build/d/assets/images/split/image2073.o (.data); - build/d/assets/images/split/image2074.o (.data); - build/d/assets/images/split/image2075.o (.data); - build/d/assets/images/split/image2076.o (.data); - build/d/assets/images/split/image2077.o (.data); - build/d/assets/images/split/image2078.o (.data); - build/d/assets/images/split/image2079.o (.data); - build/d/assets/images/split/image2080.o (.data); - build/d/assets/images/split/image2081.o (.data); - build/d/assets/images/split/image2082.o (.data); - build/d/assets/images/split/image2083.o (.data); - build/d/assets/images/split/image2084.o (.data); - build/d/assets/images/split/image2085.o (.data); - build/d/assets/images/split/image2086.o (.data); - build/d/assets/images/split/image2087.o (.data); - build/d/assets/images/split/image2088.o (.data); - build/d/assets/images/split/image2089.o (.data); - build/d/assets/images/split/image2090.o (.data); - build/d/assets/images/split/image2091.o (.data); - build/d/assets/images/split/image2092.o (.data); - build/d/assets/images/split/image2093.o (.data); - build/d/assets/images/split/image2094.o (.data); - build/d/assets/images/split/image2095.o (.data); - build/d/assets/images/split/image2096.o (.data); - build/d/assets/images/split/image2097.o (.data); - build/d/assets/images/split/image2098.o (.data); - build/d/assets/images/split/image2099.o (.data); - build/d/assets/images/split/image2100.o (.data); - build/d/assets/images/split/image2101.o (.data); - build/d/assets/images/split/image2102.o (.data); - build/d/assets/images/split/image2103.o (.data); - build/d/assets/images/split/image2104.o (.data); - build/d/assets/images/split/image2105.o (.data); - build/d/assets/images/split/image2106.o (.data); - build/d/assets/images/split/image2107.o (.data); - build/d/assets/images/split/image2108.o (.data); - build/d/assets/images/split/image2109.o (.data); - build/d/assets/images/split/image2110.o (.data); - build/d/assets/images/split/image2111.o (.data); - build/d/assets/images/split/image2112.o (.data); - build/d/assets/images/split/image2113.o (.data); - build/d/assets/images/split/image2114.o (.data); - build/d/assets/images/split/image2115.o (.data); - build/d/assets/images/split/image2116.o (.data); - build/d/assets/images/split/image2117.o (.data); - build/d/assets/images/split/image2118.o (.data); - build/d/assets/images/split/image2119.o (.data); - build/d/assets/images/split/image2120.o (.data); - build/d/assets/images/split/image2121.o (.data); - build/d/assets/images/split/image2122.o (.data); - build/d/assets/images/split/image2123.o (.data); - build/d/assets/images/split/image2124.o (.data); - build/d/assets/images/split/image2125.o (.data); - build/d/assets/images/split/image2126.o (.data); - build/d/assets/images/split/image2127.o (.data); - build/d/assets/images/split/image2128.o (.data); - build/d/assets/images/split/image2129.o (.data); - build/d/assets/images/split/image2130.o (.data); - build/d/assets/images/split/image2131.o (.data); - build/d/assets/images/split/image2132.o (.data); - build/d/assets/images/split/image2133.o (.data); - build/d/assets/images/split/image2134.o (.data); - build/d/assets/images/split/image2135.o (.data); - build/d/assets/images/split/image2136.o (.data); - build/d/assets/images/split/image2137.o (.data); - build/d/assets/images/split/image2138.o (.data); - build/d/assets/images/split/image2139.o (.data); - build/d/assets/images/split/image2140.o (.data); - build/d/assets/images/split/image2141.o (.data); - build/d/assets/images/split/image2142.o (.data); - build/d/assets/images/split/image2143.o (.data); - build/d/assets/images/split/image2144.o (.data); - build/d/assets/images/split/image2145.o (.data); - build/d/assets/images/split/image2146.o (.data); - build/d/assets/images/split/image2147.o (.data); - build/d/assets/images/split/image2148.o (.data); - build/d/assets/images/split/image2149.o (.data); - build/d/assets/images/split/image2150.o (.data); - build/d/assets/images/split/image2151.o (.data); - build/d/assets/images/split/image2152.o (.data); - build/d/assets/images/split/image2153.o (.data); - build/d/assets/images/split/image2154.o (.data); - build/d/assets/images/split/image2155.o (.data); - build/d/assets/images/split/image2156.o (.data); - build/d/assets/images/split/image2157.o (.data); - build/d/assets/images/split/image2158.o (.data); - build/d/assets/images/split/image2159.o (.data); - build/d/assets/images/split/image2160.o (.data); - build/d/assets/images/split/image2161.o (.data); - build/d/assets/images/split/image2162.o (.data); - build/d/assets/images/split/image2163.o (.data); - build/d/assets/images/split/image2164.o (.data); - build/d/assets/images/split/image2165.o (.data); - build/d/assets/images/split/image2166.o (.data); - build/d/assets/images/split/image2167.o (.data); - build/d/assets/images/split/image2168.o (.data); - build/d/assets/images/split/image2169.o (.data); - build/d/assets/images/split/image2170.o (.data); - build/d/assets/images/split/image2171.o (.data); - build/d/assets/images/split/image2172.o (.data); - build/d/assets/images/split/image2173.o (.data); - build/d/assets/images/split/image2174.o (.data); - build/d/assets/images/split/image2175.o (.data); - build/d/assets/images/split/image2176.o (.data); - build/d/assets/images/split/image2177.o (.data); - build/d/assets/images/split/image2178.o (.data); - build/d/assets/images/split/image2179.o (.data); - build/d/assets/images/split/image2180.o (.data); - build/d/assets/images/split/image2181.o (.data); - build/d/assets/images/split/image2182.o (.data); - build/d/assets/images/split/image2183.o (.data); - build/d/assets/images/split/image2184.o (.data); - build/d/assets/images/split/image2185.o (.data); - build/d/assets/images/split/image2186.o (.data); - build/d/assets/images/split/image2187.o (.data); - build/d/assets/images/split/image2188.o (.data); - build/d/assets/images/split/image2189.o (.data); - build/d/assets/images/split/image2190.o (.data); - build/d/assets/images/split/image2191.o (.data); - build/d/assets/images/split/image2192.o (.data); - build/d/assets/images/split/image2193.o (.data); - build/d/assets/images/split/image2194.o (.data); - build/d/assets/images/split/image2195.o (.data); - build/d/assets/images/split/image2196.o (.data); - build/d/assets/images/split/image2197.o (.data); - build/d/assets/images/split/image2198.o (.data); - build/d/assets/images/split/image2199.o (.data); - build/d/assets/images/split/image2200.o (.data); - build/d/assets/images/split/image2201.o (.data); - build/d/assets/images/split/image2202.o (.data); - build/d/assets/images/split/image2203.o (.data); - build/d/assets/images/split/image2204.o (.data); - build/d/assets/images/split/image2205.o (.data); - build/d/assets/images/split/image2206.o (.data); - build/d/assets/images/split/image2207.o (.data); - build/d/assets/images/split/image2208.o (.data); - build/d/assets/images/split/image2209.o (.data); - build/d/assets/images/split/image2210.o (.data); - build/d/assets/images/split/image2211.o (.data); - build/d/assets/images/split/image2212.o (.data); - build/d/assets/images/split/image2213.o (.data); - build/d/assets/images/split/image2214.o (.data); - build/d/assets/images/split/image2215.o (.data); - build/d/assets/images/split/image2216.o (.data); - build/d/assets/images/split/image2217.o (.data); - build/d/assets/images/split/image2218.o (.data); - build/d/assets/images/split/image2219.o (.data); - build/d/assets/images/split/image2220.o (.data); - build/d/assets/images/split/image2221.o (.data); - build/d/assets/images/split/image2222.o (.data); - build/d/assets/images/split/image2223.o (.data); - build/d/assets/images/split/image2224.o (.data); - build/d/assets/images/split/image2225.o (.data); - build/d/assets/images/split/image2226.o (.data); - build/d/assets/images/split/image2227.o (.data); - build/d/assets/images/split/image2228.o (.data); - build/d/assets/images/split/image2229.o (.data); - build/d/assets/images/split/image2230.o (.data); - build/d/assets/images/split/image2231.o (.data); - build/d/assets/images/split/image2232.o (.data); - build/d/assets/images/split/image2233.o (.data); - build/d/assets/images/split/image2234.o (.data); - build/d/assets/images/split/image2235.o (.data); - build/d/assets/images/split/image2236.o (.data); - build/d/assets/images/split/image2237.o (.data); - build/d/assets/images/split/image2238.o (.data); - build/d/assets/images/split/image2239.o (.data); - build/d/assets/images/split/image2240.o (.data); - build/d/assets/images/split/image2241.o (.data); - build/d/assets/images/split/image2242.o (.data); - build/d/assets/images/split/image2243.o (.data); - build/d/assets/images/split/image2244.o (.data); - build/d/assets/images/split/image2245.o (.data); - build/d/assets/images/split/image2246.o (.data); - build/d/assets/images/split/image2247.o (.data); - build/d/assets/images/split/image2248.o (.data); - build/d/assets/images/split/image2249.o (.data); - build/d/assets/images/split/image2250.o (.data); - build/d/assets/images/split/image2251.o (.data); - build/d/assets/images/split/image2252.o (.data); - build/d/assets/images/split/image2253.o (.data); - build/d/assets/images/split/image2254.o (.data); - build/d/assets/images/split/image2255.o (.data); - build/d/assets/images/split/image2256.o (.data); - build/d/assets/images/split/image2257.o (.data); - build/d/assets/images/split/image2258.o (.data); - build/d/assets/images/split/image2259.o (.data); - build/d/assets/images/split/image2260.o (.data); - build/d/assets/images/split/image2261.o (.data); - build/d/assets/images/split/image2262.o (.data); - build/d/assets/images/split/image2263.o (.data); - build/d/assets/images/split/image2264.o (.data); - build/d/assets/images/split/image2265.o (.data); - build/d/assets/images/split/image2266.o (.data); - build/d/assets/images/split/image2267.o (.data); - build/d/assets/images/split/image2268.o (.data); - build/d/assets/images/split/image2269.o (.data); - build/d/assets/images/split/image2270.o (.data); - build/d/assets/images/split/image2271.o (.data); - build/d/assets/images/split/image2272.o (.data); - build/d/assets/images/split/image2273.o (.data); - build/d/assets/images/split/image2274.o (.data); - build/d/assets/images/split/image2275.o (.data); - build/d/assets/images/split/image2276.o (.data); - build/d/assets/images/split/image2277.o (.data); - build/d/assets/images/split/image2278.o (.data); - build/d/assets/images/split/image2279.o (.data); - build/d/assets/images/split/image2280.o (.data); - build/d/assets/images/split/image2281.o (.data); - build/d/assets/images/split/image2282.o (.data); - build/d/assets/images/split/image2283.o (.data); - build/d/assets/images/split/image2284.o (.data); - build/d/assets/images/split/image2285.o (.data); - build/d/assets/images/split/image2286.o (.data); - build/d/assets/images/split/image2287.o (.data); - build/d/assets/images/split/image2288.o (.data); - build/d/assets/images/split/image2289.o (.data); - build/d/assets/images/split/image2290.o (.data); - build/d/assets/images/split/image2291.o (.data); - build/d/assets/images/split/image2292.o (.data); - build/d/assets/images/split/image2293.o (.data); - build/d/assets/images/split/image2294.o (.data); - build/d/assets/images/split/image2295.o (.data); - build/d/assets/images/split/image2296.o (.data); - build/d/assets/images/split/image2297.o (.data); - build/d/assets/images/split/image2298.o (.data); - build/d/assets/images/split/image2299.o (.data); - build/d/assets/images/split/image2300.o (.data); - build/d/assets/images/split/image2301.o (.data); - build/d/assets/images/split/image2302.o (.data); - build/d/assets/images/split/image2303.o (.data); - build/d/assets/images/split/image2304.o (.data); - build/d/assets/images/split/image2305.o (.data); - build/d/assets/images/split/image2306.o (.data); - build/d/assets/images/split/image2307.o (.data); - build/d/assets/images/split/image2308.o (.data); - build/d/assets/images/split/image2309.o (.data); - build/d/assets/images/split/image2310.o (.data); - build/d/assets/images/split/image2311.o (.data); - build/d/assets/images/split/image2312.o (.data); - build/d/assets/images/split/image2313.o (.data); - build/d/assets/images/split/image2314.o (.data); - build/d/assets/images/split/image2315.o (.data); - build/d/assets/images/split/image2316.o (.data); - build/d/assets/images/split/image2317.o (.data); - build/d/assets/images/split/image2318.o (.data); - build/d/assets/images/split/image2319.o (.data); - build/d/assets/images/split/image2320.o (.data); - build/d/assets/images/split/image2321.o (.data); - build/d/assets/images/split/image2322.o (.data); - build/d/assets/images/split/image2323.o (.data); - build/d/assets/images/split/image2324.o (.data); - build/d/assets/images/split/image2325.o (.data); - build/d/assets/images/split/image2326.o (.data); - build/d/assets/images/split/image2327.o (.data); - build/d/assets/images/split/image2328.o (.data); - build/d/assets/images/split/image2329.o (.data); - build/d/assets/images/split/image2330.o (.data); - build/d/assets/images/split/image2331.o (.data); - build/d/assets/images/split/image2332.o (.data); - build/d/assets/images/split/image2333.o (.data); - build/d/assets/images/split/image2334.o (.data); - build/d/assets/images/split/image2335.o (.data); - build/d/assets/images/split/image2336.o (.data); - build/d/assets/images/split/image2337.o (.data); - build/d/assets/images/split/image2338.o (.data); - build/d/assets/images/split/image2339.o (.data); - build/d/assets/images/split/image2340.o (.data); - build/d/assets/images/split/image2341.o (.data); - build/d/assets/images/split/image2342.o (.data); - build/d/assets/images/split/image2343.o (.data); - build/d/assets/images/split/image2344.o (.data); - build/d/assets/images/split/image2345.o (.data); - build/d/assets/images/split/image2346.o (.data); - build/d/assets/images/split/image2347.o (.data); - build/d/assets/images/split/image2348.o (.data); - build/d/assets/images/split/image2349.o (.data); - build/d/assets/images/split/image2350.o (.data); - build/d/assets/images/split/image2351.o (.data); - build/d/assets/images/split/image2352.o (.data); - build/d/assets/images/split/image2353.o (.data); - build/d/assets/images/split/image2354.o (.data); - build/d/assets/images/split/image2355.o (.data); - build/d/assets/images/split/image2356.o (.data); - build/d/assets/images/split/image2357.o (.data); - build/d/assets/images/split/image2358.o (.data); - build/d/assets/images/split/image2359.o (.data); - build/d/assets/images/split/image2360.o (.data); - build/d/assets/images/split/image2361.o (.data); - build/d/assets/images/split/image2362.o (.data); - build/d/assets/images/split/image2363.o (.data); - build/d/assets/images/split/image2364.o (.data); - build/d/assets/images/split/image2365.o (.data); - build/d/assets/images/split/image2366.o (.data); - build/d/assets/images/split/image2367.o (.data); - build/d/assets/images/split/image2368.o (.data); - build/d/assets/images/split/image2369.o (.data); - build/d/assets/images/split/image2370.o (.data); - build/d/assets/images/split/image2371.o (.data); - build/d/assets/images/split/image2372.o (.data); - build/d/assets/images/split/image2373.o (.data); - build/d/assets/images/split/image2374.o (.data); - build/d/assets/images/split/image2375.o (.data); - build/d/assets/images/split/image2376.o (.data); - build/d/assets/images/split/image2377.o (.data); - build/d/assets/images/split/image2378.o (.data); - build/d/assets/images/split/image2379.o (.data); - build/d/assets/images/split/image2380.o (.data); - build/d/assets/images/split/image2381.o (.data); - build/d/assets/images/split/image2382.o (.data); - build/d/assets/images/split/image2383.o (.data); - build/d/assets/images/split/image2384.o (.data); - build/d/assets/images/split/image2385.o (.data); - build/d/assets/images/split/image2386.o (.data); - build/d/assets/images/split/image2387.o (.data); - build/d/assets/images/split/image2388.o (.data); - build/d/assets/images/split/image2389.o (.data); - build/d/assets/images/split/image2390.o (.data); - build/d/assets/images/split/image2391.o (.data); - build/d/assets/images/split/image2392.o (.data); - build/d/assets/images/split/image2393.o (.data); - build/d/assets/images/split/image2394.o (.data); - build/d/assets/images/split/image2395.o (.data); - build/d/assets/images/split/image2396.o (.data); - build/d/assets/images/split/image2397.o (.data); - build/d/assets/images/split/image2398.o (.data); - build/d/assets/images/split/image2399.o (.data); - build/d/assets/images/split/image2400.o (.data); - build/d/assets/images/split/image2401.o (.data); - build/d/assets/images/split/image2402.o (.data); - build/d/assets/images/split/image2403.o (.data); - build/d/assets/images/split/image2404.o (.data); - build/d/assets/images/split/image2405.o (.data); - build/d/assets/images/split/image2406.o (.data); - build/d/assets/images/split/image2407.o (.data); - build/d/assets/images/split/image2408.o (.data); - build/d/assets/images/split/image2409.o (.data); - build/d/assets/images/split/image2410.o (.data); - build/d/assets/images/split/image2411.o (.data); - build/d/assets/images/split/image2412.o (.data); - build/d/assets/images/split/image2413.o (.data); - build/d/assets/images/split/image2414.o (.data); - build/d/assets/images/split/image2415.o (.data); - build/d/assets/images/split/image2416.o (.data); - build/d/assets/images/split/image2417.o (.data); - build/d/assets/images/split/image2418.o (.data); - build/d/assets/images/split/image2419.o (.data); - build/d/assets/images/split/image2420.o (.data); - build/d/assets/images/split/image2421.o (.data); - build/d/assets/images/split/image2422.o (.data); - build/d/assets/images/split/image2423.o (.data); - build/d/assets/images/split/image2424.o (.data); - build/d/assets/images/split/image2425.o (.data); - build/d/assets/images/split/image2426.o (.data); - build/d/assets/images/split/image2427.o (.data); - build/d/assets/images/split/image2428.o (.data); - build/d/assets/images/split/image2429.o (.data); - build/d/assets/images/split/image2430.o (.data); - build/d/assets/images/split/image2431.o (.data); - build/d/assets/images/split/image2432.o (.data); - build/d/assets/images/split/image2433.o (.data); - build/d/assets/images/split/image2434.o (.data); - build/d/assets/images/split/image2435.o (.data); - build/d/assets/images/split/image2436.o (.data); - build/d/assets/images/split/image2437.o (.data); - build/d/assets/images/split/image2438.o (.data); - build/d/assets/images/split/image2439.o (.data); - build/d/assets/images/split/image2440.o (.data); - build/d/assets/images/split/image2441.o (.data); - build/d/assets/images/split/image2442.o (.data); - build/d/assets/images/split/image2443.o (.data); - build/d/assets/images/split/image2444.o (.data); - build/d/assets/images/split/image2445.o (.data); - build/d/assets/images/split/image2446.o (.data); - build/d/assets/images/split/image2447.o (.data); - build/d/assets/images/split/image2448.o (.data); - build/d/assets/images/split/image2449.o (.data); - build/d/assets/images/split/image2450.o (.data); - build/d/assets/images/split/image2451.o (.data); - build/d/assets/images/split/image2452.o (.data); - build/d/assets/images/split/image2453.o (.data); - build/d/assets/images/split/image2454.o (.data); - build/d/assets/images/split/image2455.o (.data); - build/d/assets/images/split/image2456.o (.data); - build/d/assets/images/split/image2457.o (.data); - build/d/assets/images/split/image2458.o (.data); - build/d/assets/images/split/image2459.o (.data); - build/d/assets/images/split/image2460.o (.data); - build/d/assets/images/split/image2461.o (.data); - build/d/assets/images/split/image2462.o (.data); - build/d/assets/images/split/image2463.o (.data); - build/d/assets/images/split/image2464.o (.data); - build/d/assets/images/split/image2465.o (.data); - build/d/assets/images/split/image2466.o (.data); - build/d/assets/images/split/image2467.o (.data); - build/d/assets/images/split/image2468.o (.data); - build/d/assets/images/split/image2469.o (.data); - build/d/assets/images/split/image2470.o (.data); - build/d/assets/images/split/image2471.o (.data); - build/d/assets/images/split/image2472.o (.data); - build/d/assets/images/split/image2473.o (.data); - build/d/assets/images/split/image2474.o (.data); - build/d/assets/images/split/image2475.o (.data); - build/d/assets/images/split/image2476.o (.data); - build/d/assets/images/split/image2477.o (.data); - build/d/assets/images/split/image2478.o (.data); - build/d/assets/images/split/image2479.o (.data); - build/d/assets/images/split/image2480.o (.data); - build/d/assets/images/split/image2481.o (.data); - build/d/assets/images/split/image2482.o (.data); - build/d/assets/images/split/image2483.o (.data); - build/d/assets/images/split/image2484.o (.data); - build/d/assets/images/split/image2485.o (.data); - build/d/assets/images/split/image2486.o (.data); - build/d/assets/images/split/image2487.o (.data); - build/d/assets/images/split/image2488.o (.data); - build/d/assets/images/split/image2489.o (.data); - build/d/assets/images/split/image2490.o (.data); - build/d/assets/images/split/image2491.o (.data); - build/d/assets/images/split/image2492.o (.data); - build/d/assets/images/split/image2493.o (.data); - build/d/assets/images/split/image2494.o (.data); - build/d/assets/images/split/image2495.o (.data); - build/d/assets/images/split/image2496.o (.data); - build/d/assets/images/split/image2497.o (.data); - build/d/assets/images/split/image2498.o (.data); - build/d/assets/images/split/image2499.o (.data); - build/d/assets/images/split/image2500.o (.data); - build/d/assets/images/split/image2501.o (.data); - build/d/assets/images/split/image2502.o (.data); - build/d/assets/images/split/image2503.o (.data); - build/d/assets/images/split/image2504.o (.data); - build/d/assets/images/split/image2505.o (.data); - build/d/assets/images/split/image2506.o (.data); - build/d/assets/images/split/image2507.o (.data); - build/d/assets/images/split/image2508.o (.data); - build/d/assets/images/split/image2509.o (.data); - build/d/assets/images/split/image2510.o (.data); - build/d/assets/images/split/image2511.o (.data); - build/d/assets/images/split/image2512.o (.data); - build/d/assets/images/split/image2513.o (.data); - build/d/assets/images/split/image2514.o (.data); - build/d/assets/images/split/image2515.o (.data); - build/d/assets/images/split/image2516.o (.data); - build/d/assets/images/split/image2517.o (.data); - build/d/assets/images/split/image2518.o (.data); - build/d/assets/images/split/image2519.o (.data); - build/d/assets/images/split/image2520.o (.data); - build/d/assets/images/split/image2521.o (.data); - build/d/assets/images/split/image2522.o (.data); - build/d/assets/images/split/image2523.o (.data); - build/d/assets/images/split/image2524.o (.data); - build/d/assets/images/split/image2525.o (.data); - build/d/assets/images/split/image2526.o (.data); - build/d/assets/images/split/image2527.o (.data); - build/d/assets/images/split/image2528.o (.data); - build/d/assets/images/split/image2529.o (.data); - build/d/assets/images/split/image2530.o (.data); - build/d/assets/images/split/image2531.o (.data); - build/d/assets/images/split/image2532.o (.data); - build/d/assets/images/split/image2533.o (.data); - build/d/assets/images/split/image2534.o (.data); - build/d/assets/images/split/image2535.o (.data); - build/d/assets/images/split/image2536.o (.data); - build/d/assets/images/split/image2537.o (.data); - build/d/assets/images/split/image2538.o (.data); - build/d/assets/images/split/image2539.o (.data); - build/d/assets/images/split/image2540.o (.data); - build/d/assets/images/split/image2541.o (.data); - build/d/assets/images/split/image2542.o (.data); - build/d/assets/images/split/image2543.o (.data); - build/d/assets/images/split/image2544.o (.data); - build/d/assets/images/split/image2545.o (.data); - build/d/assets/images/split/image2546.o (.data); - build/d/assets/images/split/image2547.o (.data); - build/d/assets/images/split/image2548.o (.data); - build/d/assets/images/split/image2549.o (.data); - build/d/assets/images/split/image2550.o (.data); - build/d/assets/images/split/image2551.o (.data); - build/d/assets/images/split/image2552.o (.data); - build/d/assets/images/split/image2553.o (.data); - build/d/assets/images/split/image2554.o (.data); - build/d/assets/images/split/image2555.o (.data); - build/d/assets/images/split/image2556.o (.data); - build/d/assets/images/split/image2557.o (.data); - build/d/assets/images/split/image2558.o (.data); - build/d/assets/images/split/image2559.o (.data); - build/d/assets/images/split/image2560.o (.data); - build/d/assets/images/split/image2561.o (.data); - build/d/assets/images/split/image2562.o (.data); - build/d/assets/images/split/image2563.o (.data); - build/d/assets/images/split/image2564.o (.data); - build/d/assets/images/split/image2565.o (.data); - build/d/assets/images/split/image2566.o (.data); - build/d/assets/images/split/image2567.o (.data); - build/d/assets/images/split/image2568.o (.data); - build/d/assets/images/split/image2569.o (.data); - build/d/assets/images/split/image2570.o (.data); - build/d/assets/images/split/image2571.o (.data); - build/d/assets/images/split/image2572.o (.data); - build/d/assets/images/split/image2573.o (.data); - build/d/assets/images/split/image2574.o (.data); - build/d/assets/images/split/image2575.o (.data); - build/d/assets/images/split/image2576.o (.data); - build/d/assets/images/split/image2577.o (.data); - build/d/assets/images/split/image2578.o (.data); - build/d/assets/images/split/image2579.o (.data); - build/d/assets/images/split/image2580.o (.data); - build/d/assets/images/split/image2581.o (.data); - build/d/assets/images/split/image2582.o (.data); - build/d/assets/images/split/image2583.o (.data); - build/d/assets/images/split/image2584.o (.data); - build/d/assets/images/split/image2585.o (.data); - build/d/assets/images/split/image2586.o (.data); - build/d/assets/images/split/image2587.o (.data); - build/d/assets/images/split/image2588.o (.data); - build/d/assets/images/split/image2589.o (.data); - build/d/assets/images/split/image2590.o (.data); - build/d/assets/images/split/image2591.o (.data); - build/d/assets/images/split/image2592.o (.data); - build/d/assets/images/split/image2593.o (.data); - build/d/assets/images/split/image2594.o (.data); - build/d/assets/images/split/image2595.o (.data); - build/d/assets/images/split/image2596.o (.data); - build/d/assets/images/split/image2597.o (.data); - build/d/assets/images/split/image2598.o (.data); - build/d/assets/images/split/image2599.o (.data); - build/d/assets/images/split/image2600.o (.data); - build/d/assets/images/split/image2601.o (.data); - build/d/assets/images/split/image2602.o (.data); - build/d/assets/images/split/image2603.o (.data); - build/d/assets/images/split/image2604.o (.data); - build/d/assets/images/split/image2605.o (.data); - build/d/assets/images/split/image2606.o (.data); - build/d/assets/images/split/image2607.o (.data); - build/d/assets/images/split/image2608.o (.data); - build/d/assets/images/split/image2609.o (.data); - build/d/assets/images/split/image2610.o (.data); - build/d/assets/images/split/image2611.o (.data); - build/d/assets/images/split/image2612.o (.data); - build/d/assets/images/split/image2613.o (.data); - build/d/assets/images/split/image2614.o (.data); - build/d/assets/images/split/image2615.o (.data); - build/d/assets/images/split/image2616.o (.data); - build/d/assets/images/split/image2617.o (.data); - build/d/assets/images/split/image2618.o (.data); - build/d/assets/images/split/image2619.o (.data); - build/d/assets/images/split/image2620.o (.data); - build/d/assets/images/split/image2621.o (.data); - build/d/assets/images/split/image2622.o (.data); - build/d/assets/images/split/image2623.o (.data); - build/d/assets/images/split/image2624.o (.data); - build/d/assets/images/split/image2625.o (.data); - build/d/assets/images/split/image2626.o (.data); - build/d/assets/images/split/image2627.o (.data); - build/d/assets/images/split/image2628.o (.data); - build/d/assets/images/split/image2629.o (.data); - build/d/assets/images/split/image2630.o (.data); - build/d/assets/images/split/image2631.o (.data); - build/d/assets/images/split/image2632.o (.data); - build/d/assets/images/split/image2633.o (.data); - build/d/assets/images/split/image2634.o (.data); - build/d/assets/images/split/image2635.o (.data); - build/d/assets/images/split/image2636.o (.data); - build/d/assets/images/split/image2637.o (.data); - build/d/assets/images/split/image2638.o (.data); - build/d/assets/images/split/image2639.o (.data); - build/d/assets/images/split/image2640.o (.data); - build/d/assets/images/split/image2641.o (.data); - build/d/assets/images/split/image2642.o (.data); - build/d/assets/images/split/image2643.o (.data); - build/d/assets/images/split/image2644.o (.data); - build/d/assets/images/split/image2645.o (.data); - build/d/assets/images/split/image2646.o (.data); - build/d/assets/images/split/image2647.o (.data); - build/d/assets/images/split/image2648.o (.data); - build/d/assets/images/split/image2649.o (.data); - build/d/assets/images/split/image2650.o (.data); - build/d/assets/images/split/image2651.o (.data); - build/d/assets/images/split/image2652.o (.data); - build/d/assets/images/split/image2653.o (.data); - build/d/assets/images/split/image2654.o (.data); - build/d/assets/images/split/image2655.o (.data); - build/d/assets/images/split/image2656.o (.data); - build/d/assets/images/split/image2657.o (.data); - build/d/assets/images/split/image2658.o (.data); - build/d/assets/images/split/image2659.o (.data); - build/d/assets/images/split/image2660.o (.data); - build/d/assets/images/split/image2661.o (.data); - build/d/assets/images/split/image2662.o (.data); - build/d/assets/images/split/image2663.o (.data); - build/d/assets/images/split/image2664.o (.data); - build/d/assets/images/split/image2665.o (.data); - build/d/assets/images/split/image2666.o (.data); - build/d/assets/images/split/image2667.o (.data); - build/d/assets/images/split/image2668.o (.data); - build/d/assets/images/split/image2669.o (.data); - build/d/assets/images/split/image2670.o (.data); - build/d/assets/images/split/image2671.o (.data); - build/d/assets/images/split/image2672.o (.data); - build/d/assets/images/split/image2673.o (.data); - build/d/assets/images/split/image2674.o (.data); - build/d/assets/images/split/image2675.o (.data); - build/d/assets/images/split/image2676.o (.data); - build/d/assets/images/split/image2677.o (.data); - build/d/assets/images/split/image2678.o (.data); - build/d/assets/images/split/image2679.o (.data); - build/d/assets/images/split/image2680.o (.data); - build/d/assets/images/split/image2681.o (.data); - build/d/assets/images/split/image2682.o (.data); - build/d/assets/images/split/image2683.o (.data); - build/d/assets/images/split/image2684.o (.data); - build/d/assets/images/split/image2685.o (.data); - build/d/assets/images/split/image2686.o (.data); - build/d/assets/images/split/image2687.o (.data); - build/d/assets/images/split/image2688.o (.data); - build/d/assets/images/split/image2689.o (.data); - build/d/assets/images/split/image2690.o (.data); - build/d/assets/images/split/image2691.o (.data); - build/d/assets/images/split/image2692.o (.data); - build/d/assets/images/split/image2693.o (.data); - build/d/assets/images/split/image2694.o (.data); - build/d/assets/images/split/image2695.o (.data); - build/d/assets/images/split/image2696.o (.data); - build/d/assets/images/split/image2697.o (.data); - build/d/assets/images/split/image2698.o (.data); - build/d/assets/images/split/image2699.o (.data); - } - _imagesSegmentEnd = ADDR(.images) + SIZEOF(.images); - _imagesSegmentRomEnd = _imagesSegmentRomStart + SIZEOF(.images); - - - - _romSegmentEnd = _imagesSegmentRomEnd; - - - - __csegtempPos = 0xC00000; - __dataSegmentVaddrStart = _codeSegmentEnd + 0x10000000; - _csegmentSegmentStart = ADDR(.csegment); - _csegmentSegmentRomStart = __csegtempPos; - .csegment __dataSegmentVaddrStart : AT(_csegmentSegmentRomStart) { - build/d/src/rspboot.o (.text); - build/d/src/gspboot.o (.text); - build/d/src/aspboot.o (.text); - build/d/src/boot.o (.data); - build/d/src/init.o (.data); - build/d/src/sched.o (.data); - /*build/d/src/osMapTLB.o (.data);*/ - build/d/src/tlb_manage.o (.data); - build/d/src/tlb_random.o (.data); - /*build/d/src/tlb_resolve.o (.data);*/ - /*build/d/src/tlb_hardwire.o (.data);*/ - build/d/src/audi.o (.data); - build/d/src/speed_graph.o (.data); - build/d/src/fr.o (.data); - build/d/src/deb.o (.data); - /*build/d/src/fault.o (.data);*/ - /*deb_print may be part of fault per pd beta (.data);*/ - build/d/src/deb_print.o (.data); - /*build/d/src/getra.o (.data);*/ - /*build/d/src/ramrom.o (.data);*/ - build/d/src/boss.o (.data); - build/d/src/music.o (.data); - build/d/src/snd.o (.data); - build/d/src/memp.o (.data); - build/d/src/mema.o (.data); - build/d/src/random.o (.data); - build/d/src/token.o (.data); - /*build/d/src/str.o (.data);*/ - /*build/d/src/sprintf.o (.data);*/ - /*build/d/src/pi.o (.data);*/ - build/d/src/vi.o (.data); - build/d/src/debugmenu.o (.data); - build/d/src/joy.o (.data); - /*build/d/src/motor.o (.data);*/ - /*build/d/src/rmon.o (.data);*/ - - - /*build/d/src/libultra/io/pirawdma.o (.data);*/ - build/d/src/libultra/io/pigetstat.o (.data); - build/d/src/libultrare/os/initialize.o (.data); - build/d/src/libultra/os/writebackdcacheall.o (.data); - build/d/src/libultra/os/invalicache.o (.data); - build/d/src/libultra/os/unmaptlb.o (.data); - build/d/src/libultra/os/getfpccsr.o (.data); - build/d/src/libultra/os/setfpccsr.o (.data); - /*build/d/src/libultra/os/createthread.o (.data);*/ - /*build/d/src/libultra/os/startthread.o (.data);*/ - /*build/d/src/libultra/os/createmesgqueue.o (.data);*/ - build/d/src/libultra/os/parameters.o (.data); - build/d/src/libultra/os/stopthread.o (.data); - /*build/d/src/libultra/os/setthreadpri.o (.data);*/ - build/d/src/libultra/os/getcount.o (.data); - build/d/src/libultrare/io/vimgr.o (.data); - build/d/src/libultrare/io/vitbl.o (.data); /*edited*/ - /*build/d/src/libultra/os/seteventmesg.o (.data);*/ - /*build/d/src/libultra/io/visetevent.o (.data);*/ - build/d/src/libultra/os/setintmask.o (.data); - /*build/d/src/libultra/os/recvmesg.o (.data);*/ - /*build/d/src/libultra/os/sendmesg.o (.data);*/ - /*build/d/src/libultra/io/visetmode.o (.data);*/ - build/d/src/libultra/io/visetxscale.o (.data); - build/d/src/libultra/io/visetyscale.o (.data); - build/d/src/libultra/io/virepeatline.o (.data); - /*build/d/src/libultra/io/viblack.o (.data);*/ - /*build/d/src/libultra/io/sptaskyielded.o (.data);*/ - build/d/src/libultra/io/dpctr.o (.data); - build/d/src/libultra/io/vigetcurrframebuf.o (.data); - build/d/src/libultra/io/vigetnextframebuf.o (.data); - /*build/d/src/libultra/io/viswapbuf.o (.data);*/ - build/d/src/libultra/io/dpsetstat.o (.data); - build/d/src/libultrare/io/sptask.o (.data); - build/d/src/libultra/io/dpsetnextbuf.o (.data); - build/d/src/libultra/io/sptaskyield.o (.data); - build/d/src/libultra/os/gettlbhi.o (.data); - build/d/src/libultra/os/virtualtophysical.o (.data); - build/d/src/libultra/io/aisetfreq.o (.data); - build/d/src/libultra/audio/sl.o (.data); - build/d/src/libultra/audio/heapalloc.o (.data); - build/d/src/libultra/os/gettime.o (.data); - build/d/src/libultra/libc/ll.o (.data); /*edited*/ - build/d/src/libultrare/io/aisetnextbuf.o (.data); - build/d/src/libultra/io/aigetlen.o (.data); - build/d/src/libultra/audio/synthesizer.o (.data); - build/d/src/libultra/io/pidma.o (.data); - build/d/src/libultra/io/visetspecial.o (.data); - build/d/src/libultra/libc/bcopy.o (.data); - build/d/src/libultra/gu/perspective.o (.data); - build/d/src/libultra/gu/mtxutil.o (.data); - build/d/src/libultra/os/getcurrfaultthread.o (.data); - build/d/src/libultra/os/exception.o (.data); /*edited*/ - build/d/src/libultra/os/thread.o (.data); - build/d/src/libultra/os/yieldthread.o (.data); - build/d/src/libultra/os/invaldcache.o (.data); - build/d/src/libultra/os/writebackdcache.o (.data); - build/d/src/libultra/os/settimer.o (.data); - build/d/src/libultra/audio/heapinit.o (.data); - build/d/src/libultra/audio/bnkf.o (.data); - build/d/src/libultra/audio/csplayer.o (.data); - build/d/src/libultra/audio/seqpsetbank.o (.data); - build/d/src/libultra/audio/cspgetstate.o (.data); - build/d/src/libultra/audio/cseq.o (.data); - build/d/src/libultra/audio/cspsetseq.o (.data); - build/d/src/libultra/audio/cspplay.o (.data); - build/d/src/libultra/audio/cspstop.o (.data); - build/d/src/libultra/audio/cspsetvol.o (.data); - build/d/src/libultra/audio/event.o (.data); - build/d/src/libultra/audio/synaddplayer.o (.data); - build/d/src/libultra/audio/synallocvoice.o (.data); - build/d/src/libultra/audio/synsetvol.o (.data); - build/d/src/libultra/audio/synstartvoice.o (.data); - build/d/src/libultra/audio/synsetpan.o (.data); - build/d/src/libultra/audio/synsetpitch.o (.data); - build/d/src/libultra/audio/synsetfxmix.o (.data); - build/d/src/libultra/audio/synstopvoice.o (.data); - build/d/src/libultra/audio/synfreevoice.o (.data); - build/d/src/libultra/audio/cents2ratio.o (.data); - build/d/src/libultra/io/piread.o (.data); - build/d/src/libultra/libc/string.o (.data); - build/d/src/libultrare/libc/xprintf.o (.data); - build/d/src/libultrare/io/pimgr.o (.data); - build/d/src/libultrare/io/pfsinit.o (.data); - build/d/src/libultrare/io/controller.o (.data); - build/d/src/libultra/io/contquery.o (.data); - build/d/src/libultrare/io/contreaddata.o (.data); - build/d/src/libultrare/io/conteepprobe.o (.data); - build/d/src/libultrare/io/conteepread.o (.data); - build/d/src/libultrare/io/conteepwrite.o (.data); - build/d/src/libultrare/io/conteeplongread.o (.data); - build/d/src/libultrare/io/conteeplongwrite.o (.data); - build/d/src/libultrare/io/pfsisplug.o (.data); - build/d/src/libultra/io/siacs.o (.data); - build/d/src/libultra/io/sirawdma.o (.data); - build/d/src/libultra/io/crc.o (.data); - build/d/src/libultrare/io/contramwrite.o (.data); - build/d/src/libultrare/io/contramread.o (.data); - build/d/src/libultra/gu/align.o (.data); - build/d/src/libultra/gu/ortho.o (.data); - build/d/src/libultra/gu/coss.o (.data); - build/d/src/libultra/gu/sins.o (.data); - build/d/src/libultra/gu/translate.o (.data); - build/d/src/libultra/libc/bcmp.o (.data); - build/d/src/libultra/gu/scale.o (.data); - build/d/src/libultra/gu/lookatref.o (.data); - build/d/src/libultra/gu/lookat.o (.data); - build/d/src/libultra/gu/rotate.o (.data); - build/d/src/libultra/libc/llcvt.o (.data); /*edited*/ - build/d/src/libultra/os/setsr.o (.data); - build/d/src/libultra/os/getsr.o (.data); - build/d/src/libultra/io/sirawread.o (.data); - build/d/src/libultra/io/sirawwrite.o (.data); - build/d/src/libultra/io/pirawread.o (.data); - build/d/src/libultra/libc/bzero.o (.data); - build/d/src/libultra/os/sethwinterrupt.o (.data); - build/d/src/libultrare/io/leointerrupt.o (.data); - build/d/src/libultra/os/interrupt.o (.data); - build/d/src/libultra/os/timerintr.o (.data); - build/d/src/libultra/os/kdebugserver.o (.data); - build/d/src/libultra/os/getthreadpri.o (.data); - build/d/src/libultrare/io/vi.o (.data); /*edited*/ - build/d/src/libultra/io/vigetcurrcontext.o (.data); - build/d/src/libultra/io/viswapcontext.o (.data); - build/d/src/libultra/io/spgetstat.o (.data); - build/d/src/libultra/io/spsetstat.o (.data); - build/d/src/libultra/io/spsetpc.o (.data); - build/d/src/libultra/io/sprawdma.o (.data); - build/d/src/libultra/io/sp.o (.data); - build/d/src/libultra/io/dp.o (.data); - build/d/src/libultra/os/probetlb.o (.data); - build/d/src/libultra/audio/syndelete.o (.data); - build/d/src/libultra/io/ai.o (.data); - build/d/src/libultrare/audio/drvrNew.o (.data); - build/d/src/libultra/audio/synallocfx.o (.data); - build/d/src/libultra/audio/mainbus.o (.data); - build/d/src/libultra/audio/load.o (.data); - build/d/src/libultra/audio/resample.o (.data); - build/d/src/libultrare/audio/env.o (.data); /*edited*/ - build/d/src/libultra/audio/auxbus.o (.data); - build/d/src/libultra/audio/save.o (.data); - build/d/src/libultra/os/jammesg.o (.data); - build/d/src/libultra/io/pigetcmdq.o (.data); - build/d/src/libultra/gu/cosf.o (.data); /*edited*/ - build/d/src/libultra/gu/sinf.o (.data); /*edited*/ - build/d/src/libultrare/os/destroythread.o (.data); - build/d/src/libultra/audio/seqplayer.o (.data); - build/d/src/libultra/audio/synstartvoiceparam.o (.data); - build/d/src/libultra/audio/copy.o (.data); - build/d/src/libultra/io/piacs.o (.data); - build/d/src/libultra/libc/xlitob.o (.data); - build/d/src/libultra/libc/xldtob.o (.data); - build/d/src/libultrare/io/epirawdma.o (.data); - build/d/src/libultrare/io/devmgr.o (.data); - build/d/src/libultra/io/contpfs.o (.data); - build/d/src/libultra/io/si.o (.data); - build/d/src/libultra/gu/normalize.o (.data); - build/d/src/libultra/gu/sqrtf.o (.data); - build/d/src/libultrare/io/leodiskinit.o (.data); - build/d/src/libultra/os/setcompare.o (.data); - build/d/src/libultra/audio/filter.o (.data); - build/d/src/libultrare/audio/reverb.o (.data); /*edited*/ - build/d/src/libultra/gu/libm_vals.o (.data); /*edited*/ - build/d/src/libultra/audio/seq.o (.data); - build/d/src/libultra/audio/synsetpriority.o (.data); - build/d/src/libultra/libc/ldiv.o (.data); - build/d/src/libultra/os/resetglobalintmask.o (.data); - build/d/src/libultrare/io/epirawwrite.o (.data); - build/d/src/libultra/io/vimodentsclan1.o (.data); - build/d/src/libultrare/io/vimodepallan1.o (.data); - build/d/src/libultrare/ultra80069080.o (.data); /*edited*/ - /*build/d/src/libultra/libultra.a:libultra.o (.data);*/ - - build/d/src/aspboot.o (.rodata); - build/d/src/boot.o (.rodata); - build/d/src/init.o (.rodata); - build/d/src/sched.o (.rodata); - build/d/src/osMapTLB.o (.rodata); - build/d/src/tlb_manage.o (.rodata); - build/d/src/tlb_random.o (.rodata); - build/d/src/tlb_resolve.o (.rodata); - build/d/src/tlb_hardwire.o (.rodata); - build/d/src/audi.o (.rodata); - build/d/src/speed_graph.o (.rodata); - build/d/src/fr.o (.rodata); - build/d/src/deb.o (.rodata); - build/d/src/fault.o (.rodata); - /*deb_print may be part of fault per pd beta (.rodata);*/ - build/d/src/deb_print.o (.rodata); - build/d/src/getra.o (.rodata); - build/d/src/ramrom.o (.rodata); - build/d/src/boss.o (.rodata); - build/d/src/music.o (.rodata); - build/d/src/snd.o (.rodata); - build/d/src/memp.o (.rodata); - build/d/src/mema.o (.rodata); - build/d/src/random.o (.rodata); - build/d/src/token.o (.rodata); - build/d/src/str.o (.rodata); - build/d/src/sprintf.o (.rodata); - build/d/src/pi.o (.rodata); - build/d/src/vi.o (.rodata); - build/d/src/debugmenu.o (.rodata); - build/d/src/joy.o (.rodata); - build/d/src/motor.o (.rodata); - build/d/src/rmon.o (.rodata); - - /*build/d/src/libultra/osPiRawStartDma.o (.rodata);*/ - build/d/src/libultra/io/pirawdma.o (.rodata); - build/d/src/libultra/io/pigetstat.o (.rodata); - build/d/src/libultrare/os/initialize.o (.rodata); - build/d/src/libultra/os/writebackdcacheall.o (.rodata); - build/d/src/libultra/os/invalicache.o (.rodata); - build/d/src/libultra/os/unmaptlb.o (.rodata); - build/d/src/libultra/os/getfpccsr.o (.rodata); - build/d/src/libultra/os/setfpccsr.o (.rodata); - build/d/src/libultra/os/createthread.o (.rodata); - build/d/src/libultra/os/startthread.o (.rodata); - build/d/src/libultra/os/createmesgqueue.o (.rodata); - build/d/src/libultra/os/parameters.o (.rodata); - build/d/src/libultra/os/stopthread.o (.rodata); - build/d/src/libultra/os/setthreadpri.o (.rodata); - build/d/src/libultra/os/getcount.o (.rodata); - build/d/src/libultrare/io/vimgr.o (.rodata); - build/d/src/libultrare/io/vitbl.o (.rodata); /*edited*/ - build/d/src/libultra/os/seteventmesg.o (.rodata); - build/d/src/libultra/io/visetevent.o (.rodata); - build/d/src/libultra/os/setintmask.o (.rodata); - build/d/src/libultra/os/recvmesg.o (.rodata); - build/d/src/libultra/os/sendmesg.o (.rodata); - build/d/src/libultra/io/visetmode.o (.rodata); - build/d/src/libultra/io/visetxscale.o (.rodata); - build/d/src/libultra/io/visetyscale.o (.rodata); - build/d/src/libultra/io/virepeatline.o (.rodata); - build/d/src/libultra/io/viblack.o (.rodata); - build/d/src/libultra/io/sptaskyielded.o (.rodata); - build/d/src/libultra/io/dpctr.o (.rodata); - build/d/src/libultra/io/vigetcurrframebuf.o (.rodata); - build/d/src/libultra/io/vigetnextframebuf.o (.rodata); - build/d/src/libultra/io/viswapbuf.o (.rodata); - build/d/src/libultra/io/dpsetstat.o (.rodata); - build/d/src/libultrare/io/sptask.o (.rodata); - build/d/src/libultra/io/dpsetnextbuf.o (.rodata); - build/d/src/libultra/io/sptaskyield.o (.rodata); - build/d/src/libultra/os/gettlbhi.o (.rodata); - build/d/src/libultra/os/virtualtophysical.o (.rodata); - build/d/src/libultra/io/aisetfreq.o (.rodata); - build/d/src/libultra/audio/sl.o (.rodata); - build/d/src/libultra/audio/heapalloc.o (.rodata); - build/d/src/libultra/os/gettime.o (.rodata); - build/d/src/libultra/libc/ll.o (.rodata); /*edited*/ - build/d/src/libultrare/io/aisetnextbuf.o (.rodata); - build/d/src/libultra/io/aigetlen.o (.rodata); - build/d/src/libultra/audio/synthesizer.o (.rodata); - build/d/src/libultra/io/pidma.o (.rodata); - build/d/src/libultra/io/visetspecial.o (.rodata); - build/d/src/libultra/libc/bcopy.o (.rodata); - build/d/src/libultra/gu/perspective.o (.rodata); - build/d/src/libultra/gu/mtxutil.o (.rodata); - build/d/src/libultra/os/getcurrfaultthread.o (.rodata); - build/d/src/libultra/os/exception.o (.rodata); /*edited*/ - build/d/src/libultra/os/thread.o (.rodata); - build/d/src/libultra/os/yieldthread.o (.rodata); - build/d/src/libultra/os/invaldcache.o (.rodata); - build/d/src/libultra/os/writebackdcache.o (.rodata); - build/d/src/libultra/os/settimer.o (.rodata); - build/d/src/libultra/audio/heapinit.o (.rodata); - build/d/src/libultra/audio/bnkf.o (.rodata); - build/d/src/libultra/audio/csplayer.o (.rodata); - build/d/src/libultra/audio/seqpsetbank.o (.rodata); - build/d/src/libultra/audio/cspgetstate.o (.rodata); - build/d/src/libultra/audio/cseq.o (.rodata); - build/d/src/libultra/audio/cspsetseq.o (.rodata); - build/d/src/libultra/audio/cspplay.o (.rodata); - build/d/src/libultra/audio/cspstop.o (.rodata); - build/d/src/libultra/audio/cspsetvol.o (.rodata); - build/d/src/libultra/audio/event.o (.rodata); - build/d/src/libultra/audio/synaddplayer.o (.rodata); - build/d/src/libultra/audio/synallocvoice.o (.rodata); - build/d/src/libultra/audio/synsetvol.o (.rodata); - build/d/src/libultra/audio/synstartvoice.o (.rodata); - build/d/src/libultra/audio/synsetpan.o (.rodata); - build/d/src/libultra/audio/synsetpitch.o (.rodata); - build/d/src/libultra/audio/synsetfxmix.o (.rodata); - build/d/src/libultra/audio/synstopvoice.o (.rodata); - build/d/src/libultra/audio/synfreevoice.o (.rodata); - build/d/src/libultra/audio/cents2ratio.o (.rodata); - build/d/src/libultra/io/piread.o (.rodata); - build/d/src/libultra/libc/string.o (.rodata); - build/d/src/libultrare/libc/xprintf.o (.rodata); - build/d/src/libultrare/io/pimgr.o (.rodata); - build/d/src/libultrare/io/pfsinit.o (.rodata); - build/d/src/libultrare/io/controller.o (.rodata); - build/d/src/libultra/io/contquery.o (.rodata); - build/d/src/libultrare/io/contreaddata.o (.rodata); - build/d/src/libultrare/io/conteepprobe.o (.rodata); - build/d/src/libultrare/io/conteepread.o (.rodata); - build/d/src/libultrare/io/conteepwrite.o (.rodata); - build/d/src/libultrare/io/conteeplongread.o (.rodata); - build/d/src/libultrare/io/conteeplongwrite.o (.rodata); - build/d/src/libultrare/io/pfsisplug.o (.rodata); - build/d/src/libultra/io/siacs.o (.rodata); - build/d/src/libultra/io/sirawdma.o (.rodata); - build/d/src/libultra/io/crc.o (.rodata); - build/d/src/libultrare/io/contramwrite.o (.rodata); - build/d/src/libultrare/io/contramread.o (.rodata); - build/d/src/libultra/gu/align.o (.rodata); - build/d/src/libultra/gu/ortho.o (.rodata); - build/d/src/libultra/gu/coss.o (.rodata); - build/d/src/libultra/gu/sins.o (.rodata); - build/d/src/libultra/gu/translate.o (.rodata); - build/d/src/libultra/libc/bcmp.o (.rodata); - build/d/src/libultra/gu/scale.o (.rodata); - build/d/src/libultra/gu/lookatref.o (.rodata); - build/d/src/libultra/gu/lookat.o (.rodata); - build/d/src/libultra/gu/rotate.o (.rodata); - build/d/src/libultra/libc/llcvt.o (.rodata); /*edited*/ - build/d/src/libultra/os/setsr.o (.rodata); - build/d/src/libultra/os/getsr.o (.rodata); - build/d/src/libultra/io/sirawread.o (.rodata); - build/d/src/libultra/io/sirawwrite.o (.rodata); - build/d/src/libultra/io/pirawread.o (.rodata); - build/d/src/libultra/libc/bzero.o (.rodata); - build/d/src/libultra/os/sethwinterrupt.o (.rodata); - build/d/src/libultrare/io/leointerrupt.o (.rodata); - build/d/src/libultra/os/interrupt.o (.rodata); - build/d/src/libultra/os/timerintr.o (.rodata); - build/d/src/libultra/os/kdebugserver.o (.rodata); - build/d/src/libultra/os/getthreadpri.o (.rodata); - build/d/src/libultrare/io/vi.o (.rodata); /*edited*/ - build/d/src/libultra/io/vigetcurrcontext.o (.rodata); - build/d/src/libultra/io/viswapcontext.o (.rodata); - build/d/src/libultra/io/spgetstat.o (.rodata); - build/d/src/libultra/io/spsetstat.o (.rodata); - build/d/src/libultra/io/spsetpc.o (.rodata); - build/d/src/libultra/io/sprawdma.o (.rodata); - build/d/src/libultra/io/sp.o (.rodata); - build/d/src/libultra/io/dp.o (.rodata); - build/d/src/libultra/os/probetlb.o (.rodata); - build/d/src/libultra/audio/syndelete.o (.rodata); - build/d/src/libultra/io/ai.o (.rodata); - build/d/src/libultrare/audio/drvrNew.o (.rodata); - build/d/src/libultra/audio/synallocfx.o (.rodata); - build/d/src/libultra/audio/mainbus.o (.rodata); - build/d/src/libultra/audio/load.o (.rodata); - build/d/src/libultra/audio/resample.o (.rodata); - build/d/src/libultrare/audio/env.o (.rodata); /*edited*/ - build/d/src/libultra/audio/auxbus.o (.rodata); - build/d/src/libultra/audio/save.o (.rodata); - build/d/src/libultra/os/jammesg.o (.rodata); - build/d/src/libultra/io/pigetcmdq.o (.rodata); - build/d/src/libultra/gu/cosf.o (.rodata); /*edited*/ - build/d/src/libultra/gu/sinf.o (.rodata); /*edited*/ - build/d/src/libultrare/os/destroythread.o (.rodata); - build/d/src/libultra/audio/seqplayer.o (.rodata); - build/d/src/libultra/audio/synstartvoiceparam.o (.rodata); - build/d/src/libultra/audio/copy.o (.rodata); - build/d/src/libultra/io/piacs.o (.rodata); - build/d/src/libultra/libc/xlitob.o (.rodata); - build/d/src/libultra/libc/xldtob.o (.rodata); - build/d/src/libultrare/io/epirawdma.o (.rodata); - build/d/src/libultrare/io/devmgr.o (.rodata); - build/d/src/libultra/io/contpfs.o (.rodata); - build/d/src/libultra/io/si.o (.rodata); - build/d/src/libultra/gu/normalize.o (.rodata); - build/d/src/libultra/gu/sqrtf.o (.rodata); - build/d/src/libultrare/io/leodiskinit.o (.rodata); - build/d/src/libultra/os/setcompare.o (.rodata); - build/d/src/libultra/audio/filter.o (.rodata); - build/d/src/libultrare/audio/reverb.o (.rodata); /*edited*/ - build/d/src/libultra/gu/libm_vals.o (.rodata); /*edited*/ - build/d/src/libultra/audio/seq.o (.rodata); - build/d/src/libultra/audio/synsetpriority.o (.rodata); - build/d/src/libultra/libc/ldiv.o (.rodata); - build/d/src/libultra/os/resetglobalintmask.o (.rodata); - build/d/src/libultrare/io/epirawwrite.o (.rodata); - build/d/src/libultra/io/vimodentsclan1.o (.rodata); - build/d/src/libultrare/io/vimodepallan1.o (.rodata); - build/d/src/libultrare/ultra80069080.o (.rodata); /*edited*/ - /*build/d/src/libultra/libultra.a:libultra.o (.rodata);*/ - - build/d/src/game/initgamedata.o (.data); - build/d/src/game/initweaponanigroups.o (.data); - build/d/src/game/initactorpropstuff.o (.data); - build/d/src/game/initnull_0009D0.o (.data); - build/d/src/game/initunk_0009E0.o (.data); - build/d/src/game/initanitable.o (.data); - build/d/src/game/initplayergaitobject.o (.data); - build/d/src/game/setguscale.o (.data); - build/d/src/game/initnull_000BC0.o (.data); - build/d/src/game/initimages.o (.data); - build/d/src/game/initintromatrices.o (.data); - build/d/src/game/initmenus.o (.data); - build/d/src/game/initguards.o (.data); - build/d/src/game/deb_loadallmodels.o (.data); - build/d/src/game/initobjects.o (.data); - build/d/src/game/prop.o (.data); - build/d/src/game/objective.o (.data); - build/d/src/game/ejectedcartridges.o (.data); - build/d/src/game/initBondDATA.o (.data); - build/d/src/game/initunk_005450.o (.data); - build/d/src/game/initunk_005520.o (.data); - build/d/src/game/bondview_r.o (.data); - build/d/src/game/inititemslots.o (.data); - build/d/src/game/initBondDATAdefaults.o (.data); - build/d/src/game/initpathtablesomething.o (.data); - build/d/src/game/initpathtablelinks.o (.data); - build/d/src/game/initexplosioncasing.o (.data); - build/d/src/game/alloc_window_pieces.o (.data); - build/d/src/game/initunk_007290.o (.data); - build/d/src/game/initcheattext.o (.data); - build/d/src/game/initmttex.o (.data); - build/d/src/game/cleanup_guard_data.o (.data); - build/d/src/game/cleanup_object_sounds.o (.data); - build/d/src/game/cleanup_alarms.o (.data); - build/d/src/game/cleanup_objects.o (.data); - build/d/src/game/cleanup_objectives.o (.data); - build/d/src/game/cleanupSFXRelated.o (.data); - build/d/src/game/playerstats_007770.o (.data); - build/d/src/game/cleanexplosions.o (.data); - build/d/src/game/cleanwindowpieces.o (.data); - build/d/src/game/null_007970.o (.data); - build/d/src/game/cleanplayersound.o (.data); - build/d/src/game/title.o (.data); - build/d/src/game/front.o (.data); - build/d/src/game/unk_01B0E0.o (.data); - build/d/src/game/unk_01B240.o (.data); - build/d/src/game/unk_01BAE0.o (.data); - build/d/src/game/blood_animation.o (.data); - build/d/src/game/blood_decrypt.o (.data); - build/d/src/game/file.o (.data); - build/d/src/game/file2.o (.data); - build/d/src/game/chr.o (.data); - build/d/src/game/chr_b.o (.data); - build/d/src/game/chrlv.o (.data); - build/d/src/game/chrai.o (.data); - build/d/src/game/chrprop.o (.data); - build/d/src/game/chrobjhandler.o (.data); - build/d/src/game/loadobjectmodel.o (.data); - build/d/src/game/objective_status.o (.data); - build/d/src/game/objective_status2.o (.data); - build/d/src/game/math_sincos.o (.data); - build/d/src/game/matrixmath.o (.data); - build/d/src/game/math_unk_05A9E0.o (.data); - build/d/src/game/math_atan2f.o (.data); - build/d/src/game/math_asinacos.o (.data); - build/d/src/game/math_asinfacosf.o (.data); - build/d/src/game/matrixmath_misc.o (.data); - build/d/src/game/quaternion.o (.data); - build/d/src/game/math_floor.o (.data); - build/d/src/game/math_ceil.o (.data); - build/d/src/game/gun.o (.data); - build/d/src/game/bondwalk2.o (.data); - build/d/src/game/objecthandler.o (.data); - build/d/src/game/objecthandler_1.o (.data); - build/d/src/game/objecthandler_2.o (.data); - build/d/src/game/othermodemicrocode.o (.data); - build/d/src/game/bondview.o (.data); - build/d/src/game/bondinv.o (.data); - build/d/src/game/bondhead.o (.data); - build/d/src/game/padhalllv.o (.data); - build/d/src/game/debugmenu_08FE00.o (.data); - build/d/src/game/debugmenu_handler.o (.data); - build/d/src/game/unk_091080.o (.data); - build/d/src/game/chraidata.o (.data); - build/d/src/game/pobjdata.o (.data); - build/d/src/game/gobjdata.o (.data); - build/d/src/game/gobjdata2.o (.data); - build/d/src/game/cobjdata.o (.data); - build/d/src/game/cheat_buttons.o (.data); - build/d/src/game/unk_092890.o (.data); - build/d/src/game/unk_092E50.o (.data); - build/d/src/game/player.o (.data); - build/d/src/game/player_2.o (.data); - build/d/src/game/crc.o (.data); - build/d/src/game/chrObjRandom.o (.data); - build/d/src/game/unk_09B7A0.o (.data); - build/d/src/game/explosions.o (.data); - build/d/src/game/unk_0A1DA0.o (.data); - build/d/src/game/watch.o (.data); - build/d/src/game/textrelated.o (.data); - build/d/src/game/stan.o (.data); - build/d/src/game/unk_0B3200.o (.data); - build/d/src/game/bg.o (.data); - build/d/src/game/bg2.o (.data); - build/d/src/game/fog.o (.data); - build/d/src/game/lightfixture.o (.data); - build/d/src/game/unk_0BC530.o (.data); - build/d/src/game/ob.o (.data); - build/d/src/game/dyn.o (.data); - build/d/src/game/lvl.o (.data); - build/d/src/game/ramromreplay.o (.data); - build/d/src/game/unk_0C0A70.o (.data); - build/d/src/game/mp_music.o (.data); - build/d/src/game/lvl_text.o (.data); - build/d/src/game/mp_watch.o (.data); - build/d/src/game/radar.o (.data); - build/d/src/game/mp_weapon.o (.data); - build/d/src/game/image.o (.data); - build/d/src/game/image_bank.o (.data); - build/d/src/game/unk_0CC4C0.o (.data); - build/d/src/game/decompress.o (.data); - build/d/src/game/zlib.o (.data); - build/d/src/game/rsp.o (.data); - build/d/src/game/indy_comms.o (.data); - build/d/src/game/indy_commands.o (.data); - build/d/src/game/game_debug.o (.data); - build/d/src/game/compiletime.o (.data); - build/d/src/game/unk_0D1AC0.o (.data); - build/d/src/game/viewport.o (.data); - build/d/src/game/music_0D2720.o (.data); - build/d/src/game/spectrum.o (.data); - - build/d/src/game/initgamedata.o (.rodata); - build/d/src/game/initweaponanigroups.o (.rodata); - build/d/src/game/initactorpropstuff.o (.rodata); - build/d/src/game/initnull_0009D0.o (.rodata); - build/d/src/game/initunk_0009E0.o (.rodata); - build/d/src/game/initanitable.o (.rodata); - build/d/src/game/initplayergaitobject.o (.rodata); - build/d/src/game/setguscale.o (.rodata); - build/d/src/game/initnull_000BC0.o (.rodata); - build/d/src/game/initimages.o (.rodata); - build/d/src/game/initintromatrices.o (.rodata); - build/d/src/game/initmenus.o (.rodata); - build/d/src/game/initguards.o (.rodata); - build/d/src/game/deb_loadallmodels.o (.rodata); - build/d/src/game/initobjects.o (.rodata); - build/d/src/game/prop.o (.rodata); - build/d/src/game/objective.o (.rodata); - build/d/src/game/ejectedcartridges.o (.rodata); - build/d/src/game/initBondDATA.o (.rodata); - build/d/src/game/initunk_005450.o (.rodata); - build/d/src/game/initunk_005520.o (.rodata); - build/d/src/game/bondview_r.o (.rodata); - build/d/src/game/inititemslots.o (.rodata); - build/d/src/game/initBondDATAdefaults.o (.rodata); - build/d/src/game/initpathtablesomething.o (.rodata); - build/d/src/game/initpathtablelinks.o (.rodata); - build/d/src/game/initexplosioncasing.o (.rodata); - build/d/src/game/alloc_window_pieces.o (.rodata); - build/d/src/game/initunk_007290.o (.rodata); - build/d/src/game/initcheattext.o (.rodata); - build/d/src/game/initmttex.o (.rodata); - build/d/src/game/cleanup_guard_data.o (.rodata); - build/d/src/game/cleanup_object_sounds.o (.rodata); - build/d/src/game/cleanup_alarms.o (.rodata); - build/d/src/game/cleanup_objects.o (.rodata); - build/d/src/game/cleanup_objectives.o (.rodata); - build/d/src/game/cleanupSFXRelated.o (.rodata); - build/d/src/game/playerstats_007770.o (.rodata); - build/d/src/game/cleanexplosions.o (.rodata); - build/d/src/game/cleanwindowpieces.o (.rodata); - build/d/src/game/null_007970.o (.rodata); - build/d/src/game/cleanplayersound.o (.rodata); - build/d/src/game/title.o (.rodata); - build/d/src/game/front.o (.rodata); - build/d/src/game/unk_01B0E0.o (.rodata); - build/d/src/game/unk_01B240.o (.rodata); - build/d/src/game/unk_01BAE0.o (.rodata); - build/d/src/game/blood_animation.o (.rodata); - build/d/src/game/blood_decrypt.o (.rodata); - build/d/src/game/file.o (.rodata); - build/d/src/game/file2.o (.rodata); - build/d/src/game/chr.o (.rodata); - build/d/src/game/chr_b.o (.rodata); - build/d/src/game/chrlv.o (.rodata); - build/d/src/game/chrai.o (.rodata); - build/d/src/game/chrprop.o (.rodata); - build/d/src/game/chrobjhandler.o (.rodata); - build/d/src/game/loadobjectmodel.o (.rodata); - build/d/src/game/objective_status.o (.rodata); - build/d/src/game/objective_status2.o (.rodata); - build/d/src/game/math_sincos.o (.rodata); - build/d/src/game/matrixmath.o (.rodata); - build/d/src/game/math_unk_05A9E0.o (.rodata); - build/d/src/game/math_atan2f.o (.rodata); - build/d/src/game/math_asinacos.o (.rodata); - build/d/src/game/math_asinfacosf.o (.rodata); - build/d/src/game/matrixmath_misc.o (.rodata); - build/d/src/game/quaternion.o (.rodata); - build/d/src/game/math_floor.o (.rodata); - build/d/src/game/math_ceil.o (.rodata); - build/d/src/game/gun.o (.rodata); - build/d/src/game/bondwalk2.o (.rodata); - build/d/src/game/objecthandler.o (.rodata); - build/d/src/game/objecthandler_1.o (.rodata); - build/d/src/game/objecthandler_2.o (.rodata); - build/d/src/game/othermodemicrocode.o (.rodata); - build/d/src/game/bondview.o (.rodata); - build/d/src/game/bondinv.o (.rodata); - build/d/src/game/bondhead.o (.rodata); - build/d/src/game/padhalllv.o (.rodata); - build/d/src/game/debugmenu_08FE00.o (.rodata); - build/d/src/game/debugmenu_handler.o (.rodata); - build/d/src/game/unk_091080.o (.rodata); - build/d/src/game/chraidata.o (.rodata); - build/d/src/game/pobjdata.o (.rodata); - build/d/src/game/gobjdata.o (.rodata); - build/d/src/game/gobjdata2.o (.rodata); - build/d/src/game/cobjdata.o (.rodata); - build/d/src/game/cheat_buttons.o (.rodata); - build/d/src/game/unk_092890.o (.rodata); - build/d/src/game/unk_092E50.o (.rodata); - build/d/src/game/player.o (.rodata); - build/d/src/game/player_2.o (.rodata); - build/d/src/game/crc.o (.rodata); - build/d/src/game/chrObjRandom.o (.rodata); - build/d/src/game/unk_09B7A0.o (.rodata); - build/d/src/game/explosions.o (.rodata); - build/d/src/game/unk_0A1DA0.o (.rodata); - build/d/src/game/watch.o (.rodata); - build/d/src/game/textrelated.o (.rodata); - build/d/src/game/stan.o (.rodata); - build/d/src/game/unk_0B3200.o (.rodata); - build/d/src/game/bg.o (.rodata); - build/d/src/game/bg2.o (.rodata); - build/d/src/game/fog.o (.rodata); - build/d/src/game/lightfixture.o (.rodata); - build/d/src/game/unk_0BC530.o (.rodata); - build/d/src/game/ob.o (.rodata); - build/d/src/game/dyn.o (.rodata); - build/d/src/game/lvl.o (.rodata); - build/d/src/game/ramromreplay.o (.rodata); - build/d/src/game/unk_0C0A70.o (.rodata); - build/d/src/game/mp_music.o (.rodata); - build/d/src/game/lvl_text.o (.rodata); - build/d/src/game/mp_watch.o (.rodata); - build/d/src/game/radar.o (.rodata); - build/d/src/game/mp_weapon.o (.rodata); - build/d/src/game/image.o (.rodata); - build/d/src/game/image_bank.o (.rodata); - build/d/src/game/unk_0CC4C0.o (.rodata); - build/d/src/game/decompress.o (.rodata); - build/d/src/game/zlib.o (.rodata); - build/d/src/game/rsp.o (.rodata); - build/d/src/game/indy_comms.o (.rodata); - build/d/src/game/indy_commands.o (.rodata); - build/d/src/game/game_debug.o (.rodata); - build/d/src/game/compiletime.o (.rodata); - build/d/src/game/unk_0D1AC0.o (.rodata); - build/d/src/game/viewport.o (.rodata); - build/d/src/game/music_0D2720.o (.rodata); - build/d/src/game/spectrum.o (.rodata); - - build/d/src/gspboot.o (.data); - build/d/src/aspboot.o (.data); - } - _csegmentSegmentEnd = ADDR(.csegment) + SIZEOF(.csegment); - _csegmentSegmentRomEnd = _csegmentSegmentRomStart + SIZEOF(.csegment); - - __dataSegmentVaddrEnd = _csegmentSegmentRomEnd; - - _bssSegmentStart = ADDR(.bss); - .bss (NOLOAD) : - { - build/d/src/boot.o (.bss); - build/d/src/init.o (.bss); - build/d/src/sched.o (.bss); - build/d/src/osMapTLB.o (.bss); - build/d/src/tlb_manage.o (.bss); - build/d/src/tlb_random.o (.bss); - build/d/src/tlb_resolve.o (.bss); - build/d/src/audi.o (.bss); - build/d/src/speed_graph.o (.bss); - build/d/src/fr.o (.bss); - build/d/src/deb.o (.bss); - build/d/src/fault.o (.bss); - /*deb_print may be part of fault per pd beta (.bss);*/ - build/d/src/deb_print.o (.bss); - build/d/src/getra.o (.bss); - build/d/src/ramrom.o (.bss); - build/d/src/boss.o (.bss); - build/d/src/music.o (.bss); - build/d/src/snd.o (.bss); - build/d/src/memp.o (.bss); - build/d/src/mema.o (.bss); - build/d/src/random.o (.bss); - build/d/src/token.o (.bss); - build/d/src/str.o (.bss); - build/d/src/sprintf.o (.bss); - build/d/src/pi.o (.bss); - build/d/src/vi.o (.bss); - build/d/src/debugmenu.o (.bss); - build/d/src/joy.o (.bss); - build/d/src/motor.o (.bss); - build/d/src/rmon.o (.bss); - - /*build/d/src/libultra/osPiRawStartDma.o (.bss);*/ - build/d/src/libultra/io/pirawdma.o (.bss); - build/d/src/libultra/io/pigetstat.o (.bss); - build/d/src/libultrare/os/initialize.o (.bss); - build/d/src/libultra/os/writebackdcacheall.o (.bss); - build/d/src/libultra/os/invalicache.o (.bss); - build/d/src/libultra/os/unmaptlb.o (.bss); - build/d/src/libultra/os/getfpccsr.o (.bss); - build/d/src/libultra/os/setfpccsr.o (.bss); - build/d/src/libultra/os/createthread.o (.bss); - build/d/src/libultra/os/startthread.o (.bss); - build/d/src/libultra/os/createmesgqueue.o (.bss); - build/d/src/libultra/os/parameters.o (.bss); - build/d/src/libultra/os/stopthread.o (.bss); - build/d/src/libultra/os/setthreadpri.o (.bss); - build/d/src/libultra/os/getcount.o (.bss); - build/d/src/libultrare/io/vimgr.o (.bss); - build/d/src/libultrare/io/vitbl.o (.bss); /*edited*/ - build/d/src/libultra/os/seteventmesg.o (.bss); - build/d/src/libultra/io/visetevent.o (.bss); - build/d/src/libultra/os/setintmask.o (.bss); - build/d/src/libultra/os/recvmesg.o (.bss); - build/d/src/libultra/os/sendmesg.o (.bss); - build/d/src/libultra/io/visetmode.o (.bss); - build/d/src/libultra/io/visetxscale.o (.bss); - build/d/src/libultra/io/visetyscale.o (.bss); - build/d/src/libultra/io/virepeatline.o (.bss); - build/d/src/libultra/io/viblack.o (.bss); - build/d/src/libultra/io/sptaskyielded.o (.bss); - build/d/src/libultra/io/dpctr.o (.bss); - build/d/src/libultra/io/vigetcurrframebuf.o (.bss); - build/d/src/libultra/io/vigetnextframebuf.o (.bss); - build/d/src/libultra/io/viswapbuf.o (.bss); - build/d/src/libultra/io/dpsetstat.o (.bss); - build/d/src/libultrare/io/sptask.o (.bss); - build/d/src/libultra/io/dpsetnextbuf.o (.bss); - build/d/src/libultra/io/sptaskyield.o (.bss); - build/d/src/libultra/os/gettlbhi.o (.bss); - build/d/src/libultra/os/virtualtophysical.o (.bss); - build/d/src/libultra/io/aisetfreq.o (.bss); - build/d/src/libultra/audio/sl.o (.bss); - build/d/src/libultra/audio/heapalloc.o (.bss); - build/d/src/libultra/os/gettime.o (.bss); - build/d/src/libultra/libc/ll.o (.bss); /*edited*/ - build/d/src/libultrare/io/aisetnextbuf.o (.bss); - build/d/src/libultra/io/aigetlen.o (.bss); - build/d/src/libultra/audio/synthesizer.o (.bss); - build/d/src/libultra/io/pidma.o (.bss); - build/d/src/libultra/io/visetspecial.o (.bss); - build/d/src/libultra/libc/bcopy.o (.bss); - build/d/src/libultra/gu/perspective.o (.bss); - build/d/src/libultra/gu/mtxutil.o (.bss); - build/d/src/libultra/os/getcurrfaultthread.o (.bss); - build/d/src/libultra/os/exception.o (.bss); /*edited*/ - build/d/src/libultra/os/thread.o (.bss); - build/d/src/libultra/os/yieldthread.o (.bss); - build/d/src/libultra/os/invaldcache.o (.bss); - build/d/src/libultra/os/writebackdcache.o (.bss); - build/d/src/libultra/os/settimer.o (.bss); - build/d/src/libultra/audio/heapinit.o (.bss); - build/d/src/libultra/audio/bnkf.o (.bss); - build/d/src/libultra/audio/csplayer.o (.bss); - build/d/src/libultra/audio/seqpsetbank.o (.bss); - build/d/src/libultra/audio/cspgetstate.o (.bss); - build/d/src/libultra/audio/cseq.o (.bss); - build/d/src/libultra/audio/cspsetseq.o (.bss); - build/d/src/libultra/audio/cspplay.o (.bss); - build/d/src/libultra/audio/cspstop.o (.bss); - build/d/src/libultra/audio/cspsetvol.o (.bss); - build/d/src/libultra/audio/event.o (.bss); - build/d/src/libultra/audio/synaddplayer.o (.bss); - build/d/src/libultra/audio/synallocvoice.o (.bss); - build/d/src/libultra/audio/synsetvol.o (.bss); - build/d/src/libultra/audio/synstartvoice.o (.bss); - build/d/src/libultra/audio/synsetpan.o (.bss); - build/d/src/libultra/audio/synsetpitch.o (.bss); - build/d/src/libultra/audio/synsetfxmix.o (.bss); - build/d/src/libultra/audio/synstopvoice.o (.bss); - build/d/src/libultra/audio/synfreevoice.o (.bss); - build/d/src/libultra/audio/cents2ratio.o (.bss); - build/d/src/libultra/io/piread.o (.bss); - build/d/src/libultra/libc/string.o (.bss); - build/d/src/libultrare/libc/xprintf.o (.bss); - build/d/src/libultrare/io/pimgr.o (.bss); - build/d/src/libultrare/io/pfsinit.o (.bss); - build/d/src/libultrare/io/controller.o (.bss); - build/d/src/libultra/io/contquery.o (.bss); - build/d/src/libultrare/io/contreaddata.o (.bss); - build/d/src/libultrare/io/conteepprobe.o (.bss); - build/d/src/libultrare/io/conteepread.o (.bss); - build/d/src/libultrare/io/conteepwrite.o (.bss); - build/d/src/libultrare/io/conteeplongread.o (.bss); - build/d/src/libultrare/io/conteeplongwrite.o (.bss); - build/d/src/libultrare/io/pfsisplug.o (.bss); - build/d/src/libultra/io/siacs.o (.bss); - build/d/src/libultra/io/sirawdma.o (.bss); - build/d/src/libultra/io/crc.o (.bss); - build/d/src/libultrare/io/contramwrite.o (.bss); - build/d/src/libultrare/io/contramread.o (.bss); - build/d/src/libultra/gu/align.o (.bss); - build/d/src/libultra/gu/ortho.o (.bss); - build/d/src/libultra/gu/coss.o (.bss); - build/d/src/libultra/gu/sins.o (.bss); - build/d/src/libultra/gu/translate.o (.bss); - build/d/src/libultra/libc/bcmp.o (.bss); - build/d/src/libultra/gu/scale.o (.bss); - build/d/src/libultra/gu/lookatref.o (.bss); - build/d/src/libultra/gu/lookat.o (.bss); - build/d/src/libultra/gu/rotate.o (.bss); - build/d/src/libultra/libc/llcvt.o (.bss); /*edited*/ - build/d/src/libultra/os/setsr.o (.bss); - build/d/src/libultra/os/getsr.o (.bss); - build/d/src/libultra/io/sirawread.o (.bss); - build/d/src/libultra/io/sirawwrite.o (.bss); - build/d/src/libultra/io/pirawread.o (.bss); - build/d/src/libultra/libc/bzero.o (.bss); - build/d/src/libultra/os/sethwinterrupt.o (.bss); - build/d/src/libultrare/io/leointerrupt.o (.bss); - build/d/src/libultra/os/interrupt.o (.bss); - build/d/src/libultra/os/timerintr.o (.bss); - build/d/src/libultra/os/kdebugserver.o (.bss); - build/d/src/libultra/os/getthreadpri.o (.bss); - build/d/src/libultrare/io/vi.o (.bss); /*edited*/ - build/d/src/libultra/io/vigetcurrcontext.o (.bss); - build/d/src/libultra/io/viswapcontext.o (.bss); - build/d/src/libultra/io/spgetstat.o (.bss); - build/d/src/libultra/io/spsetstat.o (.bss); - build/d/src/libultra/io/spsetpc.o (.bss); - build/d/src/libultra/io/sprawdma.o (.bss); - build/d/src/libultra/io/sp.o (.bss); - build/d/src/libultra/io/dp.o (.bss); - build/d/src/libultra/os/probetlb.o (.bss); - build/d/src/libultra/audio/syndelete.o (.bss); - build/d/src/libultra/io/ai.o (.bss); - build/d/src/libultrare/audio/drvrNew.o (.bss); - build/d/src/libultra/audio/synallocfx.o (.bss); - build/d/src/libultra/audio/mainbus.o (.bss); - build/d/src/libultra/audio/load.o (.bss); - build/d/src/libultra/audio/resample.o (.bss); - build/d/src/libultrare/audio/env.o (.bss); /*edited*/ - build/d/src/libultra/audio/auxbus.o (.bss); - build/d/src/libultra/audio/save.o (.bss); - build/d/src/libultra/os/jammesg.o (.bss); - build/d/src/libultra/io/pigetcmdq.o (.bss); - build/d/src/libultra/gu/cosf.o (.bss); /*edited*/ - build/d/src/libultra/gu/sinf.o (.bss); /*edited*/ - build/d/src/libultrare/os/destroythread.o (.bss); - build/d/src/libultra/audio/seqplayer.o (.bss); - build/d/src/libultra/audio/synstartvoiceparam.o (.bss); - build/d/src/libultra/audio/copy.o (.bss); - build/d/src/libultra/io/piacs.o (.bss); - build/d/src/libultra/libc/xlitob.o (.bss); - build/d/src/libultra/libc/xldtob.o (.bss); - build/d/src/libultrare/io/epirawdma.o (.bss); - build/d/src/libultrare/io/devmgr.o (.bss); - build/d/src/libultra/io/contpfs.o (.bss); - build/d/src/libultra/io/si.o (.bss); - build/d/src/libultra/gu/normalize.o (.bss); - build/d/src/libultra/gu/sqrtf.o (.bss); - build/d/src/libultrare/io/leodiskinit.o (.bss); - build/d/src/libultra/os/setcompare.o (.bss); - build/d/src/libultra/audio/filter.o (.bss); - build/d/src/libultrare/audio/reverb.o (.bss); /*edited*/ - build/d/src/libultra/gu/libm_vals.o (.bss); /*edited*/ - build/d/src/libultra/audio/seq.o (.bss); - build/d/src/libultra/audio/synsetpriority.o (.bss); - build/d/src/libultra/libc/ldiv.o (.bss); - build/d/src/libultra/os/resetglobalintmask.o (.bss); - build/d/src/libultrare/io/epirawwrite.o (.bss); - build/d/src/libultra/io/vimodentsclan1.o (.bss); - build/d/src/libultrare/io/vimodepallan1.o (.bss); - build/d/src/libultrare/ultra80069080.o (.bss); /*edited*/ - /*build/d/src/libultra/libultra.a:libultra.o (.bss);*/ - - build/d/src/game/initgamedata.o (.bss); - build/d/src/game/initweaponanigroups.o (.bss); - build/d/src/game/initactorpropstuff.o (.bss); - build/d/src/game/initnull_0009D0.o (.bss); - build/d/src/game/initunk_0009E0.o (.bss); - build/d/src/game/initanitable.o (.bss); - build/d/src/game/initplayergaitobject.o (.bss); - build/d/src/game/setguscale.o (.bss); - build/d/src/game/initnull_000BC0.o (.bss); - build/d/src/game/initimages.o (.bss); - build/d/src/game/initintromatrices.o (.bss); - build/d/src/game/initmenus.o (.bss); - build/d/src/game/initguards.o (.bss); - build/d/src/game/deb_loadallmodels.o (.bss); - build/d/src/game/initobjects.o (.bss); - build/d/src/game/prop.o (.bss); - build/d/src/game/objective.o (.bss); - build/d/src/game/ejectedcartridges.o (.bss); - build/d/src/game/initBondDATA.o (.bss); - build/d/src/game/initunk_005450.o (.bss); - build/d/src/game/initunk_005520.o (.bss); - build/d/src/game/bondview_r.o (.bss); - build/d/src/game/inititemslots.o (.bss); - build/d/src/game/initBondDATAdefaults.o (.bss); - build/d/src/game/initpathtablesomething.o (.bss); - build/d/src/game/initpathtablelinks.o (.bss); - build/d/src/game/initexplosioncasing.o (.bss); - build/d/src/game/alloc_window_pieces.o (.bss); - build/d/src/game/initunk_007290.o (.bss); - build/d/src/game/initcheattext.o (.bss); - build/d/src/game/initmttex.o (.bss); - build/d/src/game/cleanup_guard_data.o (.bss); - build/d/src/game/cleanup_object_sounds.o (.bss); - build/d/src/game/cleanup_alarms.o (.bss); - build/d/src/game/cleanup_objects.o (.bss); - build/d/src/game/cleanup_objectives.o (.bss); - build/d/src/game/cleanupSFXRelated.o (.bss); - build/d/src/game/playerstats_007770.o (.bss); - build/d/src/game/cleanexplosions.o (.bss); - build/d/src/game/cleanwindowpieces.o (.bss); - build/d/src/game/null_007970.o (.bss); - build/d/src/game/cleanplayersound.o (.bss); - build/d/src/game/title.o (.bss); - build/d/src/game/front.o (.bss); - build/d/src/game/unk_01B0E0.o (.bss); - build/d/src/game/unk_01B240.o (.bss); - build/d/src/game/unk_01BAE0.o (.bss); - build/d/src/game/blood_animation.o (.bss); - build/d/src/game/blood_decrypt.o (.bss); - build/d/src/game/file.o (.bss); - build/d/src/game/file2.o (.bss); - build/d/src/game/chr.o (.bss); - build/d/src/game/chr_b.o (.bss); - build/d/src/game/chrlv.o (.bss); - build/d/src/game/chrai.o (.bss); - build/d/src/game/chrprop.o (.bss); - build/d/src/game/chrobjhandler.o (.bss); - build/d/src/game/loadobjectmodel.o (.bss); - build/d/src/game/objective_status.o (.bss); - build/d/src/game/objective_status2.o (.bss); - build/d/src/game/math_sincos.o (.bss); - build/d/src/game/matrixmath.o (.bss); - build/d/src/game/math_unk_05A9E0.o (.bss); - build/d/src/game/math_atan2f.o (.bss); - build/d/src/game/math_asinacos.o (.bss); - build/d/src/game/math_asinfacosf.o (.bss); - build/d/src/game/matrixmath_misc.o (.bss); - build/d/src/game/quaternion.o (.bss); - build/d/src/game/math_floor.o (.bss); - build/d/src/game/math_ceil.o (.bss); - build/d/src/game/gun.o (.bss); - build/d/src/game/bondwalk2.o (.bss); - build/d/src/game/objecthandler.o (.bss); - build/d/src/game/objecthandler_1.o (.bss); - build/d/src/game/objecthandler_2.o (.bss); - build/d/src/game/othermodemicrocode.o (.bss); - build/d/src/game/bondview.o (.bss); - build/d/src/game/bondinv.o (.bss); - build/d/src/game/bondhead.o (.bss); - build/d/src/game/padhalllv.o (.bss); - build/d/src/game/debugmenu_08FE00.o (.bss); - build/d/src/game/debugmenu_handler.o (.bss); - build/d/src/game/unk_091080.o (.bss); - build/d/src/game/chraidata.o (.bss); - build/d/src/game/pobjdata.o (.bss); - build/d/src/game/gobjdata.o (.bss); - build/d/src/game/gobjdata2.o (.bss); - build/d/src/game/cobjdata.o (.bss); - build/d/src/game/cheat_buttons.o (.bss); - build/d/src/game/unk_092890.o (.bss); - build/d/src/game/unk_092E50.o (.bss); - build/d/src/game/player.o (.bss); - build/d/src/game/player_2.o (.bss); - build/d/src/game/crc.o (.bss); - build/d/src/game/chrObjRandom.o (.bss); - build/d/src/game/unk_09B7A0.o (.bss); - build/d/src/game/explosions.o (.bss); - build/d/src/game/unk_0A1DA0.o (.bss); - build/d/src/game/watch.o (.bss); - build/d/src/game/textrelated.o (.bss); - build/d/src/game/stan.o (.bss); - build/d/src/game/unk_0B3200.o (.bss); - build/d/src/game/bg.o (.bss); - build/d/src/game/bg2.o (.bss); - build/d/src/game/fog.o (.bss); - build/d/src/game/lightfixture.o (.bss); - build/d/src/game/unk_0BC530.o (.bss); - build/d/src/game/ob.o (.bss); - build/d/src/game/dyn.o (.bss); - build/d/src/game/lvl.o (.bss); - build/d/src/game/ramromreplay.o (.bss); - build/d/src/game/unk_0C0A70.o (.bss); - build/d/src/game/mp_music.o (.bss); - build/d/src/game/lvl_text.o (.bss); - build/d/src/game/mp_watch.o (.bss); - build/d/src/game/radar.o (.bss); - build/d/src/game/mp_weapon.o (.bss); - build/d/src/game/image.o (.bss); - build/d/src/game/image_bank.o (.bss); - build/d/src/game/unk_0CC4C0.o (.bss); - build/d/src/game/decompress.o (.bss); - build/d/src/game/zlib.o (.bss); - build/d/src/game/rsp.o (.bss); - build/d/src/game/indy_comms.o (.bss); - build/d/src/game/indy_commands.o (.bss); - build/d/src/game/game_debug.o (.bss); - build/d/src/game/compiletime.o (.bss); - build/d/src/game/unk_0D1AC0.o (.bss); - build/d/src/game/viewport.o (.bss); - build/d/src/game/music_0D2720.o (.bss); - build/d/src/game/spectrum.o (.bss); - } - _bssSegmentEnd = ADDR(.bss) + SIZEOF(.bss); - _bssSegmentSize = SIZEOF(.bss); - - _roombufSegmentStart = ADDR(.roombuf); - .roombuf (NOLOAD) : - { - build/d/src/game/room_model_buffer.o (.bss); - } - _roombufSegmentEnd = ADDR(.roombuf) + SIZEOF(.roombuf); - - _decompbufSegmentStart = ADDR(.decompbuf); - .decompbuf 0x80300000 : - { - build/d/src/decompressbuffer.o (.bss); - } - _decompbufSegmentEnd = ADDR(.decompbuf) + SIZEOF(.decompbuf); - - _stacksSegmentStart = ADDR(.stacks); - .stacks (NOLOAD) : - { - build/d/src/stacks.o (.bss); - } - _stacksSegmentEnd = ADDR(.stacks) + SIZEOF(.stacks); - - _cfbSegmentStart = ADDR(.cfb); - .cfb (NOLOAD) : - { - build/d/src/cfb.o (.bss); - } - _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); - - /*move em to end, out of the way*/ - /DISCARD/ : { - * (.MIPS.abiflags); - * (.musicdecompressed); - * (.options); - * (.gnu.attributes); - * (.pdr); - * (.mdebug); - * (.gptab.bss); - * (.gptab.data); - * (.reginfo); - - -} -} diff --git a/ge007.e-test_basis.csv b/ge007.e-test_basis.csv index 412146a1..6fef3bc3 100644 --- a/ge007.e-test_basis.csv +++ b/ge007.e-test_basis.csv @@ -58,11 +58,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/decompressbuffer.o -377a8cb4f582defa3f1bb86cd30a60c1,.text,build/e/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/fault.o +377a8cb4f582defa3f1bb86cd30a60c1,.text,build/e/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/crash.o 6708969f43a282c2c6e87c98fa031b2d,.text,build/e/src/fr.o d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/fr.o d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/fr.o diff --git a/ge007.e.ld b/ge007.e.ld deleted file mode 100644 index b763693c..00000000 --- a/ge007.e.ld +++ /dev/null @@ -1,4445 +0,0 @@ -/*OUTPUT_FORMAT ("elf32-bigmips")*/ -OUTPUT_ARCH (mips) - -SECTIONS -{ - - osTvType = 0x80000300; - osRomType = 0x80000304; - osRomBase = 0x80000308; - osResetType = 0x8000030c; - osCicId = 0x80000310; - osVersion = 0x80000314; - osMemSize = 0x80000318; - osAppNMIBuffer = 0x8000031c; - - _romSegmentStart = 0; - /* header */ - _headerSegmentStart = ADDR(.header); - _headerSegmentRomStart = _romSegmentStart; - .header 0x04000000 : AT(_romSegmentStart) { - build/e/src/rom_header.o(.data); - } - _headerSegmentEnd = ADDR(.header) + SIZEOF(.header); - _headerSegmentRomEnd = _headerSegmentRomStart + SIZEOF(.header); - - - - /* boot */ - _bootSegmentStart = ADDR(.boot); - _bootSegmentRomStart = _headerSegmentRomEnd; - .boot 0x04000040 : AT(_bootSegmentRomStart) { - build/e/src/bootcode.o(.text); - } - _bootSegmentEnd = ADDR(.boot) + SIZEOF(.boot); - _bootSegmentRomEnd = _bootSegmentRomStart + SIZEOF(.boot); - - - - - /* 0x80000400, 0x80000450 */ - _startSegmentStart = ADDR(.start); - _startSegmentRomStart = _bootSegmentRomEnd; - _alt_startSegmentRomStart = _startSegmentRomStart + 0x100000; - .start 0x80000400 : AT(_startSegmentRomStart) { - build/e/src/_start.o (.text); - } - _alt_startSegmentStart = _startSegmentStart - 0x10000000 + 0x100000; - _startSegmentEnd = ADDR(.start) + SIZEOF(.start); - _startSegmentRomEnd = _startSegmentRomStart + SIZEOF(.start); - - - - /* 0x70000450, 0x70020D90 001050-021990 */ - _codeSegmentStart = ADDR(.code); - _codeSegmentRomStart = _startSegmentRomEnd; - .code 0x70000450 : AT(_codeSegmentRomStart) SUBALIGN(16) { - build/e/src/boot.o (.text); - build/e/src/init.o (.text); - build/e/src/sched.o (.text); - build/e/src/osMapTLB.o (.text); - - build/e/src/libultrare/io/vimgr.o (.text); - build/e/src/libultrare/io/pimgr.o (.text); - - build/e/src/tlb_manage.o (.text); - build/e/src/tlb_random.o (.text); - build/e/src/tlb_resolve.o (.text); - build/e/src/tlb_hardwire.o (.text); - build/e/src/audi.o (.text); - build/e/src/speed_graph.o (.text); - build/e/src/fr.o (.text); - build/e/src/deb.o (.text); - build/e/src/fault.o (.text); - /*deb_print may be part of fault per pd beta (.text);*/ - build/e/src/deb_print.o (.text); - build/e/src/getra.o (.text); - build/e/src/ramrom.o (.text); - build/e/src/boss.o (.text); - build/e/src/music.o (.text); - build/e/src/snd.o (.text); - build/e/src/memp.o (.text); - build/e/src/mema.o (.text); - build/e/src/random.o (.text); - build/e/src/token.o (.text); - build/e/src/str.o (.text); - build/e/src/sprintf.o (.text); - build/e/src/pi.o (.text); - build/e/src/vi.o (.text); - build/e/src/debugmenu.o (.text); - build/e/src/joy.o (.text); - build/e/src/motor.o (.text); - build/e/src/libultrare/io/leointerrupt.o (.text); - build/e/src/rmon.o (.text); - - /*build/e/src/libultra/osPiRawStartDma.o (.text);*/ - build/e/src/libultra/io/pirawdma.o (.text); - build/e/src/libultra/io/pigetstat.o (.text); - build/e/src/libultrare/os/initialize.o (.text); - build/e/src/libultra/os/writebackdcacheall.o (.text); - build/e/src/libultra/os/invalicache.o (.text); - build/e/src/libultra/os/unmaptlb.o (.text); - build/e/src/libultra/os/getfpccsr.o (.text); - build/e/src/libultra/os/setfpccsr.o (.text); - build/e/src/libultra/os/createthread.o (.text); - build/e/src/libultra/os/startthread.o (.text); - build/e/src/libultra/os/createmesgqueue.o (.text); - build/e/src/libultra/os/parameters.o (.text); - build/e/src/libultra/os/stopthread.o (.text); - build/e/src/libultra/os/setthreadpri.o (.text); - build/e/src/libultra/os/getcount.o (.text); - /*build/e/src/libultrare/io/vimgr.o (.text);*/ - build/e/src/libultrare/io/vitbl.o (.text); /*edited*/ - build/e/src/libultra/os/seteventmesg.o (.text); - build/e/src/libultra/io/visetevent.o (.text); - build/e/src/libultra/os/setintmask.o (.text); - build/e/src/libultra/os/recvmesg.o (.text); - build/e/src/libultra/os/sendmesg.o (.text); - build/e/src/libultra/io/visetmode.o (.text); - build/e/src/libultra/io/visetxscale.o (.text); - build/e/src/libultra/io/visetyscale.o (.text); - build/e/src/libultra/io/virepeatline.o (.text); - build/e/src/libultra/io/viblack.o (.text); - build/e/src/libultra/io/sptaskyielded.o (.text); - build/e/src/libultra/io/dpctr.o (.text); - build/e/src/libultra/io/vigetcurrframebuf.o (.text); - build/e/src/libultra/io/vigetnextframebuf.o (.text); - build/e/src/libultra/io/viswapbuf.o (.text); - build/e/src/libultra/io/dpsetstat.o (.text); - build/e/src/libultrare/io/sptask.o (.text); - build/e/src/libultra/io/dpsetnextbuf.o (.text); - build/e/src/libultra/io/sptaskyield.o (.text); - build/e/src/libultra/os/timerintr.o (.text); - build/e/src/libultra/os/getthreadpri.o (.text); - build/e/src/libultra/os/interrupt.o (.text); - build/e/src/libultrare/io/vi.o (.text); - build/e/src/libultra/io/vigetcurrcontext.o (.text); - build/e/src/libultra/io/viswapcontext.o (.text); - build/e/src/libultra/io/piacs.o (.text); - build/e/src/libultrare/io/epirawdma.o (.text); - build/e/src/libultrare/io/devmgr.o (.text); - - - - - - - build/e/src/libultra/os/gettlbhi.o (.text); - build/e/src/libultra/os/virtualtophysical.o (.text); - build/e/src/libultra/io/aisetfreq.o (.text); - build/e/src/libultra/audio/sl.o (.text); - build/e/src/libultra/audio/heapalloc.o (.text); - build/e/src/libultra/os/gettime.o (.text); - build/e/src/libultra/libc/ll.o (.text); /*edited*/ - build/e/src/libultrare/io/aisetnextbuf.o (.text); - build/e/src/libultra/io/aigetlen.o (.text); - build/e/src/libultra/audio/synthesizer.o (.text); - build/e/src/libultra/io/pidma.o (.text); - build/e/src/libultra/io/visetspecial.o (.text); - build/e/src/libultra/libc/bcopy.o (.text); - build/e/src/libultra/gu/perspective.o (.text); - build/e/src/libultra/gu/mtxutil.o (.text); - build/e/src/libultra/os/getcurrfaultthread.o (.text); - build/e/src/libultra/os/exception.o (.text); /*edited*/ - build/e/src/libultra/os/thread.o (.text); - build/e/src/libultra/os/yieldthread.o (.text); - build/e/src/libultra/os/invaldcache.o (.text); - build/e/src/libultra/os/writebackdcache.o (.text); - build/e/src/libultra/os/settimer.o (.text); - build/e/src/libultra/audio/heapinit.o (.text); - build/e/src/libultra/audio/bnkf.o (.text); - build/e/src/libultra/audio/csplayer.o (.text); - build/e/src/libultra/audio/seqpsetbank.o (.text); - build/e/src/libultra/audio/cspgetstate.o (.text); - build/e/src/libultra/audio/cseq.o (.text); - build/e/src/libultra/audio/cspsetseq.o (.text); - build/e/src/libultra/audio/cspplay.o (.text); - build/e/src/libultra/audio/cspstop.o (.text); - build/e/src/libultra/audio/cspsetvol.o (.text); - build/e/src/libultra/audio/event.o (.text); - build/e/src/libultra/audio/synaddplayer.o (.text); - build/e/src/libultra/audio/synallocvoice.o (.text); - build/e/src/libultra/audio/synsetvol.o (.text); - build/e/src/libultra/audio/synstartvoice.o (.text); - build/e/src/libultra/audio/synsetpan.o (.text); - build/e/src/libultra/audio/synsetpitch.o (.text); - build/e/src/libultra/audio/synsetfxmix.o (.text); - build/e/src/libultra/audio/synstopvoice.o (.text); - build/e/src/libultra/audio/synfreevoice.o (.text); - build/e/src/libultra/audio/cents2ratio.o (.text); - build/e/src/libultra/io/piread.o (.text); - build/e/src/libultra/libc/string.o (.text); - build/e/src/libultrare/libc/xprintf.o (.text); - /*build/e/src/libultrare/io/pimgr.o (.text);*/ - build/e/src/libultrare/io/pfsinit.o (.text); - build/e/src/libultrare/io/controller.o (.text); - build/e/src/libultra/io/contquery.o (.text); - build/e/src/libultrare/io/contreaddata.o (.text); - build/e/src/libultrare/io/conteepprobe.o (.text); - build/e/src/libultrare/io/conteepread.o (.text); - build/e/src/libultrare/io/conteepwrite.o (.text); - build/e/src/libultrare/io/conteeplongread.o (.text); - build/e/src/libultrare/io/conteeplongwrite.o (.text); - build/e/src/libultrare/io/pfsisplug.o (.text); - build/e/src/libultra/io/siacs.o (.text); - build/e/src/libultra/io/sirawdma.o (.text); - build/e/src/libultra/io/crc.o (.text); - build/e/src/libultrare/io/contramwrite.o (.text); - build/e/src/libultrare/io/contramread.o (.text); - build/e/src/libultra/gu/align.o (.text); - build/e/src/libultra/gu/ortho.o (.text); - build/e/src/libultra/gu/coss.o (.text); - build/e/src/libultra/gu/sins.o (.text); - build/e/src/libultra/gu/translate.o (.text); - build/e/src/libultra/libc/bcmp.o (.text); - build/e/src/libultra/gu/scale.o (.text); - build/e/src/libultra/gu/lookatref.o (.text); - build/e/src/libultra/gu/lookat.o (.text); - build/e/src/libultra/gu/rotate.o (.text); - build/e/src/libultra/libc/llcvt.o (.text); /*edited*/ - build/e/src/libultra/os/setsr.o (.text); - build/e/src/libultra/os/getsr.o (.text); - build/e/src/libultra/io/sirawread.o (.text); - build/e/src/libultra/io/sirawwrite.o (.text); - build/e/src/libultra/io/pirawread.o (.text); - build/e/src/libultra/libc/bzero.o (.text); - build/e/src/libultra/os/sethwinterrupt.o (.text); - /*build/e/src/libultrare/io/leointerrupt.o (.text);*/ - /*build/e/src/libultra/os/interrupt.o (.text);*/ - /*build/e/src/libultra/os/timerintr.o (.text);*/ - build/e/src/libultra/os/kdebugserver.o (.text); - /*build/e/src/libultra/os/getthreadpri.o (.text);*/ - /*build/e/src/libultrare/io/vi.o (.text);*/ /*edited*/ - /*build/e/src/libultra/io/vigetcurrcontext.o (.text);*/ - /*build/e/src/libultra/io/viswapcontext.o (.text);*/ - build/e/src/libultra/io/spgetstat.o (.text); - build/e/src/libultra/io/spsetstat.o (.text); - build/e/src/libultra/io/spsetpc.o (.text); - build/e/src/libultra/io/sprawdma.o (.text); - build/e/src/libultra/io/sp.o (.text); - build/e/src/libultra/io/dp.o (.text); - build/e/src/libultra/os/setcompare.o (.text); - build/e/src/libultra/os/resetglobalintmask.o (.text); - build/e/src/libultrare/io/epirawwrite.o (.text); - - build/e/src/libultra/os/probetlb.o (.text); - build/e/src/libultra/audio/syndelete.o (.text); - build/e/src/libultra/io/ai.o (.text); - build/e/src/libultrare/audio/drvrNew.o (.text); - build/e/src/libultra/audio/synallocfx.o (.text); - build/e/src/libultra/audio/mainbus.o (.text); - build/e/src/libultra/audio/load.o (.text); - build/e/src/libultra/audio/resample.o (.text); - build/e/src/libultrare/audio/env.o (.text); /*edited*/ - build/e/src/libultra/audio/auxbus.o (.text); - build/e/src/libultra/audio/save.o (.text); - build/e/src/libultra/os/jammesg.o (.text); - build/e/src/libultra/io/pigetcmdq.o (.text); - build/e/src/libultra/gu/cosf.o (.text); /*edited*/ - build/e/src/libultra/gu/sinf.o (.text); /*edited*/ - build/e/src/libultrare/os/destroythread.o (.text); - build/e/src/libultra/audio/seqplayer.o (.text); - build/e/src/libultra/audio/synstartvoiceparam.o (.text); - build/e/src/libultra/audio/copy.o (.text); - /*build/e/src/libultra/io/piacs.o (.text);*/ - build/e/src/libultra/libc/xlitob.o (.text); - build/e/src/libultra/libc/xldtob.o (.text); - /*build/e/src/libultrare/io/epirawdma.o (.text);*/ - /*build/e/src/libultrare/io/devmgr.o (.text);*/ - build/e/src/libultra/io/contpfs.o (.text); - build/e/src/libultra/io/si.o (.text); - build/e/src/libultra/gu/normalize.o (.text); - build/e/src/libultra/gu/sqrtf.o (.text); - /*build/e/src/libultrare/io/leodiskinit.o (.text);*/ - /*build/e/src/libultra/os/setcompare.o (.text);*/ - build/e/src/libultra/audio/filter.o (.text); - build/e/src/libultrare/audio/reverb.o (.text); /*edited*/ - build/e/src/libultra/gu/libm_vals.o (.text); /*edited*/ - build/e/src/libultra/audio/seq.o (.text); - build/e/src/libultra/audio/synsetpriority.o (.text); - build/e/src/libultra/libc/ldiv.o (.text); - /*build/e/src/libultra/os/resetglobalintmask.o (.text);*/ - /*build/e/src/libultrare/io/epirawwrite.o (.text);*/ - build/e/src/libultra/io/vimodentsclan1.o (.text); - build/e/src/libultrare/io/vimodepallan1.o (.text); - build/e/src/libultrare/ultra80069080.o (.text); /*edited*/ - /*build/e/src/libultra/libultra.a:libultra.o (.text);*/ - } - _codeSegmentEnd = ADDR(.code) + SIZEOF(.code); - _codeSegmentRomEnd = _codeSegmentRomStart + SIZEOF(.code); - - - - _cdataSegmentStart = ADDR(.cdata); - _cdataSegmentRomStart = _codeSegmentRomEnd; - .cdata _cdataSegmentRomStart : AT(_cdataSegmentRomStart) { - build/e/src/c_data_filler.o (.data); - } - _cdataSegmentEnd = ADDR(.cdata) + SIZEOF(.cdata); - _cdataSegmentRomEnd = _cdataSegmentRomStart + SIZEOF(.cdata); - - - - /* (0x70200000, 0x702029BC, 0x701CCA70), // 033590-035F4D [29BD] */ - _inflateSegmentStart = ADDR(.inflate); - _inflateSegmentRomStart = _cdataSegmentRomEnd; - .inflate 0x70200000 : AT(_inflateSegmentRomStart) { - build/e/src/inflate/inflate.o (.text); - build/e/src/inflate/inflate.o (.data); - } - _inflateSegmentEnd = ADDR(.inflate) + SIZEOF(.inflate); - _inflateSegmentRomEnd = _inflateSegmentRomStart + SIZEOF(.inflate); - - - - - /* (0x7F000000, 0x7F0E2D50, 0x7EFCB4D0), // 034B30-117881 [E2D51] */ - _gameSegmentStart = ADDR(.game); - _gameSegmentRomStart = _inflateSegmentRomEnd; - .game 0x7F000000 : AT(_gameSegmentRomStart) { - build/e/src/game/initgamedata.o (.text); - build/e/src/game/initweaponanigroups.o (.text); - build/e/src/game/initactorpropstuff.o (.text); - build/e/src/game/initnull_0009D0.o (.text); - build/e/src/game/initunk_0009E0.o (.text); - build/e/src/game/initanitable.o (.text); - build/e/src/game/initplayergaitobject.o (.text); - build/e/src/game/setguscale.o (.text); - build/e/src/game/initnull_000BC0.o (.text); - build/e/src/game/initimages.o (.text); - build/e/src/game/initintromatrices.o (.text); - build/e/src/game/initmenus.o (.text); - build/e/src/game/initguards.o (.text); - build/e/src/game/deb_loadallmodels.o (.text); - build/e/src/game/initobjects.o (.text); - build/e/src/game/prop.o (.text); - build/e/src/game/objective.o (.text); - build/e/src/game/ejectedcartridges.o (.text); - build/e/src/game/initBondDATA.o (.text); - build/e/src/game/initunk_005450.o (.text); - build/e/src/game/initunk_005520.o (.text); - build/e/src/game/bondview_r.o (.text); - build/e/src/game/inititemslots.o (.text); - build/e/src/game/initBondDATAdefaults.o (.text); - build/e/src/game/initpathtablesomething.o (.text); - build/e/src/game/initpathtablelinks.o (.text); - build/e/src/game/initexplosioncasing.o (.text); - build/e/src/game/alloc_window_pieces.o (.text); - build/e/src/game/initunk_007290.o (.text); - build/e/src/game/initcheattext.o (.text); - build/e/src/game/initmttex.o (.text); - build/e/src/game/cleanup_guard_data.o (.text); - build/e/src/game/cleanup_object_sounds.o (.text); - build/e/src/game/cleanup_alarms.o (.text); - build/e/src/game/cleanup_objects.o (.text); - build/e/src/game/cleanup_objectives.o (.text); - build/e/src/game/cleanupSFXRelated.o (.text); - build/e/src/game/playerstats_007770.o (.text); - build/e/src/game/cleanexplosions.o (.text); - build/e/src/game/cleanwindowpieces.o (.text); - build/e/src/game/null_007970.o (.text); - build/e/src/game/cleanplayersound.o (.text); - build/e/src/game/title.o (.text); - build/e/src/game/front.o (.text); - build/e/src/game/unk_01B0E0.o (.text); - build/e/src/game/unk_01B240.o (.text); - build/e/src/game/unk_01BAE0.o (.text); - build/e/src/game/blood_animation.o (.text); - build/e/src/game/blood_decrypt.o (.text); - build/e/src/game/file.o (.text); - build/e/src/game/file2.o (.text); - build/e/src/game/chr.o (.text); - build/e/src/game/chr_b.o (.text); - build/e/src/game/chrlv.o (.text); - build/e/src/game/chrai.o (.text); - build/e/src/game/chrprop.o (.text); - build/e/src/game/chrobjhandler.o (.text); - build/e/src/game/loadobjectmodel.o (.text); - build/e/src/game/objective_status.o (.text); - build/e/src/game/objective_status2.o (.text); - build/e/src/game/math_sincos.o (.text); - build/e/src/game/matrixmath.o (.text); - build/e/src/game/math_unk_05A9E0.o (.text); - build/e/src/game/math_atan2f.o (.text); - build/e/src/game/math_asinacos.o (.text); - build/e/src/game/math_asinfacosf.o (.text); - build/e/src/game/matrixmath_misc.o (.text); - build/e/src/game/quaternion.o (.text); - build/e/src/game/math_floor.o (.text); - build/e/src/game/math_ceil.o (.text); - build/e/src/game/gun.o (.text); - build/e/src/game/bondwalk2.o (.text); - build/e/src/game/objecthandler.o (.text); - build/e/src/game/objecthandler_1.o (.text); - build/e/src/game/objecthandler_2.o (.text); - build/e/src/game/othermodemicrocode.o (.text); - build/e/src/game/bondview.o (.text); - build/e/src/game/bondinv.o (.text); - build/e/src/game/bondhead.o (.text); - build/e/src/game/padhalllv.o (.text); - build/e/src/game/debugmenu_08FE00.o (.text); - build/e/src/game/debugmenu_handler.o (.text); - build/e/src/game/unk_091080.o (.text); - build/e/src/game/chraidata.o (.text); - build/e/src/game/pobjdata.o (.text); - build/e/src/game/gobjdata.o (.text); - build/e/src/game/gobjdata2.o (.text); - build/e/src/game/cobjdata.o (.text); - build/e/src/game/cheat_buttons.o (.text); - build/e/src/game/unk_092890.o (.text); - build/e/src/game/unk_092E50.o (.text); - build/e/src/game/player.o (.text); - build/e/src/game/player_2.o (.text); - build/e/src/game/crc.o (.text); - build/e/src/game/chrObjRandom.o (.text); - build/e/src/game/unk_09B7A0.o (.text); - build/e/src/game/explosions.o (.text); - build/e/src/game/unk_0A1DA0.o (.text); - build/e/src/game/watch.o (.text); - build/e/src/game/textrelated.o (.text); - build/e/src/game/stan.o (.text); - build/e/src/game/unk_0B3200.o (.text); - build/e/src/game/bg.o (.text); - build/e/src/game/bg2.o (.text); - build/e/src/game/fog.o (.text); - build/e/src/game/lightfixture.o (.text); - build/e/src/game/unk_0BC530.o (.text); - build/e/src/game/ob.o (.text); - build/e/src/game/dyn.o (.text); - build/e/src/game/lvl.o (.text); - build/e/src/game/ramromreplay.o (.text); - build/e/src/game/unk_0C0A70.o (.text); - build/e/src/game/mp_music.o (.text); - build/e/src/game/lvl_text.o (.text); - build/e/src/game/mp_watch.o (.text); - build/e/src/game/radar.o (.text); - build/e/src/game/mp_weapon.o (.text); - build/e/src/game/image.o (.text); - build/e/src/game/image_bank.o (.text); - build/e/src/game/unk_0CC4C0.o (.text); - build/e/src/game/decompress.o (.text); - build/e/src/game/zlib.o (.text); - build/e/src/game/rsp.o (.text); - build/e/src/game/indy_comms.o (.text); - build/e/src/game/indy_commands.o (.text); - build/e/src/game/game_debug.o (.text); - build/e/src/game/compiletime.o (.text); - build/e/src/game/unk_0D1AC0.o (.text); - build/e/src/game/viewport.o (.text); - build/e/src/game/music_0D2720.o (.text); - /*build/e/src/game/spectrum.o (.text);*/ - } - _gameSegmentEnd = ADDR(.game) + SIZEOF(.game); - _gameSegmentRomEnd = _gameSegmentRomStart + SIZEOF(.game); - - - _fontdlSegmentStart = ADDR(.fontdl); - _fontdlSegmentRomStart = _gameSegmentRomEnd; - .fontdl 0x01000000 : AT(_fontdlSegmentRomStart) { - build/e/assets/font_dl.o (.data); - } - _fontdlSegmentEnd = ADDR(.fontdl) + SIZEOF(.fontdl); - _fontdlSegmentRomEnd = _fontdlSegmentRomStart + SIZEOF(.fontdl); - - _jfontcharSegmentStart = ADDR(.jfontchardata); - _jfontcharSegmentRomStart = _fontdlSegmentRomEnd; - .jfontchardata 0x00000000 : AT(_jfontcharSegmentRomStart) { - build/e/assets/font_chardataj.o (.data); - } - _jfontcharSegmentEnd = ADDR(.jfontchardata) + SIZEOF(.jfontchardata); - _jfontcharSegmentRomEnd = _jfontcharSegmentRomStart + SIZEOF(.jfontchardata); - - _efontcharSegmentStart = ADDR(.efontchardata); - _efontcharSegmentRomStart = _jfontcharSegmentRomEnd; - .efontchardata 0x00000000 : AT(_efontcharSegmentRomStart) { - build/e/assets/font_chardatae.o (.data); - } - _efontcharSegmentEnd = ADDR(.efontchardata) + SIZEOF(.efontchardata); - _efontcharSegmentRomEnd = _efontcharSegmentRomStart + SIZEOF(.efontchardata); - - _animation_entriesSegmentStart = ADDR(.animation_entries); - _animation_entriesSegmentRomStart = _efontcharSegmentRomEnd; - .animation_entries 0x00000000 : AT(_animation_entriesSegmentRomStart) { - build/e/assets/animationtable_entries.o(.data); - } - _animation_entriesSegmentEnd = ADDR(.animation_entries) + SIZEOF(.animation_entries); - _animation_entriesSegmentRomEnd = _animation_entriesSegmentRomStart + SIZEOF(.animation_entries); - - _animation_dataSegmentStart = ADDR(.animation_data); - _animation_dataSegmentRomStart = _animation_entriesSegmentRomEnd; - .animation_data 0x00000000 : AT(_animation_dataSegmentRomStart) { - build/e/assets/animationtable_data.o(.data); - } - _animation_dataSegmentEnd = ADDR(.animation_data) + SIZEOF(.animation_data); - _animation_dataSegmentRomEnd = _animation_dataSegmentRomStart + SIZEOF(.animation_data); - - _GlobalimagetableSegmentStart = ADDR(.romfiles_29d160); - _GlobalimagetableSegmentRomStart = _animation_dataSegmentRomEnd; - .romfiles_29d160 0x02000000 : AT(_GlobalimagetableSegmentRomStart) { - build/e/assets/GlobalImageTable.o (.data); - } - _GlobalimagetableSegmentEnd = ADDR(.romfiles_29d160) + SIZEOF(.romfiles_29d160); - _GlobalimagetableSegmentRomEnd = _GlobalimagetableSegmentRomStart + SIZEOF(.romfiles_29d160); - - _GlobalimagetablecmdblkSegmentStart = ADDR(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomStart = _GlobalimagetableSegmentRomEnd; - .Globalimagetablecmdblk 0x02000000 : AT(_GlobalimagetablecmdblkSegmentRomStart) { - build/e/assets/Globalimagetable_commandblock.o (.data); - } - _GlobalimagetablecmdblkSegmentEnd = ADDR(.Globalimagetablecmdblk) + SIZEOF(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomEnd = _GlobalimagetablecmdblkSegmentRomStart + SIZEOF(.Globalimagetablecmdblk); - - - _romfiles2SegmentStart = ADDR(.romfiles2); - _romfiles2SegmentRomStart = _GlobalimagetablecmdblkSegmentRomEnd; - .romfiles2 _romfiles2SegmentRomStart : AT(_romfiles2SegmentRomStart) { - build/e/assets/romfiles2.o (.data); - } - _romfiles2SegmentEnd = ADDR(.romfiles2) + SIZEOF(.romfiles2); - _romfiles2SegmentRomEnd = _romfiles2SegmentRomStart + SIZEOF(.romfiles2); - - _ramromfilesSegmentStart = ADDR(.ramromfiles); - _ramromfilesSegmentRomStart = _romfiles2SegmentRomEnd; - .ramromfiles _ramromfilesSegmentRomStart : AT(_ramromfilesSegmentRomStart) { - build/e/assets/ramrom/ramrom.o (.data); - } - _ramromfilesSegmentEnd = ADDR(.ramromfiles) + SIZEOF(.ramromfiles); - _ramromfilesSegmentRomEnd = _ramromfilesSegmentRomStart + SIZEOF(.ramromfiles); - - _fonttablectlsmall1SegmentStart = ADDR(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomStart = _ramromfilesSegmentRomEnd; - .fonttablectlsmall1 _fonttablectlsmall1SegmentRomStart : AT(_fonttablectlsmall1SegmentRomStart) { - build/e/assets/font/font_first_font_table_controller_small.o (.data); - } - _fonttablectlsmall1SegmentEnd = ADDR(.fonttablectlsmall1) + SIZEOF(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomEnd = _fonttablectlsmall1SegmentRomStart + SIZEOF(.fonttablectlsmall1); - - - _fonttablectllarge1SegmentStart = ADDR(.fonttablectllarge1); - _fonttablectllarge1SegmentRomStart = _fonttablectlsmall1SegmentRomEnd; - .fonttablectllarge1 _fonttablectllarge1SegmentRomStart : AT(_fonttablectllarge1SegmentRomStart) { - build/e/assets/font/font_first_font_table_controller_large.o (.data); - } - _fonttablectllarge1SegmentEnd = ADDR(.fonttablectllarge1) + SIZEOF(.fonttablectllarge1); - _fonttablectllarge1SegmentRomEnd = _fonttablectllarge1SegmentRomStart + SIZEOF(.fonttablectllarge1); - - - _musicfilesSegmentStart = ADDR(.musicfiles); - _musicfilesSegmentRomStart = _fonttablectllarge1SegmentRomEnd; - .musicfiles _musicfilesSegmentRomStart : AT(_musicfilesSegmentRomStart) { - build/e/assets/music/sfx.ctl.o (.data); - build/e/assets/music/sfx.tbl.o (.data); - build/e/assets/music/instruments.ctl.o (.data); - build/e/assets/music/instruments.tbl.o (.data); - build/e/assets/music/music.o (.music); - build/e/assets/music/music.o (.musiccompressed); - } - _musicfilesSegmentEnd = ADDR(.musicfiles) + SIZEOF(.musicfiles); - _musicfilesSegmentRomEnd = _musicfilesSegmentRomStart + SIZEOF(.musicfiles); - - - - - _obsegSegmentStart = ADDR(.obseg); - _obsegSegmentRomStart = _musicfilesSegmentRomEnd; - .obseg _obsegSegmentRomStart : AT(_obsegSegmentRomStart) { - build/e/assets/obseg/ob_seg.o (.data); - } - _obsegSegmentEnd = ADDR(.obseg) + SIZEOF(.obseg); - _obsegSegmentRomEnd = _obsegSegmentRomStart + SIZEOF(.obseg); - - - - _imagesSegmentStart = ADDR(.images); - _imagesSegmentRomStart = _obsegSegmentRomEnd; - .images _imagesSegmentRomStart : AT(_imagesSegmentRomStart) { - _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); - build/e/assets/images/split/image5.o (.data); - build/e/assets/images/split/image6.o (.data); - build/e/assets/images/split/image7.o (.data); - build/e/assets/images/split/image8.o (.data); - build/e/assets/images/split/image9.o (.data); - build/e/assets/images/split/image10.o (.data); - build/e/assets/images/split/image11.o (.data); - build/e/assets/images/split/image12.o (.data); - build/e/assets/images/split/image13.o (.data); - build/e/assets/images/split/image14.o (.data); - build/e/assets/images/split/image15.o (.data); - build/e/assets/images/split/image16.o (.data); - build/e/assets/images/split/image17.o (.data); - build/e/assets/images/split/image18.o (.data); - build/e/assets/images/split/image19.o (.data); - build/e/assets/images/split/image20.o (.data); - build/e/assets/images/split/image21.o (.data); - build/e/assets/images/split/image22.o (.data); - build/e/assets/images/split/image23.o (.data); - build/e/assets/images/split/image24.o (.data); - build/e/assets/images/split/image25.o (.data); - build/e/assets/images/split/image26.o (.data); - build/e/assets/images/split/image27.o (.data); - build/e/assets/images/split/image28.o (.data); - build/e/assets/images/split/image29.o (.data); - build/e/assets/images/split/image30.o (.data); - build/e/assets/images/split/image31.o (.data); - build/e/assets/images/split/image32.o (.data); - build/e/assets/images/split/image33.o (.data); - build/e/assets/images/split/image34.o (.data); - build/e/assets/images/split/image35.o (.data); - build/e/assets/images/split/image36.o (.data); - build/e/assets/images/split/image37.o (.data); - build/e/assets/images/split/image38.o (.data); - build/e/assets/images/split/image39.o (.data); - build/e/assets/images/split/image40.o (.data); - build/e/assets/images/split/image41.o (.data); - build/e/assets/images/split/image42.o (.data); - build/e/assets/images/split/image43.o (.data); - build/e/assets/images/split/image44.o (.data); - build/e/assets/images/split/image45.o (.data); - build/e/assets/images/split/image46.o (.data); - build/e/assets/images/split/image47.o (.data); - build/e/assets/images/split/image48.o (.data); - build/e/assets/images/split/image49.o (.data); - build/e/assets/images/split/image50.o (.data); - build/e/assets/images/split/image51.o (.data); - build/e/assets/images/split/image52.o (.data); - build/e/assets/images/split/image53.o (.data); - build/e/assets/images/split/image54.o (.data); - build/e/assets/images/split/image55.o (.data); - build/e/assets/images/split/image56.o (.data); - build/e/assets/images/split/image57.o (.data); - build/e/assets/images/split/image58.o (.data); - build/e/assets/images/split/image59.o (.data); - build/e/assets/images/split/image60.o (.data); - build/e/assets/images/split/image61.o (.data); - build/e/assets/images/split/image62.o (.data); - build/e/assets/images/split/image63.o (.data); - build/e/assets/images/split/image64.o (.data); - build/e/assets/images/split/image65.o (.data); - build/e/assets/images/split/image66.o (.data); - build/e/assets/images/split/image67.o (.data); - build/e/assets/images/split/image68.o (.data); - build/e/assets/images/split/image69.o (.data); - build/e/assets/images/split/image70.o (.data); - build/e/assets/images/split/image71.o (.data); - build/e/assets/images/split/image72.o (.data); - build/e/assets/images/split/image73.o (.data); - build/e/assets/images/split/image74.o (.data); - build/e/assets/images/split/image75.o (.data); - build/e/assets/images/split/image76.o (.data); - build/e/assets/images/split/image77.o (.data); - build/e/assets/images/split/image78.o (.data); - build/e/assets/images/split/image79.o (.data); - build/e/assets/images/split/image80.o (.data); - build/e/assets/images/split/image81.o (.data); - build/e/assets/images/split/image82.o (.data); - build/e/assets/images/split/image83.o (.data); - build/e/assets/images/split/image84.o (.data); - build/e/assets/images/split/image85.o (.data); - build/e/assets/images/split/image86.o (.data); - build/e/assets/images/split/image87.o (.data); - build/e/assets/images/split/image88.o (.data); - build/e/assets/images/split/image89.o (.data); - build/e/assets/images/split/image90.o (.data); - build/e/assets/images/split/image91.o (.data); - build/e/assets/images/split/image92.o (.data); - build/e/assets/images/split/image93.o (.data); - build/e/assets/images/split/image94.o (.data); - build/e/assets/images/split/image95.o (.data); - build/e/assets/images/split/image96.o (.data); - build/e/assets/images/split/image97.o (.data); - build/e/assets/images/split/image98.o (.data); - build/e/assets/images/split/image99.o (.data); - build/e/assets/images/split/image100.o (.data); - build/e/assets/images/split/image101.o (.data); - build/e/assets/images/split/image102.o (.data); - build/e/assets/images/split/image103.o (.data); - build/e/assets/images/split/image104.o (.data); - build/e/assets/images/split/image105.o (.data); - build/e/assets/images/split/image106.o (.data); - build/e/assets/images/split/image107.o (.data); - build/e/assets/images/split/image108.o (.data); - build/e/assets/images/split/image109.o (.data); - build/e/assets/images/split/image110.o (.data); - build/e/assets/images/split/image111.o (.data); - build/e/assets/images/split/image112.o (.data); - build/e/assets/images/split/image113.o (.data); - build/e/assets/images/split/image114.o (.data); - build/e/assets/images/split/image115.o (.data); - build/e/assets/images/split/image116.o (.data); - build/e/assets/images/split/image117.o (.data); - build/e/assets/images/split/image118.o (.data); - build/e/assets/images/split/image119.o (.data); - build/e/assets/images/split/image120.o (.data); - build/e/assets/images/split/image121.o (.data); - build/e/assets/images/split/image122.o (.data); - build/e/assets/images/split/image123.o (.data); - build/e/assets/images/split/image124.o (.data); - build/e/assets/images/split/image125.o (.data); - build/e/assets/images/split/image126.o (.data); - build/e/assets/images/split/image127.o (.data); - build/e/assets/images/split/image128.o (.data); - build/e/assets/images/split/image129.o (.data); - build/e/assets/images/split/image130.o (.data); - build/e/assets/images/split/image131.o (.data); - build/e/assets/images/split/image132.o (.data); - build/e/assets/images/split/image133.o (.data); - build/e/assets/images/split/image134.o (.data); - build/e/assets/images/split/image135.o (.data); - build/e/assets/images/split/image136.o (.data); - build/e/assets/images/split/image137.o (.data); - build/e/assets/images/split/image138.o (.data); - build/e/assets/images/split/image139.o (.data); - build/e/assets/images/split/image140.o (.data); - build/e/assets/images/split/image141.o (.data); - build/e/assets/images/split/image142.o (.data); - build/e/assets/images/split/image143.o (.data); - build/e/assets/images/split/image144.o (.data); - build/e/assets/images/split/image145.o (.data); - build/e/assets/images/split/image146.o (.data); - build/e/assets/images/split/image147.o (.data); - build/e/assets/images/split/image148.o (.data); - build/e/assets/images/split/image149.o (.data); - build/e/assets/images/split/image150.o (.data); - build/e/assets/images/split/image151.o (.data); - build/e/assets/images/split/image152.o (.data); - build/e/assets/images/split/image153.o (.data); - build/e/assets/images/split/image154.o (.data); - build/e/assets/images/split/image155.o (.data); - build/e/assets/images/split/image156.o (.data); - build/e/assets/images/split/image157.o (.data); - build/e/assets/images/split/image158.o (.data); - build/e/assets/images/split/image159.o (.data); - build/e/assets/images/split/image160.o (.data); - build/e/assets/images/split/image161.o (.data); - build/e/assets/images/split/image162.o (.data); - build/e/assets/images/split/image163.o (.data); - build/e/assets/images/split/image164.o (.data); - build/e/assets/images/split/image165.o (.data); - build/e/assets/images/split/image166.o (.data); - build/e/assets/images/split/image167.o (.data); - build/e/assets/images/split/image168.o (.data); - build/e/assets/images/split/image169.o (.data); - build/e/assets/images/split/image170.o (.data); - build/e/assets/images/split/image171.o (.data); - build/e/assets/images/split/image172.o (.data); - build/e/assets/images/split/image173.o (.data); - build/e/assets/images/split/image174.o (.data); - build/e/assets/images/split/image175.o (.data); - build/e/assets/images/split/image176.o (.data); - build/e/assets/images/split/image177.o (.data); - build/e/assets/images/split/image178.o (.data); - build/e/assets/images/split/image179.o (.data); - build/e/assets/images/split/image180.o (.data); - build/e/assets/images/split/image181.o (.data); - build/e/assets/images/split/image182.o (.data); - build/e/assets/images/split/image183.o (.data); - build/e/assets/images/split/image184.o (.data); - build/e/assets/images/split/image185.o (.data); - build/e/assets/images/split/image186.o (.data); - build/e/assets/images/split/image187.o (.data); - build/e/assets/images/split/image188.o (.data); - build/e/assets/images/split/image189.o (.data); - build/e/assets/images/split/image190.o (.data); - build/e/assets/images/split/image191.o (.data); - build/e/assets/images/split/image192.o (.data); - build/e/assets/images/split/image193.o (.data); - build/e/assets/images/split/image194.o (.data); - build/e/assets/images/split/image195.o (.data); - build/e/assets/images/split/image196.o (.data); - build/e/assets/images/split/image197.o (.data); - build/e/assets/images/split/image198.o (.data); - build/e/assets/images/split/image199.o (.data); - build/e/assets/images/split/image200.o (.data); - build/e/assets/images/split/image201.o (.data); - build/e/assets/images/split/image202.o (.data); - build/e/assets/images/split/image203.o (.data); - build/e/assets/images/split/image204.o (.data); - build/e/assets/images/split/image205.o (.data); - build/e/assets/images/split/image206.o (.data); - build/e/assets/images/split/image207.o (.data); - build/e/assets/images/split/image208.o (.data); - build/e/assets/images/split/image209.o (.data); - build/e/assets/images/split/image210.o (.data); - build/e/assets/images/split/image211.o (.data); - build/e/assets/images/split/image212.o (.data); - build/e/assets/images/split/image213.o (.data); - build/e/assets/images/split/image214.o (.data); - build/e/assets/images/split/image215.o (.data); - build/e/assets/images/split/image216.o (.data); - build/e/assets/images/split/image217.o (.data); - build/e/assets/images/split/image218.o (.data); - build/e/assets/images/split/image219.o (.data); - build/e/assets/images/split/image220.o (.data); - build/e/assets/images/split/image221.o (.data); - build/e/assets/images/split/image222.o (.data); - build/e/assets/images/split/image223.o (.data); - build/e/assets/images/split/image224.o (.data); - build/e/assets/images/split/image225.o (.data); - build/e/assets/images/split/image226.o (.data); - build/e/assets/images/split/image227.o (.data); - build/e/assets/images/split/image228.o (.data); - build/e/assets/images/split/image229.o (.data); - build/e/assets/images/split/image230.o (.data); - build/e/assets/images/split/image231.o (.data); - build/e/assets/images/split/image232.o (.data); - build/e/assets/images/split/image233.o (.data); - build/e/assets/images/split/image234.o (.data); - build/e/assets/images/split/image235.o (.data); - build/e/assets/images/split/image236.o (.data); - build/e/assets/images/split/image237.o (.data); - build/e/assets/images/split/image238.o (.data); - build/e/assets/images/split/image239.o (.data); - build/e/assets/images/split/image240.o (.data); - build/e/assets/images/split/image241.o (.data); - build/e/assets/images/split/image242.o (.data); - build/e/assets/images/split/image243.o (.data); - build/e/assets/images/split/image244.o (.data); - build/e/assets/images/split/image245.o (.data); - build/e/assets/images/split/image246.o (.data); - build/e/assets/images/split/image247.o (.data); - build/e/assets/images/split/image248.o (.data); - build/e/assets/images/split/image249.o (.data); - build/e/assets/images/split/image250.o (.data); - build/e/assets/images/split/image251.o (.data); - build/e/assets/images/split/image252.o (.data); - build/e/assets/images/split/image253.o (.data); - build/e/assets/images/split/image254.o (.data); - build/e/assets/images/split/image255.o (.data); - build/e/assets/images/split/image256.o (.data); - build/e/assets/images/split/image257.o (.data); - build/e/assets/images/split/image258.o (.data); - build/e/assets/images/split/image259.o (.data); - build/e/assets/images/split/image260.o (.data); - build/e/assets/images/split/image261.o (.data); - build/e/assets/images/split/image262.o (.data); - build/e/assets/images/split/image263.o (.data); - build/e/assets/images/split/image264.o (.data); - build/e/assets/images/split/image265.o (.data); - build/e/assets/images/split/image266.o (.data); - build/e/assets/images/split/image267.o (.data); - build/e/assets/images/split/image268.o (.data); - build/e/assets/images/split/image269.o (.data); - build/e/assets/images/split/image270.o (.data); - build/e/assets/images/split/image271.o (.data); - build/e/assets/images/split/image272.o (.data); - build/e/assets/images/split/image273.o (.data); - build/e/assets/images/split/image274.o (.data); - build/e/assets/images/split/image275.o (.data); - build/e/assets/images/split/image276.o (.data); - build/e/assets/images/split/image277.o (.data); - build/e/assets/images/split/image278.o (.data); - build/e/assets/images/split/image279.o (.data); - build/e/assets/images/split/image280.o (.data); - build/e/assets/images/split/image281.o (.data); - build/e/assets/images/split/image282.o (.data); - build/e/assets/images/split/image283.o (.data); - build/e/assets/images/split/image284.o (.data); - build/e/assets/images/split/image285.o (.data); - build/e/assets/images/split/image286.o (.data); - build/e/assets/images/split/image287.o (.data); - build/e/assets/images/split/image288.o (.data); - build/e/assets/images/split/image289.o (.data); - build/e/assets/images/split/image290.o (.data); - build/e/assets/images/split/image291.o (.data); - build/e/assets/images/split/image292.o (.data); - build/e/assets/images/split/image293.o (.data); - build/e/assets/images/split/image294.o (.data); - build/e/assets/images/split/image295.o (.data); - build/e/assets/images/split/image296.o (.data); - build/e/assets/images/split/image297.o (.data); - build/e/assets/images/split/image298.o (.data); - build/e/assets/images/split/image299.o (.data); - build/e/assets/images/split/image300.o (.data); - build/e/assets/images/split/image301.o (.data); - build/e/assets/images/split/image302.o (.data); - build/e/assets/images/split/image303.o (.data); - build/e/assets/images/split/image304.o (.data); - build/e/assets/images/split/image305.o (.data); - build/e/assets/images/split/image306.o (.data); - build/e/assets/images/split/image307.o (.data); - build/e/assets/images/split/image308.o (.data); - build/e/assets/images/split/image309.o (.data); - build/e/assets/images/split/image310.o (.data); - build/e/assets/images/split/image311.o (.data); - build/e/assets/images/split/image312.o (.data); - build/e/assets/images/split/image313.o (.data); - build/e/assets/images/split/image314.o (.data); - build/e/assets/images/split/image315.o (.data); - build/e/assets/images/split/image316.o (.data); - build/e/assets/images/split/image317.o (.data); - build/e/assets/images/split/image318.o (.data); - build/e/assets/images/split/image319.o (.data); - build/e/assets/images/split/image320.o (.data); - build/e/assets/images/split/image321.o (.data); - build/e/assets/images/split/image322.o (.data); - build/e/assets/images/split/image323.o (.data); - build/e/assets/images/split/image324.o (.data); - build/e/assets/images/split/image325.o (.data); - build/e/assets/images/split/image326.o (.data); - build/e/assets/images/split/image327.o (.data); - build/e/assets/images/split/image328.o (.data); - build/e/assets/images/split/image329.o (.data); - build/e/assets/images/split/image330.o (.data); - build/e/assets/images/split/image331.o (.data); - build/e/assets/images/split/image332.o (.data); - build/e/assets/images/split/image333.o (.data); - build/e/assets/images/split/image334.o (.data); - build/e/assets/images/split/image335.o (.data); - build/e/assets/images/split/image336.o (.data); - build/e/assets/images/split/image337.o (.data); - build/e/assets/images/split/image338.o (.data); - build/e/assets/images/split/image339.o (.data); - build/e/assets/images/split/image340.o (.data); - build/e/assets/images/split/image341.o (.data); - build/e/assets/images/split/image342.o (.data); - build/e/assets/images/split/image343.o (.data); - build/e/assets/images/split/image344.o (.data); - build/e/assets/images/split/image345.o (.data); - build/e/assets/images/split/image346.o (.data); - build/e/assets/images/split/image347.o (.data); - build/e/assets/images/split/image348.o (.data); - build/e/assets/images/split/image349.o (.data); - build/e/assets/images/split/image350.o (.data); - build/e/assets/images/split/image351.o (.data); - build/e/assets/images/split/image352.o (.data); - build/e/assets/images/split/image353.o (.data); - build/e/assets/images/split/image354.o (.data); - build/e/assets/images/split/image355.o (.data); - build/e/assets/images/split/image356.o (.data); - build/e/assets/images/split/image357.o (.data); - build/e/assets/images/split/image358.o (.data); - build/e/assets/images/split/image359.o (.data); - build/e/assets/images/split/image360.o (.data); - build/e/assets/images/split/image361.o (.data); - build/e/assets/images/split/image362.o (.data); - build/e/assets/images/split/image363.o (.data); - build/e/assets/images/split/image364.o (.data); - build/e/assets/images/split/image365.o (.data); - build/e/assets/images/split/image366.o (.data); - build/e/assets/images/split/image367.o (.data); - build/e/assets/images/split/image368.o (.data); - build/e/assets/images/split/image369.o (.data); - build/e/assets/images/split/image370.o (.data); - build/e/assets/images/split/image371.o (.data); - build/e/assets/images/split/image372.o (.data); - build/e/assets/images/split/image373.o (.data); - build/e/assets/images/split/image374.o (.data); - build/e/assets/images/split/image375.o (.data); - build/e/assets/images/split/image376.o (.data); - build/e/assets/images/split/image377.o (.data); - build/e/assets/images/split/image378.o (.data); - build/e/assets/images/split/image379.o (.data); - build/e/assets/images/split/image380.o (.data); - build/e/assets/images/split/image381.o (.data); - build/e/assets/images/split/image382.o (.data); - build/e/assets/images/split/image383.o (.data); - build/e/assets/images/split/image384.o (.data); - build/e/assets/images/split/image385.o (.data); - build/e/assets/images/split/image386.o (.data); - build/e/assets/images/split/image387.o (.data); - build/e/assets/images/split/image388.o (.data); - build/e/assets/images/split/image389.o (.data); - build/e/assets/images/split/image390.o (.data); - build/e/assets/images/split/image391.o (.data); - build/e/assets/images/split/image392.o (.data); - build/e/assets/images/split/image393.o (.data); - build/e/assets/images/split/image394.o (.data); - build/e/assets/images/split/image395.o (.data); - build/e/assets/images/split/image396.o (.data); - build/e/assets/images/split/image397.o (.data); - build/e/assets/images/split/image398.o (.data); - build/e/assets/images/split/image399.o (.data); - build/e/assets/images/split/image400.o (.data); - build/e/assets/images/split/image401.o (.data); - build/e/assets/images/split/image402.o (.data); - build/e/assets/images/split/image403.o (.data); - build/e/assets/images/split/image404.o (.data); - build/e/assets/images/split/image405.o (.data); - build/e/assets/images/split/image406.o (.data); - build/e/assets/images/split/image407.o (.data); - build/e/assets/images/split/image408.o (.data); - build/e/assets/images/split/image409.o (.data); - build/e/assets/images/split/image410.o (.data); - build/e/assets/images/split/image411.o (.data); - build/e/assets/images/split/image412.o (.data); - build/e/assets/images/split/image413.o (.data); - build/e/assets/images/split/image414.o (.data); - build/e/assets/images/split/image415.o (.data); - build/e/assets/images/split/image416.o (.data); - build/e/assets/images/split/image417.o (.data); - build/e/assets/images/split/image418.o (.data); - build/e/assets/images/split/image419.o (.data); - build/e/assets/images/split/image420.o (.data); - build/e/assets/images/split/image421.o (.data); - build/e/assets/images/split/image422.o (.data); - build/e/assets/images/split/image423.o (.data); - build/e/assets/images/split/image424.o (.data); - build/e/assets/images/split/image425.o (.data); - build/e/assets/images/split/image426.o (.data); - build/e/assets/images/split/image427.o (.data); - build/e/assets/images/split/image428.o (.data); - build/e/assets/images/split/image429.o (.data); - build/e/assets/images/split/image430.o (.data); - build/e/assets/images/split/image431.o (.data); - build/e/assets/images/split/image432.o (.data); - build/e/assets/images/split/image433.o (.data); - build/e/assets/images/split/image434.o (.data); - build/e/assets/images/split/image435.o (.data); - build/e/assets/images/split/image436.o (.data); - build/e/assets/images/split/image437.o (.data); - build/e/assets/images/split/image438.o (.data); - build/e/assets/images/split/image439.o (.data); - build/e/assets/images/split/image440.o (.data); - build/e/assets/images/split/image441.o (.data); - build/e/assets/images/split/image442.o (.data); - build/e/assets/images/split/image443.o (.data); - build/e/assets/images/split/image444.o (.data); - build/e/assets/images/split/image445.o (.data); - build/e/assets/images/split/image446.o (.data); - build/e/assets/images/split/image447.o (.data); - build/e/assets/images/split/image448.o (.data); - build/e/assets/images/split/image449.o (.data); - build/e/assets/images/split/image450.o (.data); - build/e/assets/images/split/image451.o (.data); - build/e/assets/images/split/image452.o (.data); - build/e/assets/images/split/image453.o (.data); - build/e/assets/images/split/image454.o (.data); - build/e/assets/images/split/image455.o (.data); - build/e/assets/images/split/image456.o (.data); - build/e/assets/images/split/image457.o (.data); - build/e/assets/images/split/image458.o (.data); - build/e/assets/images/split/image459.o (.data); - build/e/assets/images/split/image460.o (.data); - build/e/assets/images/split/image461.o (.data); - build/e/assets/images/split/image462.o (.data); - build/e/assets/images/split/image463.o (.data); - build/e/assets/images/split/image464.o (.data); - build/e/assets/images/split/image465.o (.data); - build/e/assets/images/split/image466.o (.data); - build/e/assets/images/split/image467.o (.data); - build/e/assets/images/split/image468.o (.data); - build/e/assets/images/split/image469.o (.data); - build/e/assets/images/split/image470.o (.data); - build/e/assets/images/split/image471.o (.data); - build/e/assets/images/split/image472.o (.data); - build/e/assets/images/split/image473.o (.data); - build/e/assets/images/split/image474.o (.data); - build/e/assets/images/split/image475.o (.data); - build/e/assets/images/split/image476.o (.data); - build/e/assets/images/split/image477.o (.data); - build/e/assets/images/split/image478.o (.data); - build/e/assets/images/split/image479.o (.data); - build/e/assets/images/split/image480.o (.data); - build/e/assets/images/split/image481.o (.data); - build/e/assets/images/split/image482.o (.data); - build/e/assets/images/split/image483.o (.data); - build/e/assets/images/split/image484.o (.data); - build/e/assets/images/split/image485.o (.data); - build/e/assets/images/split/image486.o (.data); - build/e/assets/images/split/image487.o (.data); - build/e/assets/images/split/image488.o (.data); - build/e/assets/images/split/image489.o (.data); - build/e/assets/images/split/image490.o (.data); - build/e/assets/images/split/image491.o (.data); - build/e/assets/images/split/image492.o (.data); - build/e/assets/images/split/image493.o (.data); - build/e/assets/images/split/image494.o (.data); - build/e/assets/images/split/image495.o (.data); - build/e/assets/images/split/image496.o (.data); - build/e/assets/images/split/image497.o (.data); - build/e/assets/images/split/image498.o (.data); - build/e/assets/images/split/image499.o (.data); - build/e/assets/images/split/image500.o (.data); - build/e/assets/images/split/image501.o (.data); - build/e/assets/images/split/image502.o (.data); - build/e/assets/images/split/image503.o (.data); - build/e/assets/images/split/image504.o (.data); - build/e/assets/images/split/image505.o (.data); - build/e/assets/images/split/image506.o (.data); - build/e/assets/images/split/image507.o (.data); - build/e/assets/images/split/image508.o (.data); - build/e/assets/images/split/image509.o (.data); - build/e/assets/images/split/image510.o (.data); - build/e/assets/images/split/image511.o (.data); - build/e/assets/images/split/image512.o (.data); - build/e/assets/images/split/image513.o (.data); - build/e/assets/images/split/image514.o (.data); - build/e/assets/images/split/image515.o (.data); - build/e/assets/images/split/image516.o (.data); - build/e/assets/images/split/image517.o (.data); - build/e/assets/images/split/image518.o (.data); - build/e/assets/images/split/image519.o (.data); - build/e/assets/images/split/image520.o (.data); - build/e/assets/images/split/image521.o (.data); - build/e/assets/images/split/image522.o (.data); - build/e/assets/images/split/image523.o (.data); - build/e/assets/images/split/image524.o (.data); - build/e/assets/images/split/image525.o (.data); - build/e/assets/images/split/image526.o (.data); - build/e/assets/images/split/image527.o (.data); - build/e/assets/images/split/image528.o (.data); - build/e/assets/images/split/image529.o (.data); - build/e/assets/images/split/image530.o (.data); - build/e/assets/images/split/image531.o (.data); - build/e/assets/images/split/image532.o (.data); - build/e/assets/images/split/image533.o (.data); - build/e/assets/images/split/image534.o (.data); - build/e/assets/images/split/image535.o (.data); - build/e/assets/images/split/image536.o (.data); - build/e/assets/images/split/image537.o (.data); - build/e/assets/images/split/image538.o (.data); - build/e/assets/images/split/image539.o (.data); - build/e/assets/images/split/image540.o (.data); - build/e/assets/images/split/image541.o (.data); - build/e/assets/images/split/image542.o (.data); - build/e/assets/images/split/image543.o (.data); - build/e/assets/images/split/image544.o (.data); - build/e/assets/images/split/image545.o (.data); - build/e/assets/images/split/image546.o (.data); - build/e/assets/images/split/image547.o (.data); - build/e/assets/images/split/image548.o (.data); - build/e/assets/images/split/image549.o (.data); - build/e/assets/images/split/image550.o (.data); - build/e/assets/images/split/image551.o (.data); - build/e/assets/images/split/image552.o (.data); - build/e/assets/images/split/image553.o (.data); - build/e/assets/images/split/image554.o (.data); - build/e/assets/images/split/image555.o (.data); - build/e/assets/images/split/image556.o (.data); - build/e/assets/images/split/image557.o (.data); - build/e/assets/images/split/image558.o (.data); - build/e/assets/images/split/image559.o (.data); - build/e/assets/images/split/image560.o (.data); - build/e/assets/images/split/image561.o (.data); - build/e/assets/images/split/image562.o (.data); - build/e/assets/images/split/image563.o (.data); - build/e/assets/images/split/image564.o (.data); - build/e/assets/images/split/image565.o (.data); - build/e/assets/images/split/image566.o (.data); - build/e/assets/images/split/image567.o (.data); - build/e/assets/images/split/image568.o (.data); - build/e/assets/images/split/image569.o (.data); - build/e/assets/images/split/image570.o (.data); - build/e/assets/images/split/image571.o (.data); - build/e/assets/images/split/image572.o (.data); - build/e/assets/images/split/image573.o (.data); - build/e/assets/images/split/image574.o (.data); - build/e/assets/images/split/image575.o (.data); - build/e/assets/images/split/image576.o (.data); - build/e/assets/images/split/image577.o (.data); - build/e/assets/images/split/image578.o (.data); - build/e/assets/images/split/image579.o (.data); - build/e/assets/images/split/image580.o (.data); - build/e/assets/images/split/image581.o (.data); - build/e/assets/images/split/image582.o (.data); - build/e/assets/images/split/image583.o (.data); - build/e/assets/images/split/image584.o (.data); - build/e/assets/images/split/image585.o (.data); - build/e/assets/images/split/image586.o (.data); - build/e/assets/images/split/image587.o (.data); - build/e/assets/images/split/image588.o (.data); - build/e/assets/images/split/image589.o (.data); - build/e/assets/images/split/image590.o (.data); - build/e/assets/images/split/image591.o (.data); - build/e/assets/images/split/image592.o (.data); - build/e/assets/images/split/image593.o (.data); - build/e/assets/images/split/image594.o (.data); - build/e/assets/images/split/image595.o (.data); - build/e/assets/images/split/image596.o (.data); - build/e/assets/images/split/image597.o (.data); - build/e/assets/images/split/image598.o (.data); - build/e/assets/images/split/image599.o (.data); - build/e/assets/images/split/image600.o (.data); - build/e/assets/images/split/image601.o (.data); - build/e/assets/images/split/image602.o (.data); - build/e/assets/images/split/image603.o (.data); - build/e/assets/images/split/image604.o (.data); - build/e/assets/images/split/image605.o (.data); - build/e/assets/images/split/image606.o (.data); - build/e/assets/images/split/image607.o (.data); - build/e/assets/images/split/image608.o (.data); - build/e/assets/images/split/image609.o (.data); - build/e/assets/images/split/image610.o (.data); - build/e/assets/images/split/image611.o (.data); - build/e/assets/images/split/image612.o (.data); - build/e/assets/images/split/image613.o (.data); - build/e/assets/images/split/image614.o (.data); - build/e/assets/images/split/image615.o (.data); - build/e/assets/images/split/image616.o (.data); - build/e/assets/images/split/image617.o (.data); - build/e/assets/images/split/image618.o (.data); - build/e/assets/images/split/image619.o (.data); - build/e/assets/images/split/image620.o (.data); - build/e/assets/images/split/image621.o (.data); - build/e/assets/images/split/image622.o (.data); - build/e/assets/images/split/image623.o (.data); - build/e/assets/images/split/image624.o (.data); - build/e/assets/images/split/image625.o (.data); - build/e/assets/images/split/image626.o (.data); - build/e/assets/images/split/image627.o (.data); - build/e/assets/images/split/image628.o (.data); - build/e/assets/images/split/image629.o (.data); - build/e/assets/images/split/image630.o (.data); - build/e/assets/images/split/image631.o (.data); - build/e/assets/images/split/image632.o (.data); - build/e/assets/images/split/image633.o (.data); - build/e/assets/images/split/image634.o (.data); - build/e/assets/images/split/image635.o (.data); - build/e/assets/images/split/image636.o (.data); - build/e/assets/images/split/image637.o (.data); - build/e/assets/images/split/image638.o (.data); - build/e/assets/images/split/image639.o (.data); - build/e/assets/images/split/image640.o (.data); - build/e/assets/images/split/image641.o (.data); - build/e/assets/images/split/image642.o (.data); - build/e/assets/images/split/image643.o (.data); - build/e/assets/images/split/image644.o (.data); - build/e/assets/images/split/image645.o (.data); - build/e/assets/images/split/image646.o (.data); - build/e/assets/images/split/image647.o (.data); - build/e/assets/images/split/image648.o (.data); - build/e/assets/images/split/image649.o (.data); - build/e/assets/images/split/image650.o (.data); - build/e/assets/images/split/image651.o (.data); - build/e/assets/images/split/image652.o (.data); - build/e/assets/images/split/image653.o (.data); - build/e/assets/images/split/image654.o (.data); - build/e/assets/images/split/image655.o (.data); - build/e/assets/images/split/image656.o (.data); - build/e/assets/images/split/image657.o (.data); - build/e/assets/images/split/image658.o (.data); - build/e/assets/images/split/image659.o (.data); - build/e/assets/images/split/image660.o (.data); - build/e/assets/images/split/image661.o (.data); - build/e/assets/images/split/image662.o (.data); - build/e/assets/images/split/image663.o (.data); - build/e/assets/images/split/image664.o (.data); - build/e/assets/images/split/image665.o (.data); - build/e/assets/images/split/image666.o (.data); - build/e/assets/images/split/image667.o (.data); - build/e/assets/images/split/image668.o (.data); - build/e/assets/images/split/image669.o (.data); - build/e/assets/images/split/image670.o (.data); - build/e/assets/images/split/image671.o (.data); - build/e/assets/images/split/image672.o (.data); - build/e/assets/images/split/image673.o (.data); - build/e/assets/images/split/image674.o (.data); - build/e/assets/images/split/image675.o (.data); - build/e/assets/images/split/image676.o (.data); - build/e/assets/images/split/image677.o (.data); - build/e/assets/images/split/image678.o (.data); - build/e/assets/images/split/image679.o (.data); - build/e/assets/images/split/image680.o (.data); - build/e/assets/images/split/image681.o (.data); - build/e/assets/images/split/image682.o (.data); - build/e/assets/images/split/image683.o (.data); - build/e/assets/images/split/image684.o (.data); - build/e/assets/images/split/image685.o (.data); - build/e/assets/images/split/image686.o (.data); - build/e/assets/images/split/image687.o (.data); - build/e/assets/images/split/image688.o (.data); - build/e/assets/images/split/image689.o (.data); - build/e/assets/images/split/image690.o (.data); - build/e/assets/images/split/image691.o (.data); - build/e/assets/images/split/image692.o (.data); - build/e/assets/images/split/image693.o (.data); - build/e/assets/images/split/image694.o (.data); - build/e/assets/images/split/image695.o (.data); - build/e/assets/images/split/image696.o (.data); - build/e/assets/images/split/image697.o (.data); - build/e/assets/images/split/image698.o (.data); - build/e/assets/images/split/image699.o (.data); - build/e/assets/images/split/image700.o (.data); - build/e/assets/images/split/image701.o (.data); - build/e/assets/images/split/image702.o (.data); - build/e/assets/images/split/image703.o (.data); - build/e/assets/images/split/image704.o (.data); - build/e/assets/images/split/image705.o (.data); - build/e/assets/images/split/image706.o (.data); - build/e/assets/images/split/image707.o (.data); - build/e/assets/images/split/image708.o (.data); - build/e/assets/images/split/image709.o (.data); - build/e/assets/images/split/image710.o (.data); - build/e/assets/images/split/image711.o (.data); - build/e/assets/images/split/image712.o (.data); - build/e/assets/images/split/image713.o (.data); - build/e/assets/images/split/image714.o (.data); - build/e/assets/images/split/image715.o (.data); - build/e/assets/images/split/image716.o (.data); - build/e/assets/images/split/image717.o (.data); - build/e/assets/images/split/image718.o (.data); - build/e/assets/images/split/image719.o (.data); - build/e/assets/images/split/image720.o (.data); - build/e/assets/images/split/image721.o (.data); - build/e/assets/images/split/image722.o (.data); - build/e/assets/images/split/image723.o (.data); - build/e/assets/images/split/image724.o (.data); - build/e/assets/images/split/image725.o (.data); - build/e/assets/images/split/image726.o (.data); - build/e/assets/images/split/image727.o (.data); - build/e/assets/images/split/image728.o (.data); - build/e/assets/images/split/image729.o (.data); - build/e/assets/images/split/image730.o (.data); - build/e/assets/images/split/image731.o (.data); - build/e/assets/images/split/image732.o (.data); - build/e/assets/images/split/image733.o (.data); - build/e/assets/images/split/image734.o (.data); - build/e/assets/images/split/image735.o (.data); - build/e/assets/images/split/image736.o (.data); - build/e/assets/images/split/image737.o (.data); - build/e/assets/images/split/image738.o (.data); - build/e/assets/images/split/image739.o (.data); - build/e/assets/images/split/image740.o (.data); - build/e/assets/images/split/image741.o (.data); - build/e/assets/images/split/image742.o (.data); - build/e/assets/images/split/image743.o (.data); - build/e/assets/images/split/image744.o (.data); - build/e/assets/images/split/image745.o (.data); - build/e/assets/images/split/image746.o (.data); - build/e/assets/images/split/image747.o (.data); - build/e/assets/images/split/image748.o (.data); - build/e/assets/images/split/image749.o (.data); - build/e/assets/images/split/image750.o (.data); - build/e/assets/images/split/image751.o (.data); - build/e/assets/images/split/image752.o (.data); - build/e/assets/images/split/image753.o (.data); - build/e/assets/images/split/image754.o (.data); - build/e/assets/images/split/image755.o (.data); - build/e/assets/images/split/image756.o (.data); - build/e/assets/images/split/image757.o (.data); - build/e/assets/images/split/image758.o (.data); - build/e/assets/images/split/image759.o (.data); - build/e/assets/images/split/image760.o (.data); - build/e/assets/images/split/image761.o (.data); - build/e/assets/images/split/image762.o (.data); - build/e/assets/images/split/image763.o (.data); - build/e/assets/images/split/image764.o (.data); - build/e/assets/images/split/image765.o (.data); - build/e/assets/images/split/image766.o (.data); - build/e/assets/images/split/image767.o (.data); - build/e/assets/images/split/image768.o (.data); - build/e/assets/images/split/image769.o (.data); - build/e/assets/images/split/image770.o (.data); - build/e/assets/images/split/image771.o (.data); - build/e/assets/images/split/image772.o (.data); - build/e/assets/images/split/image773.o (.data); - build/e/assets/images/split/image774.o (.data); - build/e/assets/images/split/image775.o (.data); - build/e/assets/images/split/image776.o (.data); - build/e/assets/images/split/image777.o (.data); - build/e/assets/images/split/image778.o (.data); - build/e/assets/images/split/image779.o (.data); - build/e/assets/images/split/image780.o (.data); - build/e/assets/images/split/image781.o (.data); - build/e/assets/images/split/image782.o (.data); - build/e/assets/images/split/image783.o (.data); - build/e/assets/images/split/image784.o (.data); - build/e/assets/images/split/image785.o (.data); - build/e/assets/images/split/image786.o (.data); - build/e/assets/images/split/image787.o (.data); - build/e/assets/images/split/image788.o (.data); - build/e/assets/images/split/image789.o (.data); - build/e/assets/images/split/image790.o (.data); - build/e/assets/images/split/image791.o (.data); - build/e/assets/images/split/image792.o (.data); - build/e/assets/images/split/image793.o (.data); - build/e/assets/images/split/image794.o (.data); - build/e/assets/images/split/image795.o (.data); - build/e/assets/images/split/image796.o (.data); - build/e/assets/images/split/image797.o (.data); - build/e/assets/images/split/image798.o (.data); - build/e/assets/images/split/image799.o (.data); - build/e/assets/images/split/image800.o (.data); - build/e/assets/images/split/image801.o (.data); - build/e/assets/images/split/image802.o (.data); - build/e/assets/images/split/image803.o (.data); - build/e/assets/images/split/image804.o (.data); - build/e/assets/images/split/image805.o (.data); - build/e/assets/images/split/image806.o (.data); - build/e/assets/images/split/image807.o (.data); - build/e/assets/images/split/image808.o (.data); - build/e/assets/images/split/image809.o (.data); - build/e/assets/images/split/image810.o (.data); - build/e/assets/images/split/image811.o (.data); - build/e/assets/images/split/image812.o (.data); - build/e/assets/images/split/image813.o (.data); - build/e/assets/images/split/image814.o (.data); - build/e/assets/images/split/image815.o (.data); - build/e/assets/images/split/image816.o (.data); - build/e/assets/images/split/image817.o (.data); - build/e/assets/images/split/image818.o (.data); - build/e/assets/images/split/image819.o (.data); - build/e/assets/images/split/image820.o (.data); - build/e/assets/images/split/image821.o (.data); - build/e/assets/images/split/image822.o (.data); - build/e/assets/images/split/image823.o (.data); - build/e/assets/images/split/image824.o (.data); - build/e/assets/images/split/image825.o (.data); - build/e/assets/images/split/image826.o (.data); - build/e/assets/images/split/image827.o (.data); - build/e/assets/images/split/image828.o (.data); - build/e/assets/images/split/image829.o (.data); - build/e/assets/images/split/image830.o (.data); - build/e/assets/images/split/image831.o (.data); - build/e/assets/images/split/image832.o (.data); - build/e/assets/images/split/image833.o (.data); - build/e/assets/images/split/image834.o (.data); - build/e/assets/images/split/image835.o (.data); - build/e/assets/images/split/image836.o (.data); - build/e/assets/images/split/image837.o (.data); - build/e/assets/images/split/image838.o (.data); - build/e/assets/images/split/image839.o (.data); - build/e/assets/images/split/image840.o (.data); - build/e/assets/images/split/image841.o (.data); - build/e/assets/images/split/image842.o (.data); - build/e/assets/images/split/image843.o (.data); - build/e/assets/images/split/image844.o (.data); - build/e/assets/images/split/image845.o (.data); - build/e/assets/images/split/image846.o (.data); - build/e/assets/images/split/image847.o (.data); - build/e/assets/images/split/image848.o (.data); - build/e/assets/images/split/image849.o (.data); - build/e/assets/images/split/image850.o (.data); - build/e/assets/images/split/image851.o (.data); - build/e/assets/images/split/image852.o (.data); - build/e/assets/images/split/image853.o (.data); - build/e/assets/images/split/image854.o (.data); - build/e/assets/images/split/image855.o (.data); - build/e/assets/images/split/image856.o (.data); - build/e/assets/images/split/image857.o (.data); - build/e/assets/images/split/image858.o (.data); - build/e/assets/images/split/image859.o (.data); - build/e/assets/images/split/image860.o (.data); - build/e/assets/images/split/image861.o (.data); - build/e/assets/images/split/image862.o (.data); - build/e/assets/images/split/image863.o (.data); - build/e/assets/images/split/image864.o (.data); - build/e/assets/images/split/image865.o (.data); - build/e/assets/images/split/image866.o (.data); - build/e/assets/images/split/image867.o (.data); - build/e/assets/images/split/image868.o (.data); - build/e/assets/images/split/image869.o (.data); - build/e/assets/images/split/image870.o (.data); - build/e/assets/images/split/image871.o (.data); - build/e/assets/images/split/image872.o (.data); - build/e/assets/images/split/image873.o (.data); - build/e/assets/images/split/image874.o (.data); - build/e/assets/images/split/image875.o (.data); - build/e/assets/images/split/image876.o (.data); - build/e/assets/images/split/image877.o (.data); - build/e/assets/images/split/image878.o (.data); - build/e/assets/images/split/image879.o (.data); - build/e/assets/images/split/image880.o (.data); - build/e/assets/images/split/image881.o (.data); - build/e/assets/images/split/image882.o (.data); - build/e/assets/images/split/image883.o (.data); - build/e/assets/images/split/image884.o (.data); - build/e/assets/images/split/image885.o (.data); - build/e/assets/images/split/image886.o (.data); - build/e/assets/images/split/image887.o (.data); - build/e/assets/images/split/image888.o (.data); - build/e/assets/images/split/image889.o (.data); - build/e/assets/images/split/image890.o (.data); - build/e/assets/images/split/image891.o (.data); - build/e/assets/images/split/image892.o (.data); - build/e/assets/images/split/image893.o (.data); - build/e/assets/images/split/image894.o (.data); - build/e/assets/images/split/image895.o (.data); - build/e/assets/images/split/image896.o (.data); - build/e/assets/images/split/image897.o (.data); - build/e/assets/images/split/image898.o (.data); - build/e/assets/images/split/image899.o (.data); - build/e/assets/images/split/image900.o (.data); - build/e/assets/images/split/image901.o (.data); - build/e/assets/images/split/image902.o (.data); - build/e/assets/images/split/image903.o (.data); - build/e/assets/images/split/image904.o (.data); - build/e/assets/images/split/image905.o (.data); - build/e/assets/images/split/image906.o (.data); - build/e/assets/images/split/image907.o (.data); - build/e/assets/images/split/image908.o (.data); - build/e/assets/images/split/image909.o (.data); - build/e/assets/images/split/image910.o (.data); - build/e/assets/images/split/image911.o (.data); - build/e/assets/images/split/image912.o (.data); - build/e/assets/images/split/image913.o (.data); - build/e/assets/images/split/image914.o (.data); - build/e/assets/images/split/image915.o (.data); - build/e/assets/images/split/image916.o (.data); - build/e/assets/images/split/image917.o (.data); - build/e/assets/images/split/image918.o (.data); - build/e/assets/images/split/image919.o (.data); - build/e/assets/images/split/image920.o (.data); - build/e/assets/images/split/image921.o (.data); - build/e/assets/images/split/image922.o (.data); - build/e/assets/images/split/image923.o (.data); - build/e/assets/images/split/image924.o (.data); - build/e/assets/images/split/image925.o (.data); - build/e/assets/images/split/image926.o (.data); - build/e/assets/images/split/image927.o (.data); - build/e/assets/images/split/image928.o (.data); - build/e/assets/images/split/image929.o (.data); - build/e/assets/images/split/image930.o (.data); - build/e/assets/images/split/image931.o (.data); - build/e/assets/images/split/image932.o (.data); - build/e/assets/images/split/image933.o (.data); - build/e/assets/images/split/image934.o (.data); - build/e/assets/images/split/image935.o (.data); - build/e/assets/images/split/image936.o (.data); - build/e/assets/images/split/image937.o (.data); - build/e/assets/images/split/image938.o (.data); - build/e/assets/images/split/image939.o (.data); - build/e/assets/images/split/image940.o (.data); - build/e/assets/images/split/image941.o (.data); - build/e/assets/images/split/image942.o (.data); - build/e/assets/images/split/image943.o (.data); - build/e/assets/images/split/image944.o (.data); - build/e/assets/images/split/image945.o (.data); - build/e/assets/images/split/image946.o (.data); - build/e/assets/images/split/image947.o (.data); - build/e/assets/images/split/image948.o (.data); - build/e/assets/images/split/image949.o (.data); - build/e/assets/images/split/image950.o (.data); - build/e/assets/images/split/image951.o (.data); - build/e/assets/images/split/image952.o (.data); - build/e/assets/images/split/image953.o (.data); - build/e/assets/images/split/image954.o (.data); - build/e/assets/images/split/image955.o (.data); - build/e/assets/images/split/image956.o (.data); - build/e/assets/images/split/image957.o (.data); - build/e/assets/images/split/image958.o (.data); - build/e/assets/images/split/image959.o (.data); - build/e/assets/images/split/image960.o (.data); - build/e/assets/images/split/image961.o (.data); - build/e/assets/images/split/image962.o (.data); - build/e/assets/images/split/image963.o (.data); - build/e/assets/images/split/image964.o (.data); - build/e/assets/images/split/image965.o (.data); - build/e/assets/images/split/image966.o (.data); - build/e/assets/images/split/image967.o (.data); - build/e/assets/images/split/image968.o (.data); - build/e/assets/images/split/image969.o (.data); - build/e/assets/images/split/image970.o (.data); - build/e/assets/images/split/image971.o (.data); - build/e/assets/images/split/image972.o (.data); - build/e/assets/images/split/image973.o (.data); - build/e/assets/images/split/image974.o (.data); - build/e/assets/images/split/image975.o (.data); - build/e/assets/images/split/image976.o (.data); - build/e/assets/images/split/image977.o (.data); - build/e/assets/images/split/image978.o (.data); - build/e/assets/images/split/image979.o (.data); - build/e/assets/images/split/image980.o (.data); - build/e/assets/images/split/image981.o (.data); - build/e/assets/images/split/image982.o (.data); - build/e/assets/images/split/image983.o (.data); - build/e/assets/images/split/image984.o (.data); - build/e/assets/images/split/image985.o (.data); - build/e/assets/images/split/image986.o (.data); - build/e/assets/images/split/image987.o (.data); - build/e/assets/images/split/image988.o (.data); - build/e/assets/images/split/image989.o (.data); - build/e/assets/images/split/image990.o (.data); - build/e/assets/images/split/image991.o (.data); - build/e/assets/images/split/image992.o (.data); - build/e/assets/images/split/image993.o (.data); - build/e/assets/images/split/image994.o (.data); - build/e/assets/images/split/image995.o (.data); - build/e/assets/images/split/image996.o (.data); - build/e/assets/images/split/image997.o (.data); - build/e/assets/images/split/image998.o (.data); - build/e/assets/images/split/image999.o (.data); - build/e/assets/images/split/image1000.o (.data); - build/e/assets/images/split/image1001.o (.data); - build/e/assets/images/split/image1002.o (.data); - build/e/assets/images/split/image1003.o (.data); - build/e/assets/images/split/image1004.o (.data); - build/e/assets/images/split/image1005.o (.data); - build/e/assets/images/split/image1006.o (.data); - build/e/assets/images/split/image1007.o (.data); - build/e/assets/images/split/image1008.o (.data); - build/e/assets/images/split/image1009.o (.data); - build/e/assets/images/split/image1010.o (.data); - build/e/assets/images/split/image1011.o (.data); - build/e/assets/images/split/image1012.o (.data); - build/e/assets/images/split/image1013.o (.data); - build/e/assets/images/split/image1014.o (.data); - build/e/assets/images/split/image1015.o (.data); - build/e/assets/images/split/image1016.o (.data); - build/e/assets/images/split/image1017.o (.data); - build/e/assets/images/split/image1018.o (.data); - build/e/assets/images/split/image1019.o (.data); - build/e/assets/images/split/image1020.o (.data); - build/e/assets/images/split/image1021.o (.data); - build/e/assets/images/split/image1022.o (.data); - build/e/assets/images/split/image1023.o (.data); - build/e/assets/images/split/image1024.o (.data); - build/e/assets/images/split/image1025.o (.data); - build/e/assets/images/split/image1026.o (.data); - build/e/assets/images/split/image1027.o (.data); - build/e/assets/images/split/image1028.o (.data); - build/e/assets/images/split/image1029.o (.data); - build/e/assets/images/split/image1030.o (.data); - build/e/assets/images/split/image1031.o (.data); - build/e/assets/images/split/image1032.o (.data); - build/e/assets/images/split/image1033.o (.data); - build/e/assets/images/split/image1034.o (.data); - build/e/assets/images/split/image1035.o (.data); - build/e/assets/images/split/image1036.o (.data); - build/e/assets/images/split/image1037.o (.data); - build/e/assets/images/split/image1038.o (.data); - build/e/assets/images/split/image1039.o (.data); - build/e/assets/images/split/image1040.o (.data); - build/e/assets/images/split/image1041.o (.data); - build/e/assets/images/split/image1042.o (.data); - build/e/assets/images/split/image1043.o (.data); - build/e/assets/images/split/image1044.o (.data); - build/e/assets/images/split/image1045.o (.data); - build/e/assets/images/split/image1046.o (.data); - build/e/assets/images/split/image1047.o (.data); - build/e/assets/images/split/image1048.o (.data); - build/e/assets/images/split/image1049.o (.data); - build/e/assets/images/split/image1050.o (.data); - build/e/assets/images/split/image1051.o (.data); - build/e/assets/images/split/image1052.o (.data); - build/e/assets/images/split/image1053.o (.data); - build/e/assets/images/split/image1054.o (.data); - build/e/assets/images/split/image1055.o (.data); - build/e/assets/images/split/image1056.o (.data); - build/e/assets/images/split/image1057.o (.data); - build/e/assets/images/split/image1058.o (.data); - build/e/assets/images/split/image1059.o (.data); - build/e/assets/images/split/image1060.o (.data); - build/e/assets/images/split/image1061.o (.data); - build/e/assets/images/split/image1062.o (.data); - build/e/assets/images/split/image1063.o (.data); - build/e/assets/images/split/image1064.o (.data); - build/e/assets/images/split/image1065.o (.data); - build/e/assets/images/split/image1066.o (.data); - build/e/assets/images/split/image1067.o (.data); - build/e/assets/images/split/image1068.o (.data); - build/e/assets/images/split/image1069.o (.data); - build/e/assets/images/split/image1070.o (.data); - build/e/assets/images/split/image1071.o (.data); - build/e/assets/images/split/image1072.o (.data); - build/e/assets/images/split/image1073.o (.data); - build/e/assets/images/split/image1074.o (.data); - build/e/assets/images/split/image1075.o (.data); - build/e/assets/images/split/image1076.o (.data); - build/e/assets/images/split/image1077.o (.data); - build/e/assets/images/split/image1078.o (.data); - build/e/assets/images/split/image1079.o (.data); - build/e/assets/images/split/image1080.o (.data); - build/e/assets/images/split/image1081.o (.data); - build/e/assets/images/split/image1082.o (.data); - build/e/assets/images/split/image1083.o (.data); - build/e/assets/images/split/image1084.o (.data); - build/e/assets/images/split/image1085.o (.data); - build/e/assets/images/split/image1086.o (.data); - build/e/assets/images/split/image1087.o (.data); - build/e/assets/images/split/image1088.o (.data); - build/e/assets/images/split/image1089.o (.data); - build/e/assets/images/split/image1090.o (.data); - build/e/assets/images/split/image1091.o (.data); - build/e/assets/images/split/image1092.o (.data); - build/e/assets/images/split/image1093.o (.data); - build/e/assets/images/split/image1094.o (.data); - build/e/assets/images/split/image1095.o (.data); - build/e/assets/images/split/image1096.o (.data); - build/e/assets/images/split/image1097.o (.data); - build/e/assets/images/split/image1098.o (.data); - build/e/assets/images/split/image1099.o (.data); - build/e/assets/images/split/image1100.o (.data); - build/e/assets/images/split/image1101.o (.data); - build/e/assets/images/split/image1102.o (.data); - build/e/assets/images/split/image1103.o (.data); - build/e/assets/images/split/image1104.o (.data); - build/e/assets/images/split/image1105.o (.data); - build/e/assets/images/split/image1106.o (.data); - build/e/assets/images/split/image1107.o (.data); - build/e/assets/images/split/image1108.o (.data); - build/e/assets/images/split/image1109.o (.data); - build/e/assets/images/split/image1110.o (.data); - build/e/assets/images/split/image1111.o (.data); - build/e/assets/images/split/image1112.o (.data); - build/e/assets/images/split/image1113.o (.data); - build/e/assets/images/split/image1114.o (.data); - build/e/assets/images/split/image1115.o (.data); - build/e/assets/images/split/image1116.o (.data); - build/e/assets/images/split/image1117.o (.data); - build/e/assets/images/split/image1118.o (.data); - build/e/assets/images/split/image1119.o (.data); - build/e/assets/images/split/image1120.o (.data); - build/e/assets/images/split/image1121.o (.data); - build/e/assets/images/split/image1122.o (.data); - build/e/assets/images/split/image1123.o (.data); - build/e/assets/images/split/image1124.o (.data); - build/e/assets/images/split/image1125.o (.data); - build/e/assets/images/split/image1126.o (.data); - build/e/assets/images/split/image1127.o (.data); - build/e/assets/images/split/image1128.o (.data); - build/e/assets/images/split/image1129.o (.data); - build/e/assets/images/split/image1130.o (.data); - build/e/assets/images/split/image1131.o (.data); - build/e/assets/images/split/image1132.o (.data); - build/e/assets/images/split/image1133.o (.data); - build/e/assets/images/split/image1134.o (.data); - build/e/assets/images/split/image1135.o (.data); - build/e/assets/images/split/image1136.o (.data); - build/e/assets/images/split/image1137.o (.data); - build/e/assets/images/split/image1138.o (.data); - build/e/assets/images/split/image1139.o (.data); - build/e/assets/images/split/image1140.o (.data); - build/e/assets/images/split/image1141.o (.data); - build/e/assets/images/split/image1142.o (.data); - build/e/assets/images/split/image1143.o (.data); - build/e/assets/images/split/image1144.o (.data); - build/e/assets/images/split/image1145.o (.data); - build/e/assets/images/split/image1146.o (.data); - build/e/assets/images/split/image1147.o (.data); - build/e/assets/images/split/image1148.o (.data); - build/e/assets/images/split/image1149.o (.data); - build/e/assets/images/split/image1150.o (.data); - build/e/assets/images/split/image1151.o (.data); - build/e/assets/images/split/image1152.o (.data); - build/e/assets/images/split/image1153.o (.data); - build/e/assets/images/split/image1154.o (.data); - build/e/assets/images/split/image1155.o (.data); - build/e/assets/images/split/image1156.o (.data); - build/e/assets/images/split/image1157.o (.data); - build/e/assets/images/split/image1158.o (.data); - build/e/assets/images/split/image1159.o (.data); - build/e/assets/images/split/image1160.o (.data); - build/e/assets/images/split/image1161.o (.data); - build/e/assets/images/split/image1162.o (.data); - build/e/assets/images/split/image1163.o (.data); - build/e/assets/images/split/image1164.o (.data); - build/e/assets/images/split/image1165.o (.data); - build/e/assets/images/split/image1166.o (.data); - build/e/assets/images/split/image1167.o (.data); - build/e/assets/images/split/image1168.o (.data); - build/e/assets/images/split/image1169.o (.data); - build/e/assets/images/split/image1170.o (.data); - build/e/assets/images/split/image1171.o (.data); - build/e/assets/images/split/image1172.o (.data); - build/e/assets/images/split/image1173.o (.data); - build/e/assets/images/split/image1174.o (.data); - build/e/assets/images/split/image1175.o (.data); - build/e/assets/images/split/image1176.o (.data); - build/e/assets/images/split/image1177.o (.data); - build/e/assets/images/split/image1178.o (.data); - build/e/assets/images/split/image1179.o (.data); - build/e/assets/images/split/image1180.o (.data); - build/e/assets/images/split/image1181.o (.data); - build/e/assets/images/split/image1182.o (.data); - build/e/assets/images/split/image1183.o (.data); - build/e/assets/images/split/image1184.o (.data); - build/e/assets/images/split/image1185.o (.data); - build/e/assets/images/split/image1186.o (.data); - build/e/assets/images/split/image1187.o (.data); - build/e/assets/images/split/image1188.o (.data); - build/e/assets/images/split/image1189.o (.data); - build/e/assets/images/split/image1190.o (.data); - build/e/assets/images/split/image1191.o (.data); - build/e/assets/images/split/image1192.o (.data); - build/e/assets/images/split/image1193.o (.data); - build/e/assets/images/split/image1194.o (.data); - build/e/assets/images/split/image1195.o (.data); - build/e/assets/images/split/image1196.o (.data); - build/e/assets/images/split/image1197.o (.data); - build/e/assets/images/split/image1198.o (.data); - build/e/assets/images/split/image1199.o (.data); - build/e/assets/images/split/image1200.o (.data); - build/e/assets/images/split/image1201.o (.data); - build/e/assets/images/split/image1202.o (.data); - build/e/assets/images/split/image1203.o (.data); - build/e/assets/images/split/image1204.o (.data); - build/e/assets/images/split/image1205.o (.data); - build/e/assets/images/split/image1206.o (.data); - build/e/assets/images/split/image1207.o (.data); - build/e/assets/images/split/image1208.o (.data); - build/e/assets/images/split/image1209.o (.data); - build/e/assets/images/split/image1210.o (.data); - build/e/assets/images/split/image1211.o (.data); - build/e/assets/images/split/image1212.o (.data); - build/e/assets/images/split/image1213.o (.data); - build/e/assets/images/split/image1214.o (.data); - build/e/assets/images/split/image1215.o (.data); - build/e/assets/images/split/image1216.o (.data); - build/e/assets/images/split/image1217.o (.data); - build/e/assets/images/split/image1218.o (.data); - build/e/assets/images/split/image1219.o (.data); - build/e/assets/images/split/image1220.o (.data); - build/e/assets/images/split/image1221.o (.data); - build/e/assets/images/split/image1222.o (.data); - build/e/assets/images/split/image1223.o (.data); - build/e/assets/images/split/image1224.o (.data); - build/e/assets/images/split/image1225.o (.data); - build/e/assets/images/split/image1226.o (.data); - build/e/assets/images/split/image1227.o (.data); - build/e/assets/images/split/image1228.o (.data); - build/e/assets/images/split/image1229.o (.data); - build/e/assets/images/split/image1230.o (.data); - build/e/assets/images/split/image1231.o (.data); - build/e/assets/images/split/image1232.o (.data); - build/e/assets/images/split/image1233.o (.data); - build/e/assets/images/split/image1234.o (.data); - build/e/assets/images/split/image1235.o (.data); - build/e/assets/images/split/image1236.o (.data); - build/e/assets/images/split/image1237.o (.data); - build/e/assets/images/split/image1238.o (.data); - build/e/assets/images/split/image1239.o (.data); - build/e/assets/images/split/image1240.o (.data); - build/e/assets/images/split/image1241.o (.data); - build/e/assets/images/split/image1242.o (.data); - build/e/assets/images/split/image1243.o (.data); - build/e/assets/images/split/image1244.o (.data); - build/e/assets/images/split/image1245.o (.data); - build/e/assets/images/split/image1246.o (.data); - build/e/assets/images/split/image1247.o (.data); - build/e/assets/images/split/image1248.o (.data); - build/e/assets/images/split/image1249.o (.data); - build/e/assets/images/split/image1250.o (.data); - build/e/assets/images/split/image1251.o (.data); - build/e/assets/images/split/image1252.o (.data); - build/e/assets/images/split/image1253.o (.data); - build/e/assets/images/split/image1254.o (.data); - build/e/assets/images/split/image1255.o (.data); - build/e/assets/images/split/image1256.o (.data); - build/e/assets/images/split/image1257.o (.data); - build/e/assets/images/split/image1258.o (.data); - build/e/assets/images/split/image1259.o (.data); - build/e/assets/images/split/image1260.o (.data); - build/e/assets/images/split/image1261.o (.data); - build/e/assets/images/split/image1262.o (.data); - build/e/assets/images/split/image1263.o (.data); - build/e/assets/images/split/image1264.o (.data); - build/e/assets/images/split/image1265.o (.data); - build/e/assets/images/split/image1266.o (.data); - build/e/assets/images/split/image1267.o (.data); - build/e/assets/images/split/image1268.o (.data); - build/e/assets/images/split/image1269.o (.data); - build/e/assets/images/split/image1270.o (.data); - build/e/assets/images/split/image1271.o (.data); - build/e/assets/images/split/image1272.o (.data); - build/e/assets/images/split/image1273.o (.data); - build/e/assets/images/split/image1274.o (.data); - build/e/assets/images/split/image1275.o (.data); - build/e/assets/images/split/image1276.o (.data); - build/e/assets/images/split/image1277.o (.data); - build/e/assets/images/split/image1278.o (.data); - build/e/assets/images/split/image1279.o (.data); - build/e/assets/images/split/image1280.o (.data); - build/e/assets/images/split/image1281.o (.data); - build/e/assets/images/split/image1282.o (.data); - build/e/assets/images/split/image1283.o (.data); - build/e/assets/images/split/image1284.o (.data); - build/e/assets/images/split/image1285.o (.data); - build/e/assets/images/split/image1286.o (.data); - build/e/assets/images/split/image1287.o (.data); - build/e/assets/images/split/image1288.o (.data); - build/e/assets/images/split/image1289.o (.data); - build/e/assets/images/split/image1290.o (.data); - build/e/assets/images/split/image1291.o (.data); - build/e/assets/images/split/image1292.o (.data); - build/e/assets/images/split/image1293.o (.data); - build/e/assets/images/split/image1294.o (.data); - build/e/assets/images/split/image1295.o (.data); - build/e/assets/images/split/image1296.o (.data); - build/e/assets/images/split/image1297.o (.data); - build/e/assets/images/split/image1298.o (.data); - build/e/assets/images/split/image1299.o (.data); - build/e/assets/images/split/image1300.o (.data); - build/e/assets/images/split/image1301.o (.data); - build/e/assets/images/split/image1302.o (.data); - build/e/assets/images/split/image1303.o (.data); - build/e/assets/images/split/image1304.o (.data); - build/e/assets/images/split/image1305.o (.data); - build/e/assets/images/split/image1306.o (.data); - build/e/assets/images/split/image1307.o (.data); - build/e/assets/images/split/image1308.o (.data); - build/e/assets/images/split/image1309.o (.data); - build/e/assets/images/split/image1310.o (.data); - build/e/assets/images/split/image1311.o (.data); - build/e/assets/images/split/image1312.o (.data); - build/e/assets/images/split/image1313.o (.data); - build/e/assets/images/split/image1314.o (.data); - build/e/assets/images/split/image1315.o (.data); - build/e/assets/images/split/image1316.o (.data); - build/e/assets/images/split/image1317.o (.data); - build/e/assets/images/split/image1318.o (.data); - build/e/assets/images/split/image1319.o (.data); - build/e/assets/images/split/image1320.o (.data); - build/e/assets/images/split/image1321.o (.data); - build/e/assets/images/split/image1322.o (.data); - build/e/assets/images/split/image1323.o (.data); - build/e/assets/images/split/image1324.o (.data); - build/e/assets/images/split/image1325.o (.data); - build/e/assets/images/split/image1326.o (.data); - build/e/assets/images/split/image1327.o (.data); - build/e/assets/images/split/image1328.o (.data); - build/e/assets/images/split/image1329.o (.data); - build/e/assets/images/split/image1330.o (.data); - build/e/assets/images/split/image1331.o (.data); - build/e/assets/images/split/image1332.o (.data); - build/e/assets/images/split/image1333.o (.data); - build/e/assets/images/split/image1334.o (.data); - build/e/assets/images/split/image1335.o (.data); - build/e/assets/images/split/image1336.o (.data); - build/e/assets/images/split/image1337.o (.data); - build/e/assets/images/split/image1338.o (.data); - build/e/assets/images/split/image1339.o (.data); - build/e/assets/images/split/image1340.o (.data); - build/e/assets/images/split/image1341.o (.data); - build/e/assets/images/split/image1342.o (.data); - build/e/assets/images/split/image1343.o (.data); - build/e/assets/images/split/image1344.o (.data); - build/e/assets/images/split/image1345.o (.data); - build/e/assets/images/split/image1346.o (.data); - build/e/assets/images/split/image1347.o (.data); - build/e/assets/images/split/image1348.o (.data); - build/e/assets/images/split/image1349.o (.data); - build/e/assets/images/split/image1350.o (.data); - build/e/assets/images/split/image1351.o (.data); - build/e/assets/images/split/image1352.o (.data); - build/e/assets/images/split/image1353.o (.data); - build/e/assets/images/split/image1354.o (.data); - build/e/assets/images/split/image1355.o (.data); - build/e/assets/images/split/image1356.o (.data); - build/e/assets/images/split/image1357.o (.data); - build/e/assets/images/split/image1358.o (.data); - build/e/assets/images/split/image1359.o (.data); - build/e/assets/images/split/image1360.o (.data); - build/e/assets/images/split/image1361.o (.data); - build/e/assets/images/split/image1362.o (.data); - build/e/assets/images/split/image1363.o (.data); - build/e/assets/images/split/image1364.o (.data); - build/e/assets/images/split/image1365.o (.data); - build/e/assets/images/split/image1366.o (.data); - build/e/assets/images/split/image1367.o (.data); - build/e/assets/images/split/image1368.o (.data); - build/e/assets/images/split/image1369.o (.data); - build/e/assets/images/split/image1370.o (.data); - build/e/assets/images/split/image1371.o (.data); - build/e/assets/images/split/image1372.o (.data); - build/e/assets/images/split/image1373.o (.data); - build/e/assets/images/split/image1374.o (.data); - build/e/assets/images/split/image1375.o (.data); - build/e/assets/images/split/image1376.o (.data); - build/e/assets/images/split/image1377.o (.data); - build/e/assets/images/split/image1378.o (.data); - build/e/assets/images/split/image1379.o (.data); - build/e/assets/images/split/image1380.o (.data); - build/e/assets/images/split/image1381.o (.data); - build/e/assets/images/split/image1382.o (.data); - build/e/assets/images/split/image1383.o (.data); - build/e/assets/images/split/image1384.o (.data); - build/e/assets/images/split/image1385.o (.data); - build/e/assets/images/split/image1386.o (.data); - build/e/assets/images/split/image1387.o (.data); - build/e/assets/images/split/image1388.o (.data); - build/e/assets/images/split/image1389.o (.data); - build/e/assets/images/split/image1390.o (.data); - build/e/assets/images/split/image1391.o (.data); - build/e/assets/images/split/image1392.o (.data); - build/e/assets/images/split/image1393.o (.data); - build/e/assets/images/split/image1394.o (.data); - build/e/assets/images/split/image1395.o (.data); - build/e/assets/images/split/image1396.o (.data); - build/e/assets/images/split/image1397.o (.data); - build/e/assets/images/split/image1398.o (.data); - build/e/assets/images/split/image1399.o (.data); - build/e/assets/images/split/image1400.o (.data); - build/e/assets/images/split/image1401.o (.data); - build/e/assets/images/split/image1402.o (.data); - build/e/assets/images/split/image1403.o (.data); - build/e/assets/images/split/image1404.o (.data); - build/e/assets/images/split/image1405.o (.data); - build/e/assets/images/split/image1406.o (.data); - build/e/assets/images/split/image1407.o (.data); - build/e/assets/images/split/image1408.o (.data); - build/e/assets/images/split/image1409.o (.data); - build/e/assets/images/split/image1410.o (.data); - build/e/assets/images/split/image1411.o (.data); - build/e/assets/images/split/image1412.o (.data); - build/e/assets/images/split/image1413.o (.data); - build/e/assets/images/split/image1414.o (.data); - build/e/assets/images/split/image1415.o (.data); - build/e/assets/images/split/image1416.o (.data); - build/e/assets/images/split/image1417.o (.data); - build/e/assets/images/split/image1418.o (.data); - build/e/assets/images/split/image1419.o (.data); - build/e/assets/images/split/image1420.o (.data); - build/e/assets/images/split/image1421.o (.data); - build/e/assets/images/split/image1422.o (.data); - build/e/assets/images/split/image1423.o (.data); - build/e/assets/images/split/image1424.o (.data); - build/e/assets/images/split/image1425.o (.data); - build/e/assets/images/split/image1426.o (.data); - build/e/assets/images/split/image1427.o (.data); - build/e/assets/images/split/image1428.o (.data); - build/e/assets/images/split/image1429.o (.data); - build/e/assets/images/split/image1430.o (.data); - build/e/assets/images/split/image1431.o (.data); - build/e/assets/images/split/image1432.o (.data); - build/e/assets/images/split/image1433.o (.data); - build/e/assets/images/split/image1434.o (.data); - build/e/assets/images/split/image1435.o (.data); - build/e/assets/images/split/image1436.o (.data); - build/e/assets/images/split/image1437.o (.data); - build/e/assets/images/split/image1438.o (.data); - build/e/assets/images/split/image1439.o (.data); - build/e/assets/images/split/image1440.o (.data); - build/e/assets/images/split/image1441.o (.data); - build/e/assets/images/split/image1442.o (.data); - build/e/assets/images/split/image1443.o (.data); - build/e/assets/images/split/image1444.o (.data); - build/e/assets/images/split/image1445.o (.data); - build/e/assets/images/split/image1446.o (.data); - build/e/assets/images/split/image1447.o (.data); - build/e/assets/images/split/image1448.o (.data); - build/e/assets/images/split/image1449.o (.data); - build/e/assets/images/split/image1450.o (.data); - build/e/assets/images/split/image1451.o (.data); - build/e/assets/images/split/image1452.o (.data); - build/e/assets/images/split/image1453.o (.data); - build/e/assets/images/split/image1454.o (.data); - build/e/assets/images/split/image1455.o (.data); - build/e/assets/images/split/image1456.o (.data); - build/e/assets/images/split/image1457.o (.data); - build/e/assets/images/split/image1458.o (.data); - build/e/assets/images/split/image1459.o (.data); - build/e/assets/images/split/image1460.o (.data); - build/e/assets/images/split/image1461.o (.data); - build/e/assets/images/split/image1462.o (.data); - build/e/assets/images/split/image1463.o (.data); - build/e/assets/images/split/image1464.o (.data); - build/e/assets/images/split/image1465.o (.data); - build/e/assets/images/split/image1466.o (.data); - build/e/assets/images/split/image1467.o (.data); - build/e/assets/images/split/image1468.o (.data); - build/e/assets/images/split/image1469.o (.data); - build/e/assets/images/split/image1470.o (.data); - build/e/assets/images/split/image1471.o (.data); - build/e/assets/images/split/image1472.o (.data); - build/e/assets/images/split/image1473.o (.data); - build/e/assets/images/split/image1474.o (.data); - build/e/assets/images/split/image1475.o (.data); - build/e/assets/images/split/image1476.o (.data); - build/e/assets/images/split/image1477.o (.data); - build/e/assets/images/split/image1478.o (.data); - build/e/assets/images/split/image1479.o (.data); - build/e/assets/images/split/image1480.o (.data); - build/e/assets/images/split/image1481.o (.data); - build/e/assets/images/split/image1482.o (.data); - build/e/assets/images/split/image1483.o (.data); - build/e/assets/images/split/image1484.o (.data); - build/e/assets/images/split/image1485.o (.data); - build/e/assets/images/split/image1486.o (.data); - build/e/assets/images/split/image1487.o (.data); - build/e/assets/images/split/image1488.o (.data); - build/e/assets/images/split/image1489.o (.data); - build/e/assets/images/split/image1490.o (.data); - build/e/assets/images/split/image1491.o (.data); - build/e/assets/images/split/image1492.o (.data); - build/e/assets/images/split/image1493.o (.data); - build/e/assets/images/split/image1494.o (.data); - build/e/assets/images/split/image1495.o (.data); - build/e/assets/images/split/image1496.o (.data); - build/e/assets/images/split/image1497.o (.data); - build/e/assets/images/split/image1498.o (.data); - build/e/assets/images/split/image1499.o (.data); - build/e/assets/images/split/image1500.o (.data); - build/e/assets/images/split/image1501.o (.data); - build/e/assets/images/split/image1502.o (.data); - build/e/assets/images/split/image1503.o (.data); - build/e/assets/images/split/image1504.o (.data); - build/e/assets/images/split/image1505.o (.data); - build/e/assets/images/split/image1506.o (.data); - build/e/assets/images/split/image1507.o (.data); - build/e/assets/images/split/image1508.o (.data); - build/e/assets/images/split/image1509.o (.data); - build/e/assets/images/split/image1510.o (.data); - build/e/assets/images/split/image1511.o (.data); - build/e/assets/images/split/image1512.o (.data); - build/e/assets/images/split/image1513.o (.data); - build/e/assets/images/split/image1514.o (.data); - build/e/assets/images/split/image1515.o (.data); - build/e/assets/images/split/image1516.o (.data); - build/e/assets/images/split/image1517.o (.data); - build/e/assets/images/split/image1518.o (.data); - build/e/assets/images/split/image1519.o (.data); - build/e/assets/images/split/image1520.o (.data); - build/e/assets/images/split/image1521.o (.data); - build/e/assets/images/split/image1522.o (.data); - build/e/assets/images/split/image1523.o (.data); - build/e/assets/images/split/image1524.o (.data); - build/e/assets/images/split/image1525.o (.data); - build/e/assets/images/split/image1526.o (.data); - build/e/assets/images/split/image1527.o (.data); - build/e/assets/images/split/image1528.o (.data); - build/e/assets/images/split/image1529.o (.data); - build/e/assets/images/split/image1530.o (.data); - build/e/assets/images/split/image1531.o (.data); - build/e/assets/images/split/image1532.o (.data); - build/e/assets/images/split/image1533.o (.data); - build/e/assets/images/split/image1534.o (.data); - build/e/assets/images/split/image1535.o (.data); - build/e/assets/images/split/image1536.o (.data); - build/e/assets/images/split/image1537.o (.data); - build/e/assets/images/split/image1538.o (.data); - build/e/assets/images/split/image1539.o (.data); - build/e/assets/images/split/image1540.o (.data); - build/e/assets/images/split/image1541.o (.data); - build/e/assets/images/split/image1542.o (.data); - build/e/assets/images/split/image1543.o (.data); - build/e/assets/images/split/image1544.o (.data); - build/e/assets/images/split/image1545.o (.data); - build/e/assets/images/split/image1546.o (.data); - build/e/assets/images/split/image1547.o (.data); - build/e/assets/images/split/image1548.o (.data); - build/e/assets/images/split/image1549.o (.data); - build/e/assets/images/split/image1550.o (.data); - build/e/assets/images/split/image1551.o (.data); - build/e/assets/images/split/image1552.o (.data); - build/e/assets/images/split/image1553.o (.data); - build/e/assets/images/split/image1554.o (.data); - build/e/assets/images/split/image1555.o (.data); - build/e/assets/images/split/image1556.o (.data); - build/e/assets/images/split/image1557.o (.data); - build/e/assets/images/split/image1558.o (.data); - build/e/assets/images/split/image1559.o (.data); - build/e/assets/images/split/image1560.o (.data); - build/e/assets/images/split/image1561.o (.data); - build/e/assets/images/split/image1562.o (.data); - build/e/assets/images/split/image1563.o (.data); - build/e/assets/images/split/image1564.o (.data); - build/e/assets/images/split/image1565.o (.data); - build/e/assets/images/split/image1566.o (.data); - build/e/assets/images/split/image1567.o (.data); - build/e/assets/images/split/image1568.o (.data); - build/e/assets/images/split/image1569.o (.data); - build/e/assets/images/split/image1570.o (.data); - build/e/assets/images/split/image1571.o (.data); - build/e/assets/images/split/image1572.o (.data); - build/e/assets/images/split/image1573.o (.data); - build/e/assets/images/split/image1574.o (.data); - build/e/assets/images/split/image1575.o (.data); - build/e/assets/images/split/image1576.o (.data); - build/e/assets/images/split/image1577.o (.data); - build/e/assets/images/split/image1578.o (.data); - build/e/assets/images/split/image1579.o (.data); - build/e/assets/images/split/image1580.o (.data); - build/e/assets/images/split/image1581.o (.data); - build/e/assets/images/split/image1582.o (.data); - build/e/assets/images/split/image1583.o (.data); - build/e/assets/images/split/image1584.o (.data); - build/e/assets/images/split/image1585.o (.data); - build/e/assets/images/split/image1586.o (.data); - build/e/assets/images/split/image1587.o (.data); - build/e/assets/images/split/image1588.o (.data); - build/e/assets/images/split/image1589.o (.data); - build/e/assets/images/split/image1590.o (.data); - build/e/assets/images/split/image1591.o (.data); - build/e/assets/images/split/image1592.o (.data); - build/e/assets/images/split/image1593.o (.data); - build/e/assets/images/split/image1594.o (.data); - build/e/assets/images/split/image1595.o (.data); - build/e/assets/images/split/image1596.o (.data); - build/e/assets/images/split/image1597.o (.data); - build/e/assets/images/split/image1598.o (.data); - build/e/assets/images/split/image1599.o (.data); - build/e/assets/images/split/image1600.o (.data); - build/e/assets/images/split/image1601.o (.data); - build/e/assets/images/split/image1602.o (.data); - build/e/assets/images/split/image1603.o (.data); - build/e/assets/images/split/image1604.o (.data); - build/e/assets/images/split/image1605.o (.data); - build/e/assets/images/split/image1606.o (.data); - build/e/assets/images/split/image1607.o (.data); - build/e/assets/images/split/image1608.o (.data); - build/e/assets/images/split/image1609.o (.data); - build/e/assets/images/split/image1610.o (.data); - build/e/assets/images/split/image1611.o (.data); - build/e/assets/images/split/image1612.o (.data); - build/e/assets/images/split/image1613.o (.data); - build/e/assets/images/split/image1614.o (.data); - build/e/assets/images/split/image1615.o (.data); - build/e/assets/images/split/image1616.o (.data); - build/e/assets/images/split/image1617.o (.data); - build/e/assets/images/split/image1618.o (.data); - build/e/assets/images/split/image1619.o (.data); - build/e/assets/images/split/image1620.o (.data); - build/e/assets/images/split/image1621.o (.data); - build/e/assets/images/split/image1622.o (.data); - build/e/assets/images/split/image1623.o (.data); - build/e/assets/images/split/image1624.o (.data); - build/e/assets/images/split/image1625.o (.data); - build/e/assets/images/split/image1626.o (.data); - build/e/assets/images/split/image1627.o (.data); - build/e/assets/images/split/image1628.o (.data); - build/e/assets/images/split/image1629.o (.data); - build/e/assets/images/split/image1630.o (.data); - build/e/assets/images/split/image1631.o (.data); - build/e/assets/images/split/image1632.o (.data); - build/e/assets/images/split/image1633.o (.data); - build/e/assets/images/split/image1634.o (.data); - build/e/assets/images/split/image1635.o (.data); - build/e/assets/images/split/image1636.o (.data); - build/e/assets/images/split/image1637.o (.data); - build/e/assets/images/split/image1638.o (.data); - build/e/assets/images/split/image1639.o (.data); - build/e/assets/images/split/image1640.o (.data); - build/e/assets/images/split/image1641.o (.data); - build/e/assets/images/split/image1642.o (.data); - build/e/assets/images/split/image1643.o (.data); - build/e/assets/images/split/image1644.o (.data); - build/e/assets/images/split/image1645.o (.data); - build/e/assets/images/split/image1646.o (.data); - build/e/assets/images/split/image1647.o (.data); - build/e/assets/images/split/image1648.o (.data); - build/e/assets/images/split/image1649.o (.data); - build/e/assets/images/split/image1650.o (.data); - build/e/assets/images/split/image1651.o (.data); - build/e/assets/images/split/image1652.o (.data); - build/e/assets/images/split/image1653.o (.data); - build/e/assets/images/split/image1654.o (.data); - build/e/assets/images/split/image1655.o (.data); - build/e/assets/images/split/image1656.o (.data); - build/e/assets/images/split/image1657.o (.data); - build/e/assets/images/split/image1658.o (.data); - build/e/assets/images/split/image1659.o (.data); - build/e/assets/images/split/image1660.o (.data); - build/e/assets/images/split/image1661.o (.data); - build/e/assets/images/split/image1662.o (.data); - build/e/assets/images/split/image1663.o (.data); - build/e/assets/images/split/image1664.o (.data); - build/e/assets/images/split/image1665.o (.data); - build/e/assets/images/split/image1666.o (.data); - build/e/assets/images/split/image1667.o (.data); - build/e/assets/images/split/image1668.o (.data); - build/e/assets/images/split/image1669.o (.data); - build/e/assets/images/split/image1670.o (.data); - build/e/assets/images/split/image1671.o (.data); - build/e/assets/images/split/image1672.o (.data); - build/e/assets/images/split/image1673.o (.data); - build/e/assets/images/split/image1674.o (.data); - build/e/assets/images/split/image1675.o (.data); - build/e/assets/images/split/image1676.o (.data); - build/e/assets/images/split/image1677.o (.data); - build/e/assets/images/split/image1678.o (.data); - build/e/assets/images/split/image1679.o (.data); - build/e/assets/images/split/image1680.o (.data); - build/e/assets/images/split/image1681.o (.data); - build/e/assets/images/split/image1682.o (.data); - build/e/assets/images/split/image1683.o (.data); - build/e/assets/images/split/image1684.o (.data); - build/e/assets/images/split/image1685.o (.data); - build/e/assets/images/split/image1686.o (.data); - build/e/assets/images/split/image1687.o (.data); - build/e/assets/images/split/image1688.o (.data); - build/e/assets/images/split/image1689.o (.data); - build/e/assets/images/split/image1690.o (.data); - build/e/assets/images/split/image1691.o (.data); - build/e/assets/images/split/image1692.o (.data); - build/e/assets/images/split/image1693.o (.data); - build/e/assets/images/split/image1694.o (.data); - build/e/assets/images/split/image1695.o (.data); - build/e/assets/images/split/image1696.o (.data); - build/e/assets/images/split/image1697.o (.data); - build/e/assets/images/split/image1698.o (.data); - build/e/assets/images/split/image1699.o (.data); - build/e/assets/images/split/image1700.o (.data); - build/e/assets/images/split/image1701.o (.data); - build/e/assets/images/split/image1702.o (.data); - build/e/assets/images/split/image1703.o (.data); - build/e/assets/images/split/image1704.o (.data); - build/e/assets/images/split/image1705.o (.data); - build/e/assets/images/split/image1706.o (.data); - build/e/assets/images/split/image1707.o (.data); - build/e/assets/images/split/image1708.o (.data); - build/e/assets/images/split/image1709.o (.data); - build/e/assets/images/split/image1710.o (.data); - build/e/assets/images/split/image1711.o (.data); - build/e/assets/images/split/image1712.o (.data); - build/e/assets/images/split/image1713.o (.data); - build/e/assets/images/split/image1714.o (.data); - build/e/assets/images/split/image1715.o (.data); - build/e/assets/images/split/image1716.o (.data); - build/e/assets/images/split/image1717.o (.data); - build/e/assets/images/split/image1718.o (.data); - build/e/assets/images/split/image1719.o (.data); - build/e/assets/images/split/image1720.o (.data); - build/e/assets/images/split/image1721.o (.data); - build/e/assets/images/split/image1722.o (.data); - build/e/assets/images/split/image1723.o (.data); - build/e/assets/images/split/image1724.o (.data); - build/e/assets/images/split/image1725.o (.data); - build/e/assets/images/split/image1726.o (.data); - build/e/assets/images/split/image1727.o (.data); - build/e/assets/images/split/image1728.o (.data); - build/e/assets/images/split/image1729.o (.data); - build/e/assets/images/split/image1730.o (.data); - build/e/assets/images/split/image1731.o (.data); - build/e/assets/images/split/image1732.o (.data); - build/e/assets/images/split/image1733.o (.data); - build/e/assets/images/split/image1734.o (.data); - build/e/assets/images/split/image1735.o (.data); - build/e/assets/images/split/image1736.o (.data); - build/e/assets/images/split/image1737.o (.data); - build/e/assets/images/split/image1738.o (.data); - build/e/assets/images/split/image1739.o (.data); - build/e/assets/images/split/image1740.o (.data); - build/e/assets/images/split/image1741.o (.data); - build/e/assets/images/split/image1742.o (.data); - build/e/assets/images/split/image1743.o (.data); - build/e/assets/images/split/image1744.o (.data); - build/e/assets/images/split/image1745.o (.data); - build/e/assets/images/split/image1746.o (.data); - build/e/assets/images/split/image1747.o (.data); - build/e/assets/images/split/image1748.o (.data); - build/e/assets/images/split/image1749.o (.data); - build/e/assets/images/split/image1750.o (.data); - build/e/assets/images/split/image1751.o (.data); - build/e/assets/images/split/image1752.o (.data); - build/e/assets/images/split/image1753.o (.data); - build/e/assets/images/split/image1754.o (.data); - build/e/assets/images/split/image1755.o (.data); - build/e/assets/images/split/image1756.o (.data); - build/e/assets/images/split/image1757.o (.data); - build/e/assets/images/split/image1758.o (.data); - build/e/assets/images/split/image1759.o (.data); - build/e/assets/images/split/image1760.o (.data); - build/e/assets/images/split/image1761.o (.data); - build/e/assets/images/split/image1762.o (.data); - build/e/assets/images/split/image1763.o (.data); - build/e/assets/images/split/image1764.o (.data); - build/e/assets/images/split/image1765.o (.data); - build/e/assets/images/split/image1766.o (.data); - build/e/assets/images/split/image1767.o (.data); - build/e/assets/images/split/image1768.o (.data); - build/e/assets/images/split/image1769.o (.data); - build/e/assets/images/split/image1770.o (.data); - build/e/assets/images/split/image1771.o (.data); - build/e/assets/images/split/image1772.o (.data); - build/e/assets/images/split/image1773.o (.data); - build/e/assets/images/split/image1774.o (.data); - build/e/assets/images/split/image1775.o (.data); - build/e/assets/images/split/image1776.o (.data); - build/e/assets/images/split/image1777.o (.data); - build/e/assets/images/split/image1778.o (.data); - build/e/assets/images/split/image1779.o (.data); - build/e/assets/images/split/image1780.o (.data); - build/e/assets/images/split/image1781.o (.data); - build/e/assets/images/split/image1782.o (.data); - build/e/assets/images/split/image1783.o (.data); - build/e/assets/images/split/image1784.o (.data); - build/e/assets/images/split/image1785.o (.data); - build/e/assets/images/split/image1786.o (.data); - build/e/assets/images/split/image1787.o (.data); - build/e/assets/images/split/image1788.o (.data); - build/e/assets/images/split/image1789.o (.data); - build/e/assets/images/split/image1790.o (.data); - build/e/assets/images/split/image1791.o (.data); - build/e/assets/images/split/image1792.o (.data); - build/e/assets/images/split/image1793.o (.data); - build/e/assets/images/split/image1794.o (.data); - build/e/assets/images/split/image1795.o (.data); - build/e/assets/images/split/image1796.o (.data); - build/e/assets/images/split/image1797.o (.data); - build/e/assets/images/split/image1798.o (.data); - build/e/assets/images/split/image1799.o (.data); - build/e/assets/images/split/image1800.o (.data); - build/e/assets/images/split/image1801.o (.data); - build/e/assets/images/split/image1802.o (.data); - build/e/assets/images/split/image1803.o (.data); - build/e/assets/images/split/image1804.o (.data); - build/e/assets/images/split/image1805.o (.data); - build/e/assets/images/split/image1806.o (.data); - build/e/assets/images/split/image1807.o (.data); - build/e/assets/images/split/image1808.o (.data); - build/e/assets/images/split/image1809.o (.data); - build/e/assets/images/split/image1810.o (.data); - build/e/assets/images/split/image1811.o (.data); - build/e/assets/images/split/image1812.o (.data); - build/e/assets/images/split/image1813.o (.data); - build/e/assets/images/split/image1814.o (.data); - build/e/assets/images/split/image1815.o (.data); - build/e/assets/images/split/image1816.o (.data); - build/e/assets/images/split/image1817.o (.data); - build/e/assets/images/split/image1818.o (.data); - build/e/assets/images/split/image1819.o (.data); - build/e/assets/images/split/image1820.o (.data); - build/e/assets/images/split/image1821.o (.data); - build/e/assets/images/split/image1822.o (.data); - build/e/assets/images/split/image1823.o (.data); - build/e/assets/images/split/image1824.o (.data); - build/e/assets/images/split/image1825.o (.data); - build/e/assets/images/split/image1826.o (.data); - build/e/assets/images/split/image1827.o (.data); - build/e/assets/images/split/image1828.o (.data); - build/e/assets/images/split/image1829.o (.data); - build/e/assets/images/split/image1830.o (.data); - build/e/assets/images/split/image1831.o (.data); - build/e/assets/images/split/image1832.o (.data); - build/e/assets/images/split/image1833.o (.data); - build/e/assets/images/split/image1834.o (.data); - build/e/assets/images/split/image1835.o (.data); - build/e/assets/images/split/image1836.o (.data); - build/e/assets/images/split/image1837.o (.data); - build/e/assets/images/split/image1838.o (.data); - build/e/assets/images/split/image1839.o (.data); - build/e/assets/images/split/image1840.o (.data); - build/e/assets/images/split/image1841.o (.data); - build/e/assets/images/split/image1842.o (.data); - build/e/assets/images/split/image1843.o (.data); - build/e/assets/images/split/image1844.o (.data); - build/e/assets/images/split/image1845.o (.data); - build/e/assets/images/split/image1846.o (.data); - build/e/assets/images/split/image1847.o (.data); - build/e/assets/images/split/image1848.o (.data); - build/e/assets/images/split/image1849.o (.data); - build/e/assets/images/split/image1850.o (.data); - build/e/assets/images/split/image1851.o (.data); - build/e/assets/images/split/image1852.o (.data); - build/e/assets/images/split/image1853.o (.data); - build/e/assets/images/split/image1854.o (.data); - build/e/assets/images/split/image1855.o (.data); - build/e/assets/images/split/image1856.o (.data); - build/e/assets/images/split/image1857.o (.data); - build/e/assets/images/split/image1858.o (.data); - build/e/assets/images/split/image1859.o (.data); - build/e/assets/images/split/image1860.o (.data); - build/e/assets/images/split/image1861.o (.data); - build/e/assets/images/split/image1862.o (.data); - build/e/assets/images/split/image1863.o (.data); - build/e/assets/images/split/image1864.o (.data); - build/e/assets/images/split/image1865.o (.data); - build/e/assets/images/split/image1866.o (.data); - build/e/assets/images/split/image1867.o (.data); - build/e/assets/images/split/image1868.o (.data); - build/e/assets/images/split/image1869.o (.data); - build/e/assets/images/split/image1870.o (.data); - build/e/assets/images/split/image1871.o (.data); - build/e/assets/images/split/image1872.o (.data); - build/e/assets/images/split/image1873.o (.data); - build/e/assets/images/split/image1874.o (.data); - build/e/assets/images/split/image1875.o (.data); - build/e/assets/images/split/image1876.o (.data); - build/e/assets/images/split/image1877.o (.data); - build/e/assets/images/split/image1878.o (.data); - build/e/assets/images/split/image1879.o (.data); - build/e/assets/images/split/image1880.o (.data); - build/e/assets/images/split/image1881.o (.data); - build/e/assets/images/split/image1882.o (.data); - build/e/assets/images/split/image1883.o (.data); - build/e/assets/images/split/image1884.o (.data); - build/e/assets/images/split/image1885.o (.data); - build/e/assets/images/split/image1886.o (.data); - build/e/assets/images/split/image1887.o (.data); - build/e/assets/images/split/image1888.o (.data); - build/e/assets/images/split/image1889.o (.data); - build/e/assets/images/split/image1890.o (.data); - build/e/assets/images/split/image1891.o (.data); - build/e/assets/images/split/image1892.o (.data); - build/e/assets/images/split/image1893.o (.data); - build/e/assets/images/split/image1894.o (.data); - build/e/assets/images/split/image1895.o (.data); - build/e/assets/images/split/image1896.o (.data); - build/e/assets/images/split/image1897.o (.data); - build/e/assets/images/split/image1898.o (.data); - build/e/assets/images/split/image1899.o (.data); - build/e/assets/images/split/image1900.o (.data); - build/e/assets/images/split/image1901.o (.data); - build/e/assets/images/split/image1902.o (.data); - build/e/assets/images/split/image1903.o (.data); - build/e/assets/images/split/image1904.o (.data); - build/e/assets/images/split/image1905.o (.data); - build/e/assets/images/split/image1906.o (.data); - build/e/assets/images/split/image1907.o (.data); - build/e/assets/images/split/image1908.o (.data); - build/e/assets/images/split/image1909.o (.data); - build/e/assets/images/split/image1910.o (.data); - build/e/assets/images/split/image1911.o (.data); - build/e/assets/images/split/image1912.o (.data); - build/e/assets/images/split/image1913.o (.data); - build/e/assets/images/split/image1914.o (.data); - build/e/assets/images/split/image1915.o (.data); - build/e/assets/images/split/image1916.o (.data); - build/e/assets/images/split/image1917.o (.data); - build/e/assets/images/split/image1918.o (.data); - build/e/assets/images/split/image1919.o (.data); - build/e/assets/images/split/image1920.o (.data); - build/e/assets/images/split/image1921.o (.data); - build/e/assets/images/split/image1922.o (.data); - build/e/assets/images/split/image1923.o (.data); - build/e/assets/images/split/image1924.o (.data); - build/e/assets/images/split/image1925.o (.data); - build/e/assets/images/split/image1926.o (.data); - build/e/assets/images/split/image1927.o (.data); - build/e/assets/images/split/image1928.o (.data); - build/e/assets/images/split/image1929.o (.data); - build/e/assets/images/split/image1930.o (.data); - build/e/assets/images/split/image1931.o (.data); - build/e/assets/images/split/image1932.o (.data); - build/e/assets/images/split/image1933.o (.data); - build/e/assets/images/split/image1934.o (.data); - build/e/assets/images/split/image1935.o (.data); - build/e/assets/images/split/image1936.o (.data); - build/e/assets/images/split/image1937.o (.data); - build/e/assets/images/split/image1938.o (.data); - build/e/assets/images/split/image1939.o (.data); - build/e/assets/images/split/image1940.o (.data); - build/e/assets/images/split/image1941.o (.data); - build/e/assets/images/split/image1942.o (.data); - build/e/assets/images/split/image1943.o (.data); - build/e/assets/images/split/image1944.o (.data); - build/e/assets/images/split/image1945.o (.data); - build/e/assets/images/split/image1946.o (.data); - build/e/assets/images/split/image1947.o (.data); - build/e/assets/images/split/image1948.o (.data); - build/e/assets/images/split/image1949.o (.data); - build/e/assets/images/split/image1950.o (.data); - build/e/assets/images/split/image1951.o (.data); - build/e/assets/images/split/image1952.o (.data); - build/e/assets/images/split/image1953.o (.data); - build/e/assets/images/split/image1954.o (.data); - build/e/assets/images/split/image1955.o (.data); - build/e/assets/images/split/image1956.o (.data); - build/e/assets/images/split/image1957.o (.data); - build/e/assets/images/split/image1958.o (.data); - build/e/assets/images/split/image1959.o (.data); - build/e/assets/images/split/image1960.o (.data); - build/e/assets/images/split/image1961.o (.data); - build/e/assets/images/split/image1962.o (.data); - build/e/assets/images/split/image1963.o (.data); - build/e/assets/images/split/image1964.o (.data); - build/e/assets/images/split/image1965.o (.data); - build/e/assets/images/split/image1966.o (.data); - build/e/assets/images/split/image1967.o (.data); - build/e/assets/images/split/image1968.o (.data); - build/e/assets/images/split/image1969.o (.data); - build/e/assets/images/split/image1970.o (.data); - build/e/assets/images/split/image1971.o (.data); - build/e/assets/images/split/image1972.o (.data); - build/e/assets/images/split/image1973.o (.data); - build/e/assets/images/split/image1974.o (.data); - build/e/assets/images/split/image1975.o (.data); - build/e/assets/images/split/image1976.o (.data); - build/e/assets/images/split/image1977.o (.data); - build/e/assets/images/split/image1978.o (.data); - build/e/assets/images/split/image1979.o (.data); - build/e/assets/images/split/image1980.o (.data); - build/e/assets/images/split/image1981.o (.data); - build/e/assets/images/split/image1982.o (.data); - build/e/assets/images/split/image1983.o (.data); - build/e/assets/images/split/image1984.o (.data); - build/e/assets/images/split/image1985.o (.data); - build/e/assets/images/split/image1986.o (.data); - build/e/assets/images/split/image1987.o (.data); - build/e/assets/images/split/image1988.o (.data); - build/e/assets/images/split/image1989.o (.data); - build/e/assets/images/split/image1990.o (.data); - build/e/assets/images/split/image1991.o (.data); - build/e/assets/images/split/image1992.o (.data); - build/e/assets/images/split/image1993.o (.data); - build/e/assets/images/split/image1994.o (.data); - build/e/assets/images/split/image1995.o (.data); - build/e/assets/images/split/image1996.o (.data); - build/e/assets/images/split/image1997.o (.data); - build/e/assets/images/split/image1998.o (.data); - build/e/assets/images/split/image1999.o (.data); - build/e/assets/images/split/image2000.o (.data); - build/e/assets/images/split/image2001.o (.data); - build/e/assets/images/split/image2002.o (.data); - build/e/assets/images/split/image2003.o (.data); - build/e/assets/images/split/image2004.o (.data); - build/e/assets/images/split/image2005.o (.data); - build/e/assets/images/split/image2006.o (.data); - build/e/assets/images/split/image2007.o (.data); - build/e/assets/images/split/image2008.o (.data); - build/e/assets/images/split/image2009.o (.data); - build/e/assets/images/split/image2010.o (.data); - build/e/assets/images/split/image2011.o (.data); - build/e/assets/images/split/image2012.o (.data); - build/e/assets/images/split/image2013.o (.data); - build/e/assets/images/split/image2014.o (.data); - build/e/assets/images/split/image2015.o (.data); - build/e/assets/images/split/image2016.o (.data); - build/e/assets/images/split/image2017.o (.data); - build/e/assets/images/split/image2018.o (.data); - build/e/assets/images/split/image2019.o (.data); - build/e/assets/images/split/image2020.o (.data); - build/e/assets/images/split/image2021.o (.data); - build/e/assets/images/split/image2022.o (.data); - build/e/assets/images/split/image2023.o (.data); - build/e/assets/images/split/image2024.o (.data); - build/e/assets/images/split/image2025.o (.data); - build/e/assets/images/split/image2026.o (.data); - build/e/assets/images/split/image2027.o (.data); - build/e/assets/images/split/image2028.o (.data); - build/e/assets/images/split/image2029.o (.data); - build/e/assets/images/split/image2030.o (.data); - build/e/assets/images/split/image2031.o (.data); - build/e/assets/images/split/image2032.o (.data); - build/e/assets/images/split/image2033.o (.data); - build/e/assets/images/split/image2034.o (.data); - build/e/assets/images/split/image2035.o (.data); - build/e/assets/images/split/image2036.o (.data); - build/e/assets/images/split/image2037.o (.data); - build/e/assets/images/split/image2038.o (.data); - build/e/assets/images/split/image2039.o (.data); - build/e/assets/images/split/image2040.o (.data); - build/e/assets/images/split/image2041.o (.data); - build/e/assets/images/split/image2042.o (.data); - build/e/assets/images/split/image2043.o (.data); - build/e/assets/images/split/image2044.o (.data); - build/e/assets/images/split/image2045.o (.data); - build/e/assets/images/split/image2046.o (.data); - build/e/assets/images/split/image2047.o (.data); - build/e/assets/images/split/image2048.o (.data); - build/e/assets/images/split/image2049.o (.data); - build/e/assets/images/split/image2050.o (.data); - build/e/assets/images/split/image2051.o (.data); - build/e/assets/images/split/image2052.o (.data); - build/e/assets/images/split/image2053.o (.data); - build/e/assets/images/split/image2054.o (.data); - build/e/assets/images/split/image2055.o (.data); - build/e/assets/images/split/image2056.o (.data); - build/e/assets/images/split/image2057.o (.data); - build/e/assets/images/split/image2058.o (.data); - build/e/assets/images/split/image2059.o (.data); - build/e/assets/images/split/image2060.o (.data); - build/e/assets/images/split/image2061.o (.data); - build/e/assets/images/split/image2062.o (.data); - build/e/assets/images/split/image2063.o (.data); - build/e/assets/images/split/image2064.o (.data); - build/e/assets/images/split/image2065.o (.data); - build/e/assets/images/split/image2066.o (.data); - build/e/assets/images/split/image2067.o (.data); - build/e/assets/images/split/image2068.o (.data); - build/e/assets/images/split/image2069.o (.data); - build/e/assets/images/split/image2070.o (.data); - build/e/assets/images/split/image2071.o (.data); - build/e/assets/images/split/image2072.o (.data); - build/e/assets/images/split/image2073.o (.data); - build/e/assets/images/split/image2074.o (.data); - build/e/assets/images/split/image2075.o (.data); - build/e/assets/images/split/image2076.o (.data); - build/e/assets/images/split/image2077.o (.data); - build/e/assets/images/split/image2078.o (.data); - build/e/assets/images/split/image2079.o (.data); - build/e/assets/images/split/image2080.o (.data); - build/e/assets/images/split/image2081.o (.data); - build/e/assets/images/split/image2082.o (.data); - build/e/assets/images/split/image2083.o (.data); - build/e/assets/images/split/image2084.o (.data); - build/e/assets/images/split/image2085.o (.data); - build/e/assets/images/split/image2086.o (.data); - build/e/assets/images/split/image2087.o (.data); - build/e/assets/images/split/image2088.o (.data); - build/e/assets/images/split/image2089.o (.data); - build/e/assets/images/split/image2090.o (.data); - build/e/assets/images/split/image2091.o (.data); - build/e/assets/images/split/image2092.o (.data); - build/e/assets/images/split/image2093.o (.data); - build/e/assets/images/split/image2094.o (.data); - build/e/assets/images/split/image2095.o (.data); - build/e/assets/images/split/image2096.o (.data); - build/e/assets/images/split/image2097.o (.data); - build/e/assets/images/split/image2098.o (.data); - build/e/assets/images/split/image2099.o (.data); - build/e/assets/images/split/image2100.o (.data); - build/e/assets/images/split/image2101.o (.data); - build/e/assets/images/split/image2102.o (.data); - build/e/assets/images/split/image2103.o (.data); - build/e/assets/images/split/image2104.o (.data); - build/e/assets/images/split/image2105.o (.data); - build/e/assets/images/split/image2106.o (.data); - build/e/assets/images/split/image2107.o (.data); - build/e/assets/images/split/image2108.o (.data); - build/e/assets/images/split/image2109.o (.data); - build/e/assets/images/split/image2110.o (.data); - build/e/assets/images/split/image2111.o (.data); - build/e/assets/images/split/image2112.o (.data); - build/e/assets/images/split/image2113.o (.data); - build/e/assets/images/split/image2114.o (.data); - build/e/assets/images/split/image2115.o (.data); - build/e/assets/images/split/image2116.o (.data); - build/e/assets/images/split/image2117.o (.data); - build/e/assets/images/split/image2118.o (.data); - build/e/assets/images/split/image2119.o (.data); - build/e/assets/images/split/image2120.o (.data); - build/e/assets/images/split/image2121.o (.data); - build/e/assets/images/split/image2122.o (.data); - build/e/assets/images/split/image2123.o (.data); - build/e/assets/images/split/image2124.o (.data); - build/e/assets/images/split/image2125.o (.data); - build/e/assets/images/split/image2126.o (.data); - build/e/assets/images/split/image2127.o (.data); - build/e/assets/images/split/image2128.o (.data); - build/e/assets/images/split/image2129.o (.data); - build/e/assets/images/split/image2130.o (.data); - build/e/assets/images/split/image2131.o (.data); - build/e/assets/images/split/image2132.o (.data); - build/e/assets/images/split/image2133.o (.data); - build/e/assets/images/split/image2134.o (.data); - build/e/assets/images/split/image2135.o (.data); - build/e/assets/images/split/image2136.o (.data); - build/e/assets/images/split/image2137.o (.data); - build/e/assets/images/split/image2138.o (.data); - build/e/assets/images/split/image2139.o (.data); - build/e/assets/images/split/image2140.o (.data); - build/e/assets/images/split/image2141.o (.data); - build/e/assets/images/split/image2142.o (.data); - build/e/assets/images/split/image2143.o (.data); - build/e/assets/images/split/image2144.o (.data); - build/e/assets/images/split/image2145.o (.data); - build/e/assets/images/split/image2146.o (.data); - build/e/assets/images/split/image2147.o (.data); - build/e/assets/images/split/image2148.o (.data); - build/e/assets/images/split/image2149.o (.data); - build/e/assets/images/split/image2150.o (.data); - build/e/assets/images/split/image2151.o (.data); - build/e/assets/images/split/image2152.o (.data); - build/e/assets/images/split/image2153.o (.data); - build/e/assets/images/split/image2154.o (.data); - build/e/assets/images/split/image2155.o (.data); - build/e/assets/images/split/image2156.o (.data); - build/e/assets/images/split/image2157.o (.data); - build/e/assets/images/split/image2158.o (.data); - build/e/assets/images/split/image2159.o (.data); - build/e/assets/images/split/image2160.o (.data); - build/e/assets/images/split/image2161.o (.data); - build/e/assets/images/split/image2162.o (.data); - build/e/assets/images/split/image2163.o (.data); - build/e/assets/images/split/image2164.o (.data); - build/e/assets/images/split/image2165.o (.data); - build/e/assets/images/split/image2166.o (.data); - build/e/assets/images/split/image2167.o (.data); - build/e/assets/images/split/image2168.o (.data); - build/e/assets/images/split/image2169.o (.data); - build/e/assets/images/split/image2170.o (.data); - build/e/assets/images/split/image2171.o (.data); - build/e/assets/images/split/image2172.o (.data); - build/e/assets/images/split/image2173.o (.data); - build/e/assets/images/split/image2174.o (.data); - build/e/assets/images/split/image2175.o (.data); - build/e/assets/images/split/image2176.o (.data); - build/e/assets/images/split/image2177.o (.data); - build/e/assets/images/split/image2178.o (.data); - build/e/assets/images/split/image2179.o (.data); - build/e/assets/images/split/image2180.o (.data); - build/e/assets/images/split/image2181.o (.data); - build/e/assets/images/split/image2182.o (.data); - build/e/assets/images/split/image2183.o (.data); - build/e/assets/images/split/image2184.o (.data); - build/e/assets/images/split/image2185.o (.data); - build/e/assets/images/split/image2186.o (.data); - build/e/assets/images/split/image2187.o (.data); - build/e/assets/images/split/image2188.o (.data); - build/e/assets/images/split/image2189.o (.data); - build/e/assets/images/split/image2190.o (.data); - build/e/assets/images/split/image2191.o (.data); - build/e/assets/images/split/image2192.o (.data); - build/e/assets/images/split/image2193.o (.data); - build/e/assets/images/split/image2194.o (.data); - build/e/assets/images/split/image2195.o (.data); - build/e/assets/images/split/image2196.o (.data); - build/e/assets/images/split/image2197.o (.data); - build/e/assets/images/split/image2198.o (.data); - build/e/assets/images/split/image2199.o (.data); - build/e/assets/images/split/image2200.o (.data); - build/e/assets/images/split/image2201.o (.data); - build/e/assets/images/split/image2202.o (.data); - build/e/assets/images/split/image2203.o (.data); - build/e/assets/images/split/image2204.o (.data); - build/e/assets/images/split/image2205.o (.data); - build/e/assets/images/split/image2206.o (.data); - build/e/assets/images/split/image2207.o (.data); - build/e/assets/images/split/image2208.o (.data); - build/e/assets/images/split/image2209.o (.data); - build/e/assets/images/split/image2210.o (.data); - build/e/assets/images/split/image2211.o (.data); - build/e/assets/images/split/image2212.o (.data); - build/e/assets/images/split/image2213.o (.data); - build/e/assets/images/split/image2214.o (.data); - build/e/assets/images/split/image2215.o (.data); - build/e/assets/images/split/image2216.o (.data); - build/e/assets/images/split/image2217.o (.data); - build/e/assets/images/split/image2218.o (.data); - build/e/assets/images/split/image2219.o (.data); - build/e/assets/images/split/image2220.o (.data); - build/e/assets/images/split/image2221.o (.data); - build/e/assets/images/split/image2222.o (.data); - build/e/assets/images/split/image2223.o (.data); - build/e/assets/images/split/image2224.o (.data); - build/e/assets/images/split/image2225.o (.data); - build/e/assets/images/split/image2226.o (.data); - build/e/assets/images/split/image2227.o (.data); - build/e/assets/images/split/image2228.o (.data); - build/e/assets/images/split/image2229.o (.data); - build/e/assets/images/split/image2230.o (.data); - build/e/assets/images/split/image2231.o (.data); - build/e/assets/images/split/image2232.o (.data); - build/e/assets/images/split/image2233.o (.data); - build/e/assets/images/split/image2234.o (.data); - build/e/assets/images/split/image2235.o (.data); - build/e/assets/images/split/image2236.o (.data); - build/e/assets/images/split/image2237.o (.data); - build/e/assets/images/split/image2238.o (.data); - build/e/assets/images/split/image2239.o (.data); - build/e/assets/images/split/image2240.o (.data); - build/e/assets/images/split/image2241.o (.data); - build/e/assets/images/split/image2242.o (.data); - build/e/assets/images/split/image2243.o (.data); - build/e/assets/images/split/image2244.o (.data); - build/e/assets/images/split/image2245.o (.data); - build/e/assets/images/split/image2246.o (.data); - build/e/assets/images/split/image2247.o (.data); - build/e/assets/images/split/image2248.o (.data); - build/e/assets/images/split/image2249.o (.data); - build/e/assets/images/split/image2250.o (.data); - build/e/assets/images/split/image2251.o (.data); - build/e/assets/images/split/image2252.o (.data); - build/e/assets/images/split/image2253.o (.data); - build/e/assets/images/split/image2254.o (.data); - build/e/assets/images/split/image2255.o (.data); - build/e/assets/images/split/image2256.o (.data); - build/e/assets/images/split/image2257.o (.data); - build/e/assets/images/split/image2258.o (.data); - build/e/assets/images/split/image2259.o (.data); - build/e/assets/images/split/image2260.o (.data); - build/e/assets/images/split/image2261.o (.data); - build/e/assets/images/split/image2262.o (.data); - build/e/assets/images/split/image2263.o (.data); - build/e/assets/images/split/image2264.o (.data); - build/e/assets/images/split/image2265.o (.data); - build/e/assets/images/split/image2266.o (.data); - build/e/assets/images/split/image2267.o (.data); - build/e/assets/images/split/image2268.o (.data); - build/e/assets/images/split/image2269.o (.data); - build/e/assets/images/split/image2270.o (.data); - build/e/assets/images/split/image2271.o (.data); - build/e/assets/images/split/image2272.o (.data); - build/e/assets/images/split/image2273.o (.data); - build/e/assets/images/split/image2274.o (.data); - build/e/assets/images/split/image2275.o (.data); - build/e/assets/images/split/image2276.o (.data); - build/e/assets/images/split/image2277.o (.data); - build/e/assets/images/split/image2278.o (.data); - build/e/assets/images/split/image2279.o (.data); - build/e/assets/images/split/image2280.o (.data); - build/e/assets/images/split/image2281.o (.data); - build/e/assets/images/split/image2282.o (.data); - build/e/assets/images/split/image2283.o (.data); - build/e/assets/images/split/image2284.o (.data); - build/e/assets/images/split/image2285.o (.data); - build/e/assets/images/split/image2286.o (.data); - build/e/assets/images/split/image2287.o (.data); - build/e/assets/images/split/image2288.o (.data); - build/e/assets/images/split/image2289.o (.data); - build/e/assets/images/split/image2290.o (.data); - build/e/assets/images/split/image2291.o (.data); - build/e/assets/images/split/image2292.o (.data); - build/e/assets/images/split/image2293.o (.data); - build/e/assets/images/split/image2294.o (.data); - build/e/assets/images/split/image2295.o (.data); - build/e/assets/images/split/image2296.o (.data); - build/e/assets/images/split/image2297.o (.data); - build/e/assets/images/split/image2298.o (.data); - build/e/assets/images/split/image2299.o (.data); - build/e/assets/images/split/image2300.o (.data); - build/e/assets/images/split/image2301.o (.data); - build/e/assets/images/split/image2302.o (.data); - build/e/assets/images/split/image2303.o (.data); - build/e/assets/images/split/image2304.o (.data); - build/e/assets/images/split/image2305.o (.data); - build/e/assets/images/split/image2306.o (.data); - build/e/assets/images/split/image2307.o (.data); - build/e/assets/images/split/image2308.o (.data); - build/e/assets/images/split/image2309.o (.data); - build/e/assets/images/split/image2310.o (.data); - build/e/assets/images/split/image2311.o (.data); - build/e/assets/images/split/image2312.o (.data); - build/e/assets/images/split/image2313.o (.data); - build/e/assets/images/split/image2314.o (.data); - build/e/assets/images/split/image2315.o (.data); - build/e/assets/images/split/image2316.o (.data); - build/e/assets/images/split/image2317.o (.data); - build/e/assets/images/split/image2318.o (.data); - build/e/assets/images/split/image2319.o (.data); - build/e/assets/images/split/image2320.o (.data); - build/e/assets/images/split/image2321.o (.data); - build/e/assets/images/split/image2322.o (.data); - build/e/assets/images/split/image2323.o (.data); - build/e/assets/images/split/image2324.o (.data); - build/e/assets/images/split/image2325.o (.data); - build/e/assets/images/split/image2326.o (.data); - build/e/assets/images/split/image2327.o (.data); - build/e/assets/images/split/image2328.o (.data); - build/e/assets/images/split/image2329.o (.data); - build/e/assets/images/split/image2330.o (.data); - build/e/assets/images/split/image2331.o (.data); - build/e/assets/images/split/image2332.o (.data); - build/e/assets/images/split/image2333.o (.data); - build/e/assets/images/split/image2334.o (.data); - build/e/assets/images/split/image2335.o (.data); - build/e/assets/images/split/image2336.o (.data); - build/e/assets/images/split/image2337.o (.data); - build/e/assets/images/split/image2338.o (.data); - build/e/assets/images/split/image2339.o (.data); - build/e/assets/images/split/image2340.o (.data); - build/e/assets/images/split/image2341.o (.data); - build/e/assets/images/split/image2342.o (.data); - build/e/assets/images/split/image2343.o (.data); - build/e/assets/images/split/image2344.o (.data); - build/e/assets/images/split/image2345.o (.data); - build/e/assets/images/split/image2346.o (.data); - build/e/assets/images/split/image2347.o (.data); - build/e/assets/images/split/image2348.o (.data); - build/e/assets/images/split/image2349.o (.data); - build/e/assets/images/split/image2350.o (.data); - build/e/assets/images/split/image2351.o (.data); - build/e/assets/images/split/image2352.o (.data); - build/e/assets/images/split/image2353.o (.data); - build/e/assets/images/split/image2354.o (.data); - build/e/assets/images/split/image2355.o (.data); - build/e/assets/images/split/image2356.o (.data); - build/e/assets/images/split/image2357.o (.data); - build/e/assets/images/split/image2358.o (.data); - build/e/assets/images/split/image2359.o (.data); - build/e/assets/images/split/image2360.o (.data); - build/e/assets/images/split/image2361.o (.data); - build/e/assets/images/split/image2362.o (.data); - build/e/assets/images/split/image2363.o (.data); - build/e/assets/images/split/image2364.o (.data); - build/e/assets/images/split/image2365.o (.data); - build/e/assets/images/split/image2366.o (.data); - build/e/assets/images/split/image2367.o (.data); - build/e/assets/images/split/image2368.o (.data); - build/e/assets/images/split/image2369.o (.data); - build/e/assets/images/split/image2370.o (.data); - build/e/assets/images/split/image2371.o (.data); - build/e/assets/images/split/image2372.o (.data); - build/e/assets/images/split/image2373.o (.data); - build/e/assets/images/split/image2374.o (.data); - build/e/assets/images/split/image2375.o (.data); - build/e/assets/images/split/image2376.o (.data); - build/e/assets/images/split/image2377.o (.data); - build/e/assets/images/split/image2378.o (.data); - build/e/assets/images/split/image2379.o (.data); - build/e/assets/images/split/image2380.o (.data); - build/e/assets/images/split/image2381.o (.data); - build/e/assets/images/split/image2382.o (.data); - build/e/assets/images/split/image2383.o (.data); - build/e/assets/images/split/image2384.o (.data); - build/e/assets/images/split/image2385.o (.data); - build/e/assets/images/split/image2386.o (.data); - build/e/assets/images/split/image2387.o (.data); - build/e/assets/images/split/image2388.o (.data); - build/e/assets/images/split/image2389.o (.data); - build/e/assets/images/split/image2390.o (.data); - build/e/assets/images/split/image2391.o (.data); - build/e/assets/images/split/image2392.o (.data); - build/e/assets/images/split/image2393.o (.data); - build/e/assets/images/split/image2394.o (.data); - build/e/assets/images/split/image2395.o (.data); - build/e/assets/images/split/image2396.o (.data); - build/e/assets/images/split/image2397.o (.data); - build/e/assets/images/split/image2398.o (.data); - build/e/assets/images/split/image2399.o (.data); - build/e/assets/images/split/image2400.o (.data); - build/e/assets/images/split/image2401.o (.data); - build/e/assets/images/split/image2402.o (.data); - build/e/assets/images/split/image2403.o (.data); - build/e/assets/images/split/image2404.o (.data); - build/e/assets/images/split/image2405.o (.data); - build/e/assets/images/split/image2406.o (.data); - build/e/assets/images/split/image2407.o (.data); - build/e/assets/images/split/image2408.o (.data); - build/e/assets/images/split/image2409.o (.data); - build/e/assets/images/split/image2410.o (.data); - build/e/assets/images/split/image2411.o (.data); - build/e/assets/images/split/image2412.o (.data); - build/e/assets/images/split/image2413.o (.data); - build/e/assets/images/split/image2414.o (.data); - build/e/assets/images/split/image2415.o (.data); - build/e/assets/images/split/image2416.o (.data); - build/e/assets/images/split/image2417.o (.data); - build/e/assets/images/split/image2418.o (.data); - build/e/assets/images/split/image2419.o (.data); - build/e/assets/images/split/image2420.o (.data); - build/e/assets/images/split/image2421.o (.data); - build/e/assets/images/split/image2422.o (.data); - build/e/assets/images/split/image2423.o (.data); - build/e/assets/images/split/image2424.o (.data); - build/e/assets/images/split/image2425.o (.data); - build/e/assets/images/split/image2426.o (.data); - build/e/assets/images/split/image2427.o (.data); - build/e/assets/images/split/image2428.o (.data); - build/e/assets/images/split/image2429.o (.data); - build/e/assets/images/split/image2430.o (.data); - build/e/assets/images/split/image2431.o (.data); - build/e/assets/images/split/image2432.o (.data); - build/e/assets/images/split/image2433.o (.data); - build/e/assets/images/split/image2434.o (.data); - build/e/assets/images/split/image2435.o (.data); - build/e/assets/images/split/image2436.o (.data); - build/e/assets/images/split/image2437.o (.data); - build/e/assets/images/split/image2438.o (.data); - build/e/assets/images/split/image2439.o (.data); - build/e/assets/images/split/image2440.o (.data); - build/e/assets/images/split/image2441.o (.data); - build/e/assets/images/split/image2442.o (.data); - build/e/assets/images/split/image2443.o (.data); - build/e/assets/images/split/image2444.o (.data); - build/e/assets/images/split/image2445.o (.data); - build/e/assets/images/split/image2446.o (.data); - build/e/assets/images/split/image2447.o (.data); - build/e/assets/images/split/image2448.o (.data); - build/e/assets/images/split/image2449.o (.data); - build/e/assets/images/split/image2450.o (.data); - build/e/assets/images/split/image2451.o (.data); - build/e/assets/images/split/image2452.o (.data); - build/e/assets/images/split/image2453.o (.data); - build/e/assets/images/split/image2454.o (.data); - build/e/assets/images/split/image2455.o (.data); - build/e/assets/images/split/image2456.o (.data); - build/e/assets/images/split/image2457.o (.data); - build/e/assets/images/split/image2458.o (.data); - build/e/assets/images/split/image2459.o (.data); - build/e/assets/images/split/image2460.o (.data); - build/e/assets/images/split/image2461.o (.data); - build/e/assets/images/split/image2462.o (.data); - build/e/assets/images/split/image2463.o (.data); - build/e/assets/images/split/image2464.o (.data); - build/e/assets/images/split/image2465.o (.data); - build/e/assets/images/split/image2466.o (.data); - build/e/assets/images/split/image2467.o (.data); - build/e/assets/images/split/image2468.o (.data); - build/e/assets/images/split/image2469.o (.data); - build/e/assets/images/split/image2470.o (.data); - build/e/assets/images/split/image2471.o (.data); - build/e/assets/images/split/image2472.o (.data); - build/e/assets/images/split/image2473.o (.data); - build/e/assets/images/split/image2474.o (.data); - build/e/assets/images/split/image2475.o (.data); - build/e/assets/images/split/image2476.o (.data); - build/e/assets/images/split/image2477.o (.data); - build/e/assets/images/split/image2478.o (.data); - build/e/assets/images/split/image2479.o (.data); - build/e/assets/images/split/image2480.o (.data); - build/e/assets/images/split/image2481.o (.data); - build/e/assets/images/split/image2482.o (.data); - build/e/assets/images/split/image2483.o (.data); - build/e/assets/images/split/image2484.o (.data); - build/e/assets/images/split/image2485.o (.data); - build/e/assets/images/split/image2486.o (.data); - build/e/assets/images/split/image2487.o (.data); - build/e/assets/images/split/image2488.o (.data); - build/e/assets/images/split/image2489.o (.data); - build/e/assets/images/split/image2490.o (.data); - build/e/assets/images/split/image2491.o (.data); - build/e/assets/images/split/image2492.o (.data); - build/e/assets/images/split/image2493.o (.data); - build/e/assets/images/split/image2494.o (.data); - build/e/assets/images/split/image2495.o (.data); - build/e/assets/images/split/image2496.o (.data); - build/e/assets/images/split/image2497.o (.data); - build/e/assets/images/split/image2498.o (.data); - build/e/assets/images/split/image2499.o (.data); - build/e/assets/images/split/image2500.o (.data); - build/e/assets/images/split/image2501.o (.data); - build/e/assets/images/split/image2502.o (.data); - build/e/assets/images/split/image2503.o (.data); - build/e/assets/images/split/image2504.o (.data); - build/e/assets/images/split/image2505.o (.data); - build/e/assets/images/split/image2506.o (.data); - build/e/assets/images/split/image2507.o (.data); - build/e/assets/images/split/image2508.o (.data); - build/e/assets/images/split/image2509.o (.data); - build/e/assets/images/split/image2510.o (.data); - build/e/assets/images/split/image2511.o (.data); - build/e/assets/images/split/image2512.o (.data); - build/e/assets/images/split/image2513.o (.data); - build/e/assets/images/split/image2514.o (.data); - build/e/assets/images/split/image2515.o (.data); - build/e/assets/images/split/image2516.o (.data); - build/e/assets/images/split/image2517.o (.data); - build/e/assets/images/split/image2518.o (.data); - build/e/assets/images/split/image2519.o (.data); - build/e/assets/images/split/image2520.o (.data); - build/e/assets/images/split/image2521.o (.data); - build/e/assets/images/split/image2522.o (.data); - build/e/assets/images/split/image2523.o (.data); - build/e/assets/images/split/image2524.o (.data); - build/e/assets/images/split/image2525.o (.data); - build/e/assets/images/split/image2526.o (.data); - build/e/assets/images/split/image2527.o (.data); - build/e/assets/images/split/image2528.o (.data); - build/e/assets/images/split/image2529.o (.data); - build/e/assets/images/split/image2530.o (.data); - build/e/assets/images/split/image2531.o (.data); - build/e/assets/images/split/image2532.o (.data); - build/e/assets/images/split/image2533.o (.data); - build/e/assets/images/split/image2534.o (.data); - build/e/assets/images/split/image2535.o (.data); - build/e/assets/images/split/image2536.o (.data); - build/e/assets/images/split/image2537.o (.data); - build/e/assets/images/split/image2538.o (.data); - build/e/assets/images/split/image2539.o (.data); - build/e/assets/images/split/image2540.o (.data); - build/e/assets/images/split/image2541.o (.data); - build/e/assets/images/split/image2542.o (.data); - build/e/assets/images/split/image2543.o (.data); - build/e/assets/images/split/image2544.o (.data); - build/e/assets/images/split/image2545.o (.data); - build/e/assets/images/split/image2546.o (.data); - build/e/assets/images/split/image2547.o (.data); - build/e/assets/images/split/image2548.o (.data); - build/e/assets/images/split/image2549.o (.data); - build/e/assets/images/split/image2550.o (.data); - build/e/assets/images/split/image2551.o (.data); - build/e/assets/images/split/image2552.o (.data); - build/e/assets/images/split/image2553.o (.data); - build/e/assets/images/split/image2554.o (.data); - build/e/assets/images/split/image2555.o (.data); - build/e/assets/images/split/image2556.o (.data); - build/e/assets/images/split/image2557.o (.data); - build/e/assets/images/split/image2558.o (.data); - build/e/assets/images/split/image2559.o (.data); - build/e/assets/images/split/image2560.o (.data); - build/e/assets/images/split/image2561.o (.data); - build/e/assets/images/split/image2562.o (.data); - build/e/assets/images/split/image2563.o (.data); - build/e/assets/images/split/image2564.o (.data); - build/e/assets/images/split/image2565.o (.data); - build/e/assets/images/split/image2566.o (.data); - build/e/assets/images/split/image2567.o (.data); - build/e/assets/images/split/image2568.o (.data); - build/e/assets/images/split/image2569.o (.data); - build/e/assets/images/split/image2570.o (.data); - build/e/assets/images/split/image2571.o (.data); - build/e/assets/images/split/image2572.o (.data); - build/e/assets/images/split/image2573.o (.data); - build/e/assets/images/split/image2574.o (.data); - build/e/assets/images/split/image2575.o (.data); - build/e/assets/images/split/image2576.o (.data); - build/e/assets/images/split/image2577.o (.data); - build/e/assets/images/split/image2578.o (.data); - build/e/assets/images/split/image2579.o (.data); - build/e/assets/images/split/image2580.o (.data); - build/e/assets/images/split/image2581.o (.data); - build/e/assets/images/split/image2582.o (.data); - build/e/assets/images/split/image2583.o (.data); - build/e/assets/images/split/image2584.o (.data); - build/e/assets/images/split/image2585.o (.data); - build/e/assets/images/split/image2586.o (.data); - build/e/assets/images/split/image2587.o (.data); - build/e/assets/images/split/image2588.o (.data); - build/e/assets/images/split/image2589.o (.data); - build/e/assets/images/split/image2590.o (.data); - build/e/assets/images/split/image2591.o (.data); - build/e/assets/images/split/image2592.o (.data); - build/e/assets/images/split/image2593.o (.data); - build/e/assets/images/split/image2594.o (.data); - build/e/assets/images/split/image2595.o (.data); - build/e/assets/images/split/image2596.o (.data); - build/e/assets/images/split/image2597.o (.data); - build/e/assets/images/split/image2598.o (.data); - build/e/assets/images/split/image2599.o (.data); - build/e/assets/images/split/image2600.o (.data); - build/e/assets/images/split/image2601.o (.data); - build/e/assets/images/split/image2602.o (.data); - build/e/assets/images/split/image2603.o (.data); - build/e/assets/images/split/image2604.o (.data); - build/e/assets/images/split/image2605.o (.data); - build/e/assets/images/split/image2606.o (.data); - build/e/assets/images/split/image2607.o (.data); - build/e/assets/images/split/image2608.o (.data); - build/e/assets/images/split/image2609.o (.data); - build/e/assets/images/split/image2610.o (.data); - build/e/assets/images/split/image2611.o (.data); - build/e/assets/images/split/image2612.o (.data); - build/e/assets/images/split/image2613.o (.data); - build/e/assets/images/split/image2614.o (.data); - build/e/assets/images/split/image2615.o (.data); - build/e/assets/images/split/image2616.o (.data); - build/e/assets/images/split/image2617.o (.data); - build/e/assets/images/split/image2618.o (.data); - build/e/assets/images/split/image2619.o (.data); - build/e/assets/images/split/image2620.o (.data); - build/e/assets/images/split/image2621.o (.data); - build/e/assets/images/split/image2622.o (.data); - build/e/assets/images/split/image2623.o (.data); - build/e/assets/images/split/image2624.o (.data); - build/e/assets/images/split/image2625.o (.data); - build/e/assets/images/split/image2626.o (.data); - build/e/assets/images/split/image2627.o (.data); - build/e/assets/images/split/image2628.o (.data); - build/e/assets/images/split/image2629.o (.data); - build/e/assets/images/split/image2630.o (.data); - build/e/assets/images/split/image2631.o (.data); - build/e/assets/images/split/image2632.o (.data); - build/e/assets/images/split/image2633.o (.data); - build/e/assets/images/split/image2634.o (.data); - build/e/assets/images/split/image2635.o (.data); - build/e/assets/images/split/image2636.o (.data); - build/e/assets/images/split/image2637.o (.data); - build/e/assets/images/split/image2638.o (.data); - build/e/assets/images/split/image2639.o (.data); - build/e/assets/images/split/image2640.o (.data); - build/e/assets/images/split/image2641.o (.data); - build/e/assets/images/split/image2642.o (.data); - build/e/assets/images/split/image2643.o (.data); - build/e/assets/images/split/image2644.o (.data); - build/e/assets/images/split/image2645.o (.data); - build/e/assets/images/split/image2646.o (.data); - build/e/assets/images/split/image2647.o (.data); - build/e/assets/images/split/image2648.o (.data); - build/e/assets/images/split/image2649.o (.data); - build/e/assets/images/split/image2650.o (.data); - build/e/assets/images/split/image2651.o (.data); - build/e/assets/images/split/image2652.o (.data); - build/e/assets/images/split/image2653.o (.data); - build/e/assets/images/split/image2654.o (.data); - build/e/assets/images/split/image2655.o (.data); - build/e/assets/images/split/image2656.o (.data); - build/e/assets/images/split/image2657.o (.data); - build/e/assets/images/split/image2658.o (.data); - build/e/assets/images/split/image2659.o (.data); - build/e/assets/images/split/image2660.o (.data); - build/e/assets/images/split/image2661.o (.data); - build/e/assets/images/split/image2662.o (.data); - build/e/assets/images/split/image2663.o (.data); - build/e/assets/images/split/image2664.o (.data); - build/e/assets/images/split/image2665.o (.data); - build/e/assets/images/split/image2666.o (.data); - build/e/assets/images/split/image2667.o (.data); - build/e/assets/images/split/image2668.o (.data); - build/e/assets/images/split/image2669.o (.data); - build/e/assets/images/split/image2670.o (.data); - build/e/assets/images/split/image2671.o (.data); - build/e/assets/images/split/image2672.o (.data); - build/e/assets/images/split/image2673.o (.data); - build/e/assets/images/split/image2674.o (.data); - build/e/assets/images/split/image2675.o (.data); - build/e/assets/images/split/image2676.o (.data); - build/e/assets/images/split/image2677.o (.data); - build/e/assets/images/split/image2678.o (.data); - build/e/assets/images/split/image2679.o (.data); - build/e/assets/images/split/image2680.o (.data); - build/e/assets/images/split/image2681.o (.data); - build/e/assets/images/split/image2682.o (.data); - build/e/assets/images/split/image2683.o (.data); - build/e/assets/images/split/image2684.o (.data); - build/e/assets/images/split/image2685.o (.data); - build/e/assets/images/split/image2686.o (.data); - build/e/assets/images/split/image2687.o (.data); - build/e/assets/images/split/image2688.o (.data); - build/e/assets/images/split/image2689.o (.data); - build/e/assets/images/split/image2690.o (.data); - build/e/assets/images/split/image2691.o (.data); - build/e/assets/images/split/image2692.o (.data); - build/e/assets/images/split/image2693.o (.data); - build/e/assets/images/split/image2694.o (.data); - build/e/assets/images/split/image2695.o (.data); - build/e/assets/images/split/image2696.o (.data); - build/e/assets/images/split/image2697.o (.data); - build/e/assets/images/split/image2698.o (.data); - build/e/assets/images/split/image2699.o (.data); - } - _imagesSegmentEnd = ADDR(.images) + SIZEOF(.images); - _imagesSegmentRomEnd = _imagesSegmentRomStart + SIZEOF(.images); - - - - _romSegmentEnd = _imagesSegmentRomEnd; - - - - __csegtempPos = 0xC00000; - __dataSegmentVaddrStart = _codeSegmentEnd + 0x10000000; - _csegmentSegmentStart = ADDR(.csegment); - _csegmentSegmentRomStart = __csegtempPos; - .csegment __dataSegmentVaddrStart : AT(_csegmentSegmentRomStart) { - - /* comments are offset from start of data segment */ - - build/e/src/rspboot.o (.text); - build/e/src/gspboot.o (.text); - build/e/src/aspboot.o (.text); - build/e/src/boot.o (.data); - build/e/src/init.o (.data); - build/e/src/sched.o (.data); /* 0x2300 */ - build/e/src/osMapTLB.o (.data); - - build/e/src/libultrare/io/vimgr.o (.data); - build/e/src/libultrare/io/pimgr.o (.data); - - build/e/src/tlb_manage.o (.data); - build/e/src/tlb_random.o (.data); - build/e/src/tlb_resolve.o (.data); - build/e/src/tlb_hardwire.o (.data); - build/e/src/audi.o (.data); /* 0x23a0 */ - build/e/src/speed_graph.o (.data); /* (none) */ - build/e/src/fr.o (.data); /* 0x2484 */ - build/e/src/deb.o (.data); /* 0x2520 */ - build/e/src/fault.o (.data); - /*deb_print may be part of fault per pd beta (.data);*/ - build/e/src/deb_print.o (.data); /* 0x2540 */ - build/e/src/getra.o (.data); - build/e/src/ramrom.o (.data); - build/e/src/boss.o (.data); /* 0x33e0 */ - build/e/src/music.o (.data); /* 0x3570 */ - build/e/src/snd.o (.data); /* 0x3620 */ - build/e/src/memp.o (.data); /* 0x3640 */ - build/e/src/mema.o (.data); - build/e/src/random.o (.data); /* 0x36a0 */ - build/e/src/token.o (.data); /* 0x36b0 */ - build/e/src/str.o (.data); - build/e/src/sprintf.o (.data); - build/e/src/pi.o (.data); - build/e/src/vi.o (.data); - build/e/src/debugmenu.o (.data); - build/e/src/joy.o (.data); /* 0x3700 */ - build/e/src/motor.o (.data); - build/e/src/libultrare/io/leointerrupt.o (.data); - build/e/src/rmon.o (.data); - - /*build/e/src/libultra/osPiRawStartDma.o (.data);*/ - build/e/src/libultra/io/pirawdma.o (.data); - build/e/src/libultra/io/pigetstat.o (.data); - build/e/src/libultrare/os/initialize.o (.data); - build/e/src/libultra/os/writebackdcacheall.o (.data); - build/e/src/libultra/os/invalicache.o (.data); - build/e/src/libultra/os/unmaptlb.o (.data); - build/e/src/libultra/os/getfpccsr.o (.data); - build/e/src/libultra/os/setfpccsr.o (.data); - build/e/src/libultra/os/createthread.o (.data); - build/e/src/libultra/os/startthread.o (.data); - build/e/src/libultra/os/createmesgqueue.o (.data); - build/e/src/libultra/os/parameters.o (.data); - build/e/src/libultra/os/stopthread.o (.data); - build/e/src/libultra/os/setthreadpri.o (.data); - build/e/src/libultra/os/getcount.o (.data); - /*build/e/src/libultrare/io/vimgr.o (.data);*/ - build/e/src/libultrare/io/vitbl.o (.data); /*edited*/ - build/e/src/libultra/os/seteventmesg.o (.data); - build/e/src/libultra/io/visetevent.o (.data); - build/e/src/libultra/os/setintmask.o (.data); - build/e/src/libultra/os/recvmesg.o (.data); - build/e/src/libultra/os/sendmesg.o (.data); - build/e/src/libultra/io/visetmode.o (.data); - build/e/src/libultra/io/visetxscale.o (.data); - build/e/src/libultra/io/visetyscale.o (.data); - build/e/src/libultra/io/virepeatline.o (.data); - build/e/src/libultra/io/viblack.o (.data); - build/e/src/libultra/io/sptaskyielded.o (.data); - build/e/src/libultra/io/dpctr.o (.data); - build/e/src/libultra/io/vigetcurrframebuf.o (.data); - build/e/src/libultra/io/vigetnextframebuf.o (.data); - build/e/src/libultra/io/viswapbuf.o (.data); - build/e/src/libultra/io/dpsetstat.o (.data); - build/e/src/libultrare/io/sptask.o (.data); - build/e/src/libultra/io/dpsetnextbuf.o (.data); - build/e/src/libultra/io/sptaskyield.o (.data); - build/e/src/libultra/os/timerintr.o (.data); /* 0x4500 */ - build/e/src/libultra/os/getthreadpri.o (.data); - build/e/src/libultra/os/interrupt.o (.data); - build/e/src/libultrare/io/vi.o (.data); /* 0x4510 */ - build/e/src/libultra/io/vigetcurrcontext.o (.data); - build/e/src/libultra/io/viswapcontext.o (.data); - build/e/src/libultra/io/piacs.o (.data); - build/e/src/libultrare/io/epirawdma.o (.data); - build/e/src/libultrare/io/devmgr.o (.data); - - - - - - build/e/src/libultra/os/gettlbhi.o (.data); - build/e/src/libultra/os/virtualtophysical.o (.data); - build/e/src/libultra/io/aisetfreq.o (.data); - build/e/src/libultra/audio/sl.o (.data); - build/e/src/libultra/audio/heapalloc.o (.data); - build/e/src/libultra/os/gettime.o (.data); - build/e/src/libultra/libc/ll.o (.data); /*edited*/ - build/e/src/libultrare/io/aisetnextbuf.o (.data); - build/e/src/libultra/io/aigetlen.o (.data); - build/e/src/libultra/audio/synthesizer.o (.data); - build/e/src/libultra/io/pidma.o (.data); - build/e/src/libultra/io/visetspecial.o (.data); - build/e/src/libultra/libc/bcopy.o (.data); - build/e/src/libultra/gu/perspective.o (.data); - build/e/src/libultra/gu/mtxutil.o (.data); - build/e/src/libultra/os/getcurrfaultthread.o (.data); - build/e/src/libultra/os/exception.o (.data); /*edited*/ - build/e/src/libultra/os/thread.o (.data); - build/e/src/libultra/os/yieldthread.o (.data); - build/e/src/libultra/os/invaldcache.o (.data); - build/e/src/libultra/os/writebackdcache.o (.data); - build/e/src/libultra/os/settimer.o (.data); - build/e/src/libultra/audio/heapinit.o (.data); - build/e/src/libultra/audio/bnkf.o (.data); - build/e/src/libultra/audio/csplayer.o (.data); - build/e/src/libultra/audio/seqpsetbank.o (.data); - build/e/src/libultra/audio/cspgetstate.o (.data); - build/e/src/libultra/audio/cseq.o (.data); - build/e/src/libultra/audio/cspsetseq.o (.data); - build/e/src/libultra/audio/cspplay.o (.data); - build/e/src/libultra/audio/cspstop.o (.data); - build/e/src/libultra/audio/cspsetvol.o (.data); - build/e/src/libultra/audio/event.o (.data); - build/e/src/libultra/audio/synaddplayer.o (.data); - build/e/src/libultra/audio/synallocvoice.o (.data); - build/e/src/libultra/audio/synsetvol.o (.data); - build/e/src/libultra/audio/synstartvoice.o (.data); - build/e/src/libultra/audio/synsetpan.o (.data); - build/e/src/libultra/audio/synsetpitch.o (.data); - build/e/src/libultra/audio/synsetfxmix.o (.data); - build/e/src/libultra/audio/synstopvoice.o (.data); - build/e/src/libultra/audio/synfreevoice.o (.data); - build/e/src/libultra/audio/cents2ratio.o (.data); - build/e/src/libultra/io/piread.o (.data); - build/e/src/libultra/libc/string.o (.data); - build/e/src/libultrare/libc/xprintf.o (.data); - /*build/e/src/libultrare/io/pimgr.o (.data);*/ - build/e/src/libultrare/io/pfsinit.o (.data); - build/e/src/libultrare/io/controller.o (.data); - build/e/src/libultra/io/contquery.o (.data); - build/e/src/libultrare/io/contreaddata.o (.data); - build/e/src/libultrare/io/conteepprobe.o (.data); - build/e/src/libultrare/io/conteepread.o (.data); - build/e/src/libultrare/io/conteepwrite.o (.data); - build/e/src/libultrare/io/conteeplongread.o (.data); - build/e/src/libultrare/io/conteeplongwrite.o (.data); - build/e/src/libultrare/io/pfsisplug.o (.data); - build/e/src/libultra/io/siacs.o (.data); - build/e/src/libultra/io/sirawdma.o (.data); - build/e/src/libultra/io/crc.o (.data); - build/e/src/libultrare/io/contramwrite.o (.data); - build/e/src/libultrare/io/contramread.o (.data); - build/e/src/libultra/gu/align.o (.data); - build/e/src/libultra/gu/ortho.o (.data); - build/e/src/libultra/gu/coss.o (.data); - build/e/src/libultra/gu/sins.o (.data); /* 0x4660 */ - - build/e/src/libultra/io/vimodentsclan1.o (.data); - build/e/src/libultrare/io/vimodepallan1.o (.data); - build/e/src/libultra/gu/translate.o (.data); - build/e/src/libultra/libc/bcmp.o (.data); - build/e/src/libultra/gu/scale.o (.data); - build/e/src/libultra/gu/lookatref.o (.data); - build/e/src/libultra/gu/lookat.o (.data); - build/e/src/libultra/gu/rotate.o (.data); - build/e/src/libultra/libc/llcvt.o (.data); /*edited*/ - build/e/src/libultra/os/setsr.o (.data); - build/e/src/libultra/os/getsr.o (.data); - build/e/src/libultra/io/sirawread.o (.data); - build/e/src/libultra/io/sirawwrite.o (.data); - build/e/src/libultra/io/pirawread.o (.data); - build/e/src/libultra/libc/bzero.o (.data); - build/e/src/libultra/os/sethwinterrupt.o (.data); - /*build/e/src/libultrare/io/leointerrupt.o (.data);*/ - /*build/e/src/libultra/os/interrupt.o (.data);*/ - /*build/e/src/libultra/os/timerintr.o (.data);*/ - build/e/src/libultra/os/kdebugserver.o (.data); - /*build/e/src/libultra/os/getthreadpri.o (.data);*/ - /*build/e/src/libultrare/io/vi.o (.data);*/ /*edited*/ - /*build/e/src/libultra/io/vigetcurrcontext.o (.data);*/ - /*build/e/src/libultra/io/viswapcontext.o (.data);*/ - build/e/src/libultra/io/spgetstat.o (.data); - build/e/src/libultra/io/spsetstat.o (.data); - build/e/src/libultra/io/spsetpc.o (.data); - build/e/src/libultra/io/sprawdma.o (.data); - build/e/src/libultra/io/sp.o (.data); - build/e/src/libultra/io/dp.o (.data); - build/e/src/libultra/os/setcompare.o (.data); - build/e/src/libultra/os/resetglobalintmask.o (.data); - build/e/src/libultrare/io/epirawwrite.o (.data); - - build/e/src/libultra/os/probetlb.o (.data); - build/e/src/libultra/audio/syndelete.o (.data); - build/e/src/libultra/io/ai.o (.data); - build/e/src/libultrare/audio/drvrNew.o (.data); /* 0x4e60 */ - build/e/src/libultra/audio/synallocfx.o (.data); - build/e/src/libultra/audio/mainbus.o (.data); - build/e/src/libultra/audio/load.o (.data); - build/e/src/libultra/audio/resample.o (.data); - build/e/src/libultrare/audio/env.o (.data); /*edited*/ - build/e/src/libultra/audio/auxbus.o (.data); - build/e/src/libultra/audio/save.o (.data); - build/e/src/libultra/os/jammesg.o (.data); - build/e/src/libultra/io/pigetcmdq.o (.data); - build/e/src/libultra/gu/cosf.o (.data); /*edited*/ - build/e/src/libultra/gu/sinf.o (.data); /*edited*/ - build/e/src/libultrare/os/destroythread.o (.data); - build/e/src/libultra/audio/seqplayer.o (.data); - build/e/src/libultra/audio/synstartvoiceparam.o (.data); - build/e/src/libultra/audio/copy.o (.data); - /*build/e/src/libultra/io/piacs.o (.data);*/ - build/e/src/libultra/libc/xlitob.o (.data); /* 0x5190 */ - build/e/src/libultra/libc/xldtob.o (.data); - /*build/e/src/libultrare/io/epirawdma.o (.data);*/ - /*build/e/src/libultrare/io/devmgr.o (.data);*/ - build/e/src/libultra/io/contpfs.o (.data); - build/e/src/libultra/io/si.o (.data); - build/e/src/libultra/gu/normalize.o (.data); - build/e/src/libultra/gu/sqrtf.o (.data); - /*build/e/src/libultrare/io/leodiskinit.o (.data);*/ - /*build/e/src/libultra/os/setcompare.o (.data);*/ - build/e/src/libultra/audio/filter.o (.data); - build/e/src/libultrare/audio/reverb.o (.data); /*edited*/ /* 0x51c0 */ - build/e/src/libultra/gu/libm_vals.o (.data); /*edited*/ - build/e/src/libultra/audio/seq.o (.data); - build/e/src/libultra/audio/synsetpriority.o (.data); - build/e/src/libultra/libc/ldiv.o (.data); - /*build/e/src/libultra/os/resetglobalintmask.o (.data);*/ - /*build/e/src/libultrare/io/epirawwrite.o (.data);*/ - build/e/src/libultrare/ultra80069080.o (.data); /*edited*/ - /*build/e/src/libultra/libultra.a:libultra.o (.data);*/ - - build/e/src/aspboot.o (.rodata); - build/e/src/boot.o (.rodata); - build/e/src/init.o (.rodata); /* 0x51d0 */ - build/e/src/sched.o (.rodata); - build/e/src/osMapTLB.o (.rodata); - - build/e/src/libultrare/io/vimgr.o (.rodata); - build/e/src/libultrare/io/pimgr.o (.rodata); - - build/e/src/tlb_manage.o (.rodata); - build/e/src/tlb_random.o (.rodata); - build/e/src/tlb_resolve.o (.rodata); - build/e/src/tlb_hardwire.o (.rodata); - build/e/src/audi.o (.rodata); - build/e/src/speed_graph.o (.rodata); - build/e/src/fr.o (.rodata); - build/e/src/deb.o (.rodata); /* 0x5230 */ - build/e/src/fault.o (.rodata); - /*deb_print may be part of fault per pd beta (.rodata);*/ - build/e/src/deb_print.o (.rodata); /* 0x5240 */ - build/e/src/getra.o (.rodata); - build/e/src/ramrom.o (.rodata); - build/e/src/boss.o (.rodata); /* around 0x5b84 */ - build/e/src/music.o (.rodata); - build/e/src/snd.o (.rodata); - build/e/src/memp.o (.rodata); - build/e/src/mema.o (.rodata); - build/e/src/random.o (.rodata); - build/e/src/token.o (.rodata); - build/e/src/str.o (.rodata); - build/e/src/sprintf.o (.rodata); - build/e/src/pi.o (.rodata); - build/e/src/vi.o (.rodata); - build/e/src/debugmenu.o (.rodata); - build/e/src/joy.o (.rodata); - build/e/src/motor.o (.rodata); - build/e/src/libultrare/io/leointerrupt.o (.rodata); - build/e/src/rmon.o (.rodata); - - /*build/e/src/libultra/osPiRawStartDma.o (.rodata);*/ - build/e/src/libultra/io/pirawdma.o (.rodata); - build/e/src/libultra/io/pigetstat.o (.rodata); - build/e/src/libultrare/os/initialize.o (.rodata); - build/e/src/libultra/os/writebackdcacheall.o (.rodata); - build/e/src/libultra/os/invalicache.o (.rodata); - build/e/src/libultra/os/unmaptlb.o (.rodata); - build/e/src/libultra/os/getfpccsr.o (.rodata); - build/e/src/libultra/os/setfpccsr.o (.rodata); - build/e/src/libultra/os/createthread.o (.rodata); - build/e/src/libultra/os/startthread.o (.rodata); - build/e/src/libultra/os/createmesgqueue.o (.rodata); - build/e/src/libultra/os/parameters.o (.rodata); - build/e/src/libultra/os/stopthread.o (.rodata); - build/e/src/libultra/os/setthreadpri.o (.rodata); - build/e/src/libultra/os/getcount.o (.rodata); - /*build/e/src/libultrare/io/vimgr.o (.rodata);*/ - build/e/src/libultrare/io/vitbl.o (.rodata); /*edited*/ - build/e/src/libultra/os/seteventmesg.o (.rodata); - build/e/src/libultra/io/visetevent.o (.rodata); - build/e/src/libultra/os/setintmask.o (.rodata); - build/e/src/libultra/os/recvmesg.o (.rodata); - build/e/src/libultra/os/sendmesg.o (.rodata); - build/e/src/libultra/io/visetmode.o (.rodata); - build/e/src/libultra/io/visetxscale.o (.rodata); - build/e/src/libultra/io/visetyscale.o (.rodata); - build/e/src/libultra/io/virepeatline.o (.rodata); - build/e/src/libultra/io/viblack.o (.rodata); - build/e/src/libultra/io/sptaskyielded.o (.rodata); - build/e/src/libultra/io/dpctr.o (.rodata); - build/e/src/libultra/io/vigetcurrframebuf.o (.rodata); - build/e/src/libultra/io/vigetnextframebuf.o (.rodata); - build/e/src/libultra/io/viswapbuf.o (.rodata); - build/e/src/libultra/io/dpsetstat.o (.rodata); - build/e/src/libultrare/io/sptask.o (.rodata); - build/e/src/libultra/io/dpsetnextbuf.o (.rodata); - build/e/src/libultra/io/sptaskyield.o (.rodata); - build/e/src/libultra/os/timerintr.o (.rodata); - build/e/src/libultra/os/getthreadpri.o (.rodata); - build/e/src/libultra/os/interrupt.o (.rodata); - build/e/src/libultrare/io/vi.o (.rodata); - build/e/src/libultra/io/vigetcurrcontext.o (.rodata); - build/e/src/libultra/io/viswapcontext.o (.rodata); - build/e/src/libultra/io/piacs.o (.rodata); - build/e/src/libultrare/io/epirawdma.o (.rodata); - build/e/src/libultrare/io/devmgr.o (.rodata); - - - - - - build/e/src/libultra/os/gettlbhi.o (.rodata); - build/e/src/libultra/os/virtualtophysical.o (.rodata); - build/e/src/libultra/io/aisetfreq.o (.rodata); - build/e/src/libultra/audio/sl.o (.rodata); - build/e/src/libultra/audio/heapalloc.o (.rodata); - build/e/src/libultra/os/gettime.o (.rodata); - build/e/src/libultra/libc/ll.o (.rodata); /*edited*/ - build/e/src/libultrare/io/aisetnextbuf.o (.rodata); - build/e/src/libultra/io/aigetlen.o (.rodata); - build/e/src/libultra/audio/synthesizer.o (.rodata); - build/e/src/libultra/io/pidma.o (.rodata); - build/e/src/libultra/io/visetspecial.o (.rodata); - build/e/src/libultra/libc/bcopy.o (.rodata); - build/e/src/libultra/gu/perspective.o (.rodata); - build/e/src/libultra/gu/mtxutil.o (.rodata); - build/e/src/libultra/os/getcurrfaultthread.o (.rodata); - build/e/src/libultra/os/exception.o (.rodata); /*edited*/ - build/e/src/libultra/os/thread.o (.rodata); - build/e/src/libultra/os/yieldthread.o (.rodata); - build/e/src/libultra/os/invaldcache.o (.rodata); - build/e/src/libultra/os/writebackdcache.o (.rodata); - build/e/src/libultra/os/settimer.o (.rodata); - build/e/src/libultra/audio/heapinit.o (.rodata); - build/e/src/libultra/audio/bnkf.o (.rodata); - build/e/src/libultra/audio/csplayer.o (.rodata); - build/e/src/libultra/audio/seqpsetbank.o (.rodata); - build/e/src/libultra/audio/cspgetstate.o (.rodata); - build/e/src/libultra/audio/cseq.o (.rodata); - build/e/src/libultra/audio/cspsetseq.o (.rodata); - build/e/src/libultra/audio/cspplay.o (.rodata); - build/e/src/libultra/audio/cspstop.o (.rodata); - build/e/src/libultra/audio/cspsetvol.o (.rodata); - build/e/src/libultra/audio/event.o (.rodata); - build/e/src/libultra/audio/synaddplayer.o (.rodata); - build/e/src/libultra/audio/synallocvoice.o (.rodata); - build/e/src/libultra/audio/synsetvol.o (.rodata); - build/e/src/libultra/audio/synstartvoice.o (.rodata); - build/e/src/libultra/audio/synsetpan.o (.rodata); - build/e/src/libultra/audio/synsetpitch.o (.rodata); - build/e/src/libultra/audio/synsetfxmix.o (.rodata); - build/e/src/libultra/audio/synstopvoice.o (.rodata); - build/e/src/libultra/audio/synfreevoice.o (.rodata); - build/e/src/libultra/audio/cents2ratio.o (.rodata); - build/e/src/libultra/io/piread.o (.rodata); - build/e/src/libultra/libc/string.o (.rodata); - build/e/src/libultrare/libc/xprintf.o (.rodata); - /*build/e/src/libultrare/io/pimgr.o (.rodata);*/ - build/e/src/libultrare/io/pfsinit.o (.rodata); - build/e/src/libultrare/io/controller.o (.rodata); - build/e/src/libultra/io/contquery.o (.rodata); - build/e/src/libultrare/io/contreaddata.o (.rodata); - build/e/src/libultrare/io/conteepprobe.o (.rodata); - build/e/src/libultrare/io/conteepread.o (.rodata); - build/e/src/libultrare/io/conteepwrite.o (.rodata); - build/e/src/libultrare/io/conteeplongread.o (.rodata); - build/e/src/libultrare/io/conteeplongwrite.o (.rodata); - build/e/src/libultrare/io/pfsisplug.o (.rodata); - build/e/src/libultra/io/siacs.o (.rodata); - build/e/src/libultra/io/sirawdma.o (.rodata); - build/e/src/libultra/io/crc.o (.rodata); - build/e/src/libultrare/io/contramwrite.o (.rodata); - build/e/src/libultrare/io/contramread.o (.rodata); - build/e/src/libultra/gu/align.o (.rodata); - build/e/src/libultra/gu/ortho.o (.rodata); - build/e/src/libultra/gu/coss.o (.rodata); - build/e/src/libultra/gu/sins.o (.rodata); - build/e/src/libultra/gu/translate.o (.rodata); - build/e/src/libultra/libc/bcmp.o (.rodata); - build/e/src/libultra/gu/scale.o (.rodata); - build/e/src/libultra/gu/lookatref.o (.rodata); - build/e/src/libultra/gu/lookat.o (.rodata); - build/e/src/libultra/gu/rotate.o (.rodata); - build/e/src/libultra/libc/llcvt.o (.rodata); /*edited*/ - build/e/src/libultra/os/setsr.o (.rodata); - build/e/src/libultra/os/getsr.o (.rodata); - build/e/src/libultra/io/sirawread.o (.rodata); - build/e/src/libultra/io/sirawwrite.o (.rodata); - build/e/src/libultra/io/pirawread.o (.rodata); - build/e/src/libultra/libc/bzero.o (.rodata); - build/e/src/libultra/os/sethwinterrupt.o (.rodata); - /*build/e/src/libultrare/io/leointerrupt.o (.rodata);*/ - /*build/e/src/libultra/os/interrupt.o (.rodata);*/ - /*build/e/src/libultra/os/timerintr.o (.rodata);*/ - build/e/src/libultra/os/kdebugserver.o (.rodata); - /*build/e/src/libultra/os/getthreadpri.o (.rodata);*/ - /*build/e/src/libultrare/io/vi.o (.rodata);*/ /*edited*/ -/* build/e/src/libultra/io/vigetcurrcontext.o (.rodata);*/ - /*build/e/src/libultra/io/viswapcontext.o (.rodata);*/ - build/e/src/libultra/io/spgetstat.o (.rodata); - build/e/src/libultra/io/spsetstat.o (.rodata); - build/e/src/libultra/io/spsetpc.o (.rodata); - build/e/src/libultra/io/sprawdma.o (.rodata); - build/e/src/libultra/io/sp.o (.rodata); - build/e/src/libultra/io/dp.o (.rodata); - build/e/src/libultra/os/setcompare.o (.rodata); - build/e/src/libultra/os/resetglobalintmask.o (.rodata); - build/e/src/libultrare/io/epirawwrite.o (.rodata); - - build/e/src/libultra/os/probetlb.o (.rodata); - build/e/src/libultra/audio/syndelete.o (.rodata); - build/e/src/libultra/io/ai.o (.rodata); - build/e/src/libultrare/audio/drvrNew.o (.rodata); - build/e/src/libultra/audio/synallocfx.o (.rodata); - build/e/src/libultra/audio/mainbus.o (.rodata); - build/e/src/libultra/audio/load.o (.rodata); - build/e/src/libultra/audio/resample.o (.rodata); - build/e/src/libultrare/audio/env.o (.rodata); /*edited*/ - build/e/src/libultra/audio/auxbus.o (.rodata); - build/e/src/libultra/audio/save.o (.rodata); - build/e/src/libultra/os/jammesg.o (.rodata); - build/e/src/libultra/io/pigetcmdq.o (.rodata); - build/e/src/libultra/gu/cosf.o (.rodata); /*edited*/ - build/e/src/libultra/gu/sinf.o (.rodata); /*edited*/ - build/e/src/libultrare/os/destroythread.o (.rodata); - build/e/src/libultra/audio/seqplayer.o (.rodata); - build/e/src/libultra/audio/synstartvoiceparam.o (.rodata); - build/e/src/libultra/audio/copy.o (.rodata); - /*build/e/src/libultra/io/piacs.o (.rodata);*/ - build/e/src/libultra/libc/xlitob.o (.rodata); - build/e/src/libultra/libc/xldtob.o (.rodata); - /*build/e/src/libultrare/io/epirawdma.o (.rodata);*/ - /*build/e/src/libultrare/io/devmgr.o (.rodata);*/ - build/e/src/libultra/io/contpfs.o (.rodata); - build/e/src/libultra/io/si.o (.rodata); - build/e/src/libultra/gu/normalize.o (.rodata); - build/e/src/libultra/gu/sqrtf.o (.rodata); - /*build/e/src/libultrare/io/leodiskinit.o (.rodata);*/ - /*build/e/src/libultra/os/setcompare.o (.rodata);*/ - build/e/src/libultra/audio/filter.o (.rodata); - build/e/src/libultrare/audio/reverb.o (.rodata); /*edited*/ - build/e/src/libultra/gu/libm_vals.o (.rodata); /*edited*/ - build/e/src/libultra/audio/seq.o (.rodata); - build/e/src/libultra/audio/synsetpriority.o (.rodata); - build/e/src/libultra/libc/ldiv.o (.rodata); - /*build/e/src/libultra/os/resetglobalintmask.o (.rodata);*/ - /*build/e/src/libultrare/io/epirawwrite.o (.rodata);*/ - build/e/src/libultra/io/vimodentsclan1.o (.rodata); - build/e/src/libultrare/io/vimodepallan1.o (.rodata); - build/e/src/libultrare/ultra80069080.o (.rodata); /*edited*/ - /*build/e/src/libultra/libultra.a:libultra.o (.rodata);*/ - - build/e/src/game/initgamedata.o (.data); - build/e/src/game/initweaponanigroups.o (.data); - build/e/src/game/initactorpropstuff.o (.data); - build/e/src/game/initnull_0009D0.o (.data); - build/e/src/game/initunk_0009E0.o (.data); - build/e/src/game/initanitable.o (.data); - build/e/src/game/initplayergaitobject.o (.data); - build/e/src/game/setguscale.o (.data); - build/e/src/game/initnull_000BC0.o (.data); - build/e/src/game/initimages.o (.data); - build/e/src/game/initintromatrices.o (.data); - build/e/src/game/initmenus.o (.data); - build/e/src/game/initguards.o (.data); - build/e/src/game/deb_loadallmodels.o (.data); - build/e/src/game/initobjects.o (.data); - build/e/src/game/prop.o (.data); - build/e/src/game/objective.o (.data); - build/e/src/game/ejectedcartridges.o (.data); - build/e/src/game/initBondDATA.o (.data); /* 0x6cd0 */ - build/e/src/game/initunk_005450.o (.data); - build/e/src/game/initunk_005520.o (.data); - build/e/src/game/bondview_r.o (.data); - build/e/src/game/inititemslots.o (.data); - build/e/src/game/initBondDATAdefaults.o (.data); - build/e/src/game/initpathtablesomething.o (.data); - build/e/src/game/initpathtablelinks.o (.data); - build/e/src/game/initexplosioncasing.o (.data); - build/e/src/game/alloc_window_pieces.o (.data); - build/e/src/game/initunk_007290.o (.data); - build/e/src/game/initcheattext.o (.data); - build/e/src/game/initmttex.o (.data); - build/e/src/game/cleanup_guard_data.o (.data); - build/e/src/game/cleanup_object_sounds.o (.data); - build/e/src/game/cleanup_alarms.o (.data); - build/e/src/game/cleanup_objects.o (.data); - build/e/src/game/cleanup_objectives.o (.data); - build/e/src/game/cleanupSFXRelated.o (.data); - build/e/src/game/playerstats_007770.o (.data); - build/e/src/game/cleanexplosions.o (.data); - build/e/src/game/cleanwindowpieces.o (.data); - build/e/src/game/null_007970.o (.data); - build/e/src/game/cleanplayersound.o (.data); - build/e/src/game/title.o (.data); - build/e/src/game/front.o (.data); /* around 0x7800 + */ - build/e/src/game/unk_01B0E0.o (.data); - build/e/src/game/unk_01B240.o (.data); - build/e/src/game/unk_01BAE0.o (.data); - build/e/src/game/blood_animation.o (.data); - build/e/src/game/blood_decrypt.o (.data); - build/e/src/game/file.o (.data); - build/e/src/game/file2.o (.data); - build/e/src/game/chr.o (.data); - build/e/src/game/chr_b.o (.data); - build/e/src/game/chrlv.o (.data); - build/e/src/game/chrai.o (.data); - build/e/src/game/chrprop.o (.data); - build/e/src/game/chrobjhandler.o (.data); - build/e/src/game/loadobjectmodel.o (.data); - build/e/src/game/objective_status.o (.data); - build/e/src/game/objective_status2.o (.data); - build/e/src/game/math_sincos.o (.data); - build/e/src/game/matrixmath.o (.data); - build/e/src/game/math_unk_05A9E0.o (.data); - build/e/src/game/math_atan2f.o (.data); - build/e/src/game/math_asinacos.o (.data); - build/e/src/game/math_asinfacosf.o (.data); - build/e/src/game/matrixmath_misc.o (.data); - build/e/src/game/quaternion.o (.data); - build/e/src/game/math_floor.o (.data); - build/e/src/game/math_ceil.o (.data); - build/e/src/game/gun.o (.data); - build/e/src/game/bondwalk2.o (.data); - build/e/src/game/objecthandler.o (.data); - build/e/src/game/objecthandler_1.o (.data); - build/e/src/game/objecthandler_2.o (.data); - build/e/src/game/othermodemicrocode.o (.data); - build/e/src/game/bondview.o (.data); /* 0x12d20 */ - build/e/src/game/bondinv.o (.data); - build/e/src/game/bondhead.o (.data); /* around 0x133d0 */ - build/e/src/game/padhalllv.o (.data); - build/e/src/game/debugmenu_08FE00.o (.data); - build/e/src/game/debugmenu_handler.o (.data); /* around 0x133a0 */ - build/e/src/game/unk_091080.o (.data); - build/e/src/game/chraidata.o (.data); - build/e/src/game/pobjdata.o (.data); /* 0x13a30 */ - build/e/src/game/gobjdata.o (.data); - build/e/src/game/gobjdata2.o (.data); - build/e/src/game/cobjdata.o (.data); - build/e/src/game/cheat_buttons.o (.data); - build/e/src/game/unk_092890.o (.data); - build/e/src/game/unk_092E50.o (.data); /* around 0x01ae90 */ - build/e/src/game/player.o (.data); - build/e/src/game/player_2.o (.data); - build/e/src/game/crc.o (.data); - build/e/src/game/chrObjRandom.o (.data); /* 0x01b160 */ - build/e/src/game/unk_09B7A0.o (.data); - build/e/src/game/explosions.o (.data); /* around 0x01b170 */ - build/e/src/game/unk_0A1DA0.o (.data); - build/e/src/game/watch.o (.data); - build/e/src/game/textrelated.o (.data); /* 0x1be80 */ - build/e/src/game/stan.o (.data); /* 0x1bf30 */ - build/e/src/game/unk_0B3200.o (.data); - build/e/src/game/bg.o (.data); /* 0x1bff0 */ - build/e/src/game/bg2.o (.data); - build/e/src/game/fog.o (.data); - build/e/src/game/lightfixture.o (.data); /* 0x1fe60 */ - build/e/src/game/unk_0BC530.o (.data); - build/e/src/game/ob.o (.data); /* 0x1fe70 */ - build/e/src/game/dyn.o (.data); - build/e/src/game/lvl.o (.data); /* 0x22390 */ - build/e/src/game/ramromreplay.o (.data); - build/e/src/game/unk_0C0A70.o (.data); - build/e/src/game/mp_music.o (.data); - build/e/src/game/lvl_text.o (.data); /* 0x22500 */ - build/e/src/game/mp_watch.o (.data); - build/e/src/game/radar.o (.data); - build/e/src/game/mp_weapon.o (.data); /* 0x226a0 */ - build/e/src/game/image.o (.data); - build/e/src/game/image_bank.o (.data); - build/e/src/game/unk_0CC4C0.o (.data); - build/e/src/game/decompress.o (.data); - build/e/src/game/zlib.o (.data); - build/e/src/game/rsp.o (.data); - build/e/src/game/indy_comms.o (.data); - build/e/src/game/indy_commands.o (.data); - build/e/src/game/game_debug.o (.data); - build/e/src/game/compiletime.o (.data); - build/e/src/game/unk_0D1AC0.o (.data); - build/e/src/game/viewport.o (.data); - build/e/src/game/music_0D2720.o (.data); - /*build/e/src/game/spectrum.o (.data);*/ - - build/e/src/game/initgamedata.o (.rodata); - build/e/src/game/initweaponanigroups.o (.rodata); - build/e/src/game/initactorpropstuff.o (.rodata); - build/e/src/game/initnull_0009D0.o (.rodata); - build/e/src/game/initunk_0009E0.o (.rodata); - build/e/src/game/initanitable.o (.rodata); - build/e/src/game/initplayergaitobject.o (.rodata); - build/e/src/game/setguscale.o (.rodata); - build/e/src/game/initnull_000BC0.o (.rodata); - build/e/src/game/initimages.o (.rodata); - build/e/src/game/initintromatrices.o (.rodata); - build/e/src/game/initmenus.o (.rodata); - build/e/src/game/initguards.o (.rodata); - build/e/src/game/deb_loadallmodels.o (.rodata); - build/e/src/game/initobjects.o (.rodata); - build/e/src/game/prop.o (.rodata); /* 0x28580 */ - build/e/src/game/objective.o (.rodata); - build/e/src/game/ejectedcartridges.o (.rodata); - build/e/src/game/initBondDATA.o (.rodata); - build/e/src/game/initunk_005450.o (.rodata); - build/e/src/game/initunk_005520.o (.rodata); - build/e/src/game/bondview_r.o (.rodata); /* around 0x289a0 */ - build/e/src/game/inititemslots.o (.rodata); - build/e/src/game/initBondDATAdefaults.o (.rodata); - build/e/src/game/initpathtablesomething.o (.rodata); - build/e/src/game/initpathtablelinks.o (.rodata); - build/e/src/game/initexplosioncasing.o (.rodata); - build/e/src/game/alloc_window_pieces.o (.rodata); - build/e/src/game/initunk_007290.o (.rodata); - build/e/src/game/initcheattext.o (.rodata); - build/e/src/game/initmttex.o (.rodata); - build/e/src/game/cleanup_guard_data.o (.rodata); - build/e/src/game/cleanup_object_sounds.o (.rodata); - build/e/src/game/cleanup_alarms.o (.rodata); - build/e/src/game/cleanup_objects.o (.rodata); - build/e/src/game/cleanup_objectives.o (.rodata); - build/e/src/game/cleanupSFXRelated.o (.rodata); - build/e/src/game/playerstats_007770.o (.rodata); - build/e/src/game/cleanexplosions.o (.rodata); - build/e/src/game/cleanwindowpieces.o (.rodata); - build/e/src/game/null_007970.o (.rodata); - build/e/src/game/cleanplayersound.o (.rodata); - build/e/src/game/title.o (.rodata); /* around 0x28ad0 */ - build/e/src/game/front.o (.rodata); /* 0x28b10 */ - build/e/src/game/unk_01B0E0.o (.rodata); - build/e/src/game/unk_01B240.o (.rodata); - build/e/src/game/unk_01BAE0.o (.rodata); - build/e/src/game/blood_animation.o (.rodata); - build/e/src/game/blood_decrypt.o (.rodata); - build/e/src/game/file.o (.rodata); - build/e/src/game/file2.o (.rodata); - build/e/src/game/chr.o (.rodata); /* around 0x291e0 */ - build/e/src/game/chr_b.o (.rodata); /* 0x29270 */ - build/e/src/game/chrlv.o (.rodata); /* 0x29280 */ - build/e/src/game/chrai.o (.rodata); - build/e/src/game/chrprop.o (.rodata); - build/e/src/game/chrobjhandler.o (.rodata); /* around 0x29f10 */ - build/e/src/game/loadobjectmodel.o (.rodata); - build/e/src/game/objective_status.o (.rodata); /* around 0x2ab40 */ - build/e/src/game/objective_status2.o (.rodata); - build/e/src/game/math_sincos.o (.rodata); - build/e/src/game/matrixmath.o (.rodata); - build/e/src/game/math_unk_05A9E0.o (.rodata); - build/e/src/game/math_atan2f.o (.rodata); - build/e/src/game/math_asinacos.o (.rodata); - build/e/src/game/math_asinfacosf.o (.rodata); - build/e/src/game/matrixmath_misc.o (.rodata); - build/e/src/game/quaternion.o (.rodata); - build/e/src/game/math_floor.o (.rodata); - build/e/src/game/math_ceil.o (.rodata); - build/e/src/game/gun.o (.rodata); /* around 0x2b140 (this is after gun includes) */ - build/e/src/game/bondwalk2.o (.rodata); - build/e/src/game/objecthandler.o (.rodata); - build/e/src/game/objecthandler_1.o (.rodata); - build/e/src/game/objecthandler_2.o (.rodata); - build/e/src/game/othermodemicrocode.o (.rodata); - build/e/src/game/bondview.o (.rodata); /* around 0x2c000 up to 0x2c258 */ - build/e/src/game/bondinv.o (.rodata); - build/e/src/game/bondhead.o (.rodata); - build/e/src/game/padhalllv.o (.rodata); - build/e/src/game/debugmenu_08FE00.o (.rodata); - build/e/src/game/debugmenu_handler.o (.rodata); - build/e/src/game/unk_091080.o (.rodata); - build/e/src/game/chraidata.o (.rodata); /* around 0x2c2e0 */ - build/e/src/game/pobjdata.o (.rodata); - build/e/src/game/gobjdata.o (.rodata); - build/e/src/game/gobjdata2.o (.rodata); - build/e/src/game/cobjdata.o (.rodata); - build/e/src/game/cheat_buttons.o (.rodata); - build/e/src/game/unk_092890.o (.rodata); - build/e/src/game/unk_092E50.o (.rodata); - build/e/src/game/player.o (.rodata); - build/e/src/game/player_2.o (.rodata); /* around 0x2e000 */ - build/e/src/game/crc.o (.rodata); - build/e/src/game/chrObjRandom.o (.rodata); - build/e/src/game/unk_09B7A0.o (.rodata); - build/e/src/game/explosions.o (.rodata); - build/e/src/game/unk_0A1DA0.o (.rodata); - build/e/src/game/watch.o (.rodata); /* around 0x2e250 */ - build/e/src/game/textrelated.o (.rodata); - build/e/src/game/stan.o (.rodata); - build/e/src/game/unk_0B3200.o (.rodata); - build/e/src/game/bg.o (.rodata); - build/e/src/game/bg2.o (.rodata); - build/e/src/game/fog.o (.rodata); - build/e/src/game/lightfixture.o (.rodata); - build/e/src/game/unk_0BC530.o (.rodata); - build/e/src/game/ob.o (.rodata); - build/e/src/game/dyn.o (.rodata); - build/e/src/game/lvl.o (.rodata); - build/e/src/game/ramromreplay.o (.rodata); - build/e/src/game/unk_0C0A70.o (.rodata); - build/e/src/game/mp_music.o (.rodata); /* around 0x31700 */ - build/e/src/game/lvl_text.o (.rodata); - build/e/src/game/mp_watch.o (.rodata); - build/e/src/game/radar.o (.rodata); - build/e/src/game/mp_weapon.o (.rodata); - build/e/src/game/image.o (.rodata); - build/e/src/game/image_bank.o (.rodata); - build/e/src/game/unk_0CC4C0.o (.rodata); - build/e/src/game/decompress.o (.rodata); - build/e/src/game/zlib.o (.rodata); - build/e/src/game/rsp.o (.rodata); - build/e/src/game/indy_comms.o (.rodata); - build/e/src/game/indy_commands.o (.rodata); - build/e/src/game/game_debug.o (.rodata); - build/e/src/game/compiletime.o (.rodata); - build/e/src/game/unk_0D1AC0.o (.rodata); - build/e/src/game/viewport.o (.rodata); - build/e/src/game/music_0D2720.o (.rodata); - /*build/e/src/game/spectrum.o (.rodata);*/ - - build/e/src/gspboot.o (.data); - build/e/src/aspboot.o (.data); - } - _csegmentSegmentEnd = ADDR(.csegment) + SIZEOF(.csegment); - _csegmentSegmentRomEnd = _csegmentSegmentRomStart + SIZEOF(.csegment); - - __dataSegmentVaddrEnd = _csegmentSegmentRomEnd; - - _bssSegmentStart = ADDR(.bss); - .bss (NOLOAD) : - { - build/e/src/boot.o (.bss); - build/e/src/init.o (.bss); - build/e/src/sched.o (.bss); - build/e/src/osMapTLB.o (.bss); - - build/e/src/libultrare/io/vimgr.o (.bss); - build/e/src/libultrare/io/pimgr.o (.bss); - - build/e/src/tlb_manage.o (.bss); - build/e/src/tlb_random.o (.bss); - build/e/src/tlb_resolve.o (.bss); - build/e/src/audi.o (.bss); - build/e/src/speed_graph.o (.bss); - build/e/src/fr.o (.bss); - build/e/src/deb.o (.bss); - build/e/src/fault.o (.bss); - /*deb_print may be part of fault per pd beta (.bss);*/ - build/e/src/deb_print.o (.bss); - build/e/src/getra.o (.bss); - build/e/src/ramrom.o (.bss); - build/e/src/boss.o (.bss); - build/e/src/music.o (.bss); - build/e/src/snd.o (.bss); - build/e/src/memp.o (.bss); - build/e/src/mema.o (.bss); - build/e/src/random.o (.bss); - build/e/src/token.o (.bss); - build/e/src/str.o (.bss); - build/e/src/sprintf.o (.bss); - build/e/src/pi.o (.bss); - build/e/src/vi.o (.bss); - build/e/src/debugmenu.o (.bss); - build/e/src/joy.o (.bss); - build/e/src/motor.o (.bss); - build/e/src/libultrare/io/leointerrupt.o (.bss); - build/e/src/rmon.o (.bss); - - /*build/e/src/libultra/osPiRawStartDma.o (.bss);*/ - build/e/src/libultra/io/pirawdma.o (.bss); - build/e/src/libultra/io/pigetstat.o (.bss); - build/e/src/libultrare/os/initialize.o (.bss); - build/e/src/libultra/os/writebackdcacheall.o (.bss); - build/e/src/libultra/os/invalicache.o (.bss); - build/e/src/libultra/os/unmaptlb.o (.bss); - build/e/src/libultra/os/getfpccsr.o (.bss); - build/e/src/libultra/os/setfpccsr.o (.bss); - build/e/src/libultra/os/createthread.o (.bss); - build/e/src/libultra/os/startthread.o (.bss); - build/e/src/libultra/os/createmesgqueue.o (.bss); - build/e/src/libultra/os/parameters.o (.bss); - build/e/src/libultra/os/stopthread.o (.bss); - build/e/src/libultra/os/setthreadpri.o (.bss); - build/e/src/libultra/os/getcount.o (.bss); - /*build/e/src/libultrare/io/vimgr.o (.bss);*/ - build/e/src/libultrare/io/vitbl.o (.bss); /*edited*/ - build/e/src/libultra/os/seteventmesg.o (.bss); - build/e/src/libultra/io/visetevent.o (.bss); - build/e/src/libultra/os/setintmask.o (.bss); - build/e/src/libultra/os/recvmesg.o (.bss); - build/e/src/libultra/os/sendmesg.o (.bss); - build/e/src/libultra/io/visetmode.o (.bss); - build/e/src/libultra/io/visetxscale.o (.bss); - build/e/src/libultra/io/visetyscale.o (.bss); - build/e/src/libultra/io/virepeatline.o (.bss); - build/e/src/libultra/io/viblack.o (.bss); - build/e/src/libultra/io/sptaskyielded.o (.bss); - build/e/src/libultra/io/dpctr.o (.bss); - build/e/src/libultra/io/vigetcurrframebuf.o (.bss); - build/e/src/libultra/io/vigetnextframebuf.o (.bss); - build/e/src/libultra/io/viswapbuf.o (.bss); - build/e/src/libultra/io/dpsetstat.o (.bss); - build/e/src/libultrare/io/sptask.o (.bss); - build/e/src/libultra/io/dpsetnextbuf.o (.bss); - build/e/src/libultra/io/sptaskyield.o (.bss); - - build/e/src/libultra/os/timerintr.o (.bss); - build/e/src/libultra/os/getthreadpri.o (.bss); - build/e/src/libultra/os/interrupt.o (.bss); - build/e/src/libultrare/io/vi.o (.bss); /*edited*/ - build/e/src/libultra/io/vigetcurrcontext.o (.bss); - build/e/src/libultra/io/viswapcontext.o (.bss); - build/e/src/libultra/io/piacs.o (.bss); - build/e/src/libultrare/io/epirawdma.o (.bss); - build/e/src/libultrare/io/devmgr.o (.bss); - - - - - build/e/src/libultra/os/gettlbhi.o (.bss); - build/e/src/libultra/os/virtualtophysical.o (.bss); - build/e/src/libultra/io/aisetfreq.o (.bss); - build/e/src/libultra/audio/sl.o (.bss); - build/e/src/libultra/audio/heapalloc.o (.bss); - build/e/src/libultra/os/gettime.o (.bss); - build/e/src/libultra/libc/ll.o (.bss); /*edited*/ - build/e/src/libultrare/io/aisetnextbuf.o (.bss); - build/e/src/libultra/io/aigetlen.o (.bss); - build/e/src/libultra/audio/synthesizer.o (.bss); - build/e/src/libultra/io/pidma.o (.bss); - build/e/src/libultra/io/visetspecial.o (.bss); - build/e/src/libultra/libc/bcopy.o (.bss); - build/e/src/libultra/gu/perspective.o (.bss); - build/e/src/libultra/gu/mtxutil.o (.bss); - build/e/src/libultra/os/getcurrfaultthread.o (.bss); - build/e/src/libultra/os/exception.o (.bss); /*edited*/ - build/e/src/libultra/os/thread.o (.bss); - build/e/src/libultra/os/yieldthread.o (.bss); - build/e/src/libultra/os/invaldcache.o (.bss); - build/e/src/libultra/os/writebackdcache.o (.bss); - build/e/src/libultra/os/settimer.o (.bss); - build/e/src/libultra/audio/heapinit.o (.bss); - build/e/src/libultra/audio/bnkf.o (.bss); - build/e/src/libultra/audio/csplayer.o (.bss); - build/e/src/libultra/audio/seqpsetbank.o (.bss); - build/e/src/libultra/audio/cspgetstate.o (.bss); - build/e/src/libultra/audio/cseq.o (.bss); - build/e/src/libultra/audio/cspsetseq.o (.bss); - build/e/src/libultra/audio/cspplay.o (.bss); - build/e/src/libultra/audio/cspstop.o (.bss); - build/e/src/libultra/audio/cspsetvol.o (.bss); - build/e/src/libultra/audio/event.o (.bss); - build/e/src/libultra/audio/synaddplayer.o (.bss); - build/e/src/libultra/audio/synallocvoice.o (.bss); - build/e/src/libultra/audio/synsetvol.o (.bss); - build/e/src/libultra/audio/synstartvoice.o (.bss); - build/e/src/libultra/audio/synsetpan.o (.bss); - build/e/src/libultra/audio/synsetpitch.o (.bss); - build/e/src/libultra/audio/synsetfxmix.o (.bss); - build/e/src/libultra/audio/synstopvoice.o (.bss); - build/e/src/libultra/audio/synfreevoice.o (.bss); - build/e/src/libultra/audio/cents2ratio.o (.bss); - build/e/src/libultra/io/piread.o (.bss); - build/e/src/libultra/libc/string.o (.bss); - build/e/src/libultrare/libc/xprintf.o (.bss); - /*build/e/src/libultrare/io/pimgr.o (.bss);*/ - build/e/src/libultrare/io/pfsinit.o (.bss); - - build/e/src/libultrare/io/controller.o (.bss); - build/e/src/libultra/io/contquery.o (.bss); - build/e/src/libultrare/io/contreaddata.o (.bss); - build/e/src/libultrare/io/conteepprobe.o (.bss); - build/e/src/libultrare/io/conteepread.o (.bss); - build/e/src/libultrare/io/conteepwrite.o (.bss); - build/e/src/libultrare/io/conteeplongread.o (.bss); - build/e/src/libultrare/io/conteeplongwrite.o (.bss); - build/e/src/libultrare/io/pfsisplug.o (.bss); - build/e/src/libultra/io/siacs.o (.bss); - build/e/src/libultra/io/sirawdma.o (.bss); - build/e/src/libultra/io/crc.o (.bss); - build/e/src/libultrare/io/contramwrite.o (.bss); - build/e/src/libultrare/io/contramread.o (.bss); - build/e/src/libultra/gu/align.o (.bss); - build/e/src/libultra/gu/ortho.o (.bss); - build/e/src/libultra/gu/coss.o (.bss); - build/e/src/libultra/gu/sins.o (.bss); - build/e/src/libultra/gu/translate.o (.bss); - build/e/src/libultra/libc/bcmp.o (.bss); - build/e/src/libultra/gu/scale.o (.bss); - build/e/src/libultra/gu/lookatref.o (.bss); - build/e/src/libultra/gu/lookat.o (.bss); - build/e/src/libultra/gu/rotate.o (.bss); - build/e/src/libultra/libc/llcvt.o (.bss); /*edited*/ - build/e/src/libultra/os/setsr.o (.bss); - build/e/src/libultra/os/getsr.o (.bss); - build/e/src/libultra/io/sirawread.o (.bss); - build/e/src/libultra/io/sirawwrite.o (.bss); - build/e/src/libultra/io/pirawread.o (.bss); - build/e/src/libultra/libc/bzero.o (.bss); - build/e/src/libultra/os/sethwinterrupt.o (.bss); - /*build/e/src/libultrare/io/leointerrupt.o (.bss);*/ - /*build/e/src/libultra/os/interrupt.o (.bss);*/ - /*build/e/src/libultra/os/timerintr.o (.bss);*/ - build/e/src/libultra/os/kdebugserver.o (.bss); - /*build/e/src/libultra/os/getthreadpri.o (.bss);*/ - /*build/e/src/libultrare/io/vi.o (.bss);*/ /*edited*/ - /*build/e/src/libultra/io/vigetcurrcontext.o (.bss);*/ - /*build/e/src/libultra/io/viswapcontext.o (.bss);*/ - build/e/src/libultra/io/spgetstat.o (.bss); - build/e/src/libultra/io/spsetstat.o (.bss); - build/e/src/libultra/io/spsetpc.o (.bss); - build/e/src/libultra/io/sprawdma.o (.bss); - build/e/src/libultra/io/sp.o (.bss); - build/e/src/libultra/io/dp.o (.bss); - build/e/src/libultra/os/setcompare.o (.bss); - build/e/src/libultra/os/resetglobalintmask.o (.bss); - build/e/src/libultrare/io/epirawwrite.o (.bss); - - build/e/src/libultra/os/probetlb.o (.bss); - build/e/src/libultra/audio/syndelete.o (.bss); - build/e/src/libultra/io/ai.o (.bss); - build/e/src/libultrare/audio/drvrNew.o (.bss); - build/e/src/libultra/audio/synallocfx.o (.bss); - build/e/src/libultra/audio/mainbus.o (.bss); - build/e/src/libultra/audio/load.o (.bss); - build/e/src/libultra/audio/resample.o (.bss); - build/e/src/libultrare/audio/env.o (.bss); /*edited*/ - build/e/src/libultra/audio/auxbus.o (.bss); - build/e/src/libultra/audio/save.o (.bss); - build/e/src/libultra/os/jammesg.o (.bss); - build/e/src/libultra/io/pigetcmdq.o (.bss); - build/e/src/libultra/gu/cosf.o (.bss); /*edited*/ - build/e/src/libultra/gu/sinf.o (.bss); /*edited*/ - build/e/src/libultrare/os/destroythread.o (.bss); - build/e/src/libultra/audio/seqplayer.o (.bss); - build/e/src/libultra/audio/synstartvoiceparam.o (.bss); - build/e/src/libultra/audio/copy.o (.bss); - /*build/e/src/libultra/io/piacs.o (.bss);*/ - build/e/src/libultra/libc/xlitob.o (.bss); - build/e/src/libultra/libc/xldtob.o (.bss); - /*build/e/src/libultrare/io/epirawdma.o (.bss);*/ - - /*build/e/src/libultrare/io/devmgr.o (.bss);*/ - build/e/src/libultra/io/contpfs.o (.bss); - build/e/src/libultra/io/si.o (.bss); - build/e/src/libultra/gu/normalize.o (.bss); - build/e/src/libultra/gu/sqrtf.o (.bss); - /*build/e/src/libultrare/io/leodiskinit.o (.bss);*/ - /*build/e/src/libultra/os/setcompare.o (.bss);*/ - build/e/src/libultra/audio/filter.o (.bss); - build/e/src/libultrare/audio/reverb.o (.bss); /*edited*/ - build/e/src/libultra/gu/libm_vals.o (.bss); /*edited*/ - build/e/src/libultra/audio/seq.o (.bss); - build/e/src/libultra/audio/synsetpriority.o (.bss); - build/e/src/libultra/libc/ldiv.o (.bss); - /*build/e/src/libultra/os/resetglobalintmask.o (.bss);*/ - /*build/e/src/libultrare/io/epirawwrite.o (.bss);*/ - build/e/src/libultra/io/vimodentsclan1.o (.bss); - build/e/src/libultrare/io/vimodepallan1.o (.bss); - build/e/src/libultrare/ultra80069080.o (.bss); /*edited*/ - /*build/e/src/libultra/libultra.a:libultra.o (.bss);*/ - - build/e/src/game/initgamedata.o (.bss); - build/e/src/game/initweaponanigroups.o (.bss); - build/e/src/game/initactorpropstuff.o (.bss); - build/e/src/game/initnull_0009D0.o (.bss); - build/e/src/game/initunk_0009E0.o (.bss); - build/e/src/game/initanitable.o (.bss); - build/e/src/game/initplayergaitobject.o (.bss); - build/e/src/game/setguscale.o (.bss); - - build/e/src/game/initnull_000BC0.o (.bss); - build/e/src/game/initimages.o (.bss); - build/e/src/game/initintromatrices.o (.bss); - build/e/src/game/initmenus.o (.bss); - build/e/src/game/initguards.o (.bss); - build/e/src/game/deb_loadallmodels.o (.bss); - build/e/src/game/initobjects.o (.bss); - build/e/src/game/prop.o (.bss); - build/e/src/game/objective.o (.bss); - build/e/src/game/ejectedcartridges.o (.bss); - build/e/src/game/initBondDATA.o (.bss); - build/e/src/game/initunk_005450.o (.bss); - build/e/src/game/initunk_005520.o (.bss); - build/e/src/game/bondview_r.o (.bss); - build/e/src/game/inititemslots.o (.bss); - build/e/src/game/initBondDATAdefaults.o (.bss); - build/e/src/game/initpathtablesomething.o (.bss); - build/e/src/game/initpathtablelinks.o (.bss); - build/e/src/game/initexplosioncasing.o (.bss); - build/e/src/game/alloc_window_pieces.o (.bss); - build/e/src/game/initunk_007290.o (.bss); - build/e/src/game/initcheattext.o (.bss); - build/e/src/game/initmttex.o (.bss); - build/e/src/game/cleanup_guard_data.o (.bss); - build/e/src/game/cleanup_object_sounds.o (.bss); - build/e/src/game/cleanup_alarms.o (.bss); - build/e/src/game/cleanup_objects.o (.bss); - build/e/src/game/cleanup_objectives.o (.bss); - build/e/src/game/cleanupSFXRelated.o (.bss); - build/e/src/game/playerstats_007770.o (.bss); - build/e/src/game/cleanexplosions.o (.bss); - build/e/src/game/cleanwindowpieces.o (.bss); - build/e/src/game/null_007970.o (.bss); - build/e/src/game/cleanplayersound.o (.bss); - build/e/src/game/title.o (.bss); - build/e/src/game/front.o (.bss); - build/e/src/game/unk_01B0E0.o (.bss); - build/e/src/game/unk_01B240.o (.bss); - build/e/src/game/unk_01BAE0.o (.bss); - build/e/src/game/blood_animation.o (.bss); - build/e/src/game/blood_decrypt.o (.bss); - build/e/src/game/file.o (.bss); - build/e/src/game/file2.o (.bss); - build/e/src/game/chr.o (.bss); - build/e/src/game/chr_b.o (.bss); - build/e/src/game/chrlv.o (.bss); - build/e/src/game/chrai.o (.bss); - build/e/src/game/chrprop.o (.bss); - build/e/src/game/chrobjhandler.o (.bss); - build/e/src/game/loadobjectmodel.o (.bss); - build/e/src/game/objective_status.o (.bss); - build/e/src/game/objective_status2.o (.bss); - build/e/src/game/math_sincos.o (.bss); - build/e/src/game/matrixmath.o (.bss); - build/e/src/game/math_unk_05A9E0.o (.bss); - build/e/src/game/math_atan2f.o (.bss); - build/e/src/game/math_asinacos.o (.bss); - build/e/src/game/math_asinfacosf.o (.bss); - build/e/src/game/matrixmath_misc.o (.bss); - build/e/src/game/quaternion.o (.bss); - build/e/src/game/math_floor.o (.bss); - build/e/src/game/math_ceil.o (.bss); - build/e/src/game/gun.o (.bss); - build/e/src/game/bondwalk2.o (.bss); - build/e/src/game/objecthandler.o (.bss); - build/e/src/game/objecthandler_1.o (.bss); - build/e/src/game/objecthandler_2.o (.bss); - build/e/src/game/othermodemicrocode.o (.bss); - build/e/src/game/bondview.o (.bss); - build/e/src/game/bondinv.o (.bss); - build/e/src/game/bondhead.o (.bss); - build/e/src/game/padhalllv.o (.bss); - build/e/src/game/debugmenu_08FE00.o (.bss); - build/e/src/game/debugmenu_handler.o (.bss); - build/e/src/game/unk_091080.o (.bss); - build/e/src/game/chraidata.o (.bss); - build/e/src/game/pobjdata.o (.bss); - build/e/src/game/gobjdata.o (.bss); - build/e/src/game/gobjdata2.o (.bss); - build/e/src/game/cobjdata.o (.bss); - build/e/src/game/cheat_buttons.o (.bss); - build/e/src/game/unk_092890.o (.bss); - build/e/src/game/unk_092E50.o (.bss); - build/e/src/game/player.o (.bss); - build/e/src/game/player_2.o (.bss); - build/e/src/game/crc.o (.bss); - build/e/src/game/chrObjRandom.o (.bss); - build/e/src/game/unk_09B7A0.o (.bss); - - build/e/src/game/explosions.o (.bss); - build/e/src/game/unk_0A1DA0.o (.bss); - build/e/src/game/watch.o (.bss); - build/e/src/game/textrelated.o (.bss); - build/e/src/game/stan.o (.bss); - build/e/src/game/unk_0B3200.o (.bss); - build/e/src/game/bg.o (.bss); - build/e/src/game/bg2.o (.bss); - build/e/src/game/fog.o (.bss); - build/e/src/game/lightfixture.o (.bss); - build/e/src/game/unk_0BC530.o (.bss); - build/e/src/game/ob.o (.bss); - build/e/src/game/dyn.o (.bss); - build/e/src/game/lvl.o (.bss); - build/e/src/game/ramromreplay.o (.bss); - build/e/src/game/unk_0C0A70.o (.bss); - build/e/src/game/mp_music.o (.bss); - build/e/src/game/lvl_text.o (.bss); - build/e/src/game/mp_watch.o (.bss); - build/e/src/game/radar.o (.bss); - build/e/src/game/mp_weapon.o (.bss); - build/e/src/game/image.o (.bss); - build/e/src/game/image_bank.o (.bss); - build/e/src/game/unk_0CC4C0.o (.bss); - build/e/src/game/decompress.o (.bss); - build/e/src/game/zlib.o (.bss); - build/e/src/game/rsp.o (.bss); - build/e/src/game/indy_comms.o (.bss); - build/e/src/game/indy_commands.o (.bss); - build/e/src/game/game_debug.o (.bss); - build/e/src/game/compiletime.o (.bss); - build/e/src/game/unk_0D1AC0.o (.bss); - build/e/src/game/viewport.o (.bss); - build/e/src/game/music_0D2720.o (.bss); - /*build/e/src/game/spectrum.o (.bss);*/ - } - _bssSegmentEnd = ADDR(.bss) + SIZEOF(.bss); - _bssSegmentSize = SIZEOF(.bss); - - _roombufSegmentStart = ADDR(.roombuf); - .roombuf (NOLOAD) : - { - build/e/src/game/room_model_buffer.o (.bss); - } - _roombufSegmentEnd = ADDR(.roombuf) + SIZEOF(.roombuf); - - _decompbufSegmentStart = ADDR(.decompbuf); - .decompbuf 0x80300000 : - { - build/e/src/decompressbuffer.o (.bss); - } - _decompbufSegmentEnd = ADDR(.decompbuf) + SIZEOF(.decompbuf); - - _stacksSegmentStart = ADDR(.stacks); - .stacks (NOLOAD) : - { - build/e/src/stacks.o (.bss); - } - _stacksSegmentEnd = ADDR(.stacks) + SIZEOF(.stacks); - - _cfbSegmentStart = ADDR(.cfb); - .cfb (NOLOAD) : - { - build/e/src/cfb.o (.bss); - } - _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); - - /*move em to end, out of the way*/ - /DISCARD/ : { - * (.MIPS.abiflags); - * (.musicdecompressed); - * (.options); - * (.gnu.attributes); - * (.pdr); - * (.mdebug); - * (.gptab.bss); - * (.gptab.data); - * (.reginfo); - -} -} diff --git a/ge007.j-test_basis.csv b/ge007.j-test_basis.csv index bad8c5d7..a5ff0057 100644 --- a/ge007.j-test_basis.csv +++ b/ge007.j-test_basis.csv @@ -53,11 +53,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/decompressbuffer.o -377a8cb4f582defa3f1bb86cd30a60c1,.text,build/j/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/fault.o +377a8cb4f582defa3f1bb86cd30a60c1,.text,build/j/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/crash.o c6af3c2e9a83066c1ff902c20ee56af0,.text,build/j/src/fr.o d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/fr.o d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/fr.o diff --git a/ge007.j.ld b/ge007.j.ld deleted file mode 100644 index 82f04dea..00000000 --- a/ge007.j.ld +++ /dev/null @@ -1,4345 +0,0 @@ -/*OUTPUT_FORMAT ("elf32-bigmips")*/ -OUTPUT_ARCH (mips) - -SECTIONS -{ - - osTvType = 0x80000300; - osRomType = 0x80000304; - osRomBase = 0x80000308; - osResetType = 0x8000030c; - osCicId = 0x80000310; - osVersion = 0x80000314; - osMemSize = 0x80000318; - osAppNMIBuffer = 0x8000031c; - - _romSegmentStart = 0; - /* header */ - _headerSegmentStart = ADDR(.header); - _headerSegmentRomStart = _romSegmentStart; - .header 0x04000000 : AT(_romSegmentStart) { - build/j/src/rom_header.o(.data); - } - _headerSegmentEnd = ADDR(.header) + SIZEOF(.header); - _headerSegmentRomEnd = _headerSegmentRomStart + SIZEOF(.header); - - - - /* boot */ - _bootSegmentStart = ADDR(.boot); - _bootSegmentRomStart = _headerSegmentRomEnd; - .boot 0x04000040 : AT(_bootSegmentRomStart) { - build/j/src/bootcode.o(.text); - } - _bootSegmentEnd = ADDR(.boot) + SIZEOF(.boot); - _bootSegmentRomEnd = _bootSegmentRomStart + SIZEOF(.boot); - - - - - /* 0x80000400, 0x80000450 */ - _startSegmentStart = ADDR(.start); - _startSegmentRomStart = _bootSegmentRomEnd; - _alt_startSegmentRomStart = _startSegmentRomStart + 0x100000; - .start 0x80000400 : AT(_startSegmentRomStart) { - build/j/src/_start.o (.text); - } - _alt_startSegmentStart = _startSegmentStart - 0x10000000 + 0x100000; - _startSegmentEnd = ADDR(.start) + SIZEOF(.start); - _startSegmentRomEnd = _startSegmentRomStart + SIZEOF(.start); - - - - /* 0x70000450, 0x70020D90 001050-021990 */ - _codeSegmentStart = ADDR(.code); - _codeSegmentRomStart = _startSegmentRomEnd; - .code 0x70000450 : AT(_codeSegmentRomStart) SUBALIGN(16) { - build/j/src/boot.o (.text); - build/j/src/init.o (.text); - build/j/src/sched.o (.text); - build/j/src/osMapTLB.o (.text); - build/j/src/tlb_manage.o (.text); - build/j/src/tlb_random.o (.text); - build/j/src/tlb_resolve.o (.text); - build/j/src/tlb_hardwire.o (.text); - build/j/src/audi.o (.text); - build/j/src/speed_graph.o (.text); - build/j/src/fr.o (.text); - build/j/src/deb.o (.text); - build/j/src/fault.o (.text); - /*deb_print may be part of fault per pd beta (.text);*/ - build/j/src/deb_print.o (.text); - build/j/src/getra.o (.text); - build/j/src/ramrom.o (.text); - build/j/src/boss.o (.text); - build/j/src/music.o (.text); - build/j/src/snd.o (.text); - build/j/src/memp.o (.text); - build/j/src/mema.o (.text); - build/j/src/random.o (.text); - build/j/src/token.o (.text); - build/j/src/str.o (.text); - build/j/src/sprintf.o (.text); - build/j/src/pi.o (.text); - build/j/src/vi.o (.text); - build/j/src/debugmenu.o (.text); - build/j/src/joy.o (.text); - build/j/src/motor.o (.text); - build/j/src/rmon.o (.text); - - /*build/j/src/libultra/osPiRawStartDma.o (.text);*/ - build/j/src/libultra/io/pirawdma.o (.text); - build/j/src/libultra/io/pigetstat.o (.text); - build/j/src/libultrare/os/initialize.o (.text); - build/j/src/libultra/os/writebackdcacheall.o (.text); - build/j/src/libultra/os/invalicache.o (.text); - build/j/src/libultra/os/unmaptlb.o (.text); - build/j/src/libultra/os/getfpccsr.o (.text); - build/j/src/libultra/os/setfpccsr.o (.text); - build/j/src/libultra/os/createthread.o (.text); - build/j/src/libultra/os/startthread.o (.text); - build/j/src/libultra/os/createmesgqueue.o (.text); - build/j/src/libultra/os/parameters.o (.text); - build/j/src/libultra/os/stopthread.o (.text); - build/j/src/libultra/os/setthreadpri.o (.text); - build/j/src/libultra/os/getcount.o (.text); - build/j/src/libultrare/io/vimgr.o (.text); - build/j/src/libultrare/io/vitbl.o (.text); /*edited*/ - build/j/src/libultra/os/seteventmesg.o (.text); - build/j/src/libultra/io/visetevent.o (.text); - build/j/src/libultra/os/setintmask.o (.text); - build/j/src/libultra/os/recvmesg.o (.text); - build/j/src/libultra/os/sendmesg.o (.text); - build/j/src/libultra/io/visetmode.o (.text); - build/j/src/libultra/io/visetxscale.o (.text); - build/j/src/libultra/io/visetyscale.o (.text); - build/j/src/libultra/io/virepeatline.o (.text); - build/j/src/libultra/io/viblack.o (.text); - build/j/src/libultra/io/sptaskyielded.o (.text); - build/j/src/libultra/io/dpctr.o (.text); - build/j/src/libultra/io/vigetcurrframebuf.o (.text); - build/j/src/libultra/io/vigetnextframebuf.o (.text); - build/j/src/libultra/io/viswapbuf.o (.text); - build/j/src/libultra/io/dpsetstat.o (.text); - build/j/src/libultrare/io/sptask.o (.text); - build/j/src/libultra/io/dpsetnextbuf.o (.text); - build/j/src/libultra/io/sptaskyield.o (.text); - build/j/src/libultra/os/gettlbhi.o (.text); - build/j/src/libultra/os/virtualtophysical.o (.text); - build/j/src/libultra/io/aisetfreq.o (.text); - build/j/src/libultra/audio/sl.o (.text); - build/j/src/libultra/audio/heapalloc.o (.text); - build/j/src/libultra/os/gettime.o (.text); - build/j/src/libultra/libc/ll.o (.text); /*edited*/ - build/j/src/libultrare/io/aisetnextbuf.o (.text); - build/j/src/libultra/io/aigetlen.o (.text); - build/j/src/libultra/audio/synthesizer.o (.text); - build/j/src/libultra/io/pidma.o (.text); - build/j/src/libultra/io/visetspecial.o (.text); - build/j/src/libultra/libc/bcopy.o (.text); - build/j/src/libultra/gu/perspective.o (.text); - build/j/src/libultra/gu/mtxutil.o (.text); - build/j/src/libultra/os/getcurrfaultthread.o (.text); - build/j/src/libultra/os/exception.o (.text); /*edited*/ - build/j/src/libultra/os/thread.o (.text); - build/j/src/libultra/os/yieldthread.o (.text); - build/j/src/libultra/os/invaldcache.o (.text); - build/j/src/libultra/os/writebackdcache.o (.text); - build/j/src/libultra/os/settimer.o (.text); - build/j/src/libultra/audio/heapinit.o (.text); - build/j/src/libultra/audio/bnkf.o (.text); - build/j/src/libultra/audio/csplayer.o (.text); - build/j/src/libultra/audio/seqpsetbank.o (.text); - build/j/src/libultra/audio/cspgetstate.o (.text); - build/j/src/libultra/audio/cseq.o (.text); - build/j/src/libultra/audio/cspsetseq.o (.text); - build/j/src/libultra/audio/cspplay.o (.text); - build/j/src/libultra/audio/cspstop.o (.text); - build/j/src/libultra/audio/cspsetvol.o (.text); - build/j/src/libultra/audio/event.o (.text); - build/j/src/libultra/audio/synaddplayer.o (.text); - build/j/src/libultra/audio/synallocvoice.o (.text); - build/j/src/libultra/audio/synsetvol.o (.text); - build/j/src/libultra/audio/synstartvoice.o (.text); - build/j/src/libultra/audio/synsetpan.o (.text); - build/j/src/libultra/audio/synsetpitch.o (.text); - build/j/src/libultra/audio/synsetfxmix.o (.text); - build/j/src/libultra/audio/synstopvoice.o (.text); - build/j/src/libultra/audio/synfreevoice.o (.text); - build/j/src/libultra/audio/cents2ratio.o (.text); - build/j/src/libultra/io/piread.o (.text); - build/j/src/libultra/libc/string.o (.text); - build/j/src/libultrare/libc/xprintf.o (.text); - build/j/src/libultrare/io/pimgr.o (.text); - build/j/src/libultrare/io/pfsinit.o (.text); - build/j/src/libultrare/io/controller.o (.text); - build/j/src/libultra/io/contquery.o (.text); - build/j/src/libultrare/io/contreaddata.o (.text); - build/j/src/libultrare/io/conteepprobe.o (.text); - build/j/src/libultrare/io/conteepread.o (.text); - build/j/src/libultrare/io/conteepwrite.o (.text); - build/j/src/libultrare/io/conteeplongread.o (.text); - build/j/src/libultrare/io/conteeplongwrite.o (.text); - build/j/src/libultrare/io/pfsisplug.o (.text); - build/j/src/libultra/io/siacs.o (.text); - build/j/src/libultra/io/sirawdma.o (.text); - build/j/src/libultra/io/crc.o (.text); - build/j/src/libultrare/io/contramwrite.o (.text); - build/j/src/libultrare/io/contramread.o (.text); - build/j/src/libultra/gu/align.o (.text); - build/j/src/libultra/gu/ortho.o (.text); - build/j/src/libultra/gu/coss.o (.text); - build/j/src/libultra/gu/sins.o (.text); - build/j/src/libultra/gu/translate.o (.text); - build/j/src/libultra/libc/bcmp.o (.text); - build/j/src/libultra/gu/scale.o (.text); - build/j/src/libultra/gu/lookatref.o (.text); - build/j/src/libultra/gu/lookat.o (.text); - build/j/src/libultra/gu/rotate.o (.text); - build/j/src/libultra/libc/llcvt.o (.text); /*edited*/ - build/j/src/libultra/os/setsr.o (.text); - build/j/src/libultra/os/getsr.o (.text); - build/j/src/libultra/io/sirawread.o (.text); - build/j/src/libultra/io/sirawwrite.o (.text); - build/j/src/libultra/io/pirawread.o (.text); - build/j/src/libultra/libc/bzero.o (.text); - build/j/src/libultra/os/sethwinterrupt.o (.text); - build/j/src/libultrare/io/leointerrupt.o (.text); - build/j/src/libultra/os/interrupt.o (.text); - build/j/src/libultra/os/timerintr.o (.text); - build/j/src/libultra/os/kdebugserver.o (.text); - build/j/src/libultra/os/getthreadpri.o (.text); - build/j/src/libultrare/io/vi.o (.text); /*edited*/ - build/j/src/libultra/io/vigetcurrcontext.o (.text); - build/j/src/libultra/io/viswapcontext.o (.text); - build/j/src/libultra/io/spgetstat.o (.text); - build/j/src/libultra/io/spsetstat.o (.text); - build/j/src/libultra/io/spsetpc.o (.text); - build/j/src/libultra/io/sprawdma.o (.text); - build/j/src/libultra/io/sp.o (.text); - build/j/src/libultra/io/dp.o (.text); - build/j/src/libultra/os/probetlb.o (.text); - build/j/src/libultra/audio/syndelete.o (.text); - build/j/src/libultra/io/ai.o (.text); - build/j/src/libultrare/audio/drvrNew.o (.text); - build/j/src/libultra/audio/synallocfx.o (.text); - build/j/src/libultra/audio/mainbus.o (.text); - build/j/src/libultra/audio/load.o (.text); - build/j/src/libultra/audio/resample.o (.text); - build/j/src/libultrare/audio/env.o (.text); /*edited*/ - build/j/src/libultra/audio/auxbus.o (.text); - build/j/src/libultra/audio/save.o (.text); - build/j/src/libultra/os/jammesg.o (.text); - build/j/src/libultra/io/pigetcmdq.o (.text); - build/j/src/libultra/gu/cosf.o (.text); /*edited*/ - build/j/src/libultra/gu/sinf.o (.text); /*edited*/ - build/j/src/libultrare/os/destroythread.o (.text); - build/j/src/libultra/audio/seqplayer.o (.text); - build/j/src/libultra/audio/synstartvoiceparam.o (.text); - build/j/src/libultra/audio/copy.o (.text); - build/j/src/libultra/io/piacs.o (.text); - build/j/src/libultra/libc/xlitob.o (.text); - build/j/src/libultra/libc/xldtob.o (.text); - build/j/src/libultrare/io/epirawdma.o (.text); - build/j/src/libultrare/io/devmgr.o (.text); - build/j/src/libultra/io/contpfs.o (.text); - build/j/src/libultra/io/si.o (.text); - build/j/src/libultra/gu/normalize.o (.text); - build/j/src/libultra/gu/sqrtf.o (.text); - build/j/src/libultrare/io/leodiskinit.o (.text); - build/j/src/libultra/os/setcompare.o (.text); - build/j/src/libultra/audio/filter.o (.text); - build/j/src/libultrare/audio/reverb.o (.text); /*edited*/ - build/j/src/libultra/gu/libm_vals.o (.text); /*edited*/ - build/j/src/libultra/audio/seq.o (.text); - build/j/src/libultra/audio/synsetpriority.o (.text); - build/j/src/libultra/libc/ldiv.o (.text); - build/j/src/libultra/os/resetglobalintmask.o (.text); - build/j/src/libultrare/io/epirawwrite.o (.text); - build/j/src/libultra/io/vimodentsclan1.o (.text); - build/j/src/libultrare/io/vimodepallan1.o (.text); - build/j/src/libultrare/ultra80069080.o (.text); /*edited*/ - /*build/j/src/libultra/libultra.a:libultra.o (.text);*/ - } - _codeSegmentEnd = ADDR(.code) + SIZEOF(.code); - _codeSegmentRomEnd = _codeSegmentRomStart + SIZEOF(.code); - - - - _cdataSegmentStart = ADDR(.cdata); - _cdataSegmentRomStart = _codeSegmentRomEnd; - .cdata _cdataSegmentRomStart : AT(_cdataSegmentRomStart) { - build/j/src/c_data_filler.o (.data); - } - _cdataSegmentEnd = ADDR(.cdata) + SIZEOF(.cdata); - _cdataSegmentRomEnd = _cdataSegmentRomStart + SIZEOF(.cdata); - - - - /* (0x70200000, 0x702029BC, 0x701CCA70), // 033590-035F4D [29BD] */ - _inflateSegmentStart = ADDR(.inflate); - _inflateSegmentRomStart = _cdataSegmentRomEnd; - .inflate 0x70200000 : AT(_inflateSegmentRomStart) { - build/j/src/inflate/inflate.o (.text); - build/j/src/inflate/inflate.o (.data); - } - _inflateSegmentEnd = ADDR(.inflate) + SIZEOF(.inflate); - _inflateSegmentRomEnd = _inflateSegmentRomStart + SIZEOF(.inflate); - - - - - /* (0x7F000000, 0x7F0E2D50, 0x7EFCB4D0), // 034B30-117881 [E2D51] */ - _gameSegmentStart = ADDR(.game); - _gameSegmentRomStart = _inflateSegmentRomEnd; - .game 0x7F000000 : AT(_gameSegmentRomStart) { - build/j/src/game/initgamedata.o (.text); - build/j/src/game/initweaponanigroups.o (.text); - build/j/src/game/initactorpropstuff.o (.text); - build/j/src/game/initnull_0009D0.o (.text); - build/j/src/game/initunk_0009E0.o (.text); - build/j/src/game/initanitable.o (.text); - build/j/src/game/initplayergaitobject.o (.text); - build/j/src/game/setguscale.o (.text); - build/j/src/game/initnull_000BC0.o (.text); - build/j/src/game/initimages.o (.text); - build/j/src/game/initintromatrices.o (.text); - build/j/src/game/initmenus.o (.text); - build/j/src/game/initguards.o (.text); - build/j/src/game/deb_loadallmodels.o (.text); - build/j/src/game/initobjects.o (.text); - build/j/src/game/prop.o (.text); - build/j/src/game/objective.o (.text); - build/j/src/game/ejectedcartridges.o (.text); - build/j/src/game/initBondDATA.o (.text); - build/j/src/game/initunk_005450.o (.text); - build/j/src/game/initunk_005520.o (.text); - build/j/src/game/bondview_r.o (.text); - build/j/src/game/inititemslots.o (.text); - build/j/src/game/initBondDATAdefaults.o (.text); - build/j/src/game/initpathtablesomething.o (.text); - build/j/src/game/initpathtablelinks.o (.text); - build/j/src/game/initexplosioncasing.o (.text); - build/j/src/game/alloc_window_pieces.o (.text); - build/j/src/game/initunk_007290.o (.text); - build/j/src/game/initcheattext.o (.text); - build/j/src/game/initmttex.o (.text); - build/j/src/game/cleanup_guard_data.o (.text); - build/j/src/game/cleanup_object_sounds.o (.text); - build/j/src/game/cleanup_alarms.o (.text); - build/j/src/game/cleanup_objects.o (.text); - build/j/src/game/cleanup_objectives.o (.text); - build/j/src/game/cleanupSFXRelated.o (.text); - build/j/src/game/playerstats_007770.o (.text); - build/j/src/game/cleanexplosions.o (.text); - build/j/src/game/cleanwindowpieces.o (.text); - build/j/src/game/null_007970.o (.text); - build/j/src/game/cleanplayersound.o (.text); - build/j/src/game/title.o (.text); - build/j/src/game/front.o (.text); - build/j/src/game/unk_01B0E0.o (.text); - build/j/src/game/unk_01B240.o (.text); - build/j/src/game/unk_01BAE0.o (.text); - build/j/src/game/blood_animation.o (.text); - build/j/src/game/blood_decrypt.o (.text); - build/j/src/game/file.o (.text); - build/j/src/game/file2.o (.text); - build/j/src/game/chr.o (.text); - build/j/src/game/chr_b.o (.text); - build/j/src/game/chrlv.o (.text); - build/j/src/game/chrai.o (.text); - build/j/src/game/chrprop.o (.text); - build/j/src/game/chrobjhandler.o (.text); - build/j/src/game/loadobjectmodel.o (.text); - build/j/src/game/objective_status.o (.text); - build/j/src/game/objective_status2.o (.text); - build/j/src/game/math_sincos.o (.text); - build/j/src/game/matrixmath.o (.text); - build/j/src/game/math_unk_05A9E0.o (.text); - build/j/src/game/math_atan2f.o (.text); - build/j/src/game/math_asinacos.o (.text); - build/j/src/game/math_asinfacosf.o (.text); - build/j/src/game/matrixmath_misc.o (.text); - build/j/src/game/quaternion.o (.text); - build/j/src/game/math_floor.o (.text); - build/j/src/game/math_ceil.o (.text); - build/j/src/game/gun.o (.text); - build/j/src/game/bondwalk2.o (.text); - build/j/src/game/objecthandler.o (.text); - build/j/src/game/objecthandler_1.o (.text); - build/j/src/game/objecthandler_2.o (.text); - build/j/src/game/othermodemicrocode.o (.text); - build/j/src/game/bondview.o (.text); - build/j/src/game/bondinv.o (.text); - build/j/src/game/bondhead.o (.text); - build/j/src/game/padhalllv.o (.text); - build/j/src/game/debugmenu_08FE00.o (.text); - build/j/src/game/debugmenu_handler.o (.text); - build/j/src/game/unk_091080.o (.text); - build/j/src/game/chraidata.o (.text); - build/j/src/game/pobjdata.o (.text); - build/j/src/game/gobjdata.o (.text); - build/j/src/game/gobjdata2.o (.text); - build/j/src/game/cobjdata.o (.text); - build/j/src/game/cheat_buttons.o (.text); - build/j/src/game/unk_092890.o (.text); - build/j/src/game/unk_092E50.o (.text); - build/j/src/game/player.o (.text); - build/j/src/game/player_2.o (.text); - build/j/src/game/crc.o (.text); - build/j/src/game/chrObjRandom.o (.text); - build/j/src/game/unk_09B7A0.o (.text); - build/j/src/game/explosions.o (.text); - build/j/src/game/unk_0A1DA0.o (.text); - build/j/src/game/watch.o (.text); - build/j/src/game/textrelated.o (.text); - build/j/src/game/stan.o (.text); - build/j/src/game/unk_0B3200.o (.text); - build/j/src/game/bg.o (.text); - build/j/src/game/bg2.o (.text); - build/j/src/game/fog.o (.text); - build/j/src/game/lightfixture.o (.text); - build/j/src/game/unk_0BC530.o (.text); - build/j/src/game/ob.o (.text); - build/j/src/game/dyn.o (.text); - build/j/src/game/lvl.o (.text); - build/j/src/game/ramromreplay.o (.text); - build/j/src/game/unk_0C0A70.o (.text); - build/j/src/game/mp_music.o (.text); - build/j/src/game/lvl_text.o (.text); - build/j/src/game/mp_watch.o (.text); - build/j/src/game/radar.o (.text); - build/j/src/game/mp_weapon.o (.text); - build/j/src/game/image.o (.text); - build/j/src/game/image_bank.o (.text); - build/j/src/game/unk_0CC4C0.o (.text); - build/j/src/game/decompress.o (.text); - build/j/src/game/zlib.o (.text); - build/j/src/game/rsp.o (.text); - build/j/src/game/indy_comms.o (.text); - build/j/src/game/indy_commands.o (.text); - build/j/src/game/game_debug.o (.text); - build/j/src/game/compiletime.o (.text); - build/j/src/game/unk_0D1AC0.o (.text); - build/j/src/game/viewport.o (.text); - build/j/src/game/music_0D2720.o (.text); - build/j/src/game/spectrum.o (.text); - } - _gameSegmentEnd = ADDR(.game) + SIZEOF(.game); - _gameSegmentRomEnd = _gameSegmentRomStart + SIZEOF(.game); - - - _fontdlSegmentStart = ADDR(.fontdl); - _fontdlSegmentRomStart = _gameSegmentRomEnd; - .fontdl 0x01000000 : AT(_fontdlSegmentRomStart) { - build/j/assets/font_dl.o (.data); - } - _fontdlSegmentEnd = ADDR(.fontdl) + SIZEOF(.fontdl); - _fontdlSegmentRomEnd = _fontdlSegmentRomStart + SIZEOF(.fontdl); - - _jfontcharSegmentStart = ADDR(.jfontchardata); - _jfontcharSegmentRomStart = _fontdlSegmentRomEnd; - .jfontchardata 0x00000000 : AT(_jfontcharSegmentRomStart) { - build/j/assets/font_chardataj.o (.data); - } - _jfontcharSegmentEnd = ADDR(.jfontchardata) + SIZEOF(.jfontchardata); - _jfontcharSegmentRomEnd = _jfontcharSegmentRomStart + SIZEOF(.jfontchardata); - - _efontcharSegmentStart = ADDR(.efontchardata); - _efontcharSegmentRomStart = _jfontcharSegmentRomEnd; - .efontchardata 0x00000000 : AT(_efontcharSegmentRomStart) { - build/j/assets/font_chardatae.o (.data); - } - _efontcharSegmentEnd = ADDR(.efontchardata) + SIZEOF(.efontchardata); - _efontcharSegmentRomEnd = _efontcharSegmentRomStart + SIZEOF(.efontchardata); - - _animation_entriesSegmentStart = ADDR(.animation_entries); - _animation_entriesSegmentRomStart = _efontcharSegmentRomEnd; - .animation_entries 0x00000000 : AT(_animation_entriesSegmentRomStart) { - build/j/assets/animationtable_entries.o(.data); - } - _animation_entriesSegmentEnd = ADDR(.animation_entries) + SIZEOF(.animation_entries); - _animation_entriesSegmentRomEnd = _animation_entriesSegmentRomStart + SIZEOF(.animation_entries); - - _animation_dataSegmentStart = ADDR(.animation_data); - _animation_dataSegmentRomStart = _animation_entriesSegmentRomEnd; - .animation_data 0x00000000 : AT(_animation_dataSegmentRomStart) { - build/j/assets/animationtable_data.o(.data); - } - _animation_dataSegmentEnd = ADDR(.animation_data) + SIZEOF(.animation_data); - _animation_dataSegmentRomEnd = _animation_dataSegmentRomStart + SIZEOF(.animation_data); - - _GlobalimagetableSegmentStart = ADDR(.romfiles_29d160); - _GlobalimagetableSegmentRomStart = _animation_dataSegmentRomEnd; - .romfiles_29d160 0x02000000 : AT(_GlobalimagetableSegmentRomStart) { - build/j/assets/GlobalImageTable.o (.data); - } - _GlobalimagetableSegmentEnd = ADDR(.romfiles_29d160) + SIZEOF(.romfiles_29d160); - _GlobalimagetableSegmentRomEnd = _GlobalimagetableSegmentRomStart + SIZEOF(.romfiles_29d160); - - _GlobalimagetablecmdblkSegmentStart = ADDR(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomStart = _GlobalimagetableSegmentRomEnd; - .Globalimagetablecmdblk 0x02000000 : AT(_GlobalimagetablecmdblkSegmentRomStart) { - build/j/assets/Globalimagetable_commandblock.o (.data); - } - _GlobalimagetablecmdblkSegmentEnd = ADDR(.Globalimagetablecmdblk) + SIZEOF(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomEnd = _GlobalimagetablecmdblkSegmentRomStart + SIZEOF(.Globalimagetablecmdblk); - - - _romfiles2SegmentStart = ADDR(.romfiles2); - _romfiles2SegmentRomStart = _GlobalimagetablecmdblkSegmentRomEnd; - .romfiles2 _romfiles2SegmentRomStart : AT(_romfiles2SegmentRomStart) { - build/j/assets/romfiles2.o (.data); - } - _romfiles2SegmentEnd = ADDR(.romfiles2) + SIZEOF(.romfiles2); - _romfiles2SegmentRomEnd = _romfiles2SegmentRomStart + SIZEOF(.romfiles2); - - _ramromfilesSegmentStart = ADDR(.ramromfiles); - _ramromfilesSegmentRomStart = _romfiles2SegmentRomEnd; - .ramromfiles _ramromfilesSegmentRomStart : AT(_ramromfilesSegmentRomStart) { - build/j/assets/ramrom/ramrom.o (.data); - } - _ramromfilesSegmentEnd = ADDR(.ramromfiles) + SIZEOF(.ramromfiles); - _ramromfilesSegmentRomEnd = _ramromfilesSegmentRomStart + SIZEOF(.ramromfiles); - - _fonttablectlsmall1SegmentStart = ADDR(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomStart = _ramromfilesSegmentRomEnd; - .fonttablectlsmall1 _fonttablectlsmall1SegmentRomStart : AT(_fonttablectlsmall1SegmentRomStart) { - build/j/assets/font/font_first_font_table_controller_small.o (.data); - } - _fonttablectlsmall1SegmentEnd = ADDR(.fonttablectlsmall1) + SIZEOF(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomEnd = _fonttablectlsmall1SegmentRomStart + SIZEOF(.fonttablectlsmall1); - - - _fonttablectllarge1SegmentStart = ADDR(.fonttablectllarge1); - _fonttablectllarge1SegmentRomStart = _fonttablectlsmall1SegmentRomEnd; - .fonttablectllarge1 _fonttablectllarge1SegmentRomStart : AT(_fonttablectllarge1SegmentRomStart) { - build/j/assets/font/font_first_font_table_controller_large.o (.data); - } - _fonttablectllarge1SegmentEnd = ADDR(.fonttablectllarge1) + SIZEOF(.fonttablectllarge1); - _fonttablectllarge1SegmentRomEnd = _fonttablectllarge1SegmentRomStart + SIZEOF(.fonttablectllarge1); - - - _musicfilesSegmentStart = ADDR(.musicfiles); - _musicfilesSegmentRomStart = _fonttablectllarge1SegmentRomEnd; - .musicfiles _musicfilesSegmentRomStart : AT(_musicfilesSegmentRomStart) { - build/j/assets/music/sfx.ctl.o (.data); - build/j/assets/music/sfx.tbl.o (.data); - build/j/assets/music/instruments.ctl.o (.data); - build/j/assets/music/instruments.tbl.o (.data); - build/j/assets/music/music.o (.music); - build/j/assets/music/music.o (.musiccompressed); - } - _musicfilesSegmentEnd = ADDR(.musicfiles) + SIZEOF(.musicfiles); - _musicfilesSegmentRomEnd = _musicfilesSegmentRomStart + SIZEOF(.musicfiles); - - - - - _obsegSegmentStart = ADDR(.obseg); - _obsegSegmentRomStart = _musicfilesSegmentRomEnd; - .obseg _obsegSegmentRomStart : AT(_obsegSegmentRomStart) { - build/j/assets/obseg/ob_seg.o (.data); - } - _obsegSegmentEnd = ADDR(.obseg) + SIZEOF(.obseg); - _obsegSegmentRomEnd = _obsegSegmentRomStart + SIZEOF(.obseg); - - - - - _imagesSegmentStart = ADDR(.images); - _imagesSegmentRomStart = _obsegSegmentRomEnd; - .images _imagesSegmentRomStart : AT(_imagesSegmentRomStart) { - build/j/assets/images/split/image1.o (.data); - build/j/assets/images/split/image2.o (.data); - build/j/assets/images/split/image3.o (.data); - build/j/assets/images/split/image4.o (.data); - build/j/assets/images/split/image5.o (.data); - build/j/assets/images/split/image6.o (.data); - build/j/assets/images/split/image7.o (.data); - build/j/assets/images/split/image8.o (.data); - build/j/assets/images/split/image9.o (.data); - build/j/assets/images/split/image10.o (.data); - build/j/assets/images/split/image11.o (.data); - build/j/assets/images/split/image12.o (.data); - build/j/assets/images/split/image13.o (.data); - build/j/assets/images/split/image14.o (.data); - build/j/assets/images/split/image15.o (.data); - build/j/assets/images/split/image16.o (.data); - build/j/assets/images/split/image17.o (.data); - build/j/assets/images/split/image18.o (.data); - build/j/assets/images/split/image19.o (.data); - build/j/assets/images/split/image20.o (.data); - build/j/assets/images/split/image21.o (.data); - build/j/assets/images/split/image22.o (.data); - build/j/assets/images/split/image23.o (.data); - build/j/assets/images/split/image24.o (.data); - build/j/assets/images/split/image25.o (.data); - build/j/assets/images/split/image26.o (.data); - build/j/assets/images/split/image27.o (.data); - build/j/assets/images/split/image28.o (.data); - build/j/assets/images/split/image29.o (.data); - build/j/assets/images/split/image30.o (.data); - build/j/assets/images/split/image31.o (.data); - build/j/assets/images/split/image32.o (.data); - build/j/assets/images/split/image33.o (.data); - build/j/assets/images/split/image34.o (.data); - build/j/assets/images/split/image35.o (.data); - build/j/assets/images/split/image36.o (.data); - build/j/assets/images/split/image37.o (.data); - build/j/assets/images/split/image38.o (.data); - build/j/assets/images/split/image39.o (.data); - build/j/assets/images/split/image40.o (.data); - build/j/assets/images/split/image41.o (.data); - build/j/assets/images/split/image42.o (.data); - build/j/assets/images/split/image43.o (.data); - build/j/assets/images/split/image44.o (.data); - build/j/assets/images/split/image45.o (.data); - build/j/assets/images/split/image46.o (.data); - build/j/assets/images/split/image47.o (.data); - build/j/assets/images/split/image48.o (.data); - build/j/assets/images/split/image49.o (.data); - build/j/assets/images/split/image50.o (.data); - build/j/assets/images/split/image51.o (.data); - build/j/assets/images/split/image52.o (.data); - build/j/assets/images/split/image53.o (.data); - build/j/assets/images/split/image54.o (.data); - build/j/assets/images/split/image55.o (.data); - build/j/assets/images/split/image56.o (.data); - build/j/assets/images/split/image57.o (.data); - build/j/assets/images/split/image58.o (.data); - build/j/assets/images/split/image59.o (.data); - build/j/assets/images/split/image60.o (.data); - build/j/assets/images/split/image61.o (.data); - build/j/assets/images/split/image62.o (.data); - build/j/assets/images/split/image63.o (.data); - build/j/assets/images/split/image64.o (.data); - build/j/assets/images/split/image65.o (.data); - build/j/assets/images/split/image66.o (.data); - build/j/assets/images/split/image67.o (.data); - build/j/assets/images/split/image68.o (.data); - build/j/assets/images/split/image69.o (.data); - build/j/assets/images/split/image70.o (.data); - build/j/assets/images/split/image71.o (.data); - build/j/assets/images/split/image72.o (.data); - build/j/assets/images/split/image73.o (.data); - build/j/assets/images/split/image74.o (.data); - build/j/assets/images/split/image75.o (.data); - build/j/assets/images/split/image76.o (.data); - build/j/assets/images/split/image77.o (.data); - build/j/assets/images/split/image78.o (.data); - build/j/assets/images/split/image79.o (.data); - build/j/assets/images/split/image80.o (.data); - build/j/assets/images/split/image81.o (.data); - build/j/assets/images/split/image82.o (.data); - build/j/assets/images/split/image83.o (.data); - build/j/assets/images/split/image84.o (.data); - build/j/assets/images/split/image85.o (.data); - build/j/assets/images/split/image86.o (.data); - build/j/assets/images/split/image87.o (.data); - build/j/assets/images/split/image88.o (.data); - build/j/assets/images/split/image89.o (.data); - build/j/assets/images/split/image90.o (.data); - build/j/assets/images/split/image91.o (.data); - build/j/assets/images/split/image92.o (.data); - build/j/assets/images/split/image93.o (.data); - build/j/assets/images/split/image94.o (.data); - build/j/assets/images/split/image95.o (.data); - build/j/assets/images/split/image96.o (.data); - build/j/assets/images/split/image97.o (.data); - build/j/assets/images/split/image98.o (.data); - build/j/assets/images/split/image99.o (.data); - build/j/assets/images/split/image100.o (.data); - build/j/assets/images/split/image101.o (.data); - build/j/assets/images/split/image102.o (.data); - build/j/assets/images/split/image103.o (.data); - build/j/assets/images/split/image104.o (.data); - build/j/assets/images/split/image105.o (.data); - build/j/assets/images/split/image106.o (.data); - build/j/assets/images/split/image107.o (.data); - build/j/assets/images/split/image108.o (.data); - build/j/assets/images/split/image109.o (.data); - build/j/assets/images/split/image110.o (.data); - build/j/assets/images/split/image111.o (.data); - build/j/assets/images/split/image112.o (.data); - build/j/assets/images/split/image113.o (.data); - build/j/assets/images/split/image114.o (.data); - build/j/assets/images/split/image115.o (.data); - build/j/assets/images/split/image116.o (.data); - build/j/assets/images/split/image117.o (.data); - build/j/assets/images/split/image118.o (.data); - build/j/assets/images/split/image119.o (.data); - build/j/assets/images/split/image120.o (.data); - build/j/assets/images/split/image121.o (.data); - build/j/assets/images/split/image122.o (.data); - build/j/assets/images/split/image123.o (.data); - build/j/assets/images/split/image124.o (.data); - build/j/assets/images/split/image125.o (.data); - build/j/assets/images/split/image126.o (.data); - build/j/assets/images/split/image127.o (.data); - build/j/assets/images/split/image128.o (.data); - build/j/assets/images/split/image129.o (.data); - build/j/assets/images/split/image130.o (.data); - build/j/assets/images/split/image131.o (.data); - build/j/assets/images/split/image132.o (.data); - build/j/assets/images/split/image133.o (.data); - build/j/assets/images/split/image134.o (.data); - build/j/assets/images/split/image135.o (.data); - build/j/assets/images/split/image136.o (.data); - build/j/assets/images/split/image137.o (.data); - build/j/assets/images/split/image138.o (.data); - build/j/assets/images/split/image139.o (.data); - build/j/assets/images/split/image140.o (.data); - build/j/assets/images/split/image141.o (.data); - build/j/assets/images/split/image142.o (.data); - build/j/assets/images/split/image143.o (.data); - build/j/assets/images/split/image144.o (.data); - build/j/assets/images/split/image145.o (.data); - build/j/assets/images/split/image146.o (.data); - build/j/assets/images/split/image147.o (.data); - build/j/assets/images/split/image148.o (.data); - build/j/assets/images/split/image149.o (.data); - build/j/assets/images/split/image150.o (.data); - build/j/assets/images/split/image151.o (.data); - build/j/assets/images/split/image152.o (.data); - build/j/assets/images/split/image153.o (.data); - build/j/assets/images/split/image154.o (.data); - build/j/assets/images/split/image155.o (.data); - build/j/assets/images/split/image156.o (.data); - build/j/assets/images/split/image157.o (.data); - build/j/assets/images/split/image158.o (.data); - build/j/assets/images/split/image159.o (.data); - build/j/assets/images/split/image160.o (.data); - build/j/assets/images/split/image161.o (.data); - build/j/assets/images/split/image162.o (.data); - build/j/assets/images/split/image163.o (.data); - build/j/assets/images/split/image164.o (.data); - build/j/assets/images/split/image165.o (.data); - build/j/assets/images/split/image166.o (.data); - build/j/assets/images/split/image167.o (.data); - build/j/assets/images/split/image168.o (.data); - build/j/assets/images/split/image169.o (.data); - build/j/assets/images/split/image170.o (.data); - build/j/assets/images/split/image171.o (.data); - build/j/assets/images/split/image172.o (.data); - build/j/assets/images/split/image173.o (.data); - build/j/assets/images/split/image174.o (.data); - build/j/assets/images/split/image175.o (.data); - build/j/assets/images/split/image176.o (.data); - build/j/assets/images/split/image177.o (.data); - build/j/assets/images/split/image178.o (.data); - build/j/assets/images/split/image179.o (.data); - build/j/assets/images/split/image180.o (.data); - build/j/assets/images/split/image181.o (.data); - build/j/assets/images/split/image182.o (.data); - build/j/assets/images/split/image183.o (.data); - build/j/assets/images/split/image184.o (.data); - build/j/assets/images/split/image185.o (.data); - build/j/assets/images/split/image186.o (.data); - build/j/assets/images/split/image187.o (.data); - build/j/assets/images/split/image188.o (.data); - build/j/assets/images/split/image189.o (.data); - build/j/assets/images/split/image190.o (.data); - build/j/assets/images/split/image191.o (.data); - build/j/assets/images/split/image192.o (.data); - build/j/assets/images/split/image193.o (.data); - build/j/assets/images/split/image194.o (.data); - build/j/assets/images/split/image195.o (.data); - build/j/assets/images/split/image196.o (.data); - build/j/assets/images/split/image197.o (.data); - build/j/assets/images/split/image198.o (.data); - build/j/assets/images/split/image199.o (.data); - build/j/assets/images/split/image200.o (.data); - build/j/assets/images/split/image201.o (.data); - build/j/assets/images/split/image202.o (.data); - build/j/assets/images/split/image203.o (.data); - build/j/assets/images/split/image204.o (.data); - build/j/assets/images/split/image205.o (.data); - build/j/assets/images/split/image206.o (.data); - build/j/assets/images/split/image207.o (.data); - build/j/assets/images/split/image208.o (.data); - build/j/assets/images/split/image209.o (.data); - build/j/assets/images/split/image210.o (.data); - build/j/assets/images/split/image211.o (.data); - build/j/assets/images/split/image212.o (.data); - build/j/assets/images/split/image213.o (.data); - build/j/assets/images/split/image214.o (.data); - build/j/assets/images/split/image215.o (.data); - build/j/assets/images/split/image216.o (.data); - build/j/assets/images/split/image217.o (.data); - build/j/assets/images/split/image218.o (.data); - build/j/assets/images/split/image219.o (.data); - build/j/assets/images/split/image220.o (.data); - build/j/assets/images/split/image221.o (.data); - build/j/assets/images/split/image222.o (.data); - build/j/assets/images/split/image223.o (.data); - build/j/assets/images/split/image224.o (.data); - build/j/assets/images/split/image225.o (.data); - build/j/assets/images/split/image226.o (.data); - build/j/assets/images/split/image227.o (.data); - build/j/assets/images/split/image228.o (.data); - build/j/assets/images/split/image229.o (.data); - build/j/assets/images/split/image230.o (.data); - build/j/assets/images/split/image231.o (.data); - build/j/assets/images/split/image232.o (.data); - build/j/assets/images/split/image233.o (.data); - build/j/assets/images/split/image234.o (.data); - build/j/assets/images/split/image235.o (.data); - build/j/assets/images/split/image236.o (.data); - build/j/assets/images/split/image237.o (.data); - build/j/assets/images/split/image238.o (.data); - build/j/assets/images/split/image239.o (.data); - build/j/assets/images/split/image240.o (.data); - build/j/assets/images/split/image241.o (.data); - build/j/assets/images/split/image242.o (.data); - build/j/assets/images/split/image243.o (.data); - build/j/assets/images/split/image244.o (.data); - build/j/assets/images/split/image245.o (.data); - build/j/assets/images/split/image246.o (.data); - build/j/assets/images/split/image247.o (.data); - build/j/assets/images/split/image248.o (.data); - build/j/assets/images/split/image249.o (.data); - build/j/assets/images/split/image250.o (.data); - build/j/assets/images/split/image251.o (.data); - build/j/assets/images/split/image252.o (.data); - build/j/assets/images/split/image253.o (.data); - build/j/assets/images/split/image254.o (.data); - build/j/assets/images/split/image255.o (.data); - build/j/assets/images/split/image256.o (.data); - build/j/assets/images/split/image257.o (.data); - build/j/assets/images/split/image258.o (.data); - build/j/assets/images/split/image259.o (.data); - build/j/assets/images/split/image260.o (.data); - build/j/assets/images/split/image261.o (.data); - build/j/assets/images/split/image262.o (.data); - build/j/assets/images/split/image263.o (.data); - build/j/assets/images/split/image264.o (.data); - build/j/assets/images/split/image265.o (.data); - build/j/assets/images/split/image266.o (.data); - build/j/assets/images/split/image267.o (.data); - build/j/assets/images/split/image268.o (.data); - build/j/assets/images/split/image269.o (.data); - build/j/assets/images/split/image270.o (.data); - build/j/assets/images/split/image271.o (.data); - build/j/assets/images/split/image272.o (.data); - build/j/assets/images/split/image273.o (.data); - build/j/assets/images/split/image274.o (.data); - build/j/assets/images/split/image275.o (.data); - build/j/assets/images/split/image276.o (.data); - build/j/assets/images/split/image277.o (.data); - build/j/assets/images/split/image278.o (.data); - build/j/assets/images/split/image279.o (.data); - build/j/assets/images/split/image280.o (.data); - build/j/assets/images/split/image281.o (.data); - build/j/assets/images/split/image282.o (.data); - build/j/assets/images/split/image283.o (.data); - build/j/assets/images/split/image284.o (.data); - build/j/assets/images/split/image285.o (.data); - build/j/assets/images/split/image286.o (.data); - build/j/assets/images/split/image287.o (.data); - build/j/assets/images/split/image288.o (.data); - build/j/assets/images/split/image289.o (.data); - build/j/assets/images/split/image290.o (.data); - build/j/assets/images/split/image291.o (.data); - build/j/assets/images/split/image292.o (.data); - build/j/assets/images/split/image293.o (.data); - build/j/assets/images/split/image294.o (.data); - build/j/assets/images/split/image295.o (.data); - build/j/assets/images/split/image296.o (.data); - build/j/assets/images/split/image297.o (.data); - build/j/assets/images/split/image298.o (.data); - build/j/assets/images/split/image299.o (.data); - build/j/assets/images/split/image300.o (.data); - build/j/assets/images/split/image301.o (.data); - build/j/assets/images/split/image302.o (.data); - build/j/assets/images/split/image303.o (.data); - build/j/assets/images/split/image304.o (.data); - build/j/assets/images/split/image305.o (.data); - build/j/assets/images/split/image306.o (.data); - build/j/assets/images/split/image307.o (.data); - build/j/assets/images/split/image308.o (.data); - build/j/assets/images/split/image309.o (.data); - build/j/assets/images/split/image310.o (.data); - build/j/assets/images/split/image311.o (.data); - build/j/assets/images/split/image312.o (.data); - build/j/assets/images/split/image313.o (.data); - build/j/assets/images/split/image314.o (.data); - build/j/assets/images/split/image315.o (.data); - build/j/assets/images/split/image316.o (.data); - build/j/assets/images/split/image317.o (.data); - build/j/assets/images/split/image318.o (.data); - build/j/assets/images/split/image319.o (.data); - build/j/assets/images/split/image320.o (.data); - build/j/assets/images/split/image321.o (.data); - build/j/assets/images/split/image322.o (.data); - build/j/assets/images/split/image323.o (.data); - build/j/assets/images/split/image324.o (.data); - build/j/assets/images/split/image325.o (.data); - build/j/assets/images/split/image326.o (.data); - build/j/assets/images/split/image327.o (.data); - build/j/assets/images/split/image328.o (.data); - build/j/assets/images/split/image329.o (.data); - build/j/assets/images/split/image330.o (.data); - build/j/assets/images/split/image331.o (.data); - build/j/assets/images/split/image332.o (.data); - build/j/assets/images/split/image333.o (.data); - build/j/assets/images/split/image334.o (.data); - build/j/assets/images/split/image335.o (.data); - build/j/assets/images/split/image336.o (.data); - build/j/assets/images/split/image337.o (.data); - build/j/assets/images/split/image338.o (.data); - build/j/assets/images/split/image339.o (.data); - build/j/assets/images/split/image340.o (.data); - build/j/assets/images/split/image341.o (.data); - build/j/assets/images/split/image342.o (.data); - build/j/assets/images/split/image343.o (.data); - build/j/assets/images/split/image344.o (.data); - build/j/assets/images/split/image345.o (.data); - build/j/assets/images/split/image346.o (.data); - build/j/assets/images/split/image347.o (.data); - build/j/assets/images/split/image348.o (.data); - build/j/assets/images/split/image349.o (.data); - build/j/assets/images/split/image350.o (.data); - build/j/assets/images/split/image351.o (.data); - build/j/assets/images/split/image352.o (.data); - build/j/assets/images/split/image353.o (.data); - build/j/assets/images/split/image354.o (.data); - build/j/assets/images/split/image355.o (.data); - build/j/assets/images/split/image356.o (.data); - build/j/assets/images/split/image357.o (.data); - build/j/assets/images/split/image358.o (.data); - build/j/assets/images/split/image359.o (.data); - build/j/assets/images/split/image360.o (.data); - build/j/assets/images/split/image361.o (.data); - build/j/assets/images/split/image362.o (.data); - build/j/assets/images/split/image363.o (.data); - build/j/assets/images/split/image364.o (.data); - build/j/assets/images/split/image365.o (.data); - build/j/assets/images/split/image366.o (.data); - build/j/assets/images/split/image367.o (.data); - build/j/assets/images/split/image368.o (.data); - build/j/assets/images/split/image369.o (.data); - build/j/assets/images/split/image370.o (.data); - build/j/assets/images/split/image371.o (.data); - build/j/assets/images/split/image372.o (.data); - build/j/assets/images/split/image373.o (.data); - build/j/assets/images/split/image374.o (.data); - build/j/assets/images/split/image375.o (.data); - build/j/assets/images/split/image376.o (.data); - build/j/assets/images/split/image377.o (.data); - build/j/assets/images/split/image378.o (.data); - build/j/assets/images/split/image379.o (.data); - build/j/assets/images/split/image380.o (.data); - build/j/assets/images/split/image381.o (.data); - build/j/assets/images/split/image382.o (.data); - build/j/assets/images/split/image383.o (.data); - build/j/assets/images/split/image384.o (.data); - build/j/assets/images/split/image385.o (.data); - build/j/assets/images/split/image386.o (.data); - build/j/assets/images/split/image387.o (.data); - build/j/assets/images/split/image388.o (.data); - build/j/assets/images/split/image389.o (.data); - build/j/assets/images/split/image390.o (.data); - build/j/assets/images/split/image391.o (.data); - build/j/assets/images/split/image392.o (.data); - build/j/assets/images/split/image393.o (.data); - build/j/assets/images/split/image394.o (.data); - build/j/assets/images/split/image395.o (.data); - build/j/assets/images/split/image396.o (.data); - build/j/assets/images/split/image397.o (.data); - build/j/assets/images/split/image398.o (.data); - build/j/assets/images/split/image399.o (.data); - build/j/assets/images/split/image400.o (.data); - build/j/assets/images/split/image401.o (.data); - build/j/assets/images/split/image402.o (.data); - build/j/assets/images/split/image403.o (.data); - build/j/assets/images/split/image404.o (.data); - build/j/assets/images/split/image405.o (.data); - build/j/assets/images/split/image406.o (.data); - build/j/assets/images/split/image407.o (.data); - build/j/assets/images/split/image408.o (.data); - build/j/assets/images/split/image409.o (.data); - build/j/assets/images/split/image410.o (.data); - build/j/assets/images/split/image411.o (.data); - build/j/assets/images/split/image412.o (.data); - build/j/assets/images/split/image413.o (.data); - build/j/assets/images/split/image414.o (.data); - build/j/assets/images/split/image415.o (.data); - build/j/assets/images/split/image416.o (.data); - build/j/assets/images/split/image417.o (.data); - build/j/assets/images/split/image418.o (.data); - build/j/assets/images/split/image419.o (.data); - build/j/assets/images/split/image420.o (.data); - build/j/assets/images/split/image421.o (.data); - build/j/assets/images/split/image422.o (.data); - build/j/assets/images/split/image423.o (.data); - build/j/assets/images/split/image424.o (.data); - build/j/assets/images/split/image425.o (.data); - build/j/assets/images/split/image426.o (.data); - build/j/assets/images/split/image427.o (.data); - build/j/assets/images/split/image428.o (.data); - build/j/assets/images/split/image429.o (.data); - build/j/assets/images/split/image430.o (.data); - build/j/assets/images/split/image431.o (.data); - build/j/assets/images/split/image432.o (.data); - build/j/assets/images/split/image433.o (.data); - build/j/assets/images/split/image434.o (.data); - build/j/assets/images/split/image435.o (.data); - build/j/assets/images/split/image436.o (.data); - build/j/assets/images/split/image437.o (.data); - build/j/assets/images/split/image438.o (.data); - build/j/assets/images/split/image439.o (.data); - build/j/assets/images/split/image440.o (.data); - build/j/assets/images/split/image441.o (.data); - build/j/assets/images/split/image442.o (.data); - build/j/assets/images/split/image443.o (.data); - build/j/assets/images/split/image444.o (.data); - build/j/assets/images/split/image445.o (.data); - build/j/assets/images/split/image446.o (.data); - build/j/assets/images/split/image447.o (.data); - build/j/assets/images/split/image448.o (.data); - build/j/assets/images/split/image449.o (.data); - build/j/assets/images/split/image450.o (.data); - build/j/assets/images/split/image451.o (.data); - build/j/assets/images/split/image452.o (.data); - build/j/assets/images/split/image453.o (.data); - build/j/assets/images/split/image454.o (.data); - build/j/assets/images/split/image455.o (.data); - build/j/assets/images/split/image456.o (.data); - build/j/assets/images/split/image457.o (.data); - build/j/assets/images/split/image458.o (.data); - build/j/assets/images/split/image459.o (.data); - build/j/assets/images/split/image460.o (.data); - build/j/assets/images/split/image461.o (.data); - build/j/assets/images/split/image462.o (.data); - build/j/assets/images/split/image463.o (.data); - build/j/assets/images/split/image464.o (.data); - build/j/assets/images/split/image465.o (.data); - build/j/assets/images/split/image466.o (.data); - build/j/assets/images/split/image467.o (.data); - build/j/assets/images/split/image468.o (.data); - build/j/assets/images/split/image469.o (.data); - build/j/assets/images/split/image470.o (.data); - build/j/assets/images/split/image471.o (.data); - build/j/assets/images/split/image472.o (.data); - build/j/assets/images/split/image473.o (.data); - build/j/assets/images/split/image474.o (.data); - build/j/assets/images/split/image475.o (.data); - build/j/assets/images/split/image476.o (.data); - build/j/assets/images/split/image477.o (.data); - build/j/assets/images/split/image478.o (.data); - build/j/assets/images/split/image479.o (.data); - build/j/assets/images/split/image480.o (.data); - build/j/assets/images/split/image481.o (.data); - build/j/assets/images/split/image482.o (.data); - build/j/assets/images/split/image483.o (.data); - build/j/assets/images/split/image484.o (.data); - build/j/assets/images/split/image485.o (.data); - build/j/assets/images/split/image486.o (.data); - build/j/assets/images/split/image487.o (.data); - build/j/assets/images/split/image488.o (.data); - build/j/assets/images/split/image489.o (.data); - build/j/assets/images/split/image490.o (.data); - build/j/assets/images/split/image491.o (.data); - build/j/assets/images/split/image492.o (.data); - build/j/assets/images/split/image493.o (.data); - build/j/assets/images/split/image494.o (.data); - build/j/assets/images/split/image495.o (.data); - build/j/assets/images/split/image496.o (.data); - build/j/assets/images/split/image497.o (.data); - build/j/assets/images/split/image498.o (.data); - build/j/assets/images/split/image499.o (.data); - build/j/assets/images/split/image500.o (.data); - build/j/assets/images/split/image501.o (.data); - build/j/assets/images/split/image502.o (.data); - build/j/assets/images/split/image503.o (.data); - build/j/assets/images/split/image504.o (.data); - build/j/assets/images/split/image505.o (.data); - build/j/assets/images/split/image506.o (.data); - build/j/assets/images/split/image507.o (.data); - build/j/assets/images/split/image508.o (.data); - build/j/assets/images/split/image509.o (.data); - build/j/assets/images/split/image510.o (.data); - build/j/assets/images/split/image511.o (.data); - build/j/assets/images/split/image512.o (.data); - build/j/assets/images/split/image513.o (.data); - build/j/assets/images/split/image514.o (.data); - build/j/assets/images/split/image515.o (.data); - build/j/assets/images/split/image516.o (.data); - build/j/assets/images/split/image517.o (.data); - build/j/assets/images/split/image518.o (.data); - build/j/assets/images/split/image519.o (.data); - build/j/assets/images/split/image520.o (.data); - build/j/assets/images/split/image521.o (.data); - build/j/assets/images/split/image522.o (.data); - build/j/assets/images/split/image523.o (.data); - build/j/assets/images/split/image524.o (.data); - build/j/assets/images/split/image525.o (.data); - build/j/assets/images/split/image526.o (.data); - build/j/assets/images/split/image527.o (.data); - build/j/assets/images/split/image528.o (.data); - build/j/assets/images/split/image529.o (.data); - build/j/assets/images/split/image530.o (.data); - build/j/assets/images/split/image531.o (.data); - build/j/assets/images/split/image532.o (.data); - build/j/assets/images/split/image533.o (.data); - build/j/assets/images/split/image534.o (.data); - build/j/assets/images/split/image535.o (.data); - build/j/assets/images/split/image536.o (.data); - build/j/assets/images/split/image537.o (.data); - build/j/assets/images/split/image538.o (.data); - build/j/assets/images/split/image539.o (.data); - build/j/assets/images/split/image540.o (.data); - build/j/assets/images/split/image541.o (.data); - build/j/assets/images/split/image542.o (.data); - build/j/assets/images/split/image543.o (.data); - build/j/assets/images/split/image544.o (.data); - build/j/assets/images/split/image545.o (.data); - build/j/assets/images/split/image546.o (.data); - build/j/assets/images/split/image547.o (.data); - build/j/assets/images/split/image548.o (.data); - build/j/assets/images/split/image549.o (.data); - build/j/assets/images/split/image550.o (.data); - build/j/assets/images/split/image551.o (.data); - build/j/assets/images/split/image552.o (.data); - build/j/assets/images/split/image553.o (.data); - build/j/assets/images/split/image554.o (.data); - build/j/assets/images/split/image555.o (.data); - build/j/assets/images/split/image556.o (.data); - build/j/assets/images/split/image557.o (.data); - build/j/assets/images/split/image558.o (.data); - build/j/assets/images/split/image559.o (.data); - build/j/assets/images/split/image560.o (.data); - build/j/assets/images/split/image561.o (.data); - build/j/assets/images/split/image562.o (.data); - build/j/assets/images/split/image563.o (.data); - build/j/assets/images/split/image564.o (.data); - build/j/assets/images/split/image565.o (.data); - build/j/assets/images/split/image566.o (.data); - build/j/assets/images/split/image567.o (.data); - build/j/assets/images/split/image568.o (.data); - build/j/assets/images/split/image569.o (.data); - build/j/assets/images/split/image570.o (.data); - build/j/assets/images/split/image571.o (.data); - build/j/assets/images/split/image572.o (.data); - build/j/assets/images/split/image573.o (.data); - build/j/assets/images/split/image574.o (.data); - build/j/assets/images/split/image575.o (.data); - build/j/assets/images/split/image576.o (.data); - build/j/assets/images/split/image577.o (.data); - build/j/assets/images/split/image578.o (.data); - build/j/assets/images/split/image579.o (.data); - build/j/assets/images/split/image580.o (.data); - build/j/assets/images/split/image581.o (.data); - build/j/assets/images/split/image582.o (.data); - build/j/assets/images/split/image583.o (.data); - build/j/assets/images/split/image584.o (.data); - build/j/assets/images/split/image585.o (.data); - build/j/assets/images/split/image586.o (.data); - build/j/assets/images/split/image587.o (.data); - build/j/assets/images/split/image588.o (.data); - build/j/assets/images/split/image589.o (.data); - build/j/assets/images/split/image590.o (.data); - build/j/assets/images/split/image591.o (.data); - build/j/assets/images/split/image592.o (.data); - build/j/assets/images/split/image593.o (.data); - build/j/assets/images/split/image594.o (.data); - build/j/assets/images/split/image595.o (.data); - build/j/assets/images/split/image596.o (.data); - build/j/assets/images/split/image597.o (.data); - build/j/assets/images/split/image598.o (.data); - build/j/assets/images/split/image599.o (.data); - build/j/assets/images/split/image600.o (.data); - build/j/assets/images/split/image601.o (.data); - build/j/assets/images/split/image602.o (.data); - build/j/assets/images/split/image603.o (.data); - build/j/assets/images/split/image604.o (.data); - build/j/assets/images/split/image605.o (.data); - build/j/assets/images/split/image606.o (.data); - build/j/assets/images/split/image607.o (.data); - build/j/assets/images/split/image608.o (.data); - build/j/assets/images/split/image609.o (.data); - build/j/assets/images/split/image610.o (.data); - build/j/assets/images/split/image611.o (.data); - build/j/assets/images/split/image612.o (.data); - build/j/assets/images/split/image613.o (.data); - build/j/assets/images/split/image614.o (.data); - build/j/assets/images/split/image615.o (.data); - build/j/assets/images/split/image616.o (.data); - build/j/assets/images/split/image617.o (.data); - build/j/assets/images/split/image618.o (.data); - build/j/assets/images/split/image619.o (.data); - build/j/assets/images/split/image620.o (.data); - build/j/assets/images/split/image621.o (.data); - build/j/assets/images/split/image622.o (.data); - build/j/assets/images/split/image623.o (.data); - build/j/assets/images/split/image624.o (.data); - build/j/assets/images/split/image625.o (.data); - build/j/assets/images/split/image626.o (.data); - build/j/assets/images/split/image627.o (.data); - build/j/assets/images/split/image628.o (.data); - build/j/assets/images/split/image629.o (.data); - build/j/assets/images/split/image630.o (.data); - build/j/assets/images/split/image631.o (.data); - build/j/assets/images/split/image632.o (.data); - build/j/assets/images/split/image633.o (.data); - build/j/assets/images/split/image634.o (.data); - build/j/assets/images/split/image635.o (.data); - build/j/assets/images/split/image636.o (.data); - build/j/assets/images/split/image637.o (.data); - build/j/assets/images/split/image638.o (.data); - build/j/assets/images/split/image639.o (.data); - build/j/assets/images/split/image640.o (.data); - build/j/assets/images/split/image641.o (.data); - build/j/assets/images/split/image642.o (.data); - build/j/assets/images/split/image643.o (.data); - build/j/assets/images/split/image644.o (.data); - build/j/assets/images/split/image645.o (.data); - build/j/assets/images/split/image646.o (.data); - build/j/assets/images/split/image647.o (.data); - build/j/assets/images/split/image648.o (.data); - build/j/assets/images/split/image649.o (.data); - build/j/assets/images/split/image650.o (.data); - build/j/assets/images/split/image651.o (.data); - build/j/assets/images/split/image652.o (.data); - build/j/assets/images/split/image653.o (.data); - build/j/assets/images/split/image654.o (.data); - build/j/assets/images/split/image655.o (.data); - build/j/assets/images/split/image656.o (.data); - build/j/assets/images/split/image657.o (.data); - build/j/assets/images/split/image658.o (.data); - build/j/assets/images/split/image659.o (.data); - build/j/assets/images/split/image660.o (.data); - build/j/assets/images/split/image661.o (.data); - build/j/assets/images/split/image662.o (.data); - build/j/assets/images/split/image663.o (.data); - build/j/assets/images/split/image664.o (.data); - build/j/assets/images/split/image665.o (.data); - build/j/assets/images/split/image666.o (.data); - build/j/assets/images/split/image667.o (.data); - build/j/assets/images/split/image668.o (.data); - build/j/assets/images/split/image669.o (.data); - build/j/assets/images/split/image670.o (.data); - build/j/assets/images/split/image671.o (.data); - build/j/assets/images/split/image672.o (.data); - build/j/assets/images/split/image673.o (.data); - build/j/assets/images/split/image674.o (.data); - build/j/assets/images/split/image675.o (.data); - build/j/assets/images/split/image676.o (.data); - build/j/assets/images/split/image677.o (.data); - build/j/assets/images/split/image678.o (.data); - build/j/assets/images/split/image679.o (.data); - build/j/assets/images/split/image680.o (.data); - build/j/assets/images/split/image681.o (.data); - build/j/assets/images/split/image682.o (.data); - build/j/assets/images/split/image683.o (.data); - build/j/assets/images/split/image684.o (.data); - build/j/assets/images/split/image685.o (.data); - build/j/assets/images/split/image686.o (.data); - build/j/assets/images/split/image687.o (.data); - build/j/assets/images/split/image688.o (.data); - build/j/assets/images/split/image689.o (.data); - build/j/assets/images/split/image690.o (.data); - build/j/assets/images/split/image691.o (.data); - build/j/assets/images/split/image692.o (.data); - build/j/assets/images/split/image693.o (.data); - build/j/assets/images/split/image694.o (.data); - build/j/assets/images/split/image695.o (.data); - build/j/assets/images/split/image696.o (.data); - build/j/assets/images/split/image697.o (.data); - build/j/assets/images/split/image698.o (.data); - build/j/assets/images/split/image699.o (.data); - build/j/assets/images/split/image700.o (.data); - build/j/assets/images/split/image701.o (.data); - build/j/assets/images/split/image702.o (.data); - build/j/assets/images/split/image703.o (.data); - build/j/assets/images/split/image704.o (.data); - build/j/assets/images/split/image705.o (.data); - build/j/assets/images/split/image706.o (.data); - build/j/assets/images/split/image707.o (.data); - build/j/assets/images/split/image708.o (.data); - build/j/assets/images/split/image709.o (.data); - build/j/assets/images/split/image710.o (.data); - build/j/assets/images/split/image711.o (.data); - build/j/assets/images/split/image712.o (.data); - build/j/assets/images/split/image713.o (.data); - build/j/assets/images/split/image714.o (.data); - build/j/assets/images/split/image715.o (.data); - build/j/assets/images/split/image716.o (.data); - build/j/assets/images/split/image717.o (.data); - build/j/assets/images/split/image718.o (.data); - build/j/assets/images/split/image719.o (.data); - build/j/assets/images/split/image720.o (.data); - build/j/assets/images/split/image721.o (.data); - build/j/assets/images/split/image722.o (.data); - build/j/assets/images/split/image723.o (.data); - build/j/assets/images/split/image724.o (.data); - build/j/assets/images/split/image725.o (.data); - build/j/assets/images/split/image726.o (.data); - build/j/assets/images/split/image727.o (.data); - build/j/assets/images/split/image728.o (.data); - build/j/assets/images/split/image729.o (.data); - build/j/assets/images/split/image730.o (.data); - build/j/assets/images/split/image731.o (.data); - build/j/assets/images/split/image732.o (.data); - build/j/assets/images/split/image733.o (.data); - build/j/assets/images/split/image734.o (.data); - build/j/assets/images/split/image735.o (.data); - build/j/assets/images/split/image736.o (.data); - build/j/assets/images/split/image737.o (.data); - build/j/assets/images/split/image738.o (.data); - build/j/assets/images/split/image739.o (.data); - build/j/assets/images/split/image740.o (.data); - build/j/assets/images/split/image741.o (.data); - build/j/assets/images/split/image742.o (.data); - build/j/assets/images/split/image743.o (.data); - build/j/assets/images/split/image744.o (.data); - build/j/assets/images/split/image745.o (.data); - build/j/assets/images/split/image746.o (.data); - build/j/assets/images/split/image747.o (.data); - build/j/assets/images/split/image748.o (.data); - build/j/assets/images/split/image749.o (.data); - build/j/assets/images/split/image750.o (.data); - build/j/assets/images/split/image751.o (.data); - build/j/assets/images/split/image752.o (.data); - build/j/assets/images/split/image753.o (.data); - build/j/assets/images/split/image754.o (.data); - build/j/assets/images/split/image755.o (.data); - build/j/assets/images/split/image756.o (.data); - build/j/assets/images/split/image757.o (.data); - build/j/assets/images/split/image758.o (.data); - build/j/assets/images/split/image759.o (.data); - build/j/assets/images/split/image760.o (.data); - build/j/assets/images/split/image761.o (.data); - build/j/assets/images/split/image762.o (.data); - build/j/assets/images/split/image763.o (.data); - build/j/assets/images/split/image764.o (.data); - build/j/assets/images/split/image765.o (.data); - build/j/assets/images/split/image766.o (.data); - build/j/assets/images/split/image767.o (.data); - build/j/assets/images/split/image768.o (.data); - build/j/assets/images/split/image769.o (.data); - build/j/assets/images/split/image770.o (.data); - build/j/assets/images/split/image771.o (.data); - build/j/assets/images/split/image772.o (.data); - build/j/assets/images/split/image773.o (.data); - build/j/assets/images/split/image774.o (.data); - build/j/assets/images/split/image775.o (.data); - build/j/assets/images/split/image776.o (.data); - build/j/assets/images/split/image777.o (.data); - build/j/assets/images/split/image778.o (.data); - build/j/assets/images/split/image779.o (.data); - build/j/assets/images/split/image780.o (.data); - build/j/assets/images/split/image781.o (.data); - build/j/assets/images/split/image782.o (.data); - build/j/assets/images/split/image783.o (.data); - build/j/assets/images/split/image784.o (.data); - build/j/assets/images/split/image785.o (.data); - build/j/assets/images/split/image786.o (.data); - build/j/assets/images/split/image787.o (.data); - build/j/assets/images/split/image788.o (.data); - build/j/assets/images/split/image789.o (.data); - build/j/assets/images/split/image790.o (.data); - build/j/assets/images/split/image791.o (.data); - build/j/assets/images/split/image792.o (.data); - build/j/assets/images/split/image793.o (.data); - build/j/assets/images/split/image794.o (.data); - build/j/assets/images/split/image795.o (.data); - build/j/assets/images/split/image796.o (.data); - build/j/assets/images/split/image797.o (.data); - build/j/assets/images/split/image798.o (.data); - build/j/assets/images/split/image799.o (.data); - build/j/assets/images/split/image800.o (.data); - build/j/assets/images/split/image801.o (.data); - build/j/assets/images/split/image802.o (.data); - build/j/assets/images/split/image803.o (.data); - build/j/assets/images/split/image804.o (.data); - build/j/assets/images/split/image805.o (.data); - build/j/assets/images/split/image806.o (.data); - build/j/assets/images/split/image807.o (.data); - build/j/assets/images/split/image808.o (.data); - build/j/assets/images/split/image809.o (.data); - build/j/assets/images/split/image810.o (.data); - build/j/assets/images/split/image811.o (.data); - build/j/assets/images/split/image812.o (.data); - build/j/assets/images/split/image813.o (.data); - build/j/assets/images/split/image814.o (.data); - build/j/assets/images/split/image815.o (.data); - build/j/assets/images/split/image816.o (.data); - build/j/assets/images/split/image817.o (.data); - build/j/assets/images/split/image818.o (.data); - build/j/assets/images/split/image819.o (.data); - build/j/assets/images/split/image820.o (.data); - build/j/assets/images/split/image821.o (.data); - build/j/assets/images/split/image822.o (.data); - build/j/assets/images/split/image823.o (.data); - build/j/assets/images/split/image824.o (.data); - build/j/assets/images/split/image825.o (.data); - build/j/assets/images/split/image826.o (.data); - build/j/assets/images/split/image827.o (.data); - build/j/assets/images/split/image828.o (.data); - build/j/assets/images/split/image829.o (.data); - build/j/assets/images/split/image830.o (.data); - build/j/assets/images/split/image831.o (.data); - build/j/assets/images/split/image832.o (.data); - build/j/assets/images/split/image833.o (.data); - build/j/assets/images/split/image834.o (.data); - build/j/assets/images/split/image835.o (.data); - build/j/assets/images/split/image836.o (.data); - build/j/assets/images/split/image837.o (.data); - build/j/assets/images/split/image838.o (.data); - build/j/assets/images/split/image839.o (.data); - build/j/assets/images/split/image840.o (.data); - build/j/assets/images/split/image841.o (.data); - build/j/assets/images/split/image842.o (.data); - build/j/assets/images/split/image843.o (.data); - build/j/assets/images/split/image844.o (.data); - build/j/assets/images/split/image845.o (.data); - build/j/assets/images/split/image846.o (.data); - build/j/assets/images/split/image847.o (.data); - build/j/assets/images/split/image848.o (.data); - build/j/assets/images/split/image849.o (.data); - build/j/assets/images/split/image850.o (.data); - build/j/assets/images/split/image851.o (.data); - build/j/assets/images/split/image852.o (.data); - build/j/assets/images/split/image853.o (.data); - build/j/assets/images/split/image854.o (.data); - build/j/assets/images/split/image855.o (.data); - build/j/assets/images/split/image856.o (.data); - build/j/assets/images/split/image857.o (.data); - build/j/assets/images/split/image858.o (.data); - build/j/assets/images/split/image859.o (.data); - build/j/assets/images/split/image860.o (.data); - build/j/assets/images/split/image861.o (.data); - build/j/assets/images/split/image862.o (.data); - build/j/assets/images/split/image863.o (.data); - build/j/assets/images/split/image864.o (.data); - build/j/assets/images/split/image865.o (.data); - build/j/assets/images/split/image866.o (.data); - build/j/assets/images/split/image867.o (.data); - build/j/assets/images/split/image868.o (.data); - build/j/assets/images/split/image869.o (.data); - build/j/assets/images/split/image870.o (.data); - build/j/assets/images/split/image871.o (.data); - build/j/assets/images/split/image872.o (.data); - build/j/assets/images/split/image873.o (.data); - build/j/assets/images/split/image874.o (.data); - build/j/assets/images/split/image875.o (.data); - build/j/assets/images/split/image876.o (.data); - build/j/assets/images/split/image877.o (.data); - build/j/assets/images/split/image878.o (.data); - build/j/assets/images/split/image879.o (.data); - build/j/assets/images/split/image880.o (.data); - build/j/assets/images/split/image881.o (.data); - build/j/assets/images/split/image882.o (.data); - build/j/assets/images/split/image883.o (.data); - build/j/assets/images/split/image884.o (.data); - build/j/assets/images/split/image885.o (.data); - build/j/assets/images/split/image886.o (.data); - build/j/assets/images/split/image887.o (.data); - build/j/assets/images/split/image888.o (.data); - build/j/assets/images/split/image889.o (.data); - build/j/assets/images/split/image890.o (.data); - build/j/assets/images/split/image891.o (.data); - build/j/assets/images/split/image892.o (.data); - build/j/assets/images/split/image893.o (.data); - build/j/assets/images/split/image894.o (.data); - build/j/assets/images/split/image895.o (.data); - build/j/assets/images/split/image896.o (.data); - build/j/assets/images/split/image897.o (.data); - build/j/assets/images/split/image898.o (.data); - build/j/assets/images/split/image899.o (.data); - build/j/assets/images/split/image900.o (.data); - build/j/assets/images/split/image901.o (.data); - build/j/assets/images/split/image902.o (.data); - build/j/assets/images/split/image903.o (.data); - build/j/assets/images/split/image904.o (.data); - build/j/assets/images/split/image905.o (.data); - build/j/assets/images/split/image906.o (.data); - build/j/assets/images/split/image907.o (.data); - build/j/assets/images/split/image908.o (.data); - build/j/assets/images/split/image909.o (.data); - build/j/assets/images/split/image910.o (.data); - build/j/assets/images/split/image911.o (.data); - build/j/assets/images/split/image912.o (.data); - build/j/assets/images/split/image913.o (.data); - build/j/assets/images/split/image914.o (.data); - build/j/assets/images/split/image915.o (.data); - build/j/assets/images/split/image916.o (.data); - build/j/assets/images/split/image917.o (.data); - build/j/assets/images/split/image918.o (.data); - build/j/assets/images/split/image919.o (.data); - build/j/assets/images/split/image920.o (.data); - build/j/assets/images/split/image921.o (.data); - build/j/assets/images/split/image922.o (.data); - build/j/assets/images/split/image923.o (.data); - build/j/assets/images/split/image924.o (.data); - build/j/assets/images/split/image925.o (.data); - build/j/assets/images/split/image926.o (.data); - build/j/assets/images/split/image927.o (.data); - build/j/assets/images/split/image928.o (.data); - build/j/assets/images/split/image929.o (.data); - build/j/assets/images/split/image930.o (.data); - build/j/assets/images/split/image931.o (.data); - build/j/assets/images/split/image932.o (.data); - build/j/assets/images/split/image933.o (.data); - build/j/assets/images/split/image934.o (.data); - build/j/assets/images/split/image935.o (.data); - build/j/assets/images/split/image936.o (.data); - build/j/assets/images/split/image937.o (.data); - build/j/assets/images/split/image938.o (.data); - build/j/assets/images/split/image939.o (.data); - build/j/assets/images/split/image940.o (.data); - build/j/assets/images/split/image941.o (.data); - build/j/assets/images/split/image942.o (.data); - build/j/assets/images/split/image943.o (.data); - build/j/assets/images/split/image944.o (.data); - build/j/assets/images/split/image945.o (.data); - build/j/assets/images/split/image946.o (.data); - build/j/assets/images/split/image947.o (.data); - build/j/assets/images/split/image948.o (.data); - build/j/assets/images/split/image949.o (.data); - build/j/assets/images/split/image950.o (.data); - build/j/assets/images/split/image951.o (.data); - build/j/assets/images/split/image952.o (.data); - build/j/assets/images/split/image953.o (.data); - build/j/assets/images/split/image954.o (.data); - build/j/assets/images/split/image955.o (.data); - build/j/assets/images/split/image956.o (.data); - build/j/assets/images/split/image957.o (.data); - build/j/assets/images/split/image958.o (.data); - build/j/assets/images/split/image959.o (.data); - build/j/assets/images/split/image960.o (.data); - build/j/assets/images/split/image961.o (.data); - build/j/assets/images/split/image962.o (.data); - build/j/assets/images/split/image963.o (.data); - build/j/assets/images/split/image964.o (.data); - build/j/assets/images/split/image965.o (.data); - build/j/assets/images/split/image966.o (.data); - build/j/assets/images/split/image967.o (.data); - build/j/assets/images/split/image968.o (.data); - build/j/assets/images/split/image969.o (.data); - build/j/assets/images/split/image970.o (.data); - build/j/assets/images/split/image971.o (.data); - build/j/assets/images/split/image972.o (.data); - build/j/assets/images/split/image973.o (.data); - build/j/assets/images/split/image974.o (.data); - build/j/assets/images/split/image975.o (.data); - build/j/assets/images/split/image976.o (.data); - build/j/assets/images/split/image977.o (.data); - build/j/assets/images/split/image978.o (.data); - build/j/assets/images/split/image979.o (.data); - build/j/assets/images/split/image980.o (.data); - build/j/assets/images/split/image981.o (.data); - build/j/assets/images/split/image982.o (.data); - build/j/assets/images/split/image983.o (.data); - build/j/assets/images/split/image984.o (.data); - build/j/assets/images/split/image985.o (.data); - build/j/assets/images/split/image986.o (.data); - build/j/assets/images/split/image987.o (.data); - build/j/assets/images/split/image988.o (.data); - build/j/assets/images/split/image989.o (.data); - build/j/assets/images/split/image990.o (.data); - build/j/assets/images/split/image991.o (.data); - build/j/assets/images/split/image992.o (.data); - build/j/assets/images/split/image993.o (.data); - build/j/assets/images/split/image994.o (.data); - build/j/assets/images/split/image995.o (.data); - build/j/assets/images/split/image996.o (.data); - build/j/assets/images/split/image997.o (.data); - build/j/assets/images/split/image998.o (.data); - build/j/assets/images/split/image999.o (.data); - build/j/assets/images/split/image1000.o (.data); - build/j/assets/images/split/image1001.o (.data); - build/j/assets/images/split/image1002.o (.data); - build/j/assets/images/split/image1003.o (.data); - build/j/assets/images/split/image1004.o (.data); - build/j/assets/images/split/image1005.o (.data); - build/j/assets/images/split/image1006.o (.data); - build/j/assets/images/split/image1007.o (.data); - build/j/assets/images/split/image1008.o (.data); - build/j/assets/images/split/image1009.o (.data); - build/j/assets/images/split/image1010.o (.data); - build/j/assets/images/split/image1011.o (.data); - build/j/assets/images/split/image1012.o (.data); - build/j/assets/images/split/image1013.o (.data); - build/j/assets/images/split/image1014.o (.data); - build/j/assets/images/split/image1015.o (.data); - build/j/assets/images/split/image1016.o (.data); - build/j/assets/images/split/image1017.o (.data); - build/j/assets/images/split/image1018.o (.data); - build/j/assets/images/split/image1019.o (.data); - build/j/assets/images/split/image1020.o (.data); - build/j/assets/images/split/image1021.o (.data); - build/j/assets/images/split/image1022.o (.data); - build/j/assets/images/split/image1023.o (.data); - build/j/assets/images/split/image1024.o (.data); - build/j/assets/images/split/image1025.o (.data); - build/j/assets/images/split/image1026.o (.data); - build/j/assets/images/split/image1027.o (.data); - build/j/assets/images/split/image1028.o (.data); - build/j/assets/images/split/image1029.o (.data); - build/j/assets/images/split/image1030.o (.data); - build/j/assets/images/split/image1031.o (.data); - build/j/assets/images/split/image1032.o (.data); - build/j/assets/images/split/image1033.o (.data); - build/j/assets/images/split/image1034.o (.data); - build/j/assets/images/split/image1035.o (.data); - build/j/assets/images/split/image1036.o (.data); - build/j/assets/images/split/image1037.o (.data); - build/j/assets/images/split/image1038.o (.data); - build/j/assets/images/split/image1039.o (.data); - build/j/assets/images/split/image1040.o (.data); - build/j/assets/images/split/image1041.o (.data); - build/j/assets/images/split/image1042.o (.data); - build/j/assets/images/split/image1043.o (.data); - build/j/assets/images/split/image1044.o (.data); - build/j/assets/images/split/image1045.o (.data); - build/j/assets/images/split/image1046.o (.data); - build/j/assets/images/split/image1047.o (.data); - build/j/assets/images/split/image1048.o (.data); - build/j/assets/images/split/image1049.o (.data); - build/j/assets/images/split/image1050.o (.data); - build/j/assets/images/split/image1051.o (.data); - build/j/assets/images/split/image1052.o (.data); - build/j/assets/images/split/image1053.o (.data); - build/j/assets/images/split/image1054.o (.data); - build/j/assets/images/split/image1055.o (.data); - build/j/assets/images/split/image1056.o (.data); - build/j/assets/images/split/image1057.o (.data); - build/j/assets/images/split/image1058.o (.data); - build/j/assets/images/split/image1059.o (.data); - build/j/assets/images/split/image1060.o (.data); - build/j/assets/images/split/image1061.o (.data); - build/j/assets/images/split/image1062.o (.data); - build/j/assets/images/split/image1063.o (.data); - build/j/assets/images/split/image1064.o (.data); - build/j/assets/images/split/image1065.o (.data); - build/j/assets/images/split/image1066.o (.data); - build/j/assets/images/split/image1067.o (.data); - build/j/assets/images/split/image1068.o (.data); - build/j/assets/images/split/image1069.o (.data); - build/j/assets/images/split/image1070.o (.data); - build/j/assets/images/split/image1071.o (.data); - build/j/assets/images/split/image1072.o (.data); - build/j/assets/images/split/image1073.o (.data); - build/j/assets/images/split/image1074.o (.data); - build/j/assets/images/split/image1075.o (.data); - build/j/assets/images/split/image1076.o (.data); - build/j/assets/images/split/image1077.o (.data); - build/j/assets/images/split/image1078.o (.data); - build/j/assets/images/split/image1079.o (.data); - build/j/assets/images/split/image1080.o (.data); - build/j/assets/images/split/image1081.o (.data); - build/j/assets/images/split/image1082.o (.data); - build/j/assets/images/split/image1083.o (.data); - build/j/assets/images/split/image1084.o (.data); - build/j/assets/images/split/image1085.o (.data); - build/j/assets/images/split/image1086.o (.data); - build/j/assets/images/split/image1087.o (.data); - build/j/assets/images/split/image1088.o (.data); - build/j/assets/images/split/image1089.o (.data); - build/j/assets/images/split/image1090.o (.data); - build/j/assets/images/split/image1091.o (.data); - build/j/assets/images/split/image1092.o (.data); - build/j/assets/images/split/image1093.o (.data); - build/j/assets/images/split/image1094.o (.data); - build/j/assets/images/split/image1095.o (.data); - build/j/assets/images/split/image1096.o (.data); - build/j/assets/images/split/image1097.o (.data); - build/j/assets/images/split/image1098.o (.data); - build/j/assets/images/split/image1099.o (.data); - build/j/assets/images/split/image1100.o (.data); - build/j/assets/images/split/image1101.o (.data); - build/j/assets/images/split/image1102.o (.data); - build/j/assets/images/split/image1103.o (.data); - build/j/assets/images/split/image1104.o (.data); - build/j/assets/images/split/image1105.o (.data); - build/j/assets/images/split/image1106.o (.data); - build/j/assets/images/split/image1107.o (.data); - build/j/assets/images/split/image1108.o (.data); - build/j/assets/images/split/image1109.o (.data); - build/j/assets/images/split/image1110.o (.data); - build/j/assets/images/split/image1111.o (.data); - build/j/assets/images/split/image1112.o (.data); - build/j/assets/images/split/image1113.o (.data); - build/j/assets/images/split/image1114.o (.data); - build/j/assets/images/split/image1115.o (.data); - build/j/assets/images/split/image1116.o (.data); - build/j/assets/images/split/image1117.o (.data); - build/j/assets/images/split/image1118.o (.data); - build/j/assets/images/split/image1119.o (.data); - build/j/assets/images/split/image1120.o (.data); - build/j/assets/images/split/image1121.o (.data); - build/j/assets/images/split/image1122.o (.data); - build/j/assets/images/split/image1123.o (.data); - build/j/assets/images/split/image1124.o (.data); - build/j/assets/images/split/image1125.o (.data); - build/j/assets/images/split/image1126.o (.data); - build/j/assets/images/split/image1127.o (.data); - build/j/assets/images/split/image1128.o (.data); - build/j/assets/images/split/image1129.o (.data); - build/j/assets/images/split/image1130.o (.data); - build/j/assets/images/split/image1131.o (.data); - build/j/assets/images/split/image1132.o (.data); - build/j/assets/images/split/image1133.o (.data); - build/j/assets/images/split/image1134.o (.data); - build/j/assets/images/split/image1135.o (.data); - build/j/assets/images/split/image1136.o (.data); - build/j/assets/images/split/image1137.o (.data); - build/j/assets/images/split/image1138.o (.data); - build/j/assets/images/split/image1139.o (.data); - build/j/assets/images/split/image1140.o (.data); - build/j/assets/images/split/image1141.o (.data); - build/j/assets/images/split/image1142.o (.data); - build/j/assets/images/split/image1143.o (.data); - build/j/assets/images/split/image1144.o (.data); - build/j/assets/images/split/image1145.o (.data); - build/j/assets/images/split/image1146.o (.data); - build/j/assets/images/split/image1147.o (.data); - build/j/assets/images/split/image1148.o (.data); - build/j/assets/images/split/image1149.o (.data); - build/j/assets/images/split/image1150.o (.data); - build/j/assets/images/split/image1151.o (.data); - build/j/assets/images/split/image1152.o (.data); - build/j/assets/images/split/image1153.o (.data); - build/j/assets/images/split/image1154.o (.data); - build/j/assets/images/split/image1155.o (.data); - build/j/assets/images/split/image1156.o (.data); - build/j/assets/images/split/image1157.o (.data); - build/j/assets/images/split/image1158.o (.data); - build/j/assets/images/split/image1159.o (.data); - build/j/assets/images/split/image1160.o (.data); - build/j/assets/images/split/image1161.o (.data); - build/j/assets/images/split/image1162.o (.data); - build/j/assets/images/split/image1163.o (.data); - build/j/assets/images/split/image1164.o (.data); - build/j/assets/images/split/image1165.o (.data); - build/j/assets/images/split/image1166.o (.data); - build/j/assets/images/split/image1167.o (.data); - build/j/assets/images/split/image1168.o (.data); - build/j/assets/images/split/image1169.o (.data); - build/j/assets/images/split/image1170.o (.data); - build/j/assets/images/split/image1171.o (.data); - build/j/assets/images/split/image1172.o (.data); - build/j/assets/images/split/image1173.o (.data); - build/j/assets/images/split/image1174.o (.data); - build/j/assets/images/split/image1175.o (.data); - build/j/assets/images/split/image1176.o (.data); - build/j/assets/images/split/image1177.o (.data); - build/j/assets/images/split/image1178.o (.data); - build/j/assets/images/split/image1179.o (.data); - build/j/assets/images/split/image1180.o (.data); - build/j/assets/images/split/image1181.o (.data); - build/j/assets/images/split/image1182.o (.data); - build/j/assets/images/split/image1183.o (.data); - build/j/assets/images/split/image1184.o (.data); - build/j/assets/images/split/image1185.o (.data); - build/j/assets/images/split/image1186.o (.data); - build/j/assets/images/split/image1187.o (.data); - build/j/assets/images/split/image1188.o (.data); - build/j/assets/images/split/image1189.o (.data); - build/j/assets/images/split/image1190.o (.data); - build/j/assets/images/split/image1191.o (.data); - build/j/assets/images/split/image1192.o (.data); - build/j/assets/images/split/image1193.o (.data); - build/j/assets/images/split/image1194.o (.data); - build/j/assets/images/split/image1195.o (.data); - build/j/assets/images/split/image1196.o (.data); - build/j/assets/images/split/image1197.o (.data); - build/j/assets/images/split/image1198.o (.data); - build/j/assets/images/split/image1199.o (.data); - build/j/assets/images/split/image1200.o (.data); - build/j/assets/images/split/image1201.o (.data); - build/j/assets/images/split/image1202.o (.data); - build/j/assets/images/split/image1203.o (.data); - build/j/assets/images/split/image1204.o (.data); - build/j/assets/images/split/image1205.o (.data); - build/j/assets/images/split/image1206.o (.data); - build/j/assets/images/split/image1207.o (.data); - build/j/assets/images/split/image1208.o (.data); - build/j/assets/images/split/image1209.o (.data); - build/j/assets/images/split/image1210.o (.data); - build/j/assets/images/split/image1211.o (.data); - build/j/assets/images/split/image1212.o (.data); - build/j/assets/images/split/image1213.o (.data); - build/j/assets/images/split/image1214.o (.data); - build/j/assets/images/split/image1215.o (.data); - build/j/assets/images/split/image1216.o (.data); - build/j/assets/images/split/image1217.o (.data); - build/j/assets/images/split/image1218.o (.data); - build/j/assets/images/split/image1219.o (.data); - build/j/assets/images/split/image1220.o (.data); - build/j/assets/images/split/image1221.o (.data); - build/j/assets/images/split/image1222.o (.data); - build/j/assets/images/split/image1223.o (.data); - build/j/assets/images/split/image1224.o (.data); - build/j/assets/images/split/image1225.o (.data); - build/j/assets/images/split/image1226.o (.data); - build/j/assets/images/split/image1227.o (.data); - build/j/assets/images/split/image1228.o (.data); - build/j/assets/images/split/image1229.o (.data); - build/j/assets/images/split/image1230.o (.data); - build/j/assets/images/split/image1231.o (.data); - build/j/assets/images/split/image1232.o (.data); - build/j/assets/images/split/image1233.o (.data); - build/j/assets/images/split/image1234.o (.data); - build/j/assets/images/split/image1235.o (.data); - build/j/assets/images/split/image1236.o (.data); - build/j/assets/images/split/image1237.o (.data); - build/j/assets/images/split/image1238.o (.data); - build/j/assets/images/split/image1239.o (.data); - build/j/assets/images/split/image1240.o (.data); - build/j/assets/images/split/image1241.o (.data); - build/j/assets/images/split/image1242.o (.data); - build/j/assets/images/split/image1243.o (.data); - build/j/assets/images/split/image1244.o (.data); - build/j/assets/images/split/image1245.o (.data); - build/j/assets/images/split/image1246.o (.data); - build/j/assets/images/split/image1247.o (.data); - build/j/assets/images/split/image1248.o (.data); - build/j/assets/images/split/image1249.o (.data); - build/j/assets/images/split/image1250.o (.data); - build/j/assets/images/split/image1251.o (.data); - build/j/assets/images/split/image1252.o (.data); - build/j/assets/images/split/image1253.o (.data); - build/j/assets/images/split/image1254.o (.data); - build/j/assets/images/split/image1255.o (.data); - build/j/assets/images/split/image1256.o (.data); - build/j/assets/images/split/image1257.o (.data); - build/j/assets/images/split/image1258.o (.data); - build/j/assets/images/split/image1259.o (.data); - build/j/assets/images/split/image1260.o (.data); - build/j/assets/images/split/image1261.o (.data); - build/j/assets/images/split/image1262.o (.data); - build/j/assets/images/split/image1263.o (.data); - build/j/assets/images/split/image1264.o (.data); - build/j/assets/images/split/image1265.o (.data); - build/j/assets/images/split/image1266.o (.data); - build/j/assets/images/split/image1267.o (.data); - build/j/assets/images/split/image1268.o (.data); - build/j/assets/images/split/image1269.o (.data); - build/j/assets/images/split/image1270.o (.data); - build/j/assets/images/split/image1271.o (.data); - build/j/assets/images/split/image1272.o (.data); - build/j/assets/images/split/image1273.o (.data); - build/j/assets/images/split/image1274.o (.data); - build/j/assets/images/split/image1275.o (.data); - build/j/assets/images/split/image1276.o (.data); - build/j/assets/images/split/image1277.o (.data); - build/j/assets/images/split/image1278.o (.data); - build/j/assets/images/split/image1279.o (.data); - build/j/assets/images/split/image1280.o (.data); - build/j/assets/images/split/image1281.o (.data); - build/j/assets/images/split/image1282.o (.data); - build/j/assets/images/split/image1283.o (.data); - build/j/assets/images/split/image1284.o (.data); - build/j/assets/images/split/image1285.o (.data); - build/j/assets/images/split/image1286.o (.data); - build/j/assets/images/split/image1287.o (.data); - build/j/assets/images/split/image1288.o (.data); - build/j/assets/images/split/image1289.o (.data); - build/j/assets/images/split/image1290.o (.data); - build/j/assets/images/split/image1291.o (.data); - build/j/assets/images/split/image1292.o (.data); - build/j/assets/images/split/image1293.o (.data); - build/j/assets/images/split/image1294.o (.data); - build/j/assets/images/split/image1295.o (.data); - build/j/assets/images/split/image1296.o (.data); - build/j/assets/images/split/image1297.o (.data); - build/j/assets/images/split/image1298.o (.data); - build/j/assets/images/split/image1299.o (.data); - build/j/assets/images/split/image1300.o (.data); - build/j/assets/images/split/image1301.o (.data); - build/j/assets/images/split/image1302.o (.data); - build/j/assets/images/split/image1303.o (.data); - build/j/assets/images/split/image1304.o (.data); - build/j/assets/images/split/image1305.o (.data); - build/j/assets/images/split/image1306.o (.data); - build/j/assets/images/split/image1307.o (.data); - build/j/assets/images/split/image1308.o (.data); - build/j/assets/images/split/image1309.o (.data); - build/j/assets/images/split/image1310.o (.data); - build/j/assets/images/split/image1311.o (.data); - build/j/assets/images/split/image1312.o (.data); - build/j/assets/images/split/image1313.o (.data); - build/j/assets/images/split/image1314.o (.data); - build/j/assets/images/split/image1315.o (.data); - build/j/assets/images/split/image1316.o (.data); - build/j/assets/images/split/image1317.o (.data); - build/j/assets/images/split/image1318.o (.data); - build/j/assets/images/split/image1319.o (.data); - build/j/assets/images/split/image1320.o (.data); - build/j/assets/images/split/image1321.o (.data); - build/j/assets/images/split/image1322.o (.data); - build/j/assets/images/split/image1323.o (.data); - build/j/assets/images/split/image1324.o (.data); - build/j/assets/images/split/image1325.o (.data); - build/j/assets/images/split/image1326.o (.data); - build/j/assets/images/split/image1327.o (.data); - build/j/assets/images/split/image1328.o (.data); - build/j/assets/images/split/image1329.o (.data); - build/j/assets/images/split/image1330.o (.data); - build/j/assets/images/split/image1331.o (.data); - build/j/assets/images/split/image1332.o (.data); - build/j/assets/images/split/image1333.o (.data); - build/j/assets/images/split/image1334.o (.data); - build/j/assets/images/split/image1335.o (.data); - build/j/assets/images/split/image1336.o (.data); - build/j/assets/images/split/image1337.o (.data); - build/j/assets/images/split/image1338.o (.data); - build/j/assets/images/split/image1339.o (.data); - build/j/assets/images/split/image1340.o (.data); - build/j/assets/images/split/image1341.o (.data); - build/j/assets/images/split/image1342.o (.data); - build/j/assets/images/split/image1343.o (.data); - build/j/assets/images/split/image1344.o (.data); - build/j/assets/images/split/image1345.o (.data); - build/j/assets/images/split/image1346.o (.data); - build/j/assets/images/split/image1347.o (.data); - build/j/assets/images/split/image1348.o (.data); - build/j/assets/images/split/image1349.o (.data); - build/j/assets/images/split/image1350.o (.data); - build/j/assets/images/split/image1351.o (.data); - build/j/assets/images/split/image1352.o (.data); - build/j/assets/images/split/image1353.o (.data); - build/j/assets/images/split/image1354.o (.data); - build/j/assets/images/split/image1355.o (.data); - build/j/assets/images/split/image1356.o (.data); - build/j/assets/images/split/image1357.o (.data); - build/j/assets/images/split/image1358.o (.data); - build/j/assets/images/split/image1359.o (.data); - build/j/assets/images/split/image1360.o (.data); - build/j/assets/images/split/image1361.o (.data); - build/j/assets/images/split/image1362.o (.data); - build/j/assets/images/split/image1363.o (.data); - build/j/assets/images/split/image1364.o (.data); - build/j/assets/images/split/image1365.o (.data); - build/j/assets/images/split/image1366.o (.data); - build/j/assets/images/split/image1367.o (.data); - build/j/assets/images/split/image1368.o (.data); - build/j/assets/images/split/image1369.o (.data); - build/j/assets/images/split/image1370.o (.data); - build/j/assets/images/split/image1371.o (.data); - build/j/assets/images/split/image1372.o (.data); - build/j/assets/images/split/image1373.o (.data); - build/j/assets/images/split/image1374.o (.data); - build/j/assets/images/split/image1375.o (.data); - build/j/assets/images/split/image1376.o (.data); - build/j/assets/images/split/image1377.o (.data); - build/j/assets/images/split/image1378.o (.data); - build/j/assets/images/split/image1379.o (.data); - build/j/assets/images/split/image1380.o (.data); - build/j/assets/images/split/image1381.o (.data); - build/j/assets/images/split/image1382.o (.data); - build/j/assets/images/split/image1383.o (.data); - build/j/assets/images/split/image1384.o (.data); - build/j/assets/images/split/image1385.o (.data); - build/j/assets/images/split/image1386.o (.data); - build/j/assets/images/split/image1387.o (.data); - build/j/assets/images/split/image1388.o (.data); - build/j/assets/images/split/image1389.o (.data); - build/j/assets/images/split/image1390.o (.data); - build/j/assets/images/split/image1391.o (.data); - build/j/assets/images/split/image1392.o (.data); - build/j/assets/images/split/image1393.o (.data); - build/j/assets/images/split/image1394.o (.data); - build/j/assets/images/split/image1395.o (.data); - build/j/assets/images/split/image1396.o (.data); - build/j/assets/images/split/image1397.o (.data); - build/j/assets/images/split/image1398.o (.data); - build/j/assets/images/split/image1399.o (.data); - build/j/assets/images/split/image1400.o (.data); - build/j/assets/images/split/image1401.o (.data); - build/j/assets/images/split/image1402.o (.data); - build/j/assets/images/split/image1403.o (.data); - build/j/assets/images/split/image1404.o (.data); - build/j/assets/images/split/image1405.o (.data); - build/j/assets/images/split/image1406.o (.data); - build/j/assets/images/split/image1407.o (.data); - build/j/assets/images/split/image1408.o (.data); - build/j/assets/images/split/image1409.o (.data); - build/j/assets/images/split/image1410.o (.data); - build/j/assets/images/split/image1411.o (.data); - build/j/assets/images/split/image1412.o (.data); - build/j/assets/images/split/image1413.o (.data); - build/j/assets/images/split/image1414.o (.data); - build/j/assets/images/split/image1415.o (.data); - build/j/assets/images/split/image1416.o (.data); - build/j/assets/images/split/image1417.o (.data); - build/j/assets/images/split/image1418.o (.data); - build/j/assets/images/split/image1419.o (.data); - build/j/assets/images/split/image1420.o (.data); - build/j/assets/images/split/image1421.o (.data); - build/j/assets/images/split/image1422.o (.data); - build/j/assets/images/split/image1423.o (.data); - build/j/assets/images/split/image1424.o (.data); - build/j/assets/images/split/image1425.o (.data); - build/j/assets/images/split/image1426.o (.data); - build/j/assets/images/split/image1427.o (.data); - build/j/assets/images/split/image1428.o (.data); - build/j/assets/images/split/image1429.o (.data); - build/j/assets/images/split/image1430.o (.data); - build/j/assets/images/split/image1431.o (.data); - build/j/assets/images/split/image1432.o (.data); - build/j/assets/images/split/image1433.o (.data); - build/j/assets/images/split/image1434.o (.data); - build/j/assets/images/split/image1435.o (.data); - build/j/assets/images/split/image1436.o (.data); - build/j/assets/images/split/image1437.o (.data); - build/j/assets/images/split/image1438.o (.data); - build/j/assets/images/split/image1439.o (.data); - build/j/assets/images/split/image1440.o (.data); - build/j/assets/images/split/image1441.o (.data); - build/j/assets/images/split/image1442.o (.data); - build/j/assets/images/split/image1443.o (.data); - build/j/assets/images/split/image1444.o (.data); - build/j/assets/images/split/image1445.o (.data); - build/j/assets/images/split/image1446.o (.data); - build/j/assets/images/split/image1447.o (.data); - build/j/assets/images/split/image1448.o (.data); - build/j/assets/images/split/image1449.o (.data); - build/j/assets/images/split/image1450.o (.data); - build/j/assets/images/split/image1451.o (.data); - build/j/assets/images/split/image1452.o (.data); - build/j/assets/images/split/image1453.o (.data); - build/j/assets/images/split/image1454.o (.data); - build/j/assets/images/split/image1455.o (.data); - build/j/assets/images/split/image1456.o (.data); - build/j/assets/images/split/image1457.o (.data); - build/j/assets/images/split/image1458.o (.data); - build/j/assets/images/split/image1459.o (.data); - build/j/assets/images/split/image1460.o (.data); - build/j/assets/images/split/image1461.o (.data); - build/j/assets/images/split/image1462.o (.data); - build/j/assets/images/split/image1463.o (.data); - build/j/assets/images/split/image1464.o (.data); - build/j/assets/images/split/image1465.o (.data); - build/j/assets/images/split/image1466.o (.data); - build/j/assets/images/split/image1467.o (.data); - build/j/assets/images/split/image1468.o (.data); - build/j/assets/images/split/image1469.o (.data); - build/j/assets/images/split/image1470.o (.data); - build/j/assets/images/split/image1471.o (.data); - build/j/assets/images/split/image1472.o (.data); - build/j/assets/images/split/image1473.o (.data); - build/j/assets/images/split/image1474.o (.data); - build/j/assets/images/split/image1475.o (.data); - build/j/assets/images/split/image1476.o (.data); - build/j/assets/images/split/image1477.o (.data); - build/j/assets/images/split/image1478.o (.data); - build/j/assets/images/split/image1479.o (.data); - build/j/assets/images/split/image1480.o (.data); - build/j/assets/images/split/image1481.o (.data); - build/j/assets/images/split/image1482.o (.data); - build/j/assets/images/split/image1483.o (.data); - build/j/assets/images/split/image1484.o (.data); - build/j/assets/images/split/image1485.o (.data); - build/j/assets/images/split/image1486.o (.data); - build/j/assets/images/split/image1487.o (.data); - build/j/assets/images/split/image1488.o (.data); - build/j/assets/images/split/image1489.o (.data); - build/j/assets/images/split/image1490.o (.data); - build/j/assets/images/split/image1491.o (.data); - build/j/assets/images/split/image1492.o (.data); - build/j/assets/images/split/image1493.o (.data); - build/j/assets/images/split/image1494.o (.data); - build/j/assets/images/split/image1495.o (.data); - build/j/assets/images/split/image1496.o (.data); - build/j/assets/images/split/image1497.o (.data); - build/j/assets/images/split/image1498.o (.data); - build/j/assets/images/split/image1499.o (.data); - build/j/assets/images/split/image1500.o (.data); - build/j/assets/images/split/image1501.o (.data); - build/j/assets/images/split/image1502.o (.data); - build/j/assets/images/split/image1503.o (.data); - build/j/assets/images/split/image1504.o (.data); - build/j/assets/images/split/image1505.o (.data); - build/j/assets/images/split/image1506.o (.data); - build/j/assets/images/split/image1507.o (.data); - build/j/assets/images/split/image1508.o (.data); - build/j/assets/images/split/image1509.o (.data); - build/j/assets/images/split/image1510.o (.data); - build/j/assets/images/split/image1511.o (.data); - build/j/assets/images/split/image1512.o (.data); - build/j/assets/images/split/image1513.o (.data); - build/j/assets/images/split/image1514.o (.data); - build/j/assets/images/split/image1515.o (.data); - build/j/assets/images/split/image1516.o (.data); - build/j/assets/images/split/image1517.o (.data); - build/j/assets/images/split/image1518.o (.data); - build/j/assets/images/split/image1519.o (.data); - build/j/assets/images/split/image1520.o (.data); - build/j/assets/images/split/image1521.o (.data); - build/j/assets/images/split/image1522.o (.data); - build/j/assets/images/split/image1523.o (.data); - build/j/assets/images/split/image1524.o (.data); - build/j/assets/images/split/image1525.o (.data); - build/j/assets/images/split/image1526.o (.data); - build/j/assets/images/split/image1527.o (.data); - build/j/assets/images/split/image1528.o (.data); - build/j/assets/images/split/image1529.o (.data); - build/j/assets/images/split/image1530.o (.data); - build/j/assets/images/split/image1531.o (.data); - build/j/assets/images/split/image1532.o (.data); - build/j/assets/images/split/image1533.o (.data); - build/j/assets/images/split/image1534.o (.data); - build/j/assets/images/split/image1535.o (.data); - build/j/assets/images/split/image1536.o (.data); - build/j/assets/images/split/image1537.o (.data); - build/j/assets/images/split/image1538.o (.data); - build/j/assets/images/split/image1539.o (.data); - build/j/assets/images/split/image1540.o (.data); - build/j/assets/images/split/image1541.o (.data); - build/j/assets/images/split/image1542.o (.data); - build/j/assets/images/split/image1543.o (.data); - build/j/assets/images/split/image1544.o (.data); - build/j/assets/images/split/image1545.o (.data); - build/j/assets/images/split/image1546.o (.data); - build/j/assets/images/split/image1547.o (.data); - build/j/assets/images/split/image1548.o (.data); - build/j/assets/images/split/image1549.o (.data); - build/j/assets/images/split/image1550.o (.data); - build/j/assets/images/split/image1551.o (.data); - build/j/assets/images/split/image1552.o (.data); - build/j/assets/images/split/image1553.o (.data); - build/j/assets/images/split/image1554.o (.data); - build/j/assets/images/split/image1555.o (.data); - build/j/assets/images/split/image1556.o (.data); - build/j/assets/images/split/image1557.o (.data); - build/j/assets/images/split/image1558.o (.data); - build/j/assets/images/split/image1559.o (.data); - build/j/assets/images/split/image1560.o (.data); - build/j/assets/images/split/image1561.o (.data); - build/j/assets/images/split/image1562.o (.data); - build/j/assets/images/split/image1563.o (.data); - build/j/assets/images/split/image1564.o (.data); - build/j/assets/images/split/image1565.o (.data); - build/j/assets/images/split/image1566.o (.data); - build/j/assets/images/split/image1567.o (.data); - build/j/assets/images/split/image1568.o (.data); - build/j/assets/images/split/image1569.o (.data); - build/j/assets/images/split/image1570.o (.data); - build/j/assets/images/split/image1571.o (.data); - build/j/assets/images/split/image1572.o (.data); - build/j/assets/images/split/image1573.o (.data); - build/j/assets/images/split/image1574.o (.data); - build/j/assets/images/split/image1575.o (.data); - build/j/assets/images/split/image1576.o (.data); - build/j/assets/images/split/image1577.o (.data); - build/j/assets/images/split/image1578.o (.data); - build/j/assets/images/split/image1579.o (.data); - build/j/assets/images/split/image1580.o (.data); - build/j/assets/images/split/image1581.o (.data); - build/j/assets/images/split/image1582.o (.data); - build/j/assets/images/split/image1583.o (.data); - build/j/assets/images/split/image1584.o (.data); - build/j/assets/images/split/image1585.o (.data); - build/j/assets/images/split/image1586.o (.data); - build/j/assets/images/split/image1587.o (.data); - build/j/assets/images/split/image1588.o (.data); - build/j/assets/images/split/image1589.o (.data); - build/j/assets/images/split/image1590.o (.data); - build/j/assets/images/split/image1591.o (.data); - build/j/assets/images/split/image1592.o (.data); - build/j/assets/images/split/image1593.o (.data); - build/j/assets/images/split/image1594.o (.data); - build/j/assets/images/split/image1595.o (.data); - build/j/assets/images/split/image1596.o (.data); - build/j/assets/images/split/image1597.o (.data); - build/j/assets/images/split/image1598.o (.data); - build/j/assets/images/split/image1599.o (.data); - build/j/assets/images/split/image1600.o (.data); - build/j/assets/images/split/image1601.o (.data); - build/j/assets/images/split/image1602.o (.data); - build/j/assets/images/split/image1603.o (.data); - build/j/assets/images/split/image1604.o (.data); - build/j/assets/images/split/image1605.o (.data); - build/j/assets/images/split/image1606.o (.data); - build/j/assets/images/split/image1607.o (.data); - build/j/assets/images/split/image1608.o (.data); - build/j/assets/images/split/image1609.o (.data); - build/j/assets/images/split/image1610.o (.data); - build/j/assets/images/split/image1611.o (.data); - build/j/assets/images/split/image1612.o (.data); - build/j/assets/images/split/image1613.o (.data); - build/j/assets/images/split/image1614.o (.data); - build/j/assets/images/split/image1615.o (.data); - build/j/assets/images/split/image1616.o (.data); - build/j/assets/images/split/image1617.o (.data); - build/j/assets/images/split/image1618.o (.data); - build/j/assets/images/split/image1619.o (.data); - build/j/assets/images/split/image1620.o (.data); - build/j/assets/images/split/image1621.o (.data); - build/j/assets/images/split/image1622.o (.data); - build/j/assets/images/split/image1623.o (.data); - build/j/assets/images/split/image1624.o (.data); - build/j/assets/images/split/image1625.o (.data); - build/j/assets/images/split/image1626.o (.data); - build/j/assets/images/split/image1627.o (.data); - build/j/assets/images/split/image1628.o (.data); - build/j/assets/images/split/image1629.o (.data); - build/j/assets/images/split/image1630.o (.data); - build/j/assets/images/split/image1631.o (.data); - build/j/assets/images/split/image1632.o (.data); - build/j/assets/images/split/image1633.o (.data); - build/j/assets/images/split/image1634.o (.data); - build/j/assets/images/split/image1635.o (.data); - build/j/assets/images/split/image1636.o (.data); - build/j/assets/images/split/image1637.o (.data); - build/j/assets/images/split/image1638.o (.data); - build/j/assets/images/split/image1639.o (.data); - build/j/assets/images/split/image1640.o (.data); - build/j/assets/images/split/image1641.o (.data); - build/j/assets/images/split/image1642.o (.data); - build/j/assets/images/split/image1643.o (.data); - build/j/assets/images/split/image1644.o (.data); - build/j/assets/images/split/image1645.o (.data); - build/j/assets/images/split/image1646.o (.data); - build/j/assets/images/split/image1647.o (.data); - build/j/assets/images/split/image1648.o (.data); - build/j/assets/images/split/image1649.o (.data); - build/j/assets/images/split/image1650.o (.data); - build/j/assets/images/split/image1651.o (.data); - build/j/assets/images/split/image1652.o (.data); - build/j/assets/images/split/image1653.o (.data); - build/j/assets/images/split/image1654.o (.data); - build/j/assets/images/split/image1655.o (.data); - build/j/assets/images/split/image1656.o (.data); - build/j/assets/images/split/image1657.o (.data); - build/j/assets/images/split/image1658.o (.data); - build/j/assets/images/split/image1659.o (.data); - build/j/assets/images/split/image1660.o (.data); - build/j/assets/images/split/image1661.o (.data); - build/j/assets/images/split/image1662.o (.data); - build/j/assets/images/split/image1663.o (.data); - build/j/assets/images/split/image1664.o (.data); - build/j/assets/images/split/image1665.o (.data); - build/j/assets/images/split/image1666.o (.data); - build/j/assets/images/split/image1667.o (.data); - build/j/assets/images/split/image1668.o (.data); - build/j/assets/images/split/image1669.o (.data); - build/j/assets/images/split/image1670.o (.data); - build/j/assets/images/split/image1671.o (.data); - build/j/assets/images/split/image1672.o (.data); - build/j/assets/images/split/image1673.o (.data); - build/j/assets/images/split/image1674.o (.data); - build/j/assets/images/split/image1675.o (.data); - build/j/assets/images/split/image1676.o (.data); - build/j/assets/images/split/image1677.o (.data); - build/j/assets/images/split/image1678.o (.data); - build/j/assets/images/split/image1679.o (.data); - build/j/assets/images/split/image1680.o (.data); - build/j/assets/images/split/image1681.o (.data); - build/j/assets/images/split/image1682.o (.data); - build/j/assets/images/split/image1683.o (.data); - build/j/assets/images/split/image1684.o (.data); - build/j/assets/images/split/image1685.o (.data); - build/j/assets/images/split/image1686.o (.data); - build/j/assets/images/split/image1687.o (.data); - build/j/assets/images/split/image1688.o (.data); - build/j/assets/images/split/image1689.o (.data); - build/j/assets/images/split/image1690.o (.data); - build/j/assets/images/split/image1691.o (.data); - build/j/assets/images/split/image1692.o (.data); - build/j/assets/images/split/image1693.o (.data); - build/j/assets/images/split/image1694.o (.data); - build/j/assets/images/split/image1695.o (.data); - build/j/assets/images/split/image1696.o (.data); - build/j/assets/images/split/image1697.o (.data); - build/j/assets/images/split/image1698.o (.data); - build/j/assets/images/split/image1699.o (.data); - build/j/assets/images/split/image1700.o (.data); - build/j/assets/images/split/image1701.o (.data); - build/j/assets/images/split/image1702.o (.data); - build/j/assets/images/split/image1703.o (.data); - build/j/assets/images/split/image1704.o (.data); - build/j/assets/images/split/image1705.o (.data); - build/j/assets/images/split/image1706.o (.data); - build/j/assets/images/split/image1707.o (.data); - build/j/assets/images/split/image1708.o (.data); - build/j/assets/images/split/image1709.o (.data); - build/j/assets/images/split/image1710.o (.data); - build/j/assets/images/split/image1711.o (.data); - build/j/assets/images/split/image1712.o (.data); - build/j/assets/images/split/image1713.o (.data); - build/j/assets/images/split/image1714.o (.data); - build/j/assets/images/split/image1715.o (.data); - build/j/assets/images/split/image1716.o (.data); - build/j/assets/images/split/image1717.o (.data); - build/j/assets/images/split/image1718.o (.data); - build/j/assets/images/split/image1719.o (.data); - build/j/assets/images/split/image1720.o (.data); - build/j/assets/images/split/image1721.o (.data); - build/j/assets/images/split/image1722.o (.data); - build/j/assets/images/split/image1723.o (.data); - build/j/assets/images/split/image1724.o (.data); - build/j/assets/images/split/image1725.o (.data); - build/j/assets/images/split/image1726.o (.data); - build/j/assets/images/split/image1727.o (.data); - build/j/assets/images/split/image1728.o (.data); - build/j/assets/images/split/image1729.o (.data); - build/j/assets/images/split/image1730.o (.data); - build/j/assets/images/split/image1731.o (.data); - build/j/assets/images/split/image1732.o (.data); - build/j/assets/images/split/image1733.o (.data); - build/j/assets/images/split/image1734.o (.data); - build/j/assets/images/split/image1735.o (.data); - build/j/assets/images/split/image1736.o (.data); - build/j/assets/images/split/image1737.o (.data); - build/j/assets/images/split/image1738.o (.data); - build/j/assets/images/split/image1739.o (.data); - build/j/assets/images/split/image1740.o (.data); - build/j/assets/images/split/image1741.o (.data); - build/j/assets/images/split/image1742.o (.data); - build/j/assets/images/split/image1743.o (.data); - build/j/assets/images/split/image1744.o (.data); - build/j/assets/images/split/image1745.o (.data); - build/j/assets/images/split/image1746.o (.data); - build/j/assets/images/split/image1747.o (.data); - build/j/assets/images/split/image1748.o (.data); - build/j/assets/images/split/image1749.o (.data); - build/j/assets/images/split/image1750.o (.data); - build/j/assets/images/split/image1751.o (.data); - build/j/assets/images/split/image1752.o (.data); - build/j/assets/images/split/image1753.o (.data); - build/j/assets/images/split/image1754.o (.data); - build/j/assets/images/split/image1755.o (.data); - build/j/assets/images/split/image1756.o (.data); - build/j/assets/images/split/image1757.o (.data); - build/j/assets/images/split/image1758.o (.data); - build/j/assets/images/split/image1759.o (.data); - build/j/assets/images/split/image1760.o (.data); - build/j/assets/images/split/image1761.o (.data); - build/j/assets/images/split/image1762.o (.data); - build/j/assets/images/split/image1763.o (.data); - build/j/assets/images/split/image1764.o (.data); - build/j/assets/images/split/image1765.o (.data); - build/j/assets/images/split/image1766.o (.data); - build/j/assets/images/split/image1767.o (.data); - build/j/assets/images/split/image1768.o (.data); - build/j/assets/images/split/image1769.o (.data); - build/j/assets/images/split/image1770.o (.data); - build/j/assets/images/split/image1771.o (.data); - build/j/assets/images/split/image1772.o (.data); - build/j/assets/images/split/image1773.o (.data); - build/j/assets/images/split/image1774.o (.data); - build/j/assets/images/split/image1775.o (.data); - build/j/assets/images/split/image1776.o (.data); - build/j/assets/images/split/image1777.o (.data); - build/j/assets/images/split/image1778.o (.data); - build/j/assets/images/split/image1779.o (.data); - build/j/assets/images/split/image1780.o (.data); - build/j/assets/images/split/image1781.o (.data); - build/j/assets/images/split/image1782.o (.data); - build/j/assets/images/split/image1783.o (.data); - build/j/assets/images/split/image1784.o (.data); - build/j/assets/images/split/image1785.o (.data); - build/j/assets/images/split/image1786.o (.data); - build/j/assets/images/split/image1787.o (.data); - build/j/assets/images/split/image1788.o (.data); - build/j/assets/images/split/image1789.o (.data); - build/j/assets/images/split/image1790.o (.data); - build/j/assets/images/split/image1791.o (.data); - build/j/assets/images/split/image1792.o (.data); - build/j/assets/images/split/image1793.o (.data); - build/j/assets/images/split/image1794.o (.data); - build/j/assets/images/split/image1795.o (.data); - build/j/assets/images/split/image1796.o (.data); - build/j/assets/images/split/image1797.o (.data); - build/j/assets/images/split/image1798.o (.data); - build/j/assets/images/split/image1799.o (.data); - build/j/assets/images/split/image1800.o (.data); - build/j/assets/images/split/image1801.o (.data); - build/j/assets/images/split/image1802.o (.data); - build/j/assets/images/split/image1803.o (.data); - build/j/assets/images/split/image1804.o (.data); - build/j/assets/images/split/image1805.o (.data); - build/j/assets/images/split/image1806.o (.data); - build/j/assets/images/split/image1807.o (.data); - build/j/assets/images/split/image1808.o (.data); - build/j/assets/images/split/image1809.o (.data); - build/j/assets/images/split/image1810.o (.data); - build/j/assets/images/split/image1811.o (.data); - build/j/assets/images/split/image1812.o (.data); - build/j/assets/images/split/image1813.o (.data); - build/j/assets/images/split/image1814.o (.data); - build/j/assets/images/split/image1815.o (.data); - build/j/assets/images/split/image1816.o (.data); - build/j/assets/images/split/image1817.o (.data); - build/j/assets/images/split/image1818.o (.data); - build/j/assets/images/split/image1819.o (.data); - build/j/assets/images/split/image1820.o (.data); - build/j/assets/images/split/image1821.o (.data); - build/j/assets/images/split/image1822.o (.data); - build/j/assets/images/split/image1823.o (.data); - build/j/assets/images/split/image1824.o (.data); - build/j/assets/images/split/image1825.o (.data); - build/j/assets/images/split/image1826.o (.data); - build/j/assets/images/split/image1827.o (.data); - build/j/assets/images/split/image1828.o (.data); - build/j/assets/images/split/image1829.o (.data); - build/j/assets/images/split/image1830.o (.data); - build/j/assets/images/split/image1831.o (.data); - build/j/assets/images/split/image1832.o (.data); - build/j/assets/images/split/image1833.o (.data); - build/j/assets/images/split/image1834.o (.data); - build/j/assets/images/split/image1835.o (.data); - build/j/assets/images/split/image1836.o (.data); - build/j/assets/images/split/image1837.o (.data); - build/j/assets/images/split/image1838.o (.data); - build/j/assets/images/split/image1839.o (.data); - build/j/assets/images/split/image1840.o (.data); - build/j/assets/images/split/image1841.o (.data); - build/j/assets/images/split/image1842.o (.data); - build/j/assets/images/split/image1843.o (.data); - build/j/assets/images/split/image1844.o (.data); - build/j/assets/images/split/image1845.o (.data); - build/j/assets/images/split/image1846.o (.data); - build/j/assets/images/split/image1847.o (.data); - build/j/assets/images/split/image1848.o (.data); - build/j/assets/images/split/image1849.o (.data); - build/j/assets/images/split/image1850.o (.data); - build/j/assets/images/split/image1851.o (.data); - build/j/assets/images/split/image1852.o (.data); - build/j/assets/images/split/image1853.o (.data); - build/j/assets/images/split/image1854.o (.data); - build/j/assets/images/split/image1855.o (.data); - build/j/assets/images/split/image1856.o (.data); - build/j/assets/images/split/image1857.o (.data); - build/j/assets/images/split/image1858.o (.data); - build/j/assets/images/split/image1859.o (.data); - build/j/assets/images/split/image1860.o (.data); - build/j/assets/images/split/image1861.o (.data); - build/j/assets/images/split/image1862.o (.data); - build/j/assets/images/split/image1863.o (.data); - build/j/assets/images/split/image1864.o (.data); - build/j/assets/images/split/image1865.o (.data); - build/j/assets/images/split/image1866.o (.data); - build/j/assets/images/split/image1867.o (.data); - build/j/assets/images/split/image1868.o (.data); - build/j/assets/images/split/image1869.o (.data); - build/j/assets/images/split/image1870.o (.data); - build/j/assets/images/split/image1871.o (.data); - build/j/assets/images/split/image1872.o (.data); - build/j/assets/images/split/image1873.o (.data); - build/j/assets/images/split/image1874.o (.data); - build/j/assets/images/split/image1875.o (.data); - build/j/assets/images/split/image1876.o (.data); - build/j/assets/images/split/image1877.o (.data); - build/j/assets/images/split/image1878.o (.data); - build/j/assets/images/split/image1879.o (.data); - build/j/assets/images/split/image1880.o (.data); - build/j/assets/images/split/image1881.o (.data); - build/j/assets/images/split/image1882.o (.data); - build/j/assets/images/split/image1883.o (.data); - build/j/assets/images/split/image1884.o (.data); - build/j/assets/images/split/image1885.o (.data); - build/j/assets/images/split/image1886.o (.data); - build/j/assets/images/split/image1887.o (.data); - build/j/assets/images/split/image1888.o (.data); - build/j/assets/images/split/image1889.o (.data); - build/j/assets/images/split/image1890.o (.data); - build/j/assets/images/split/image1891.o (.data); - build/j/assets/images/split/image1892.o (.data); - build/j/assets/images/split/image1893.o (.data); - build/j/assets/images/split/image1894.o (.data); - build/j/assets/images/split/image1895.o (.data); - build/j/assets/images/split/image1896.o (.data); - build/j/assets/images/split/image1897.o (.data); - build/j/assets/images/split/image1898.o (.data); - build/j/assets/images/split/image1899.o (.data); - build/j/assets/images/split/image1900.o (.data); - build/j/assets/images/split/image1901.o (.data); - build/j/assets/images/split/image1902.o (.data); - build/j/assets/images/split/image1903.o (.data); - build/j/assets/images/split/image1904.o (.data); - build/j/assets/images/split/image1905.o (.data); - build/j/assets/images/split/image1906.o (.data); - build/j/assets/images/split/image1907.o (.data); - build/j/assets/images/split/image1908.o (.data); - build/j/assets/images/split/image1909.o (.data); - build/j/assets/images/split/image1910.o (.data); - build/j/assets/images/split/image1911.o (.data); - build/j/assets/images/split/image1912.o (.data); - build/j/assets/images/split/image1913.o (.data); - build/j/assets/images/split/image1914.o (.data); - build/j/assets/images/split/image1915.o (.data); - build/j/assets/images/split/image1916.o (.data); - build/j/assets/images/split/image1917.o (.data); - build/j/assets/images/split/image1918.o (.data); - build/j/assets/images/split/image1919.o (.data); - build/j/assets/images/split/image1920.o (.data); - build/j/assets/images/split/image1921.o (.data); - build/j/assets/images/split/image1922.o (.data); - build/j/assets/images/split/image1923.o (.data); - build/j/assets/images/split/image1924.o (.data); - build/j/assets/images/split/image1925.o (.data); - build/j/assets/images/split/image1926.o (.data); - build/j/assets/images/split/image1927.o (.data); - build/j/assets/images/split/image1928.o (.data); - build/j/assets/images/split/image1929.o (.data); - build/j/assets/images/split/image1930.o (.data); - build/j/assets/images/split/image1931.o (.data); - build/j/assets/images/split/image1932.o (.data); - build/j/assets/images/split/image1933.o (.data); - build/j/assets/images/split/image1934.o (.data); - build/j/assets/images/split/image1935.o (.data); - build/j/assets/images/split/image1936.o (.data); - build/j/assets/images/split/image1937.o (.data); - build/j/assets/images/split/image1938.o (.data); - build/j/assets/images/split/image1939.o (.data); - build/j/assets/images/split/image1940.o (.data); - build/j/assets/images/split/image1941.o (.data); - build/j/assets/images/split/image1942.o (.data); - build/j/assets/images/split/image1943.o (.data); - build/j/assets/images/split/image1944.o (.data); - build/j/assets/images/split/image1945.o (.data); - build/j/assets/images/split/image1946.o (.data); - build/j/assets/images/split/image1947.o (.data); - build/j/assets/images/split/image1948.o (.data); - build/j/assets/images/split/image1949.o (.data); - build/j/assets/images/split/image1950.o (.data); - build/j/assets/images/split/image1951.o (.data); - build/j/assets/images/split/image1952.o (.data); - build/j/assets/images/split/image1953.o (.data); - build/j/assets/images/split/image1954.o (.data); - build/j/assets/images/split/image1955.o (.data); - build/j/assets/images/split/image1956.o (.data); - build/j/assets/images/split/image1957.o (.data); - build/j/assets/images/split/image1958.o (.data); - build/j/assets/images/split/image1959.o (.data); - build/j/assets/images/split/image1960.o (.data); - build/j/assets/images/split/image1961.o (.data); - build/j/assets/images/split/image1962.o (.data); - build/j/assets/images/split/image1963.o (.data); - build/j/assets/images/split/image1964.o (.data); - build/j/assets/images/split/image1965.o (.data); - build/j/assets/images/split/image1966.o (.data); - build/j/assets/images/split/image1967.o (.data); - build/j/assets/images/split/image1968.o (.data); - build/j/assets/images/split/image1969.o (.data); - build/j/assets/images/split/image1970.o (.data); - build/j/assets/images/split/image1971.o (.data); - build/j/assets/images/split/image1972.o (.data); - build/j/assets/images/split/image1973.o (.data); - build/j/assets/images/split/image1974.o (.data); - build/j/assets/images/split/image1975.o (.data); - build/j/assets/images/split/image1976.o (.data); - build/j/assets/images/split/image1977.o (.data); - build/j/assets/images/split/image1978.o (.data); - build/j/assets/images/split/image1979.o (.data); - build/j/assets/images/split/image1980.o (.data); - build/j/assets/images/split/image1981.o (.data); - build/j/assets/images/split/image1982.o (.data); - build/j/assets/images/split/image1983.o (.data); - build/j/assets/images/split/image1984.o (.data); - build/j/assets/images/split/image1985.o (.data); - build/j/assets/images/split/image1986.o (.data); - build/j/assets/images/split/image1987.o (.data); - build/j/assets/images/split/image1988.o (.data); - build/j/assets/images/split/image1989.o (.data); - build/j/assets/images/split/image1990.o (.data); - build/j/assets/images/split/image1991.o (.data); - build/j/assets/images/split/image1992.o (.data); - build/j/assets/images/split/image1993.o (.data); - build/j/assets/images/split/image1994.o (.data); - build/j/assets/images/split/image1995.o (.data); - build/j/assets/images/split/image1996.o (.data); - build/j/assets/images/split/image1997.o (.data); - build/j/assets/images/split/image1998.o (.data); - build/j/assets/images/split/image1999.o (.data); - build/j/assets/images/split/image2000.o (.data); - build/j/assets/images/split/image2001.o (.data); - build/j/assets/images/split/image2002.o (.data); - build/j/assets/images/split/image2003.o (.data); - build/j/assets/images/split/image2004.o (.data); - build/j/assets/images/split/image2005.o (.data); - build/j/assets/images/split/image2006.o (.data); - build/j/assets/images/split/image2007.o (.data); - build/j/assets/images/split/image2008.o (.data); - build/j/assets/images/split/image2009.o (.data); - build/j/assets/images/split/image2010.o (.data); - build/j/assets/images/split/image2011.o (.data); - build/j/assets/images/split/image2012.o (.data); - build/j/assets/images/split/image2013.o (.data); - build/j/assets/images/split/image2014.o (.data); - build/j/assets/images/split/image2015.o (.data); - build/j/assets/images/split/image2016.o (.data); - build/j/assets/images/split/image2017.o (.data); - build/j/assets/images/split/image2018.o (.data); - build/j/assets/images/split/image2019.o (.data); - build/j/assets/images/split/image2020.o (.data); - build/j/assets/images/split/image2021.o (.data); - build/j/assets/images/split/image2022.o (.data); - build/j/assets/images/split/image2023.o (.data); - build/j/assets/images/split/image2024.o (.data); - build/j/assets/images/split/image2025.o (.data); - build/j/assets/images/split/image2026.o (.data); - build/j/assets/images/split/image2027.o (.data); - build/j/assets/images/split/image2028.o (.data); - build/j/assets/images/split/image2029.o (.data); - build/j/assets/images/split/image2030.o (.data); - build/j/assets/images/split/image2031.o (.data); - build/j/assets/images/split/image2032.o (.data); - build/j/assets/images/split/image2033.o (.data); - build/j/assets/images/split/image2034.o (.data); - build/j/assets/images/split/image2035.o (.data); - build/j/assets/images/split/image2036.o (.data); - build/j/assets/images/split/image2037.o (.data); - build/j/assets/images/split/image2038.o (.data); - build/j/assets/images/split/image2039.o (.data); - build/j/assets/images/split/image2040.o (.data); - build/j/assets/images/split/image2041.o (.data); - build/j/assets/images/split/image2042.o (.data); - build/j/assets/images/split/image2043.o (.data); - build/j/assets/images/split/image2044.o (.data); - build/j/assets/images/split/image2045.o (.data); - build/j/assets/images/split/image2046.o (.data); - build/j/assets/images/split/image2047.o (.data); - build/j/assets/images/split/image2048.o (.data); - build/j/assets/images/split/image2049.o (.data); - build/j/assets/images/split/image2050.o (.data); - build/j/assets/images/split/image2051.o (.data); - build/j/assets/images/split/image2052.o (.data); - build/j/assets/images/split/image2053.o (.data); - build/j/assets/images/split/image2054.o (.data); - build/j/assets/images/split/image2055.o (.data); - build/j/assets/images/split/image2056.o (.data); - build/j/assets/images/split/image2057.o (.data); - build/j/assets/images/split/image2058.o (.data); - build/j/assets/images/split/image2059.o (.data); - build/j/assets/images/split/image2060.o (.data); - build/j/assets/images/split/image2061.o (.data); - build/j/assets/images/split/image2062.o (.data); - build/j/assets/images/split/image2063.o (.data); - build/j/assets/images/split/image2064.o (.data); - build/j/assets/images/split/image2065.o (.data); - build/j/assets/images/split/image2066.o (.data); - build/j/assets/images/split/image2067.o (.data); - build/j/assets/images/split/image2068.o (.data); - build/j/assets/images/split/image2069.o (.data); - build/j/assets/images/split/image2070.o (.data); - build/j/assets/images/split/image2071.o (.data); - build/j/assets/images/split/image2072.o (.data); - build/j/assets/images/split/image2073.o (.data); - build/j/assets/images/split/image2074.o (.data); - build/j/assets/images/split/image2075.o (.data); - build/j/assets/images/split/image2076.o (.data); - build/j/assets/images/split/image2077.o (.data); - build/j/assets/images/split/image2078.o (.data); - build/j/assets/images/split/image2079.o (.data); - build/j/assets/images/split/image2080.o (.data); - build/j/assets/images/split/image2081.o (.data); - build/j/assets/images/split/image2082.o (.data); - build/j/assets/images/split/image2083.o (.data); - build/j/assets/images/split/image2084.o (.data); - build/j/assets/images/split/image2085.o (.data); - build/j/assets/images/split/image2086.o (.data); - build/j/assets/images/split/image2087.o (.data); - build/j/assets/images/split/image2088.o (.data); - build/j/assets/images/split/image2089.o (.data); - build/j/assets/images/split/image2090.o (.data); - build/j/assets/images/split/image2091.o (.data); - build/j/assets/images/split/image2092.o (.data); - build/j/assets/images/split/image2093.o (.data); - build/j/assets/images/split/image2094.o (.data); - build/j/assets/images/split/image2095.o (.data); - build/j/assets/images/split/image2096.o (.data); - build/j/assets/images/split/image2097.o (.data); - build/j/assets/images/split/image2098.o (.data); - build/j/assets/images/split/image2099.o (.data); - build/j/assets/images/split/image2100.o (.data); - build/j/assets/images/split/image2101.o (.data); - build/j/assets/images/split/image2102.o (.data); - build/j/assets/images/split/image2103.o (.data); - build/j/assets/images/split/image2104.o (.data); - build/j/assets/images/split/image2105.o (.data); - build/j/assets/images/split/image2106.o (.data); - build/j/assets/images/split/image2107.o (.data); - build/j/assets/images/split/image2108.o (.data); - build/j/assets/images/split/image2109.o (.data); - build/j/assets/images/split/image2110.o (.data); - build/j/assets/images/split/image2111.o (.data); - build/j/assets/images/split/image2112.o (.data); - build/j/assets/images/split/image2113.o (.data); - build/j/assets/images/split/image2114.o (.data); - build/j/assets/images/split/image2115.o (.data); - build/j/assets/images/split/image2116.o (.data); - build/j/assets/images/split/image2117.o (.data); - build/j/assets/images/split/image2118.o (.data); - build/j/assets/images/split/image2119.o (.data); - build/j/assets/images/split/image2120.o (.data); - build/j/assets/images/split/image2121.o (.data); - build/j/assets/images/split/image2122.o (.data); - build/j/assets/images/split/image2123.o (.data); - build/j/assets/images/split/image2124.o (.data); - build/j/assets/images/split/image2125.o (.data); - build/j/assets/images/split/image2126.o (.data); - build/j/assets/images/split/image2127.o (.data); - build/j/assets/images/split/image2128.o (.data); - build/j/assets/images/split/image2129.o (.data); - build/j/assets/images/split/image2130.o (.data); - build/j/assets/images/split/image2131.o (.data); - build/j/assets/images/split/image2132.o (.data); - build/j/assets/images/split/image2133.o (.data); - build/j/assets/images/split/image2134.o (.data); - build/j/assets/images/split/image2135.o (.data); - build/j/assets/images/split/image2136.o (.data); - build/j/assets/images/split/image2137.o (.data); - build/j/assets/images/split/image2138.o (.data); - build/j/assets/images/split/image2139.o (.data); - build/j/assets/images/split/image2140.o (.data); - build/j/assets/images/split/image2141.o (.data); - build/j/assets/images/split/image2142.o (.data); - build/j/assets/images/split/image2143.o (.data); - build/j/assets/images/split/image2144.o (.data); - build/j/assets/images/split/image2145.o (.data); - build/j/assets/images/split/image2146.o (.data); - build/j/assets/images/split/image2147.o (.data); - build/j/assets/images/split/image2148.o (.data); - build/j/assets/images/split/image2149.o (.data); - build/j/assets/images/split/image2150.o (.data); - build/j/assets/images/split/image2151.o (.data); - build/j/assets/images/split/image2152.o (.data); - build/j/assets/images/split/image2153.o (.data); - build/j/assets/images/split/image2154.o (.data); - build/j/assets/images/split/image2155.o (.data); - build/j/assets/images/split/image2156.o (.data); - build/j/assets/images/split/image2157.o (.data); - build/j/assets/images/split/image2158.o (.data); - build/j/assets/images/split/image2159.o (.data); - build/j/assets/images/split/image2160.o (.data); - build/j/assets/images/split/image2161.o (.data); - build/j/assets/images/split/image2162.o (.data); - build/j/assets/images/split/image2163.o (.data); - build/j/assets/images/split/image2164.o (.data); - build/j/assets/images/split/image2165.o (.data); - build/j/assets/images/split/image2166.o (.data); - build/j/assets/images/split/image2167.o (.data); - build/j/assets/images/split/image2168.o (.data); - build/j/assets/images/split/image2169.o (.data); - build/j/assets/images/split/image2170.o (.data); - build/j/assets/images/split/image2171.o (.data); - build/j/assets/images/split/image2172.o (.data); - build/j/assets/images/split/image2173.o (.data); - build/j/assets/images/split/image2174.o (.data); - build/j/assets/images/split/image2175.o (.data); - build/j/assets/images/split/image2176.o (.data); - build/j/assets/images/split/image2177.o (.data); - build/j/assets/images/split/image2178.o (.data); - build/j/assets/images/split/image2179.o (.data); - build/j/assets/images/split/image2180.o (.data); - build/j/assets/images/split/image2181.o (.data); - build/j/assets/images/split/image2182.o (.data); - build/j/assets/images/split/image2183.o (.data); - build/j/assets/images/split/image2184.o (.data); - build/j/assets/images/split/image2185.o (.data); - build/j/assets/images/split/image2186.o (.data); - build/j/assets/images/split/image2187.o (.data); - build/j/assets/images/split/image2188.o (.data); - build/j/assets/images/split/image2189.o (.data); - build/j/assets/images/split/image2190.o (.data); - build/j/assets/images/split/image2191.o (.data); - build/j/assets/images/split/image2192.o (.data); - build/j/assets/images/split/image2193.o (.data); - build/j/assets/images/split/image2194.o (.data); - build/j/assets/images/split/image2195.o (.data); - build/j/assets/images/split/image2196.o (.data); - build/j/assets/images/split/image2197.o (.data); - build/j/assets/images/split/image2198.o (.data); - build/j/assets/images/split/image2199.o (.data); - build/j/assets/images/split/image2200.o (.data); - build/j/assets/images/split/image2201.o (.data); - build/j/assets/images/split/image2202.o (.data); - build/j/assets/images/split/image2203.o (.data); - build/j/assets/images/split/image2204.o (.data); - build/j/assets/images/split/image2205.o (.data); - build/j/assets/images/split/image2206.o (.data); - build/j/assets/images/split/image2207.o (.data); - build/j/assets/images/split/image2208.o (.data); - build/j/assets/images/split/image2209.o (.data); - build/j/assets/images/split/image2210.o (.data); - build/j/assets/images/split/image2211.o (.data); - build/j/assets/images/split/image2212.o (.data); - build/j/assets/images/split/image2213.o (.data); - build/j/assets/images/split/image2214.o (.data); - build/j/assets/images/split/image2215.o (.data); - build/j/assets/images/split/image2216.o (.data); - build/j/assets/images/split/image2217.o (.data); - build/j/assets/images/split/image2218.o (.data); - build/j/assets/images/split/image2219.o (.data); - build/j/assets/images/split/image2220.o (.data); - build/j/assets/images/split/image2221.o (.data); - build/j/assets/images/split/image2222.o (.data); - build/j/assets/images/split/image2223.o (.data); - build/j/assets/images/split/image2224.o (.data); - build/j/assets/images/split/image2225.o (.data); - build/j/assets/images/split/image2226.o (.data); - build/j/assets/images/split/image2227.o (.data); - build/j/assets/images/split/image2228.o (.data); - build/j/assets/images/split/image2229.o (.data); - build/j/assets/images/split/image2230.o (.data); - build/j/assets/images/split/image2231.o (.data); - build/j/assets/images/split/image2232.o (.data); - build/j/assets/images/split/image2233.o (.data); - build/j/assets/images/split/image2234.o (.data); - build/j/assets/images/split/image2235.o (.data); - build/j/assets/images/split/image2236.o (.data); - build/j/assets/images/split/image2237.o (.data); - build/j/assets/images/split/image2238.o (.data); - build/j/assets/images/split/image2239.o (.data); - build/j/assets/images/split/image2240.o (.data); - build/j/assets/images/split/image2241.o (.data); - build/j/assets/images/split/image2242.o (.data); - build/j/assets/images/split/image2243.o (.data); - build/j/assets/images/split/image2244.o (.data); - build/j/assets/images/split/image2245.o (.data); - build/j/assets/images/split/image2246.o (.data); - build/j/assets/images/split/image2247.o (.data); - build/j/assets/images/split/image2248.o (.data); - build/j/assets/images/split/image2249.o (.data); - build/j/assets/images/split/image2250.o (.data); - build/j/assets/images/split/image2251.o (.data); - build/j/assets/images/split/image2252.o (.data); - build/j/assets/images/split/image2253.o (.data); - build/j/assets/images/split/image2254.o (.data); - build/j/assets/images/split/image2255.o (.data); - build/j/assets/images/split/image2256.o (.data); - build/j/assets/images/split/image2257.o (.data); - build/j/assets/images/split/image2258.o (.data); - build/j/assets/images/split/image2259.o (.data); - build/j/assets/images/split/image2260.o (.data); - build/j/assets/images/split/image2261.o (.data); - build/j/assets/images/split/image2262.o (.data); - build/j/assets/images/split/image2263.o (.data); - build/j/assets/images/split/image2264.o (.data); - build/j/assets/images/split/image2265.o (.data); - build/j/assets/images/split/image2266.o (.data); - build/j/assets/images/split/image2267.o (.data); - build/j/assets/images/split/image2268.o (.data); - build/j/assets/images/split/image2269.o (.data); - build/j/assets/images/split/image2270.o (.data); - build/j/assets/images/split/image2271.o (.data); - build/j/assets/images/split/image2272.o (.data); - build/j/assets/images/split/image2273.o (.data); - build/j/assets/images/split/image2274.o (.data); - build/j/assets/images/split/image2275.o (.data); - build/j/assets/images/split/image2276.o (.data); - build/j/assets/images/split/image2277.o (.data); - build/j/assets/images/split/image2278.o (.data); - build/j/assets/images/split/image2279.o (.data); - build/j/assets/images/split/image2280.o (.data); - build/j/assets/images/split/image2281.o (.data); - build/j/assets/images/split/image2282.o (.data); - build/j/assets/images/split/image2283.o (.data); - build/j/assets/images/split/image2284.o (.data); - build/j/assets/images/split/image2285.o (.data); - build/j/assets/images/split/image2286.o (.data); - build/j/assets/images/split/image2287.o (.data); - build/j/assets/images/split/image2288.o (.data); - build/j/assets/images/split/image2289.o (.data); - build/j/assets/images/split/image2290.o (.data); - build/j/assets/images/split/image2291.o (.data); - build/j/assets/images/split/image2292.o (.data); - build/j/assets/images/split/image2293.o (.data); - build/j/assets/images/split/image2294.o (.data); - build/j/assets/images/split/image2295.o (.data); - build/j/assets/images/split/image2296.o (.data); - build/j/assets/images/split/image2297.o (.data); - build/j/assets/images/split/image2298.o (.data); - build/j/assets/images/split/image2299.o (.data); - build/j/assets/images/split/image2300.o (.data); - build/j/assets/images/split/image2301.o (.data); - build/j/assets/images/split/image2302.o (.data); - build/j/assets/images/split/image2303.o (.data); - build/j/assets/images/split/image2304.o (.data); - build/j/assets/images/split/image2305.o (.data); - build/j/assets/images/split/image2306.o (.data); - build/j/assets/images/split/image2307.o (.data); - build/j/assets/images/split/image2308.o (.data); - build/j/assets/images/split/image2309.o (.data); - build/j/assets/images/split/image2310.o (.data); - build/j/assets/images/split/image2311.o (.data); - build/j/assets/images/split/image2312.o (.data); - build/j/assets/images/split/image2313.o (.data); - build/j/assets/images/split/image2314.o (.data); - build/j/assets/images/split/image2315.o (.data); - build/j/assets/images/split/image2316.o (.data); - build/j/assets/images/split/image2317.o (.data); - build/j/assets/images/split/image2318.o (.data); - build/j/assets/images/split/image2319.o (.data); - build/j/assets/images/split/image2320.o (.data); - build/j/assets/images/split/image2321.o (.data); - build/j/assets/images/split/image2322.o (.data); - build/j/assets/images/split/image2323.o (.data); - build/j/assets/images/split/image2324.o (.data); - build/j/assets/images/split/image2325.o (.data); - build/j/assets/images/split/image2326.o (.data); - build/j/assets/images/split/image2327.o (.data); - build/j/assets/images/split/image2328.o (.data); - build/j/assets/images/split/image2329.o (.data); - build/j/assets/images/split/image2330.o (.data); - build/j/assets/images/split/image2331.o (.data); - build/j/assets/images/split/image2332.o (.data); - build/j/assets/images/split/image2333.o (.data); - build/j/assets/images/split/image2334.o (.data); - build/j/assets/images/split/image2335.o (.data); - build/j/assets/images/split/image2336.o (.data); - build/j/assets/images/split/image2337.o (.data); - build/j/assets/images/split/image2338.o (.data); - build/j/assets/images/split/image2339.o (.data); - build/j/assets/images/split/image2340.o (.data); - build/j/assets/images/split/image2341.o (.data); - build/j/assets/images/split/image2342.o (.data); - build/j/assets/images/split/image2343.o (.data); - build/j/assets/images/split/image2344.o (.data); - build/j/assets/images/split/image2345.o (.data); - build/j/assets/images/split/image2346.o (.data); - build/j/assets/images/split/image2347.o (.data); - build/j/assets/images/split/image2348.o (.data); - build/j/assets/images/split/image2349.o (.data); - build/j/assets/images/split/image2350.o (.data); - build/j/assets/images/split/image2351.o (.data); - build/j/assets/images/split/image2352.o (.data); - build/j/assets/images/split/image2353.o (.data); - build/j/assets/images/split/image2354.o (.data); - build/j/assets/images/split/image2355.o (.data); - build/j/assets/images/split/image2356.o (.data); - build/j/assets/images/split/image2357.o (.data); - build/j/assets/images/split/image2358.o (.data); - build/j/assets/images/split/image2359.o (.data); - build/j/assets/images/split/image2360.o (.data); - build/j/assets/images/split/image2361.o (.data); - build/j/assets/images/split/image2362.o (.data); - build/j/assets/images/split/image2363.o (.data); - build/j/assets/images/split/image2364.o (.data); - build/j/assets/images/split/image2365.o (.data); - build/j/assets/images/split/image2366.o (.data); - build/j/assets/images/split/image2367.o (.data); - build/j/assets/images/split/image2368.o (.data); - build/j/assets/images/split/image2369.o (.data); - build/j/assets/images/split/image2370.o (.data); - build/j/assets/images/split/image2371.o (.data); - build/j/assets/images/split/image2372.o (.data); - build/j/assets/images/split/image2373.o (.data); - build/j/assets/images/split/image2374.o (.data); - build/j/assets/images/split/image2375.o (.data); - build/j/assets/images/split/image2376.o (.data); - build/j/assets/images/split/image2377.o (.data); - build/j/assets/images/split/image2378.o (.data); - build/j/assets/images/split/image2379.o (.data); - build/j/assets/images/split/image2380.o (.data); - build/j/assets/images/split/image2381.o (.data); - build/j/assets/images/split/image2382.o (.data); - build/j/assets/images/split/image2383.o (.data); - build/j/assets/images/split/image2384.o (.data); - build/j/assets/images/split/image2385.o (.data); - build/j/assets/images/split/image2386.o (.data); - build/j/assets/images/split/image2387.o (.data); - build/j/assets/images/split/image2388.o (.data); - build/j/assets/images/split/image2389.o (.data); - build/j/assets/images/split/image2390.o (.data); - build/j/assets/images/split/image2391.o (.data); - build/j/assets/images/split/image2392.o (.data); - build/j/assets/images/split/image2393.o (.data); - build/j/assets/images/split/image2394.o (.data); - build/j/assets/images/split/image2395.o (.data); - build/j/assets/images/split/image2396.o (.data); - build/j/assets/images/split/image2397.o (.data); - build/j/assets/images/split/image2398.o (.data); - build/j/assets/images/split/image2399.o (.data); - build/j/assets/images/split/image2400.o (.data); - build/j/assets/images/split/image2401.o (.data); - build/j/assets/images/split/image2402.o (.data); - build/j/assets/images/split/image2403.o (.data); - build/j/assets/images/split/image2404.o (.data); - build/j/assets/images/split/image2405.o (.data); - build/j/assets/images/split/image2406.o (.data); - build/j/assets/images/split/image2407.o (.data); - build/j/assets/images/split/image2408.o (.data); - build/j/assets/images/split/image2409.o (.data); - build/j/assets/images/split/image2410.o (.data); - build/j/assets/images/split/image2411.o (.data); - build/j/assets/images/split/image2412.o (.data); - build/j/assets/images/split/image2413.o (.data); - build/j/assets/images/split/image2414.o (.data); - build/j/assets/images/split/image2415.o (.data); - build/j/assets/images/split/image2416.o (.data); - build/j/assets/images/split/image2417.o (.data); - build/j/assets/images/split/image2418.o (.data); - build/j/assets/images/split/image2419.o (.data); - build/j/assets/images/split/image2420.o (.data); - build/j/assets/images/split/image2421.o (.data); - build/j/assets/images/split/image2422.o (.data); - build/j/assets/images/split/image2423.o (.data); - build/j/assets/images/split/image2424.o (.data); - build/j/assets/images/split/image2425.o (.data); - build/j/assets/images/split/image2426.o (.data); - build/j/assets/images/split/image2427.o (.data); - build/j/assets/images/split/image2428.o (.data); - build/j/assets/images/split/image2429.o (.data); - build/j/assets/images/split/image2430.o (.data); - build/j/assets/images/split/image2431.o (.data); - build/j/assets/images/split/image2432.o (.data); - build/j/assets/images/split/image2433.o (.data); - build/j/assets/images/split/image2434.o (.data); - build/j/assets/images/split/image2435.o (.data); - build/j/assets/images/split/image2436.o (.data); - build/j/assets/images/split/image2437.o (.data); - build/j/assets/images/split/image2438.o (.data); - build/j/assets/images/split/image2439.o (.data); - build/j/assets/images/split/image2440.o (.data); - build/j/assets/images/split/image2441.o (.data); - build/j/assets/images/split/image2442.o (.data); - build/j/assets/images/split/image2443.o (.data); - build/j/assets/images/split/image2444.o (.data); - build/j/assets/images/split/image2445.o (.data); - build/j/assets/images/split/image2446.o (.data); - build/j/assets/images/split/image2447.o (.data); - build/j/assets/images/split/image2448.o (.data); - build/j/assets/images/split/image2449.o (.data); - build/j/assets/images/split/image2450.o (.data); - build/j/assets/images/split/image2451.o (.data); - build/j/assets/images/split/image2452.o (.data); - build/j/assets/images/split/image2453.o (.data); - build/j/assets/images/split/image2454.o (.data); - build/j/assets/images/split/image2455.o (.data); - build/j/assets/images/split/image2456.o (.data); - build/j/assets/images/split/image2457.o (.data); - build/j/assets/images/split/image2458.o (.data); - build/j/assets/images/split/image2459.o (.data); - build/j/assets/images/split/image2460.o (.data); - build/j/assets/images/split/image2461.o (.data); - build/j/assets/images/split/image2462.o (.data); - build/j/assets/images/split/image2463.o (.data); - build/j/assets/images/split/image2464.o (.data); - build/j/assets/images/split/image2465.o (.data); - build/j/assets/images/split/image2466.o (.data); - build/j/assets/images/split/image2467.o (.data); - build/j/assets/images/split/image2468.o (.data); - build/j/assets/images/split/image2469.o (.data); - build/j/assets/images/split/image2470.o (.data); - build/j/assets/images/split/image2471.o (.data); - build/j/assets/images/split/image2472.o (.data); - build/j/assets/images/split/image2473.o (.data); - build/j/assets/images/split/image2474.o (.data); - build/j/assets/images/split/image2475.o (.data); - build/j/assets/images/split/image2476.o (.data); - build/j/assets/images/split/image2477.o (.data); - build/j/assets/images/split/image2478.o (.data); - build/j/assets/images/split/image2479.o (.data); - build/j/assets/images/split/image2480.o (.data); - build/j/assets/images/split/image2481.o (.data); - build/j/assets/images/split/image2482.o (.data); - build/j/assets/images/split/image2483.o (.data); - build/j/assets/images/split/image2484.o (.data); - build/j/assets/images/split/image2485.o (.data); - build/j/assets/images/split/image2486.o (.data); - build/j/assets/images/split/image2487.o (.data); - build/j/assets/images/split/image2488.o (.data); - build/j/assets/images/split/image2489.o (.data); - build/j/assets/images/split/image2490.o (.data); - build/j/assets/images/split/image2491.o (.data); - build/j/assets/images/split/image2492.o (.data); - build/j/assets/images/split/image2493.o (.data); - build/j/assets/images/split/image2494.o (.data); - build/j/assets/images/split/image2495.o (.data); - build/j/assets/images/split/image2496.o (.data); - build/j/assets/images/split/image2497.o (.data); - build/j/assets/images/split/image2498.o (.data); - build/j/assets/images/split/image2499.o (.data); - build/j/assets/images/split/image2500.o (.data); - build/j/assets/images/split/image2501.o (.data); - build/j/assets/images/split/image2502.o (.data); - build/j/assets/images/split/image2503.o (.data); - build/j/assets/images/split/image2504.o (.data); - build/j/assets/images/split/image2505.o (.data); - build/j/assets/images/split/image2506.o (.data); - build/j/assets/images/split/image2507.o (.data); - build/j/assets/images/split/image2508.o (.data); - build/j/assets/images/split/image2509.o (.data); - build/j/assets/images/split/image2510.o (.data); - build/j/assets/images/split/image2511.o (.data); - build/j/assets/images/split/image2512.o (.data); - build/j/assets/images/split/image2513.o (.data); - build/j/assets/images/split/image2514.o (.data); - build/j/assets/images/split/image2515.o (.data); - build/j/assets/images/split/image2516.o (.data); - build/j/assets/images/split/image2517.o (.data); - build/j/assets/images/split/image2518.o (.data); - build/j/assets/images/split/image2519.o (.data); - build/j/assets/images/split/image2520.o (.data); - build/j/assets/images/split/image2521.o (.data); - build/j/assets/images/split/image2522.o (.data); - build/j/assets/images/split/image2523.o (.data); - build/j/assets/images/split/image2524.o (.data); - build/j/assets/images/split/image2525.o (.data); - build/j/assets/images/split/image2526.o (.data); - build/j/assets/images/split/image2527.o (.data); - build/j/assets/images/split/image2528.o (.data); - build/j/assets/images/split/image2529.o (.data); - build/j/assets/images/split/image2530.o (.data); - build/j/assets/images/split/image2531.o (.data); - build/j/assets/images/split/image2532.o (.data); - build/j/assets/images/split/image2533.o (.data); - build/j/assets/images/split/image2534.o (.data); - build/j/assets/images/split/image2535.o (.data); - build/j/assets/images/split/image2536.o (.data); - build/j/assets/images/split/image2537.o (.data); - build/j/assets/images/split/image2538.o (.data); - build/j/assets/images/split/image2539.o (.data); - build/j/assets/images/split/image2540.o (.data); - build/j/assets/images/split/image2541.o (.data); - build/j/assets/images/split/image2542.o (.data); - build/j/assets/images/split/image2543.o (.data); - build/j/assets/images/split/image2544.o (.data); - build/j/assets/images/split/image2545.o (.data); - build/j/assets/images/split/image2546.o (.data); - build/j/assets/images/split/image2547.o (.data); - build/j/assets/images/split/image2548.o (.data); - build/j/assets/images/split/image2549.o (.data); - build/j/assets/images/split/image2550.o (.data); - build/j/assets/images/split/image2551.o (.data); - build/j/assets/images/split/image2552.o (.data); - build/j/assets/images/split/image2553.o (.data); - build/j/assets/images/split/image2554.o (.data); - build/j/assets/images/split/image2555.o (.data); - build/j/assets/images/split/image2556.o (.data); - build/j/assets/images/split/image2557.o (.data); - build/j/assets/images/split/image2558.o (.data); - build/j/assets/images/split/image2559.o (.data); - build/j/assets/images/split/image2560.o (.data); - build/j/assets/images/split/image2561.o (.data); - build/j/assets/images/split/image2562.o (.data); - build/j/assets/images/split/image2563.o (.data); - build/j/assets/images/split/image2564.o (.data); - build/j/assets/images/split/image2565.o (.data); - build/j/assets/images/split/image2566.o (.data); - build/j/assets/images/split/image2567.o (.data); - build/j/assets/images/split/image2568.o (.data); - build/j/assets/images/split/image2569.o (.data); - build/j/assets/images/split/image2570.o (.data); - build/j/assets/images/split/image2571.o (.data); - build/j/assets/images/split/image2572.o (.data); - build/j/assets/images/split/image2573.o (.data); - build/j/assets/images/split/image2574.o (.data); - build/j/assets/images/split/image2575.o (.data); - build/j/assets/images/split/image2576.o (.data); - build/j/assets/images/split/image2577.o (.data); - build/j/assets/images/split/image2578.o (.data); - build/j/assets/images/split/image2579.o (.data); - build/j/assets/images/split/image2580.o (.data); - build/j/assets/images/split/image2581.o (.data); - build/j/assets/images/split/image2582.o (.data); - build/j/assets/images/split/image2583.o (.data); - build/j/assets/images/split/image2584.o (.data); - build/j/assets/images/split/image2585.o (.data); - build/j/assets/images/split/image2586.o (.data); - build/j/assets/images/split/image2587.o (.data); - build/j/assets/images/split/image2588.o (.data); - build/j/assets/images/split/image2589.o (.data); - build/j/assets/images/split/image2590.o (.data); - build/j/assets/images/split/image2591.o (.data); - build/j/assets/images/split/image2592.o (.data); - build/j/assets/images/split/image2593.o (.data); - build/j/assets/images/split/image2594.o (.data); - build/j/assets/images/split/image2595.o (.data); - build/j/assets/images/split/image2596.o (.data); - build/j/assets/images/split/image2597.o (.data); - build/j/assets/images/split/image2598.o (.data); - build/j/assets/images/split/image2599.o (.data); - build/j/assets/images/split/image2600.o (.data); - build/j/assets/images/split/image2601.o (.data); - build/j/assets/images/split/image2602.o (.data); - build/j/assets/images/split/image2603.o (.data); - build/j/assets/images/split/image2604.o (.data); - build/j/assets/images/split/image2605.o (.data); - build/j/assets/images/split/image2606.o (.data); - build/j/assets/images/split/image2607.o (.data); - build/j/assets/images/split/image2608.o (.data); - build/j/assets/images/split/image2609.o (.data); - build/j/assets/images/split/image2610.o (.data); - build/j/assets/images/split/image2611.o (.data); - build/j/assets/images/split/image2612.o (.data); - build/j/assets/images/split/image2613.o (.data); - build/j/assets/images/split/image2614.o (.data); - build/j/assets/images/split/image2615.o (.data); - build/j/assets/images/split/image2616.o (.data); - build/j/assets/images/split/image2617.o (.data); - build/j/assets/images/split/image2618.o (.data); - build/j/assets/images/split/image2619.o (.data); - build/j/assets/images/split/image2620.o (.data); - build/j/assets/images/split/image2621.o (.data); - build/j/assets/images/split/image2622.o (.data); - build/j/assets/images/split/image2623.o (.data); - build/j/assets/images/split/image2624.o (.data); - build/j/assets/images/split/image2625.o (.data); - build/j/assets/images/split/image2626.o (.data); - build/j/assets/images/split/image2627.o (.data); - build/j/assets/images/split/image2628.o (.data); - build/j/assets/images/split/image2629.o (.data); - build/j/assets/images/split/image2630.o (.data); - build/j/assets/images/split/image2631.o (.data); - build/j/assets/images/split/image2632.o (.data); - build/j/assets/images/split/image2633.o (.data); - build/j/assets/images/split/image2634.o (.data); - build/j/assets/images/split/image2635.o (.data); - build/j/assets/images/split/image2636.o (.data); - build/j/assets/images/split/image2637.o (.data); - build/j/assets/images/split/image2638.o (.data); - build/j/assets/images/split/image2639.o (.data); - build/j/assets/images/split/image2640.o (.data); - build/j/assets/images/split/image2641.o (.data); - build/j/assets/images/split/image2642.o (.data); - build/j/assets/images/split/image2643.o (.data); - build/j/assets/images/split/image2644.o (.data); - build/j/assets/images/split/image2645.o (.data); - build/j/assets/images/split/image2646.o (.data); - build/j/assets/images/split/image2647.o (.data); - build/j/assets/images/split/image2648.o (.data); - build/j/assets/images/split/image2649.o (.data); - build/j/assets/images/split/image2650.o (.data); - build/j/assets/images/split/image2651.o (.data); - build/j/assets/images/split/image2652.o (.data); - build/j/assets/images/split/image2653.o (.data); - build/j/assets/images/split/image2654.o (.data); - build/j/assets/images/split/image2655.o (.data); - build/j/assets/images/split/image2656.o (.data); - build/j/assets/images/split/image2657.o (.data); - build/j/assets/images/split/image2658.o (.data); - build/j/assets/images/split/image2659.o (.data); - build/j/assets/images/split/image2660.o (.data); - build/j/assets/images/split/image2661.o (.data); - build/j/assets/images/split/image2662.o (.data); - build/j/assets/images/split/image2663.o (.data); - build/j/assets/images/split/image2664.o (.data); - build/j/assets/images/split/image2665.o (.data); - build/j/assets/images/split/image2666.o (.data); - build/j/assets/images/split/image2667.o (.data); - build/j/assets/images/split/image2668.o (.data); - build/j/assets/images/split/image2669.o (.data); - build/j/assets/images/split/image2670.o (.data); - build/j/assets/images/split/image2671.o (.data); - build/j/assets/images/split/image2672.o (.data); - build/j/assets/images/split/image2673.o (.data); - build/j/assets/images/split/image2674.o (.data); - build/j/assets/images/split/image2675.o (.data); - build/j/assets/images/split/image2676.o (.data); - build/j/assets/images/split/image2677.o (.data); - build/j/assets/images/split/image2678.o (.data); - build/j/assets/images/split/image2679.o (.data); - build/j/assets/images/split/image2680.o (.data); - build/j/assets/images/split/image2681.o (.data); - build/j/assets/images/split/image2682.o (.data); - build/j/assets/images/split/image2683.o (.data); - build/j/assets/images/split/image2684.o (.data); - build/j/assets/images/split/image2685.o (.data); - build/j/assets/images/split/image2686.o (.data); - build/j/assets/images/split/image2687.o (.data); - build/j/assets/images/split/image2688.o (.data); - build/j/assets/images/split/image2689.o (.data); - build/j/assets/images/split/image2690.o (.data); - build/j/assets/images/split/image2691.o (.data); - build/j/assets/images/split/image2692.o (.data); - build/j/assets/images/split/image2693.o (.data); - build/j/assets/images/split/image2694.o (.data); - build/j/assets/images/split/image2695.o (.data); - build/j/assets/images/split/image2696.o (.data); - build/j/assets/images/split/image2697.o (.data); - build/j/assets/images/split/image2698.o (.data); - build/j/assets/images/split/image2699.o (.data); - } - _imagesSegmentEnd = ADDR(.images) + SIZEOF(.images); - _imagesSegmentRomEnd = _imagesSegmentRomStart + SIZEOF(.images); - - - - _romSegmentEnd = _imagesSegmentRomEnd; - - - - __csegtempPos = 0xC00000; - __dataSegmentVaddrStart = _codeSegmentEnd + 0x10000000; - _csegmentSegmentStart = ADDR(.csegment); - _csegmentSegmentRomStart = __csegtempPos; - .csegment __dataSegmentVaddrStart : AT(_csegmentSegmentRomStart) { - build/j/src/rspboot.o (.text); - build/j/src/gspboot.o (.text); - build/j/src/aspboot.o (.text); - build/j/src/boot.o (.data); - build/j/src/init.o (.data); - build/j/src/sched.o (.data); - build/j/src/osMapTLB.o (.data); - build/j/src/tlb_manage.o (.data); - build/j/src/tlb_random.o (.data); - build/j/src/tlb_resolve.o (.data); - build/j/src/tlb_hardwire.o (.data); - build/j/src/audi.o (.data); - build/j/src/speed_graph.o (.data); - build/j/src/fr.o (.data); - build/j/src/deb.o (.data); - build/j/src/fault.o (.data); - /*deb_print may be part of fault per pd beta (.data);*/ - build/j/src/deb_print.o (.data); - build/j/src/getra.o (.data); - build/j/src/ramrom.o (.data); - build/j/src/boss.o (.data); - build/j/src/music.o (.data); - build/j/src/snd.o (.data); - build/j/src/memp.o (.data); - build/j/src/mema.o (.data); - build/j/src/random.o (.data); - build/j/src/token.o (.data); - build/j/src/str.o (.data); - build/j/src/sprintf.o (.data); - build/j/src/pi.o (.data); - build/j/src/vi.o (.data); - build/j/src/debugmenu.o (.data); - build/j/src/joy.o (.data); - build/j/src/motor.o (.data); - build/j/src/rmon.o (.data); - - /*build/j/src/libultra/osPiRawStartDma.o (.data);*/ - build/j/src/libultra/io/pirawdma.o (.data); - build/j/src/libultra/io/pigetstat.o (.data); - build/j/src/libultrare/os/initialize.o (.data); - build/j/src/libultra/os/writebackdcacheall.o (.data); - build/j/src/libultra/os/invalicache.o (.data); - build/j/src/libultra/os/unmaptlb.o (.data); - build/j/src/libultra/os/getfpccsr.o (.data); - build/j/src/libultra/os/setfpccsr.o (.data); - build/j/src/libultra/os/createthread.o (.data); - build/j/src/libultra/os/startthread.o (.data); - build/j/src/libultra/os/createmesgqueue.o (.data); - build/j/src/libultra/os/parameters.o (.data); - build/j/src/libultra/os/stopthread.o (.data); - build/j/src/libultra/os/setthreadpri.o (.data); - build/j/src/libultra/os/getcount.o (.data); - build/j/src/libultrare/io/vimgr.o (.data); - build/j/src/libultrare/io/vitbl.o (.data); /*edited*/ - build/j/src/libultra/os/seteventmesg.o (.data); - build/j/src/libultra/io/visetevent.o (.data); - build/j/src/libultra/os/setintmask.o (.data); - build/j/src/libultra/os/recvmesg.o (.data); - build/j/src/libultra/os/sendmesg.o (.data); - build/j/src/libultra/io/visetmode.o (.data); - build/j/src/libultra/io/visetxscale.o (.data); - build/j/src/libultra/io/visetyscale.o (.data); - build/j/src/libultra/io/virepeatline.o (.data); - build/j/src/libultra/io/viblack.o (.data); - build/j/src/libultra/io/sptaskyielded.o (.data); - build/j/src/libultra/io/dpctr.o (.data); - build/j/src/libultra/io/vigetcurrframebuf.o (.data); - build/j/src/libultra/io/vigetnextframebuf.o (.data); - build/j/src/libultra/io/viswapbuf.o (.data); - build/j/src/libultra/io/dpsetstat.o (.data); - build/j/src/libultrare/io/sptask.o (.data); - build/j/src/libultra/io/dpsetnextbuf.o (.data); - build/j/src/libultra/io/sptaskyield.o (.data); - build/j/src/libultra/os/gettlbhi.o (.data); - build/j/src/libultra/os/virtualtophysical.o (.data); - build/j/src/libultra/io/aisetfreq.o (.data); - build/j/src/libultra/audio/sl.o (.data); - build/j/src/libultra/audio/heapalloc.o (.data); - build/j/src/libultra/os/gettime.o (.data); - build/j/src/libultra/libc/ll.o (.data); /*edited*/ - build/j/src/libultrare/io/aisetnextbuf.o (.data); - build/j/src/libultra/io/aigetlen.o (.data); - build/j/src/libultra/audio/synthesizer.o (.data); - build/j/src/libultra/io/pidma.o (.data); - build/j/src/libultra/io/visetspecial.o (.data); - build/j/src/libultra/libc/bcopy.o (.data); - build/j/src/libultra/gu/perspective.o (.data); - build/j/src/libultra/gu/mtxutil.o (.data); - build/j/src/libultra/os/getcurrfaultthread.o (.data); - build/j/src/libultra/os/exception.o (.data); /*edited*/ - build/j/src/libultra/os/thread.o (.data); - build/j/src/libultra/os/yieldthread.o (.data); - build/j/src/libultra/os/invaldcache.o (.data); - build/j/src/libultra/os/writebackdcache.o (.data); - build/j/src/libultra/os/settimer.o (.data); - build/j/src/libultra/audio/heapinit.o (.data); - build/j/src/libultra/audio/bnkf.o (.data); - build/j/src/libultra/audio/csplayer.o (.data); - build/j/src/libultra/audio/seqpsetbank.o (.data); - build/j/src/libultra/audio/cspgetstate.o (.data); - build/j/src/libultra/audio/cseq.o (.data); - build/j/src/libultra/audio/cspsetseq.o (.data); - build/j/src/libultra/audio/cspplay.o (.data); - build/j/src/libultra/audio/cspstop.o (.data); - build/j/src/libultra/audio/cspsetvol.o (.data); - build/j/src/libultra/audio/event.o (.data); - build/j/src/libultra/audio/synaddplayer.o (.data); - build/j/src/libultra/audio/synallocvoice.o (.data); - build/j/src/libultra/audio/synsetvol.o (.data); - build/j/src/libultra/audio/synstartvoice.o (.data); - build/j/src/libultra/audio/synsetpan.o (.data); - build/j/src/libultra/audio/synsetpitch.o (.data); - build/j/src/libultra/audio/synsetfxmix.o (.data); - build/j/src/libultra/audio/synstopvoice.o (.data); - build/j/src/libultra/audio/synfreevoice.o (.data); - build/j/src/libultra/audio/cents2ratio.o (.data); - build/j/src/libultra/io/piread.o (.data); - build/j/src/libultra/libc/string.o (.data); - build/j/src/libultrare/libc/xprintf.o (.data); - build/j/src/libultrare/io/pimgr.o (.data); - build/j/src/libultrare/io/pfsinit.o (.data); - build/j/src/libultrare/io/controller.o (.data); - build/j/src/libultra/io/contquery.o (.data); - build/j/src/libultrare/io/contreaddata.o (.data); - build/j/src/libultrare/io/conteepprobe.o (.data); - build/j/src/libultrare/io/conteepread.o (.data); - build/j/src/libultrare/io/conteepwrite.o (.data); - build/j/src/libultrare/io/conteeplongread.o (.data); - build/j/src/libultrare/io/conteeplongwrite.o (.data); - build/j/src/libultrare/io/pfsisplug.o (.data); - build/j/src/libultra/io/siacs.o (.data); - build/j/src/libultra/io/sirawdma.o (.data); - build/j/src/libultra/io/crc.o (.data); - build/j/src/libultrare/io/contramwrite.o (.data); - build/j/src/libultrare/io/contramread.o (.data); - build/j/src/libultra/gu/align.o (.data); - build/j/src/libultra/gu/ortho.o (.data); - build/j/src/libultra/gu/coss.o (.data); - build/j/src/libultra/gu/sins.o (.data); - build/j/src/libultra/gu/translate.o (.data); - build/j/src/libultra/libc/bcmp.o (.data); - build/j/src/libultra/gu/scale.o (.data); - build/j/src/libultra/gu/lookatref.o (.data); - build/j/src/libultra/gu/lookat.o (.data); - build/j/src/libultra/gu/rotate.o (.data); - build/j/src/libultra/libc/llcvt.o (.data); /*edited*/ - build/j/src/libultra/os/setsr.o (.data); - build/j/src/libultra/os/getsr.o (.data); - build/j/src/libultra/io/sirawread.o (.data); - build/j/src/libultra/io/sirawwrite.o (.data); - build/j/src/libultra/io/pirawread.o (.data); - build/j/src/libultra/libc/bzero.o (.data); - build/j/src/libultra/os/sethwinterrupt.o (.data); - build/j/src/libultrare/io/leointerrupt.o (.data); - build/j/src/libultra/os/interrupt.o (.data); - build/j/src/libultra/os/timerintr.o (.data); - build/j/src/libultra/os/kdebugserver.o (.data); - build/j/src/libultra/os/getthreadpri.o (.data); - build/j/src/libultrare/io/vi.o (.data); /*edited*/ - build/j/src/libultra/io/vigetcurrcontext.o (.data); - build/j/src/libultra/io/viswapcontext.o (.data); - build/j/src/libultra/io/spgetstat.o (.data); - build/j/src/libultra/io/spsetstat.o (.data); - build/j/src/libultra/io/spsetpc.o (.data); - build/j/src/libultra/io/sprawdma.o (.data); - build/j/src/libultra/io/sp.o (.data); - build/j/src/libultra/io/dp.o (.data); - build/j/src/libultra/os/probetlb.o (.data); - build/j/src/libultra/audio/syndelete.o (.data); - build/j/src/libultra/io/ai.o (.data); - build/j/src/libultrare/audio/drvrNew.o (.data); - build/j/src/libultra/audio/synallocfx.o (.data); - build/j/src/libultra/audio/mainbus.o (.data); - build/j/src/libultra/audio/load.o (.data); - build/j/src/libultra/audio/resample.o (.data); - build/j/src/libultrare/audio/env.o (.data); /*edited*/ - build/j/src/libultra/audio/auxbus.o (.data); - build/j/src/libultra/audio/save.o (.data); - build/j/src/libultra/os/jammesg.o (.data); - build/j/src/libultra/io/pigetcmdq.o (.data); - build/j/src/libultra/gu/cosf.o (.data); /*edited*/ - build/j/src/libultra/gu/sinf.o (.data); /*edited*/ - build/j/src/libultrare/os/destroythread.o (.data); - build/j/src/libultra/audio/seqplayer.o (.data); - build/j/src/libultra/audio/synstartvoiceparam.o (.data); - build/j/src/libultra/audio/copy.o (.data); - build/j/src/libultra/io/piacs.o (.data); - build/j/src/libultra/libc/xlitob.o (.data); - build/j/src/libultra/libc/xldtob.o (.data); - build/j/src/libultrare/io/epirawdma.o (.data); - build/j/src/libultrare/io/devmgr.o (.data); - build/j/src/libultra/io/contpfs.o (.data); - build/j/src/libultra/io/si.o (.data); - build/j/src/libultra/gu/normalize.o (.data); - build/j/src/libultra/gu/sqrtf.o (.data); - build/j/src/libultrare/io/leodiskinit.o (.data); - build/j/src/libultra/os/setcompare.o (.data); - build/j/src/libultra/audio/filter.o (.data); - build/j/src/libultrare/audio/reverb.o (.data); /*edited*/ - build/j/src/libultra/gu/libm_vals.o (.data); /*edited*/ - build/j/src/libultra/audio/seq.o (.data); - build/j/src/libultra/audio/synsetpriority.o (.data); - build/j/src/libultra/libc/ldiv.o (.data); - build/j/src/libultra/os/resetglobalintmask.o (.data); - build/j/src/libultrare/io/epirawwrite.o (.data); - build/j/src/libultra/io/vimodentsclan1.o (.data); - build/j/src/libultrare/io/vimodepallan1.o (.data); - build/j/src/libultrare/ultra80069080.o (.data); /*edited*/ - /*build/j/src/libultra/libultra.a:libultra.o (.data);*/ - - - build/j/src/aspboot.o (.rodata); - build/j/src/boot.o (.rodata); - build/j/src/init.o (.rodata); - build/j/src/sched.o (.rodata); - build/j/src/osMapTLB.o (.rodata); - build/j/src/tlb_manage.o (.rodata); - build/j/src/tlb_random.o (.rodata); - build/j/src/tlb_resolve.o (.rodata); - build/j/src/tlb_hardwire.o (.rodata); - build/j/src/audi.o (.rodata); - build/j/src/speed_graph.o (.rodata); - build/j/src/fr.o (.rodata); - build/j/src/deb.o (.rodata); - build/j/src/fault.o (.rodata); - /*deb_print may be part of fault per pd beta (.rodata);*/ - build/j/src/deb_print.o (.rodata); - build/j/src/getra.o (.rodata); - build/j/src/ramrom.o (.rodata); - build/j/src/boss.o (.rodata); - build/j/src/music.o (.rodata); - build/j/src/snd.o (.rodata); - build/j/src/memp.o (.rodata); - build/j/src/mema.o (.rodata); - build/j/src/random.o (.rodata); - build/j/src/token.o (.rodata); - build/j/src/str.o (.rodata); - build/j/src/sprintf.o (.rodata); - build/j/src/pi.o (.rodata); - build/j/src/vi.o (.rodata); - build/j/src/debugmenu.o (.rodata); - build/j/src/joy.o (.rodata); - build/j/src/motor.o (.rodata); - build/j/src/rmon.o (.rodata); - - - /*build/j/src/libultra/osPiRawStartDma.o (.rodata);*/ - build/j/src/libultra/io/pirawdma.o (.rodata); - build/j/src/libultra/io/pigetstat.o (.rodata); - build/j/src/libultrare/os/initialize.o (.rodata); - build/j/src/libultra/os/writebackdcacheall.o (.rodata); - build/j/src/libultra/os/invalicache.o (.rodata); - build/j/src/libultra/os/unmaptlb.o (.rodata); - build/j/src/libultra/os/getfpccsr.o (.rodata); - build/j/src/libultra/os/setfpccsr.o (.rodata); - build/j/src/libultra/os/createthread.o (.rodata); - build/j/src/libultra/os/startthread.o (.rodata); - build/j/src/libultra/os/createmesgqueue.o (.rodata); - build/j/src/libultra/os/parameters.o (.rodata); - build/j/src/libultra/os/stopthread.o (.rodata); - build/j/src/libultra/os/setthreadpri.o (.rodata); - build/j/src/libultra/os/getcount.o (.rodata); - build/j/src/libultrare/io/vimgr.o (.rodata); - build/j/src/libultrare/io/vitbl.o (.rodata); /*edited*/ - build/j/src/libultra/os/seteventmesg.o (.rodata); - build/j/src/libultra/io/visetevent.o (.rodata); - build/j/src/libultra/os/setintmask.o (.rodata); - build/j/src/libultra/os/recvmesg.o (.rodata); - build/j/src/libultra/os/sendmesg.o (.rodata); - build/j/src/libultra/io/visetmode.o (.rodata); - build/j/src/libultra/io/visetxscale.o (.rodata); - build/j/src/libultra/io/visetyscale.o (.rodata); - build/j/src/libultra/io/virepeatline.o (.rodata); - build/j/src/libultra/io/viblack.o (.rodata); - build/j/src/libultra/io/sptaskyielded.o (.rodata); - build/j/src/libultra/io/dpctr.o (.rodata); - build/j/src/libultra/io/vigetcurrframebuf.o (.rodata); - build/j/src/libultra/io/vigetnextframebuf.o (.rodata); - build/j/src/libultra/io/viswapbuf.o (.rodata); - build/j/src/libultra/io/dpsetstat.o (.rodata); - build/j/src/libultrare/io/sptask.o (.rodata); - build/j/src/libultra/io/dpsetnextbuf.o (.rodata); - build/j/src/libultra/io/sptaskyield.o (.rodata); - build/j/src/libultra/os/gettlbhi.o (.rodata); - build/j/src/libultra/os/virtualtophysical.o (.rodata); - build/j/src/libultra/io/aisetfreq.o (.rodata); - build/j/src/libultra/audio/sl.o (.rodata); - build/j/src/libultra/audio/heapalloc.o (.rodata); - build/j/src/libultra/os/gettime.o (.rodata); - build/j/src/libultra/libc/ll.o (.rodata); /*edited*/ - build/j/src/libultrare/io/aisetnextbuf.o (.rodata); - build/j/src/libultra/io/aigetlen.o (.rodata); - build/j/src/libultra/audio/synthesizer.o (.rodata); - build/j/src/libultra/io/pidma.o (.rodata); - build/j/src/libultra/io/visetspecial.o (.rodata); - build/j/src/libultra/libc/bcopy.o (.rodata); - build/j/src/libultra/gu/perspective.o (.rodata); - build/j/src/libultra/gu/mtxutil.o (.rodata); - build/j/src/libultra/os/getcurrfaultthread.o (.rodata); - build/j/src/libultra/os/exception.o (.rodata); /*edited*/ - build/j/src/libultra/os/thread.o (.rodata); - build/j/src/libultra/os/yieldthread.o (.rodata); - build/j/src/libultra/os/invaldcache.o (.rodata); - build/j/src/libultra/os/writebackdcache.o (.rodata); - build/j/src/libultra/os/settimer.o (.rodata); - build/j/src/libultra/audio/heapinit.o (.rodata); - build/j/src/libultra/audio/bnkf.o (.rodata); - build/j/src/libultra/audio/csplayer.o (.rodata); - build/j/src/libultra/audio/seqpsetbank.o (.rodata); - build/j/src/libultra/audio/cspgetstate.o (.rodata); - build/j/src/libultra/audio/cseq.o (.rodata); - build/j/src/libultra/audio/cspsetseq.o (.rodata); - build/j/src/libultra/audio/cspplay.o (.rodata); - build/j/src/libultra/audio/cspstop.o (.rodata); - build/j/src/libultra/audio/cspsetvol.o (.rodata); - build/j/src/libultra/audio/event.o (.rodata); - build/j/src/libultra/audio/synaddplayer.o (.rodata); - build/j/src/libultra/audio/synallocvoice.o (.rodata); - build/j/src/libultra/audio/synsetvol.o (.rodata); - build/j/src/libultra/audio/synstartvoice.o (.rodata); - build/j/src/libultra/audio/synsetpan.o (.rodata); - build/j/src/libultra/audio/synsetpitch.o (.rodata); - build/j/src/libultra/audio/synsetfxmix.o (.rodata); - build/j/src/libultra/audio/synstopvoice.o (.rodata); - build/j/src/libultra/audio/synfreevoice.o (.rodata); - build/j/src/libultra/audio/cents2ratio.o (.rodata); - build/j/src/libultra/io/piread.o (.rodata); - build/j/src/libultra/libc/string.o (.rodata); - build/j/src/libultrare/libc/xprintf.o (.rodata); - build/j/src/libultrare/io/pimgr.o (.rodata); - build/j/src/libultrare/io/pfsinit.o (.rodata); - build/j/src/libultrare/io/controller.o (.rodata); - build/j/src/libultra/io/contquery.o (.rodata); - build/j/src/libultrare/io/contreaddata.o (.rodata); - build/j/src/libultrare/io/conteepprobe.o (.rodata); - build/j/src/libultrare/io/conteepread.o (.rodata); - build/j/src/libultrare/io/conteepwrite.o (.rodata); - build/j/src/libultrare/io/conteeplongread.o (.rodata); - build/j/src/libultrare/io/conteeplongwrite.o (.rodata); - build/j/src/libultrare/io/pfsisplug.o (.rodata); - build/j/src/libultra/io/siacs.o (.rodata); - build/j/src/libultra/io/sirawdma.o (.rodata); - build/j/src/libultra/io/crc.o (.rodata); - build/j/src/libultrare/io/contramwrite.o (.rodata); - build/j/src/libultrare/io/contramread.o (.rodata); - build/j/src/libultra/gu/align.o (.rodata); - build/j/src/libultra/gu/ortho.o (.rodata); - build/j/src/libultra/gu/coss.o (.rodata); - build/j/src/libultra/gu/sins.o (.rodata); - build/j/src/libultra/gu/translate.o (.rodata); - build/j/src/libultra/libc/bcmp.o (.rodata); - build/j/src/libultra/gu/scale.o (.rodata); - build/j/src/libultra/gu/lookatref.o (.rodata); - build/j/src/libultra/gu/lookat.o (.rodata); - build/j/src/libultra/gu/rotate.o (.rodata); - build/j/src/libultra/libc/llcvt.o (.rodata); /*edited*/ - build/j/src/libultra/os/setsr.o (.rodata); - build/j/src/libultra/os/getsr.o (.rodata); - build/j/src/libultra/io/sirawread.o (.rodata); - build/j/src/libultra/io/sirawwrite.o (.rodata); - build/j/src/libultra/io/pirawread.o (.rodata); - build/j/src/libultra/libc/bzero.o (.rodata); - build/j/src/libultra/os/sethwinterrupt.o (.rodata); - build/j/src/libultrare/io/leointerrupt.o (.rodata); - build/j/src/libultra/os/interrupt.o (.rodata); - build/j/src/libultra/os/timerintr.o (.rodata); - build/j/src/libultra/os/kdebugserver.o (.rodata); - build/j/src/libultra/os/getthreadpri.o (.rodata); - build/j/src/libultrare/io/vi.o (.rodata); /*edited*/ - build/j/src/libultra/io/vigetcurrcontext.o (.rodata); - build/j/src/libultra/io/viswapcontext.o (.rodata); - build/j/src/libultra/io/spgetstat.o (.rodata); - build/j/src/libultra/io/spsetstat.o (.rodata); - build/j/src/libultra/io/spsetpc.o (.rodata); - build/j/src/libultra/io/sprawdma.o (.rodata); - build/j/src/libultra/io/sp.o (.rodata); - build/j/src/libultra/io/dp.o (.rodata); - build/j/src/libultra/os/probetlb.o (.rodata); - build/j/src/libultra/audio/syndelete.o (.rodata); - build/j/src/libultra/io/ai.o (.rodata); - build/j/src/libultrare/audio/drvrNew.o (.rodata); - build/j/src/libultra/audio/synallocfx.o (.rodata); - build/j/src/libultra/audio/mainbus.o (.rodata); - build/j/src/libultra/audio/load.o (.rodata); - build/j/src/libultra/audio/resample.o (.rodata); - build/j/src/libultrare/audio/env.o (.rodata); /*edited*/ - build/j/src/libultra/audio/auxbus.o (.rodata); - build/j/src/libultra/audio/save.o (.rodata); - build/j/src/libultra/os/jammesg.o (.rodata); - build/j/src/libultra/io/pigetcmdq.o (.rodata); - build/j/src/libultra/gu/cosf.o (.rodata); /*edited*/ - build/j/src/libultra/gu/sinf.o (.rodata); /*edited*/ - build/j/src/libultrare/os/destroythread.o (.rodata); - build/j/src/libultra/audio/seqplayer.o (.rodata); - build/j/src/libultra/audio/synstartvoiceparam.o (.rodata); - build/j/src/libultra/audio/copy.o (.rodata); - build/j/src/libultra/io/piacs.o (.rodata); - build/j/src/libultra/libc/xlitob.o (.rodata); - build/j/src/libultra/libc/xldtob.o (.rodata); - build/j/src/libultrare/io/epirawdma.o (.rodata); - build/j/src/libultrare/io/devmgr.o (.rodata); - build/j/src/libultra/io/contpfs.o (.rodata); - build/j/src/libultra/io/si.o (.rodata); - build/j/src/libultra/gu/normalize.o (.rodata); - build/j/src/libultra/gu/sqrtf.o (.rodata); - build/j/src/libultrare/io/leodiskinit.o (.rodata); - build/j/src/libultra/os/setcompare.o (.rodata); - build/j/src/libultra/audio/filter.o (.rodata); - build/j/src/libultrare/audio/reverb.o (.rodata); /*edited*/ - build/j/src/libultra/gu/libm_vals.o (.rodata); /*edited*/ - build/j/src/libultra/audio/seq.o (.rodata); - build/j/src/libultra/audio/synsetpriority.o (.rodata); - build/j/src/libultra/libc/ldiv.o (.rodata); - build/j/src/libultra/os/resetglobalintmask.o (.rodata); - build/j/src/libultrare/io/epirawwrite.o (.rodata); - build/j/src/libultra/io/vimodentsclan1.o (.rodata); - build/j/src/libultrare/io/vimodepallan1.o (.rodata); - build/j/src/libultrare/ultra80069080.o (.rodata); /*edited*/ - /*build/j/src/libultra/libultra.a:libultra.o (.rodata);*/ - - build/j/src/game/initgamedata.o (.data); - build/j/src/game/initweaponanigroups.o (.data); - build/j/src/game/initactorpropstuff.o (.data); - build/j/src/game/initnull_0009D0.o (.data); - build/j/src/game/initunk_0009E0.o (.data); - build/j/src/game/initanitable.o (.data); - build/j/src/game/initplayergaitobject.o (.data); - build/j/src/game/setguscale.o (.data); - build/j/src/game/initnull_000BC0.o (.data); - build/j/src/game/initimages.o (.data); - build/j/src/game/initintromatrices.o (.data); - build/j/src/game/initmenus.o (.data); - build/j/src/game/initguards.o (.data); - build/j/src/game/deb_loadallmodels.o (.data); - build/j/src/game/initobjects.o (.data); - build/j/src/game/prop.o (.data); - build/j/src/game/objective.o (.data); - build/j/src/game/ejectedcartridges.o (.data); - build/j/src/game/initBondDATA.o (.data); - build/j/src/game/initunk_005450.o (.data); - build/j/src/game/initunk_005520.o (.data); - build/j/src/game/bondview_r.o (.data); - build/j/src/game/inititemslots.o (.data); - build/j/src/game/initBondDATAdefaults.o (.data); - build/j/src/game/initpathtablesomething.o (.data); - build/j/src/game/initpathtablelinks.o (.data); - build/j/src/game/initexplosioncasing.o (.data); - build/j/src/game/alloc_window_pieces.o (.data); - build/j/src/game/initunk_007290.o (.data); - build/j/src/game/initcheattext.o (.data); - build/j/src/game/initmttex.o (.data); - build/j/src/game/cleanup_guard_data.o (.data); - build/j/src/game/cleanup_object_sounds.o (.data); - build/j/src/game/cleanup_alarms.o (.data); - build/j/src/game/cleanup_objects.o (.data); - build/j/src/game/cleanup_objectives.o (.data); - build/j/src/game/cleanupSFXRelated.o (.data); - build/j/src/game/playerstats_007770.o (.data); - build/j/src/game/cleanexplosions.o (.data); - build/j/src/game/cleanwindowpieces.o (.data); - build/j/src/game/null_007970.o (.data); - build/j/src/game/cleanplayersound.o (.data); - build/j/src/game/title.o (.data); - build/j/src/game/front.o (.data); - build/j/src/game/unk_01B0E0.o (.data); - build/j/src/game/unk_01B240.o (.data); - build/j/src/game/unk_01BAE0.o (.data); - build/j/src/game/blood_animation.o (.data); - build/j/src/game/blood_decrypt.o (.data); - build/j/src/game/file.o (.data); - build/j/src/game/file2.o (.data); - build/j/src/game/chr.o (.data); - build/j/src/game/chr_b.o (.data); - build/j/src/game/chrlv.o (.data); - build/j/src/game/chrai.o (.data); - build/j/src/game/chrprop.o (.data); - build/j/src/game/chrobjhandler.o (.data); - build/j/src/game/loadobjectmodel.o (.data); - build/j/src/game/objective_status.o (.data); - build/j/src/game/objective_status2.o (.data); - build/j/src/game/math_sincos.o (.data); - build/j/src/game/matrixmath.o (.data); - build/j/src/game/math_unk_05A9E0.o (.data); - build/j/src/game/math_atan2f.o (.data); - build/j/src/game/math_asinacos.o (.data); - build/j/src/game/math_asinfacosf.o (.data); - build/j/src/game/matrixmath_misc.o (.data); - build/j/src/game/quaternion.o (.data); - build/j/src/game/math_floor.o (.data); - build/j/src/game/math_ceil.o (.data); - build/j/src/game/gun.o (.data); - build/j/src/game/bondwalk2.o (.data); - build/j/src/game/objecthandler.o (.data); - build/j/src/game/objecthandler_1.o (.data); - build/j/src/game/objecthandler_2.o (.data); - build/j/src/game/othermodemicrocode.o (.data); - build/j/src/game/bondview.o (.data); - build/j/src/game/bondinv.o (.data); - build/j/src/game/bondhead.o (.data); - build/j/src/game/padhalllv.o (.data); - build/j/src/game/debugmenu_08FE00.o (.data); - build/j/src/game/debugmenu_handler.o (.data); - build/j/src/game/unk_091080.o (.data); - build/j/src/game/chraidata.o (.data); - build/j/src/game/pobjdata.o (.data); - build/j/src/game/gobjdata.o (.data); - build/j/src/game/gobjdata2.o (.data); - build/j/src/game/cobjdata.o (.data); - build/j/src/game/cheat_buttons.o (.data); - build/j/src/game/unk_092890.o (.data); - build/j/src/game/unk_092E50.o (.data); - build/j/src/game/player.o (.data); - build/j/src/game/player_2.o (.data); - build/j/src/game/crc.o (.data); - build/j/src/game/chrObjRandom.o (.data); - build/j/src/game/unk_09B7A0.o (.data); - build/j/src/game/explosions.o (.data); - build/j/src/game/unk_0A1DA0.o (.data); - build/j/src/game/watch.o (.data); - build/j/src/game/textrelated.o (.data); - build/j/src/game/stan.o (.data); - build/j/src/game/unk_0B3200.o (.data); - build/j/src/game/bg.o (.data); - build/j/src/game/bg2.o (.data); - build/j/src/game/fog.o (.data); - build/j/src/game/lightfixture.o (.data); - build/j/src/game/unk_0BC530.o (.data); - build/j/src/game/ob.o (.data); - build/j/src/game/dyn.o (.data); - build/j/src/game/lvl.o (.data); - build/j/src/game/ramromreplay.o (.data); - build/j/src/game/unk_0C0A70.o (.data); - build/j/src/game/mp_music.o (.data); - build/j/src/game/lvl_text.o (.data); - build/j/src/game/mp_watch.o (.data); - build/j/src/game/radar.o (.data); - build/j/src/game/mp_weapon.o (.data); - build/j/src/game/image.o (.data); - build/j/src/game/image_bank.o (.data); - build/j/src/game/unk_0CC4C0.o (.data); - build/j/src/game/decompress.o (.data); - build/j/src/game/zlib.o (.data); - build/j/src/game/rsp.o (.data); - build/j/src/game/indy_comms.o (.data); - build/j/src/game/indy_commands.o (.data); - build/j/src/game/game_debug.o (.data); - build/j/src/game/compiletime.o (.data); - build/j/src/game/unk_0D1AC0.o (.data); - build/j/src/game/viewport.o (.data); - build/j/src/game/music_0D2720.o (.data); - build/j/src/game/spectrum.o (.data); - - build/j/src/game/initgamedata.o (.rodata); - build/j/src/game/initweaponanigroups.o (.rodata); - build/j/src/game/initactorpropstuff.o (.rodata); - build/j/src/game/initnull_0009D0.o (.rodata); - build/j/src/game/initunk_0009E0.o (.rodata); - build/j/src/game/initanitable.o (.rodata); - build/j/src/game/initplayergaitobject.o (.rodata); - build/j/src/game/setguscale.o (.rodata); - build/j/src/game/initnull_000BC0.o (.rodata); - build/j/src/game/initimages.o (.rodata); - build/j/src/game/initintromatrices.o (.rodata); - build/j/src/game/initmenus.o (.rodata); - build/j/src/game/initguards.o (.rodata); - build/j/src/game/deb_loadallmodels.o (.rodata); - build/j/src/game/initobjects.o (.rodata); - build/j/src/game/prop.o (.rodata); - build/j/src/game/objective.o (.rodata); - build/j/src/game/ejectedcartridges.o (.rodata); - build/j/src/game/initBondDATA.o (.rodata); - build/j/src/game/initunk_005450.o (.rodata); - build/j/src/game/initunk_005520.o (.rodata); - build/j/src/game/bondview_r.o (.rodata); - build/j/src/game/inititemslots.o (.rodata); - build/j/src/game/initBondDATAdefaults.o (.rodata); - build/j/src/game/initpathtablesomething.o (.rodata); - build/j/src/game/initpathtablelinks.o (.rodata); - build/j/src/game/initexplosioncasing.o (.rodata); - build/j/src/game/alloc_window_pieces.o (.rodata); - build/j/src/game/initunk_007290.o (.rodata); - build/j/src/game/initcheattext.o (.rodata); - build/j/src/game/initmttex.o (.rodata); - build/j/src/game/cleanup_guard_data.o (.rodata); - build/j/src/game/cleanup_object_sounds.o (.rodata); - build/j/src/game/cleanup_alarms.o (.rodata); - build/j/src/game/cleanup_objects.o (.rodata); - build/j/src/game/cleanup_objectives.o (.rodata); - build/j/src/game/cleanupSFXRelated.o (.rodata); - build/j/src/game/playerstats_007770.o (.rodata); - build/j/src/game/cleanexplosions.o (.rodata); - build/j/src/game/cleanwindowpieces.o (.rodata); - build/j/src/game/null_007970.o (.rodata); - build/j/src/game/cleanplayersound.o (.rodata); - build/j/src/game/title.o (.rodata); - build/j/src/game/front.o (.rodata); - build/j/src/game/unk_01B0E0.o (.rodata); - build/j/src/game/unk_01B240.o (.rodata); - build/j/src/game/unk_01BAE0.o (.rodata); - build/j/src/game/blood_animation.o (.rodata); - build/j/src/game/blood_decrypt.o (.rodata); - build/j/src/game/file.o (.rodata); - build/j/src/game/file2.o (.rodata); - build/j/src/game/chr.o (.rodata); - build/j/src/game/chr_b.o (.rodata); - build/j/src/game/chrlv.o (.rodata); - build/j/src/game/chrai.o (.rodata); - build/j/src/game/chrprop.o (.rodata); - build/j/src/game/chrobjhandler.o (.rodata); - build/j/src/game/loadobjectmodel.o (.rodata); - build/j/src/game/objective_status.o (.rodata); - build/j/src/game/objective_status2.o (.rodata); - build/j/src/game/math_sincos.o (.rodata); - build/j/src/game/matrixmath.o (.rodata); - build/j/src/game/math_unk_05A9E0.o (.rodata); - build/j/src/game/math_atan2f.o (.rodata); - build/j/src/game/math_asinacos.o (.rodata); - build/j/src/game/math_asinfacosf.o (.rodata); - build/j/src/game/matrixmath_misc.o (.rodata); - build/j/src/game/quaternion.o (.rodata); - build/j/src/game/math_floor.o (.rodata); - build/j/src/game/math_ceil.o (.rodata); - build/j/src/game/gun.o (.rodata); - build/j/src/game/bondwalk2.o (.rodata); - build/j/src/game/objecthandler.o (.rodata); - build/j/src/game/objecthandler_1.o (.rodata); - build/j/src/game/objecthandler_2.o (.rodata); - build/j/src/game/othermodemicrocode.o (.rodata); - build/j/src/game/bondview.o (.rodata); - build/j/src/game/bondinv.o (.rodata); - build/j/src/game/bondhead.o (.rodata); - build/j/src/game/padhalllv.o (.rodata); - build/j/src/game/debugmenu_08FE00.o (.rodata); - build/j/src/game/debugmenu_handler.o (.rodata); - build/j/src/game/unk_091080.o (.rodata); - build/j/src/game/chraidata.o (.rodata); - build/j/src/game/pobjdata.o (.rodata); - build/j/src/game/gobjdata.o (.rodata); - build/j/src/game/gobjdata2.o (.rodata); - build/j/src/game/cobjdata.o (.rodata); - build/j/src/game/cheat_buttons.o (.rodata); - build/j/src/game/unk_092890.o (.rodata); - build/j/src/game/unk_092E50.o (.rodata); - build/j/src/game/player.o (.rodata); - build/j/src/game/player_2.o (.rodata); - build/j/src/game/crc.o (.rodata); - build/j/src/game/chrObjRandom.o (.rodata); - build/j/src/game/unk_09B7A0.o (.rodata); - build/j/src/game/explosions.o (.rodata); - build/j/src/game/unk_0A1DA0.o (.rodata); - build/j/src/game/watch.o (.rodata); - build/j/src/game/textrelated.o (.rodata); - build/j/src/game/stan.o (.rodata); - build/j/src/game/unk_0B3200.o (.rodata); - build/j/src/game/bg.o (.rodata); - build/j/src/game/bg2.o (.rodata); - build/j/src/game/fog.o (.rodata); - build/j/src/game/lightfixture.o (.rodata); - build/j/src/game/unk_0BC530.o (.rodata); - build/j/src/game/ob.o (.rodata); - build/j/src/game/dyn.o (.rodata); - build/j/src/game/lvl.o (.rodata); - build/j/src/game/ramromreplay.o (.rodata); - build/j/src/game/unk_0C0A70.o (.rodata); - build/j/src/game/mp_music.o (.rodata); - build/j/src/game/lvl_text.o (.rodata); - build/j/src/game/mp_watch.o (.rodata); - build/j/src/game/radar.o (.rodata); - build/j/src/game/mp_weapon.o (.rodata); - build/j/src/game/image.o (.rodata); - build/j/src/game/image_bank.o (.rodata); - build/j/src/game/unk_0CC4C0.o (.rodata); - build/j/src/game/decompress.o (.rodata); - build/j/src/game/zlib.o (.rodata); - build/j/src/game/rsp.o (.rodata); - build/j/src/game/indy_comms.o (.rodata); - build/j/src/game/indy_commands.o (.rodata); - build/j/src/game/game_debug.o (.rodata); - build/j/src/game/compiletime.o (.rodata); - build/j/src/game/unk_0D1AC0.o (.rodata); - build/j/src/game/viewport.o (.rodata); - build/j/src/game/music_0D2720.o (.rodata); - build/j/src/game/spectrum.o (.rodata); - - build/j/src/gspboot.o (.data); - build/j/src/aspboot.o (.data); - } - _csegmentSegmentEnd = ADDR(.csegment) + SIZEOF(.csegment); - _csegmentSegmentRomEnd = _csegmentSegmentRomStart + SIZEOF(.csegment); - - __dataSegmentVaddrEnd = _csegmentSegmentRomEnd; - - _bssSegmentStart = ADDR(.bss); - .bss (NOLOAD) : - { - build/j/src/boot.o (.bss); - build/j/src/init.o (.bss); - build/j/src/sched.o (.bss); - build/j/src/osMapTLB.o (.bss); - build/j/src/tlb_manage.o (.bss); - build/j/src/tlb_random.o (.bss); - build/j/src/tlb_resolve.o (.bss); - build/j/src/audi.o (.bss); - build/j/src/speed_graph.o (.bss); - build/j/src/fr.o (.bss); - build/j/src/deb.o (.bss); - build/j/src/fault.o (.bss); - /*deb_print may be part of fault per pd beta (.bss);*/ - build/j/src/deb_print.o (.bss); - build/j/src/getra.o (.bss); - build/j/src/ramrom.o (.bss); - build/j/src/boss.o (.bss); - build/j/src/music.o (.bss); - build/j/src/snd.o (.bss); - build/j/src/memp.o (.bss); - build/j/src/mema.o (.bss); - build/j/src/random.o (.bss); - build/j/src/token.o (.bss); - build/j/src/str.o (.bss); - build/j/src/sprintf.o (.bss); - build/j/src/pi.o (.bss); - build/j/src/vi.o (.bss); - build/j/src/debugmenu.o (.bss); - build/j/src/joy.o (.bss); - build/j/src/motor.o (.bss); - build/j/src/rmon.o (.bss); - - /*build/j/src/libultra/osPiRawStartDma.o (.bss);*/ - build/j/src/libultra/io/pirawdma.o (.bss); - build/j/src/libultra/io/pigetstat.o (.bss); - build/j/src/libultrare/os/initialize.o (.bss); - build/j/src/libultra/os/writebackdcacheall.o (.bss); - build/j/src/libultra/os/invalicache.o (.bss); - build/j/src/libultra/os/unmaptlb.o (.bss); - build/j/src/libultra/os/getfpccsr.o (.bss); - build/j/src/libultra/os/setfpccsr.o (.bss); - build/j/src/libultra/os/createthread.o (.bss); - build/j/src/libultra/os/startthread.o (.bss); - build/j/src/libultra/os/createmesgqueue.o (.bss); - build/j/src/libultra/os/parameters.o (.bss); - build/j/src/libultra/os/stopthread.o (.bss); - build/j/src/libultra/os/setthreadpri.o (.bss); - build/j/src/libultra/os/getcount.o (.bss); - build/j/src/libultrare/io/vimgr.o (.bss); - build/j/src/libultrare/io/vitbl.o (.bss); /*edited*/ - build/j/src/libultra/os/seteventmesg.o (.bss); - build/j/src/libultra/io/visetevent.o (.bss); - build/j/src/libultra/os/setintmask.o (.bss); - build/j/src/libultra/os/recvmesg.o (.bss); - build/j/src/libultra/os/sendmesg.o (.bss); - build/j/src/libultra/io/visetmode.o (.bss); - build/j/src/libultra/io/visetxscale.o (.bss); - build/j/src/libultra/io/visetyscale.o (.bss); - build/j/src/libultra/io/virepeatline.o (.bss); - build/j/src/libultra/io/viblack.o (.bss); - build/j/src/libultra/io/sptaskyielded.o (.bss); - build/j/src/libultra/io/dpctr.o (.bss); - build/j/src/libultra/io/vigetcurrframebuf.o (.bss); - build/j/src/libultra/io/vigetnextframebuf.o (.bss); - build/j/src/libultra/io/viswapbuf.o (.bss); - build/j/src/libultra/io/dpsetstat.o (.bss); - build/j/src/libultrare/io/sptask.o (.bss); - build/j/src/libultra/io/dpsetnextbuf.o (.bss); - build/j/src/libultra/io/sptaskyield.o (.bss); - build/j/src/libultra/os/gettlbhi.o (.bss); - build/j/src/libultra/os/virtualtophysical.o (.bss); - build/j/src/libultra/io/aisetfreq.o (.bss); - build/j/src/libultra/audio/sl.o (.bss); - build/j/src/libultra/audio/heapalloc.o (.bss); - build/j/src/libultra/os/gettime.o (.bss); - build/j/src/libultra/libc/ll.o (.bss); /*edited*/ - build/j/src/libultrare/io/aisetnextbuf.o (.bss); - build/j/src/libultra/io/aigetlen.o (.bss); - build/j/src/libultra/audio/synthesizer.o (.bss); - build/j/src/libultra/io/pidma.o (.bss); - build/j/src/libultra/io/visetspecial.o (.bss); - build/j/src/libultra/libc/bcopy.o (.bss); - build/j/src/libultra/gu/perspective.o (.bss); - build/j/src/libultra/gu/mtxutil.o (.bss); - build/j/src/libultra/os/getcurrfaultthread.o (.bss); - build/j/src/libultra/os/exception.o (.bss); /*edited*/ - build/j/src/libultra/os/thread.o (.bss); - build/j/src/libultra/os/yieldthread.o (.bss); - build/j/src/libultra/os/invaldcache.o (.bss); - build/j/src/libultra/os/writebackdcache.o (.bss); - build/j/src/libultra/os/settimer.o (.bss); - build/j/src/libultra/audio/heapinit.o (.bss); - build/j/src/libultra/audio/bnkf.o (.bss); - build/j/src/libultra/audio/csplayer.o (.bss); - build/j/src/libultra/audio/seqpsetbank.o (.bss); - build/j/src/libultra/audio/cspgetstate.o (.bss); - build/j/src/libultra/audio/cseq.o (.bss); - build/j/src/libultra/audio/cspsetseq.o (.bss); - build/j/src/libultra/audio/cspplay.o (.bss); - build/j/src/libultra/audio/cspstop.o (.bss); - build/j/src/libultra/audio/cspsetvol.o (.bss); - build/j/src/libultra/audio/event.o (.bss); - build/j/src/libultra/audio/synaddplayer.o (.bss); - build/j/src/libultra/audio/synallocvoice.o (.bss); - build/j/src/libultra/audio/synsetvol.o (.bss); - build/j/src/libultra/audio/synstartvoice.o (.bss); - build/j/src/libultra/audio/synsetpan.o (.bss); - build/j/src/libultra/audio/synsetpitch.o (.bss); - build/j/src/libultra/audio/synsetfxmix.o (.bss); - build/j/src/libultra/audio/synstopvoice.o (.bss); - build/j/src/libultra/audio/synfreevoice.o (.bss); - build/j/src/libultra/audio/cents2ratio.o (.bss); - build/j/src/libultra/io/piread.o (.bss); - build/j/src/libultra/libc/string.o (.bss); - build/j/src/libultrare/libc/xprintf.o (.bss); - build/j/src/libultrare/io/pimgr.o (.bss); - build/j/src/libultrare/io/pfsinit.o (.bss); - build/j/src/libultrare/io/controller.o (.bss); - build/j/src/libultra/io/contquery.o (.bss); - build/j/src/libultrare/io/contreaddata.o (.bss); - build/j/src/libultrare/io/conteepprobe.o (.bss); - build/j/src/libultrare/io/conteepread.o (.bss); - build/j/src/libultrare/io/conteepwrite.o (.bss); - build/j/src/libultrare/io/conteeplongread.o (.bss); - build/j/src/libultrare/io/conteeplongwrite.o (.bss); - build/j/src/libultrare/io/pfsisplug.o (.bss); - build/j/src/libultra/io/siacs.o (.bss); - build/j/src/libultra/io/sirawdma.o (.bss); - build/j/src/libultra/io/crc.o (.bss); - build/j/src/libultrare/io/contramwrite.o (.bss); - build/j/src/libultrare/io/contramread.o (.bss); - build/j/src/libultra/gu/align.o (.bss); - build/j/src/libultra/gu/ortho.o (.bss); - build/j/src/libultra/gu/coss.o (.bss); - build/j/src/libultra/gu/sins.o (.bss); - build/j/src/libultra/gu/translate.o (.bss); - build/j/src/libultra/libc/bcmp.o (.bss); - build/j/src/libultra/gu/scale.o (.bss); - build/j/src/libultra/gu/lookatref.o (.bss); - build/j/src/libultra/gu/lookat.o (.bss); - build/j/src/libultra/gu/rotate.o (.bss); - build/j/src/libultra/libc/llcvt.o (.bss); /*edited*/ - build/j/src/libultra/os/setsr.o (.bss); - build/j/src/libultra/os/getsr.o (.bss); - build/j/src/libultra/io/sirawread.o (.bss); - build/j/src/libultra/io/sirawwrite.o (.bss); - build/j/src/libultra/io/pirawread.o (.bss); - build/j/src/libultra/libc/bzero.o (.bss); - build/j/src/libultra/os/sethwinterrupt.o (.bss); - build/j/src/libultrare/io/leointerrupt.o (.bss); - build/j/src/libultra/os/interrupt.o (.bss); - build/j/src/libultra/os/timerintr.o (.bss); - build/j/src/libultra/os/kdebugserver.o (.bss); - build/j/src/libultra/os/getthreadpri.o (.bss); - build/j/src/libultrare/io/vi.o (.bss); /*edited*/ - build/j/src/libultra/io/vigetcurrcontext.o (.bss); - build/j/src/libultra/io/viswapcontext.o (.bss); - build/j/src/libultra/io/spgetstat.o (.bss); - build/j/src/libultra/io/spsetstat.o (.bss); - build/j/src/libultra/io/spsetpc.o (.bss); - build/j/src/libultra/io/sprawdma.o (.bss); - build/j/src/libultra/io/sp.o (.bss); - build/j/src/libultra/io/dp.o (.bss); - build/j/src/libultra/os/probetlb.o (.bss); - build/j/src/libultra/audio/syndelete.o (.bss); - build/j/src/libultra/io/ai.o (.bss); - build/j/src/libultrare/audio/drvrNew.o (.bss); - build/j/src/libultra/audio/synallocfx.o (.bss); - build/j/src/libultra/audio/mainbus.o (.bss); - build/j/src/libultra/audio/load.o (.bss); - build/j/src/libultra/audio/resample.o (.bss); - build/j/src/libultrare/audio/env.o (.bss); /*edited*/ - build/j/src/libultra/audio/auxbus.o (.bss); - build/j/src/libultra/audio/save.o (.bss); - build/j/src/libultra/os/jammesg.o (.bss); - build/j/src/libultra/io/pigetcmdq.o (.bss); - build/j/src/libultra/gu/cosf.o (.bss); /*edited*/ - build/j/src/libultra/gu/sinf.o (.bss); /*edited*/ - build/j/src/libultrare/os/destroythread.o (.bss); - build/j/src/libultra/audio/seqplayer.o (.bss); - build/j/src/libultra/audio/synstartvoiceparam.o (.bss); - build/j/src/libultra/audio/copy.o (.bss); - build/j/src/libultra/io/piacs.o (.bss); - build/j/src/libultra/libc/xlitob.o (.bss); - build/j/src/libultra/libc/xldtob.o (.bss); - build/j/src/libultrare/io/epirawdma.o (.bss); - build/j/src/libultrare/io/devmgr.o (.bss); - build/j/src/libultra/io/contpfs.o (.bss); - build/j/src/libultra/io/si.o (.bss); - build/j/src/libultra/gu/normalize.o (.bss); - build/j/src/libultra/gu/sqrtf.o (.bss); - build/j/src/libultrare/io/leodiskinit.o (.bss); - build/j/src/libultra/os/setcompare.o (.bss); - build/j/src/libultra/audio/filter.o (.bss); - build/j/src/libultrare/audio/reverb.o (.bss); /*edited*/ - build/j/src/libultra/gu/libm_vals.o (.bss); /*edited*/ - build/j/src/libultra/audio/seq.o (.bss); - build/j/src/libultra/audio/synsetpriority.o (.bss); - build/j/src/libultra/libc/ldiv.o (.bss); - build/j/src/libultra/os/resetglobalintmask.o (.bss); - build/j/src/libultrare/io/epirawwrite.o (.bss); - build/j/src/libultra/io/vimodentsclan1.o (.bss); - build/j/src/libultrare/io/vimodepallan1.o (.bss); - build/j/src/libultrare/ultra80069080.o (.bss); /*edited*/ - /*build/j/src/libultra/libultra.a:libultra.o (.bss);*/ - - build/j/src/game/initgamedata.o (.bss); - build/j/src/game/initweaponanigroups.o (.bss); - build/j/src/game/initactorpropstuff.o (.bss); - build/j/src/game/initnull_0009D0.o (.bss); - build/j/src/game/initunk_0009E0.o (.bss); - build/j/src/game/initanitable.o (.bss); - build/j/src/game/initplayergaitobject.o (.bss); - build/j/src/game/setguscale.o (.bss); - build/j/src/game/initnull_000BC0.o (.bss); - build/j/src/game/initimages.o (.bss); - build/j/src/game/initintromatrices.o (.bss); - build/j/src/game/initmenus.o (.bss); - build/j/src/game/initguards.o (.bss); - build/j/src/game/deb_loadallmodels.o (.bss); - build/j/src/game/initobjects.o (.bss); - build/j/src/game/prop.o (.bss); - build/j/src/game/objective.o (.bss); - build/j/src/game/ejectedcartridges.o (.bss); - build/j/src/game/initBondDATA.o (.bss); - build/j/src/game/initunk_005450.o (.bss); - build/j/src/game/initunk_005520.o (.bss); - build/j/src/game/bondview_r.o (.bss); - build/j/src/game/inititemslots.o (.bss); - build/j/src/game/initBondDATAdefaults.o (.bss); - build/j/src/game/initpathtablesomething.o (.bss); - build/j/src/game/initpathtablelinks.o (.bss); - build/j/src/game/initexplosioncasing.o (.bss); - build/j/src/game/alloc_window_pieces.o (.bss); - build/j/src/game/initunk_007290.o (.bss); - build/j/src/game/initcheattext.o (.bss); - build/j/src/game/initmttex.o (.bss); - build/j/src/game/cleanup_guard_data.o (.bss); - build/j/src/game/cleanup_object_sounds.o (.bss); - build/j/src/game/cleanup_alarms.o (.bss); - build/j/src/game/cleanup_objects.o (.bss); - build/j/src/game/cleanup_objectives.o (.bss); - build/j/src/game/cleanupSFXRelated.o (.bss); - build/j/src/game/playerstats_007770.o (.bss); - build/j/src/game/cleanexplosions.o (.bss); - build/j/src/game/cleanwindowpieces.o (.bss); - build/j/src/game/null_007970.o (.bss); - build/j/src/game/cleanplayersound.o (.bss); - build/j/src/game/title.o (.bss); - build/j/src/game/front.o (.bss); - build/j/src/game/unk_01B0E0.o (.bss); - build/j/src/game/unk_01B240.o (.bss); - build/j/src/game/unk_01BAE0.o (.bss); - build/j/src/game/blood_animation.o (.bss); - build/j/src/game/blood_decrypt.o (.bss); - build/j/src/game/file.o (.bss); - build/j/src/game/file2.o (.bss); - build/j/src/game/chr.o (.bss); - build/j/src/game/chr_b.o (.bss); - build/j/src/game/chrlv.o (.bss); - build/j/src/game/chrai.o (.bss); - build/j/src/game/chrprop.o (.bss); - build/j/src/game/chrobjhandler.o (.bss); - build/j/src/game/loadobjectmodel.o (.bss); - build/j/src/game/objective_status.o (.bss); - build/j/src/game/objective_status2.o (.bss); - build/j/src/game/math_sincos.o (.bss); - build/j/src/game/matrixmath.o (.bss); - build/j/src/game/math_unk_05A9E0.o (.bss); - build/j/src/game/math_atan2f.o (.bss); - build/j/src/game/math_asinacos.o (.bss); - build/j/src/game/math_asinfacosf.o (.bss); - build/j/src/game/matrixmath_misc.o (.bss); - build/j/src/game/quaternion.o (.bss); - build/j/src/game/math_floor.o (.bss); - build/j/src/game/math_ceil.o (.bss); - build/j/src/game/gun.o (.bss); - build/j/src/game/bondwalk2.o (.bss); - build/j/src/game/objecthandler.o (.bss); - build/j/src/game/objecthandler_1.o (.bss); - build/j/src/game/objecthandler_2.o (.bss); - build/j/src/game/othermodemicrocode.o (.bss); - build/j/src/game/bondview.o (.bss); - build/j/src/game/bondinv.o (.bss); - build/j/src/game/bondhead.o (.bss); - build/j/src/game/padhalllv.o (.bss); - build/j/src/game/debugmenu_08FE00.o (.bss); - build/j/src/game/debugmenu_handler.o (.bss); - build/j/src/game/unk_091080.o (.bss); - build/j/src/game/chraidata.o (.bss); - build/j/src/game/pobjdata.o (.bss); - build/j/src/game/gobjdata.o (.bss); - build/j/src/game/gobjdata2.o (.bss); - build/j/src/game/cobjdata.o (.bss); - build/j/src/game/cheat_buttons.o (.bss); - build/j/src/game/unk_092890.o (.bss); - build/j/src/game/unk_092E50.o (.bss); - build/j/src/game/player.o (.bss); - build/j/src/game/player_2.o (.bss); - build/j/src/game/crc.o (.bss); - build/j/src/game/chrObjRandom.o (.bss); - build/j/src/game/unk_09B7A0.o (.bss); - build/j/src/game/explosions.o (.bss); - build/j/src/game/unk_0A1DA0.o (.bss); - build/j/src/game/watch.o (.bss); - build/j/src/game/textrelated.o (.bss); - build/j/src/game/stan.o (.bss); - build/j/src/game/unk_0B3200.o (.bss); - build/j/src/game/bg.o (.bss); - build/j/src/game/bg2.o (.bss); - build/j/src/game/fog.o (.bss); - build/j/src/game/lightfixture.o (.bss); - build/j/src/game/unk_0BC530.o (.bss); - build/j/src/game/ob.o (.bss); - build/j/src/game/dyn.o (.bss); - build/j/src/game/lvl.o (.bss); - build/j/src/game/ramromreplay.o (.bss); - build/j/src/game/unk_0C0A70.o (.bss); - build/j/src/game/mp_music.o (.bss); - build/j/src/game/lvl_text.o (.bss); - build/j/src/game/mp_watch.o (.bss); - build/j/src/game/radar.o (.bss); - build/j/src/game/mp_weapon.o (.bss); - build/j/src/game/image.o (.bss); - build/j/src/game/image_bank.o (.bss); - build/j/src/game/unk_0CC4C0.o (.bss); - build/j/src/game/decompress.o (.bss); - build/j/src/game/zlib.o (.bss); - build/j/src/game/rsp.o (.bss); - build/j/src/game/indy_comms.o (.bss); - build/j/src/game/indy_commands.o (.bss); - build/j/src/game/game_debug.o (.bss); - build/j/src/game/compiletime.o (.bss); - build/j/src/game/unk_0D1AC0.o (.bss); - build/j/src/game/viewport.o (.bss); - build/j/src/game/music_0D2720.o (.bss); - build/j/src/game/spectrum.o (.bss); - } - _bssSegmentEnd = ADDR(.bss) + SIZEOF(.bss); - _bssSegmentSize = SIZEOF(.bss); - - _roombufSegmentStart = ADDR(.roombuf); - .roombuf (NOLOAD) : - { - build/j/src/game/room_model_buffer.o (.bss); - } - _roombufSegmentEnd = ADDR(.roombuf) + SIZEOF(.roombuf); - - _decompbufSegmentStart = ADDR(.decompbuf); - .decompbuf 0x80300000 : - { - build/j/src/decompressbuffer.o (.bss); - } - _decompbufSegmentEnd = ADDR(.decompbuf) + SIZEOF(.decompbuf); - - _stacksSegmentStart = ADDR(.stacks); - .stacks (NOLOAD) : - { - build/j/src/stacks.o (.bss); - } - _stacksSegmentEnd = ADDR(.stacks) + SIZEOF(.stacks); - - _cfbSegmentStart = ADDR(.cfb); - .cfb (NOLOAD) : - { - build/j/src/cfb.o (.bss); - } - _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); - - /*move em to end, out of the way*/ - /DISCARD/ : { - * (.MIPS.abiflags); - * (.musicdecompressed); - * (.options); - * (.gnu.attributes); - * (.pdr); - * (.mdebug); - * (.gptab.bss); - * (.gptab.data); - * (.reginfo); - - -} -} diff --git a/ge007.ld b/ge007.ld index 7deebdbe..c0551c71 100644 --- a/ge007.ld +++ b/ge007.ld @@ -12,12 +12,21 @@ OUTPUT_ARCH (mips) SECTIONS { - _romSegmentStart = 0; + + osTvType = 0x80000300; + osRomType = 0x80000304; + osRomBase = 0x80000308; + osResetType = 0x8000030c; + osCicId = 0x80000310; + osVersion = 0x80000314; + osMemSize = 0x80000318; + osAppNMIBuffer = 0x8000031c; + _romSegmentStart = 0; /* header */ BEGIN_SEG(header, _romSegmentStart, 0x04000000) { - build/u/src/rom_header.o(.data); + build/OUTCODE/src/rom_header.o(.data); } END_SEG(header) @@ -26,7 +35,7 @@ SECTIONS /* boot */ BEGIN_SEG(boot, _headerSegmentRomEnd, 0x04000040) { - build/u/src/bootcode.o(.text); + build/OUTCODE/src/bootcode.o(.text); } END_SEG(boot) @@ -36,7 +45,7 @@ SECTIONS /* 0x80000400, 0x80000450 */ BEGIN_SEG(start, _bootSegmentRomEnd, 0x80000400) { - build/u/src/_start.o (.text); + build/OUTCODE/src/_start.o (.text); } END_SEG(start) @@ -45,220 +54,16 @@ SECTIONS _alt_startSegmentStart = _startSegmentStart - 0x10000000 + 0x100000; /* 0x70000450, 0x70020D90 001050-021990 */ - BEGIN_SEG(code, _stacksSegmentRomEnd, 0x70000450) SUBALIGN(16) { - build/u/src/boot.o (.text); - build/u/src/init.o (.text); - build/u/src/sched.o (.text); - build/u/src/osMapTLB.o (.text); - build/u/src/tlb_manage.o (.text); - build/u/src/tlb_random.o (.text); - build/u/src/tlb_resolve.o (.text); - build/u/src/tlb_hardwire.o (.text); - build/u/src/audi.o (.text); - build/u/src/speed_graph.o (.text); - build/u/src/fr.o (.text); - build/u/src/deb.o (.text); - build/u/src/fault.o (.text); - /*deb_print may be part of fault per pd beta (.text);*/ - build/u/src/deb_print.o (.text); - build/u/src/getra.o (.text); - build/u/src/ramrom.o (.text); - build/u/src/boss.o (.text); - build/u/src/music.o (.text); - build/u/src/snd.o (.text); - build/u/src/memp.o (.text); - build/u/src/mema.o (.text); - build/u/src/random.o (.text); - build/u/src/token.o (.text); - build/u/src/str.o (.text); - build/u/src/sprintf.o (.text); - build/u/src/pi.o (.text); - build/u/src/vi.o (.text); - build/u/src/debugmenu.o (.text); - build/u/src/joy.o (.text); - build/u/src/motor.o (.text); - build/u/src/rmon.o (.text); - - /*build/u/src/libultra/osPiRawStartDma.o (.text);*/ - build/u/src/libultra/io/pirawdma.o (.text); - build/u/src/libultra/io/pigetstat.o (.text); - build/u/src/libultrare/os/initialize.o (.text); - build/u/src/libultra/os/writebackdcacheall.o (.text); - build/u/src/libultra/os/invalicache.o (.text); - build/u/src/libultra/os/unmaptlb.o (.text); - build/u/src/libultra/os/getfpccsr.o (.text); - build/u/src/libultra/os/setfpccsr.o (.text); - build/u/src/libultra/os/createthread.o (.text); - build/u/src/libultra/os/startthread.o (.text); - build/u/src/libultra/os/createmesgqueue.o (.text); - build/u/src/libultra/os/parameters.o (.text); - build/u/src/libultra/os/stopthread.o (.text); - build/u/src/libultra/os/setthreadpri.o (.text); - build/u/src/libultra/os/getcount.o (.text); - build/u/src/libultrare/io/vimgr.o (.text); - build/u/src/libultrare/io/vitbl.o (.text); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.text); - build/u/src/libultra/io/visetevent.o (.text); - build/u/src/libultra/os/setintmask.o (.text); - build/u/src/libultra/os/recvmesg.o (.text); - build/u/src/libultra/os/sendmesg.o (.text); - build/u/src/libultra/io/visetmode.o (.text); - build/u/src/libultra/io/visetxscale.o (.text); - build/u/src/libultra/io/visetyscale.o (.text); - build/u/src/libultra/io/virepeatline.o (.text); - build/u/src/libultra/io/viblack.o (.text); - build/u/src/libultra/io/sptaskyielded.o (.text); - build/u/src/libultra/io/dpctr.o (.text); - build/u/src/libultra/io/vigetcurrframebuf.o (.text); - build/u/src/libultra/io/vigetnextframebuf.o (.text); - build/u/src/libultra/io/viswapbuf.o (.text); - build/u/src/libultra/io/dpsetstat.o (.text); - build/u/src/libultrare/io/sptask.o (.text); - build/u/src/libultra/io/dpsetnextbuf.o (.text); - build/u/src/libultra/io/sptaskyield.o (.text); - build/u/src/libultra/os/gettlbhi.o (.text); - build/u/src/libultra/os/virtualtophysical.o (.text); - build/u/src/libultra/io/aisetfreq.o (.text); - build/u/src/libultra/audio/sl.o (.text); - build/u/src/libultra/audio/heapalloc.o (.text); - build/u/src/libultra/os/gettime.o (.text); - build/u/src/libultra/libc/ll.o (.text); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.text); - build/u/src/libultra/io/aigetlen.o (.text); - build/u/src/libultra/audio/synthesizer.o (.text); - build/u/src/libultra/io/pidma.o (.text); - build/u/src/libultra/io/visetspecial.o (.text); - build/u/src/libultra/libc/bcopy.o (.text); - build/u/src/libultra/gu/perspective.o (.text); - build/u/src/libultra/gu/mtxutil.o (.text); - build/u/src/libultra/os/getcurrfaultthread.o (.text); - build/u/src/libultra/os/exception.o (.text); /*edited*/ - build/u/src/libultra/os/thread.o (.text); - build/u/src/libultra/os/yieldthread.o (.text); - build/u/src/libultra/os/invaldcache.o (.text); - build/u/src/libultra/os/writebackdcache.o (.text); - build/u/src/libultra/os/settimer.o (.text); - build/u/src/libultra/audio/heapinit.o (.text); - build/u/src/libultra/audio/bnkf.o (.text); - build/u/src/libultra/audio/csplayer.o (.text); - build/u/src/libultra/audio/seqpsetbank.o (.text); - build/u/src/libultra/audio/cspgetstate.o (.text); - build/u/src/libultra/audio/cseq.o (.text); - build/u/src/libultra/audio/cspsetseq.o (.text); - build/u/src/libultra/audio/cspplay.o (.text); - build/u/src/libultra/audio/cspstop.o (.text); - build/u/src/libultra/audio/cspsetvol.o (.text); - build/u/src/libultra/audio/event.o (.text); - build/u/src/libultra/audio/synaddplayer.o (.text); - build/u/src/libultra/audio/synallocvoice.o (.text); - build/u/src/libultra/audio/synsetvol.o (.text); - build/u/src/libultra/audio/synstartvoice.o (.text); - build/u/src/libultra/audio/synsetpan.o (.text); - build/u/src/libultra/audio/synsetpitch.o (.text); - build/u/src/libultra/audio/synsetfxmix.o (.text); - build/u/src/libultra/audio/synstopvoice.o (.text); - build/u/src/libultra/audio/synfreevoice.o (.text); - build/u/src/libultra/audio/cents2ratio.o (.text); - build/u/src/libultra/io/piread.o (.text); - build/u/src/libultra/libc/string.o (.text); - build/u/src/libultrare/libc/xprintf.o (.text); - build/u/src/libultrare/io/pimgr.o (.text); - build/u/src/libultrare/io/pfsinit.o (.text); - build/u/src/libultrare/io/controller.o (.text); - build/u/src/libultra/io/contquery.o (.text); - build/u/src/libultrare/io/contreaddata.o (.text); - build/u/src/libultrare/io/conteepprobe.o (.text); - build/u/src/libultrare/io/conteepread.o (.text); - build/u/src/libultrare/io/conteepwrite.o (.text); - build/u/src/libultrare/io/conteeplongread.o (.text); - build/u/src/libultrare/io/conteeplongwrite.o (.text); - build/u/src/libultrare/io/pfsisplug.o (.text); - build/u/src/libultra/io/siacs.o (.text); - build/u/src/libultra/io/sirawdma.o (.text); - build/u/src/libultra/io/crc.o (.text); - build/u/src/libultrare/io/contramwrite.o (.text); - build/u/src/libultrare/io/contramread.o (.text); - build/u/src/libultra/gu/align.o (.text); - build/u/src/libultra/gu/ortho.o (.text); - build/u/src/libultra/gu/coss.o (.text); - build/u/src/libultra/gu/sins.o (.text); - build/u/src/libultra/gu/translate.o (.text); - build/u/src/libultra/libc/bcmp.o (.text); - build/u/src/libultra/gu/scale.o (.text); - build/u/src/libultra/gu/lookatref.o (.text); - build/u/src/libultra/gu/lookat.o (.text); - build/u/src/libultra/gu/rotate.o (.text); - build/u/src/libultra/libc/llcvt.o (.text); /*edited*/ - build/u/src/libultra/os/setsr.o (.text); - build/u/src/libultra/os/getsr.o (.text); - build/u/src/libultra/io/sirawread.o (.text); - build/u/src/libultra/io/sirawwrite.o (.text); - build/u/src/libultra/io/pirawread.o (.text); - build/u/src/libultra/libc/bzero.o (.text); - build/u/src/libultra/os/sethwinterrupt.o (.text); - build/u/src/libultrare/io/leointerrupt.o (.text); - build/u/src/libultra/os/interrupt.o (.text); - build/u/src/libultra/os/timerintr.o (.text); - build/u/src/libultra/os/kdebugserver.o (.text); - build/u/src/libultra/os/getthreadpri.o (.text); - build/u/src/libultrare/io/vi.o (.text); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.text); - build/u/src/libultra/io/viswapcontext.o (.text); - build/u/src/libultra/io/spgetstat.o (.text); - build/u/src/libultra/io/spsetstat.o (.text); - build/u/src/libultra/io/spsetpc.o (.text); - build/u/src/libultra/io/sprawdma.o (.text); - build/u/src/libultra/io/sp.o (.text); - build/u/src/libultra/io/dp.o (.text); - build/u/src/libultra/os/probetlb.o (.text); - build/u/src/libultra/audio/syndelete.o (.text); - build/u/src/libultra/io/ai.o (.text); - build/u/src/libultrare/audio/drvrNew.o (.text); - build/u/src/libultra/audio/synallocfx.o (.text); - build/u/src/libultra/audio/mainbus.o (.text); - build/u/src/libultra/audio/load.o (.text); - build/u/src/libultra/audio/resample.o (.text); - build/u/src/libultrare/audio/env.o (.text); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.text); - build/u/src/libultra/audio/save.o (.text); - build/u/src/libultra/os/jammesg.o (.text); - build/u/src/libultra/io/pigetcmdq.o (.text); - build/u/src/libultra/gu/cosf.o (.text); /*edited*/ - build/u/src/libultra/gu/sinf.o (.text); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.text); - build/u/src/libultra/audio/seqplayer.o (.text); - build/u/src/libultra/audio/synstartvoiceparam.o (.text); - build/u/src/libultra/audio/copy.o (.text); - build/u/src/libultra/io/piacs.o (.text); - build/u/src/libultra/libc/xlitob.o (.text); - build/u/src/libultra/libc/xldtob.o (.text); - build/u/src/libultrare/io/epirawdma.o (.text); - build/u/src/libultrare/io/devmgr.o (.text); - build/u/src/libultra/io/contpfs.o (.text); - build/u/src/libultra/io/si.o (.text); - build/u/src/libultra/gu/normalize.o (.text); - build/u/src/libultra/gu/sqrtf.o (.text); - build/u/src/libultrare/io/leodiskinit.o (.text); - build/u/src/libultra/os/setcompare.o (.text); - build/u/src/libultra/audio/filter.o (.text); - build/u/src/libultrare/audio/reverb.o (.text); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.text); /*edited*/ - build/u/src/libultra/audio/seq.o (.text); - build/u/src/libultra/audio/synsetpriority.o (.text); - build/u/src/libultra/libc/ldiv.o (.text); - build/u/src/libultra/os/resetglobalintmask.o (.text); - build/u/src/libultrare/io/epirawwrite.o (.text); - build/u/src/libultra/io/vimodentsclan1.o (.text); - build/u/src/libultrare/io/vimodepallan1.o (.text); - build/u/src/libultrare/ultra80069080.o (.text); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.text);*/ + BEGIN_SEG(code, _startSegmentRomEnd, 0x70000450) SUBALIGN(16) + { +#include "ld/lib.text.ld.inc" } END_SEG(code) BEGIN_SEG(cdata, _codeSegmentRomEnd, _codeSegmentRomEnd) { - build/u/src/c_data_filler.o (.data); + build/OUTCODE/src/c_data_filler.o (.data); } END_SEG(cdata) @@ -267,8 +72,8 @@ SECTIONS /* (0x70200000, 0x702029BC, 0x701CCA70), // 033590-035F4D [29BD] */ BEGIN_SEG(inflate, _cdataSegmentRomEnd, 0x70200000) { - build/u/src/inflate/inflate.o (.text); - build/u/src/inflate/inflate.o (.data); + build/OUTCODE/src/inflate/inflate.o (.text); + build/OUTCODE/src/inflate/inflate.o (.data); } END_SEG(inflate) @@ -279,175 +84,75 @@ SECTIONS /* (0x7F000000, 0x7F0E2D50, 0x7EFCB4D0), // 034B30-117881 [E2D51] */ BEGIN_SEG(game, _inflateSegmentRomEnd, 0x7F000000) { - build/u/src/game/initgamedata.o (.text); - build/u/src/game/initweaponanigroups.o (.text); - build/u/src/game/initactorpropstuff.o (.text); - build/u/src/game/initnull_0009D0.o (.text); - build/u/src/game/initunk_0009E0.o (.text); - build/u/src/game/initanitable.o (.text); - build/u/src/game/initplayergaitobject.o (.text); - build/u/src/game/setguscale.o (.text); - build/u/src/game/initnull_000BC0.o (.text); - build/u/src/game/initimages.o (.text); - build/u/src/game/initintromatrices.o (.text); - build/u/src/game/initmenus.o (.text); - build/u/src/game/initguards.o (.text); - build/u/src/game/deb_loadallmodels.o (.text); - build/u/src/game/initobjects.o (.text); - build/u/src/game/prop.o (.text); - build/u/src/game/objective.o (.text); - build/u/src/game/ejectedcartridges.o (.text); - build/u/src/game/initBondDATA.o (.text); - build/u/src/game/initunk_005450.o (.text); - build/u/src/game/initunk_005520.o (.text); - build/u/src/game/bondview_r.o (.text); - build/u/src/game/inititemslots.o (.text); - build/u/src/game/initBondDATAdefaults.o (.text); - build/u/src/game/initpathtablesomething.o (.text); - build/u/src/game/initpathtablelinks.o (.text); - build/u/src/game/initexplosioncasing.o (.text); - build/u/src/game/alloc_window_pieces.o (.text); - build/u/src/game/initunk_007290.o (.text); - build/u/src/game/initcheattext.o (.text); - build/u/src/game/initmttex.o (.text); - build/u/src/game/cleanup_guard_data.o (.text); - build/u/src/game/cleanup_object_sounds.o (.text); - build/u/src/game/cleanup_alarms.o (.text); - build/u/src/game/cleanup_objects.o (.text); - build/u/src/game/cleanup_objectives.o (.text); - build/u/src/game/cleanupSFXRelated.o (.text); - build/u/src/game/playerstats_007770.o (.text); - build/u/src/game/cleanexplosions.o (.text); - build/u/src/game/cleanwindowpieces.o (.text); - build/u/src/game/null_007970.o (.text); - build/u/src/game/cleanplayersound.o (.text); - build/u/src/game/title.o (.text); - build/u/src/game/front.o (.text); - build/u/src/game/unk_01B0E0.o (.text); - build/u/src/game/unk_01B240.o (.text); - build/u/src/game/unk_01BAE0.o (.text); - build/u/src/game/blood_animation.o (.text); - build/u/src/game/blood_decrypt.o (.text); - build/u/src/game/file.o (.text); - build/u/src/game/file2.o (.text); - build/u/src/game/chr.o (.text); - build/u/src/game/chrlv.o (.text); - build/u/src/game/chrai.o (.text); - build/u/src/game/chrprop.o (.text); - build/u/src/game/chrobjhandler.o (.text); - build/u/src/game/loadobjectmodel.o (.text); - build/u/src/game/objective_status.o (.text); - build/u/src/game/objective_status2.o (.text); - build/u/src/game/math_sincos.o (.text); - build/u/src/game/matrixmath.o (.text); - build/u/src/game/math_unk_05A9E0.o (.text); - build/u/src/game/math_atan2f.o (.text); - build/u/src/game/math_asinacos.o (.text); - build/u/src/game/math_asinfacosf.o (.text); - build/u/src/game/matrixmath_misc.o (.text); - build/u/src/game/quaternion.o (.text); - build/u/src/game/math_floor.o (.text); - build/u/src/game/math_ceil.o (.text); - build/u/src/game/gun.o (.text); - build/u/src/game/bondwalk2.o (.text); - build/u/src/game/objecthandler.o (.text); - build/u/src/game/objecthandler_1.o (.text); - build/u/src/game/objecthandler_2.o (.text); - build/u/src/game/othermodemicrocode.o (.text); - build/u/src/game/bondview.o (.text); - build/u/src/game/bondinv.o (.text); - build/u/src/game/bondhead.o (.text); - build/u/src/game/debugmenu_08FE00.o (.text); - build/u/src/game/debugmenu_handler.o (.text); - build/u/src/game/unk_091080.o (.text); - build/u/src/game/chraidata.o (.text); - build/u/src/game/pobjdata.o (.text); - build/u/src/game/gobjdata.o (.text); - build/u/src/game/gobjdata2.o (.text); - build/u/src/game/cobjdata.o (.text); - build/u/src/game/cheat_buttons.o (.text); - build/u/src/game/unk_092890.o (.text); - build/u/src/game/unk_092E50.o (.text); - build/u/src/game/player.o (.text); - build/u/src/game/player_2.o (.text); - build/u/src/game/crc.o (.text); - build/u/src/game/chrObjRandom.o (.text); - build/u/src/game/unk_09B7A0.o (.text); - build/u/src/game/explosions.o (.text); - build/u/src/game/unk_0A1DA0.o (.text); - build/u/src/game/watch.o (.text); - build/u/src/game/textrelated.o (.text); - build/u/src/game/stan.o (.text); - build/u/src/game/unk_0B3200.o (.text); - build/u/src/game/bg.o (.text); - build/u/src/game/bg2.o (.text); - build/u/src/game/fog.o (.text); - build/u/src/game/lightfixture.o (.text); - build/u/src/game/unk_0BC530.o (.text); - build/u/src/game/ob.o (.text); - build/u/src/game/dyn.o (.text); - build/u/src/game/lvl.o (.text); - build/u/src/game/ramromreplay.o (.text); - build/u/src/game/unk_0C0A70.o (.text); - build/u/src/game/mp_music.o (.text); - build/u/src/game/lvl_text.o (.text); - build/u/src/game/mp_watch.o (.text); - build/u/src/game/radar.o (.text); - build/u/src/game/mp_weapon.o (.text); - build/u/src/game/image.o (.text); - build/u/src/game/image_bank.o (.text); - build/u/src/game/unk_0CC4C0.o (.text); - build/u/src/game/decompress.o (.text); - build/u/src/game/zlib.o (.text); - build/u/src/game/rsp.o (.text); - build/u/src/game/indy_comms.o (.text); - build/u/src/game/indy_commands.o (.text); - build/u/src/game/game_debug.o (.text); - build/u/src/game/compiletime.o (.text); - build/u/src/game/unk_0D1AC0.o (.text); - build/u/src/game/viewport.o (.text); - build/u/src/game/music_0D2720.o (.text); - build/u/src/game/spectrum.o (.text); +#include "ld/game.text.ld.inc" } END_SEG(game) - BEGIN_SEG(romfiles_117880, _gameSegmentRomEnd, _romfiles_117880SegmentRomStart) + BEGIN_SEG(fontdl, _gameSegmentRomEnd, 0x01000000) { - build/u/assets/romfiles.o (.data); + build/OUTCODE/assets/font_dl.o (.data); } - END_SEG(romfiles_117880) + END_SEG(fontdl) - - BEGIN_SEG(romfiles_29d160, _romfiles_117880SegmentRomEnd, 0x02000000) + BEGIN_SEG(jfontchardata, _fontdlSegmentRomEnd, 0x00000000) { - build/u/assets/GlobalImageTable.o (.data); + build/OUTCODE/assets/font_chardataj.o (.data); } - END_SEG(romfiles_29d160) + END_SEG(jfontchardata) - - BEGIN_SEG(romfiles_29e560, _G_I_TSegmentRomEnd, _romfiles2SegmentRomStart) + BEGIN_SEG(efontchardata, _jfontchardataSegmentRomEnd, 0x00000000) { - build/u/assets/romfiles2.o (.data); + build/OUTCODE/assets/font_chardatae.o (.data); } - END_SEG(romfiles_29e560) - - BEGIN_SEG(ramromfiles, romfiles_29e560SegmentRomEnd, _romfiles2SegmentRomStart) + END_SEG(efontchardata) + + BEGIN_SEG(animation_entries, _efontchardataSegmentRomEnd, 0x00000000) { - build/u/assets/ramrom/ramrom.o (.data); + build/OUTCODE/assets/animationtable_entries.o(.data); + } + END_SEG(animation_entries) + + BEGIN_SEG(animation_data, _animation_entriesSegmentRomEnd, 0x00000000) + { + build/OUTCODE/assets/animationtable_data.o(.data); + } + END_SEG(animation_data) + + BEGIN_SEG(Globalimagetable, _animation_dataSegmentRomEnd, 0x02000000) + { + build/OUTCODE/assets/GlobalImageTable.o (.data); + } + END_SEG(Globalimagetable) + + BEGIN_SEG(Globalimagetablecmdblk, _GlobalimagetableSegmentRomEnd, 0x02000000) + { + build/OUTCODE/assets/Globalimagetable_commandblock.o (.data); + } + END_SEG(Globalimagetablecmdblk) + + BEGIN_SEG(romfiles2, _GlobalimagetablecmdblkSegmentRomEnd, _romfiles2SegmentRomStart) + { + build/OUTCODE/assets/romfiles2.o (.data); + } + END_SEG(romfiles2) + + BEGIN_SEG(ramromfiles, _romfiles2SegmentRomEnd, _ramromfilesSegmentRomStart) + { + build/OUTCODE/assets/ramrom/ramrom.o (.data); } END_SEG(ramromfiles) - BEGIN_SEG(fonttablectlsmall1, _romfiles2SegmentRomEnd, _fonttablectlsmall1SegmentRomStart) + BEGIN_SEG(fonttablectlsmall1, _ramromfilesSegmentRomEnd, _fonttablectlsmall1SegmentRomStart) { - build/u/assets/font/font_first_font_table_controller_small.o (.data); + build/OUTCODE/assets/font/font_first_font_table_controller_small.o (.data); } END_SEG(fonttablectlsmall1) BEGIN_SEG(fonttablectllarge1, _fonttablectlsmall1SegmentRomEnd, _fonttablectllarge1SegmentRomStart) { - build/u/assets/font/font_first_font_table_controller_large.o (.data); + build/OUTCODE/assets/font/font_first_font_table_controller_large.o (.data); } END_SEG(fonttablectllarge1) @@ -455,12 +160,12 @@ SECTIONS BEGIN_SEG(musicfiles, _fonttablectllarge1SegmentRomEnd, _musicfilesSegmentRomStart) { - build/u/assets/music/sfx.ctl.o (.data); - build/u/assets/music/sfx.tbl.o (.data); - build/u/assets/music/instruments.ctl.o (.data); - build/u/assets/music/instruments.tbl.o (.data); - build/u/assets/music/music.o (.music); - build/u/assets/music/music.o (.musiccompressed); + build/OUTCODE/assets/music/sfx.ctl.o (.data); + build/OUTCODE/assets/music/sfx.tbl.o (.data); + build/OUTCODE/assets/music/instruments.ctl.o (.data); + build/OUTCODE/assets/music/instruments.tbl.o (.data); + build/OUTCODE/assets/music/music.o (.music); + build/OUTCODE/assets/music/music.o (.musiccompressed); } END_SEG(musicfiles) @@ -468,7 +173,7 @@ SECTIONS BEGIN_SEG(obseg, _musicfilesSegmentRomEnd, _obsegSegmentRomStart) { - build/u/assets/obseg/ob_seg.o (.data); + build/OUTCODE/assets/obseg/ob_seg.o (.data); } END_SEG(obseg) @@ -476,2708 +181,7 @@ SECTIONS BEGIN_SEG(images, _obsegSegmentRomEnd, _imagesSegmentRomStart) { - _image1_start = .; - build/u/assets/images/split/image1.o (.data); - _image1_end = .; - _image1_size = (_image1_end - _image1_start); - build/u/assets/images/split/image2.o (.data); - build/u/assets/images/split/image3.o (.data); - build/u/assets/images/split/image4.o (.data); - build/u/assets/images/split/image5.o (.data); - build/u/assets/images/split/image6.o (.data); - build/u/assets/images/split/image7.o (.data); - build/u/assets/images/split/image8.o (.data); - build/u/assets/images/split/image9.o (.data); - build/u/assets/images/split/image10.o (.data); - build/u/assets/images/split/image11.o (.data); - build/u/assets/images/split/image12.o (.data); - build/u/assets/images/split/image13.o (.data); - build/u/assets/images/split/image14.o (.data); - build/u/assets/images/split/image15.o (.data); - build/u/assets/images/split/image16.o (.data); - build/u/assets/images/split/image17.o (.data); - build/u/assets/images/split/image18.o (.data); - build/u/assets/images/split/image19.o (.data); - build/u/assets/images/split/image20.o (.data); - build/u/assets/images/split/image21.o (.data); - build/u/assets/images/split/image22.o (.data); - build/u/assets/images/split/image23.o (.data); - build/u/assets/images/split/image24.o (.data); - build/u/assets/images/split/image25.o (.data); - build/u/assets/images/split/image26.o (.data); - build/u/assets/images/split/image27.o (.data); - build/u/assets/images/split/image28.o (.data); - build/u/assets/images/split/image29.o (.data); - build/u/assets/images/split/image30.o (.data); - build/u/assets/images/split/image31.o (.data); - build/u/assets/images/split/image32.o (.data); - build/u/assets/images/split/image33.o (.data); - build/u/assets/images/split/image34.o (.data); - build/u/assets/images/split/image35.o (.data); - build/u/assets/images/split/image36.o (.data); - build/u/assets/images/split/image37.o (.data); - build/u/assets/images/split/image38.o (.data); - build/u/assets/images/split/image39.o (.data); - build/u/assets/images/split/image40.o (.data); - build/u/assets/images/split/image41.o (.data); - build/u/assets/images/split/image42.o (.data); - build/u/assets/images/split/image43.o (.data); - build/u/assets/images/split/image44.o (.data); - build/u/assets/images/split/image45.o (.data); - build/u/assets/images/split/image46.o (.data); - build/u/assets/images/split/image47.o (.data); - build/u/assets/images/split/image48.o (.data); - build/u/assets/images/split/image49.o (.data); - build/u/assets/images/split/image50.o (.data); - build/u/assets/images/split/image51.o (.data); - build/u/assets/images/split/image52.o (.data); - build/u/assets/images/split/image53.o (.data); - build/u/assets/images/split/image54.o (.data); - build/u/assets/images/split/image55.o (.data); - build/u/assets/images/split/image56.o (.data); - build/u/assets/images/split/image57.o (.data); - build/u/assets/images/split/image58.o (.data); - build/u/assets/images/split/image59.o (.data); - build/u/assets/images/split/image60.o (.data); - build/u/assets/images/split/image61.o (.data); - build/u/assets/images/split/image62.o (.data); - build/u/assets/images/split/image63.o (.data); - build/u/assets/images/split/image64.o (.data); - build/u/assets/images/split/image65.o (.data); - build/u/assets/images/split/image66.o (.data); - build/u/assets/images/split/image67.o (.data); - build/u/assets/images/split/image68.o (.data); - build/u/assets/images/split/image69.o (.data); - build/u/assets/images/split/image70.o (.data); - build/u/assets/images/split/image71.o (.data); - build/u/assets/images/split/image72.o (.data); - build/u/assets/images/split/image73.o (.data); - build/u/assets/images/split/image74.o (.data); - build/u/assets/images/split/image75.o (.data); - build/u/assets/images/split/image76.o (.data); - build/u/assets/images/split/image77.o (.data); - build/u/assets/images/split/image78.o (.data); - build/u/assets/images/split/image79.o (.data); - build/u/assets/images/split/image80.o (.data); - build/u/assets/images/split/image81.o (.data); - build/u/assets/images/split/image82.o (.data); - build/u/assets/images/split/image83.o (.data); - build/u/assets/images/split/image84.o (.data); - build/u/assets/images/split/image85.o (.data); - build/u/assets/images/split/image86.o (.data); - build/u/assets/images/split/image87.o (.data); - build/u/assets/images/split/image88.o (.data); - build/u/assets/images/split/image89.o (.data); - build/u/assets/images/split/image90.o (.data); - build/u/assets/images/split/image91.o (.data); - build/u/assets/images/split/image92.o (.data); - build/u/assets/images/split/image93.o (.data); - build/u/assets/images/split/image94.o (.data); - build/u/assets/images/split/image95.o (.data); - build/u/assets/images/split/image96.o (.data); - build/u/assets/images/split/image97.o (.data); - build/u/assets/images/split/image98.o (.data); - build/u/assets/images/split/image99.o (.data); - build/u/assets/images/split/image100.o (.data); - build/u/assets/images/split/image101.o (.data); - build/u/assets/images/split/image102.o (.data); - build/u/assets/images/split/image103.o (.data); - build/u/assets/images/split/image104.o (.data); - build/u/assets/images/split/image105.o (.data); - build/u/assets/images/split/image106.o (.data); - build/u/assets/images/split/image107.o (.data); - build/u/assets/images/split/image108.o (.data); - build/u/assets/images/split/image109.o (.data); - build/u/assets/images/split/image110.o (.data); - build/u/assets/images/split/image111.o (.data); - build/u/assets/images/split/image112.o (.data); - build/u/assets/images/split/image113.o (.data); - build/u/assets/images/split/image114.o (.data); - build/u/assets/images/split/image115.o (.data); - build/u/assets/images/split/image116.o (.data); - build/u/assets/images/split/image117.o (.data); - build/u/assets/images/split/image118.o (.data); - build/u/assets/images/split/image119.o (.data); - build/u/assets/images/split/image120.o (.data); - build/u/assets/images/split/image121.o (.data); - build/u/assets/images/split/image122.o (.data); - build/u/assets/images/split/image123.o (.data); - build/u/assets/images/split/image124.o (.data); - build/u/assets/images/split/image125.o (.data); - build/u/assets/images/split/image126.o (.data); - build/u/assets/images/split/image127.o (.data); - build/u/assets/images/split/image128.o (.data); - build/u/assets/images/split/image129.o (.data); - build/u/assets/images/split/image130.o (.data); - build/u/assets/images/split/image131.o (.data); - build/u/assets/images/split/image132.o (.data); - build/u/assets/images/split/image133.o (.data); - build/u/assets/images/split/image134.o (.data); - build/u/assets/images/split/image135.o (.data); - build/u/assets/images/split/image136.o (.data); - build/u/assets/images/split/image137.o (.data); - build/u/assets/images/split/image138.o (.data); - build/u/assets/images/split/image139.o (.data); - build/u/assets/images/split/image140.o (.data); - build/u/assets/images/split/image141.o (.data); - build/u/assets/images/split/image142.o (.data); - build/u/assets/images/split/image143.o (.data); - build/u/assets/images/split/image144.o (.data); - build/u/assets/images/split/image145.o (.data); - build/u/assets/images/split/image146.o (.data); - build/u/assets/images/split/image147.o (.data); - build/u/assets/images/split/image148.o (.data); - build/u/assets/images/split/image149.o (.data); - build/u/assets/images/split/image150.o (.data); - build/u/assets/images/split/image151.o (.data); - build/u/assets/images/split/image152.o (.data); - build/u/assets/images/split/image153.o (.data); - build/u/assets/images/split/image154.o (.data); - build/u/assets/images/split/image155.o (.data); - build/u/assets/images/split/image156.o (.data); - build/u/assets/images/split/image157.o (.data); - build/u/assets/images/split/image158.o (.data); - build/u/assets/images/split/image159.o (.data); - build/u/assets/images/split/image160.o (.data); - build/u/assets/images/split/image161.o (.data); - build/u/assets/images/split/image162.o (.data); - build/u/assets/images/split/image163.o (.data); - build/u/assets/images/split/image164.o (.data); - build/u/assets/images/split/image165.o (.data); - build/u/assets/images/split/image166.o (.data); - build/u/assets/images/split/image167.o (.data); - build/u/assets/images/split/image168.o (.data); - build/u/assets/images/split/image169.o (.data); - build/u/assets/images/split/image170.o (.data); - build/u/assets/images/split/image171.o (.data); - build/u/assets/images/split/image172.o (.data); - build/u/assets/images/split/image173.o (.data); - build/u/assets/images/split/image174.o (.data); - build/u/assets/images/split/image175.o (.data); - build/u/assets/images/split/image176.o (.data); - build/u/assets/images/split/image177.o (.data); - build/u/assets/images/split/image178.o (.data); - build/u/assets/images/split/image179.o (.data); - build/u/assets/images/split/image180.o (.data); - build/u/assets/images/split/image181.o (.data); - build/u/assets/images/split/image182.o (.data); - build/u/assets/images/split/image183.o (.data); - build/u/assets/images/split/image184.o (.data); - build/u/assets/images/split/image185.o (.data); - build/u/assets/images/split/image186.o (.data); - build/u/assets/images/split/image187.o (.data); - build/u/assets/images/split/image188.o (.data); - build/u/assets/images/split/image189.o (.data); - build/u/assets/images/split/image190.o (.data); - build/u/assets/images/split/image191.o (.data); - build/u/assets/images/split/image192.o (.data); - build/u/assets/images/split/image193.o (.data); - build/u/assets/images/split/image194.o (.data); - build/u/assets/images/split/image195.o (.data); - build/u/assets/images/split/image196.o (.data); - build/u/assets/images/split/image197.o (.data); - build/u/assets/images/split/image198.o (.data); - build/u/assets/images/split/image199.o (.data); - build/u/assets/images/split/image200.o (.data); - build/u/assets/images/split/image201.o (.data); - build/u/assets/images/split/image202.o (.data); - build/u/assets/images/split/image203.o (.data); - build/u/assets/images/split/image204.o (.data); - build/u/assets/images/split/image205.o (.data); - build/u/assets/images/split/image206.o (.data); - build/u/assets/images/split/image207.o (.data); - build/u/assets/images/split/image208.o (.data); - build/u/assets/images/split/image209.o (.data); - build/u/assets/images/split/image210.o (.data); - build/u/assets/images/split/image211.o (.data); - build/u/assets/images/split/image212.o (.data); - build/u/assets/images/split/image213.o (.data); - build/u/assets/images/split/image214.o (.data); - build/u/assets/images/split/image215.o (.data); - build/u/assets/images/split/image216.o (.data); - build/u/assets/images/split/image217.o (.data); - build/u/assets/images/split/image218.o (.data); - build/u/assets/images/split/image219.o (.data); - build/u/assets/images/split/image220.o (.data); - build/u/assets/images/split/image221.o (.data); - build/u/assets/images/split/image222.o (.data); - build/u/assets/images/split/image223.o (.data); - build/u/assets/images/split/image224.o (.data); - build/u/assets/images/split/image225.o (.data); - build/u/assets/images/split/image226.o (.data); - build/u/assets/images/split/image227.o (.data); - build/u/assets/images/split/image228.o (.data); - build/u/assets/images/split/image229.o (.data); - build/u/assets/images/split/image230.o (.data); - build/u/assets/images/split/image231.o (.data); - build/u/assets/images/split/image232.o (.data); - build/u/assets/images/split/image233.o (.data); - build/u/assets/images/split/image234.o (.data); - build/u/assets/images/split/image235.o (.data); - build/u/assets/images/split/image236.o (.data); - build/u/assets/images/split/image237.o (.data); - build/u/assets/images/split/image238.o (.data); - build/u/assets/images/split/image239.o (.data); - build/u/assets/images/split/image240.o (.data); - build/u/assets/images/split/image241.o (.data); - build/u/assets/images/split/image242.o (.data); - build/u/assets/images/split/image243.o (.data); - build/u/assets/images/split/image244.o (.data); - build/u/assets/images/split/image245.o (.data); - build/u/assets/images/split/image246.o (.data); - build/u/assets/images/split/image247.o (.data); - build/u/assets/images/split/image248.o (.data); - build/u/assets/images/split/image249.o (.data); - build/u/assets/images/split/image250.o (.data); - build/u/assets/images/split/image251.o (.data); - build/u/assets/images/split/image252.o (.data); - build/u/assets/images/split/image253.o (.data); - build/u/assets/images/split/image254.o (.data); - build/u/assets/images/split/image255.o (.data); - build/u/assets/images/split/image256.o (.data); - build/u/assets/images/split/image257.o (.data); - build/u/assets/images/split/image258.o (.data); - build/u/assets/images/split/image259.o (.data); - build/u/assets/images/split/image260.o (.data); - build/u/assets/images/split/image261.o (.data); - build/u/assets/images/split/image262.o (.data); - build/u/assets/images/split/image263.o (.data); - build/u/assets/images/split/image264.o (.data); - build/u/assets/images/split/image265.o (.data); - build/u/assets/images/split/image266.o (.data); - build/u/assets/images/split/image267.o (.data); - build/u/assets/images/split/image268.o (.data); - build/u/assets/images/split/image269.o (.data); - build/u/assets/images/split/image270.o (.data); - build/u/assets/images/split/image271.o (.data); - build/u/assets/images/split/image272.o (.data); - build/u/assets/images/split/image273.o (.data); - build/u/assets/images/split/image274.o (.data); - build/u/assets/images/split/image275.o (.data); - build/u/assets/images/split/image276.o (.data); - build/u/assets/images/split/image277.o (.data); - build/u/assets/images/split/image278.o (.data); - build/u/assets/images/split/image279.o (.data); - build/u/assets/images/split/image280.o (.data); - build/u/assets/images/split/image281.o (.data); - build/u/assets/images/split/image282.o (.data); - build/u/assets/images/split/image283.o (.data); - build/u/assets/images/split/image284.o (.data); - build/u/assets/images/split/image285.o (.data); - build/u/assets/images/split/image286.o (.data); - build/u/assets/images/split/image287.o (.data); - build/u/assets/images/split/image288.o (.data); - build/u/assets/images/split/image289.o (.data); - build/u/assets/images/split/image290.o (.data); - build/u/assets/images/split/image291.o (.data); - build/u/assets/images/split/image292.o (.data); - build/u/assets/images/split/image293.o (.data); - build/u/assets/images/split/image294.o (.data); - build/u/assets/images/split/image295.o (.data); - build/u/assets/images/split/image296.o (.data); - build/u/assets/images/split/image297.o (.data); - build/u/assets/images/split/image298.o (.data); - build/u/assets/images/split/image299.o (.data); - build/u/assets/images/split/image300.o (.data); - build/u/assets/images/split/image301.o (.data); - build/u/assets/images/split/image302.o (.data); - build/u/assets/images/split/image303.o (.data); - build/u/assets/images/split/image304.o (.data); - build/u/assets/images/split/image305.o (.data); - build/u/assets/images/split/image306.o (.data); - build/u/assets/images/split/image307.o (.data); - build/u/assets/images/split/image308.o (.data); - build/u/assets/images/split/image309.o (.data); - build/u/assets/images/split/image310.o (.data); - build/u/assets/images/split/image311.o (.data); - build/u/assets/images/split/image312.o (.data); - build/u/assets/images/split/image313.o (.data); - build/u/assets/images/split/image314.o (.data); - build/u/assets/images/split/image315.o (.data); - build/u/assets/images/split/image316.o (.data); - build/u/assets/images/split/image317.o (.data); - build/u/assets/images/split/image318.o (.data); - build/u/assets/images/split/image319.o (.data); - build/u/assets/images/split/image320.o (.data); - build/u/assets/images/split/image321.o (.data); - build/u/assets/images/split/image322.o (.data); - build/u/assets/images/split/image323.o (.data); - build/u/assets/images/split/image324.o (.data); - build/u/assets/images/split/image325.o (.data); - build/u/assets/images/split/image326.o (.data); - build/u/assets/images/split/image327.o (.data); - build/u/assets/images/split/image328.o (.data); - build/u/assets/images/split/image329.o (.data); - build/u/assets/images/split/image330.o (.data); - build/u/assets/images/split/image331.o (.data); - build/u/assets/images/split/image332.o (.data); - build/u/assets/images/split/image333.o (.data); - build/u/assets/images/split/image334.o (.data); - build/u/assets/images/split/image335.o (.data); - build/u/assets/images/split/image336.o (.data); - build/u/assets/images/split/image337.o (.data); - build/u/assets/images/split/image338.o (.data); - build/u/assets/images/split/image339.o (.data); - build/u/assets/images/split/image340.o (.data); - build/u/assets/images/split/image341.o (.data); - build/u/assets/images/split/image342.o (.data); - build/u/assets/images/split/image343.o (.data); - build/u/assets/images/split/image344.o (.data); - build/u/assets/images/split/image345.o (.data); - build/u/assets/images/split/image346.o (.data); - build/u/assets/images/split/image347.o (.data); - build/u/assets/images/split/image348.o (.data); - build/u/assets/images/split/image349.o (.data); - build/u/assets/images/split/image350.o (.data); - build/u/assets/images/split/image351.o (.data); - build/u/assets/images/split/image352.o (.data); - build/u/assets/images/split/image353.o (.data); - build/u/assets/images/split/image354.o (.data); - build/u/assets/images/split/image355.o (.data); - build/u/assets/images/split/image356.o (.data); - build/u/assets/images/split/image357.o (.data); - build/u/assets/images/split/image358.o (.data); - build/u/assets/images/split/image359.o (.data); - build/u/assets/images/split/image360.o (.data); - build/u/assets/images/split/image361.o (.data); - build/u/assets/images/split/image362.o (.data); - build/u/assets/images/split/image363.o (.data); - build/u/assets/images/split/image364.o (.data); - build/u/assets/images/split/image365.o (.data); - build/u/assets/images/split/image366.o (.data); - build/u/assets/images/split/image367.o (.data); - build/u/assets/images/split/image368.o (.data); - build/u/assets/images/split/image369.o (.data); - build/u/assets/images/split/image370.o (.data); - build/u/assets/images/split/image371.o (.data); - build/u/assets/images/split/image372.o (.data); - build/u/assets/images/split/image373.o (.data); - build/u/assets/images/split/image374.o (.data); - build/u/assets/images/split/image375.o (.data); - build/u/assets/images/split/image376.o (.data); - build/u/assets/images/split/image377.o (.data); - build/u/assets/images/split/image378.o (.data); - build/u/assets/images/split/image379.o (.data); - build/u/assets/images/split/image380.o (.data); - build/u/assets/images/split/image381.o (.data); - build/u/assets/images/split/image382.o (.data); - build/u/assets/images/split/image383.o (.data); - build/u/assets/images/split/image384.o (.data); - build/u/assets/images/split/image385.o (.data); - build/u/assets/images/split/image386.o (.data); - build/u/assets/images/split/image387.o (.data); - build/u/assets/images/split/image388.o (.data); - build/u/assets/images/split/image389.o (.data); - build/u/assets/images/split/image390.o (.data); - build/u/assets/images/split/image391.o (.data); - build/u/assets/images/split/image392.o (.data); - build/u/assets/images/split/image393.o (.data); - build/u/assets/images/split/image394.o (.data); - build/u/assets/images/split/image395.o (.data); - build/u/assets/images/split/image396.o (.data); - build/u/assets/images/split/image397.o (.data); - build/u/assets/images/split/image398.o (.data); - build/u/assets/images/split/image399.o (.data); - build/u/assets/images/split/image400.o (.data); - build/u/assets/images/split/image401.o (.data); - build/u/assets/images/split/image402.o (.data); - build/u/assets/images/split/image403.o (.data); - build/u/assets/images/split/image404.o (.data); - build/u/assets/images/split/image405.o (.data); - build/u/assets/images/split/image406.o (.data); - build/u/assets/images/split/image407.o (.data); - build/u/assets/images/split/image408.o (.data); - build/u/assets/images/split/image409.o (.data); - build/u/assets/images/split/image410.o (.data); - build/u/assets/images/split/image411.o (.data); - build/u/assets/images/split/image412.o (.data); - build/u/assets/images/split/image413.o (.data); - build/u/assets/images/split/image414.o (.data); - build/u/assets/images/split/image415.o (.data); - build/u/assets/images/split/image416.o (.data); - build/u/assets/images/split/image417.o (.data); - build/u/assets/images/split/image418.o (.data); - build/u/assets/images/split/image419.o (.data); - build/u/assets/images/split/image420.o (.data); - build/u/assets/images/split/image421.o (.data); - build/u/assets/images/split/image422.o (.data); - build/u/assets/images/split/image423.o (.data); - build/u/assets/images/split/image424.o (.data); - build/u/assets/images/split/image425.o (.data); - build/u/assets/images/split/image426.o (.data); - build/u/assets/images/split/image427.o (.data); - build/u/assets/images/split/image428.o (.data); - build/u/assets/images/split/image429.o (.data); - build/u/assets/images/split/image430.o (.data); - build/u/assets/images/split/image431.o (.data); - build/u/assets/images/split/image432.o (.data); - build/u/assets/images/split/image433.o (.data); - build/u/assets/images/split/image434.o (.data); - build/u/assets/images/split/image435.o (.data); - build/u/assets/images/split/image436.o (.data); - build/u/assets/images/split/image437.o (.data); - build/u/assets/images/split/image438.o (.data); - build/u/assets/images/split/image439.o (.data); - build/u/assets/images/split/image440.o (.data); - build/u/assets/images/split/image441.o (.data); - build/u/assets/images/split/image442.o (.data); - build/u/assets/images/split/image443.o (.data); - build/u/assets/images/split/image444.o (.data); - build/u/assets/images/split/image445.o (.data); - build/u/assets/images/split/image446.o (.data); - build/u/assets/images/split/image447.o (.data); - build/u/assets/images/split/image448.o (.data); - build/u/assets/images/split/image449.o (.data); - build/u/assets/images/split/image450.o (.data); - build/u/assets/images/split/image451.o (.data); - build/u/assets/images/split/image452.o (.data); - build/u/assets/images/split/image453.o (.data); - build/u/assets/images/split/image454.o (.data); - build/u/assets/images/split/image455.o (.data); - build/u/assets/images/split/image456.o (.data); - build/u/assets/images/split/image457.o (.data); - build/u/assets/images/split/image458.o (.data); - build/u/assets/images/split/image459.o (.data); - build/u/assets/images/split/image460.o (.data); - build/u/assets/images/split/image461.o (.data); - build/u/assets/images/split/image462.o (.data); - build/u/assets/images/split/image463.o (.data); - build/u/assets/images/split/image464.o (.data); - build/u/assets/images/split/image465.o (.data); - build/u/assets/images/split/image466.o (.data); - build/u/assets/images/split/image467.o (.data); - build/u/assets/images/split/image468.o (.data); - build/u/assets/images/split/image469.o (.data); - build/u/assets/images/split/image470.o (.data); - build/u/assets/images/split/image471.o (.data); - build/u/assets/images/split/image472.o (.data); - build/u/assets/images/split/image473.o (.data); - build/u/assets/images/split/image474.o (.data); - build/u/assets/images/split/image475.o (.data); - build/u/assets/images/split/image476.o (.data); - build/u/assets/images/split/image477.o (.data); - build/u/assets/images/split/image478.o (.data); - build/u/assets/images/split/image479.o (.data); - build/u/assets/images/split/image480.o (.data); - build/u/assets/images/split/image481.o (.data); - build/u/assets/images/split/image482.o (.data); - build/u/assets/images/split/image483.o (.data); - build/u/assets/images/split/image484.o (.data); - build/u/assets/images/split/image485.o (.data); - build/u/assets/images/split/image486.o (.data); - build/u/assets/images/split/image487.o (.data); - build/u/assets/images/split/image488.o (.data); - build/u/assets/images/split/image489.o (.data); - build/u/assets/images/split/image490.o (.data); - build/u/assets/images/split/image491.o (.data); - build/u/assets/images/split/image492.o (.data); - build/u/assets/images/split/image493.o (.data); - build/u/assets/images/split/image494.o (.data); - build/u/assets/images/split/image495.o (.data); - build/u/assets/images/split/image496.o (.data); - build/u/assets/images/split/image497.o (.data); - build/u/assets/images/split/image498.o (.data); - build/u/assets/images/split/image499.o (.data); - build/u/assets/images/split/image500.o (.data); - build/u/assets/images/split/image501.o (.data); - build/u/assets/images/split/image502.o (.data); - build/u/assets/images/split/image503.o (.data); - build/u/assets/images/split/image504.o (.data); - build/u/assets/images/split/image505.o (.data); - build/u/assets/images/split/image506.o (.data); - build/u/assets/images/split/image507.o (.data); - build/u/assets/images/split/image508.o (.data); - build/u/assets/images/split/image509.o (.data); - build/u/assets/images/split/image510.o (.data); - build/u/assets/images/split/image511.o (.data); - build/u/assets/images/split/image512.o (.data); - build/u/assets/images/split/image513.o (.data); - build/u/assets/images/split/image514.o (.data); - build/u/assets/images/split/image515.o (.data); - build/u/assets/images/split/image516.o (.data); - build/u/assets/images/split/image517.o (.data); - build/u/assets/images/split/image518.o (.data); - build/u/assets/images/split/image519.o (.data); - build/u/assets/images/split/image520.o (.data); - build/u/assets/images/split/image521.o (.data); - build/u/assets/images/split/image522.o (.data); - build/u/assets/images/split/image523.o (.data); - build/u/assets/images/split/image524.o (.data); - build/u/assets/images/split/image525.o (.data); - build/u/assets/images/split/image526.o (.data); - build/u/assets/images/split/image527.o (.data); - build/u/assets/images/split/image528.o (.data); - build/u/assets/images/split/image529.o (.data); - build/u/assets/images/split/image530.o (.data); - build/u/assets/images/split/image531.o (.data); - build/u/assets/images/split/image532.o (.data); - build/u/assets/images/split/image533.o (.data); - build/u/assets/images/split/image534.o (.data); - build/u/assets/images/split/image535.o (.data); - build/u/assets/images/split/image536.o (.data); - build/u/assets/images/split/image537.o (.data); - build/u/assets/images/split/image538.o (.data); - build/u/assets/images/split/image539.o (.data); - build/u/assets/images/split/image540.o (.data); - build/u/assets/images/split/image541.o (.data); - build/u/assets/images/split/image542.o (.data); - build/u/assets/images/split/image543.o (.data); - build/u/assets/images/split/image544.o (.data); - build/u/assets/images/split/image545.o (.data); - build/u/assets/images/split/image546.o (.data); - build/u/assets/images/split/image547.o (.data); - build/u/assets/images/split/image548.o (.data); - build/u/assets/images/split/image549.o (.data); - build/u/assets/images/split/image550.o (.data); - build/u/assets/images/split/image551.o (.data); - build/u/assets/images/split/image552.o (.data); - build/u/assets/images/split/image553.o (.data); - build/u/assets/images/split/image554.o (.data); - build/u/assets/images/split/image555.o (.data); - build/u/assets/images/split/image556.o (.data); - build/u/assets/images/split/image557.o (.data); - build/u/assets/images/split/image558.o (.data); - build/u/assets/images/split/image559.o (.data); - build/u/assets/images/split/image560.o (.data); - build/u/assets/images/split/image561.o (.data); - build/u/assets/images/split/image562.o (.data); - build/u/assets/images/split/image563.o (.data); - build/u/assets/images/split/image564.o (.data); - build/u/assets/images/split/image565.o (.data); - build/u/assets/images/split/image566.o (.data); - build/u/assets/images/split/image567.o (.data); - build/u/assets/images/split/image568.o (.data); - build/u/assets/images/split/image569.o (.data); - build/u/assets/images/split/image570.o (.data); - build/u/assets/images/split/image571.o (.data); - build/u/assets/images/split/image572.o (.data); - build/u/assets/images/split/image573.o (.data); - build/u/assets/images/split/image574.o (.data); - build/u/assets/images/split/image575.o (.data); - build/u/assets/images/split/image576.o (.data); - build/u/assets/images/split/image577.o (.data); - build/u/assets/images/split/image578.o (.data); - build/u/assets/images/split/image579.o (.data); - build/u/assets/images/split/image580.o (.data); - build/u/assets/images/split/image581.o (.data); - build/u/assets/images/split/image582.o (.data); - build/u/assets/images/split/image583.o (.data); - build/u/assets/images/split/image584.o (.data); - build/u/assets/images/split/image585.o (.data); - build/u/assets/images/split/image586.o (.data); - build/u/assets/images/split/image587.o (.data); - build/u/assets/images/split/image588.o (.data); - build/u/assets/images/split/image589.o (.data); - build/u/assets/images/split/image590.o (.data); - build/u/assets/images/split/image591.o (.data); - build/u/assets/images/split/image592.o (.data); - build/u/assets/images/split/image593.o (.data); - build/u/assets/images/split/image594.o (.data); - build/u/assets/images/split/image595.o (.data); - build/u/assets/images/split/image596.o (.data); - build/u/assets/images/split/image597.o (.data); - build/u/assets/images/split/image598.o (.data); - build/u/assets/images/split/image599.o (.data); - build/u/assets/images/split/image600.o (.data); - build/u/assets/images/split/image601.o (.data); - build/u/assets/images/split/image602.o (.data); - build/u/assets/images/split/image603.o (.data); - build/u/assets/images/split/image604.o (.data); - build/u/assets/images/split/image605.o (.data); - build/u/assets/images/split/image606.o (.data); - build/u/assets/images/split/image607.o (.data); - build/u/assets/images/split/image608.o (.data); - build/u/assets/images/split/image609.o (.data); - build/u/assets/images/split/image610.o (.data); - build/u/assets/images/split/image611.o (.data); - build/u/assets/images/split/image612.o (.data); - build/u/assets/images/split/image613.o (.data); - build/u/assets/images/split/image614.o (.data); - build/u/assets/images/split/image615.o (.data); - build/u/assets/images/split/image616.o (.data); - build/u/assets/images/split/image617.o (.data); - build/u/assets/images/split/image618.o (.data); - build/u/assets/images/split/image619.o (.data); - build/u/assets/images/split/image620.o (.data); - build/u/assets/images/split/image621.o (.data); - build/u/assets/images/split/image622.o (.data); - build/u/assets/images/split/image623.o (.data); - build/u/assets/images/split/image624.o (.data); - build/u/assets/images/split/image625.o (.data); - build/u/assets/images/split/image626.o (.data); - build/u/assets/images/split/image627.o (.data); - build/u/assets/images/split/image628.o (.data); - build/u/assets/images/split/image629.o (.data); - build/u/assets/images/split/image630.o (.data); - build/u/assets/images/split/image631.o (.data); - build/u/assets/images/split/image632.o (.data); - build/u/assets/images/split/image633.o (.data); - build/u/assets/images/split/image634.o (.data); - build/u/assets/images/split/image635.o (.data); - build/u/assets/images/split/image636.o (.data); - build/u/assets/images/split/image637.o (.data); - build/u/assets/images/split/image638.o (.data); - build/u/assets/images/split/image639.o (.data); - build/u/assets/images/split/image640.o (.data); - build/u/assets/images/split/image641.o (.data); - build/u/assets/images/split/image642.o (.data); - build/u/assets/images/split/image643.o (.data); - build/u/assets/images/split/image644.o (.data); - build/u/assets/images/split/image645.o (.data); - build/u/assets/images/split/image646.o (.data); - build/u/assets/images/split/image647.o (.data); - build/u/assets/images/split/image648.o (.data); - build/u/assets/images/split/image649.o (.data); - build/u/assets/images/split/image650.o (.data); - build/u/assets/images/split/image651.o (.data); - build/u/assets/images/split/image652.o (.data); - build/u/assets/images/split/image653.o (.data); - build/u/assets/images/split/image654.o (.data); - build/u/assets/images/split/image655.o (.data); - build/u/assets/images/split/image656.o (.data); - build/u/assets/images/split/image657.o (.data); - build/u/assets/images/split/image658.o (.data); - build/u/assets/images/split/image659.o (.data); - build/u/assets/images/split/image660.o (.data); - build/u/assets/images/split/image661.o (.data); - build/u/assets/images/split/image662.o (.data); - build/u/assets/images/split/image663.o (.data); - build/u/assets/images/split/image664.o (.data); - build/u/assets/images/split/image665.o (.data); - build/u/assets/images/split/image666.o (.data); - build/u/assets/images/split/image667.o (.data); - build/u/assets/images/split/image668.o (.data); - build/u/assets/images/split/image669.o (.data); - build/u/assets/images/split/image670.o (.data); - build/u/assets/images/split/image671.o (.data); - build/u/assets/images/split/image672.o (.data); - build/u/assets/images/split/image673.o (.data); - build/u/assets/images/split/image674.o (.data); - build/u/assets/images/split/image675.o (.data); - build/u/assets/images/split/image676.o (.data); - build/u/assets/images/split/image677.o (.data); - build/u/assets/images/split/image678.o (.data); - build/u/assets/images/split/image679.o (.data); - build/u/assets/images/split/image680.o (.data); - build/u/assets/images/split/image681.o (.data); - build/u/assets/images/split/image682.o (.data); - build/u/assets/images/split/image683.o (.data); - build/u/assets/images/split/image684.o (.data); - build/u/assets/images/split/image685.o (.data); - build/u/assets/images/split/image686.o (.data); - build/u/assets/images/split/image687.o (.data); - build/u/assets/images/split/image688.o (.data); - build/u/assets/images/split/image689.o (.data); - build/u/assets/images/split/image690.o (.data); - build/u/assets/images/split/image691.o (.data); - build/u/assets/images/split/image692.o (.data); - build/u/assets/images/split/image693.o (.data); - build/u/assets/images/split/image694.o (.data); - build/u/assets/images/split/image695.o (.data); - build/u/assets/images/split/image696.o (.data); - build/u/assets/images/split/image697.o (.data); - build/u/assets/images/split/image698.o (.data); - build/u/assets/images/split/image699.o (.data); - build/u/assets/images/split/image700.o (.data); - build/u/assets/images/split/image701.o (.data); - build/u/assets/images/split/image702.o (.data); - build/u/assets/images/split/image703.o (.data); - build/u/assets/images/split/image704.o (.data); - build/u/assets/images/split/image705.o (.data); - build/u/assets/images/split/image706.o (.data); - build/u/assets/images/split/image707.o (.data); - build/u/assets/images/split/image708.o (.data); - build/u/assets/images/split/image709.o (.data); - build/u/assets/images/split/image710.o (.data); - build/u/assets/images/split/image711.o (.data); - build/u/assets/images/split/image712.o (.data); - build/u/assets/images/split/image713.o (.data); - build/u/assets/images/split/image714.o (.data); - build/u/assets/images/split/image715.o (.data); - build/u/assets/images/split/image716.o (.data); - build/u/assets/images/split/image717.o (.data); - build/u/assets/images/split/image718.o (.data); - build/u/assets/images/split/image719.o (.data); - build/u/assets/images/split/image720.o (.data); - build/u/assets/images/split/image721.o (.data); - build/u/assets/images/split/image722.o (.data); - build/u/assets/images/split/image723.o (.data); - build/u/assets/images/split/image724.o (.data); - build/u/assets/images/split/image725.o (.data); - build/u/assets/images/split/image726.o (.data); - build/u/assets/images/split/image727.o (.data); - build/u/assets/images/split/image728.o (.data); - build/u/assets/images/split/image729.o (.data); - build/u/assets/images/split/image730.o (.data); - build/u/assets/images/split/image731.o (.data); - build/u/assets/images/split/image732.o (.data); - build/u/assets/images/split/image733.o (.data); - build/u/assets/images/split/image734.o (.data); - build/u/assets/images/split/image735.o (.data); - build/u/assets/images/split/image736.o (.data); - build/u/assets/images/split/image737.o (.data); - build/u/assets/images/split/image738.o (.data); - build/u/assets/images/split/image739.o (.data); - build/u/assets/images/split/image740.o (.data); - build/u/assets/images/split/image741.o (.data); - build/u/assets/images/split/image742.o (.data); - build/u/assets/images/split/image743.o (.data); - build/u/assets/images/split/image744.o (.data); - build/u/assets/images/split/image745.o (.data); - build/u/assets/images/split/image746.o (.data); - build/u/assets/images/split/image747.o (.data); - build/u/assets/images/split/image748.o (.data); - build/u/assets/images/split/image749.o (.data); - build/u/assets/images/split/image750.o (.data); - build/u/assets/images/split/image751.o (.data); - build/u/assets/images/split/image752.o (.data); - build/u/assets/images/split/image753.o (.data); - build/u/assets/images/split/image754.o (.data); - build/u/assets/images/split/image755.o (.data); - build/u/assets/images/split/image756.o (.data); - build/u/assets/images/split/image757.o (.data); - build/u/assets/images/split/image758.o (.data); - build/u/assets/images/split/image759.o (.data); - build/u/assets/images/split/image760.o (.data); - build/u/assets/images/split/image761.o (.data); - build/u/assets/images/split/image762.o (.data); - build/u/assets/images/split/image763.o (.data); - build/u/assets/images/split/image764.o (.data); - build/u/assets/images/split/image765.o (.data); - build/u/assets/images/split/image766.o (.data); - build/u/assets/images/split/image767.o (.data); - build/u/assets/images/split/image768.o (.data); - build/u/assets/images/split/image769.o (.data); - build/u/assets/images/split/image770.o (.data); - build/u/assets/images/split/image771.o (.data); - build/u/assets/images/split/image772.o (.data); - build/u/assets/images/split/image773.o (.data); - build/u/assets/images/split/image774.o (.data); - build/u/assets/images/split/image775.o (.data); - build/u/assets/images/split/image776.o (.data); - build/u/assets/images/split/image777.o (.data); - build/u/assets/images/split/image778.o (.data); - build/u/assets/images/split/image779.o (.data); - build/u/assets/images/split/image780.o (.data); - build/u/assets/images/split/image781.o (.data); - build/u/assets/images/split/image782.o (.data); - build/u/assets/images/split/image783.o (.data); - build/u/assets/images/split/image784.o (.data); - build/u/assets/images/split/image785.o (.data); - build/u/assets/images/split/image786.o (.data); - build/u/assets/images/split/image787.o (.data); - build/u/assets/images/split/image788.o (.data); - build/u/assets/images/split/image789.o (.data); - build/u/assets/images/split/image790.o (.data); - build/u/assets/images/split/image791.o (.data); - build/u/assets/images/split/image792.o (.data); - build/u/assets/images/split/image793.o (.data); - build/u/assets/images/split/image794.o (.data); - build/u/assets/images/split/image795.o (.data); - build/u/assets/images/split/image796.o (.data); - build/u/assets/images/split/image797.o (.data); - build/u/assets/images/split/image798.o (.data); - build/u/assets/images/split/image799.o (.data); - build/u/assets/images/split/image800.o (.data); - build/u/assets/images/split/image801.o (.data); - build/u/assets/images/split/image802.o (.data); - build/u/assets/images/split/image803.o (.data); - build/u/assets/images/split/image804.o (.data); - build/u/assets/images/split/image805.o (.data); - build/u/assets/images/split/image806.o (.data); - build/u/assets/images/split/image807.o (.data); - build/u/assets/images/split/image808.o (.data); - build/u/assets/images/split/image809.o (.data); - build/u/assets/images/split/image810.o (.data); - build/u/assets/images/split/image811.o (.data); - build/u/assets/images/split/image812.o (.data); - build/u/assets/images/split/image813.o (.data); - build/u/assets/images/split/image814.o (.data); - build/u/assets/images/split/image815.o (.data); - build/u/assets/images/split/image816.o (.data); - build/u/assets/images/split/image817.o (.data); - build/u/assets/images/split/image818.o (.data); - build/u/assets/images/split/image819.o (.data); - build/u/assets/images/split/image820.o (.data); - build/u/assets/images/split/image821.o (.data); - build/u/assets/images/split/image822.o (.data); - build/u/assets/images/split/image823.o (.data); - build/u/assets/images/split/image824.o (.data); - build/u/assets/images/split/image825.o (.data); - build/u/assets/images/split/image826.o (.data); - build/u/assets/images/split/image827.o (.data); - build/u/assets/images/split/image828.o (.data); - build/u/assets/images/split/image829.o (.data); - build/u/assets/images/split/image830.o (.data); - build/u/assets/images/split/image831.o (.data); - build/u/assets/images/split/image832.o (.data); - build/u/assets/images/split/image833.o (.data); - build/u/assets/images/split/image834.o (.data); - build/u/assets/images/split/image835.o (.data); - build/u/assets/images/split/image836.o (.data); - build/u/assets/images/split/image837.o (.data); - build/u/assets/images/split/image838.o (.data); - build/u/assets/images/split/image839.o (.data); - build/u/assets/images/split/image840.o (.data); - build/u/assets/images/split/image841.o (.data); - build/u/assets/images/split/image842.o (.data); - build/u/assets/images/split/image843.o (.data); - build/u/assets/images/split/image844.o (.data); - build/u/assets/images/split/image845.o (.data); - build/u/assets/images/split/image846.o (.data); - build/u/assets/images/split/image847.o (.data); - build/u/assets/images/split/image848.o (.data); - build/u/assets/images/split/image849.o (.data); - build/u/assets/images/split/image850.o (.data); - build/u/assets/images/split/image851.o (.data); - build/u/assets/images/split/image852.o (.data); - build/u/assets/images/split/image853.o (.data); - build/u/assets/images/split/image854.o (.data); - build/u/assets/images/split/image855.o (.data); - build/u/assets/images/split/image856.o (.data); - build/u/assets/images/split/image857.o (.data); - build/u/assets/images/split/image858.o (.data); - build/u/assets/images/split/image859.o (.data); - build/u/assets/images/split/image860.o (.data); - build/u/assets/images/split/image861.o (.data); - build/u/assets/images/split/image862.o (.data); - build/u/assets/images/split/image863.o (.data); - build/u/assets/images/split/image864.o (.data); - build/u/assets/images/split/image865.o (.data); - build/u/assets/images/split/image866.o (.data); - build/u/assets/images/split/image867.o (.data); - build/u/assets/images/split/image868.o (.data); - build/u/assets/images/split/image869.o (.data); - build/u/assets/images/split/image870.o (.data); - build/u/assets/images/split/image871.o (.data); - build/u/assets/images/split/image872.o (.data); - build/u/assets/images/split/image873.o (.data); - build/u/assets/images/split/image874.o (.data); - build/u/assets/images/split/image875.o (.data); - build/u/assets/images/split/image876.o (.data); - build/u/assets/images/split/image877.o (.data); - build/u/assets/images/split/image878.o (.data); - build/u/assets/images/split/image879.o (.data); - build/u/assets/images/split/image880.o (.data); - build/u/assets/images/split/image881.o (.data); - build/u/assets/images/split/image882.o (.data); - build/u/assets/images/split/image883.o (.data); - build/u/assets/images/split/image884.o (.data); - build/u/assets/images/split/image885.o (.data); - build/u/assets/images/split/image886.o (.data); - build/u/assets/images/split/image887.o (.data); - build/u/assets/images/split/image888.o (.data); - build/u/assets/images/split/image889.o (.data); - build/u/assets/images/split/image890.o (.data); - build/u/assets/images/split/image891.o (.data); - build/u/assets/images/split/image892.o (.data); - build/u/assets/images/split/image893.o (.data); - build/u/assets/images/split/image894.o (.data); - build/u/assets/images/split/image895.o (.data); - build/u/assets/images/split/image896.o (.data); - build/u/assets/images/split/image897.o (.data); - build/u/assets/images/split/image898.o (.data); - build/u/assets/images/split/image899.o (.data); - build/u/assets/images/split/image900.o (.data); - build/u/assets/images/split/image901.o (.data); - build/u/assets/images/split/image902.o (.data); - build/u/assets/images/split/image903.o (.data); - build/u/assets/images/split/image904.o (.data); - build/u/assets/images/split/image905.o (.data); - build/u/assets/images/split/image906.o (.data); - build/u/assets/images/split/image907.o (.data); - build/u/assets/images/split/image908.o (.data); - build/u/assets/images/split/image909.o (.data); - build/u/assets/images/split/image910.o (.data); - build/u/assets/images/split/image911.o (.data); - build/u/assets/images/split/image912.o (.data); - build/u/assets/images/split/image913.o (.data); - build/u/assets/images/split/image914.o (.data); - build/u/assets/images/split/image915.o (.data); - build/u/assets/images/split/image916.o (.data); - build/u/assets/images/split/image917.o (.data); - build/u/assets/images/split/image918.o (.data); - build/u/assets/images/split/image919.o (.data); - build/u/assets/images/split/image920.o (.data); - build/u/assets/images/split/image921.o (.data); - build/u/assets/images/split/image922.o (.data); - build/u/assets/images/split/image923.o (.data); - build/u/assets/images/split/image924.o (.data); - build/u/assets/images/split/image925.o (.data); - build/u/assets/images/split/image926.o (.data); - build/u/assets/images/split/image927.o (.data); - build/u/assets/images/split/image928.o (.data); - build/u/assets/images/split/image929.o (.data); - build/u/assets/images/split/image930.o (.data); - build/u/assets/images/split/image931.o (.data); - build/u/assets/images/split/image932.o (.data); - build/u/assets/images/split/image933.o (.data); - build/u/assets/images/split/image934.o (.data); - build/u/assets/images/split/image935.o (.data); - build/u/assets/images/split/image936.o (.data); - build/u/assets/images/split/image937.o (.data); - build/u/assets/images/split/image938.o (.data); - build/u/assets/images/split/image939.o (.data); - build/u/assets/images/split/image940.o (.data); - build/u/assets/images/split/image941.o (.data); - build/u/assets/images/split/image942.o (.data); - build/u/assets/images/split/image943.o (.data); - build/u/assets/images/split/image944.o (.data); - build/u/assets/images/split/image945.o (.data); - build/u/assets/images/split/image946.o (.data); - build/u/assets/images/split/image947.o (.data); - build/u/assets/images/split/image948.o (.data); - build/u/assets/images/split/image949.o (.data); - build/u/assets/images/split/image950.o (.data); - build/u/assets/images/split/image951.o (.data); - build/u/assets/images/split/image952.o (.data); - build/u/assets/images/split/image953.o (.data); - build/u/assets/images/split/image954.o (.data); - build/u/assets/images/split/image955.o (.data); - build/u/assets/images/split/image956.o (.data); - build/u/assets/images/split/image957.o (.data); - build/u/assets/images/split/image958.o (.data); - build/u/assets/images/split/image959.o (.data); - build/u/assets/images/split/image960.o (.data); - build/u/assets/images/split/image961.o (.data); - build/u/assets/images/split/image962.o (.data); - build/u/assets/images/split/image963.o (.data); - build/u/assets/images/split/image964.o (.data); - build/u/assets/images/split/image965.o (.data); - build/u/assets/images/split/image966.o (.data); - build/u/assets/images/split/image967.o (.data); - build/u/assets/images/split/image968.o (.data); - build/u/assets/images/split/image969.o (.data); - build/u/assets/images/split/image970.o (.data); - build/u/assets/images/split/image971.o (.data); - build/u/assets/images/split/image972.o (.data); - build/u/assets/images/split/image973.o (.data); - build/u/assets/images/split/image974.o (.data); - build/u/assets/images/split/image975.o (.data); - build/u/assets/images/split/image976.o (.data); - build/u/assets/images/split/image977.o (.data); - build/u/assets/images/split/image978.o (.data); - build/u/assets/images/split/image979.o (.data); - build/u/assets/images/split/image980.o (.data); - build/u/assets/images/split/image981.o (.data); - build/u/assets/images/split/image982.o (.data); - build/u/assets/images/split/image983.o (.data); - build/u/assets/images/split/image984.o (.data); - build/u/assets/images/split/image985.o (.data); - build/u/assets/images/split/image986.o (.data); - build/u/assets/images/split/image987.o (.data); - build/u/assets/images/split/image988.o (.data); - build/u/assets/images/split/image989.o (.data); - build/u/assets/images/split/image990.o (.data); - build/u/assets/images/split/image991.o (.data); - build/u/assets/images/split/image992.o (.data); - build/u/assets/images/split/image993.o (.data); - build/u/assets/images/split/image994.o (.data); - build/u/assets/images/split/image995.o (.data); - build/u/assets/images/split/image996.o (.data); - build/u/assets/images/split/image997.o (.data); - build/u/assets/images/split/image998.o (.data); - build/u/assets/images/split/image999.o (.data); - build/u/assets/images/split/image1000.o (.data); - build/u/assets/images/split/image1001.o (.data); - build/u/assets/images/split/image1002.o (.data); - build/u/assets/images/split/image1003.o (.data); - build/u/assets/images/split/image1004.o (.data); - build/u/assets/images/split/image1005.o (.data); - build/u/assets/images/split/image1006.o (.data); - build/u/assets/images/split/image1007.o (.data); - build/u/assets/images/split/image1008.o (.data); - build/u/assets/images/split/image1009.o (.data); - build/u/assets/images/split/image1010.o (.data); - build/u/assets/images/split/image1011.o (.data); - build/u/assets/images/split/image1012.o (.data); - build/u/assets/images/split/image1013.o (.data); - build/u/assets/images/split/image1014.o (.data); - build/u/assets/images/split/image1015.o (.data); - build/u/assets/images/split/image1016.o (.data); - build/u/assets/images/split/image1017.o (.data); - build/u/assets/images/split/image1018.o (.data); - build/u/assets/images/split/image1019.o (.data); - build/u/assets/images/split/image1020.o (.data); - build/u/assets/images/split/image1021.o (.data); - build/u/assets/images/split/image1022.o (.data); - build/u/assets/images/split/image1023.o (.data); - build/u/assets/images/split/image1024.o (.data); - build/u/assets/images/split/image1025.o (.data); - build/u/assets/images/split/image1026.o (.data); - build/u/assets/images/split/image1027.o (.data); - build/u/assets/images/split/image1028.o (.data); - build/u/assets/images/split/image1029.o (.data); - build/u/assets/images/split/image1030.o (.data); - build/u/assets/images/split/image1031.o (.data); - build/u/assets/images/split/image1032.o (.data); - build/u/assets/images/split/image1033.o (.data); - build/u/assets/images/split/image1034.o (.data); - build/u/assets/images/split/image1035.o (.data); - build/u/assets/images/split/image1036.o (.data); - build/u/assets/images/split/image1037.o (.data); - build/u/assets/images/split/image1038.o (.data); - build/u/assets/images/split/image1039.o (.data); - build/u/assets/images/split/image1040.o (.data); - build/u/assets/images/split/image1041.o (.data); - build/u/assets/images/split/image1042.o (.data); - build/u/assets/images/split/image1043.o (.data); - build/u/assets/images/split/image1044.o (.data); - build/u/assets/images/split/image1045.o (.data); - build/u/assets/images/split/image1046.o (.data); - build/u/assets/images/split/image1047.o (.data); - build/u/assets/images/split/image1048.o (.data); - build/u/assets/images/split/image1049.o (.data); - build/u/assets/images/split/image1050.o (.data); - build/u/assets/images/split/image1051.o (.data); - build/u/assets/images/split/image1052.o (.data); - build/u/assets/images/split/image1053.o (.data); - build/u/assets/images/split/image1054.o (.data); - build/u/assets/images/split/image1055.o (.data); - build/u/assets/images/split/image1056.o (.data); - build/u/assets/images/split/image1057.o (.data); - build/u/assets/images/split/image1058.o (.data); - build/u/assets/images/split/image1059.o (.data); - build/u/assets/images/split/image1060.o (.data); - build/u/assets/images/split/image1061.o (.data); - build/u/assets/images/split/image1062.o (.data); - build/u/assets/images/split/image1063.o (.data); - build/u/assets/images/split/image1064.o (.data); - build/u/assets/images/split/image1065.o (.data); - build/u/assets/images/split/image1066.o (.data); - build/u/assets/images/split/image1067.o (.data); - build/u/assets/images/split/image1068.o (.data); - build/u/assets/images/split/image1069.o (.data); - build/u/assets/images/split/image1070.o (.data); - build/u/assets/images/split/image1071.o (.data); - build/u/assets/images/split/image1072.o (.data); - build/u/assets/images/split/image1073.o (.data); - build/u/assets/images/split/image1074.o (.data); - build/u/assets/images/split/image1075.o (.data); - build/u/assets/images/split/image1076.o (.data); - build/u/assets/images/split/image1077.o (.data); - build/u/assets/images/split/image1078.o (.data); - build/u/assets/images/split/image1079.o (.data); - build/u/assets/images/split/image1080.o (.data); - build/u/assets/images/split/image1081.o (.data); - build/u/assets/images/split/image1082.o (.data); - build/u/assets/images/split/image1083.o (.data); - build/u/assets/images/split/image1084.o (.data); - build/u/assets/images/split/image1085.o (.data); - build/u/assets/images/split/image1086.o (.data); - build/u/assets/images/split/image1087.o (.data); - build/u/assets/images/split/image1088.o (.data); - build/u/assets/images/split/image1089.o (.data); - build/u/assets/images/split/image1090.o (.data); - build/u/assets/images/split/image1091.o (.data); - build/u/assets/images/split/image1092.o (.data); - build/u/assets/images/split/image1093.o (.data); - build/u/assets/images/split/image1094.o (.data); - build/u/assets/images/split/image1095.o (.data); - build/u/assets/images/split/image1096.o (.data); - build/u/assets/images/split/image1097.o (.data); - build/u/assets/images/split/image1098.o (.data); - build/u/assets/images/split/image1099.o (.data); - build/u/assets/images/split/image1100.o (.data); - build/u/assets/images/split/image1101.o (.data); - build/u/assets/images/split/image1102.o (.data); - build/u/assets/images/split/image1103.o (.data); - build/u/assets/images/split/image1104.o (.data); - build/u/assets/images/split/image1105.o (.data); - build/u/assets/images/split/image1106.o (.data); - build/u/assets/images/split/image1107.o (.data); - build/u/assets/images/split/image1108.o (.data); - build/u/assets/images/split/image1109.o (.data); - build/u/assets/images/split/image1110.o (.data); - build/u/assets/images/split/image1111.o (.data); - build/u/assets/images/split/image1112.o (.data); - build/u/assets/images/split/image1113.o (.data); - build/u/assets/images/split/image1114.o (.data); - build/u/assets/images/split/image1115.o (.data); - build/u/assets/images/split/image1116.o (.data); - build/u/assets/images/split/image1117.o (.data); - build/u/assets/images/split/image1118.o (.data); - build/u/assets/images/split/image1119.o (.data); - build/u/assets/images/split/image1120.o (.data); - build/u/assets/images/split/image1121.o (.data); - build/u/assets/images/split/image1122.o (.data); - build/u/assets/images/split/image1123.o (.data); - build/u/assets/images/split/image1124.o (.data); - build/u/assets/images/split/image1125.o (.data); - build/u/assets/images/split/image1126.o (.data); - build/u/assets/images/split/image1127.o (.data); - build/u/assets/images/split/image1128.o (.data); - build/u/assets/images/split/image1129.o (.data); - build/u/assets/images/split/image1130.o (.data); - build/u/assets/images/split/image1131.o (.data); - build/u/assets/images/split/image1132.o (.data); - build/u/assets/images/split/image1133.o (.data); - build/u/assets/images/split/image1134.o (.data); - build/u/assets/images/split/image1135.o (.data); - build/u/assets/images/split/image1136.o (.data); - build/u/assets/images/split/image1137.o (.data); - build/u/assets/images/split/image1138.o (.data); - build/u/assets/images/split/image1139.o (.data); - build/u/assets/images/split/image1140.o (.data); - build/u/assets/images/split/image1141.o (.data); - build/u/assets/images/split/image1142.o (.data); - build/u/assets/images/split/image1143.o (.data); - build/u/assets/images/split/image1144.o (.data); - build/u/assets/images/split/image1145.o (.data); - build/u/assets/images/split/image1146.o (.data); - build/u/assets/images/split/image1147.o (.data); - build/u/assets/images/split/image1148.o (.data); - build/u/assets/images/split/image1149.o (.data); - build/u/assets/images/split/image1150.o (.data); - build/u/assets/images/split/image1151.o (.data); - build/u/assets/images/split/image1152.o (.data); - build/u/assets/images/split/image1153.o (.data); - build/u/assets/images/split/image1154.o (.data); - build/u/assets/images/split/image1155.o (.data); - build/u/assets/images/split/image1156.o (.data); - build/u/assets/images/split/image1157.o (.data); - build/u/assets/images/split/image1158.o (.data); - build/u/assets/images/split/image1159.o (.data); - build/u/assets/images/split/image1160.o (.data); - build/u/assets/images/split/image1161.o (.data); - build/u/assets/images/split/image1162.o (.data); - build/u/assets/images/split/image1163.o (.data); - build/u/assets/images/split/image1164.o (.data); - build/u/assets/images/split/image1165.o (.data); - build/u/assets/images/split/image1166.o (.data); - build/u/assets/images/split/image1167.o (.data); - build/u/assets/images/split/image1168.o (.data); - build/u/assets/images/split/image1169.o (.data); - build/u/assets/images/split/image1170.o (.data); - build/u/assets/images/split/image1171.o (.data); - build/u/assets/images/split/image1172.o (.data); - build/u/assets/images/split/image1173.o (.data); - build/u/assets/images/split/image1174.o (.data); - build/u/assets/images/split/image1175.o (.data); - build/u/assets/images/split/image1176.o (.data); - build/u/assets/images/split/image1177.o (.data); - build/u/assets/images/split/image1178.o (.data); - build/u/assets/images/split/image1179.o (.data); - build/u/assets/images/split/image1180.o (.data); - build/u/assets/images/split/image1181.o (.data); - build/u/assets/images/split/image1182.o (.data); - build/u/assets/images/split/image1183.o (.data); - build/u/assets/images/split/image1184.o (.data); - build/u/assets/images/split/image1185.o (.data); - build/u/assets/images/split/image1186.o (.data); - build/u/assets/images/split/image1187.o (.data); - build/u/assets/images/split/image1188.o (.data); - build/u/assets/images/split/image1189.o (.data); - build/u/assets/images/split/image1190.o (.data); - build/u/assets/images/split/image1191.o (.data); - build/u/assets/images/split/image1192.o (.data); - build/u/assets/images/split/image1193.o (.data); - build/u/assets/images/split/image1194.o (.data); - build/u/assets/images/split/image1195.o (.data); - build/u/assets/images/split/image1196.o (.data); - build/u/assets/images/split/image1197.o (.data); - build/u/assets/images/split/image1198.o (.data); - build/u/assets/images/split/image1199.o (.data); - build/u/assets/images/split/image1200.o (.data); - build/u/assets/images/split/image1201.o (.data); - build/u/assets/images/split/image1202.o (.data); - build/u/assets/images/split/image1203.o (.data); - build/u/assets/images/split/image1204.o (.data); - build/u/assets/images/split/image1205.o (.data); - build/u/assets/images/split/image1206.o (.data); - build/u/assets/images/split/image1207.o (.data); - build/u/assets/images/split/image1208.o (.data); - build/u/assets/images/split/image1209.o (.data); - build/u/assets/images/split/image1210.o (.data); - build/u/assets/images/split/image1211.o (.data); - build/u/assets/images/split/image1212.o (.data); - build/u/assets/images/split/image1213.o (.data); - build/u/assets/images/split/image1214.o (.data); - build/u/assets/images/split/image1215.o (.data); - build/u/assets/images/split/image1216.o (.data); - build/u/assets/images/split/image1217.o (.data); - build/u/assets/images/split/image1218.o (.data); - build/u/assets/images/split/image1219.o (.data); - build/u/assets/images/split/image1220.o (.data); - build/u/assets/images/split/image1221.o (.data); - build/u/assets/images/split/image1222.o (.data); - build/u/assets/images/split/image1223.o (.data); - build/u/assets/images/split/image1224.o (.data); - build/u/assets/images/split/image1225.o (.data); - build/u/assets/images/split/image1226.o (.data); - build/u/assets/images/split/image1227.o (.data); - build/u/assets/images/split/image1228.o (.data); - build/u/assets/images/split/image1229.o (.data); - build/u/assets/images/split/image1230.o (.data); - build/u/assets/images/split/image1231.o (.data); - build/u/assets/images/split/image1232.o (.data); - build/u/assets/images/split/image1233.o (.data); - build/u/assets/images/split/image1234.o (.data); - build/u/assets/images/split/image1235.o (.data); - build/u/assets/images/split/image1236.o (.data); - build/u/assets/images/split/image1237.o (.data); - build/u/assets/images/split/image1238.o (.data); - build/u/assets/images/split/image1239.o (.data); - build/u/assets/images/split/image1240.o (.data); - build/u/assets/images/split/image1241.o (.data); - build/u/assets/images/split/image1242.o (.data); - build/u/assets/images/split/image1243.o (.data); - build/u/assets/images/split/image1244.o (.data); - build/u/assets/images/split/image1245.o (.data); - build/u/assets/images/split/image1246.o (.data); - build/u/assets/images/split/image1247.o (.data); - build/u/assets/images/split/image1248.o (.data); - build/u/assets/images/split/image1249.o (.data); - build/u/assets/images/split/image1250.o (.data); - build/u/assets/images/split/image1251.o (.data); - build/u/assets/images/split/image1252.o (.data); - build/u/assets/images/split/image1253.o (.data); - build/u/assets/images/split/image1254.o (.data); - build/u/assets/images/split/image1255.o (.data); - build/u/assets/images/split/image1256.o (.data); - build/u/assets/images/split/image1257.o (.data); - build/u/assets/images/split/image1258.o (.data); - build/u/assets/images/split/image1259.o (.data); - build/u/assets/images/split/image1260.o (.data); - build/u/assets/images/split/image1261.o (.data); - build/u/assets/images/split/image1262.o (.data); - build/u/assets/images/split/image1263.o (.data); - build/u/assets/images/split/image1264.o (.data); - build/u/assets/images/split/image1265.o (.data); - build/u/assets/images/split/image1266.o (.data); - build/u/assets/images/split/image1267.o (.data); - build/u/assets/images/split/image1268.o (.data); - build/u/assets/images/split/image1269.o (.data); - build/u/assets/images/split/image1270.o (.data); - build/u/assets/images/split/image1271.o (.data); - build/u/assets/images/split/image1272.o (.data); - build/u/assets/images/split/image1273.o (.data); - build/u/assets/images/split/image1274.o (.data); - build/u/assets/images/split/image1275.o (.data); - build/u/assets/images/split/image1276.o (.data); - build/u/assets/images/split/image1277.o (.data); - build/u/assets/images/split/image1278.o (.data); - build/u/assets/images/split/image1279.o (.data); - build/u/assets/images/split/image1280.o (.data); - build/u/assets/images/split/image1281.o (.data); - build/u/assets/images/split/image1282.o (.data); - build/u/assets/images/split/image1283.o (.data); - build/u/assets/images/split/image1284.o (.data); - build/u/assets/images/split/image1285.o (.data); - build/u/assets/images/split/image1286.o (.data); - build/u/assets/images/split/image1287.o (.data); - build/u/assets/images/split/image1288.o (.data); - build/u/assets/images/split/image1289.o (.data); - build/u/assets/images/split/image1290.o (.data); - build/u/assets/images/split/image1291.o (.data); - build/u/assets/images/split/image1292.o (.data); - build/u/assets/images/split/image1293.o (.data); - build/u/assets/images/split/image1294.o (.data); - build/u/assets/images/split/image1295.o (.data); - build/u/assets/images/split/image1296.o (.data); - build/u/assets/images/split/image1297.o (.data); - build/u/assets/images/split/image1298.o (.data); - build/u/assets/images/split/image1299.o (.data); - build/u/assets/images/split/image1300.o (.data); - build/u/assets/images/split/image1301.o (.data); - build/u/assets/images/split/image1302.o (.data); - build/u/assets/images/split/image1303.o (.data); - build/u/assets/images/split/image1304.o (.data); - build/u/assets/images/split/image1305.o (.data); - build/u/assets/images/split/image1306.o (.data); - build/u/assets/images/split/image1307.o (.data); - build/u/assets/images/split/image1308.o (.data); - build/u/assets/images/split/image1309.o (.data); - build/u/assets/images/split/image1310.o (.data); - build/u/assets/images/split/image1311.o (.data); - build/u/assets/images/split/image1312.o (.data); - build/u/assets/images/split/image1313.o (.data); - build/u/assets/images/split/image1314.o (.data); - build/u/assets/images/split/image1315.o (.data); - build/u/assets/images/split/image1316.o (.data); - build/u/assets/images/split/image1317.o (.data); - build/u/assets/images/split/image1318.o (.data); - build/u/assets/images/split/image1319.o (.data); - build/u/assets/images/split/image1320.o (.data); - build/u/assets/images/split/image1321.o (.data); - build/u/assets/images/split/image1322.o (.data); - build/u/assets/images/split/image1323.o (.data); - build/u/assets/images/split/image1324.o (.data); - build/u/assets/images/split/image1325.o (.data); - build/u/assets/images/split/image1326.o (.data); - build/u/assets/images/split/image1327.o (.data); - build/u/assets/images/split/image1328.o (.data); - build/u/assets/images/split/image1329.o (.data); - build/u/assets/images/split/image1330.o (.data); - build/u/assets/images/split/image1331.o (.data); - build/u/assets/images/split/image1332.o (.data); - build/u/assets/images/split/image1333.o (.data); - build/u/assets/images/split/image1334.o (.data); - build/u/assets/images/split/image1335.o (.data); - build/u/assets/images/split/image1336.o (.data); - build/u/assets/images/split/image1337.o (.data); - build/u/assets/images/split/image1338.o (.data); - build/u/assets/images/split/image1339.o (.data); - build/u/assets/images/split/image1340.o (.data); - build/u/assets/images/split/image1341.o (.data); - build/u/assets/images/split/image1342.o (.data); - build/u/assets/images/split/image1343.o (.data); - build/u/assets/images/split/image1344.o (.data); - build/u/assets/images/split/image1345.o (.data); - build/u/assets/images/split/image1346.o (.data); - build/u/assets/images/split/image1347.o (.data); - build/u/assets/images/split/image1348.o (.data); - build/u/assets/images/split/image1349.o (.data); - build/u/assets/images/split/image1350.o (.data); - build/u/assets/images/split/image1351.o (.data); - build/u/assets/images/split/image1352.o (.data); - build/u/assets/images/split/image1353.o (.data); - build/u/assets/images/split/image1354.o (.data); - build/u/assets/images/split/image1355.o (.data); - build/u/assets/images/split/image1356.o (.data); - build/u/assets/images/split/image1357.o (.data); - build/u/assets/images/split/image1358.o (.data); - build/u/assets/images/split/image1359.o (.data); - build/u/assets/images/split/image1360.o (.data); - build/u/assets/images/split/image1361.o (.data); - build/u/assets/images/split/image1362.o (.data); - build/u/assets/images/split/image1363.o (.data); - build/u/assets/images/split/image1364.o (.data); - build/u/assets/images/split/image1365.o (.data); - build/u/assets/images/split/image1366.o (.data); - build/u/assets/images/split/image1367.o (.data); - build/u/assets/images/split/image1368.o (.data); - build/u/assets/images/split/image1369.o (.data); - build/u/assets/images/split/image1370.o (.data); - build/u/assets/images/split/image1371.o (.data); - build/u/assets/images/split/image1372.o (.data); - build/u/assets/images/split/image1373.o (.data); - build/u/assets/images/split/image1374.o (.data); - build/u/assets/images/split/image1375.o (.data); - build/u/assets/images/split/image1376.o (.data); - build/u/assets/images/split/image1377.o (.data); - build/u/assets/images/split/image1378.o (.data); - build/u/assets/images/split/image1379.o (.data); - build/u/assets/images/split/image1380.o (.data); - build/u/assets/images/split/image1381.o (.data); - build/u/assets/images/split/image1382.o (.data); - build/u/assets/images/split/image1383.o (.data); - build/u/assets/images/split/image1384.o (.data); - build/u/assets/images/split/image1385.o (.data); - build/u/assets/images/split/image1386.o (.data); - build/u/assets/images/split/image1387.o (.data); - build/u/assets/images/split/image1388.o (.data); - build/u/assets/images/split/image1389.o (.data); - build/u/assets/images/split/image1390.o (.data); - build/u/assets/images/split/image1391.o (.data); - build/u/assets/images/split/image1392.o (.data); - build/u/assets/images/split/image1393.o (.data); - build/u/assets/images/split/image1394.o (.data); - build/u/assets/images/split/image1395.o (.data); - build/u/assets/images/split/image1396.o (.data); - build/u/assets/images/split/image1397.o (.data); - build/u/assets/images/split/image1398.o (.data); - build/u/assets/images/split/image1399.o (.data); - build/u/assets/images/split/image1400.o (.data); - build/u/assets/images/split/image1401.o (.data); - build/u/assets/images/split/image1402.o (.data); - build/u/assets/images/split/image1403.o (.data); - build/u/assets/images/split/image1404.o (.data); - build/u/assets/images/split/image1405.o (.data); - build/u/assets/images/split/image1406.o (.data); - build/u/assets/images/split/image1407.o (.data); - build/u/assets/images/split/image1408.o (.data); - build/u/assets/images/split/image1409.o (.data); - build/u/assets/images/split/image1410.o (.data); - build/u/assets/images/split/image1411.o (.data); - build/u/assets/images/split/image1412.o (.data); - build/u/assets/images/split/image1413.o (.data); - build/u/assets/images/split/image1414.o (.data); - build/u/assets/images/split/image1415.o (.data); - build/u/assets/images/split/image1416.o (.data); - build/u/assets/images/split/image1417.o (.data); - build/u/assets/images/split/image1418.o (.data); - build/u/assets/images/split/image1419.o (.data); - build/u/assets/images/split/image1420.o (.data); - build/u/assets/images/split/image1421.o (.data); - build/u/assets/images/split/image1422.o (.data); - build/u/assets/images/split/image1423.o (.data); - build/u/assets/images/split/image1424.o (.data); - build/u/assets/images/split/image1425.o (.data); - build/u/assets/images/split/image1426.o (.data); - build/u/assets/images/split/image1427.o (.data); - build/u/assets/images/split/image1428.o (.data); - build/u/assets/images/split/image1429.o (.data); - build/u/assets/images/split/image1430.o (.data); - build/u/assets/images/split/image1431.o (.data); - build/u/assets/images/split/image1432.o (.data); - build/u/assets/images/split/image1433.o (.data); - build/u/assets/images/split/image1434.o (.data); - build/u/assets/images/split/image1435.o (.data); - build/u/assets/images/split/image1436.o (.data); - build/u/assets/images/split/image1437.o (.data); - build/u/assets/images/split/image1438.o (.data); - build/u/assets/images/split/image1439.o (.data); - build/u/assets/images/split/image1440.o (.data); - build/u/assets/images/split/image1441.o (.data); - build/u/assets/images/split/image1442.o (.data); - build/u/assets/images/split/image1443.o (.data); - build/u/assets/images/split/image1444.o (.data); - build/u/assets/images/split/image1445.o (.data); - build/u/assets/images/split/image1446.o (.data); - build/u/assets/images/split/image1447.o (.data); - build/u/assets/images/split/image1448.o (.data); - build/u/assets/images/split/image1449.o (.data); - build/u/assets/images/split/image1450.o (.data); - build/u/assets/images/split/image1451.o (.data); - build/u/assets/images/split/image1452.o (.data); - build/u/assets/images/split/image1453.o (.data); - build/u/assets/images/split/image1454.o (.data); - build/u/assets/images/split/image1455.o (.data); - build/u/assets/images/split/image1456.o (.data); - build/u/assets/images/split/image1457.o (.data); - build/u/assets/images/split/image1458.o (.data); - build/u/assets/images/split/image1459.o (.data); - build/u/assets/images/split/image1460.o (.data); - build/u/assets/images/split/image1461.o (.data); - build/u/assets/images/split/image1462.o (.data); - build/u/assets/images/split/image1463.o (.data); - build/u/assets/images/split/image1464.o (.data); - build/u/assets/images/split/image1465.o (.data); - build/u/assets/images/split/image1466.o (.data); - build/u/assets/images/split/image1467.o (.data); - build/u/assets/images/split/image1468.o (.data); - build/u/assets/images/split/image1469.o (.data); - build/u/assets/images/split/image1470.o (.data); - build/u/assets/images/split/image1471.o (.data); - build/u/assets/images/split/image1472.o (.data); - build/u/assets/images/split/image1473.o (.data); - build/u/assets/images/split/image1474.o (.data); - build/u/assets/images/split/image1475.o (.data); - build/u/assets/images/split/image1476.o (.data); - build/u/assets/images/split/image1477.o (.data); - build/u/assets/images/split/image1478.o (.data); - build/u/assets/images/split/image1479.o (.data); - build/u/assets/images/split/image1480.o (.data); - build/u/assets/images/split/image1481.o (.data); - build/u/assets/images/split/image1482.o (.data); - build/u/assets/images/split/image1483.o (.data); - build/u/assets/images/split/image1484.o (.data); - build/u/assets/images/split/image1485.o (.data); - build/u/assets/images/split/image1486.o (.data); - build/u/assets/images/split/image1487.o (.data); - build/u/assets/images/split/image1488.o (.data); - build/u/assets/images/split/image1489.o (.data); - build/u/assets/images/split/image1490.o (.data); - build/u/assets/images/split/image1491.o (.data); - build/u/assets/images/split/image1492.o (.data); - build/u/assets/images/split/image1493.o (.data); - build/u/assets/images/split/image1494.o (.data); - build/u/assets/images/split/image1495.o (.data); - build/u/assets/images/split/image1496.o (.data); - build/u/assets/images/split/image1497.o (.data); - build/u/assets/images/split/image1498.o (.data); - build/u/assets/images/split/image1499.o (.data); - build/u/assets/images/split/image1500.o (.data); - build/u/assets/images/split/image1501.o (.data); - build/u/assets/images/split/image1502.o (.data); - build/u/assets/images/split/image1503.o (.data); - build/u/assets/images/split/image1504.o (.data); - build/u/assets/images/split/image1505.o (.data); - build/u/assets/images/split/image1506.o (.data); - build/u/assets/images/split/image1507.o (.data); - build/u/assets/images/split/image1508.o (.data); - build/u/assets/images/split/image1509.o (.data); - build/u/assets/images/split/image1510.o (.data); - build/u/assets/images/split/image1511.o (.data); - build/u/assets/images/split/image1512.o (.data); - build/u/assets/images/split/image1513.o (.data); - build/u/assets/images/split/image1514.o (.data); - build/u/assets/images/split/image1515.o (.data); - build/u/assets/images/split/image1516.o (.data); - build/u/assets/images/split/image1517.o (.data); - build/u/assets/images/split/image1518.o (.data); - build/u/assets/images/split/image1519.o (.data); - build/u/assets/images/split/image1520.o (.data); - build/u/assets/images/split/image1521.o (.data); - build/u/assets/images/split/image1522.o (.data); - build/u/assets/images/split/image1523.o (.data); - build/u/assets/images/split/image1524.o (.data); - build/u/assets/images/split/image1525.o (.data); - build/u/assets/images/split/image1526.o (.data); - build/u/assets/images/split/image1527.o (.data); - build/u/assets/images/split/image1528.o (.data); - build/u/assets/images/split/image1529.o (.data); - build/u/assets/images/split/image1530.o (.data); - build/u/assets/images/split/image1531.o (.data); - build/u/assets/images/split/image1532.o (.data); - build/u/assets/images/split/image1533.o (.data); - build/u/assets/images/split/image1534.o (.data); - build/u/assets/images/split/image1535.o (.data); - build/u/assets/images/split/image1536.o (.data); - build/u/assets/images/split/image1537.o (.data); - build/u/assets/images/split/image1538.o (.data); - build/u/assets/images/split/image1539.o (.data); - build/u/assets/images/split/image1540.o (.data); - build/u/assets/images/split/image1541.o (.data); - build/u/assets/images/split/image1542.o (.data); - build/u/assets/images/split/image1543.o (.data); - build/u/assets/images/split/image1544.o (.data); - build/u/assets/images/split/image1545.o (.data); - build/u/assets/images/split/image1546.o (.data); - build/u/assets/images/split/image1547.o (.data); - build/u/assets/images/split/image1548.o (.data); - build/u/assets/images/split/image1549.o (.data); - build/u/assets/images/split/image1550.o (.data); - build/u/assets/images/split/image1551.o (.data); - build/u/assets/images/split/image1552.o (.data); - build/u/assets/images/split/image1553.o (.data); - build/u/assets/images/split/image1554.o (.data); - build/u/assets/images/split/image1555.o (.data); - build/u/assets/images/split/image1556.o (.data); - build/u/assets/images/split/image1557.o (.data); - build/u/assets/images/split/image1558.o (.data); - build/u/assets/images/split/image1559.o (.data); - build/u/assets/images/split/image1560.o (.data); - build/u/assets/images/split/image1561.o (.data); - build/u/assets/images/split/image1562.o (.data); - build/u/assets/images/split/image1563.o (.data); - build/u/assets/images/split/image1564.o (.data); - build/u/assets/images/split/image1565.o (.data); - build/u/assets/images/split/image1566.o (.data); - build/u/assets/images/split/image1567.o (.data); - build/u/assets/images/split/image1568.o (.data); - build/u/assets/images/split/image1569.o (.data); - build/u/assets/images/split/image1570.o (.data); - build/u/assets/images/split/image1571.o (.data); - build/u/assets/images/split/image1572.o (.data); - build/u/assets/images/split/image1573.o (.data); - build/u/assets/images/split/image1574.o (.data); - build/u/assets/images/split/image1575.o (.data); - build/u/assets/images/split/image1576.o (.data); - build/u/assets/images/split/image1577.o (.data); - build/u/assets/images/split/image1578.o (.data); - build/u/assets/images/split/image1579.o (.data); - build/u/assets/images/split/image1580.o (.data); - build/u/assets/images/split/image1581.o (.data); - build/u/assets/images/split/image1582.o (.data); - build/u/assets/images/split/image1583.o (.data); - build/u/assets/images/split/image1584.o (.data); - build/u/assets/images/split/image1585.o (.data); - build/u/assets/images/split/image1586.o (.data); - build/u/assets/images/split/image1587.o (.data); - build/u/assets/images/split/image1588.o (.data); - build/u/assets/images/split/image1589.o (.data); - build/u/assets/images/split/image1590.o (.data); - build/u/assets/images/split/image1591.o (.data); - build/u/assets/images/split/image1592.o (.data); - build/u/assets/images/split/image1593.o (.data); - build/u/assets/images/split/image1594.o (.data); - build/u/assets/images/split/image1595.o (.data); - build/u/assets/images/split/image1596.o (.data); - build/u/assets/images/split/image1597.o (.data); - build/u/assets/images/split/image1598.o (.data); - build/u/assets/images/split/image1599.o (.data); - build/u/assets/images/split/image1600.o (.data); - build/u/assets/images/split/image1601.o (.data); - build/u/assets/images/split/image1602.o (.data); - build/u/assets/images/split/image1603.o (.data); - build/u/assets/images/split/image1604.o (.data); - build/u/assets/images/split/image1605.o (.data); - build/u/assets/images/split/image1606.o (.data); - build/u/assets/images/split/image1607.o (.data); - build/u/assets/images/split/image1608.o (.data); - build/u/assets/images/split/image1609.o (.data); - build/u/assets/images/split/image1610.o (.data); - build/u/assets/images/split/image1611.o (.data); - build/u/assets/images/split/image1612.o (.data); - build/u/assets/images/split/image1613.o (.data); - build/u/assets/images/split/image1614.o (.data); - build/u/assets/images/split/image1615.o (.data); - build/u/assets/images/split/image1616.o (.data); - build/u/assets/images/split/image1617.o (.data); - build/u/assets/images/split/image1618.o (.data); - build/u/assets/images/split/image1619.o (.data); - build/u/assets/images/split/image1620.o (.data); - build/u/assets/images/split/image1621.o (.data); - build/u/assets/images/split/image1622.o (.data); - build/u/assets/images/split/image1623.o (.data); - build/u/assets/images/split/image1624.o (.data); - build/u/assets/images/split/image1625.o (.data); - build/u/assets/images/split/image1626.o (.data); - build/u/assets/images/split/image1627.o (.data); - build/u/assets/images/split/image1628.o (.data); - build/u/assets/images/split/image1629.o (.data); - build/u/assets/images/split/image1630.o (.data); - build/u/assets/images/split/image1631.o (.data); - build/u/assets/images/split/image1632.o (.data); - build/u/assets/images/split/image1633.o (.data); - build/u/assets/images/split/image1634.o (.data); - build/u/assets/images/split/image1635.o (.data); - build/u/assets/images/split/image1636.o (.data); - build/u/assets/images/split/image1637.o (.data); - build/u/assets/images/split/image1638.o (.data); - build/u/assets/images/split/image1639.o (.data); - build/u/assets/images/split/image1640.o (.data); - build/u/assets/images/split/image1641.o (.data); - build/u/assets/images/split/image1642.o (.data); - build/u/assets/images/split/image1643.o (.data); - build/u/assets/images/split/image1644.o (.data); - build/u/assets/images/split/image1645.o (.data); - build/u/assets/images/split/image1646.o (.data); - build/u/assets/images/split/image1647.o (.data); - build/u/assets/images/split/image1648.o (.data); - build/u/assets/images/split/image1649.o (.data); - build/u/assets/images/split/image1650.o (.data); - build/u/assets/images/split/image1651.o (.data); - build/u/assets/images/split/image1652.o (.data); - build/u/assets/images/split/image1653.o (.data); - build/u/assets/images/split/image1654.o (.data); - build/u/assets/images/split/image1655.o (.data); - build/u/assets/images/split/image1656.o (.data); - build/u/assets/images/split/image1657.o (.data); - build/u/assets/images/split/image1658.o (.data); - build/u/assets/images/split/image1659.o (.data); - build/u/assets/images/split/image1660.o (.data); - build/u/assets/images/split/image1661.o (.data); - build/u/assets/images/split/image1662.o (.data); - build/u/assets/images/split/image1663.o (.data); - build/u/assets/images/split/image1664.o (.data); - build/u/assets/images/split/image1665.o (.data); - build/u/assets/images/split/image1666.o (.data); - build/u/assets/images/split/image1667.o (.data); - build/u/assets/images/split/image1668.o (.data); - build/u/assets/images/split/image1669.o (.data); - build/u/assets/images/split/image1670.o (.data); - build/u/assets/images/split/image1671.o (.data); - build/u/assets/images/split/image1672.o (.data); - build/u/assets/images/split/image1673.o (.data); - build/u/assets/images/split/image1674.o (.data); - build/u/assets/images/split/image1675.o (.data); - build/u/assets/images/split/image1676.o (.data); - build/u/assets/images/split/image1677.o (.data); - build/u/assets/images/split/image1678.o (.data); - build/u/assets/images/split/image1679.o (.data); - build/u/assets/images/split/image1680.o (.data); - build/u/assets/images/split/image1681.o (.data); - build/u/assets/images/split/image1682.o (.data); - build/u/assets/images/split/image1683.o (.data); - build/u/assets/images/split/image1684.o (.data); - build/u/assets/images/split/image1685.o (.data); - build/u/assets/images/split/image1686.o (.data); - build/u/assets/images/split/image1687.o (.data); - build/u/assets/images/split/image1688.o (.data); - build/u/assets/images/split/image1689.o (.data); - build/u/assets/images/split/image1690.o (.data); - build/u/assets/images/split/image1691.o (.data); - build/u/assets/images/split/image1692.o (.data); - build/u/assets/images/split/image1693.o (.data); - build/u/assets/images/split/image1694.o (.data); - build/u/assets/images/split/image1695.o (.data); - build/u/assets/images/split/image1696.o (.data); - build/u/assets/images/split/image1697.o (.data); - build/u/assets/images/split/image1698.o (.data); - build/u/assets/images/split/image1699.o (.data); - build/u/assets/images/split/image1700.o (.data); - build/u/assets/images/split/image1701.o (.data); - build/u/assets/images/split/image1702.o (.data); - build/u/assets/images/split/image1703.o (.data); - build/u/assets/images/split/image1704.o (.data); - build/u/assets/images/split/image1705.o (.data); - build/u/assets/images/split/image1706.o (.data); - build/u/assets/images/split/image1707.o (.data); - build/u/assets/images/split/image1708.o (.data); - build/u/assets/images/split/image1709.o (.data); - build/u/assets/images/split/image1710.o (.data); - build/u/assets/images/split/image1711.o (.data); - build/u/assets/images/split/image1712.o (.data); - build/u/assets/images/split/image1713.o (.data); - build/u/assets/images/split/image1714.o (.data); - build/u/assets/images/split/image1715.o (.data); - build/u/assets/images/split/image1716.o (.data); - build/u/assets/images/split/image1717.o (.data); - build/u/assets/images/split/image1718.o (.data); - build/u/assets/images/split/image1719.o (.data); - build/u/assets/images/split/image1720.o (.data); - build/u/assets/images/split/image1721.o (.data); - build/u/assets/images/split/image1722.o (.data); - build/u/assets/images/split/image1723.o (.data); - build/u/assets/images/split/image1724.o (.data); - build/u/assets/images/split/image1725.o (.data); - build/u/assets/images/split/image1726.o (.data); - build/u/assets/images/split/image1727.o (.data); - build/u/assets/images/split/image1728.o (.data); - build/u/assets/images/split/image1729.o (.data); - build/u/assets/images/split/image1730.o (.data); - build/u/assets/images/split/image1731.o (.data); - build/u/assets/images/split/image1732.o (.data); - build/u/assets/images/split/image1733.o (.data); - build/u/assets/images/split/image1734.o (.data); - build/u/assets/images/split/image1735.o (.data); - build/u/assets/images/split/image1736.o (.data); - build/u/assets/images/split/image1737.o (.data); - build/u/assets/images/split/image1738.o (.data); - build/u/assets/images/split/image1739.o (.data); - build/u/assets/images/split/image1740.o (.data); - build/u/assets/images/split/image1741.o (.data); - build/u/assets/images/split/image1742.o (.data); - build/u/assets/images/split/image1743.o (.data); - build/u/assets/images/split/image1744.o (.data); - build/u/assets/images/split/image1745.o (.data); - build/u/assets/images/split/image1746.o (.data); - build/u/assets/images/split/image1747.o (.data); - build/u/assets/images/split/image1748.o (.data); - build/u/assets/images/split/image1749.o (.data); - build/u/assets/images/split/image1750.o (.data); - build/u/assets/images/split/image1751.o (.data); - build/u/assets/images/split/image1752.o (.data); - build/u/assets/images/split/image1753.o (.data); - build/u/assets/images/split/image1754.o (.data); - build/u/assets/images/split/image1755.o (.data); - build/u/assets/images/split/image1756.o (.data); - build/u/assets/images/split/image1757.o (.data); - build/u/assets/images/split/image1758.o (.data); - build/u/assets/images/split/image1759.o (.data); - build/u/assets/images/split/image1760.o (.data); - build/u/assets/images/split/image1761.o (.data); - build/u/assets/images/split/image1762.o (.data); - build/u/assets/images/split/image1763.o (.data); - build/u/assets/images/split/image1764.o (.data); - build/u/assets/images/split/image1765.o (.data); - build/u/assets/images/split/image1766.o (.data); - build/u/assets/images/split/image1767.o (.data); - build/u/assets/images/split/image1768.o (.data); - build/u/assets/images/split/image1769.o (.data); - build/u/assets/images/split/image1770.o (.data); - build/u/assets/images/split/image1771.o (.data); - build/u/assets/images/split/image1772.o (.data); - build/u/assets/images/split/image1773.o (.data); - build/u/assets/images/split/image1774.o (.data); - build/u/assets/images/split/image1775.o (.data); - build/u/assets/images/split/image1776.o (.data); - build/u/assets/images/split/image1777.o (.data); - build/u/assets/images/split/image1778.o (.data); - build/u/assets/images/split/image1779.o (.data); - build/u/assets/images/split/image1780.o (.data); - build/u/assets/images/split/image1781.o (.data); - build/u/assets/images/split/image1782.o (.data); - build/u/assets/images/split/image1783.o (.data); - build/u/assets/images/split/image1784.o (.data); - build/u/assets/images/split/image1785.o (.data); - build/u/assets/images/split/image1786.o (.data); - build/u/assets/images/split/image1787.o (.data); - build/u/assets/images/split/image1788.o (.data); - build/u/assets/images/split/image1789.o (.data); - build/u/assets/images/split/image1790.o (.data); - build/u/assets/images/split/image1791.o (.data); - build/u/assets/images/split/image1792.o (.data); - build/u/assets/images/split/image1793.o (.data); - build/u/assets/images/split/image1794.o (.data); - build/u/assets/images/split/image1795.o (.data); - build/u/assets/images/split/image1796.o (.data); - build/u/assets/images/split/image1797.o (.data); - build/u/assets/images/split/image1798.o (.data); - build/u/assets/images/split/image1799.o (.data); - build/u/assets/images/split/image1800.o (.data); - build/u/assets/images/split/image1801.o (.data); - build/u/assets/images/split/image1802.o (.data); - build/u/assets/images/split/image1803.o (.data); - build/u/assets/images/split/image1804.o (.data); - build/u/assets/images/split/image1805.o (.data); - build/u/assets/images/split/image1806.o (.data); - build/u/assets/images/split/image1807.o (.data); - build/u/assets/images/split/image1808.o (.data); - build/u/assets/images/split/image1809.o (.data); - build/u/assets/images/split/image1810.o (.data); - build/u/assets/images/split/image1811.o (.data); - build/u/assets/images/split/image1812.o (.data); - build/u/assets/images/split/image1813.o (.data); - build/u/assets/images/split/image1814.o (.data); - build/u/assets/images/split/image1815.o (.data); - build/u/assets/images/split/image1816.o (.data); - build/u/assets/images/split/image1817.o (.data); - build/u/assets/images/split/image1818.o (.data); - build/u/assets/images/split/image1819.o (.data); - build/u/assets/images/split/image1820.o (.data); - build/u/assets/images/split/image1821.o (.data); - build/u/assets/images/split/image1822.o (.data); - build/u/assets/images/split/image1823.o (.data); - build/u/assets/images/split/image1824.o (.data); - build/u/assets/images/split/image1825.o (.data); - build/u/assets/images/split/image1826.o (.data); - build/u/assets/images/split/image1827.o (.data); - build/u/assets/images/split/image1828.o (.data); - build/u/assets/images/split/image1829.o (.data); - build/u/assets/images/split/image1830.o (.data); - build/u/assets/images/split/image1831.o (.data); - build/u/assets/images/split/image1832.o (.data); - build/u/assets/images/split/image1833.o (.data); - build/u/assets/images/split/image1834.o (.data); - build/u/assets/images/split/image1835.o (.data); - build/u/assets/images/split/image1836.o (.data); - build/u/assets/images/split/image1837.o (.data); - build/u/assets/images/split/image1838.o (.data); - build/u/assets/images/split/image1839.o (.data); - build/u/assets/images/split/image1840.o (.data); - build/u/assets/images/split/image1841.o (.data); - build/u/assets/images/split/image1842.o (.data); - build/u/assets/images/split/image1843.o (.data); - build/u/assets/images/split/image1844.o (.data); - build/u/assets/images/split/image1845.o (.data); - build/u/assets/images/split/image1846.o (.data); - build/u/assets/images/split/image1847.o (.data); - build/u/assets/images/split/image1848.o (.data); - build/u/assets/images/split/image1849.o (.data); - build/u/assets/images/split/image1850.o (.data); - build/u/assets/images/split/image1851.o (.data); - build/u/assets/images/split/image1852.o (.data); - build/u/assets/images/split/image1853.o (.data); - build/u/assets/images/split/image1854.o (.data); - build/u/assets/images/split/image1855.o (.data); - build/u/assets/images/split/image1856.o (.data); - build/u/assets/images/split/image1857.o (.data); - build/u/assets/images/split/image1858.o (.data); - build/u/assets/images/split/image1859.o (.data); - build/u/assets/images/split/image1860.o (.data); - build/u/assets/images/split/image1861.o (.data); - build/u/assets/images/split/image1862.o (.data); - build/u/assets/images/split/image1863.o (.data); - build/u/assets/images/split/image1864.o (.data); - build/u/assets/images/split/image1865.o (.data); - build/u/assets/images/split/image1866.o (.data); - build/u/assets/images/split/image1867.o (.data); - build/u/assets/images/split/image1868.o (.data); - build/u/assets/images/split/image1869.o (.data); - build/u/assets/images/split/image1870.o (.data); - build/u/assets/images/split/image1871.o (.data); - build/u/assets/images/split/image1872.o (.data); - build/u/assets/images/split/image1873.o (.data); - build/u/assets/images/split/image1874.o (.data); - build/u/assets/images/split/image1875.o (.data); - build/u/assets/images/split/image1876.o (.data); - build/u/assets/images/split/image1877.o (.data); - build/u/assets/images/split/image1878.o (.data); - build/u/assets/images/split/image1879.o (.data); - build/u/assets/images/split/image1880.o (.data); - build/u/assets/images/split/image1881.o (.data); - build/u/assets/images/split/image1882.o (.data); - build/u/assets/images/split/image1883.o (.data); - build/u/assets/images/split/image1884.o (.data); - build/u/assets/images/split/image1885.o (.data); - build/u/assets/images/split/image1886.o (.data); - build/u/assets/images/split/image1887.o (.data); - build/u/assets/images/split/image1888.o (.data); - build/u/assets/images/split/image1889.o (.data); - build/u/assets/images/split/image1890.o (.data); - build/u/assets/images/split/image1891.o (.data); - build/u/assets/images/split/image1892.o (.data); - build/u/assets/images/split/image1893.o (.data); - build/u/assets/images/split/image1894.o (.data); - build/u/assets/images/split/image1895.o (.data); - build/u/assets/images/split/image1896.o (.data); - build/u/assets/images/split/image1897.o (.data); - build/u/assets/images/split/image1898.o (.data); - build/u/assets/images/split/image1899.o (.data); - build/u/assets/images/split/image1900.o (.data); - build/u/assets/images/split/image1901.o (.data); - build/u/assets/images/split/image1902.o (.data); - build/u/assets/images/split/image1903.o (.data); - build/u/assets/images/split/image1904.o (.data); - build/u/assets/images/split/image1905.o (.data); - build/u/assets/images/split/image1906.o (.data); - build/u/assets/images/split/image1907.o (.data); - build/u/assets/images/split/image1908.o (.data); - build/u/assets/images/split/image1909.o (.data); - build/u/assets/images/split/image1910.o (.data); - build/u/assets/images/split/image1911.o (.data); - build/u/assets/images/split/image1912.o (.data); - build/u/assets/images/split/image1913.o (.data); - build/u/assets/images/split/image1914.o (.data); - build/u/assets/images/split/image1915.o (.data); - build/u/assets/images/split/image1916.o (.data); - build/u/assets/images/split/image1917.o (.data); - build/u/assets/images/split/image1918.o (.data); - build/u/assets/images/split/image1919.o (.data); - build/u/assets/images/split/image1920.o (.data); - build/u/assets/images/split/image1921.o (.data); - build/u/assets/images/split/image1922.o (.data); - build/u/assets/images/split/image1923.o (.data); - build/u/assets/images/split/image1924.o (.data); - build/u/assets/images/split/image1925.o (.data); - build/u/assets/images/split/image1926.o (.data); - build/u/assets/images/split/image1927.o (.data); - build/u/assets/images/split/image1928.o (.data); - build/u/assets/images/split/image1929.o (.data); - build/u/assets/images/split/image1930.o (.data); - build/u/assets/images/split/image1931.o (.data); - build/u/assets/images/split/image1932.o (.data); - build/u/assets/images/split/image1933.o (.data); - build/u/assets/images/split/image1934.o (.data); - build/u/assets/images/split/image1935.o (.data); - build/u/assets/images/split/image1936.o (.data); - build/u/assets/images/split/image1937.o (.data); - build/u/assets/images/split/image1938.o (.data); - build/u/assets/images/split/image1939.o (.data); - build/u/assets/images/split/image1940.o (.data); - build/u/assets/images/split/image1941.o (.data); - build/u/assets/images/split/image1942.o (.data); - build/u/assets/images/split/image1943.o (.data); - build/u/assets/images/split/image1944.o (.data); - build/u/assets/images/split/image1945.o (.data); - build/u/assets/images/split/image1946.o (.data); - build/u/assets/images/split/image1947.o (.data); - build/u/assets/images/split/image1948.o (.data); - build/u/assets/images/split/image1949.o (.data); - build/u/assets/images/split/image1950.o (.data); - build/u/assets/images/split/image1951.o (.data); - build/u/assets/images/split/image1952.o (.data); - build/u/assets/images/split/image1953.o (.data); - build/u/assets/images/split/image1954.o (.data); - build/u/assets/images/split/image1955.o (.data); - build/u/assets/images/split/image1956.o (.data); - build/u/assets/images/split/image1957.o (.data); - build/u/assets/images/split/image1958.o (.data); - build/u/assets/images/split/image1959.o (.data); - build/u/assets/images/split/image1960.o (.data); - build/u/assets/images/split/image1961.o (.data); - build/u/assets/images/split/image1962.o (.data); - build/u/assets/images/split/image1963.o (.data); - build/u/assets/images/split/image1964.o (.data); - build/u/assets/images/split/image1965.o (.data); - build/u/assets/images/split/image1966.o (.data); - build/u/assets/images/split/image1967.o (.data); - build/u/assets/images/split/image1968.o (.data); - build/u/assets/images/split/image1969.o (.data); - build/u/assets/images/split/image1970.o (.data); - build/u/assets/images/split/image1971.o (.data); - build/u/assets/images/split/image1972.o (.data); - build/u/assets/images/split/image1973.o (.data); - build/u/assets/images/split/image1974.o (.data); - build/u/assets/images/split/image1975.o (.data); - build/u/assets/images/split/image1976.o (.data); - build/u/assets/images/split/image1977.o (.data); - build/u/assets/images/split/image1978.o (.data); - build/u/assets/images/split/image1979.o (.data); - build/u/assets/images/split/image1980.o (.data); - build/u/assets/images/split/image1981.o (.data); - build/u/assets/images/split/image1982.o (.data); - build/u/assets/images/split/image1983.o (.data); - build/u/assets/images/split/image1984.o (.data); - build/u/assets/images/split/image1985.o (.data); - build/u/assets/images/split/image1986.o (.data); - build/u/assets/images/split/image1987.o (.data); - build/u/assets/images/split/image1988.o (.data); - build/u/assets/images/split/image1989.o (.data); - build/u/assets/images/split/image1990.o (.data); - build/u/assets/images/split/image1991.o (.data); - build/u/assets/images/split/image1992.o (.data); - build/u/assets/images/split/image1993.o (.data); - build/u/assets/images/split/image1994.o (.data); - build/u/assets/images/split/image1995.o (.data); - build/u/assets/images/split/image1996.o (.data); - build/u/assets/images/split/image1997.o (.data); - build/u/assets/images/split/image1998.o (.data); - build/u/assets/images/split/image1999.o (.data); - build/u/assets/images/split/image2000.o (.data); - build/u/assets/images/split/image2001.o (.data); - build/u/assets/images/split/image2002.o (.data); - build/u/assets/images/split/image2003.o (.data); - build/u/assets/images/split/image2004.o (.data); - build/u/assets/images/split/image2005.o (.data); - build/u/assets/images/split/image2006.o (.data); - build/u/assets/images/split/image2007.o (.data); - build/u/assets/images/split/image2008.o (.data); - build/u/assets/images/split/image2009.o (.data); - build/u/assets/images/split/image2010.o (.data); - build/u/assets/images/split/image2011.o (.data); - build/u/assets/images/split/image2012.o (.data); - build/u/assets/images/split/image2013.o (.data); - build/u/assets/images/split/image2014.o (.data); - build/u/assets/images/split/image2015.o (.data); - build/u/assets/images/split/image2016.o (.data); - build/u/assets/images/split/image2017.o (.data); - build/u/assets/images/split/image2018.o (.data); - build/u/assets/images/split/image2019.o (.data); - build/u/assets/images/split/image2020.o (.data); - build/u/assets/images/split/image2021.o (.data); - build/u/assets/images/split/image2022.o (.data); - build/u/assets/images/split/image2023.o (.data); - build/u/assets/images/split/image2024.o (.data); - build/u/assets/images/split/image2025.o (.data); - build/u/assets/images/split/image2026.o (.data); - build/u/assets/images/split/image2027.o (.data); - build/u/assets/images/split/image2028.o (.data); - build/u/assets/images/split/image2029.o (.data); - build/u/assets/images/split/image2030.o (.data); - build/u/assets/images/split/image2031.o (.data); - build/u/assets/images/split/image2032.o (.data); - build/u/assets/images/split/image2033.o (.data); - build/u/assets/images/split/image2034.o (.data); - build/u/assets/images/split/image2035.o (.data); - build/u/assets/images/split/image2036.o (.data); - build/u/assets/images/split/image2037.o (.data); - build/u/assets/images/split/image2038.o (.data); - build/u/assets/images/split/image2039.o (.data); - build/u/assets/images/split/image2040.o (.data); - build/u/assets/images/split/image2041.o (.data); - build/u/assets/images/split/image2042.o (.data); - build/u/assets/images/split/image2043.o (.data); - build/u/assets/images/split/image2044.o (.data); - build/u/assets/images/split/image2045.o (.data); - build/u/assets/images/split/image2046.o (.data); - build/u/assets/images/split/image2047.o (.data); - build/u/assets/images/split/image2048.o (.data); - build/u/assets/images/split/image2049.o (.data); - build/u/assets/images/split/image2050.o (.data); - build/u/assets/images/split/image2051.o (.data); - build/u/assets/images/split/image2052.o (.data); - build/u/assets/images/split/image2053.o (.data); - build/u/assets/images/split/image2054.o (.data); - build/u/assets/images/split/image2055.o (.data); - build/u/assets/images/split/image2056.o (.data); - build/u/assets/images/split/image2057.o (.data); - build/u/assets/images/split/image2058.o (.data); - build/u/assets/images/split/image2059.o (.data); - build/u/assets/images/split/image2060.o (.data); - build/u/assets/images/split/image2061.o (.data); - build/u/assets/images/split/image2062.o (.data); - build/u/assets/images/split/image2063.o (.data); - build/u/assets/images/split/image2064.o (.data); - build/u/assets/images/split/image2065.o (.data); - build/u/assets/images/split/image2066.o (.data); - build/u/assets/images/split/image2067.o (.data); - build/u/assets/images/split/image2068.o (.data); - build/u/assets/images/split/image2069.o (.data); - build/u/assets/images/split/image2070.o (.data); - build/u/assets/images/split/image2071.o (.data); - build/u/assets/images/split/image2072.o (.data); - build/u/assets/images/split/image2073.o (.data); - build/u/assets/images/split/image2074.o (.data); - build/u/assets/images/split/image2075.o (.data); - build/u/assets/images/split/image2076.o (.data); - build/u/assets/images/split/image2077.o (.data); - build/u/assets/images/split/image2078.o (.data); - build/u/assets/images/split/image2079.o (.data); - build/u/assets/images/split/image2080.o (.data); - build/u/assets/images/split/image2081.o (.data); - build/u/assets/images/split/image2082.o (.data); - build/u/assets/images/split/image2083.o (.data); - build/u/assets/images/split/image2084.o (.data); - build/u/assets/images/split/image2085.o (.data); - build/u/assets/images/split/image2086.o (.data); - build/u/assets/images/split/image2087.o (.data); - build/u/assets/images/split/image2088.o (.data); - build/u/assets/images/split/image2089.o (.data); - build/u/assets/images/split/image2090.o (.data); - build/u/assets/images/split/image2091.o (.data); - build/u/assets/images/split/image2092.o (.data); - build/u/assets/images/split/image2093.o (.data); - build/u/assets/images/split/image2094.o (.data); - build/u/assets/images/split/image2095.o (.data); - build/u/assets/images/split/image2096.o (.data); - build/u/assets/images/split/image2097.o (.data); - build/u/assets/images/split/image2098.o (.data); - build/u/assets/images/split/image2099.o (.data); - build/u/assets/images/split/image2100.o (.data); - build/u/assets/images/split/image2101.o (.data); - build/u/assets/images/split/image2102.o (.data); - build/u/assets/images/split/image2103.o (.data); - build/u/assets/images/split/image2104.o (.data); - build/u/assets/images/split/image2105.o (.data); - build/u/assets/images/split/image2106.o (.data); - build/u/assets/images/split/image2107.o (.data); - build/u/assets/images/split/image2108.o (.data); - build/u/assets/images/split/image2109.o (.data); - build/u/assets/images/split/image2110.o (.data); - build/u/assets/images/split/image2111.o (.data); - build/u/assets/images/split/image2112.o (.data); - build/u/assets/images/split/image2113.o (.data); - build/u/assets/images/split/image2114.o (.data); - build/u/assets/images/split/image2115.o (.data); - build/u/assets/images/split/image2116.o (.data); - build/u/assets/images/split/image2117.o (.data); - build/u/assets/images/split/image2118.o (.data); - build/u/assets/images/split/image2119.o (.data); - build/u/assets/images/split/image2120.o (.data); - build/u/assets/images/split/image2121.o (.data); - build/u/assets/images/split/image2122.o (.data); - build/u/assets/images/split/image2123.o (.data); - build/u/assets/images/split/image2124.o (.data); - build/u/assets/images/split/image2125.o (.data); - build/u/assets/images/split/image2126.o (.data); - build/u/assets/images/split/image2127.o (.data); - build/u/assets/images/split/image2128.o (.data); - build/u/assets/images/split/image2129.o (.data); - build/u/assets/images/split/image2130.o (.data); - build/u/assets/images/split/image2131.o (.data); - build/u/assets/images/split/image2132.o (.data); - build/u/assets/images/split/image2133.o (.data); - build/u/assets/images/split/image2134.o (.data); - build/u/assets/images/split/image2135.o (.data); - build/u/assets/images/split/image2136.o (.data); - build/u/assets/images/split/image2137.o (.data); - build/u/assets/images/split/image2138.o (.data); - build/u/assets/images/split/image2139.o (.data); - build/u/assets/images/split/image2140.o (.data); - build/u/assets/images/split/image2141.o (.data); - build/u/assets/images/split/image2142.o (.data); - build/u/assets/images/split/image2143.o (.data); - build/u/assets/images/split/image2144.o (.data); - build/u/assets/images/split/image2145.o (.data); - build/u/assets/images/split/image2146.o (.data); - build/u/assets/images/split/image2147.o (.data); - build/u/assets/images/split/image2148.o (.data); - build/u/assets/images/split/image2149.o (.data); - build/u/assets/images/split/image2150.o (.data); - build/u/assets/images/split/image2151.o (.data); - build/u/assets/images/split/image2152.o (.data); - build/u/assets/images/split/image2153.o (.data); - build/u/assets/images/split/image2154.o (.data); - build/u/assets/images/split/image2155.o (.data); - build/u/assets/images/split/image2156.o (.data); - build/u/assets/images/split/image2157.o (.data); - build/u/assets/images/split/image2158.o (.data); - build/u/assets/images/split/image2159.o (.data); - build/u/assets/images/split/image2160.o (.data); - build/u/assets/images/split/image2161.o (.data); - build/u/assets/images/split/image2162.o (.data); - build/u/assets/images/split/image2163.o (.data); - build/u/assets/images/split/image2164.o (.data); - build/u/assets/images/split/image2165.o (.data); - build/u/assets/images/split/image2166.o (.data); - build/u/assets/images/split/image2167.o (.data); - build/u/assets/images/split/image2168.o (.data); - build/u/assets/images/split/image2169.o (.data); - build/u/assets/images/split/image2170.o (.data); - build/u/assets/images/split/image2171.o (.data); - build/u/assets/images/split/image2172.o (.data); - build/u/assets/images/split/image2173.o (.data); - build/u/assets/images/split/image2174.o (.data); - build/u/assets/images/split/image2175.o (.data); - build/u/assets/images/split/image2176.o (.data); - build/u/assets/images/split/image2177.o (.data); - build/u/assets/images/split/image2178.o (.data); - build/u/assets/images/split/image2179.o (.data); - build/u/assets/images/split/image2180.o (.data); - build/u/assets/images/split/image2181.o (.data); - build/u/assets/images/split/image2182.o (.data); - build/u/assets/images/split/image2183.o (.data); - build/u/assets/images/split/image2184.o (.data); - build/u/assets/images/split/image2185.o (.data); - build/u/assets/images/split/image2186.o (.data); - build/u/assets/images/split/image2187.o (.data); - build/u/assets/images/split/image2188.o (.data); - build/u/assets/images/split/image2189.o (.data); - build/u/assets/images/split/image2190.o (.data); - build/u/assets/images/split/image2191.o (.data); - build/u/assets/images/split/image2192.o (.data); - build/u/assets/images/split/image2193.o (.data); - build/u/assets/images/split/image2194.o (.data); - build/u/assets/images/split/image2195.o (.data); - build/u/assets/images/split/image2196.o (.data); - build/u/assets/images/split/image2197.o (.data); - build/u/assets/images/split/image2198.o (.data); - build/u/assets/images/split/image2199.o (.data); - build/u/assets/images/split/image2200.o (.data); - build/u/assets/images/split/image2201.o (.data); - build/u/assets/images/split/image2202.o (.data); - build/u/assets/images/split/image2203.o (.data); - build/u/assets/images/split/image2204.o (.data); - build/u/assets/images/split/image2205.o (.data); - build/u/assets/images/split/image2206.o (.data); - build/u/assets/images/split/image2207.o (.data); - build/u/assets/images/split/image2208.o (.data); - build/u/assets/images/split/image2209.o (.data); - build/u/assets/images/split/image2210.o (.data); - build/u/assets/images/split/image2211.o (.data); - build/u/assets/images/split/image2212.o (.data); - build/u/assets/images/split/image2213.o (.data); - build/u/assets/images/split/image2214.o (.data); - build/u/assets/images/split/image2215.o (.data); - build/u/assets/images/split/image2216.o (.data); - build/u/assets/images/split/image2217.o (.data); - build/u/assets/images/split/image2218.o (.data); - build/u/assets/images/split/image2219.o (.data); - build/u/assets/images/split/image2220.o (.data); - build/u/assets/images/split/image2221.o (.data); - build/u/assets/images/split/image2222.o (.data); - build/u/assets/images/split/image2223.o (.data); - build/u/assets/images/split/image2224.o (.data); - build/u/assets/images/split/image2225.o (.data); - build/u/assets/images/split/image2226.o (.data); - build/u/assets/images/split/image2227.o (.data); - build/u/assets/images/split/image2228.o (.data); - build/u/assets/images/split/image2229.o (.data); - build/u/assets/images/split/image2230.o (.data); - build/u/assets/images/split/image2231.o (.data); - build/u/assets/images/split/image2232.o (.data); - build/u/assets/images/split/image2233.o (.data); - build/u/assets/images/split/image2234.o (.data); - build/u/assets/images/split/image2235.o (.data); - build/u/assets/images/split/image2236.o (.data); - build/u/assets/images/split/image2237.o (.data); - build/u/assets/images/split/image2238.o (.data); - build/u/assets/images/split/image2239.o (.data); - build/u/assets/images/split/image2240.o (.data); - build/u/assets/images/split/image2241.o (.data); - build/u/assets/images/split/image2242.o (.data); - build/u/assets/images/split/image2243.o (.data); - build/u/assets/images/split/image2244.o (.data); - build/u/assets/images/split/image2245.o (.data); - build/u/assets/images/split/image2246.o (.data); - build/u/assets/images/split/image2247.o (.data); - build/u/assets/images/split/image2248.o (.data); - build/u/assets/images/split/image2249.o (.data); - build/u/assets/images/split/image2250.o (.data); - build/u/assets/images/split/image2251.o (.data); - build/u/assets/images/split/image2252.o (.data); - build/u/assets/images/split/image2253.o (.data); - build/u/assets/images/split/image2254.o (.data); - build/u/assets/images/split/image2255.o (.data); - build/u/assets/images/split/image2256.o (.data); - build/u/assets/images/split/image2257.o (.data); - build/u/assets/images/split/image2258.o (.data); - build/u/assets/images/split/image2259.o (.data); - build/u/assets/images/split/image2260.o (.data); - build/u/assets/images/split/image2261.o (.data); - build/u/assets/images/split/image2262.o (.data); - build/u/assets/images/split/image2263.o (.data); - build/u/assets/images/split/image2264.o (.data); - build/u/assets/images/split/image2265.o (.data); - build/u/assets/images/split/image2266.o (.data); - build/u/assets/images/split/image2267.o (.data); - build/u/assets/images/split/image2268.o (.data); - build/u/assets/images/split/image2269.o (.data); - build/u/assets/images/split/image2270.o (.data); - build/u/assets/images/split/image2271.o (.data); - build/u/assets/images/split/image2272.o (.data); - build/u/assets/images/split/image2273.o (.data); - build/u/assets/images/split/image2274.o (.data); - build/u/assets/images/split/image2275.o (.data); - build/u/assets/images/split/image2276.o (.data); - build/u/assets/images/split/image2277.o (.data); - build/u/assets/images/split/image2278.o (.data); - build/u/assets/images/split/image2279.o (.data); - build/u/assets/images/split/image2280.o (.data); - build/u/assets/images/split/image2281.o (.data); - build/u/assets/images/split/image2282.o (.data); - build/u/assets/images/split/image2283.o (.data); - build/u/assets/images/split/image2284.o (.data); - build/u/assets/images/split/image2285.o (.data); - build/u/assets/images/split/image2286.o (.data); - build/u/assets/images/split/image2287.o (.data); - build/u/assets/images/split/image2288.o (.data); - build/u/assets/images/split/image2289.o (.data); - build/u/assets/images/split/image2290.o (.data); - build/u/assets/images/split/image2291.o (.data); - build/u/assets/images/split/image2292.o (.data); - build/u/assets/images/split/image2293.o (.data); - build/u/assets/images/split/image2294.o (.data); - build/u/assets/images/split/image2295.o (.data); - build/u/assets/images/split/image2296.o (.data); - build/u/assets/images/split/image2297.o (.data); - build/u/assets/images/split/image2298.o (.data); - build/u/assets/images/split/image2299.o (.data); - build/u/assets/images/split/image2300.o (.data); - build/u/assets/images/split/image2301.o (.data); - build/u/assets/images/split/image2302.o (.data); - build/u/assets/images/split/image2303.o (.data); - build/u/assets/images/split/image2304.o (.data); - build/u/assets/images/split/image2305.o (.data); - build/u/assets/images/split/image2306.o (.data); - build/u/assets/images/split/image2307.o (.data); - build/u/assets/images/split/image2308.o (.data); - build/u/assets/images/split/image2309.o (.data); - build/u/assets/images/split/image2310.o (.data); - build/u/assets/images/split/image2311.o (.data); - build/u/assets/images/split/image2312.o (.data); - build/u/assets/images/split/image2313.o (.data); - build/u/assets/images/split/image2314.o (.data); - build/u/assets/images/split/image2315.o (.data); - build/u/assets/images/split/image2316.o (.data); - build/u/assets/images/split/image2317.o (.data); - build/u/assets/images/split/image2318.o (.data); - build/u/assets/images/split/image2319.o (.data); - build/u/assets/images/split/image2320.o (.data); - build/u/assets/images/split/image2321.o (.data); - build/u/assets/images/split/image2322.o (.data); - build/u/assets/images/split/image2323.o (.data); - build/u/assets/images/split/image2324.o (.data); - build/u/assets/images/split/image2325.o (.data); - build/u/assets/images/split/image2326.o (.data); - build/u/assets/images/split/image2327.o (.data); - build/u/assets/images/split/image2328.o (.data); - build/u/assets/images/split/image2329.o (.data); - build/u/assets/images/split/image2330.o (.data); - build/u/assets/images/split/image2331.o (.data); - build/u/assets/images/split/image2332.o (.data); - build/u/assets/images/split/image2333.o (.data); - build/u/assets/images/split/image2334.o (.data); - build/u/assets/images/split/image2335.o (.data); - build/u/assets/images/split/image2336.o (.data); - build/u/assets/images/split/image2337.o (.data); - build/u/assets/images/split/image2338.o (.data); - build/u/assets/images/split/image2339.o (.data); - build/u/assets/images/split/image2340.o (.data); - build/u/assets/images/split/image2341.o (.data); - build/u/assets/images/split/image2342.o (.data); - build/u/assets/images/split/image2343.o (.data); - build/u/assets/images/split/image2344.o (.data); - build/u/assets/images/split/image2345.o (.data); - build/u/assets/images/split/image2346.o (.data); - build/u/assets/images/split/image2347.o (.data); - build/u/assets/images/split/image2348.o (.data); - build/u/assets/images/split/image2349.o (.data); - build/u/assets/images/split/image2350.o (.data); - build/u/assets/images/split/image2351.o (.data); - build/u/assets/images/split/image2352.o (.data); - build/u/assets/images/split/image2353.o (.data); - build/u/assets/images/split/image2354.o (.data); - build/u/assets/images/split/image2355.o (.data); - build/u/assets/images/split/image2356.o (.data); - build/u/assets/images/split/image2357.o (.data); - build/u/assets/images/split/image2358.o (.data); - build/u/assets/images/split/image2359.o (.data); - build/u/assets/images/split/image2360.o (.data); - build/u/assets/images/split/image2361.o (.data); - build/u/assets/images/split/image2362.o (.data); - build/u/assets/images/split/image2363.o (.data); - build/u/assets/images/split/image2364.o (.data); - build/u/assets/images/split/image2365.o (.data); - build/u/assets/images/split/image2366.o (.data); - build/u/assets/images/split/image2367.o (.data); - build/u/assets/images/split/image2368.o (.data); - build/u/assets/images/split/image2369.o (.data); - build/u/assets/images/split/image2370.o (.data); - build/u/assets/images/split/image2371.o (.data); - build/u/assets/images/split/image2372.o (.data); - build/u/assets/images/split/image2373.o (.data); - build/u/assets/images/split/image2374.o (.data); - build/u/assets/images/split/image2375.o (.data); - build/u/assets/images/split/image2376.o (.data); - build/u/assets/images/split/image2377.o (.data); - build/u/assets/images/split/image2378.o (.data); - build/u/assets/images/split/image2379.o (.data); - build/u/assets/images/split/image2380.o (.data); - build/u/assets/images/split/image2381.o (.data); - build/u/assets/images/split/image2382.o (.data); - build/u/assets/images/split/image2383.o (.data); - build/u/assets/images/split/image2384.o (.data); - build/u/assets/images/split/image2385.o (.data); - build/u/assets/images/split/image2386.o (.data); - build/u/assets/images/split/image2387.o (.data); - build/u/assets/images/split/image2388.o (.data); - build/u/assets/images/split/image2389.o (.data); - build/u/assets/images/split/image2390.o (.data); - build/u/assets/images/split/image2391.o (.data); - build/u/assets/images/split/image2392.o (.data); - build/u/assets/images/split/image2393.o (.data); - build/u/assets/images/split/image2394.o (.data); - build/u/assets/images/split/image2395.o (.data); - build/u/assets/images/split/image2396.o (.data); - build/u/assets/images/split/image2397.o (.data); - build/u/assets/images/split/image2398.o (.data); - build/u/assets/images/split/image2399.o (.data); - build/u/assets/images/split/image2400.o (.data); - build/u/assets/images/split/image2401.o (.data); - build/u/assets/images/split/image2402.o (.data); - build/u/assets/images/split/image2403.o (.data); - build/u/assets/images/split/image2404.o (.data); - build/u/assets/images/split/image2405.o (.data); - build/u/assets/images/split/image2406.o (.data); - build/u/assets/images/split/image2407.o (.data); - build/u/assets/images/split/image2408.o (.data); - build/u/assets/images/split/image2409.o (.data); - build/u/assets/images/split/image2410.o (.data); - build/u/assets/images/split/image2411.o (.data); - build/u/assets/images/split/image2412.o (.data); - build/u/assets/images/split/image2413.o (.data); - build/u/assets/images/split/image2414.o (.data); - build/u/assets/images/split/image2415.o (.data); - build/u/assets/images/split/image2416.o (.data); - build/u/assets/images/split/image2417.o (.data); - build/u/assets/images/split/image2418.o (.data); - build/u/assets/images/split/image2419.o (.data); - build/u/assets/images/split/image2420.o (.data); - build/u/assets/images/split/image2421.o (.data); - build/u/assets/images/split/image2422.o (.data); - build/u/assets/images/split/image2423.o (.data); - build/u/assets/images/split/image2424.o (.data); - build/u/assets/images/split/image2425.o (.data); - build/u/assets/images/split/image2426.o (.data); - build/u/assets/images/split/image2427.o (.data); - build/u/assets/images/split/image2428.o (.data); - build/u/assets/images/split/image2429.o (.data); - build/u/assets/images/split/image2430.o (.data); - build/u/assets/images/split/image2431.o (.data); - build/u/assets/images/split/image2432.o (.data); - build/u/assets/images/split/image2433.o (.data); - build/u/assets/images/split/image2434.o (.data); - build/u/assets/images/split/image2435.o (.data); - build/u/assets/images/split/image2436.o (.data); - build/u/assets/images/split/image2437.o (.data); - build/u/assets/images/split/image2438.o (.data); - build/u/assets/images/split/image2439.o (.data); - build/u/assets/images/split/image2440.o (.data); - build/u/assets/images/split/image2441.o (.data); - build/u/assets/images/split/image2442.o (.data); - build/u/assets/images/split/image2443.o (.data); - build/u/assets/images/split/image2444.o (.data); - build/u/assets/images/split/image2445.o (.data); - build/u/assets/images/split/image2446.o (.data); - build/u/assets/images/split/image2447.o (.data); - build/u/assets/images/split/image2448.o (.data); - build/u/assets/images/split/image2449.o (.data); - build/u/assets/images/split/image2450.o (.data); - build/u/assets/images/split/image2451.o (.data); - build/u/assets/images/split/image2452.o (.data); - build/u/assets/images/split/image2453.o (.data); - build/u/assets/images/split/image2454.o (.data); - build/u/assets/images/split/image2455.o (.data); - build/u/assets/images/split/image2456.o (.data); - build/u/assets/images/split/image2457.o (.data); - build/u/assets/images/split/image2458.o (.data); - build/u/assets/images/split/image2459.o (.data); - build/u/assets/images/split/image2460.o (.data); - build/u/assets/images/split/image2461.o (.data); - build/u/assets/images/split/image2462.o (.data); - build/u/assets/images/split/image2463.o (.data); - build/u/assets/images/split/image2464.o (.data); - build/u/assets/images/split/image2465.o (.data); - build/u/assets/images/split/image2466.o (.data); - build/u/assets/images/split/image2467.o (.data); - build/u/assets/images/split/image2468.o (.data); - build/u/assets/images/split/image2469.o (.data); - build/u/assets/images/split/image2470.o (.data); - build/u/assets/images/split/image2471.o (.data); - build/u/assets/images/split/image2472.o (.data); - build/u/assets/images/split/image2473.o (.data); - build/u/assets/images/split/image2474.o (.data); - build/u/assets/images/split/image2475.o (.data); - build/u/assets/images/split/image2476.o (.data); - build/u/assets/images/split/image2477.o (.data); - build/u/assets/images/split/image2478.o (.data); - build/u/assets/images/split/image2479.o (.data); - build/u/assets/images/split/image2480.o (.data); - build/u/assets/images/split/image2481.o (.data); - build/u/assets/images/split/image2482.o (.data); - build/u/assets/images/split/image2483.o (.data); - build/u/assets/images/split/image2484.o (.data); - build/u/assets/images/split/image2485.o (.data); - build/u/assets/images/split/image2486.o (.data); - build/u/assets/images/split/image2487.o (.data); - build/u/assets/images/split/image2488.o (.data); - build/u/assets/images/split/image2489.o (.data); - build/u/assets/images/split/image2490.o (.data); - build/u/assets/images/split/image2491.o (.data); - build/u/assets/images/split/image2492.o (.data); - build/u/assets/images/split/image2493.o (.data); - build/u/assets/images/split/image2494.o (.data); - build/u/assets/images/split/image2495.o (.data); - build/u/assets/images/split/image2496.o (.data); - build/u/assets/images/split/image2497.o (.data); - build/u/assets/images/split/image2498.o (.data); - build/u/assets/images/split/image2499.o (.data); - build/u/assets/images/split/image2500.o (.data); - build/u/assets/images/split/image2501.o (.data); - build/u/assets/images/split/image2502.o (.data); - build/u/assets/images/split/image2503.o (.data); - build/u/assets/images/split/image2504.o (.data); - build/u/assets/images/split/image2505.o (.data); - build/u/assets/images/split/image2506.o (.data); - build/u/assets/images/split/image2507.o (.data); - build/u/assets/images/split/image2508.o (.data); - build/u/assets/images/split/image2509.o (.data); - build/u/assets/images/split/image2510.o (.data); - build/u/assets/images/split/image2511.o (.data); - build/u/assets/images/split/image2512.o (.data); - build/u/assets/images/split/image2513.o (.data); - build/u/assets/images/split/image2514.o (.data); - build/u/assets/images/split/image2515.o (.data); - build/u/assets/images/split/image2516.o (.data); - build/u/assets/images/split/image2517.o (.data); - build/u/assets/images/split/image2518.o (.data); - build/u/assets/images/split/image2519.o (.data); - build/u/assets/images/split/image2520.o (.data); - build/u/assets/images/split/image2521.o (.data); - build/u/assets/images/split/image2522.o (.data); - build/u/assets/images/split/image2523.o (.data); - build/u/assets/images/split/image2524.o (.data); - build/u/assets/images/split/image2525.o (.data); - build/u/assets/images/split/image2526.o (.data); - build/u/assets/images/split/image2527.o (.data); - build/u/assets/images/split/image2528.o (.data); - build/u/assets/images/split/image2529.o (.data); - build/u/assets/images/split/image2530.o (.data); - build/u/assets/images/split/image2531.o (.data); - build/u/assets/images/split/image2532.o (.data); - build/u/assets/images/split/image2533.o (.data); - build/u/assets/images/split/image2534.o (.data); - build/u/assets/images/split/image2535.o (.data); - build/u/assets/images/split/image2536.o (.data); - build/u/assets/images/split/image2537.o (.data); - build/u/assets/images/split/image2538.o (.data); - build/u/assets/images/split/image2539.o (.data); - build/u/assets/images/split/image2540.o (.data); - build/u/assets/images/split/image2541.o (.data); - build/u/assets/images/split/image2542.o (.data); - build/u/assets/images/split/image2543.o (.data); - build/u/assets/images/split/image2544.o (.data); - build/u/assets/images/split/image2545.o (.data); - build/u/assets/images/split/image2546.o (.data); - build/u/assets/images/split/image2547.o (.data); - build/u/assets/images/split/image2548.o (.data); - build/u/assets/images/split/image2549.o (.data); - build/u/assets/images/split/image2550.o (.data); - build/u/assets/images/split/image2551.o (.data); - build/u/assets/images/split/image2552.o (.data); - build/u/assets/images/split/image2553.o (.data); - build/u/assets/images/split/image2554.o (.data); - build/u/assets/images/split/image2555.o (.data); - build/u/assets/images/split/image2556.o (.data); - build/u/assets/images/split/image2557.o (.data); - build/u/assets/images/split/image2558.o (.data); - build/u/assets/images/split/image2559.o (.data); - build/u/assets/images/split/image2560.o (.data); - build/u/assets/images/split/image2561.o (.data); - build/u/assets/images/split/image2562.o (.data); - build/u/assets/images/split/image2563.o (.data); - build/u/assets/images/split/image2564.o (.data); - build/u/assets/images/split/image2565.o (.data); - build/u/assets/images/split/image2566.o (.data); - build/u/assets/images/split/image2567.o (.data); - build/u/assets/images/split/image2568.o (.data); - build/u/assets/images/split/image2569.o (.data); - build/u/assets/images/split/image2570.o (.data); - build/u/assets/images/split/image2571.o (.data); - build/u/assets/images/split/image2572.o (.data); - build/u/assets/images/split/image2573.o (.data); - build/u/assets/images/split/image2574.o (.data); - build/u/assets/images/split/image2575.o (.data); - build/u/assets/images/split/image2576.o (.data); - build/u/assets/images/split/image2577.o (.data); - build/u/assets/images/split/image2578.o (.data); - build/u/assets/images/split/image2579.o (.data); - build/u/assets/images/split/image2580.o (.data); - build/u/assets/images/split/image2581.o (.data); - build/u/assets/images/split/image2582.o (.data); - build/u/assets/images/split/image2583.o (.data); - build/u/assets/images/split/image2584.o (.data); - build/u/assets/images/split/image2585.o (.data); - build/u/assets/images/split/image2586.o (.data); - build/u/assets/images/split/image2587.o (.data); - build/u/assets/images/split/image2588.o (.data); - build/u/assets/images/split/image2589.o (.data); - build/u/assets/images/split/image2590.o (.data); - build/u/assets/images/split/image2591.o (.data); - build/u/assets/images/split/image2592.o (.data); - build/u/assets/images/split/image2593.o (.data); - build/u/assets/images/split/image2594.o (.data); - build/u/assets/images/split/image2595.o (.data); - build/u/assets/images/split/image2596.o (.data); - build/u/assets/images/split/image2597.o (.data); - build/u/assets/images/split/image2598.o (.data); - build/u/assets/images/split/image2599.o (.data); - build/u/assets/images/split/image2600.o (.data); - build/u/assets/images/split/image2601.o (.data); - build/u/assets/images/split/image2602.o (.data); - build/u/assets/images/split/image2603.o (.data); - build/u/assets/images/split/image2604.o (.data); - build/u/assets/images/split/image2605.o (.data); - build/u/assets/images/split/image2606.o (.data); - build/u/assets/images/split/image2607.o (.data); - build/u/assets/images/split/image2608.o (.data); - build/u/assets/images/split/image2609.o (.data); - build/u/assets/images/split/image2610.o (.data); - build/u/assets/images/split/image2611.o (.data); - build/u/assets/images/split/image2612.o (.data); - build/u/assets/images/split/image2613.o (.data); - build/u/assets/images/split/image2614.o (.data); - build/u/assets/images/split/image2615.o (.data); - build/u/assets/images/split/image2616.o (.data); - build/u/assets/images/split/image2617.o (.data); - build/u/assets/images/split/image2618.o (.data); - build/u/assets/images/split/image2619.o (.data); - build/u/assets/images/split/image2620.o (.data); - build/u/assets/images/split/image2621.o (.data); - build/u/assets/images/split/image2622.o (.data); - build/u/assets/images/split/image2623.o (.data); - build/u/assets/images/split/image2624.o (.data); - build/u/assets/images/split/image2625.o (.data); - build/u/assets/images/split/image2626.o (.data); - build/u/assets/images/split/image2627.o (.data); - build/u/assets/images/split/image2628.o (.data); - build/u/assets/images/split/image2629.o (.data); - build/u/assets/images/split/image2630.o (.data); - build/u/assets/images/split/image2631.o (.data); - build/u/assets/images/split/image2632.o (.data); - build/u/assets/images/split/image2633.o (.data); - build/u/assets/images/split/image2634.o (.data); - build/u/assets/images/split/image2635.o (.data); - build/u/assets/images/split/image2636.o (.data); - build/u/assets/images/split/image2637.o (.data); - build/u/assets/images/split/image2638.o (.data); - build/u/assets/images/split/image2639.o (.data); - build/u/assets/images/split/image2640.o (.data); - build/u/assets/images/split/image2641.o (.data); - build/u/assets/images/split/image2642.o (.data); - build/u/assets/images/split/image2643.o (.data); - build/u/assets/images/split/image2644.o (.data); - build/u/assets/images/split/image2645.o (.data); - build/u/assets/images/split/image2646.o (.data); - build/u/assets/images/split/image2647.o (.data); - build/u/assets/images/split/image2648.o (.data); - build/u/assets/images/split/image2649.o (.data); - build/u/assets/images/split/image2650.o (.data); - build/u/assets/images/split/image2651.o (.data); - build/u/assets/images/split/image2652.o (.data); - build/u/assets/images/split/image2653.o (.data); - build/u/assets/images/split/image2654.o (.data); - build/u/assets/images/split/image2655.o (.data); - build/u/assets/images/split/image2656.o (.data); - build/u/assets/images/split/image2657.o (.data); - build/u/assets/images/split/image2658.o (.data); - build/u/assets/images/split/image2659.o (.data); - build/u/assets/images/split/image2660.o (.data); - build/u/assets/images/split/image2661.o (.data); - build/u/assets/images/split/image2662.o (.data); - build/u/assets/images/split/image2663.o (.data); - build/u/assets/images/split/image2664.o (.data); - build/u/assets/images/split/image2665.o (.data); - build/u/assets/images/split/image2666.o (.data); - build/u/assets/images/split/image2667.o (.data); - build/u/assets/images/split/image2668.o (.data); - build/u/assets/images/split/image2669.o (.data); - build/u/assets/images/split/image2670.o (.data); - build/u/assets/images/split/image2671.o (.data); - build/u/assets/images/split/image2672.o (.data); - build/u/assets/images/split/image2673.o (.data); - build/u/assets/images/split/image2674.o (.data); - build/u/assets/images/split/image2675.o (.data); - build/u/assets/images/split/image2676.o (.data); - build/u/assets/images/split/image2677.o (.data); - build/u/assets/images/split/image2678.o (.data); - build/u/assets/images/split/image2679.o (.data); - build/u/assets/images/split/image2680.o (.data); - build/u/assets/images/split/image2681.o (.data); - build/u/assets/images/split/image2682.o (.data); - build/u/assets/images/split/image2683.o (.data); - build/u/assets/images/split/image2684.o (.data); - build/u/assets/images/split/image2685.o (.data); - build/u/assets/images/split/image2686.o (.data); - build/u/assets/images/split/image2687.o (.data); - build/u/assets/images/split/image2688.o (.data); - build/u/assets/images/split/image2689.o (.data); - build/u/assets/images/split/image2690.o (.data); - build/u/assets/images/split/image2691.o (.data); - build/u/assets/images/split/image2692.o (.data); - build/u/assets/images/split/image2693.o (.data); - build/u/assets/images/split/image2694.o (.data); - build/u/assets/images/split/image2695.o (.data); - build/u/assets/images/split/image2696.o (.data); - build/u/assets/images/split/image2697.o (.data); - build/u/assets/images/split/image2698.o (.data); - build/u/assets/images/split/image2699.o (.data); +#include "ld/images.ld.inc" } END_SEG(images) @@ -3192,686 +196,15 @@ SECTIONS BEGIN_SEG(csegment, __csegtempPos, __dataSegmentVaddrStart) { - build/u/src/rspboot.o (.text); - build/u/src/gspboot.o (.text); - build/u/src/aspboot.o (.text); - build/u/src/boot.o (.data); - build/u/src/init.o (.data); - build/u/src/sched.o (.data); - build/u/src/osMapTLB.o (.data); - build/u/src/tlb_manage.o (.data); - build/u/src/tlb_random.o (.data); - build/u/src/tlb_resolve.o (.data); - build/u/src/tlb_hardwire.o (.data); - build/u/src/audi.o (.data); - build/u/src/speed_graph.o (.data); - build/u/src/fr.o (.data); - build/u/src/deb.o (.data); - build/u/src/fault.o (.data); - /*deb_print may be part of fault per pd beta (.data);*/ - build/u/src/deb_print.o (.data); - build/u/src/getra.o (.data); - build/u/src/ramrom.o (.data); - build/u/src/boss.o (.data); - build/u/src/music.o (.data); - build/u/src/snd.o (.data); - build/u/src/memp.o (.data); - build/u/src/mema.o (.data); - build/u/src/random.o (.data); - build/u/src/token.o (.data); - build/u/src/str.o (.data); - build/u/src/sprintf.o (.data); - build/u/src/pi.o (.data); - build/u/src/vi.o (.data); - build/u/src/debugmenu.o (.data); - build/u/src/joy.o (.data); - build/u/src/motor.o (.data); - build/u/src/rmon.o (.data); - - /*build/u/src/libultra/osPiRawStartDma.o (.data);*/ - build/u/src/libultra/io/pirawdma.o (.data); - build/u/src/libultra/io/pigetstat.o (.data); - build/u/src/libultrare/os/initialize.o (.data); - build/u/src/libultra/os/writebackdcacheall.o (.data); - build/u/src/libultra/os/invalicache.o (.data); - build/u/src/libultra/os/unmaptlb.o (.data); - build/u/src/libultra/os/getfpccsr.o (.data); - build/u/src/libultra/os/setfpccsr.o (.data); - build/u/src/libultra/os/createthread.o (.data); - build/u/src/libultra/os/startthread.o (.data); - build/u/src/libultra/os/createmesgqueue.o (.data); - build/u/src/libultra/os/parameters.o (.data); - build/u/src/libultra/os/stopthread.o (.data); - build/u/src/libultra/os/setthreadpri.o (.data); - build/u/src/libultra/os/getcount.o (.data); - build/u/src/libultrare/io/vimgr.o (.data); - build/u/src/libultrare/io/vitbl.o (.data); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.data); - build/u/src/libultra/io/visetevent.o (.data); - build/u/src/libultra/os/setintmask.o (.data); - build/u/src/libultra/os/recvmesg.o (.data); - build/u/src/libultra/os/sendmesg.o (.data); - build/u/src/libultra/io/visetmode.o (.data); - build/u/src/libultra/io/visetxscale.o (.data); - build/u/src/libultra/io/visetyscale.o (.data); - build/u/src/libultra/io/virepeatline.o (.data); - build/u/src/libultra/io/viblack.o (.data); - build/u/src/libultra/io/sptaskyielded.o (.data); - build/u/src/libultra/io/dpctr.o (.data); - build/u/src/libultra/io/vigetcurrframebuf.o (.data); - build/u/src/libultra/io/vigetnextframebuf.o (.data); - build/u/src/libultra/io/viswapbuf.o (.data); - build/u/src/libultra/io/dpsetstat.o (.data); - build/u/src/libultrare/io/sptask.o (.data); - build/u/src/libultra/io/dpsetnextbuf.o (.data); - build/u/src/libultra/io/sptaskyield.o (.data); - build/u/src/libultra/os/gettlbhi.o (.data); - build/u/src/libultra/os/virtualtophysical.o (.data); - build/u/src/libultra/io/aisetfreq.o (.data); - build/u/src/libultra/audio/sl.o (.data); - build/u/src/libultra/audio/heapalloc.o (.data); - build/u/src/libultra/os/gettime.o (.data); - build/u/src/libultra/libc/ll.o (.data); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.data); - build/u/src/libultra/io/aigetlen.o (.data); - build/u/src/libultra/audio/synthesizer.o (.data); - build/u/src/libultra/io/pidma.o (.data); - build/u/src/libultra/io/visetspecial.o (.data); - build/u/src/libultra/libc/bcopy.o (.data); - build/u/src/libultra/gu/perspective.o (.data); - build/u/src/libultra/gu/mtxutil.o (.data); - build/u/src/libultra/os/getcurrfaultthread.o (.data); - build/u/src/libultra/os/exception.o (.data); /*edited*/ - build/u/src/libultra/os/thread.o (.data); - build/u/src/libultra/os/yieldthread.o (.data); - build/u/src/libultra/os/invaldcache.o (.data); - build/u/src/libultra/os/writebackdcache.o (.data); - build/u/src/libultra/os/settimer.o (.data); - build/u/src/libultra/audio/heapinit.o (.data); - build/u/src/libultra/audio/bnkf.o (.data); - build/u/src/libultra/audio/csplayer.o (.data); - build/u/src/libultra/audio/seqpsetbank.o (.data); - build/u/src/libultra/audio/cspgetstate.o (.data); - build/u/src/libultra/audio/cseq.o (.data); - build/u/src/libultra/audio/cspsetseq.o (.data); - build/u/src/libultra/audio/cspplay.o (.data); - build/u/src/libultra/audio/cspstop.o (.data); - build/u/src/libultra/audio/cspsetvol.o (.data); - build/u/src/libultra/audio/event.o (.data); - build/u/src/libultra/audio/synaddplayer.o (.data); - build/u/src/libultra/audio/synallocvoice.o (.data); - build/u/src/libultra/audio/synsetvol.o (.data); - build/u/src/libultra/audio/synstartvoice.o (.data); - build/u/src/libultra/audio/synsetpan.o (.data); - build/u/src/libultra/audio/synsetpitch.o (.data); - build/u/src/libultra/audio/synsetfxmix.o (.data); - build/u/src/libultra/audio/synstopvoice.o (.data); - build/u/src/libultra/audio/synfreevoice.o (.data); - build/u/src/libultra/audio/cents2ratio.o (.data); - build/u/src/libultra/io/piread.o (.data); - build/u/src/libultra/libc/string.o (.data); - build/u/src/libultrare/libc/xprintf.o (.data); - build/u/src/libultrare/io/pimgr.o (.data); - build/u/src/libultrare/io/pfsinit.o (.data); - build/u/src/libultrare/io/controller.o (.data); - build/u/src/libultra/io/contquery.o (.data); - build/u/src/libultrare/io/contreaddata.o (.data); - build/u/src/libultrare/io/conteepprobe.o (.data); - build/u/src/libultrare/io/conteepread.o (.data); - build/u/src/libultrare/io/conteepwrite.o (.data); - build/u/src/libultrare/io/conteeplongread.o (.data); - build/u/src/libultrare/io/conteeplongwrite.o (.data); - build/u/src/libultrare/io/pfsisplug.o (.data); - build/u/src/libultra/io/siacs.o (.data); - build/u/src/libultra/io/sirawdma.o (.data); - build/u/src/libultra/io/crc.o (.data); - build/u/src/libultrare/io/contramwrite.o (.data); - build/u/src/libultrare/io/contramread.o (.data); - build/u/src/libultra/gu/align.o (.data); - build/u/src/libultra/gu/ortho.o (.data); - build/u/src/libultra/gu/coss.o (.data); - build/u/src/libultra/gu/sins.o (.data); - build/u/src/libultra/gu/translate.o (.data); - build/u/src/libultra/libc/bcmp.o (.data); - build/u/src/libultra/gu/scale.o (.data); - build/u/src/libultra/gu/lookatref.o (.data); - build/u/src/libultra/gu/lookat.o (.data); - build/u/src/libultra/gu/rotate.o (.data); - build/u/src/libultra/libc/llcvt.o (.data); /*edited*/ - build/u/src/libultra/os/setsr.o (.data); - build/u/src/libultra/os/getsr.o (.data); - build/u/src/libultra/io/sirawread.o (.data); - build/u/src/libultra/io/sirawwrite.o (.data); - build/u/src/libultra/io/pirawread.o (.data); - build/u/src/libultra/libc/bzero.o (.data); - build/u/src/libultra/os/sethwinterrupt.o (.data); - build/u/src/libultrare/io/leointerrupt.o (.data); - build/u/src/libultra/os/interrupt.o (.data); - build/u/src/libultra/os/timerintr.o (.data); - build/u/src/libultra/os/kdebugserver.o (.data); - build/u/src/libultra/os/getthreadpri.o (.data); - build/u/src/libultrare/io/vi.o (.data); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.data); - build/u/src/libultra/io/viswapcontext.o (.data); - build/u/src/libultra/io/spgetstat.o (.data); - build/u/src/libultra/io/spsetstat.o (.data); - build/u/src/libultra/io/spsetpc.o (.data); - build/u/src/libultra/io/sprawdma.o (.data); - build/u/src/libultra/io/sp.o (.data); - build/u/src/libultra/io/dp.o (.data); - build/u/src/libultra/os/probetlb.o (.data); - build/u/src/libultra/audio/syndelete.o (.data); - build/u/src/libultra/io/ai.o (.data); - build/u/src/libultrare/audio/drvrNew.o (.data); - build/u/src/libultra/audio/synallocfx.o (.data); - build/u/src/libultra/audio/mainbus.o (.data); - build/u/src/libultra/audio/load.o (.data); - build/u/src/libultra/audio/resample.o (.data); - build/u/src/libultrare/audio/env.o (.data); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.data); - build/u/src/libultra/audio/save.o (.data); - build/u/src/libultra/os/jammesg.o (.data); - build/u/src/libultra/io/pigetcmdq.o (.data); - build/u/src/libultra/gu/cosf.o (.data); /*edited*/ - build/u/src/libultra/gu/sinf.o (.data); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.data); - build/u/src/libultra/audio/seqplayer.o (.data); - build/u/src/libultra/audio/synstartvoiceparam.o (.data); - build/u/src/libultra/audio/copy.o (.data); - build/u/src/libultra/io/piacs.o (.data); - build/u/src/libultra/libc/xlitob.o (.data); - build/u/src/libultra/libc/xldtob.o (.data); - build/u/src/libultrare/io/epirawdma.o (.data); - build/u/src/libultrare/io/devmgr.o (.data); - build/u/src/libultra/io/contpfs.o (.data); - build/u/src/libultra/io/si.o (.data); - build/u/src/libultra/gu/normalize.o (.data); - build/u/src/libultra/gu/sqrtf.o (.data); - build/u/src/libultrare/io/leodiskinit.o (.data); - build/u/src/libultra/os/setcompare.o (.data); - build/u/src/libultra/audio/filter.o (.data); - build/u/src/libultrare/audio/reverb.o (.data); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.data); /*edited*/ - build/u/src/libultra/audio/seq.o (.data); - build/u/src/libultra/audio/synsetpriority.o (.data); - build/u/src/libultra/libc/ldiv.o (.data); - build/u/src/libultra/os/resetglobalintmask.o (.data); - build/u/src/libultrare/io/epirawwrite.o (.data); - build/u/src/libultra/io/vimodentsclan1.o (.data); - build/u/src/libultrare/io/vimodepallan1.o (.data); - build/u/src/libultrare/ultra80069080.o (.data); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.data);*/ - - build/u/src/aspboot.o (.rodata); - build/u/src/boot.o (.rodata); - build/u/src/init.o (.rodata); - build/u/src/sched.o (.rodata); - build/u/src/osMapTLB.o (.rodata); - build/u/src/tlb_manage.o (.rodata); - build/u/src/tlb_random.o (.rodata); - build/u/src/tlb_resolve.o (.rodata); - build/u/src/tlb_hardwire.o (.rodata); - build/u/src/audi.o (.rodata); - build/u/src/speed_graph.o (.rodata); - build/u/src/fr.o (.rodata); - build/u/src/deb.o (.rodata); - build/u/src/fault.o (.rodata); - /*deb_print may be part of fault per pd beta (.rodata);*/ - build/u/src/deb_print.o (.rodata); - build/u/src/getra.o (.rodata); - build/u/src/ramrom.o (.rodata); - build/u/src/boss.o (.rodata); - build/u/src/music.o (.rodata); - build/u/src/snd.o (.rodata); - build/u/src/memp.o (.rodata); - build/u/src/mema.o (.rodata); - build/u/src/random.o (.rodata); - build/u/src/token.o (.rodata); - build/u/src/str.o (.rodata); - build/u/src/sprintf.o (.rodata); - build/u/src/pi.o (.rodata); - build/u/src/vi.o (.rodata); - build/u/src/debugmenu.o (.rodata); - build/u/src/joy.o (.rodata); - build/u/src/motor.o (.rodata); - build/u/src/rmon.o (.rodata); - - /*build/u/src/libultra/osPiRawStartDma.o (.rodata);*/ - build/u/src/libultra/io/pirawdma.o (.rodata); - build/u/src/libultra/io/pigetstat.o (.rodata); - build/u/src/libultrare/os/initialize.o (.rodata); - build/u/src/libultra/os/writebackdcacheall.o (.rodata); - build/u/src/libultra/os/invalicache.o (.rodata); - build/u/src/libultra/os/unmaptlb.o (.rodata); - build/u/src/libultra/os/getfpccsr.o (.rodata); - build/u/src/libultra/os/setfpccsr.o (.rodata); - build/u/src/libultra/os/createthread.o (.rodata); - build/u/src/libultra/os/startthread.o (.rodata); - build/u/src/libultra/os/createmesgqueue.o (.rodata); - build/u/src/libultra/os/parameters.o (.rodata); - build/u/src/libultra/os/stopthread.o (.rodata); - build/u/src/libultra/os/setthreadpri.o (.rodata); - build/u/src/libultra/os/getcount.o (.rodata); - build/u/src/libultrare/io/vimgr.o (.rodata); - build/u/src/libultrare/io/vitbl.o (.rodata); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.rodata); - build/u/src/libultra/io/visetevent.o (.rodata); - build/u/src/libultra/os/setintmask.o (.rodata); - build/u/src/libultra/os/recvmesg.o (.rodata); - build/u/src/libultra/os/sendmesg.o (.rodata); - build/u/src/libultra/io/visetmode.o (.rodata); - build/u/src/libultra/io/visetxscale.o (.rodata); - build/u/src/libultra/io/visetyscale.o (.rodata); - build/u/src/libultra/io/virepeatline.o (.rodata); - build/u/src/libultra/io/viblack.o (.rodata); - build/u/src/libultra/io/sptaskyielded.o (.rodata); - build/u/src/libultra/io/dpctr.o (.rodata); - build/u/src/libultra/io/vigetcurrframebuf.o (.rodata); - build/u/src/libultra/io/vigetnextframebuf.o (.rodata); - build/u/src/libultra/io/viswapbuf.o (.rodata); - build/u/src/libultra/io/dpsetstat.o (.rodata); - build/u/src/libultrare/io/sptask.o (.rodata); - build/u/src/libultra/io/dpsetnextbuf.o (.rodata); - build/u/src/libultra/io/sptaskyield.o (.rodata); - build/u/src/libultra/os/gettlbhi.o (.rodata); - build/u/src/libultra/os/virtualtophysical.o (.rodata); - build/u/src/libultra/io/aisetfreq.o (.rodata); - build/u/src/libultra/audio/sl.o (.rodata); - build/u/src/libultra/audio/heapalloc.o (.rodata); - build/u/src/libultra/os/gettime.o (.rodata); - build/u/src/libultra/libc/ll.o (.rodata); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.rodata); - build/u/src/libultra/io/aigetlen.o (.rodata); - build/u/src/libultra/audio/synthesizer.o (.rodata); - build/u/src/libultra/io/pidma.o (.rodata); - build/u/src/libultra/io/visetspecial.o (.rodata); - build/u/src/libultra/libc/bcopy.o (.rodata); - build/u/src/libultra/gu/perspective.o (.rodata); - build/u/src/libultra/gu/mtxutil.o (.rodata); - build/u/src/libultra/os/getcurrfaultthread.o (.rodata); - build/u/src/libultra/os/exception.o (.rodata); /*edited*/ - build/u/src/libultra/os/thread.o (.rodata); - build/u/src/libultra/os/yieldthread.o (.rodata); - build/u/src/libultra/os/invaldcache.o (.rodata); - build/u/src/libultra/os/writebackdcache.o (.rodata); - build/u/src/libultra/os/settimer.o (.rodata); - build/u/src/libultra/audio/heapinit.o (.rodata); - build/u/src/libultra/audio/bnkf.o (.rodata); - build/u/src/libultra/audio/csplayer.o (.rodata); - build/u/src/libultra/audio/seqpsetbank.o (.rodata); - build/u/src/libultra/audio/cspgetstate.o (.rodata); - build/u/src/libultra/audio/cseq.o (.rodata); - build/u/src/libultra/audio/cspsetseq.o (.rodata); - build/u/src/libultra/audio/cspplay.o (.rodata); - build/u/src/libultra/audio/cspstop.o (.rodata); - build/u/src/libultra/audio/cspsetvol.o (.rodata); - build/u/src/libultra/audio/event.o (.rodata); - build/u/src/libultra/audio/synaddplayer.o (.rodata); - build/u/src/libultra/audio/synallocvoice.o (.rodata); - build/u/src/libultra/audio/synsetvol.o (.rodata); - build/u/src/libultra/audio/synstartvoice.o (.rodata); - build/u/src/libultra/audio/synsetpan.o (.rodata); - build/u/src/libultra/audio/synsetpitch.o (.rodata); - build/u/src/libultra/audio/synsetfxmix.o (.rodata); - build/u/src/libultra/audio/synstopvoice.o (.rodata); - build/u/src/libultra/audio/synfreevoice.o (.rodata); - build/u/src/libultra/audio/cents2ratio.o (.rodata); - build/u/src/libultra/io/piread.o (.rodata); - build/u/src/libultra/libc/string.o (.rodata); - build/u/src/libultrare/libc/xprintf.o (.rodata); - build/u/src/libultrare/io/pimgr.o (.rodata); - build/u/src/libultrare/io/pfsinit.o (.rodata); - build/u/src/libultrare/io/controller.o (.rodata); - build/u/src/libultra/io/contquery.o (.rodata); - build/u/src/libultrare/io/contreaddata.o (.rodata); - build/u/src/libultrare/io/conteepprobe.o (.rodata); - build/u/src/libultrare/io/conteepread.o (.rodata); - build/u/src/libultrare/io/conteepwrite.o (.rodata); - build/u/src/libultrare/io/conteeplongread.o (.rodata); - build/u/src/libultrare/io/conteeplongwrite.o (.rodata); - build/u/src/libultrare/io/pfsisplug.o (.rodata); - build/u/src/libultra/io/siacs.o (.rodata); - build/u/src/libultra/io/sirawdma.o (.rodata); - build/u/src/libultra/io/crc.o (.rodata); - build/u/src/libultrare/io/contramwrite.o (.rodata); - build/u/src/libultrare/io/contramread.o (.rodata); - build/u/src/libultra/gu/align.o (.rodata); - build/u/src/libultra/gu/ortho.o (.rodata); - build/u/src/libultra/gu/coss.o (.rodata); - build/u/src/libultra/gu/sins.o (.rodata); - build/u/src/libultra/gu/translate.o (.rodata); - build/u/src/libultra/libc/bcmp.o (.rodata); - build/u/src/libultra/gu/scale.o (.rodata); - build/u/src/libultra/gu/lookatref.o (.rodata); - build/u/src/libultra/gu/lookat.o (.rodata); - build/u/src/libultra/gu/rotate.o (.rodata); - build/u/src/libultra/libc/llcvt.o (.rodata); /*edited*/ - build/u/src/libultra/os/setsr.o (.rodata); - build/u/src/libultra/os/getsr.o (.rodata); - build/u/src/libultra/io/sirawread.o (.rodata); - build/u/src/libultra/io/sirawwrite.o (.rodata); - build/u/src/libultra/io/pirawread.o (.rodata); - build/u/src/libultra/libc/bzero.o (.rodata); - build/u/src/libultra/os/sethwinterrupt.o (.rodata); - build/u/src/libultrare/io/leointerrupt.o (.rodata); - build/u/src/libultra/os/interrupt.o (.rodata); - build/u/src/libultra/os/timerintr.o (.rodata); - build/u/src/libultra/os/kdebugserver.o (.rodata); - build/u/src/libultra/os/getthreadpri.o (.rodata); - build/u/src/libultrare/io/vi.o (.rodata); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.rodata); - build/u/src/libultra/io/viswapcontext.o (.rodata); - build/u/src/libultra/io/spgetstat.o (.rodata); - build/u/src/libultra/io/spsetstat.o (.rodata); - build/u/src/libultra/io/spsetpc.o (.rodata); - build/u/src/libultra/io/sprawdma.o (.rodata); - build/u/src/libultra/io/sp.o (.rodata); - build/u/src/libultra/io/dp.o (.rodata); - build/u/src/libultra/os/probetlb.o (.rodata); - build/u/src/libultra/audio/syndelete.o (.rodata); - build/u/src/libultra/io/ai.o (.rodata); - build/u/src/libultrare/audio/drvrNew.o (.rodata); - build/u/src/libultra/audio/synallocfx.o (.rodata); - build/u/src/libultra/audio/mainbus.o (.rodata); - build/u/src/libultra/audio/load.o (.rodata); - build/u/src/libultra/audio/resample.o (.rodata); - build/u/src/libultrare/audio/env.o (.rodata); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.rodata); - build/u/src/libultra/audio/save.o (.rodata); - build/u/src/libultra/os/jammesg.o (.rodata); - build/u/src/libultra/io/pigetcmdq.o (.rodata); - build/u/src/libultra/gu/cosf.o (.rodata); /*edited*/ - build/u/src/libultra/gu/sinf.o (.rodata); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.rodata); - build/u/src/libultra/audio/seqplayer.o (.rodata); - build/u/src/libultra/audio/synstartvoiceparam.o (.rodata); - build/u/src/libultra/audio/copy.o (.rodata); - build/u/src/libultra/io/piacs.o (.rodata); - build/u/src/libultra/libc/xlitob.o (.rodata); - build/u/src/libultra/libc/xldtob.o (.rodata); - build/u/src/libultrare/io/epirawdma.o (.rodata); - build/u/src/libultrare/io/devmgr.o (.rodata); - build/u/src/libultra/io/contpfs.o (.rodata); - build/u/src/libultra/io/si.o (.rodata); - build/u/src/libultra/gu/normalize.o (.rodata); - build/u/src/libultra/gu/sqrtf.o (.rodata); - build/u/src/libultrare/io/leodiskinit.o (.rodata); - build/u/src/libultra/os/setcompare.o (.rodata); - build/u/src/libultra/audio/filter.o (.rodata); - build/u/src/libultrare/audio/reverb.o (.rodata); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.rodata); /*edited*/ - build/u/src/libultra/audio/seq.o (.rodata); - build/u/src/libultra/audio/synsetpriority.o (.rodata); - build/u/src/libultra/libc/ldiv.o (.rodata); - build/u/src/libultra/os/resetglobalintmask.o (.rodata); - build/u/src/libultrare/io/epirawwrite.o (.rodata); - build/u/src/libultra/io/vimodentsclan1.o (.rodata); - build/u/src/libultrare/io/vimodepallan1.o (.rodata); - build/u/src/libultrare/ultra80069080.o (.rodata); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.rodata);*/ - - build/u/src/game/initgamedata.o (.data); - build/u/src/game/initweaponanigroups.o (.data); - build/u/src/game/initactorpropstuff.o (.data); - build/u/src/game/initnull_0009D0.o (.data); - build/u/src/game/initunk_0009E0.o (.data); - build/u/src/game/initanitable.o (.data); - build/u/src/game/initplayergaitobject.o (.data); - build/u/src/game/setguscale.o (.data); - build/u/src/game/initnull_000BC0.o (.data); - build/u/src/game/initimages.o (.data); - build/u/src/game/initintromatrices.o (.data); - build/u/src/game/initmenus.o (.data); - build/u/src/game/initguards.o (.data); - build/u/src/game/deb_loadallmodels.o (.data); - build/u/src/game/initobjects.o (.data); - build/u/src/game/prop.o (.data); - build/u/src/game/objective.o (.data); - build/u/src/game/ejectedcartridges.o (.data); - build/u/src/game/initBondDATA.o (.data); - build/u/src/game/initunk_005450.o (.data); - build/u/src/game/initunk_005520.o (.data); - build/u/src/game/bondview_r.o (.data); - build/u/src/game/inititemslots.o (.data); - build/u/src/game/initBondDATAdefaults.o (.data); - build/u/src/game/initpathtablesomething.o (.data); - build/u/src/game/initpathtablelinks.o (.data); - build/u/src/game/initexplosioncasing.o (.data); - build/u/src/game/alloc_window_pieces.o (.data); - build/u/src/game/initunk_007290.o (.data); - build/u/src/game/initcheattext.o (.data); - build/u/src/game/initmttex.o (.data); - build/u/src/game/cleanup_guard_data.o (.data); - build/u/src/game/cleanup_object_sounds.o (.data); - build/u/src/game/cleanup_alarms.o (.data); - build/u/src/game/cleanup_objects.o (.data); - build/u/src/game/cleanup_objectives.o (.data); - build/u/src/game/cleanupSFXRelated.o (.data); - build/u/src/game/playerstats_007770.o (.data); - build/u/src/game/cleanexplosions.o (.data); - build/u/src/game/cleanwindowpieces.o (.data); - build/u/src/game/null_007970.o (.data); - build/u/src/game/cleanplayersound.o (.data); - build/u/src/game/title.o (.data); - build/u/src/game/front.o (.data); - build/u/src/game/unk_01B0E0.o (.data); - build/u/src/game/unk_01B240.o (.data); - build/u/src/game/unk_01BAE0.o (.data); - build/u/src/game/blood_animation.o (.data); - build/u/src/game/blood_decrypt.o (.data); - build/u/src/game/file.o (.data); - build/u/src/game/file2.o (.data); - build/u/src/game/chr.o (.data); - build/u/src/game/chrlv.o (.data); - build/u/src/game/chrai.o (.data); - build/u/src/game/chrprop.o (.data); - build/u/src/game/chrobjhandler.o (.data); - build/u/src/game/loadobjectmodel.o (.data); - build/u/src/game/objective_status.o (.data); - build/u/src/game/objective_status2.o (.data); - build/u/src/game/math_sincos.o (.data); - build/u/src/game/matrixmath.o (.data); - build/u/src/game/math_unk_05A9E0.o (.data); - build/u/src/game/math_atan2f.o (.data); - build/u/src/game/math_asinacos.o (.data); - build/u/src/game/math_asinfacosf.o (.data); - build/u/src/game/matrixmath_misc.o (.data); - build/u/src/game/quaternion.o (.data); - build/u/src/game/math_floor.o (.data); - build/u/src/game/math_ceil.o (.data); - build/u/src/game/gun.o (.data); - build/u/src/game/bondwalk2.o (.data); - build/u/src/game/objecthandler.o (.data); - build/u/src/game/objecthandler_1.o (.data); - build/u/src/game/objecthandler_2.o (.data); - build/u/src/game/othermodemicrocode.o (.data); - build/u/src/game/bondview.o (.data); - build/u/src/game/bondinv.o (.data); - build/u/src/game/bondhead.o (.data); - build/u/src/game/debugmenu_08FE00.o (.data); - build/u/src/game/debugmenu_handler.o (.data); - build/u/src/game/unk_091080.o (.data); - build/u/src/game/chraidata.o (.data); - build/u/src/game/pobjdata.o (.data); - build/u/src/game/gobjdata.o (.data); - build/u/src/game/gobjdata2.o (.data); - build/u/src/game/cobjdata.o (.data); - build/u/src/game/cheat_buttons.o (.data); - build/u/src/game/unk_092890.o (.data); - build/u/src/game/unk_092E50.o (.data); - build/u/src/game/player.o (.data); - build/u/src/game/player_2.o (.data); - build/u/src/game/crc.o (.data); - build/u/src/game/chrObjRandom.o (.data); - build/u/src/game/unk_09B7A0.o (.data); - build/u/src/game/explosions.o (.data); - build/u/src/game/unk_0A1DA0.o (.data); - build/u/src/game/watch.o (.data); - build/u/src/game/textrelated.o (.data); - build/u/src/game/stan.o (.data); - build/u/src/game/unk_0B3200.o (.data); - build/u/src/game/bg.o (.data); - build/u/src/game/bg2.o (.data); - build/u/src/game/fog.o (.data); - build/u/src/game/lightfixture.o (.data); - build/u/src/game/unk_0BC530.o (.data); - build/u/src/game/ob.o (.data); - build/u/src/game/dyn.o (.data); - build/u/src/game/lvl.o (.data); - build/u/src/game/ramromreplay.o (.data); - build/u/src/game/unk_0C0A70.o (.data); - build/u/src/game/mp_music.o (.data); - build/u/src/game/lvl_text.o (.data); - build/u/src/game/mp_watch.o (.data); - build/u/src/game/radar.o (.data); - build/u/src/game/mp_weapon.o (.data); - build/u/src/game/image.o (.data); - build/u/src/game/image_bank.o (.data); - build/u/src/game/unk_0CC4C0.o (.data); - build/u/src/game/decompress.o (.data); - build/u/src/game/zlib.o (.data); - build/u/src/game/rsp.o (.data); - build/u/src/game/indy_comms.o (.data); - build/u/src/game/indy_commands.o (.data); - build/u/src/game/game_debug.o (.data); - build/u/src/game/compiletime.o (.data); - build/u/src/game/unk_0D1AC0.o (.data); - build/u/src/game/viewport.o (.data); - build/u/src/game/music_0D2720.o (.data); - build/u/src/game/spectrum.o (.data); - - build/u/src/game/initgamedata.o (.rodata); - build/u/src/game/initweaponanigroups.o (.rodata); - build/u/src/game/initactorpropstuff.o (.rodata); - build/u/src/game/initnull_0009D0.o (.rodata); - build/u/src/game/initunk_0009E0.o (.rodata); - build/u/src/game/initanitable.o (.rodata); - build/u/src/game/initplayergaitobject.o (.rodata); - build/u/src/game/setguscale.o (.rodata); - build/u/src/game/initnull_000BC0.o (.rodata); - build/u/src/game/initimages.o (.rodata); - build/u/src/game/initintromatrices.o (.rodata); - build/u/src/game/initmenus.o (.rodata); - build/u/src/game/initguards.o (.rodata); - build/u/src/game/deb_loadallmodels.o (.rodata); - build/u/src/game/initobjects.o (.rodata); - build/u/src/game/prop.o (.rodata); - build/u/src/game/objective.o (.rodata); - build/u/src/game/ejectedcartridges.o (.rodata); - build/u/src/game/initBondDATA.o (.rodata); - build/u/src/game/initunk_005450.o (.rodata); - build/u/src/game/initunk_005520.o (.rodata); - build/u/src/game/bondview_r.o (.rodata); - build/u/src/game/inititemslots.o (.rodata); - build/u/src/game/initBondDATAdefaults.o (.rodata); - build/u/src/game/initpathtablesomething.o (.rodata); - build/u/src/game/initpathtablelinks.o (.rodata); - build/u/src/game/initexplosioncasing.o (.rodata); - build/u/src/game/alloc_window_pieces.o (.rodata); - build/u/src/game/initunk_007290.o (.rodata); - build/u/src/game/initcheattext.o (.rodata); - build/u/src/game/initmttex.o (.rodata); - build/u/src/game/cleanup_guard_data.o (.rodata); - build/u/src/game/cleanup_object_sounds.o (.rodata); - build/u/src/game/cleanup_alarms.o (.rodata); - build/u/src/game/cleanup_objects.o (.rodata); - build/u/src/game/cleanup_objectives.o (.rodata); - build/u/src/game/cleanupSFXRelated.o (.rodata); - build/u/src/game/playerstats_007770.o (.rodata); - build/u/src/game/cleanexplosions.o (.rodata); - build/u/src/game/cleanwindowpieces.o (.rodata); - build/u/src/game/null_007970.o (.rodata); - build/u/src/game/cleanplayersound.o (.rodata); - build/u/src/game/title.o (.rodata); - build/u/src/game/front.o (.rodata); - build/u/src/game/unk_01B0E0.o (.rodata); - build/u/src/game/unk_01B240.o (.rodata); - build/u/src/game/unk_01BAE0.o (.rodata); - build/u/src/game/blood_animation.o (.rodata); - build/u/src/game/blood_decrypt.o (.rodata); - build/u/src/game/file.o (.rodata); - build/u/src/game/file2.o (.rodata); - build/u/src/game/chr.o (.rodata); - build/u/src/game/chrlv.o (.rodata); - build/u/src/game/chrai.o (.rodata); - build/u/src/game/chrprop.o (.rodata); - build/u/src/game/chrobjhandler.o (.rodata); - build/u/src/game/loadobjectmodel.o (.rodata); - build/u/src/game/objective_status.o (.rodata); - build/u/src/game/objective_status2.o (.rodata); - build/u/src/game/math_sincos.o (.rodata); - build/u/src/game/matrixmath.o (.rodata); - build/u/src/game/math_unk_05A9E0.o (.rodata); - build/u/src/game/math_atan2f.o (.rodata); - build/u/src/game/math_asinacos.o (.rodata); - build/u/src/game/math_asinfacosf.o (.rodata); - build/u/src/game/matrixmath_misc.o (.rodata); - build/u/src/game/quaternion.o (.rodata); - build/u/src/game/math_floor.o (.rodata); - build/u/src/game/math_ceil.o (.rodata); - build/u/src/game/gun.o (.rodata); - build/u/src/game/bondwalk2.o (.rodata); - build/u/src/game/objecthandler.o (.rodata); - build/u/src/game/objecthandler_1.o (.rodata); - build/u/src/game/objecthandler_2.o (.rodata); - build/u/src/game/othermodemicrocode.o (.rodata); - build/u/src/game/bondview.o (.rodata); - build/u/src/game/bondinv.o (.rodata); - build/u/src/game/bondhead.o (.rodata); - build/u/src/game/debugmenu_08FE00.o (.rodata); - build/u/src/game/debugmenu_handler.o (.rodata); - build/u/src/game/unk_091080.o (.rodata); - build/u/src/game/chraidata.o (.rodata); - build/u/src/game/pobjdata.o (.rodata); - build/u/src/game/gobjdata.o (.rodata); - build/u/src/game/gobjdata2.o (.rodata); - build/u/src/game/cobjdata.o (.rodata); - build/u/src/game/cheat_buttons.o (.rodata); - build/u/src/game/unk_092890.o (.rodata); - build/u/src/game/unk_092E50.o (.rodata); - build/u/src/game/player.o (.rodata); - build/u/src/game/player_2.o (.rodata); - build/u/src/game/crc.o (.rodata); - build/u/src/game/chrObjRandom.o (.rodata); - build/u/src/game/unk_09B7A0.o (.rodata); - build/u/src/game/explosions.o (.rodata); - build/u/src/game/unk_0A1DA0.o (.rodata); - build/u/src/game/watch.o (.rodata); - build/u/src/game/textrelated.o (.rodata); - build/u/src/game/stan.o (.rodata); - build/u/src/game/unk_0B3200.o (.rodata); - build/u/src/game/bg.o (.rodata); - build/u/src/game/bg2.o (.rodata); - build/u/src/game/fog.o (.rodata); - build/u/src/game/lightfixture.o (.rodata); - build/u/src/game/unk_0BC530.o (.rodata); - build/u/src/game/ob.o (.rodata); - build/u/src/game/dyn.o (.rodata); - build/u/src/game/lvl.o (.rodata); - build/u/src/game/ramromreplay.o (.rodata); - build/u/src/game/unk_0C0A70.o (.rodata); - build/u/src/game/mp_music.o (.rodata); - build/u/src/game/lvl_text.o (.rodata); - build/u/src/game/mp_watch.o (.rodata); - build/u/src/game/radar.o (.rodata); - build/u/src/game/mp_weapon.o (.rodata); - build/u/src/game/image.o (.rodata); - build/u/src/game/image_bank.o (.rodata); - build/u/src/game/unk_0CC4C0.o (.rodata); - build/u/src/game/decompress.o (.rodata); - build/u/src/game/zlib.o (.rodata); - build/u/src/game/rsp.o (.rodata); - build/u/src/game/indy_comms.o (.rodata); - build/u/src/game/indy_commands.o (.rodata); - build/u/src/game/game_debug.o (.rodata); - build/u/src/game/compiletime.o (.rodata); - build/u/src/game/unk_0D1AC0.o (.rodata); - build/u/src/game/viewport.o (.rodata); - build/u/src/game/music_0D2720.o (.rodata); - build/u/src/game/spectrum.o (.rodata); - - build/u/src/gspboot.o (.data); - build/u/src/aspboot.o (.data); + build/OUTCODE/src/rspboot.o (.text); + build/OUTCODE/src/gspboot.o (.text); + build/OUTCODE/src/aspboot.o (.text); +#include "ld/lib.data.ld.inc" +#include "ld/lib.rodata.ld.inc" +#include "ld/game.data.ld.inc" +#include "ld/game.rodata.ld.inc" + build/OUTCODE/src/gspboot.o (.data); + build/OUTCODE/src/aspboot.o (.data); } END_SEG(csegment) @@ -3879,380 +212,42 @@ SECTIONS - BEGIN_SEG(bss, _csegmentSegmentRomEnd, _csegmentSegmentEnd) + _bssSegmentStart = ADDR(.bss); + .bss (NOLOAD) : { - build/u/src/boot.o (.bss); - build/u/src/init.o (.bss); - build/u/src/sched.o (.bss); - build/u/src/osMapTLB.o (.bss); - build/u/src/tlb_manage.o (.bss); - build/u/src/tlb_random.o (.bss); - build/u/src/tlb_resolve.o (.bss); - build/u/src/audi.o (.bss); - build/u/src/speed_graph.o (.bss); - build/u/src/fr.o (.bss); - build/u/src/deb.o (.bss); - build/u/src/fault.o (.bss); - /*deb_print may be part of fault per pd beta (.bss);*/ - build/u/src/deb_print.o (.bss); - build/u/src/getra.o (.bss); - build/u/src/ramrom.o (.bss); - build/u/src/boss.o (.bss); - build/u/src/music.o (.bss); - build/u/src/snd.o (.bss); - build/u/src/memp.o (.bss); - build/u/src/mema.o (.bss); - build/u/src/random.o (.bss); - build/u/src/token.o (.bss); - build/u/src/str.o (.bss); - build/u/src/sprintf.o (.bss); - build/u/src/pi.o (.bss); - build/u/src/vi.o (.bss); - build/u/src/debugmenu.o (.bss); - build/u/src/joy.o (.bss); - build/u/src/motor.o (.bss); - build/u/src/rmon.o (.bss); - - /*build/u/src/libultra/osPiRawStartDma.o (.bss);*/ - build/u/src/libultra/io/pirawdma.o (.bss); - build/u/src/libultra/io/pigetstat.o (.bss); - build/u/src/libultrare/os/initialize.o (.bss); - build/u/src/libultra/os/writebackdcacheall.o (.bss); - build/u/src/libultra/os/invalicache.o (.bss); - build/u/src/libultra/os/unmaptlb.o (.bss); - build/u/src/libultra/os/getfpccsr.o (.bss); - build/u/src/libultra/os/setfpccsr.o (.bss); - build/u/src/libultra/os/createthread.o (.bss); - build/u/src/libultra/os/startthread.o (.bss); - build/u/src/libultra/os/createmesgqueue.o (.bss); - build/u/src/libultra/os/parameters.o (.bss); - build/u/src/libultra/os/stopthread.o (.bss); - build/u/src/libultra/os/setthreadpri.o (.bss); - build/u/src/libultra/os/getcount.o (.bss); - build/u/src/libultrare/io/vimgr.o (.bss); - build/u/src/libultrare/io/vitbl.o (.bss); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.bss); - build/u/src/libultra/io/visetevent.o (.bss); - build/u/src/libultra/os/setintmask.o (.bss); - build/u/src/libultra/os/recvmesg.o (.bss); - build/u/src/libultra/os/sendmesg.o (.bss); - build/u/src/libultra/io/visetmode.o (.bss); - build/u/src/libultra/io/visetxscale.o (.bss); - build/u/src/libultra/io/visetyscale.o (.bss); - build/u/src/libultra/io/virepeatline.o (.bss); - build/u/src/libultra/io/viblack.o (.bss); - build/u/src/libultra/io/sptaskyielded.o (.bss); - build/u/src/libultra/io/dpctr.o (.bss); - build/u/src/libultra/io/vigetcurrframebuf.o (.bss); - build/u/src/libultra/io/vigetnextframebuf.o (.bss); - build/u/src/libultra/io/viswapbuf.o (.bss); - build/u/src/libultra/io/dpsetstat.o (.bss); - build/u/src/libultrare/io/sptask.o (.bss); - build/u/src/libultra/io/dpsetnextbuf.o (.bss); - build/u/src/libultra/io/sptaskyield.o (.bss); - build/u/src/libultra/os/gettlbhi.o (.bss); - build/u/src/libultra/os/virtualtophysical.o (.bss); - build/u/src/libultra/io/aisetfreq.o (.bss); - build/u/src/libultra/audio/sl.o (.bss); - build/u/src/libultra/audio/heapalloc.o (.bss); - build/u/src/libultra/os/gettime.o (.bss); - build/u/src/libultra/libc/ll.o (.bss); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.bss); - build/u/src/libultra/io/aigetlen.o (.bss); - build/u/src/libultra/audio/synthesizer.o (.bss); - build/u/src/libultra/io/pidma.o (.bss); - build/u/src/libultra/io/visetspecial.o (.bss); - build/u/src/libultra/libc/bcopy.o (.bss); - build/u/src/libultra/gu/perspective.o (.bss); - build/u/src/libultra/gu/mtxutil.o (.bss); - build/u/src/libultra/os/getcurrfaultthread.o (.bss); - build/u/src/libultra/os/exception.o (.bss); /*edited*/ - build/u/src/libultra/os/thread.o (.bss); - build/u/src/libultra/os/yieldthread.o (.bss); - build/u/src/libultra/os/invaldcache.o (.bss); - build/u/src/libultra/os/writebackdcache.o (.bss); - build/u/src/libultra/os/settimer.o (.bss); - build/u/src/libultra/audio/heapinit.o (.bss); - build/u/src/libultra/audio/bnkf.o (.bss); - build/u/src/libultra/audio/csplayer.o (.bss); - build/u/src/libultra/audio/seqpsetbank.o (.bss); - build/u/src/libultra/audio/cspgetstate.o (.bss); - build/u/src/libultra/audio/cseq.o (.bss); - build/u/src/libultra/audio/cspsetseq.o (.bss); - build/u/src/libultra/audio/cspplay.o (.bss); - build/u/src/libultra/audio/cspstop.o (.bss); - build/u/src/libultra/audio/cspsetvol.o (.bss); - build/u/src/libultra/audio/event.o (.bss); - build/u/src/libultra/audio/synaddplayer.o (.bss); - build/u/src/libultra/audio/synallocvoice.o (.bss); - build/u/src/libultra/audio/synsetvol.o (.bss); - build/u/src/libultra/audio/synstartvoice.o (.bss); - build/u/src/libultra/audio/synsetpan.o (.bss); - build/u/src/libultra/audio/synsetpitch.o (.bss); - build/u/src/libultra/audio/synsetfxmix.o (.bss); - build/u/src/libultra/audio/synstopvoice.o (.bss); - build/u/src/libultra/audio/synfreevoice.o (.bss); - build/u/src/libultra/audio/cents2ratio.o (.bss); - build/u/src/libultra/io/piread.o (.bss); - build/u/src/libultra/libc/string.o (.bss); - build/u/src/libultrare/libc/xprintf.o (.bss); - build/u/src/libultrare/io/pimgr.o (.bss); - build/u/src/libultrare/io/pfsinit.o (.bss); - build/u/src/libultrare/io/controller.o (.bss); - build/u/src/libultra/io/contquery.o (.bss); - build/u/src/libultrare/io/contreaddata.o (.bss); - build/u/src/libultrare/io/conteepprobe.o (.bss); - build/u/src/libultrare/io/conteepread.o (.bss); - build/u/src/libultrare/io/conteepwrite.o (.bss); - build/u/src/libultrare/io/conteeplongread.o (.bss); - build/u/src/libultrare/io/conteeplongwrite.o (.bss); - build/u/src/libultrare/io/pfsisplug.o (.bss); - build/u/src/libultra/io/siacs.o (.bss); - build/u/src/libultra/io/sirawdma.o (.bss); - build/u/src/libultra/io/crc.o (.bss); - build/u/src/libultrare/io/contramwrite.o (.bss); - build/u/src/libultrare/io/contramread.o (.bss); - build/u/src/libultra/gu/align.o (.bss); - build/u/src/libultra/gu/ortho.o (.bss); - build/u/src/libultra/gu/coss.o (.bss); - build/u/src/libultra/gu/sins.o (.bss); - build/u/src/libultra/gu/translate.o (.bss); - build/u/src/libultra/libc/bcmp.o (.bss); - build/u/src/libultra/gu/scale.o (.bss); - build/u/src/libultra/gu/lookatref.o (.bss); - build/u/src/libultra/gu/lookat.o (.bss); - build/u/src/libultra/gu/rotate.o (.bss); - build/u/src/libultra/libc/llcvt.o (.bss); /*edited*/ - build/u/src/libultra/os/setsr.o (.bss); - build/u/src/libultra/os/getsr.o (.bss); - build/u/src/libultra/io/sirawread.o (.bss); - build/u/src/libultra/io/sirawwrite.o (.bss); - build/u/src/libultra/io/pirawread.o (.bss); - build/u/src/libultra/libc/bzero.o (.bss); - build/u/src/libultra/os/sethwinterrupt.o (.bss); - build/u/src/libultrare/io/leointerrupt.o (.bss); - build/u/src/libultra/os/interrupt.o (.bss); - build/u/src/libultra/os/timerintr.o (.bss); - build/u/src/libultra/os/kdebugserver.o (.bss); - build/u/src/libultra/os/getthreadpri.o (.bss); - build/u/src/libultrare/io/vi.o (.bss); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.bss); - build/u/src/libultra/io/viswapcontext.o (.bss); - build/u/src/libultra/io/spgetstat.o (.bss); - build/u/src/libultra/io/spsetstat.o (.bss); - build/u/src/libultra/io/spsetpc.o (.bss); - build/u/src/libultra/io/sprawdma.o (.bss); - build/u/src/libultra/io/sp.o (.bss); - build/u/src/libultra/io/dp.o (.bss); - build/u/src/libultra/os/probetlb.o (.bss); - build/u/src/libultra/audio/syndelete.o (.bss); - build/u/src/libultra/io/ai.o (.bss); - build/u/src/libultrare/audio/drvrNew.o (.bss); - build/u/src/libultra/audio/synallocfx.o (.bss); - build/u/src/libultra/audio/mainbus.o (.bss); - build/u/src/libultra/audio/load.o (.bss); - build/u/src/libultra/audio/resample.o (.bss); - build/u/src/libultrare/audio/env.o (.bss); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.bss); - build/u/src/libultra/audio/save.o (.bss); - build/u/src/libultra/os/jammesg.o (.bss); - build/u/src/libultra/io/pigetcmdq.o (.bss); - build/u/src/libultra/gu/cosf.o (.bss); /*edited*/ - build/u/src/libultra/gu/sinf.o (.bss); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.bss); - build/u/src/libultra/audio/seqplayer.o (.bss); - build/u/src/libultra/audio/synstartvoiceparam.o (.bss); - build/u/src/libultra/audio/copy.o (.bss); - build/u/src/libultra/io/piacs.o (.bss); - build/u/src/libultra/libc/xlitob.o (.bss); - build/u/src/libultra/libc/xldtob.o (.bss); - build/u/src/libultrare/io/epirawdma.o (.bss); - build/u/src/libultrare/io/devmgr.o (.bss); - build/u/src/libultra/io/contpfs.o (.bss); - build/u/src/libultra/io/si.o (.bss); - build/u/src/libultra/gu/normalize.o (.bss); - build/u/src/libultra/gu/sqrtf.o (.bss); - build/u/src/libultrare/io/leodiskinit.o (.bss); - build/u/src/libultra/os/setcompare.o (.bss); - build/u/src/libultra/audio/filter.o (.bss); - build/u/src/libultrare/audio/reverb.o (.bss); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.bss); /*edited*/ - build/u/src/libultra/audio/seq.o (.bss); - build/u/src/libultra/audio/synsetpriority.o (.bss); - build/u/src/libultra/libc/ldiv.o (.bss); - build/u/src/libultra/os/resetglobalintmask.o (.bss); - build/u/src/libultrare/io/epirawwrite.o (.bss); - build/u/src/libultra/io/vimodentsclan1.o (.bss); - build/u/src/libultrare/io/vimodepallan1.o (.bss); - build/u/src/libultrare/ultra80069080.o (.bss); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.bss);*/ - - build/u/src/game/initgamedata.o (.bss); - build/u/src/game/initweaponanigroups.o (.bss); - build/u/src/game/initactorpropstuff.o (.bss); - build/u/src/game/initnull_0009D0.o (.bss); - build/u/src/game/initunk_0009E0.o (.bss); - build/u/src/game/initanitable.o (.bss); - build/u/src/game/initplayergaitobject.o (.bss); - build/u/src/game/setguscale.o (.bss); - build/u/src/game/initnull_000BC0.o (.bss); - build/u/src/game/initimages.o (.bss); - build/u/src/game/initintromatrices.o (.bss); - build/u/src/game/initmenus.o (.bss); - build/u/src/game/initguards.o (.bss); - build/u/src/game/deb_loadallmodels.o (.bss); - build/u/src/game/initobjects.o (.bss); - build/u/src/game/prop.o (.bss); - build/u/src/game/objective.o (.bss); - build/u/src/game/ejectedcartridges.o (.bss); - build/u/src/game/initBondDATA.o (.bss); - build/u/src/game/initunk_005450.o (.bss); - build/u/src/game/initunk_005520.o (.bss); - build/u/src/game/bondview_r.o (.bss); - build/u/src/game/inititemslots.o (.bss); - build/u/src/game/initBondDATAdefaults.o (.bss); - build/u/src/game/initpathtablesomething.o (.bss); - build/u/src/game/initpathtablelinks.o (.bss); - build/u/src/game/initexplosioncasing.o (.bss); - build/u/src/game/alloc_window_pieces.o (.bss); - build/u/src/game/initunk_007290.o (.bss); - build/u/src/game/initcheattext.o (.bss); - build/u/src/game/initmttex.o (.bss); - build/u/src/game/cleanup_guard_data.o (.bss); - build/u/src/game/cleanup_object_sounds.o (.bss); - build/u/src/game/cleanup_alarms.o (.bss); - build/u/src/game/cleanup_objects.o (.bss); - build/u/src/game/cleanup_objectives.o (.bss); - build/u/src/game/cleanupSFXRelated.o (.bss); - build/u/src/game/playerstats_007770.o (.bss); - build/u/src/game/cleanexplosions.o (.bss); - build/u/src/game/cleanwindowpieces.o (.bss); - build/u/src/game/null_007970.o (.bss); - build/u/src/game/cleanplayersound.o (.bss); - build/u/src/game/title.o (.bss); - build/u/src/game/front.o (.bss); - build/u/src/game/unk_01B0E0.o (.bss); - build/u/src/game/unk_01B240.o (.bss); - build/u/src/game/unk_01BAE0.o (.bss); - build/u/src/game/blood_animation.o (.bss); - build/u/src/game/blood_decrypt.o (.bss); - build/u/src/game/file.o (.bss); - build/u/src/game/file2.o (.bss); - build/u/src/game/chr.o (.bss); - build/u/src/game/chrlv.o (.bss); - build/u/src/game/chrai.o (.bss); - build/u/src/game/chrprop.o (.bss); - build/u/src/game/chrobjhandler.o (.bss); - build/u/src/game/loadobjectmodel.o (.bss); - build/u/src/game/objective_status.o (.bss); - build/u/src/game/objective_status2.o (.bss); - build/u/src/game/math_sincos.o (.bss); - build/u/src/game/matrixmath.o (.bss); - build/u/src/game/math_unk_05A9E0.o (.bss); - build/u/src/game/math_atan2f.o (.bss); - build/u/src/game/math_asinacos.o (.bss); - build/u/src/game/math_asinfacosf.o (.bss); - build/u/src/game/matrixmath_misc.o (.bss); - build/u/src/game/quaternion.o (.bss); - build/u/src/game/math_floor.o (.bss); - build/u/src/game/math_ceil.o (.bss); - build/u/src/game/gun.o (.bss); - build/u/src/game/bondwalk2.o (.bss); - build/u/src/game/objecthandler.o (.bss); - build/u/src/game/objecthandler_1.o (.bsst); - build/u/src/game/objecthandler_2.o (.bss); - build/u/src/game/othermodemicrocode.o (.bss); - build/u/src/game/bondview.o (.bss); - build/u/src/game/bondinv.o (.bss); - build/u/src/game/bondhead.o (.bss); - build/u/src/game/debugmenu_08FE00.o (.bss); - build/u/src/game/debugmenu_handler.o (.bss); - build/u/src/game/unk_091080.o (.bss); - build/u/src/game/chraidata.o (.bss); - build/u/src/game/pobjdata.o (.bss); - build/u/src/game/gobjdata.o (.bss); - build/u/src/game/gobjdata2.o (.bss); - build/u/src/game/cobjdata.o (.bss); - build/u/src/game/cheat_buttons.o (.bss); - build/u/src/game/unk_092890.o (.bss); - build/u/src/game/unk_092E50.o (.bss); - build/u/src/game/player.o (.bss); - build/u/src/game/player_2.o (.bss); - build/u/src/game/crc.o (.bss); - build/u/src/game/chrObjRandom.o (.bss); - build/u/src/game/unk_09B7A0.o (.bss); - build/u/src/game/explosions.o (.bss); - build/u/src/game/unk_0A1DA0.o (.bss); - build/u/src/game/watch.o (.bss); - build/u/src/game/textrelated.o (.bss); - build/u/src/game/stan.o (.bss); - build/u/src/game/unk_0B3200.o (.bss); - build/u/src/game/bg.o (.bss); - build/u/src/game/bg2.o (.bss); - build/u/src/game/fog.o (.bss); - build/u/src/game/lightfixture.o (.bss); - build/u/src/game/unk_0BC530.o (.bss); - build/u/src/game/ob.o (.bss); - build/u/src/game/dyn.o (.bss); - build/u/src/game/lvl.o (.bss); - build/u/src/game/ramromreplay.o (.bss); - build/u/src/game/unk_0C0A70.o (.bss); - build/u/src/game/mp_music.o (.bss); - build/u/src/game/lvl_text.o (.bss); - build/u/src/game/mp_watch.o (.bss); - build/u/src/game/radar.o (.bss); - build/u/src/game/mp_weapon.o (.bss); - build/u/src/game/image.o (.bss); - build/u/src/game/image_bank.o (.bss); - build/u/src/game/unk_0CC4C0.o (.bss); - build/u/src/game/decompress.o (.bss); - build/u/src/game/zlib.o (.bss); - build/u/src/game/rsp.o (.bss); - build/u/src/game/indy_comms.o (.bss); - build/u/src/game/indy_commands.o (.bss); - build/u/src/game/game_debug.o (.bss); - build/u/src/game/compiletime.o (.bss); - build/u/src/game/unk_0D1AC0.o (.bss); - build/u/src/game/viewport.o (.bss); - build/u/src/game/music_0D2720.o (.bss); - build/u/src/game/spectrum.o (.bss); +#include "ld/lib.bss.ld.inc" +#include "ld/game.bss.ld.inc" } - END_SEG(bss) + _bssSegmentEnd = ADDR(.bss) + SIZEOF(.bss); _bssSegmentSize = SIZEOF(.bss); - BEGIN_SEG(roombuf, _bssSegmentRomEnd, _bssSegmentEnd) + _roombufSegmentStart = ADDR(.roombuf); + .roombuf (NOLOAD) : { - build/u/src/game/room_model_buffer.o (.bss); + build/OUTCODE/src/game/room_model_buffer.o (.bss); } - END_SEG(roombuf) + _roombufSegmentEnd = ADDR(.roombuf) + SIZEOF(.roombuf); - - BEGIN_SEG(tlbbuf, _roombufSegmentRomEnd, _roombufSegmentEnd) + _decompbufSegmentStart = ADDR(.decompbuf); + .decompbuf 0x80300000 : { - build/u/src/tlb_buffer.o (.bss); + build/OUTCODE/src/decompressbuffer.o (.bss); } - END_SEG(tlbbuf) + _decompbufSegmentEnd = ADDR(.decompbuf) + SIZEOF(.decompbuf); - - BEGIN_SEG(decompbuf, _tlbbufSegmentRomEnd, 0x80300000) + _stacksSegmentStart = ADDR(.stacks); + .stacks (NOLOAD) : { - build/u/src/decompressbuffer.o (.bss); + build/OUTCODE/src/stacks.o (.bss); } - END_SEG(decompbuf) + _stacksSegmentEnd = ADDR(.stacks) + SIZEOF(.stacks); - - BEGIN_SEG(stacks, _decompbufSegmentRomEnd, 0x803ab400) + _cfbSegmentStart = ADDR(.cfb); + .cfb (NOLOAD) : { - build/u/src/stacks.o (.bss); + build/OUTCODE/src/cfb.o (.bss); } - END_SEG(stacks) - - - BEGIN_SEG(cfb, _stacksSegmentRomEnd, 0x803b5000) - { - build/u/src/cfb.o (.bss); - } - END_SEG(cfb) + _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); /*move em to end, out of the way*/ /DISCARD/ : { diff --git a/ge007.u-test_basis.csv b/ge007.u-test_basis.csv index c27571ef..a672b7b5 100644 --- a/ge007.u-test_basis.csv +++ b/ge007.u-test_basis.csv @@ -53,11 +53,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/decompressbuffer.o d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/decompressbuffer.o -377a8cb4f582defa3f1bb86cd30a60c1,.text,build/u/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/fault.o -d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/fault.o +377a8cb4f582defa3f1bb86cd30a60c1,.text,build/u/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/crash.o +d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/crash.o c6af3c2e9a83066c1ff902c20ee56af0,.text,build/u/src/fr.o d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/fr.o d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/fr.o diff --git a/ge007.u.ld b/ge007.u.ld deleted file mode 100644 index a9614db8..00000000 --- a/ge007.u.ld +++ /dev/null @@ -1,4346 +0,0 @@ -/*OUTPUT_FORMAT ("elf32-bigmips")*/ -OUTPUT_ARCH (mips) - -SECTIONS -{ - - osTvType = 0x80000300; - osRomType = 0x80000304; - osRomBase = 0x80000308; - osResetType = 0x8000030c; - osCicId = 0x80000310; - osVersion = 0x80000314; - osMemSize = 0x80000318; - osAppNMIBuffer = 0x8000031c; - - _romSegmentStart = 0; - /* header */ - _headerSegmentStart = ADDR(.header); - _headerSegmentRomStart = _romSegmentStart; - .header 0x04000000 : AT(_romSegmentStart) { - build/u/src/rom_header.o(.data); - } - _headerSegmentEnd = ADDR(.header) + SIZEOF(.header); - _headerSegmentRomEnd = _headerSegmentRomStart + SIZEOF(.header); - - - - /* boot */ - _bootSegmentStart = ADDR(.boot); - _bootSegmentRomStart = _headerSegmentRomEnd; - .boot 0x04000040 : AT(_bootSegmentRomStart) { - build/u/src/bootcode.o(.text); - } - _bootSegmentEnd = ADDR(.boot) + SIZEOF(.boot); - _bootSegmentRomEnd = _bootSegmentRomStart + SIZEOF(.boot); - - - - - /* 0x80000400, 0x80000450 */ - _startSegmentStart = ADDR(.start); - _startSegmentRomStart = _bootSegmentRomEnd; - _alt_startSegmentRomStart = _startSegmentRomStart + 0x100000; - .start 0x80000400 : AT(_startSegmentRomStart) { - build/u/src/_start.o (.text); - } - _alt_startSegmentStart = _startSegmentStart - 0x10000000 + 0x100000; - _startSegmentEnd = ADDR(.start) + SIZEOF(.start); - _startSegmentRomEnd = _startSegmentRomStart + SIZEOF(.start); - - - - /* 0x70000450, 0x70020D90 001050-021990 */ - _codeSegmentStart = ADDR(.code); - _codeSegmentRomStart = _startSegmentRomEnd; - .code 0x70000450 : AT(_codeSegmentRomStart) SUBALIGN(16) { - build/u/src/boot.o (.text); - build/u/src/init.o (.text); - build/u/src/sched.o (.text); - build/u/src/osMapTLB.o (.text); - build/u/src/tlb_manage.o (.text); - build/u/src/tlb_random.o (.text); - build/u/src/tlb_resolve.o (.text); - build/u/src/tlb_hardwire.o (.text); - build/u/src/audi.o (.text); - build/u/src/speed_graph.o (.text); - build/u/src/fr.o (.text); - build/u/src/deb.o (.text); - build/u/src/fault.o (.text); - /*deb_print may be part of fault per pd beta (.text);*/ - build/u/src/deb_print.o (.text); - build/u/src/getra.o (.text); - build/u/src/ramrom.o (.text); - build/u/src/boss.o (.text); - build/u/src/music.o (.text); - build/u/src/snd.o (.text); - build/u/src/memp.o (.text); - build/u/src/mema.o (.text); - build/u/src/random.o (.text); - build/u/src/token.o (.text); - build/u/src/str.o (.text); - build/u/src/sprintf.o (.text); - build/u/src/pi.o (.text); - build/u/src/vi.o (.text); - build/u/src/debugmenu.o (.text); - build/u/src/joy.o (.text); - build/u/src/motor.o (.text); - build/u/src/rmon.o (.text); - - /*build/u/src/libultra/osPiRawStartDma.o (.text);*/ - build/u/src/libultra/io/pirawdma.o (.text); - build/u/src/libultra/io/pigetstat.o (.text); - build/u/src/libultrare/os/initialize.o (.text); - build/u/src/libultra/os/writebackdcacheall.o (.text); - build/u/src/libultra/os/invalicache.o (.text); - build/u/src/libultra/os/unmaptlb.o (.text); - build/u/src/libultra/os/getfpccsr.o (.text); - build/u/src/libultra/os/setfpccsr.o (.text); - build/u/src/libultra/os/createthread.o (.text); - build/u/src/libultra/os/startthread.o (.text); - build/u/src/libultra/os/createmesgqueue.o (.text); - build/u/src/libultra/os/parameters.o (.text); - build/u/src/libultra/os/stopthread.o (.text); - build/u/src/libultra/os/setthreadpri.o (.text); - build/u/src/libultra/os/getcount.o (.text); - build/u/src/libultrare/io/vimgr.o (.text); - build/u/src/libultrare/io/vitbl.o (.text); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.text); - build/u/src/libultra/io/visetevent.o (.text); - build/u/src/libultra/os/setintmask.o (.text); - build/u/src/libultra/os/recvmesg.o (.text); - build/u/src/libultra/os/sendmesg.o (.text); - build/u/src/libultra/io/visetmode.o (.text); - build/u/src/libultra/io/visetxscale.o (.text); - build/u/src/libultra/io/visetyscale.o (.text); - build/u/src/libultra/io/virepeatline.o (.text); - build/u/src/libultra/io/viblack.o (.text); - build/u/src/libultra/io/sptaskyielded.o (.text); - build/u/src/libultra/io/dpctr.o (.text); - build/u/src/libultra/io/vigetcurrframebuf.o (.text); - build/u/src/libultra/io/vigetnextframebuf.o (.text); - build/u/src/libultra/io/viswapbuf.o (.text); - build/u/src/libultra/io/dpsetstat.o (.text); - build/u/src/libultrare/io/sptask.o (.text); - build/u/src/libultra/io/dpsetnextbuf.o (.text); - build/u/src/libultra/io/sptaskyield.o (.text); - build/u/src/libultra/os/gettlbhi.o (.text); - build/u/src/libultra/os/virtualtophysical.o (.text); - build/u/src/libultra/io/aisetfreq.o (.text); - build/u/src/libultra/audio/sl.o (.text); - build/u/src/libultra/audio/heapalloc.o (.text); - build/u/src/libultra/os/gettime.o (.text); - build/u/src/libultra/libc/ll.o (.text); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.text); - build/u/src/libultra/io/aigetlen.o (.text); - build/u/src/libultra/audio/synthesizer.o (.text); - build/u/src/libultra/io/pidma.o (.text); - build/u/src/libultra/io/visetspecial.o (.text); - build/u/src/libultra/libc/bcopy.o (.text); - build/u/src/libultra/gu/perspective.o (.text); - build/u/src/libultra/gu/mtxutil.o (.text); - build/u/src/libultra/os/getcurrfaultthread.o (.text); - build/u/src/libultra/os/exception.o (.text); /*edited*/ - build/u/src/libultra/os/thread.o (.text); - build/u/src/libultra/os/yieldthread.o (.text); - build/u/src/libultra/os/invaldcache.o (.text); - build/u/src/libultra/os/writebackdcache.o (.text); - build/u/src/libultra/os/settimer.o (.text); - build/u/src/libultra/audio/heapinit.o (.text); - build/u/src/libultra/audio/bnkf.o (.text); - build/u/src/libultra/audio/csplayer.o (.text); - build/u/src/libultra/audio/seqpsetbank.o (.text); - build/u/src/libultra/audio/cspgetstate.o (.text); - build/u/src/libultra/audio/cseq.o (.text); - build/u/src/libultra/audio/cspsetseq.o (.text); - build/u/src/libultra/audio/cspplay.o (.text); - build/u/src/libultra/audio/cspstop.o (.text); - build/u/src/libultra/audio/cspsetvol.o (.text); - build/u/src/libultra/audio/event.o (.text); - build/u/src/libultra/audio/synaddplayer.o (.text); - build/u/src/libultra/audio/synallocvoice.o (.text); - build/u/src/libultra/audio/synsetvol.o (.text); - build/u/src/libultra/audio/synstartvoice.o (.text); - build/u/src/libultra/audio/synsetpan.o (.text); - build/u/src/libultra/audio/synsetpitch.o (.text); - build/u/src/libultra/audio/synsetfxmix.o (.text); - build/u/src/libultra/audio/synstopvoice.o (.text); - build/u/src/libultra/audio/synfreevoice.o (.text); - build/u/src/libultra/audio/cents2ratio.o (.text); - build/u/src/libultra/io/piread.o (.text); - build/u/src/libultra/libc/string.o (.text); - build/u/src/libultrare/libc/xprintf.o (.text); - build/u/src/libultrare/io/pimgr.o (.text); - build/u/src/libultrare/io/pfsinit.o (.text); - build/u/src/libultrare/io/controller.o (.text); - build/u/src/libultra/io/contquery.o (.text); - build/u/src/libultrare/io/contreaddata.o (.text); - build/u/src/libultrare/io/conteepprobe.o (.text); - build/u/src/libultrare/io/conteepread.o (.text); - build/u/src/libultrare/io/conteepwrite.o (.text); - build/u/src/libultrare/io/conteeplongread.o (.text); - build/u/src/libultrare/io/conteeplongwrite.o (.text); - build/u/src/libultrare/io/pfsisplug.o (.text); - build/u/src/libultra/io/siacs.o (.text); - build/u/src/libultra/io/sirawdma.o (.text); - build/u/src/libultra/io/crc.o (.text); - build/u/src/libultrare/io/contramwrite.o (.text); - build/u/src/libultrare/io/contramread.o (.text); - build/u/src/libultra/gu/align.o (.text); - build/u/src/libultra/gu/ortho.o (.text); - build/u/src/libultra/gu/coss.o (.text); - build/u/src/libultra/gu/sins.o (.text); - build/u/src/libultra/gu/translate.o (.text); - build/u/src/libultra/libc/bcmp.o (.text); - build/u/src/libultra/gu/scale.o (.text); - build/u/src/libultra/gu/lookatref.o (.text); - build/u/src/libultra/gu/lookat.o (.text); - build/u/src/libultra/gu/rotate.o (.text); - build/u/src/libultra/libc/llcvt.o (.text); /*edited*/ - build/u/src/libultra/os/setsr.o (.text); - build/u/src/libultra/os/getsr.o (.text); - build/u/src/libultra/io/sirawread.o (.text); - build/u/src/libultra/io/sirawwrite.o (.text); - build/u/src/libultra/io/pirawread.o (.text); - build/u/src/libultra/libc/bzero.o (.text); - build/u/src/libultra/os/sethwinterrupt.o (.text); - build/u/src/libultrare/io/leointerrupt.o (.text); - build/u/src/libultra/os/interrupt.o (.text); - build/u/src/libultra/os/timerintr.o (.text); - build/u/src/libultra/os/kdebugserver.o (.text); - build/u/src/libultra/os/getthreadpri.o (.text); - build/u/src/libultrare/io/vi.o (.text); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.text); - build/u/src/libultra/io/viswapcontext.o (.text); - build/u/src/libultra/io/spgetstat.o (.text); - build/u/src/libultra/io/spsetstat.o (.text); - build/u/src/libultra/io/spsetpc.o (.text); - build/u/src/libultra/io/sprawdma.o (.text); - build/u/src/libultra/io/sp.o (.text); - build/u/src/libultra/io/dp.o (.text); - build/u/src/libultra/os/probetlb.o (.text); - build/u/src/libultra/audio/syndelete.o (.text); - build/u/src/libultra/io/ai.o (.text); - build/u/src/libultrare/audio/drvrNew.o (.text); - build/u/src/libultra/audio/synallocfx.o (.text); - build/u/src/libultra/audio/mainbus.o (.text); - build/u/src/libultra/audio/load.o (.text); - build/u/src/libultra/audio/resample.o (.text); - build/u/src/libultrare/audio/env.o (.text); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.text); - build/u/src/libultra/audio/save.o (.text); - build/u/src/libultra/os/jammesg.o (.text); - build/u/src/libultra/io/pigetcmdq.o (.text); - build/u/src/libultra/gu/cosf.o (.text); /*edited*/ - build/u/src/libultra/gu/sinf.o (.text); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.text); - build/u/src/libultra/audio/seqplayer.o (.text); - build/u/src/libultra/audio/synstartvoiceparam.o (.text); - build/u/src/libultra/audio/copy.o (.text); - build/u/src/libultra/io/piacs.o (.text); - build/u/src/libultra/libc/xlitob.o (.text); - build/u/src/libultra/libc/xldtob.o (.text); - build/u/src/libultrare/io/epirawdma.o (.text); - build/u/src/libultrare/io/devmgr.o (.text); - build/u/src/libultra/io/contpfs.o (.text); - build/u/src/libultra/io/si.o (.text); - build/u/src/libultra/gu/normalize.o (.text); - build/u/src/libultra/gu/sqrtf.o (.text); - build/u/src/libultrare/io/leodiskinit.o (.text); - build/u/src/libultra/os/setcompare.o (.text); - build/u/src/libultra/audio/filter.o (.text); - build/u/src/libultrare/audio/reverb.o (.text); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.text); /*edited*/ - build/u/src/libultra/audio/seq.o (.text); - build/u/src/libultra/audio/synsetpriority.o (.text); - build/u/src/libultra/libc/ldiv.o (.text); - build/u/src/libultra/os/resetglobalintmask.o (.text); - build/u/src/libultrare/io/epirawwrite.o (.text); - build/u/src/libultra/io/vimodentsclan1.o (.text); - build/u/src/libultrare/io/vimodepallan1.o (.text); - build/u/src/libultrare/ultra80069080.o (.text); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.text);*/ - } - _codeSegmentEnd = ADDR(.code) + SIZEOF(.code); - _codeSegmentRomEnd = _codeSegmentRomStart + SIZEOF(.code); - - - - _cdataSegmentStart = ADDR(.cdata); - _cdataSegmentRomStart = _codeSegmentRomEnd; - .cdata _cdataSegmentRomStart : AT(_cdataSegmentRomStart) { - build/u/src/c_data_filler.o (.data); - } - _cdataSegmentEnd = ADDR(.cdata) + SIZEOF(.cdata); - _cdataSegmentRomEnd = _cdataSegmentRomStart + SIZEOF(.cdata); - - - - /* (0x70200000, 0x702029BC, 0x701CCA70), // 033590-035F4D [29BD] */ - _inflateSegmentStart = ADDR(.inflate); - _inflateSegmentRomStart = _cdataSegmentRomEnd; - .inflate 0x70200000 : AT(_inflateSegmentRomStart) { - build/u/src/inflate/inflate.o (.text); - build/u/src/inflate/inflate.o (.data); - } - _inflateSegmentEnd = ADDR(.inflate) + SIZEOF(.inflate); - _inflateSegmentRomEnd = _inflateSegmentRomStart + SIZEOF(.inflate); - - - - - /* (0x7F000000, 0x7F0E2D50, 0x7EFCB4D0), // 034B30-117881 [E2D51] */ - _gameSegmentStart = ADDR(.game); - _gameSegmentRomStart = _inflateSegmentRomEnd; - .game 0x7F000000 : AT(_gameSegmentRomStart) { - build/u/src/game/initgamedata.o (.text); - build/u/src/game/initweaponanigroups.o (.text); - build/u/src/game/initactorpropstuff.o (.text); - build/u/src/game/initnull_0009D0.o (.text); - build/u/src/game/initunk_0009E0.o (.text); - build/u/src/game/initanitable.o (.text); - build/u/src/game/initplayergaitobject.o (.text); - build/u/src/game/setguscale.o (.text); - build/u/src/game/initnull_000BC0.o (.text); - build/u/src/game/initimages.o (.text); - build/u/src/game/initintromatrices.o (.text); - build/u/src/game/initmenus.o (.text); - build/u/src/game/initguards.o (.text); - build/u/src/game/deb_loadallmodels.o (.text); - build/u/src/game/initobjects.o (.text); - build/u/src/game/prop.o (.text); - build/u/src/game/objective.o (.text); - build/u/src/game/ejectedcartridges.o (.text); - build/u/src/game/initBondDATA.o (.text); - build/u/src/game/initunk_005450.o (.text); - build/u/src/game/initunk_005520.o (.text); - build/u/src/game/bondview_r.o (.text); - build/u/src/game/inititemslots.o (.text); - build/u/src/game/initBondDATAdefaults.o (.text); - build/u/src/game/initpathtablesomething.o (.text); - build/u/src/game/initpathtablelinks.o (.text); - build/u/src/game/initexplosioncasing.o (.text); - build/u/src/game/alloc_window_pieces.o (.text); - build/u/src/game/initunk_007290.o (.text); - build/u/src/game/initcheattext.o (.text); - build/u/src/game/initmttex.o (.text); - build/u/src/game/cleanup_guard_data.o (.text); - build/u/src/game/cleanup_object_sounds.o (.text); - build/u/src/game/cleanup_alarms.o (.text); - build/u/src/game/cleanup_objects.o (.text); - build/u/src/game/cleanup_objectives.o (.text); - build/u/src/game/cleanupSFXRelated.o (.text); - build/u/src/game/playerstats_007770.o (.text); - build/u/src/game/cleanexplosions.o (.text); - build/u/src/game/cleanwindowpieces.o (.text); - build/u/src/game/null_007970.o (.text); - build/u/src/game/cleanplayersound.o (.text); - build/u/src/game/title.o (.text); - build/u/src/game/front.o (.text); - build/u/src/game/unk_01B0E0.o (.text); - build/u/src/game/unk_01B240.o (.text); - build/u/src/game/unk_01BAE0.o (.text); - build/u/src/game/blood_animation.o (.text); - build/u/src/game/blood_decrypt.o (.text); - build/u/src/game/file.o (.text); - build/u/src/game/file2.o (.text); - build/u/src/game/chr.o (.text); - build/u/src/game/chr_b.o (.text); - build/u/src/game/chrlv.o (.text); - build/u/src/game/chrai.o (.text); - build/u/src/game/chrprop.o (.text); - build/u/src/game/chrobjhandler.o (.text); - build/u/src/game/loadobjectmodel.o (.text); - build/u/src/game/objective_status.o (.text); - build/u/src/game/objective_status2.o (.text); - build/u/src/game/math_sincos.o (.text); - build/u/src/game/matrixmath.o (.text); - build/u/src/game/math_unk_05A9E0.o (.text); - build/u/src/game/math_atan2f.o (.text); - build/u/src/game/math_asinacos.o (.text); - build/u/src/game/math_asinfacosf.o (.text); - build/u/src/game/matrixmath_misc.o (.text); - build/u/src/game/quaternion.o (.text); - build/u/src/game/math_floor.o (.text); - build/u/src/game/math_ceil.o (.text); - build/u/src/game/gun.o (.text); - build/u/src/game/bondwalk2.o (.text); - build/u/src/game/objecthandler.o (.text); - build/u/src/game/objecthandler_1.o (.text); - build/u/src/game/objecthandler_2.o (.text); - build/u/src/game/othermodemicrocode.o (.text); - build/u/src/game/bondview.o (.text); - build/u/src/game/bondinv.o (.text); - build/u/src/game/bondhead.o (.text); - build/u/src/game/padhalllv.o (.text); - build/u/src/game/debugmenu_08FE00.o (.text); - build/u/src/game/debugmenu_handler.o (.text); - build/u/src/game/unk_091080.o (.text); - /*build/u/src/game/chraidata.o (.text);*/ - /*build/u/src/game/pobjdata.o (.text);*/ - /*build/u/src/game/gobjdata.o (.text);*/ - /*build/u/src/game/gobjdata2.o (.text);*/ - /*build/u/src/game/cobjdata.o (.text);*/ - build/u/src/game/cheat_buttons.o (.text); - build/u/src/game/unk_092890.o (.text); - build/u/src/game/unk_092E50.o (.text); - build/u/src/game/player.o (.text); - build/u/src/game/player_2.o (.text); - build/u/src/game/crc.o (.text); - build/u/src/game/chrObjRandom.o (.text); - build/u/src/game/unk_09B7A0.o (.text); - build/u/src/game/explosions.o (.text); - build/u/src/game/unk_0A1DA0.o (.text); - build/u/src/game/watch.o (.text); - build/u/src/game/textrelated.o (.text); - build/u/src/game/stan.o (.text); - build/u/src/game/unk_0B3200.o (.text); - build/u/src/game/bg.o (.text); - build/u/src/game/bg2.o (.text); - build/u/src/game/fog.o (.text); - build/u/src/game/lightfixture.o (.text); - build/u/src/game/unk_0BC530.o (.text); - build/u/src/game/ob.o (.text); - build/u/src/game/dyn.o (.text); - build/u/src/game/lvl.o (.text); - build/u/src/game/ramromreplay.o (.text); - build/u/src/game/unk_0C0A70.o (.text); - build/u/src/game/mp_music.o (.text); - build/u/src/game/lvl_text.o (.text); - build/u/src/game/mp_watch.o (.text); - build/u/src/game/radar.o (.text); - build/u/src/game/mp_weapon.o (.text); - build/u/src/game/image.o (.text); - build/u/src/game/image_bank.o (.text); - build/u/src/game/unk_0CC4C0.o (.text); - build/u/src/game/decompress.o (.text); - build/u/src/game/zlib.o (.text); - build/u/src/game/rsp.o (.text); - build/u/src/game/indy_comms.o (.text); - build/u/src/game/indy_commands.o (.text); - build/u/src/game/game_debug.o (.text); - build/u/src/game/compiletime.o (.text); - build/u/src/game/unk_0D1AC0.o (.text); - build/u/src/game/viewport.o (.text); - build/u/src/game/music_0D2720.o (.text); - build/u/src/game/spectrum.o (.text); - } - _gameSegmentEnd = ADDR(.game) + SIZEOF(.game); - _gameSegmentRomEnd = _gameSegmentRomStart + SIZEOF(.game); - - - _fontdlSegmentStart = ADDR(.fontdl); - _fontdlSegmentRomStart = _gameSegmentRomEnd; - .fontdl 0x01000000 : AT(_fontdlSegmentRomStart) { - build/u/assets/font_dl.o (.data); - } - _fontdlSegmentEnd = ADDR(.fontdl) + SIZEOF(.fontdl); - _fontdlSegmentRomEnd = _fontdlSegmentRomStart + SIZEOF(.fontdl); - - _jfontcharSegmentStart = ADDR(.jfontchardata); - _jfontcharSegmentRomStart = _fontdlSegmentRomEnd; - .jfontchardata 0x00000000 : AT(_jfontcharSegmentRomStart) { - build/u/assets/font_chardataj.o (.data); - } - _jfontcharSegmentEnd = ADDR(.jfontchardata) + SIZEOF(.jfontchardata); - _jfontcharSegmentRomEnd = _jfontcharSegmentRomStart + SIZEOF(.jfontchardata); - - _efontcharSegmentStart = ADDR(.efontchardata); - _efontcharSegmentRomStart = _jfontcharSegmentRomEnd; - .efontchardata 0x00000000 : AT(_efontcharSegmentRomStart) { - build/u/assets/font_chardatae.o (.data); - } - _efontcharSegmentEnd = ADDR(.efontchardata) + SIZEOF(.efontchardata); - _efontcharSegmentRomEnd = _efontcharSegmentRomStart + SIZEOF(.efontchardata); - - _animation_entriesSegmentStart = ADDR(.animation_entries); - _animation_entriesSegmentRomStart = _efontcharSegmentRomEnd; - .animation_entries 0x00000000 : AT(_animation_entriesSegmentRomStart) { - build/u/assets/animationtable_entries.o(.data); - } - _animation_entriesSegmentEnd = ADDR(.animation_entries) + SIZEOF(.animation_entries); - _animation_entriesSegmentRomEnd = _animation_entriesSegmentRomStart + SIZEOF(.animation_entries); - - _animation_dataSegmentStart = ADDR(.animation_data); - _animation_dataSegmentRomStart = _animation_entriesSegmentRomEnd; - .animation_data 0x00000000 : AT(_animation_dataSegmentRomStart) { - build/u/assets/animationtable_data.o(.data); - } - _animation_dataSegmentEnd = ADDR(.animation_data) + SIZEOF(.animation_data); - _animation_dataSegmentRomEnd = _animation_dataSegmentRomStart + SIZEOF(.animation_data); - - _GlobalimagetableSegmentStart = ADDR(.Globalimagetable); - _GlobalimagetableSegmentRomStart = _animation_dataSegmentRomEnd; - .Globalimagetable 0x02000000 : AT(_GlobalimagetableSegmentRomStart) { - build/u/assets/GlobalImageTable.o (.data); - } - _GlobalimagetableSegmentEnd = ADDR(.Globalimagetable) + SIZEOF(.Globalimagetable); - _GlobalimagetableSegmentRomEnd = _GlobalimagetableSegmentRomStart + SIZEOF(.Globalimagetable); - - _GlobalimagetablecmdblkSegmentStart = ADDR(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomStart = _GlobalimagetableSegmentRomEnd; - .Globalimagetablecmdblk 0x02000000 : AT(_GlobalimagetablecmdblkSegmentRomStart) { - build/u/assets/Globalimagetable_commandblock.o (.data); - } - _GlobalimagetablecmdblkSegmentEnd = ADDR(.Globalimagetablecmdblk) + SIZEOF(.Globalimagetablecmdblk); - _GlobalimagetablecmdblkSegmentRomEnd = _GlobalimagetablecmdblkSegmentRomStart + SIZEOF(.Globalimagetablecmdblk); - - - _romfiles2SegmentStart = ADDR(.romfiles2); - _romfiles2SegmentRomStart = _GlobalimagetablecmdblkSegmentRomEnd; - .romfiles2 _romfiles2SegmentRomStart : AT(_romfiles2SegmentRomStart) { - build/u/assets/romfiles2.o (.data); - } - _romfiles2SegmentEnd = ADDR(.romfiles2) + SIZEOF(.romfiles2); - _romfiles2SegmentRomEnd = _romfiles2SegmentRomStart + SIZEOF(.romfiles2); - - _ramromfilesSegmentStart = ADDR(.ramromfiles); - _ramromfilesSegmentRomStart = _romfiles2SegmentRomEnd; - .ramromfiles _ramromfilesSegmentRomStart : AT(_ramromfilesSegmentRomStart) { - build/u/assets/ramrom/ramrom.o (.data); - } - _ramromfilesSegmentEnd = ADDR(.ramromfiles) + SIZEOF(.ramromfiles); - _ramromfilesSegmentRomEnd = _ramromfilesSegmentRomStart + SIZEOF(.ramromfiles); - - _fonttablectlsmall1SegmentStart = ADDR(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomStart = _ramromfilesSegmentRomEnd; - .fonttablectlsmall1 _fonttablectlsmall1SegmentRomStart : AT(_fonttablectlsmall1SegmentRomStart) { - build/u/assets/font/font_first_font_table_controller_small.o (.data); - } - _fonttablectlsmall1SegmentEnd = ADDR(.fonttablectlsmall1) + SIZEOF(.fonttablectlsmall1); - _fonttablectlsmall1SegmentRomEnd = _fonttablectlsmall1SegmentRomStart + SIZEOF(.fonttablectlsmall1); - - - _fonttablectllarge1SegmentStart = ADDR(.fonttablectllarge1); - _fonttablectllarge1SegmentRomStart = _fonttablectlsmall1SegmentRomEnd; - .fonttablectllarge1 _fonttablectllarge1SegmentRomStart : AT(_fonttablectllarge1SegmentRomStart) { - build/u/assets/font/font_first_font_table_controller_large.o (.data); - } - _fonttablectllarge1SegmentEnd = ADDR(.fonttablectllarge1) + SIZEOF(.fonttablectllarge1); - _fonttablectllarge1SegmentRomEnd = _fonttablectllarge1SegmentRomStart + SIZEOF(.fonttablectllarge1); - - - _musicfilesSegmentStart = ADDR(.musicfiles); - _musicfilesSegmentRomStart = _fonttablectllarge1SegmentRomEnd; - .musicfiles _musicfilesSegmentRomStart : AT(_musicfilesSegmentRomStart) { - build/u/assets/music/sfx.ctl.o (.data); - build/u/assets/music/sfx.tbl.o (.data); - build/u/assets/music/instruments.ctl.o (.data); - build/u/assets/music/instruments.tbl.o (.data); - build/u/assets/music/music.o (.music); - build/u/assets/music/music.o (.musiccompressed); - } - _musicfilesSegmentEnd = ADDR(.musicfiles) + SIZEOF(.musicfiles); - _musicfilesSegmentRomEnd = _musicfilesSegmentRomStart + SIZEOF(.musicfiles); - - - - - _obsegSegmentStart = ADDR(.obseg); - _obsegSegmentRomStart = _musicfilesSegmentRomEnd; - .obseg _obsegSegmentRomStart : AT(_obsegSegmentRomStart) { - build/u/assets/obseg/ob_seg.o (.data); - } - _obsegSegmentEnd = ADDR(.obseg) + SIZEOF(.obseg); - _obsegSegmentRomEnd = _obsegSegmentRomStart + SIZEOF(.obseg); - - - - - _imagesSegmentStart = ADDR(.images); - _imagesSegmentRomStart = _obsegSegmentRomEnd; - .images _imagesSegmentRomStart : AT(_imagesSegmentRomStart) { - _image1_start = .; - build/u/assets/images/split/image1.o (.data); - _image1_end = .; - _image1_size = (_image1_end - _image1_start); - build/u/assets/images/split/image2.o (.data); - build/u/assets/images/split/image3.o (.data); - build/u/assets/images/split/image4.o (.data); - build/u/assets/images/split/image5.o (.data); - build/u/assets/images/split/image6.o (.data); - build/u/assets/images/split/image7.o (.data); - build/u/assets/images/split/image8.o (.data); - build/u/assets/images/split/image9.o (.data); - build/u/assets/images/split/image10.o (.data); - build/u/assets/images/split/image11.o (.data); - build/u/assets/images/split/image12.o (.data); - build/u/assets/images/split/image13.o (.data); - build/u/assets/images/split/image14.o (.data); - build/u/assets/images/split/image15.o (.data); - build/u/assets/images/split/image16.o (.data); - build/u/assets/images/split/image17.o (.data); - build/u/assets/images/split/image18.o (.data); - build/u/assets/images/split/image19.o (.data); - build/u/assets/images/split/image20.o (.data); - build/u/assets/images/split/image21.o (.data); - build/u/assets/images/split/image22.o (.data); - build/u/assets/images/split/image23.o (.data); - build/u/assets/images/split/image24.o (.data); - build/u/assets/images/split/image25.o (.data); - build/u/assets/images/split/image26.o (.data); - build/u/assets/images/split/image27.o (.data); - build/u/assets/images/split/image28.o (.data); - build/u/assets/images/split/image29.o (.data); - build/u/assets/images/split/image30.o (.data); - build/u/assets/images/split/image31.o (.data); - build/u/assets/images/split/image32.o (.data); - build/u/assets/images/split/image33.o (.data); - build/u/assets/images/split/image34.o (.data); - build/u/assets/images/split/image35.o (.data); - build/u/assets/images/split/image36.o (.data); - build/u/assets/images/split/image37.o (.data); - build/u/assets/images/split/image38.o (.data); - build/u/assets/images/split/image39.o (.data); - build/u/assets/images/split/image40.o (.data); - build/u/assets/images/split/image41.o (.data); - build/u/assets/images/split/image42.o (.data); - build/u/assets/images/split/image43.o (.data); - build/u/assets/images/split/image44.o (.data); - build/u/assets/images/split/image45.o (.data); - build/u/assets/images/split/image46.o (.data); - build/u/assets/images/split/image47.o (.data); - build/u/assets/images/split/image48.o (.data); - build/u/assets/images/split/image49.o (.data); - build/u/assets/images/split/image50.o (.data); - build/u/assets/images/split/image51.o (.data); - build/u/assets/images/split/image52.o (.data); - build/u/assets/images/split/image53.o (.data); - build/u/assets/images/split/image54.o (.data); - build/u/assets/images/split/image55.o (.data); - build/u/assets/images/split/image56.o (.data); - build/u/assets/images/split/image57.o (.data); - build/u/assets/images/split/image58.o (.data); - build/u/assets/images/split/image59.o (.data); - build/u/assets/images/split/image60.o (.data); - build/u/assets/images/split/image61.o (.data); - build/u/assets/images/split/image62.o (.data); - build/u/assets/images/split/image63.o (.data); - build/u/assets/images/split/image64.o (.data); - build/u/assets/images/split/image65.o (.data); - build/u/assets/images/split/image66.o (.data); - build/u/assets/images/split/image67.o (.data); - build/u/assets/images/split/image68.o (.data); - build/u/assets/images/split/image69.o (.data); - build/u/assets/images/split/image70.o (.data); - build/u/assets/images/split/image71.o (.data); - build/u/assets/images/split/image72.o (.data); - build/u/assets/images/split/image73.o (.data); - build/u/assets/images/split/image74.o (.data); - build/u/assets/images/split/image75.o (.data); - build/u/assets/images/split/image76.o (.data); - build/u/assets/images/split/image77.o (.data); - build/u/assets/images/split/image78.o (.data); - build/u/assets/images/split/image79.o (.data); - build/u/assets/images/split/image80.o (.data); - build/u/assets/images/split/image81.o (.data); - build/u/assets/images/split/image82.o (.data); - build/u/assets/images/split/image83.o (.data); - build/u/assets/images/split/image84.o (.data); - build/u/assets/images/split/image85.o (.data); - build/u/assets/images/split/image86.o (.data); - build/u/assets/images/split/image87.o (.data); - build/u/assets/images/split/image88.o (.data); - build/u/assets/images/split/image89.o (.data); - build/u/assets/images/split/image90.o (.data); - build/u/assets/images/split/image91.o (.data); - build/u/assets/images/split/image92.o (.data); - build/u/assets/images/split/image93.o (.data); - build/u/assets/images/split/image94.o (.data); - build/u/assets/images/split/image95.o (.data); - build/u/assets/images/split/image96.o (.data); - build/u/assets/images/split/image97.o (.data); - build/u/assets/images/split/image98.o (.data); - build/u/assets/images/split/image99.o (.data); - build/u/assets/images/split/image100.o (.data); - build/u/assets/images/split/image101.o (.data); - build/u/assets/images/split/image102.o (.data); - build/u/assets/images/split/image103.o (.data); - build/u/assets/images/split/image104.o (.data); - build/u/assets/images/split/image105.o (.data); - build/u/assets/images/split/image106.o (.data); - build/u/assets/images/split/image107.o (.data); - build/u/assets/images/split/image108.o (.data); - build/u/assets/images/split/image109.o (.data); - build/u/assets/images/split/image110.o (.data); - build/u/assets/images/split/image111.o (.data); - build/u/assets/images/split/image112.o (.data); - build/u/assets/images/split/image113.o (.data); - build/u/assets/images/split/image114.o (.data); - build/u/assets/images/split/image115.o (.data); - build/u/assets/images/split/image116.o (.data); - build/u/assets/images/split/image117.o (.data); - build/u/assets/images/split/image118.o (.data); - build/u/assets/images/split/image119.o (.data); - build/u/assets/images/split/image120.o (.data); - build/u/assets/images/split/image121.o (.data); - build/u/assets/images/split/image122.o (.data); - build/u/assets/images/split/image123.o (.data); - build/u/assets/images/split/image124.o (.data); - build/u/assets/images/split/image125.o (.data); - build/u/assets/images/split/image126.o (.data); - build/u/assets/images/split/image127.o (.data); - build/u/assets/images/split/image128.o (.data); - build/u/assets/images/split/image129.o (.data); - build/u/assets/images/split/image130.o (.data); - build/u/assets/images/split/image131.o (.data); - build/u/assets/images/split/image132.o (.data); - build/u/assets/images/split/image133.o (.data); - build/u/assets/images/split/image134.o (.data); - build/u/assets/images/split/image135.o (.data); - build/u/assets/images/split/image136.o (.data); - build/u/assets/images/split/image137.o (.data); - build/u/assets/images/split/image138.o (.data); - build/u/assets/images/split/image139.o (.data); - build/u/assets/images/split/image140.o (.data); - build/u/assets/images/split/image141.o (.data); - build/u/assets/images/split/image142.o (.data); - build/u/assets/images/split/image143.o (.data); - build/u/assets/images/split/image144.o (.data); - build/u/assets/images/split/image145.o (.data); - build/u/assets/images/split/image146.o (.data); - build/u/assets/images/split/image147.o (.data); - build/u/assets/images/split/image148.o (.data); - build/u/assets/images/split/image149.o (.data); - build/u/assets/images/split/image150.o (.data); - build/u/assets/images/split/image151.o (.data); - build/u/assets/images/split/image152.o (.data); - build/u/assets/images/split/image153.o (.data); - build/u/assets/images/split/image154.o (.data); - build/u/assets/images/split/image155.o (.data); - build/u/assets/images/split/image156.o (.data); - build/u/assets/images/split/image157.o (.data); - build/u/assets/images/split/image158.o (.data); - build/u/assets/images/split/image159.o (.data); - build/u/assets/images/split/image160.o (.data); - build/u/assets/images/split/image161.o (.data); - build/u/assets/images/split/image162.o (.data); - build/u/assets/images/split/image163.o (.data); - build/u/assets/images/split/image164.o (.data); - build/u/assets/images/split/image165.o (.data); - build/u/assets/images/split/image166.o (.data); - build/u/assets/images/split/image167.o (.data); - build/u/assets/images/split/image168.o (.data); - build/u/assets/images/split/image169.o (.data); - build/u/assets/images/split/image170.o (.data); - build/u/assets/images/split/image171.o (.data); - build/u/assets/images/split/image172.o (.data); - build/u/assets/images/split/image173.o (.data); - build/u/assets/images/split/image174.o (.data); - build/u/assets/images/split/image175.o (.data); - build/u/assets/images/split/image176.o (.data); - build/u/assets/images/split/image177.o (.data); - build/u/assets/images/split/image178.o (.data); - build/u/assets/images/split/image179.o (.data); - build/u/assets/images/split/image180.o (.data); - build/u/assets/images/split/image181.o (.data); - build/u/assets/images/split/image182.o (.data); - build/u/assets/images/split/image183.o (.data); - build/u/assets/images/split/image184.o (.data); - build/u/assets/images/split/image185.o (.data); - build/u/assets/images/split/image186.o (.data); - build/u/assets/images/split/image187.o (.data); - build/u/assets/images/split/image188.o (.data); - build/u/assets/images/split/image189.o (.data); - build/u/assets/images/split/image190.o (.data); - build/u/assets/images/split/image191.o (.data); - build/u/assets/images/split/image192.o (.data); - build/u/assets/images/split/image193.o (.data); - build/u/assets/images/split/image194.o (.data); - build/u/assets/images/split/image195.o (.data); - build/u/assets/images/split/image196.o (.data); - build/u/assets/images/split/image197.o (.data); - build/u/assets/images/split/image198.o (.data); - build/u/assets/images/split/image199.o (.data); - build/u/assets/images/split/image200.o (.data); - build/u/assets/images/split/image201.o (.data); - build/u/assets/images/split/image202.o (.data); - build/u/assets/images/split/image203.o (.data); - build/u/assets/images/split/image204.o (.data); - build/u/assets/images/split/image205.o (.data); - build/u/assets/images/split/image206.o (.data); - build/u/assets/images/split/image207.o (.data); - build/u/assets/images/split/image208.o (.data); - build/u/assets/images/split/image209.o (.data); - build/u/assets/images/split/image210.o (.data); - build/u/assets/images/split/image211.o (.data); - build/u/assets/images/split/image212.o (.data); - build/u/assets/images/split/image213.o (.data); - build/u/assets/images/split/image214.o (.data); - build/u/assets/images/split/image215.o (.data); - build/u/assets/images/split/image216.o (.data); - build/u/assets/images/split/image217.o (.data); - build/u/assets/images/split/image218.o (.data); - build/u/assets/images/split/image219.o (.data); - build/u/assets/images/split/image220.o (.data); - build/u/assets/images/split/image221.o (.data); - build/u/assets/images/split/image222.o (.data); - build/u/assets/images/split/image223.o (.data); - build/u/assets/images/split/image224.o (.data); - build/u/assets/images/split/image225.o (.data); - build/u/assets/images/split/image226.o (.data); - build/u/assets/images/split/image227.o (.data); - build/u/assets/images/split/image228.o (.data); - build/u/assets/images/split/image229.o (.data); - build/u/assets/images/split/image230.o (.data); - build/u/assets/images/split/image231.o (.data); - build/u/assets/images/split/image232.o (.data); - build/u/assets/images/split/image233.o (.data); - build/u/assets/images/split/image234.o (.data); - build/u/assets/images/split/image235.o (.data); - build/u/assets/images/split/image236.o (.data); - build/u/assets/images/split/image237.o (.data); - build/u/assets/images/split/image238.o (.data); - build/u/assets/images/split/image239.o (.data); - build/u/assets/images/split/image240.o (.data); - build/u/assets/images/split/image241.o (.data); - build/u/assets/images/split/image242.o (.data); - build/u/assets/images/split/image243.o (.data); - build/u/assets/images/split/image244.o (.data); - build/u/assets/images/split/image245.o (.data); - build/u/assets/images/split/image246.o (.data); - build/u/assets/images/split/image247.o (.data); - build/u/assets/images/split/image248.o (.data); - build/u/assets/images/split/image249.o (.data); - build/u/assets/images/split/image250.o (.data); - build/u/assets/images/split/image251.o (.data); - build/u/assets/images/split/image252.o (.data); - build/u/assets/images/split/image253.o (.data); - build/u/assets/images/split/image254.o (.data); - build/u/assets/images/split/image255.o (.data); - build/u/assets/images/split/image256.o (.data); - build/u/assets/images/split/image257.o (.data); - build/u/assets/images/split/image258.o (.data); - build/u/assets/images/split/image259.o (.data); - build/u/assets/images/split/image260.o (.data); - build/u/assets/images/split/image261.o (.data); - build/u/assets/images/split/image262.o (.data); - build/u/assets/images/split/image263.o (.data); - build/u/assets/images/split/image264.o (.data); - build/u/assets/images/split/image265.o (.data); - build/u/assets/images/split/image266.o (.data); - build/u/assets/images/split/image267.o (.data); - build/u/assets/images/split/image268.o (.data); - build/u/assets/images/split/image269.o (.data); - build/u/assets/images/split/image270.o (.data); - build/u/assets/images/split/image271.o (.data); - build/u/assets/images/split/image272.o (.data); - build/u/assets/images/split/image273.o (.data); - build/u/assets/images/split/image274.o (.data); - build/u/assets/images/split/image275.o (.data); - build/u/assets/images/split/image276.o (.data); - build/u/assets/images/split/image277.o (.data); - build/u/assets/images/split/image278.o (.data); - build/u/assets/images/split/image279.o (.data); - build/u/assets/images/split/image280.o (.data); - build/u/assets/images/split/image281.o (.data); - build/u/assets/images/split/image282.o (.data); - build/u/assets/images/split/image283.o (.data); - build/u/assets/images/split/image284.o (.data); - build/u/assets/images/split/image285.o (.data); - build/u/assets/images/split/image286.o (.data); - build/u/assets/images/split/image287.o (.data); - build/u/assets/images/split/image288.o (.data); - build/u/assets/images/split/image289.o (.data); - build/u/assets/images/split/image290.o (.data); - build/u/assets/images/split/image291.o (.data); - build/u/assets/images/split/image292.o (.data); - build/u/assets/images/split/image293.o (.data); - build/u/assets/images/split/image294.o (.data); - build/u/assets/images/split/image295.o (.data); - build/u/assets/images/split/image296.o (.data); - build/u/assets/images/split/image297.o (.data); - build/u/assets/images/split/image298.o (.data); - build/u/assets/images/split/image299.o (.data); - build/u/assets/images/split/image300.o (.data); - build/u/assets/images/split/image301.o (.data); - build/u/assets/images/split/image302.o (.data); - build/u/assets/images/split/image303.o (.data); - build/u/assets/images/split/image304.o (.data); - build/u/assets/images/split/image305.o (.data); - build/u/assets/images/split/image306.o (.data); - build/u/assets/images/split/image307.o (.data); - build/u/assets/images/split/image308.o (.data); - build/u/assets/images/split/image309.o (.data); - build/u/assets/images/split/image310.o (.data); - build/u/assets/images/split/image311.o (.data); - build/u/assets/images/split/image312.o (.data); - build/u/assets/images/split/image313.o (.data); - build/u/assets/images/split/image314.o (.data); - build/u/assets/images/split/image315.o (.data); - build/u/assets/images/split/image316.o (.data); - build/u/assets/images/split/image317.o (.data); - build/u/assets/images/split/image318.o (.data); - build/u/assets/images/split/image319.o (.data); - build/u/assets/images/split/image320.o (.data); - build/u/assets/images/split/image321.o (.data); - build/u/assets/images/split/image322.o (.data); - build/u/assets/images/split/image323.o (.data); - build/u/assets/images/split/image324.o (.data); - build/u/assets/images/split/image325.o (.data); - build/u/assets/images/split/image326.o (.data); - build/u/assets/images/split/image327.o (.data); - build/u/assets/images/split/image328.o (.data); - build/u/assets/images/split/image329.o (.data); - build/u/assets/images/split/image330.o (.data); - build/u/assets/images/split/image331.o (.data); - build/u/assets/images/split/image332.o (.data); - build/u/assets/images/split/image333.o (.data); - build/u/assets/images/split/image334.o (.data); - build/u/assets/images/split/image335.o (.data); - build/u/assets/images/split/image336.o (.data); - build/u/assets/images/split/image337.o (.data); - build/u/assets/images/split/image338.o (.data); - build/u/assets/images/split/image339.o (.data); - build/u/assets/images/split/image340.o (.data); - build/u/assets/images/split/image341.o (.data); - build/u/assets/images/split/image342.o (.data); - build/u/assets/images/split/image343.o (.data); - build/u/assets/images/split/image344.o (.data); - build/u/assets/images/split/image345.o (.data); - build/u/assets/images/split/image346.o (.data); - build/u/assets/images/split/image347.o (.data); - build/u/assets/images/split/image348.o (.data); - build/u/assets/images/split/image349.o (.data); - build/u/assets/images/split/image350.o (.data); - build/u/assets/images/split/image351.o (.data); - build/u/assets/images/split/image352.o (.data); - build/u/assets/images/split/image353.o (.data); - build/u/assets/images/split/image354.o (.data); - build/u/assets/images/split/image355.o (.data); - build/u/assets/images/split/image356.o (.data); - build/u/assets/images/split/image357.o (.data); - build/u/assets/images/split/image358.o (.data); - build/u/assets/images/split/image359.o (.data); - build/u/assets/images/split/image360.o (.data); - build/u/assets/images/split/image361.o (.data); - build/u/assets/images/split/image362.o (.data); - build/u/assets/images/split/image363.o (.data); - build/u/assets/images/split/image364.o (.data); - build/u/assets/images/split/image365.o (.data); - build/u/assets/images/split/image366.o (.data); - build/u/assets/images/split/image367.o (.data); - build/u/assets/images/split/image368.o (.data); - build/u/assets/images/split/image369.o (.data); - build/u/assets/images/split/image370.o (.data); - build/u/assets/images/split/image371.o (.data); - build/u/assets/images/split/image372.o (.data); - build/u/assets/images/split/image373.o (.data); - build/u/assets/images/split/image374.o (.data); - build/u/assets/images/split/image375.o (.data); - build/u/assets/images/split/image376.o (.data); - build/u/assets/images/split/image377.o (.data); - build/u/assets/images/split/image378.o (.data); - build/u/assets/images/split/image379.o (.data); - build/u/assets/images/split/image380.o (.data); - build/u/assets/images/split/image381.o (.data); - build/u/assets/images/split/image382.o (.data); - build/u/assets/images/split/image383.o (.data); - build/u/assets/images/split/image384.o (.data); - build/u/assets/images/split/image385.o (.data); - build/u/assets/images/split/image386.o (.data); - build/u/assets/images/split/image387.o (.data); - build/u/assets/images/split/image388.o (.data); - build/u/assets/images/split/image389.o (.data); - build/u/assets/images/split/image390.o (.data); - build/u/assets/images/split/image391.o (.data); - build/u/assets/images/split/image392.o (.data); - build/u/assets/images/split/image393.o (.data); - build/u/assets/images/split/image394.o (.data); - build/u/assets/images/split/image395.o (.data); - build/u/assets/images/split/image396.o (.data); - build/u/assets/images/split/image397.o (.data); - build/u/assets/images/split/image398.o (.data); - build/u/assets/images/split/image399.o (.data); - build/u/assets/images/split/image400.o (.data); - build/u/assets/images/split/image401.o (.data); - build/u/assets/images/split/image402.o (.data); - build/u/assets/images/split/image403.o (.data); - build/u/assets/images/split/image404.o (.data); - build/u/assets/images/split/image405.o (.data); - build/u/assets/images/split/image406.o (.data); - build/u/assets/images/split/image407.o (.data); - build/u/assets/images/split/image408.o (.data); - build/u/assets/images/split/image409.o (.data); - build/u/assets/images/split/image410.o (.data); - build/u/assets/images/split/image411.o (.data); - build/u/assets/images/split/image412.o (.data); - build/u/assets/images/split/image413.o (.data); - build/u/assets/images/split/image414.o (.data); - build/u/assets/images/split/image415.o (.data); - build/u/assets/images/split/image416.o (.data); - build/u/assets/images/split/image417.o (.data); - build/u/assets/images/split/image418.o (.data); - build/u/assets/images/split/image419.o (.data); - build/u/assets/images/split/image420.o (.data); - build/u/assets/images/split/image421.o (.data); - build/u/assets/images/split/image422.o (.data); - build/u/assets/images/split/image423.o (.data); - build/u/assets/images/split/image424.o (.data); - build/u/assets/images/split/image425.o (.data); - build/u/assets/images/split/image426.o (.data); - build/u/assets/images/split/image427.o (.data); - build/u/assets/images/split/image428.o (.data); - build/u/assets/images/split/image429.o (.data); - build/u/assets/images/split/image430.o (.data); - build/u/assets/images/split/image431.o (.data); - build/u/assets/images/split/image432.o (.data); - build/u/assets/images/split/image433.o (.data); - build/u/assets/images/split/image434.o (.data); - build/u/assets/images/split/image435.o (.data); - build/u/assets/images/split/image436.o (.data); - build/u/assets/images/split/image437.o (.data); - build/u/assets/images/split/image438.o (.data); - build/u/assets/images/split/image439.o (.data); - build/u/assets/images/split/image440.o (.data); - build/u/assets/images/split/image441.o (.data); - build/u/assets/images/split/image442.o (.data); - build/u/assets/images/split/image443.o (.data); - build/u/assets/images/split/image444.o (.data); - build/u/assets/images/split/image445.o (.data); - build/u/assets/images/split/image446.o (.data); - build/u/assets/images/split/image447.o (.data); - build/u/assets/images/split/image448.o (.data); - build/u/assets/images/split/image449.o (.data); - build/u/assets/images/split/image450.o (.data); - build/u/assets/images/split/image451.o (.data); - build/u/assets/images/split/image452.o (.data); - build/u/assets/images/split/image453.o (.data); - build/u/assets/images/split/image454.o (.data); - build/u/assets/images/split/image455.o (.data); - build/u/assets/images/split/image456.o (.data); - build/u/assets/images/split/image457.o (.data); - build/u/assets/images/split/image458.o (.data); - build/u/assets/images/split/image459.o (.data); - build/u/assets/images/split/image460.o (.data); - build/u/assets/images/split/image461.o (.data); - build/u/assets/images/split/image462.o (.data); - build/u/assets/images/split/image463.o (.data); - build/u/assets/images/split/image464.o (.data); - build/u/assets/images/split/image465.o (.data); - build/u/assets/images/split/image466.o (.data); - build/u/assets/images/split/image467.o (.data); - build/u/assets/images/split/image468.o (.data); - build/u/assets/images/split/image469.o (.data); - build/u/assets/images/split/image470.o (.data); - build/u/assets/images/split/image471.o (.data); - build/u/assets/images/split/image472.o (.data); - build/u/assets/images/split/image473.o (.data); - build/u/assets/images/split/image474.o (.data); - build/u/assets/images/split/image475.o (.data); - build/u/assets/images/split/image476.o (.data); - build/u/assets/images/split/image477.o (.data); - build/u/assets/images/split/image478.o (.data); - build/u/assets/images/split/image479.o (.data); - build/u/assets/images/split/image480.o (.data); - build/u/assets/images/split/image481.o (.data); - build/u/assets/images/split/image482.o (.data); - build/u/assets/images/split/image483.o (.data); - build/u/assets/images/split/image484.o (.data); - build/u/assets/images/split/image485.o (.data); - build/u/assets/images/split/image486.o (.data); - build/u/assets/images/split/image487.o (.data); - build/u/assets/images/split/image488.o (.data); - build/u/assets/images/split/image489.o (.data); - build/u/assets/images/split/image490.o (.data); - build/u/assets/images/split/image491.o (.data); - build/u/assets/images/split/image492.o (.data); - build/u/assets/images/split/image493.o (.data); - build/u/assets/images/split/image494.o (.data); - build/u/assets/images/split/image495.o (.data); - build/u/assets/images/split/image496.o (.data); - build/u/assets/images/split/image497.o (.data); - build/u/assets/images/split/image498.o (.data); - build/u/assets/images/split/image499.o (.data); - build/u/assets/images/split/image500.o (.data); - build/u/assets/images/split/image501.o (.data); - build/u/assets/images/split/image502.o (.data); - build/u/assets/images/split/image503.o (.data); - build/u/assets/images/split/image504.o (.data); - build/u/assets/images/split/image505.o (.data); - build/u/assets/images/split/image506.o (.data); - build/u/assets/images/split/image507.o (.data); - build/u/assets/images/split/image508.o (.data); - build/u/assets/images/split/image509.o (.data); - build/u/assets/images/split/image510.o (.data); - build/u/assets/images/split/image511.o (.data); - build/u/assets/images/split/image512.o (.data); - build/u/assets/images/split/image513.o (.data); - build/u/assets/images/split/image514.o (.data); - build/u/assets/images/split/image515.o (.data); - build/u/assets/images/split/image516.o (.data); - build/u/assets/images/split/image517.o (.data); - build/u/assets/images/split/image518.o (.data); - build/u/assets/images/split/image519.o (.data); - build/u/assets/images/split/image520.o (.data); - build/u/assets/images/split/image521.o (.data); - build/u/assets/images/split/image522.o (.data); - build/u/assets/images/split/image523.o (.data); - build/u/assets/images/split/image524.o (.data); - build/u/assets/images/split/image525.o (.data); - build/u/assets/images/split/image526.o (.data); - build/u/assets/images/split/image527.o (.data); - build/u/assets/images/split/image528.o (.data); - build/u/assets/images/split/image529.o (.data); - build/u/assets/images/split/image530.o (.data); - build/u/assets/images/split/image531.o (.data); - build/u/assets/images/split/image532.o (.data); - build/u/assets/images/split/image533.o (.data); - build/u/assets/images/split/image534.o (.data); - build/u/assets/images/split/image535.o (.data); - build/u/assets/images/split/image536.o (.data); - build/u/assets/images/split/image537.o (.data); - build/u/assets/images/split/image538.o (.data); - build/u/assets/images/split/image539.o (.data); - build/u/assets/images/split/image540.o (.data); - build/u/assets/images/split/image541.o (.data); - build/u/assets/images/split/image542.o (.data); - build/u/assets/images/split/image543.o (.data); - build/u/assets/images/split/image544.o (.data); - build/u/assets/images/split/image545.o (.data); - build/u/assets/images/split/image546.o (.data); - build/u/assets/images/split/image547.o (.data); - build/u/assets/images/split/image548.o (.data); - build/u/assets/images/split/image549.o (.data); - build/u/assets/images/split/image550.o (.data); - build/u/assets/images/split/image551.o (.data); - build/u/assets/images/split/image552.o (.data); - build/u/assets/images/split/image553.o (.data); - build/u/assets/images/split/image554.o (.data); - build/u/assets/images/split/image555.o (.data); - build/u/assets/images/split/image556.o (.data); - build/u/assets/images/split/image557.o (.data); - build/u/assets/images/split/image558.o (.data); - build/u/assets/images/split/image559.o (.data); - build/u/assets/images/split/image560.o (.data); - build/u/assets/images/split/image561.o (.data); - build/u/assets/images/split/image562.o (.data); - build/u/assets/images/split/image563.o (.data); - build/u/assets/images/split/image564.o (.data); - build/u/assets/images/split/image565.o (.data); - build/u/assets/images/split/image566.o (.data); - build/u/assets/images/split/image567.o (.data); - build/u/assets/images/split/image568.o (.data); - build/u/assets/images/split/image569.o (.data); - build/u/assets/images/split/image570.o (.data); - build/u/assets/images/split/image571.o (.data); - build/u/assets/images/split/image572.o (.data); - build/u/assets/images/split/image573.o (.data); - build/u/assets/images/split/image574.o (.data); - build/u/assets/images/split/image575.o (.data); - build/u/assets/images/split/image576.o (.data); - build/u/assets/images/split/image577.o (.data); - build/u/assets/images/split/image578.o (.data); - build/u/assets/images/split/image579.o (.data); - build/u/assets/images/split/image580.o (.data); - build/u/assets/images/split/image581.o (.data); - build/u/assets/images/split/image582.o (.data); - build/u/assets/images/split/image583.o (.data); - build/u/assets/images/split/image584.o (.data); - build/u/assets/images/split/image585.o (.data); - build/u/assets/images/split/image586.o (.data); - build/u/assets/images/split/image587.o (.data); - build/u/assets/images/split/image588.o (.data); - build/u/assets/images/split/image589.o (.data); - build/u/assets/images/split/image590.o (.data); - build/u/assets/images/split/image591.o (.data); - build/u/assets/images/split/image592.o (.data); - build/u/assets/images/split/image593.o (.data); - build/u/assets/images/split/image594.o (.data); - build/u/assets/images/split/image595.o (.data); - build/u/assets/images/split/image596.o (.data); - build/u/assets/images/split/image597.o (.data); - build/u/assets/images/split/image598.o (.data); - build/u/assets/images/split/image599.o (.data); - build/u/assets/images/split/image600.o (.data); - build/u/assets/images/split/image601.o (.data); - build/u/assets/images/split/image602.o (.data); - build/u/assets/images/split/image603.o (.data); - build/u/assets/images/split/image604.o (.data); - build/u/assets/images/split/image605.o (.data); - build/u/assets/images/split/image606.o (.data); - build/u/assets/images/split/image607.o (.data); - build/u/assets/images/split/image608.o (.data); - build/u/assets/images/split/image609.o (.data); - build/u/assets/images/split/image610.o (.data); - build/u/assets/images/split/image611.o (.data); - build/u/assets/images/split/image612.o (.data); - build/u/assets/images/split/image613.o (.data); - build/u/assets/images/split/image614.o (.data); - build/u/assets/images/split/image615.o (.data); - build/u/assets/images/split/image616.o (.data); - build/u/assets/images/split/image617.o (.data); - build/u/assets/images/split/image618.o (.data); - build/u/assets/images/split/image619.o (.data); - build/u/assets/images/split/image620.o (.data); - build/u/assets/images/split/image621.o (.data); - build/u/assets/images/split/image622.o (.data); - build/u/assets/images/split/image623.o (.data); - build/u/assets/images/split/image624.o (.data); - build/u/assets/images/split/image625.o (.data); - build/u/assets/images/split/image626.o (.data); - build/u/assets/images/split/image627.o (.data); - build/u/assets/images/split/image628.o (.data); - build/u/assets/images/split/image629.o (.data); - build/u/assets/images/split/image630.o (.data); - build/u/assets/images/split/image631.o (.data); - build/u/assets/images/split/image632.o (.data); - build/u/assets/images/split/image633.o (.data); - build/u/assets/images/split/image634.o (.data); - build/u/assets/images/split/image635.o (.data); - build/u/assets/images/split/image636.o (.data); - build/u/assets/images/split/image637.o (.data); - build/u/assets/images/split/image638.o (.data); - build/u/assets/images/split/image639.o (.data); - build/u/assets/images/split/image640.o (.data); - build/u/assets/images/split/image641.o (.data); - build/u/assets/images/split/image642.o (.data); - build/u/assets/images/split/image643.o (.data); - build/u/assets/images/split/image644.o (.data); - build/u/assets/images/split/image645.o (.data); - build/u/assets/images/split/image646.o (.data); - build/u/assets/images/split/image647.o (.data); - build/u/assets/images/split/image648.o (.data); - build/u/assets/images/split/image649.o (.data); - build/u/assets/images/split/image650.o (.data); - build/u/assets/images/split/image651.o (.data); - build/u/assets/images/split/image652.o (.data); - build/u/assets/images/split/image653.o (.data); - build/u/assets/images/split/image654.o (.data); - build/u/assets/images/split/image655.o (.data); - build/u/assets/images/split/image656.o (.data); - build/u/assets/images/split/image657.o (.data); - build/u/assets/images/split/image658.o (.data); - build/u/assets/images/split/image659.o (.data); - build/u/assets/images/split/image660.o (.data); - build/u/assets/images/split/image661.o (.data); - build/u/assets/images/split/image662.o (.data); - build/u/assets/images/split/image663.o (.data); - build/u/assets/images/split/image664.o (.data); - build/u/assets/images/split/image665.o (.data); - build/u/assets/images/split/image666.o (.data); - build/u/assets/images/split/image667.o (.data); - build/u/assets/images/split/image668.o (.data); - build/u/assets/images/split/image669.o (.data); - build/u/assets/images/split/image670.o (.data); - build/u/assets/images/split/image671.o (.data); - build/u/assets/images/split/image672.o (.data); - build/u/assets/images/split/image673.o (.data); - build/u/assets/images/split/image674.o (.data); - build/u/assets/images/split/image675.o (.data); - build/u/assets/images/split/image676.o (.data); - build/u/assets/images/split/image677.o (.data); - build/u/assets/images/split/image678.o (.data); - build/u/assets/images/split/image679.o (.data); - build/u/assets/images/split/image680.o (.data); - build/u/assets/images/split/image681.o (.data); - build/u/assets/images/split/image682.o (.data); - build/u/assets/images/split/image683.o (.data); - build/u/assets/images/split/image684.o (.data); - build/u/assets/images/split/image685.o (.data); - build/u/assets/images/split/image686.o (.data); - build/u/assets/images/split/image687.o (.data); - build/u/assets/images/split/image688.o (.data); - build/u/assets/images/split/image689.o (.data); - build/u/assets/images/split/image690.o (.data); - build/u/assets/images/split/image691.o (.data); - build/u/assets/images/split/image692.o (.data); - build/u/assets/images/split/image693.o (.data); - build/u/assets/images/split/image694.o (.data); - build/u/assets/images/split/image695.o (.data); - build/u/assets/images/split/image696.o (.data); - build/u/assets/images/split/image697.o (.data); - build/u/assets/images/split/image698.o (.data); - build/u/assets/images/split/image699.o (.data); - build/u/assets/images/split/image700.o (.data); - build/u/assets/images/split/image701.o (.data); - build/u/assets/images/split/image702.o (.data); - build/u/assets/images/split/image703.o (.data); - build/u/assets/images/split/image704.o (.data); - build/u/assets/images/split/image705.o (.data); - build/u/assets/images/split/image706.o (.data); - build/u/assets/images/split/image707.o (.data); - build/u/assets/images/split/image708.o (.data); - build/u/assets/images/split/image709.o (.data); - build/u/assets/images/split/image710.o (.data); - build/u/assets/images/split/image711.o (.data); - build/u/assets/images/split/image712.o (.data); - build/u/assets/images/split/image713.o (.data); - build/u/assets/images/split/image714.o (.data); - build/u/assets/images/split/image715.o (.data); - build/u/assets/images/split/image716.o (.data); - build/u/assets/images/split/image717.o (.data); - build/u/assets/images/split/image718.o (.data); - build/u/assets/images/split/image719.o (.data); - build/u/assets/images/split/image720.o (.data); - build/u/assets/images/split/image721.o (.data); - build/u/assets/images/split/image722.o (.data); - build/u/assets/images/split/image723.o (.data); - build/u/assets/images/split/image724.o (.data); - build/u/assets/images/split/image725.o (.data); - build/u/assets/images/split/image726.o (.data); - build/u/assets/images/split/image727.o (.data); - build/u/assets/images/split/image728.o (.data); - build/u/assets/images/split/image729.o (.data); - build/u/assets/images/split/image730.o (.data); - build/u/assets/images/split/image731.o (.data); - build/u/assets/images/split/image732.o (.data); - build/u/assets/images/split/image733.o (.data); - build/u/assets/images/split/image734.o (.data); - build/u/assets/images/split/image735.o (.data); - build/u/assets/images/split/image736.o (.data); - build/u/assets/images/split/image737.o (.data); - build/u/assets/images/split/image738.o (.data); - build/u/assets/images/split/image739.o (.data); - build/u/assets/images/split/image740.o (.data); - build/u/assets/images/split/image741.o (.data); - build/u/assets/images/split/image742.o (.data); - build/u/assets/images/split/image743.o (.data); - build/u/assets/images/split/image744.o (.data); - build/u/assets/images/split/image745.o (.data); - build/u/assets/images/split/image746.o (.data); - build/u/assets/images/split/image747.o (.data); - build/u/assets/images/split/image748.o (.data); - build/u/assets/images/split/image749.o (.data); - build/u/assets/images/split/image750.o (.data); - build/u/assets/images/split/image751.o (.data); - build/u/assets/images/split/image752.o (.data); - build/u/assets/images/split/image753.o (.data); - build/u/assets/images/split/image754.o (.data); - build/u/assets/images/split/image755.o (.data); - build/u/assets/images/split/image756.o (.data); - build/u/assets/images/split/image757.o (.data); - build/u/assets/images/split/image758.o (.data); - build/u/assets/images/split/image759.o (.data); - build/u/assets/images/split/image760.o (.data); - build/u/assets/images/split/image761.o (.data); - build/u/assets/images/split/image762.o (.data); - build/u/assets/images/split/image763.o (.data); - build/u/assets/images/split/image764.o (.data); - build/u/assets/images/split/image765.o (.data); - build/u/assets/images/split/image766.o (.data); - build/u/assets/images/split/image767.o (.data); - build/u/assets/images/split/image768.o (.data); - build/u/assets/images/split/image769.o (.data); - build/u/assets/images/split/image770.o (.data); - build/u/assets/images/split/image771.o (.data); - build/u/assets/images/split/image772.o (.data); - build/u/assets/images/split/image773.o (.data); - build/u/assets/images/split/image774.o (.data); - build/u/assets/images/split/image775.o (.data); - build/u/assets/images/split/image776.o (.data); - build/u/assets/images/split/image777.o (.data); - build/u/assets/images/split/image778.o (.data); - build/u/assets/images/split/image779.o (.data); - build/u/assets/images/split/image780.o (.data); - build/u/assets/images/split/image781.o (.data); - build/u/assets/images/split/image782.o (.data); - build/u/assets/images/split/image783.o (.data); - build/u/assets/images/split/image784.o (.data); - build/u/assets/images/split/image785.o (.data); - build/u/assets/images/split/image786.o (.data); - build/u/assets/images/split/image787.o (.data); - build/u/assets/images/split/image788.o (.data); - build/u/assets/images/split/image789.o (.data); - build/u/assets/images/split/image790.o (.data); - build/u/assets/images/split/image791.o (.data); - build/u/assets/images/split/image792.o (.data); - build/u/assets/images/split/image793.o (.data); - build/u/assets/images/split/image794.o (.data); - build/u/assets/images/split/image795.o (.data); - build/u/assets/images/split/image796.o (.data); - build/u/assets/images/split/image797.o (.data); - build/u/assets/images/split/image798.o (.data); - build/u/assets/images/split/image799.o (.data); - build/u/assets/images/split/image800.o (.data); - build/u/assets/images/split/image801.o (.data); - build/u/assets/images/split/image802.o (.data); - build/u/assets/images/split/image803.o (.data); - build/u/assets/images/split/image804.o (.data); - build/u/assets/images/split/image805.o (.data); - build/u/assets/images/split/image806.o (.data); - build/u/assets/images/split/image807.o (.data); - build/u/assets/images/split/image808.o (.data); - build/u/assets/images/split/image809.o (.data); - build/u/assets/images/split/image810.o (.data); - build/u/assets/images/split/image811.o (.data); - build/u/assets/images/split/image812.o (.data); - build/u/assets/images/split/image813.o (.data); - build/u/assets/images/split/image814.o (.data); - build/u/assets/images/split/image815.o (.data); - build/u/assets/images/split/image816.o (.data); - build/u/assets/images/split/image817.o (.data); - build/u/assets/images/split/image818.o (.data); - build/u/assets/images/split/image819.o (.data); - build/u/assets/images/split/image820.o (.data); - build/u/assets/images/split/image821.o (.data); - build/u/assets/images/split/image822.o (.data); - build/u/assets/images/split/image823.o (.data); - build/u/assets/images/split/image824.o (.data); - build/u/assets/images/split/image825.o (.data); - build/u/assets/images/split/image826.o (.data); - build/u/assets/images/split/image827.o (.data); - build/u/assets/images/split/image828.o (.data); - build/u/assets/images/split/image829.o (.data); - build/u/assets/images/split/image830.o (.data); - build/u/assets/images/split/image831.o (.data); - build/u/assets/images/split/image832.o (.data); - build/u/assets/images/split/image833.o (.data); - build/u/assets/images/split/image834.o (.data); - build/u/assets/images/split/image835.o (.data); - build/u/assets/images/split/image836.o (.data); - build/u/assets/images/split/image837.o (.data); - build/u/assets/images/split/image838.o (.data); - build/u/assets/images/split/image839.o (.data); - build/u/assets/images/split/image840.o (.data); - build/u/assets/images/split/image841.o (.data); - build/u/assets/images/split/image842.o (.data); - build/u/assets/images/split/image843.o (.data); - build/u/assets/images/split/image844.o (.data); - build/u/assets/images/split/image845.o (.data); - build/u/assets/images/split/image846.o (.data); - build/u/assets/images/split/image847.o (.data); - build/u/assets/images/split/image848.o (.data); - build/u/assets/images/split/image849.o (.data); - build/u/assets/images/split/image850.o (.data); - build/u/assets/images/split/image851.o (.data); - build/u/assets/images/split/image852.o (.data); - build/u/assets/images/split/image853.o (.data); - build/u/assets/images/split/image854.o (.data); - build/u/assets/images/split/image855.o (.data); - build/u/assets/images/split/image856.o (.data); - build/u/assets/images/split/image857.o (.data); - build/u/assets/images/split/image858.o (.data); - build/u/assets/images/split/image859.o (.data); - build/u/assets/images/split/image860.o (.data); - build/u/assets/images/split/image861.o (.data); - build/u/assets/images/split/image862.o (.data); - build/u/assets/images/split/image863.o (.data); - build/u/assets/images/split/image864.o (.data); - build/u/assets/images/split/image865.o (.data); - build/u/assets/images/split/image866.o (.data); - build/u/assets/images/split/image867.o (.data); - build/u/assets/images/split/image868.o (.data); - build/u/assets/images/split/image869.o (.data); - build/u/assets/images/split/image870.o (.data); - build/u/assets/images/split/image871.o (.data); - build/u/assets/images/split/image872.o (.data); - build/u/assets/images/split/image873.o (.data); - build/u/assets/images/split/image874.o (.data); - build/u/assets/images/split/image875.o (.data); - build/u/assets/images/split/image876.o (.data); - build/u/assets/images/split/image877.o (.data); - build/u/assets/images/split/image878.o (.data); - build/u/assets/images/split/image879.o (.data); - build/u/assets/images/split/image880.o (.data); - build/u/assets/images/split/image881.o (.data); - build/u/assets/images/split/image882.o (.data); - build/u/assets/images/split/image883.o (.data); - build/u/assets/images/split/image884.o (.data); - build/u/assets/images/split/image885.o (.data); - build/u/assets/images/split/image886.o (.data); - build/u/assets/images/split/image887.o (.data); - build/u/assets/images/split/image888.o (.data); - build/u/assets/images/split/image889.o (.data); - build/u/assets/images/split/image890.o (.data); - build/u/assets/images/split/image891.o (.data); - build/u/assets/images/split/image892.o (.data); - build/u/assets/images/split/image893.o (.data); - build/u/assets/images/split/image894.o (.data); - build/u/assets/images/split/image895.o (.data); - build/u/assets/images/split/image896.o (.data); - build/u/assets/images/split/image897.o (.data); - build/u/assets/images/split/image898.o (.data); - build/u/assets/images/split/image899.o (.data); - build/u/assets/images/split/image900.o (.data); - build/u/assets/images/split/image901.o (.data); - build/u/assets/images/split/image902.o (.data); - build/u/assets/images/split/image903.o (.data); - build/u/assets/images/split/image904.o (.data); - build/u/assets/images/split/image905.o (.data); - build/u/assets/images/split/image906.o (.data); - build/u/assets/images/split/image907.o (.data); - build/u/assets/images/split/image908.o (.data); - build/u/assets/images/split/image909.o (.data); - build/u/assets/images/split/image910.o (.data); - build/u/assets/images/split/image911.o (.data); - build/u/assets/images/split/image912.o (.data); - build/u/assets/images/split/image913.o (.data); - build/u/assets/images/split/image914.o (.data); - build/u/assets/images/split/image915.o (.data); - build/u/assets/images/split/image916.o (.data); - build/u/assets/images/split/image917.o (.data); - build/u/assets/images/split/image918.o (.data); - build/u/assets/images/split/image919.o (.data); - build/u/assets/images/split/image920.o (.data); - build/u/assets/images/split/image921.o (.data); - build/u/assets/images/split/image922.o (.data); - build/u/assets/images/split/image923.o (.data); - build/u/assets/images/split/image924.o (.data); - build/u/assets/images/split/image925.o (.data); - build/u/assets/images/split/image926.o (.data); - build/u/assets/images/split/image927.o (.data); - build/u/assets/images/split/image928.o (.data); - build/u/assets/images/split/image929.o (.data); - build/u/assets/images/split/image930.o (.data); - build/u/assets/images/split/image931.o (.data); - build/u/assets/images/split/image932.o (.data); - build/u/assets/images/split/image933.o (.data); - build/u/assets/images/split/image934.o (.data); - build/u/assets/images/split/image935.o (.data); - build/u/assets/images/split/image936.o (.data); - build/u/assets/images/split/image937.o (.data); - build/u/assets/images/split/image938.o (.data); - build/u/assets/images/split/image939.o (.data); - build/u/assets/images/split/image940.o (.data); - build/u/assets/images/split/image941.o (.data); - build/u/assets/images/split/image942.o (.data); - build/u/assets/images/split/image943.o (.data); - build/u/assets/images/split/image944.o (.data); - build/u/assets/images/split/image945.o (.data); - build/u/assets/images/split/image946.o (.data); - build/u/assets/images/split/image947.o (.data); - build/u/assets/images/split/image948.o (.data); - build/u/assets/images/split/image949.o (.data); - build/u/assets/images/split/image950.o (.data); - build/u/assets/images/split/image951.o (.data); - build/u/assets/images/split/image952.o (.data); - build/u/assets/images/split/image953.o (.data); - build/u/assets/images/split/image954.o (.data); - build/u/assets/images/split/image955.o (.data); - build/u/assets/images/split/image956.o (.data); - build/u/assets/images/split/image957.o (.data); - build/u/assets/images/split/image958.o (.data); - build/u/assets/images/split/image959.o (.data); - build/u/assets/images/split/image960.o (.data); - build/u/assets/images/split/image961.o (.data); - build/u/assets/images/split/image962.o (.data); - build/u/assets/images/split/image963.o (.data); - build/u/assets/images/split/image964.o (.data); - build/u/assets/images/split/image965.o (.data); - build/u/assets/images/split/image966.o (.data); - build/u/assets/images/split/image967.o (.data); - build/u/assets/images/split/image968.o (.data); - build/u/assets/images/split/image969.o (.data); - build/u/assets/images/split/image970.o (.data); - build/u/assets/images/split/image971.o (.data); - build/u/assets/images/split/image972.o (.data); - build/u/assets/images/split/image973.o (.data); - build/u/assets/images/split/image974.o (.data); - build/u/assets/images/split/image975.o (.data); - build/u/assets/images/split/image976.o (.data); - build/u/assets/images/split/image977.o (.data); - build/u/assets/images/split/image978.o (.data); - build/u/assets/images/split/image979.o (.data); - build/u/assets/images/split/image980.o (.data); - build/u/assets/images/split/image981.o (.data); - build/u/assets/images/split/image982.o (.data); - build/u/assets/images/split/image983.o (.data); - build/u/assets/images/split/image984.o (.data); - build/u/assets/images/split/image985.o (.data); - build/u/assets/images/split/image986.o (.data); - build/u/assets/images/split/image987.o (.data); - build/u/assets/images/split/image988.o (.data); - build/u/assets/images/split/image989.o (.data); - build/u/assets/images/split/image990.o (.data); - build/u/assets/images/split/image991.o (.data); - build/u/assets/images/split/image992.o (.data); - build/u/assets/images/split/image993.o (.data); - build/u/assets/images/split/image994.o (.data); - build/u/assets/images/split/image995.o (.data); - build/u/assets/images/split/image996.o (.data); - build/u/assets/images/split/image997.o (.data); - build/u/assets/images/split/image998.o (.data); - build/u/assets/images/split/image999.o (.data); - build/u/assets/images/split/image1000.o (.data); - build/u/assets/images/split/image1001.o (.data); - build/u/assets/images/split/image1002.o (.data); - build/u/assets/images/split/image1003.o (.data); - build/u/assets/images/split/image1004.o (.data); - build/u/assets/images/split/image1005.o (.data); - build/u/assets/images/split/image1006.o (.data); - build/u/assets/images/split/image1007.o (.data); - build/u/assets/images/split/image1008.o (.data); - build/u/assets/images/split/image1009.o (.data); - build/u/assets/images/split/image1010.o (.data); - build/u/assets/images/split/image1011.o (.data); - build/u/assets/images/split/image1012.o (.data); - build/u/assets/images/split/image1013.o (.data); - build/u/assets/images/split/image1014.o (.data); - build/u/assets/images/split/image1015.o (.data); - build/u/assets/images/split/image1016.o (.data); - build/u/assets/images/split/image1017.o (.data); - build/u/assets/images/split/image1018.o (.data); - build/u/assets/images/split/image1019.o (.data); - build/u/assets/images/split/image1020.o (.data); - build/u/assets/images/split/image1021.o (.data); - build/u/assets/images/split/image1022.o (.data); - build/u/assets/images/split/image1023.o (.data); - build/u/assets/images/split/image1024.o (.data); - build/u/assets/images/split/image1025.o (.data); - build/u/assets/images/split/image1026.o (.data); - build/u/assets/images/split/image1027.o (.data); - build/u/assets/images/split/image1028.o (.data); - build/u/assets/images/split/image1029.o (.data); - build/u/assets/images/split/image1030.o (.data); - build/u/assets/images/split/image1031.o (.data); - build/u/assets/images/split/image1032.o (.data); - build/u/assets/images/split/image1033.o (.data); - build/u/assets/images/split/image1034.o (.data); - build/u/assets/images/split/image1035.o (.data); - build/u/assets/images/split/image1036.o (.data); - build/u/assets/images/split/image1037.o (.data); - build/u/assets/images/split/image1038.o (.data); - build/u/assets/images/split/image1039.o (.data); - build/u/assets/images/split/image1040.o (.data); - build/u/assets/images/split/image1041.o (.data); - build/u/assets/images/split/image1042.o (.data); - build/u/assets/images/split/image1043.o (.data); - build/u/assets/images/split/image1044.o (.data); - build/u/assets/images/split/image1045.o (.data); - build/u/assets/images/split/image1046.o (.data); - build/u/assets/images/split/image1047.o (.data); - build/u/assets/images/split/image1048.o (.data); - build/u/assets/images/split/image1049.o (.data); - build/u/assets/images/split/image1050.o (.data); - build/u/assets/images/split/image1051.o (.data); - build/u/assets/images/split/image1052.o (.data); - build/u/assets/images/split/image1053.o (.data); - build/u/assets/images/split/image1054.o (.data); - build/u/assets/images/split/image1055.o (.data); - build/u/assets/images/split/image1056.o (.data); - build/u/assets/images/split/image1057.o (.data); - build/u/assets/images/split/image1058.o (.data); - build/u/assets/images/split/image1059.o (.data); - build/u/assets/images/split/image1060.o (.data); - build/u/assets/images/split/image1061.o (.data); - build/u/assets/images/split/image1062.o (.data); - build/u/assets/images/split/image1063.o (.data); - build/u/assets/images/split/image1064.o (.data); - build/u/assets/images/split/image1065.o (.data); - build/u/assets/images/split/image1066.o (.data); - build/u/assets/images/split/image1067.o (.data); - build/u/assets/images/split/image1068.o (.data); - build/u/assets/images/split/image1069.o (.data); - build/u/assets/images/split/image1070.o (.data); - build/u/assets/images/split/image1071.o (.data); - build/u/assets/images/split/image1072.o (.data); - build/u/assets/images/split/image1073.o (.data); - build/u/assets/images/split/image1074.o (.data); - build/u/assets/images/split/image1075.o (.data); - build/u/assets/images/split/image1076.o (.data); - build/u/assets/images/split/image1077.o (.data); - build/u/assets/images/split/image1078.o (.data); - build/u/assets/images/split/image1079.o (.data); - build/u/assets/images/split/image1080.o (.data); - build/u/assets/images/split/image1081.o (.data); - build/u/assets/images/split/image1082.o (.data); - build/u/assets/images/split/image1083.o (.data); - build/u/assets/images/split/image1084.o (.data); - build/u/assets/images/split/image1085.o (.data); - build/u/assets/images/split/image1086.o (.data); - build/u/assets/images/split/image1087.o (.data); - build/u/assets/images/split/image1088.o (.data); - build/u/assets/images/split/image1089.o (.data); - build/u/assets/images/split/image1090.o (.data); - build/u/assets/images/split/image1091.o (.data); - build/u/assets/images/split/image1092.o (.data); - build/u/assets/images/split/image1093.o (.data); - build/u/assets/images/split/image1094.o (.data); - build/u/assets/images/split/image1095.o (.data); - build/u/assets/images/split/image1096.o (.data); - build/u/assets/images/split/image1097.o (.data); - build/u/assets/images/split/image1098.o (.data); - build/u/assets/images/split/image1099.o (.data); - build/u/assets/images/split/image1100.o (.data); - build/u/assets/images/split/image1101.o (.data); - build/u/assets/images/split/image1102.o (.data); - build/u/assets/images/split/image1103.o (.data); - build/u/assets/images/split/image1104.o (.data); - build/u/assets/images/split/image1105.o (.data); - build/u/assets/images/split/image1106.o (.data); - build/u/assets/images/split/image1107.o (.data); - build/u/assets/images/split/image1108.o (.data); - build/u/assets/images/split/image1109.o (.data); - build/u/assets/images/split/image1110.o (.data); - build/u/assets/images/split/image1111.o (.data); - build/u/assets/images/split/image1112.o (.data); - build/u/assets/images/split/image1113.o (.data); - build/u/assets/images/split/image1114.o (.data); - build/u/assets/images/split/image1115.o (.data); - build/u/assets/images/split/image1116.o (.data); - build/u/assets/images/split/image1117.o (.data); - build/u/assets/images/split/image1118.o (.data); - build/u/assets/images/split/image1119.o (.data); - build/u/assets/images/split/image1120.o (.data); - build/u/assets/images/split/image1121.o (.data); - build/u/assets/images/split/image1122.o (.data); - build/u/assets/images/split/image1123.o (.data); - build/u/assets/images/split/image1124.o (.data); - build/u/assets/images/split/image1125.o (.data); - build/u/assets/images/split/image1126.o (.data); - build/u/assets/images/split/image1127.o (.data); - build/u/assets/images/split/image1128.o (.data); - build/u/assets/images/split/image1129.o (.data); - build/u/assets/images/split/image1130.o (.data); - build/u/assets/images/split/image1131.o (.data); - build/u/assets/images/split/image1132.o (.data); - build/u/assets/images/split/image1133.o (.data); - build/u/assets/images/split/image1134.o (.data); - build/u/assets/images/split/image1135.o (.data); - build/u/assets/images/split/image1136.o (.data); - build/u/assets/images/split/image1137.o (.data); - build/u/assets/images/split/image1138.o (.data); - build/u/assets/images/split/image1139.o (.data); - build/u/assets/images/split/image1140.o (.data); - build/u/assets/images/split/image1141.o (.data); - build/u/assets/images/split/image1142.o (.data); - build/u/assets/images/split/image1143.o (.data); - build/u/assets/images/split/image1144.o (.data); - build/u/assets/images/split/image1145.o (.data); - build/u/assets/images/split/image1146.o (.data); - build/u/assets/images/split/image1147.o (.data); - build/u/assets/images/split/image1148.o (.data); - build/u/assets/images/split/image1149.o (.data); - build/u/assets/images/split/image1150.o (.data); - build/u/assets/images/split/image1151.o (.data); - build/u/assets/images/split/image1152.o (.data); - build/u/assets/images/split/image1153.o (.data); - build/u/assets/images/split/image1154.o (.data); - build/u/assets/images/split/image1155.o (.data); - build/u/assets/images/split/image1156.o (.data); - build/u/assets/images/split/image1157.o (.data); - build/u/assets/images/split/image1158.o (.data); - build/u/assets/images/split/image1159.o (.data); - build/u/assets/images/split/image1160.o (.data); - build/u/assets/images/split/image1161.o (.data); - build/u/assets/images/split/image1162.o (.data); - build/u/assets/images/split/image1163.o (.data); - build/u/assets/images/split/image1164.o (.data); - build/u/assets/images/split/image1165.o (.data); - build/u/assets/images/split/image1166.o (.data); - build/u/assets/images/split/image1167.o (.data); - build/u/assets/images/split/image1168.o (.data); - build/u/assets/images/split/image1169.o (.data); - build/u/assets/images/split/image1170.o (.data); - build/u/assets/images/split/image1171.o (.data); - build/u/assets/images/split/image1172.o (.data); - build/u/assets/images/split/image1173.o (.data); - build/u/assets/images/split/image1174.o (.data); - build/u/assets/images/split/image1175.o (.data); - build/u/assets/images/split/image1176.o (.data); - build/u/assets/images/split/image1177.o (.data); - build/u/assets/images/split/image1178.o (.data); - build/u/assets/images/split/image1179.o (.data); - build/u/assets/images/split/image1180.o (.data); - build/u/assets/images/split/image1181.o (.data); - build/u/assets/images/split/image1182.o (.data); - build/u/assets/images/split/image1183.o (.data); - build/u/assets/images/split/image1184.o (.data); - build/u/assets/images/split/image1185.o (.data); - build/u/assets/images/split/image1186.o (.data); - build/u/assets/images/split/image1187.o (.data); - build/u/assets/images/split/image1188.o (.data); - build/u/assets/images/split/image1189.o (.data); - build/u/assets/images/split/image1190.o (.data); - build/u/assets/images/split/image1191.o (.data); - build/u/assets/images/split/image1192.o (.data); - build/u/assets/images/split/image1193.o (.data); - build/u/assets/images/split/image1194.o (.data); - build/u/assets/images/split/image1195.o (.data); - build/u/assets/images/split/image1196.o (.data); - build/u/assets/images/split/image1197.o (.data); - build/u/assets/images/split/image1198.o (.data); - build/u/assets/images/split/image1199.o (.data); - build/u/assets/images/split/image1200.o (.data); - build/u/assets/images/split/image1201.o (.data); - build/u/assets/images/split/image1202.o (.data); - build/u/assets/images/split/image1203.o (.data); - build/u/assets/images/split/image1204.o (.data); - build/u/assets/images/split/image1205.o (.data); - build/u/assets/images/split/image1206.o (.data); - build/u/assets/images/split/image1207.o (.data); - build/u/assets/images/split/image1208.o (.data); - build/u/assets/images/split/image1209.o (.data); - build/u/assets/images/split/image1210.o (.data); - build/u/assets/images/split/image1211.o (.data); - build/u/assets/images/split/image1212.o (.data); - build/u/assets/images/split/image1213.o (.data); - build/u/assets/images/split/image1214.o (.data); - build/u/assets/images/split/image1215.o (.data); - build/u/assets/images/split/image1216.o (.data); - build/u/assets/images/split/image1217.o (.data); - build/u/assets/images/split/image1218.o (.data); - build/u/assets/images/split/image1219.o (.data); - build/u/assets/images/split/image1220.o (.data); - build/u/assets/images/split/image1221.o (.data); - build/u/assets/images/split/image1222.o (.data); - build/u/assets/images/split/image1223.o (.data); - build/u/assets/images/split/image1224.o (.data); - build/u/assets/images/split/image1225.o (.data); - build/u/assets/images/split/image1226.o (.data); - build/u/assets/images/split/image1227.o (.data); - build/u/assets/images/split/image1228.o (.data); - build/u/assets/images/split/image1229.o (.data); - build/u/assets/images/split/image1230.o (.data); - build/u/assets/images/split/image1231.o (.data); - build/u/assets/images/split/image1232.o (.data); - build/u/assets/images/split/image1233.o (.data); - build/u/assets/images/split/image1234.o (.data); - build/u/assets/images/split/image1235.o (.data); - build/u/assets/images/split/image1236.o (.data); - build/u/assets/images/split/image1237.o (.data); - build/u/assets/images/split/image1238.o (.data); - build/u/assets/images/split/image1239.o (.data); - build/u/assets/images/split/image1240.o (.data); - build/u/assets/images/split/image1241.o (.data); - build/u/assets/images/split/image1242.o (.data); - build/u/assets/images/split/image1243.o (.data); - build/u/assets/images/split/image1244.o (.data); - build/u/assets/images/split/image1245.o (.data); - build/u/assets/images/split/image1246.o (.data); - build/u/assets/images/split/image1247.o (.data); - build/u/assets/images/split/image1248.o (.data); - build/u/assets/images/split/image1249.o (.data); - build/u/assets/images/split/image1250.o (.data); - build/u/assets/images/split/image1251.o (.data); - build/u/assets/images/split/image1252.o (.data); - build/u/assets/images/split/image1253.o (.data); - build/u/assets/images/split/image1254.o (.data); - build/u/assets/images/split/image1255.o (.data); - build/u/assets/images/split/image1256.o (.data); - build/u/assets/images/split/image1257.o (.data); - build/u/assets/images/split/image1258.o (.data); - build/u/assets/images/split/image1259.o (.data); - build/u/assets/images/split/image1260.o (.data); - build/u/assets/images/split/image1261.o (.data); - build/u/assets/images/split/image1262.o (.data); - build/u/assets/images/split/image1263.o (.data); - build/u/assets/images/split/image1264.o (.data); - build/u/assets/images/split/image1265.o (.data); - build/u/assets/images/split/image1266.o (.data); - build/u/assets/images/split/image1267.o (.data); - build/u/assets/images/split/image1268.o (.data); - build/u/assets/images/split/image1269.o (.data); - build/u/assets/images/split/image1270.o (.data); - build/u/assets/images/split/image1271.o (.data); - build/u/assets/images/split/image1272.o (.data); - build/u/assets/images/split/image1273.o (.data); - build/u/assets/images/split/image1274.o (.data); - build/u/assets/images/split/image1275.o (.data); - build/u/assets/images/split/image1276.o (.data); - build/u/assets/images/split/image1277.o (.data); - build/u/assets/images/split/image1278.o (.data); - build/u/assets/images/split/image1279.o (.data); - build/u/assets/images/split/image1280.o (.data); - build/u/assets/images/split/image1281.o (.data); - build/u/assets/images/split/image1282.o (.data); - build/u/assets/images/split/image1283.o (.data); - build/u/assets/images/split/image1284.o (.data); - build/u/assets/images/split/image1285.o (.data); - build/u/assets/images/split/image1286.o (.data); - build/u/assets/images/split/image1287.o (.data); - build/u/assets/images/split/image1288.o (.data); - build/u/assets/images/split/image1289.o (.data); - build/u/assets/images/split/image1290.o (.data); - build/u/assets/images/split/image1291.o (.data); - build/u/assets/images/split/image1292.o (.data); - build/u/assets/images/split/image1293.o (.data); - build/u/assets/images/split/image1294.o (.data); - build/u/assets/images/split/image1295.o (.data); - build/u/assets/images/split/image1296.o (.data); - build/u/assets/images/split/image1297.o (.data); - build/u/assets/images/split/image1298.o (.data); - build/u/assets/images/split/image1299.o (.data); - build/u/assets/images/split/image1300.o (.data); - build/u/assets/images/split/image1301.o (.data); - build/u/assets/images/split/image1302.o (.data); - build/u/assets/images/split/image1303.o (.data); - build/u/assets/images/split/image1304.o (.data); - build/u/assets/images/split/image1305.o (.data); - build/u/assets/images/split/image1306.o (.data); - build/u/assets/images/split/image1307.o (.data); - build/u/assets/images/split/image1308.o (.data); - build/u/assets/images/split/image1309.o (.data); - build/u/assets/images/split/image1310.o (.data); - build/u/assets/images/split/image1311.o (.data); - build/u/assets/images/split/image1312.o (.data); - build/u/assets/images/split/image1313.o (.data); - build/u/assets/images/split/image1314.o (.data); - build/u/assets/images/split/image1315.o (.data); - build/u/assets/images/split/image1316.o (.data); - build/u/assets/images/split/image1317.o (.data); - build/u/assets/images/split/image1318.o (.data); - build/u/assets/images/split/image1319.o (.data); - build/u/assets/images/split/image1320.o (.data); - build/u/assets/images/split/image1321.o (.data); - build/u/assets/images/split/image1322.o (.data); - build/u/assets/images/split/image1323.o (.data); - build/u/assets/images/split/image1324.o (.data); - build/u/assets/images/split/image1325.o (.data); - build/u/assets/images/split/image1326.o (.data); - build/u/assets/images/split/image1327.o (.data); - build/u/assets/images/split/image1328.o (.data); - build/u/assets/images/split/image1329.o (.data); - build/u/assets/images/split/image1330.o (.data); - build/u/assets/images/split/image1331.o (.data); - build/u/assets/images/split/image1332.o (.data); - build/u/assets/images/split/image1333.o (.data); - build/u/assets/images/split/image1334.o (.data); - build/u/assets/images/split/image1335.o (.data); - build/u/assets/images/split/image1336.o (.data); - build/u/assets/images/split/image1337.o (.data); - build/u/assets/images/split/image1338.o (.data); - build/u/assets/images/split/image1339.o (.data); - build/u/assets/images/split/image1340.o (.data); - build/u/assets/images/split/image1341.o (.data); - build/u/assets/images/split/image1342.o (.data); - build/u/assets/images/split/image1343.o (.data); - build/u/assets/images/split/image1344.o (.data); - build/u/assets/images/split/image1345.o (.data); - build/u/assets/images/split/image1346.o (.data); - build/u/assets/images/split/image1347.o (.data); - build/u/assets/images/split/image1348.o (.data); - build/u/assets/images/split/image1349.o (.data); - build/u/assets/images/split/image1350.o (.data); - build/u/assets/images/split/image1351.o (.data); - build/u/assets/images/split/image1352.o (.data); - build/u/assets/images/split/image1353.o (.data); - build/u/assets/images/split/image1354.o (.data); - build/u/assets/images/split/image1355.o (.data); - build/u/assets/images/split/image1356.o (.data); - build/u/assets/images/split/image1357.o (.data); - build/u/assets/images/split/image1358.o (.data); - build/u/assets/images/split/image1359.o (.data); - build/u/assets/images/split/image1360.o (.data); - build/u/assets/images/split/image1361.o (.data); - build/u/assets/images/split/image1362.o (.data); - build/u/assets/images/split/image1363.o (.data); - build/u/assets/images/split/image1364.o (.data); - build/u/assets/images/split/image1365.o (.data); - build/u/assets/images/split/image1366.o (.data); - build/u/assets/images/split/image1367.o (.data); - build/u/assets/images/split/image1368.o (.data); - build/u/assets/images/split/image1369.o (.data); - build/u/assets/images/split/image1370.o (.data); - build/u/assets/images/split/image1371.o (.data); - build/u/assets/images/split/image1372.o (.data); - build/u/assets/images/split/image1373.o (.data); - build/u/assets/images/split/image1374.o (.data); - build/u/assets/images/split/image1375.o (.data); - build/u/assets/images/split/image1376.o (.data); - build/u/assets/images/split/image1377.o (.data); - build/u/assets/images/split/image1378.o (.data); - build/u/assets/images/split/image1379.o (.data); - build/u/assets/images/split/image1380.o (.data); - build/u/assets/images/split/image1381.o (.data); - build/u/assets/images/split/image1382.o (.data); - build/u/assets/images/split/image1383.o (.data); - build/u/assets/images/split/image1384.o (.data); - build/u/assets/images/split/image1385.o (.data); - build/u/assets/images/split/image1386.o (.data); - build/u/assets/images/split/image1387.o (.data); - build/u/assets/images/split/image1388.o (.data); - build/u/assets/images/split/image1389.o (.data); - build/u/assets/images/split/image1390.o (.data); - build/u/assets/images/split/image1391.o (.data); - build/u/assets/images/split/image1392.o (.data); - build/u/assets/images/split/image1393.o (.data); - build/u/assets/images/split/image1394.o (.data); - build/u/assets/images/split/image1395.o (.data); - build/u/assets/images/split/image1396.o (.data); - build/u/assets/images/split/image1397.o (.data); - build/u/assets/images/split/image1398.o (.data); - build/u/assets/images/split/image1399.o (.data); - build/u/assets/images/split/image1400.o (.data); - build/u/assets/images/split/image1401.o (.data); - build/u/assets/images/split/image1402.o (.data); - build/u/assets/images/split/image1403.o (.data); - build/u/assets/images/split/image1404.o (.data); - build/u/assets/images/split/image1405.o (.data); - build/u/assets/images/split/image1406.o (.data); - build/u/assets/images/split/image1407.o (.data); - build/u/assets/images/split/image1408.o (.data); - build/u/assets/images/split/image1409.o (.data); - build/u/assets/images/split/image1410.o (.data); - build/u/assets/images/split/image1411.o (.data); - build/u/assets/images/split/image1412.o (.data); - build/u/assets/images/split/image1413.o (.data); - build/u/assets/images/split/image1414.o (.data); - build/u/assets/images/split/image1415.o (.data); - build/u/assets/images/split/image1416.o (.data); - build/u/assets/images/split/image1417.o (.data); - build/u/assets/images/split/image1418.o (.data); - build/u/assets/images/split/image1419.o (.data); - build/u/assets/images/split/image1420.o (.data); - build/u/assets/images/split/image1421.o (.data); - build/u/assets/images/split/image1422.o (.data); - build/u/assets/images/split/image1423.o (.data); - build/u/assets/images/split/image1424.o (.data); - build/u/assets/images/split/image1425.o (.data); - build/u/assets/images/split/image1426.o (.data); - build/u/assets/images/split/image1427.o (.data); - build/u/assets/images/split/image1428.o (.data); - build/u/assets/images/split/image1429.o (.data); - build/u/assets/images/split/image1430.o (.data); - build/u/assets/images/split/image1431.o (.data); - build/u/assets/images/split/image1432.o (.data); - build/u/assets/images/split/image1433.o (.data); - build/u/assets/images/split/image1434.o (.data); - build/u/assets/images/split/image1435.o (.data); - build/u/assets/images/split/image1436.o (.data); - build/u/assets/images/split/image1437.o (.data); - build/u/assets/images/split/image1438.o (.data); - build/u/assets/images/split/image1439.o (.data); - build/u/assets/images/split/image1440.o (.data); - build/u/assets/images/split/image1441.o (.data); - build/u/assets/images/split/image1442.o (.data); - build/u/assets/images/split/image1443.o (.data); - build/u/assets/images/split/image1444.o (.data); - build/u/assets/images/split/image1445.o (.data); - build/u/assets/images/split/image1446.o (.data); - build/u/assets/images/split/image1447.o (.data); - build/u/assets/images/split/image1448.o (.data); - build/u/assets/images/split/image1449.o (.data); - build/u/assets/images/split/image1450.o (.data); - build/u/assets/images/split/image1451.o (.data); - build/u/assets/images/split/image1452.o (.data); - build/u/assets/images/split/image1453.o (.data); - build/u/assets/images/split/image1454.o (.data); - build/u/assets/images/split/image1455.o (.data); - build/u/assets/images/split/image1456.o (.data); - build/u/assets/images/split/image1457.o (.data); - build/u/assets/images/split/image1458.o (.data); - build/u/assets/images/split/image1459.o (.data); - build/u/assets/images/split/image1460.o (.data); - build/u/assets/images/split/image1461.o (.data); - build/u/assets/images/split/image1462.o (.data); - build/u/assets/images/split/image1463.o (.data); - build/u/assets/images/split/image1464.o (.data); - build/u/assets/images/split/image1465.o (.data); - build/u/assets/images/split/image1466.o (.data); - build/u/assets/images/split/image1467.o (.data); - build/u/assets/images/split/image1468.o (.data); - build/u/assets/images/split/image1469.o (.data); - build/u/assets/images/split/image1470.o (.data); - build/u/assets/images/split/image1471.o (.data); - build/u/assets/images/split/image1472.o (.data); - build/u/assets/images/split/image1473.o (.data); - build/u/assets/images/split/image1474.o (.data); - build/u/assets/images/split/image1475.o (.data); - build/u/assets/images/split/image1476.o (.data); - build/u/assets/images/split/image1477.o (.data); - build/u/assets/images/split/image1478.o (.data); - build/u/assets/images/split/image1479.o (.data); - build/u/assets/images/split/image1480.o (.data); - build/u/assets/images/split/image1481.o (.data); - build/u/assets/images/split/image1482.o (.data); - build/u/assets/images/split/image1483.o (.data); - build/u/assets/images/split/image1484.o (.data); - build/u/assets/images/split/image1485.o (.data); - build/u/assets/images/split/image1486.o (.data); - build/u/assets/images/split/image1487.o (.data); - build/u/assets/images/split/image1488.o (.data); - build/u/assets/images/split/image1489.o (.data); - build/u/assets/images/split/image1490.o (.data); - build/u/assets/images/split/image1491.o (.data); - build/u/assets/images/split/image1492.o (.data); - build/u/assets/images/split/image1493.o (.data); - build/u/assets/images/split/image1494.o (.data); - build/u/assets/images/split/image1495.o (.data); - build/u/assets/images/split/image1496.o (.data); - build/u/assets/images/split/image1497.o (.data); - build/u/assets/images/split/image1498.o (.data); - build/u/assets/images/split/image1499.o (.data); - build/u/assets/images/split/image1500.o (.data); - build/u/assets/images/split/image1501.o (.data); - build/u/assets/images/split/image1502.o (.data); - build/u/assets/images/split/image1503.o (.data); - build/u/assets/images/split/image1504.o (.data); - build/u/assets/images/split/image1505.o (.data); - build/u/assets/images/split/image1506.o (.data); - build/u/assets/images/split/image1507.o (.data); - build/u/assets/images/split/image1508.o (.data); - build/u/assets/images/split/image1509.o (.data); - build/u/assets/images/split/image1510.o (.data); - build/u/assets/images/split/image1511.o (.data); - build/u/assets/images/split/image1512.o (.data); - build/u/assets/images/split/image1513.o (.data); - build/u/assets/images/split/image1514.o (.data); - build/u/assets/images/split/image1515.o (.data); - build/u/assets/images/split/image1516.o (.data); - build/u/assets/images/split/image1517.o (.data); - build/u/assets/images/split/image1518.o (.data); - build/u/assets/images/split/image1519.o (.data); - build/u/assets/images/split/image1520.o (.data); - build/u/assets/images/split/image1521.o (.data); - build/u/assets/images/split/image1522.o (.data); - build/u/assets/images/split/image1523.o (.data); - build/u/assets/images/split/image1524.o (.data); - build/u/assets/images/split/image1525.o (.data); - build/u/assets/images/split/image1526.o (.data); - build/u/assets/images/split/image1527.o (.data); - build/u/assets/images/split/image1528.o (.data); - build/u/assets/images/split/image1529.o (.data); - build/u/assets/images/split/image1530.o (.data); - build/u/assets/images/split/image1531.o (.data); - build/u/assets/images/split/image1532.o (.data); - build/u/assets/images/split/image1533.o (.data); - build/u/assets/images/split/image1534.o (.data); - build/u/assets/images/split/image1535.o (.data); - build/u/assets/images/split/image1536.o (.data); - build/u/assets/images/split/image1537.o (.data); - build/u/assets/images/split/image1538.o (.data); - build/u/assets/images/split/image1539.o (.data); - build/u/assets/images/split/image1540.o (.data); - build/u/assets/images/split/image1541.o (.data); - build/u/assets/images/split/image1542.o (.data); - build/u/assets/images/split/image1543.o (.data); - build/u/assets/images/split/image1544.o (.data); - build/u/assets/images/split/image1545.o (.data); - build/u/assets/images/split/image1546.o (.data); - build/u/assets/images/split/image1547.o (.data); - build/u/assets/images/split/image1548.o (.data); - build/u/assets/images/split/image1549.o (.data); - build/u/assets/images/split/image1550.o (.data); - build/u/assets/images/split/image1551.o (.data); - build/u/assets/images/split/image1552.o (.data); - build/u/assets/images/split/image1553.o (.data); - build/u/assets/images/split/image1554.o (.data); - build/u/assets/images/split/image1555.o (.data); - build/u/assets/images/split/image1556.o (.data); - build/u/assets/images/split/image1557.o (.data); - build/u/assets/images/split/image1558.o (.data); - build/u/assets/images/split/image1559.o (.data); - build/u/assets/images/split/image1560.o (.data); - build/u/assets/images/split/image1561.o (.data); - build/u/assets/images/split/image1562.o (.data); - build/u/assets/images/split/image1563.o (.data); - build/u/assets/images/split/image1564.o (.data); - build/u/assets/images/split/image1565.o (.data); - build/u/assets/images/split/image1566.o (.data); - build/u/assets/images/split/image1567.o (.data); - build/u/assets/images/split/image1568.o (.data); - build/u/assets/images/split/image1569.o (.data); - build/u/assets/images/split/image1570.o (.data); - build/u/assets/images/split/image1571.o (.data); - build/u/assets/images/split/image1572.o (.data); - build/u/assets/images/split/image1573.o (.data); - build/u/assets/images/split/image1574.o (.data); - build/u/assets/images/split/image1575.o (.data); - build/u/assets/images/split/image1576.o (.data); - build/u/assets/images/split/image1577.o (.data); - build/u/assets/images/split/image1578.o (.data); - build/u/assets/images/split/image1579.o (.data); - build/u/assets/images/split/image1580.o (.data); - build/u/assets/images/split/image1581.o (.data); - build/u/assets/images/split/image1582.o (.data); - build/u/assets/images/split/image1583.o (.data); - build/u/assets/images/split/image1584.o (.data); - build/u/assets/images/split/image1585.o (.data); - build/u/assets/images/split/image1586.o (.data); - build/u/assets/images/split/image1587.o (.data); - build/u/assets/images/split/image1588.o (.data); - build/u/assets/images/split/image1589.o (.data); - build/u/assets/images/split/image1590.o (.data); - build/u/assets/images/split/image1591.o (.data); - build/u/assets/images/split/image1592.o (.data); - build/u/assets/images/split/image1593.o (.data); - build/u/assets/images/split/image1594.o (.data); - build/u/assets/images/split/image1595.o (.data); - build/u/assets/images/split/image1596.o (.data); - build/u/assets/images/split/image1597.o (.data); - build/u/assets/images/split/image1598.o (.data); - build/u/assets/images/split/image1599.o (.data); - build/u/assets/images/split/image1600.o (.data); - build/u/assets/images/split/image1601.o (.data); - build/u/assets/images/split/image1602.o (.data); - build/u/assets/images/split/image1603.o (.data); - build/u/assets/images/split/image1604.o (.data); - build/u/assets/images/split/image1605.o (.data); - build/u/assets/images/split/image1606.o (.data); - build/u/assets/images/split/image1607.o (.data); - build/u/assets/images/split/image1608.o (.data); - build/u/assets/images/split/image1609.o (.data); - build/u/assets/images/split/image1610.o (.data); - build/u/assets/images/split/image1611.o (.data); - build/u/assets/images/split/image1612.o (.data); - build/u/assets/images/split/image1613.o (.data); - build/u/assets/images/split/image1614.o (.data); - build/u/assets/images/split/image1615.o (.data); - build/u/assets/images/split/image1616.o (.data); - build/u/assets/images/split/image1617.o (.data); - build/u/assets/images/split/image1618.o (.data); - build/u/assets/images/split/image1619.o (.data); - build/u/assets/images/split/image1620.o (.data); - build/u/assets/images/split/image1621.o (.data); - build/u/assets/images/split/image1622.o (.data); - build/u/assets/images/split/image1623.o (.data); - build/u/assets/images/split/image1624.o (.data); - build/u/assets/images/split/image1625.o (.data); - build/u/assets/images/split/image1626.o (.data); - build/u/assets/images/split/image1627.o (.data); - build/u/assets/images/split/image1628.o (.data); - build/u/assets/images/split/image1629.o (.data); - build/u/assets/images/split/image1630.o (.data); - build/u/assets/images/split/image1631.o (.data); - build/u/assets/images/split/image1632.o (.data); - build/u/assets/images/split/image1633.o (.data); - build/u/assets/images/split/image1634.o (.data); - build/u/assets/images/split/image1635.o (.data); - build/u/assets/images/split/image1636.o (.data); - build/u/assets/images/split/image1637.o (.data); - build/u/assets/images/split/image1638.o (.data); - build/u/assets/images/split/image1639.o (.data); - build/u/assets/images/split/image1640.o (.data); - build/u/assets/images/split/image1641.o (.data); - build/u/assets/images/split/image1642.o (.data); - build/u/assets/images/split/image1643.o (.data); - build/u/assets/images/split/image1644.o (.data); - build/u/assets/images/split/image1645.o (.data); - build/u/assets/images/split/image1646.o (.data); - build/u/assets/images/split/image1647.o (.data); - build/u/assets/images/split/image1648.o (.data); - build/u/assets/images/split/image1649.o (.data); - build/u/assets/images/split/image1650.o (.data); - build/u/assets/images/split/image1651.o (.data); - build/u/assets/images/split/image1652.o (.data); - build/u/assets/images/split/image1653.o (.data); - build/u/assets/images/split/image1654.o (.data); - build/u/assets/images/split/image1655.o (.data); - build/u/assets/images/split/image1656.o (.data); - build/u/assets/images/split/image1657.o (.data); - build/u/assets/images/split/image1658.o (.data); - build/u/assets/images/split/image1659.o (.data); - build/u/assets/images/split/image1660.o (.data); - build/u/assets/images/split/image1661.o (.data); - build/u/assets/images/split/image1662.o (.data); - build/u/assets/images/split/image1663.o (.data); - build/u/assets/images/split/image1664.o (.data); - build/u/assets/images/split/image1665.o (.data); - build/u/assets/images/split/image1666.o (.data); - build/u/assets/images/split/image1667.o (.data); - build/u/assets/images/split/image1668.o (.data); - build/u/assets/images/split/image1669.o (.data); - build/u/assets/images/split/image1670.o (.data); - build/u/assets/images/split/image1671.o (.data); - build/u/assets/images/split/image1672.o (.data); - build/u/assets/images/split/image1673.o (.data); - build/u/assets/images/split/image1674.o (.data); - build/u/assets/images/split/image1675.o (.data); - build/u/assets/images/split/image1676.o (.data); - build/u/assets/images/split/image1677.o (.data); - build/u/assets/images/split/image1678.o (.data); - build/u/assets/images/split/image1679.o (.data); - build/u/assets/images/split/image1680.o (.data); - build/u/assets/images/split/image1681.o (.data); - build/u/assets/images/split/image1682.o (.data); - build/u/assets/images/split/image1683.o (.data); - build/u/assets/images/split/image1684.o (.data); - build/u/assets/images/split/image1685.o (.data); - build/u/assets/images/split/image1686.o (.data); - build/u/assets/images/split/image1687.o (.data); - build/u/assets/images/split/image1688.o (.data); - build/u/assets/images/split/image1689.o (.data); - build/u/assets/images/split/image1690.o (.data); - build/u/assets/images/split/image1691.o (.data); - build/u/assets/images/split/image1692.o (.data); - build/u/assets/images/split/image1693.o (.data); - build/u/assets/images/split/image1694.o (.data); - build/u/assets/images/split/image1695.o (.data); - build/u/assets/images/split/image1696.o (.data); - build/u/assets/images/split/image1697.o (.data); - build/u/assets/images/split/image1698.o (.data); - build/u/assets/images/split/image1699.o (.data); - build/u/assets/images/split/image1700.o (.data); - build/u/assets/images/split/image1701.o (.data); - build/u/assets/images/split/image1702.o (.data); - build/u/assets/images/split/image1703.o (.data); - build/u/assets/images/split/image1704.o (.data); - build/u/assets/images/split/image1705.o (.data); - build/u/assets/images/split/image1706.o (.data); - build/u/assets/images/split/image1707.o (.data); - build/u/assets/images/split/image1708.o (.data); - build/u/assets/images/split/image1709.o (.data); - build/u/assets/images/split/image1710.o (.data); - build/u/assets/images/split/image1711.o (.data); - build/u/assets/images/split/image1712.o (.data); - build/u/assets/images/split/image1713.o (.data); - build/u/assets/images/split/image1714.o (.data); - build/u/assets/images/split/image1715.o (.data); - build/u/assets/images/split/image1716.o (.data); - build/u/assets/images/split/image1717.o (.data); - build/u/assets/images/split/image1718.o (.data); - build/u/assets/images/split/image1719.o (.data); - build/u/assets/images/split/image1720.o (.data); - build/u/assets/images/split/image1721.o (.data); - build/u/assets/images/split/image1722.o (.data); - build/u/assets/images/split/image1723.o (.data); - build/u/assets/images/split/image1724.o (.data); - build/u/assets/images/split/image1725.o (.data); - build/u/assets/images/split/image1726.o (.data); - build/u/assets/images/split/image1727.o (.data); - build/u/assets/images/split/image1728.o (.data); - build/u/assets/images/split/image1729.o (.data); - build/u/assets/images/split/image1730.o (.data); - build/u/assets/images/split/image1731.o (.data); - build/u/assets/images/split/image1732.o (.data); - build/u/assets/images/split/image1733.o (.data); - build/u/assets/images/split/image1734.o (.data); - build/u/assets/images/split/image1735.o (.data); - build/u/assets/images/split/image1736.o (.data); - build/u/assets/images/split/image1737.o (.data); - build/u/assets/images/split/image1738.o (.data); - build/u/assets/images/split/image1739.o (.data); - build/u/assets/images/split/image1740.o (.data); - build/u/assets/images/split/image1741.o (.data); - build/u/assets/images/split/image1742.o (.data); - build/u/assets/images/split/image1743.o (.data); - build/u/assets/images/split/image1744.o (.data); - build/u/assets/images/split/image1745.o (.data); - build/u/assets/images/split/image1746.o (.data); - build/u/assets/images/split/image1747.o (.data); - build/u/assets/images/split/image1748.o (.data); - build/u/assets/images/split/image1749.o (.data); - build/u/assets/images/split/image1750.o (.data); - build/u/assets/images/split/image1751.o (.data); - build/u/assets/images/split/image1752.o (.data); - build/u/assets/images/split/image1753.o (.data); - build/u/assets/images/split/image1754.o (.data); - build/u/assets/images/split/image1755.o (.data); - build/u/assets/images/split/image1756.o (.data); - build/u/assets/images/split/image1757.o (.data); - build/u/assets/images/split/image1758.o (.data); - build/u/assets/images/split/image1759.o (.data); - build/u/assets/images/split/image1760.o (.data); - build/u/assets/images/split/image1761.o (.data); - build/u/assets/images/split/image1762.o (.data); - build/u/assets/images/split/image1763.o (.data); - build/u/assets/images/split/image1764.o (.data); - build/u/assets/images/split/image1765.o (.data); - build/u/assets/images/split/image1766.o (.data); - build/u/assets/images/split/image1767.o (.data); - build/u/assets/images/split/image1768.o (.data); - build/u/assets/images/split/image1769.o (.data); - build/u/assets/images/split/image1770.o (.data); - build/u/assets/images/split/image1771.o (.data); - build/u/assets/images/split/image1772.o (.data); - build/u/assets/images/split/image1773.o (.data); - build/u/assets/images/split/image1774.o (.data); - build/u/assets/images/split/image1775.o (.data); - build/u/assets/images/split/image1776.o (.data); - build/u/assets/images/split/image1777.o (.data); - build/u/assets/images/split/image1778.o (.data); - build/u/assets/images/split/image1779.o (.data); - build/u/assets/images/split/image1780.o (.data); - build/u/assets/images/split/image1781.o (.data); - build/u/assets/images/split/image1782.o (.data); - build/u/assets/images/split/image1783.o (.data); - build/u/assets/images/split/image1784.o (.data); - build/u/assets/images/split/image1785.o (.data); - build/u/assets/images/split/image1786.o (.data); - build/u/assets/images/split/image1787.o (.data); - build/u/assets/images/split/image1788.o (.data); - build/u/assets/images/split/image1789.o (.data); - build/u/assets/images/split/image1790.o (.data); - build/u/assets/images/split/image1791.o (.data); - build/u/assets/images/split/image1792.o (.data); - build/u/assets/images/split/image1793.o (.data); - build/u/assets/images/split/image1794.o (.data); - build/u/assets/images/split/image1795.o (.data); - build/u/assets/images/split/image1796.o (.data); - build/u/assets/images/split/image1797.o (.data); - build/u/assets/images/split/image1798.o (.data); - build/u/assets/images/split/image1799.o (.data); - build/u/assets/images/split/image1800.o (.data); - build/u/assets/images/split/image1801.o (.data); - build/u/assets/images/split/image1802.o (.data); - build/u/assets/images/split/image1803.o (.data); - build/u/assets/images/split/image1804.o (.data); - build/u/assets/images/split/image1805.o (.data); - build/u/assets/images/split/image1806.o (.data); - build/u/assets/images/split/image1807.o (.data); - build/u/assets/images/split/image1808.o (.data); - build/u/assets/images/split/image1809.o (.data); - build/u/assets/images/split/image1810.o (.data); - build/u/assets/images/split/image1811.o (.data); - build/u/assets/images/split/image1812.o (.data); - build/u/assets/images/split/image1813.o (.data); - build/u/assets/images/split/image1814.o (.data); - build/u/assets/images/split/image1815.o (.data); - build/u/assets/images/split/image1816.o (.data); - build/u/assets/images/split/image1817.o (.data); - build/u/assets/images/split/image1818.o (.data); - build/u/assets/images/split/image1819.o (.data); - build/u/assets/images/split/image1820.o (.data); - build/u/assets/images/split/image1821.o (.data); - build/u/assets/images/split/image1822.o (.data); - build/u/assets/images/split/image1823.o (.data); - build/u/assets/images/split/image1824.o (.data); - build/u/assets/images/split/image1825.o (.data); - build/u/assets/images/split/image1826.o (.data); - build/u/assets/images/split/image1827.o (.data); - build/u/assets/images/split/image1828.o (.data); - build/u/assets/images/split/image1829.o (.data); - build/u/assets/images/split/image1830.o (.data); - build/u/assets/images/split/image1831.o (.data); - build/u/assets/images/split/image1832.o (.data); - build/u/assets/images/split/image1833.o (.data); - build/u/assets/images/split/image1834.o (.data); - build/u/assets/images/split/image1835.o (.data); - build/u/assets/images/split/image1836.o (.data); - build/u/assets/images/split/image1837.o (.data); - build/u/assets/images/split/image1838.o (.data); - build/u/assets/images/split/image1839.o (.data); - build/u/assets/images/split/image1840.o (.data); - build/u/assets/images/split/image1841.o (.data); - build/u/assets/images/split/image1842.o (.data); - build/u/assets/images/split/image1843.o (.data); - build/u/assets/images/split/image1844.o (.data); - build/u/assets/images/split/image1845.o (.data); - build/u/assets/images/split/image1846.o (.data); - build/u/assets/images/split/image1847.o (.data); - build/u/assets/images/split/image1848.o (.data); - build/u/assets/images/split/image1849.o (.data); - build/u/assets/images/split/image1850.o (.data); - build/u/assets/images/split/image1851.o (.data); - build/u/assets/images/split/image1852.o (.data); - build/u/assets/images/split/image1853.o (.data); - build/u/assets/images/split/image1854.o (.data); - build/u/assets/images/split/image1855.o (.data); - build/u/assets/images/split/image1856.o (.data); - build/u/assets/images/split/image1857.o (.data); - build/u/assets/images/split/image1858.o (.data); - build/u/assets/images/split/image1859.o (.data); - build/u/assets/images/split/image1860.o (.data); - build/u/assets/images/split/image1861.o (.data); - build/u/assets/images/split/image1862.o (.data); - build/u/assets/images/split/image1863.o (.data); - build/u/assets/images/split/image1864.o (.data); - build/u/assets/images/split/image1865.o (.data); - build/u/assets/images/split/image1866.o (.data); - build/u/assets/images/split/image1867.o (.data); - build/u/assets/images/split/image1868.o (.data); - build/u/assets/images/split/image1869.o (.data); - build/u/assets/images/split/image1870.o (.data); - build/u/assets/images/split/image1871.o (.data); - build/u/assets/images/split/image1872.o (.data); - build/u/assets/images/split/image1873.o (.data); - build/u/assets/images/split/image1874.o (.data); - build/u/assets/images/split/image1875.o (.data); - build/u/assets/images/split/image1876.o (.data); - build/u/assets/images/split/image1877.o (.data); - build/u/assets/images/split/image1878.o (.data); - build/u/assets/images/split/image1879.o (.data); - build/u/assets/images/split/image1880.o (.data); - build/u/assets/images/split/image1881.o (.data); - build/u/assets/images/split/image1882.o (.data); - build/u/assets/images/split/image1883.o (.data); - build/u/assets/images/split/image1884.o (.data); - build/u/assets/images/split/image1885.o (.data); - build/u/assets/images/split/image1886.o (.data); - build/u/assets/images/split/image1887.o (.data); - build/u/assets/images/split/image1888.o (.data); - build/u/assets/images/split/image1889.o (.data); - build/u/assets/images/split/image1890.o (.data); - build/u/assets/images/split/image1891.o (.data); - build/u/assets/images/split/image1892.o (.data); - build/u/assets/images/split/image1893.o (.data); - build/u/assets/images/split/image1894.o (.data); - build/u/assets/images/split/image1895.o (.data); - build/u/assets/images/split/image1896.o (.data); - build/u/assets/images/split/image1897.o (.data); - build/u/assets/images/split/image1898.o (.data); - build/u/assets/images/split/image1899.o (.data); - build/u/assets/images/split/image1900.o (.data); - build/u/assets/images/split/image1901.o (.data); - build/u/assets/images/split/image1902.o (.data); - build/u/assets/images/split/image1903.o (.data); - build/u/assets/images/split/image1904.o (.data); - build/u/assets/images/split/image1905.o (.data); - build/u/assets/images/split/image1906.o (.data); - build/u/assets/images/split/image1907.o (.data); - build/u/assets/images/split/image1908.o (.data); - build/u/assets/images/split/image1909.o (.data); - build/u/assets/images/split/image1910.o (.data); - build/u/assets/images/split/image1911.o (.data); - build/u/assets/images/split/image1912.o (.data); - build/u/assets/images/split/image1913.o (.data); - build/u/assets/images/split/image1914.o (.data); - build/u/assets/images/split/image1915.o (.data); - build/u/assets/images/split/image1916.o (.data); - build/u/assets/images/split/image1917.o (.data); - build/u/assets/images/split/image1918.o (.data); - build/u/assets/images/split/image1919.o (.data); - build/u/assets/images/split/image1920.o (.data); - build/u/assets/images/split/image1921.o (.data); - build/u/assets/images/split/image1922.o (.data); - build/u/assets/images/split/image1923.o (.data); - build/u/assets/images/split/image1924.o (.data); - build/u/assets/images/split/image1925.o (.data); - build/u/assets/images/split/image1926.o (.data); - build/u/assets/images/split/image1927.o (.data); - build/u/assets/images/split/image1928.o (.data); - build/u/assets/images/split/image1929.o (.data); - build/u/assets/images/split/image1930.o (.data); - build/u/assets/images/split/image1931.o (.data); - build/u/assets/images/split/image1932.o (.data); - build/u/assets/images/split/image1933.o (.data); - build/u/assets/images/split/image1934.o (.data); - build/u/assets/images/split/image1935.o (.data); - build/u/assets/images/split/image1936.o (.data); - build/u/assets/images/split/image1937.o (.data); - build/u/assets/images/split/image1938.o (.data); - build/u/assets/images/split/image1939.o (.data); - build/u/assets/images/split/image1940.o (.data); - build/u/assets/images/split/image1941.o (.data); - build/u/assets/images/split/image1942.o (.data); - build/u/assets/images/split/image1943.o (.data); - build/u/assets/images/split/image1944.o (.data); - build/u/assets/images/split/image1945.o (.data); - build/u/assets/images/split/image1946.o (.data); - build/u/assets/images/split/image1947.o (.data); - build/u/assets/images/split/image1948.o (.data); - build/u/assets/images/split/image1949.o (.data); - build/u/assets/images/split/image1950.o (.data); - build/u/assets/images/split/image1951.o (.data); - build/u/assets/images/split/image1952.o (.data); - build/u/assets/images/split/image1953.o (.data); - build/u/assets/images/split/image1954.o (.data); - build/u/assets/images/split/image1955.o (.data); - build/u/assets/images/split/image1956.o (.data); - build/u/assets/images/split/image1957.o (.data); - build/u/assets/images/split/image1958.o (.data); - build/u/assets/images/split/image1959.o (.data); - build/u/assets/images/split/image1960.o (.data); - build/u/assets/images/split/image1961.o (.data); - build/u/assets/images/split/image1962.o (.data); - build/u/assets/images/split/image1963.o (.data); - build/u/assets/images/split/image1964.o (.data); - build/u/assets/images/split/image1965.o (.data); - build/u/assets/images/split/image1966.o (.data); - build/u/assets/images/split/image1967.o (.data); - build/u/assets/images/split/image1968.o (.data); - build/u/assets/images/split/image1969.o (.data); - build/u/assets/images/split/image1970.o (.data); - build/u/assets/images/split/image1971.o (.data); - build/u/assets/images/split/image1972.o (.data); - build/u/assets/images/split/image1973.o (.data); - build/u/assets/images/split/image1974.o (.data); - build/u/assets/images/split/image1975.o (.data); - build/u/assets/images/split/image1976.o (.data); - build/u/assets/images/split/image1977.o (.data); - build/u/assets/images/split/image1978.o (.data); - build/u/assets/images/split/image1979.o (.data); - build/u/assets/images/split/image1980.o (.data); - build/u/assets/images/split/image1981.o (.data); - build/u/assets/images/split/image1982.o (.data); - build/u/assets/images/split/image1983.o (.data); - build/u/assets/images/split/image1984.o (.data); - build/u/assets/images/split/image1985.o (.data); - build/u/assets/images/split/image1986.o (.data); - build/u/assets/images/split/image1987.o (.data); - build/u/assets/images/split/image1988.o (.data); - build/u/assets/images/split/image1989.o (.data); - build/u/assets/images/split/image1990.o (.data); - build/u/assets/images/split/image1991.o (.data); - build/u/assets/images/split/image1992.o (.data); - build/u/assets/images/split/image1993.o (.data); - build/u/assets/images/split/image1994.o (.data); - build/u/assets/images/split/image1995.o (.data); - build/u/assets/images/split/image1996.o (.data); - build/u/assets/images/split/image1997.o (.data); - build/u/assets/images/split/image1998.o (.data); - build/u/assets/images/split/image1999.o (.data); - build/u/assets/images/split/image2000.o (.data); - build/u/assets/images/split/image2001.o (.data); - build/u/assets/images/split/image2002.o (.data); - build/u/assets/images/split/image2003.o (.data); - build/u/assets/images/split/image2004.o (.data); - build/u/assets/images/split/image2005.o (.data); - build/u/assets/images/split/image2006.o (.data); - build/u/assets/images/split/image2007.o (.data); - build/u/assets/images/split/image2008.o (.data); - build/u/assets/images/split/image2009.o (.data); - build/u/assets/images/split/image2010.o (.data); - build/u/assets/images/split/image2011.o (.data); - build/u/assets/images/split/image2012.o (.data); - build/u/assets/images/split/image2013.o (.data); - build/u/assets/images/split/image2014.o (.data); - build/u/assets/images/split/image2015.o (.data); - build/u/assets/images/split/image2016.o (.data); - build/u/assets/images/split/image2017.o (.data); - build/u/assets/images/split/image2018.o (.data); - build/u/assets/images/split/image2019.o (.data); - build/u/assets/images/split/image2020.o (.data); - build/u/assets/images/split/image2021.o (.data); - build/u/assets/images/split/image2022.o (.data); - build/u/assets/images/split/image2023.o (.data); - build/u/assets/images/split/image2024.o (.data); - build/u/assets/images/split/image2025.o (.data); - build/u/assets/images/split/image2026.o (.data); - build/u/assets/images/split/image2027.o (.data); - build/u/assets/images/split/image2028.o (.data); - build/u/assets/images/split/image2029.o (.data); - build/u/assets/images/split/image2030.o (.data); - build/u/assets/images/split/image2031.o (.data); - build/u/assets/images/split/image2032.o (.data); - build/u/assets/images/split/image2033.o (.data); - build/u/assets/images/split/image2034.o (.data); - build/u/assets/images/split/image2035.o (.data); - build/u/assets/images/split/image2036.o (.data); - build/u/assets/images/split/image2037.o (.data); - build/u/assets/images/split/image2038.o (.data); - build/u/assets/images/split/image2039.o (.data); - build/u/assets/images/split/image2040.o (.data); - build/u/assets/images/split/image2041.o (.data); - build/u/assets/images/split/image2042.o (.data); - build/u/assets/images/split/image2043.o (.data); - build/u/assets/images/split/image2044.o (.data); - build/u/assets/images/split/image2045.o (.data); - build/u/assets/images/split/image2046.o (.data); - build/u/assets/images/split/image2047.o (.data); - build/u/assets/images/split/image2048.o (.data); - build/u/assets/images/split/image2049.o (.data); - build/u/assets/images/split/image2050.o (.data); - build/u/assets/images/split/image2051.o (.data); - build/u/assets/images/split/image2052.o (.data); - build/u/assets/images/split/image2053.o (.data); - build/u/assets/images/split/image2054.o (.data); - build/u/assets/images/split/image2055.o (.data); - build/u/assets/images/split/image2056.o (.data); - build/u/assets/images/split/image2057.o (.data); - build/u/assets/images/split/image2058.o (.data); - build/u/assets/images/split/image2059.o (.data); - build/u/assets/images/split/image2060.o (.data); - build/u/assets/images/split/image2061.o (.data); - build/u/assets/images/split/image2062.o (.data); - build/u/assets/images/split/image2063.o (.data); - build/u/assets/images/split/image2064.o (.data); - build/u/assets/images/split/image2065.o (.data); - build/u/assets/images/split/image2066.o (.data); - build/u/assets/images/split/image2067.o (.data); - build/u/assets/images/split/image2068.o (.data); - build/u/assets/images/split/image2069.o (.data); - build/u/assets/images/split/image2070.o (.data); - build/u/assets/images/split/image2071.o (.data); - build/u/assets/images/split/image2072.o (.data); - build/u/assets/images/split/image2073.o (.data); - build/u/assets/images/split/image2074.o (.data); - build/u/assets/images/split/image2075.o (.data); - build/u/assets/images/split/image2076.o (.data); - build/u/assets/images/split/image2077.o (.data); - build/u/assets/images/split/image2078.o (.data); - build/u/assets/images/split/image2079.o (.data); - build/u/assets/images/split/image2080.o (.data); - build/u/assets/images/split/image2081.o (.data); - build/u/assets/images/split/image2082.o (.data); - build/u/assets/images/split/image2083.o (.data); - build/u/assets/images/split/image2084.o (.data); - build/u/assets/images/split/image2085.o (.data); - build/u/assets/images/split/image2086.o (.data); - build/u/assets/images/split/image2087.o (.data); - build/u/assets/images/split/image2088.o (.data); - build/u/assets/images/split/image2089.o (.data); - build/u/assets/images/split/image2090.o (.data); - build/u/assets/images/split/image2091.o (.data); - build/u/assets/images/split/image2092.o (.data); - build/u/assets/images/split/image2093.o (.data); - build/u/assets/images/split/image2094.o (.data); - build/u/assets/images/split/image2095.o (.data); - build/u/assets/images/split/image2096.o (.data); - build/u/assets/images/split/image2097.o (.data); - build/u/assets/images/split/image2098.o (.data); - build/u/assets/images/split/image2099.o (.data); - build/u/assets/images/split/image2100.o (.data); - build/u/assets/images/split/image2101.o (.data); - build/u/assets/images/split/image2102.o (.data); - build/u/assets/images/split/image2103.o (.data); - build/u/assets/images/split/image2104.o (.data); - build/u/assets/images/split/image2105.o (.data); - build/u/assets/images/split/image2106.o (.data); - build/u/assets/images/split/image2107.o (.data); - build/u/assets/images/split/image2108.o (.data); - build/u/assets/images/split/image2109.o (.data); - build/u/assets/images/split/image2110.o (.data); - build/u/assets/images/split/image2111.o (.data); - build/u/assets/images/split/image2112.o (.data); - build/u/assets/images/split/image2113.o (.data); - build/u/assets/images/split/image2114.o (.data); - build/u/assets/images/split/image2115.o (.data); - build/u/assets/images/split/image2116.o (.data); - build/u/assets/images/split/image2117.o (.data); - build/u/assets/images/split/image2118.o (.data); - build/u/assets/images/split/image2119.o (.data); - build/u/assets/images/split/image2120.o (.data); - build/u/assets/images/split/image2121.o (.data); - build/u/assets/images/split/image2122.o (.data); - build/u/assets/images/split/image2123.o (.data); - build/u/assets/images/split/image2124.o (.data); - build/u/assets/images/split/image2125.o (.data); - build/u/assets/images/split/image2126.o (.data); - build/u/assets/images/split/image2127.o (.data); - build/u/assets/images/split/image2128.o (.data); - build/u/assets/images/split/image2129.o (.data); - build/u/assets/images/split/image2130.o (.data); - build/u/assets/images/split/image2131.o (.data); - build/u/assets/images/split/image2132.o (.data); - build/u/assets/images/split/image2133.o (.data); - build/u/assets/images/split/image2134.o (.data); - build/u/assets/images/split/image2135.o (.data); - build/u/assets/images/split/image2136.o (.data); - build/u/assets/images/split/image2137.o (.data); - build/u/assets/images/split/image2138.o (.data); - build/u/assets/images/split/image2139.o (.data); - build/u/assets/images/split/image2140.o (.data); - build/u/assets/images/split/image2141.o (.data); - build/u/assets/images/split/image2142.o (.data); - build/u/assets/images/split/image2143.o (.data); - build/u/assets/images/split/image2144.o (.data); - build/u/assets/images/split/image2145.o (.data); - build/u/assets/images/split/image2146.o (.data); - build/u/assets/images/split/image2147.o (.data); - build/u/assets/images/split/image2148.o (.data); - build/u/assets/images/split/image2149.o (.data); - build/u/assets/images/split/image2150.o (.data); - build/u/assets/images/split/image2151.o (.data); - build/u/assets/images/split/image2152.o (.data); - build/u/assets/images/split/image2153.o (.data); - build/u/assets/images/split/image2154.o (.data); - build/u/assets/images/split/image2155.o (.data); - build/u/assets/images/split/image2156.o (.data); - build/u/assets/images/split/image2157.o (.data); - build/u/assets/images/split/image2158.o (.data); - build/u/assets/images/split/image2159.o (.data); - build/u/assets/images/split/image2160.o (.data); - build/u/assets/images/split/image2161.o (.data); - build/u/assets/images/split/image2162.o (.data); - build/u/assets/images/split/image2163.o (.data); - build/u/assets/images/split/image2164.o (.data); - build/u/assets/images/split/image2165.o (.data); - build/u/assets/images/split/image2166.o (.data); - build/u/assets/images/split/image2167.o (.data); - build/u/assets/images/split/image2168.o (.data); - build/u/assets/images/split/image2169.o (.data); - build/u/assets/images/split/image2170.o (.data); - build/u/assets/images/split/image2171.o (.data); - build/u/assets/images/split/image2172.o (.data); - build/u/assets/images/split/image2173.o (.data); - build/u/assets/images/split/image2174.o (.data); - build/u/assets/images/split/image2175.o (.data); - build/u/assets/images/split/image2176.o (.data); - build/u/assets/images/split/image2177.o (.data); - build/u/assets/images/split/image2178.o (.data); - build/u/assets/images/split/image2179.o (.data); - build/u/assets/images/split/image2180.o (.data); - build/u/assets/images/split/image2181.o (.data); - build/u/assets/images/split/image2182.o (.data); - build/u/assets/images/split/image2183.o (.data); - build/u/assets/images/split/image2184.o (.data); - build/u/assets/images/split/image2185.o (.data); - build/u/assets/images/split/image2186.o (.data); - build/u/assets/images/split/image2187.o (.data); - build/u/assets/images/split/image2188.o (.data); - build/u/assets/images/split/image2189.o (.data); - build/u/assets/images/split/image2190.o (.data); - build/u/assets/images/split/image2191.o (.data); - build/u/assets/images/split/image2192.o (.data); - build/u/assets/images/split/image2193.o (.data); - build/u/assets/images/split/image2194.o (.data); - build/u/assets/images/split/image2195.o (.data); - build/u/assets/images/split/image2196.o (.data); - build/u/assets/images/split/image2197.o (.data); - build/u/assets/images/split/image2198.o (.data); - build/u/assets/images/split/image2199.o (.data); - build/u/assets/images/split/image2200.o (.data); - build/u/assets/images/split/image2201.o (.data); - build/u/assets/images/split/image2202.o (.data); - build/u/assets/images/split/image2203.o (.data); - build/u/assets/images/split/image2204.o (.data); - build/u/assets/images/split/image2205.o (.data); - build/u/assets/images/split/image2206.o (.data); - build/u/assets/images/split/image2207.o (.data); - build/u/assets/images/split/image2208.o (.data); - build/u/assets/images/split/image2209.o (.data); - build/u/assets/images/split/image2210.o (.data); - build/u/assets/images/split/image2211.o (.data); - build/u/assets/images/split/image2212.o (.data); - build/u/assets/images/split/image2213.o (.data); - build/u/assets/images/split/image2214.o (.data); - build/u/assets/images/split/image2215.o (.data); - build/u/assets/images/split/image2216.o (.data); - build/u/assets/images/split/image2217.o (.data); - build/u/assets/images/split/image2218.o (.data); - build/u/assets/images/split/image2219.o (.data); - build/u/assets/images/split/image2220.o (.data); - build/u/assets/images/split/image2221.o (.data); - build/u/assets/images/split/image2222.o (.data); - build/u/assets/images/split/image2223.o (.data); - build/u/assets/images/split/image2224.o (.data); - build/u/assets/images/split/image2225.o (.data); - build/u/assets/images/split/image2226.o (.data); - build/u/assets/images/split/image2227.o (.data); - build/u/assets/images/split/image2228.o (.data); - build/u/assets/images/split/image2229.o (.data); - build/u/assets/images/split/image2230.o (.data); - build/u/assets/images/split/image2231.o (.data); - build/u/assets/images/split/image2232.o (.data); - build/u/assets/images/split/image2233.o (.data); - build/u/assets/images/split/image2234.o (.data); - build/u/assets/images/split/image2235.o (.data); - build/u/assets/images/split/image2236.o (.data); - build/u/assets/images/split/image2237.o (.data); - build/u/assets/images/split/image2238.o (.data); - build/u/assets/images/split/image2239.o (.data); - build/u/assets/images/split/image2240.o (.data); - build/u/assets/images/split/image2241.o (.data); - build/u/assets/images/split/image2242.o (.data); - build/u/assets/images/split/image2243.o (.data); - build/u/assets/images/split/image2244.o (.data); - build/u/assets/images/split/image2245.o (.data); - build/u/assets/images/split/image2246.o (.data); - build/u/assets/images/split/image2247.o (.data); - build/u/assets/images/split/image2248.o (.data); - build/u/assets/images/split/image2249.o (.data); - build/u/assets/images/split/image2250.o (.data); - build/u/assets/images/split/image2251.o (.data); - build/u/assets/images/split/image2252.o (.data); - build/u/assets/images/split/image2253.o (.data); - build/u/assets/images/split/image2254.o (.data); - build/u/assets/images/split/image2255.o (.data); - build/u/assets/images/split/image2256.o (.data); - build/u/assets/images/split/image2257.o (.data); - build/u/assets/images/split/image2258.o (.data); - build/u/assets/images/split/image2259.o (.data); - build/u/assets/images/split/image2260.o (.data); - build/u/assets/images/split/image2261.o (.data); - build/u/assets/images/split/image2262.o (.data); - build/u/assets/images/split/image2263.o (.data); - build/u/assets/images/split/image2264.o (.data); - build/u/assets/images/split/image2265.o (.data); - build/u/assets/images/split/image2266.o (.data); - build/u/assets/images/split/image2267.o (.data); - build/u/assets/images/split/image2268.o (.data); - build/u/assets/images/split/image2269.o (.data); - build/u/assets/images/split/image2270.o (.data); - build/u/assets/images/split/image2271.o (.data); - build/u/assets/images/split/image2272.o (.data); - build/u/assets/images/split/image2273.o (.data); - build/u/assets/images/split/image2274.o (.data); - build/u/assets/images/split/image2275.o (.data); - build/u/assets/images/split/image2276.o (.data); - build/u/assets/images/split/image2277.o (.data); - build/u/assets/images/split/image2278.o (.data); - build/u/assets/images/split/image2279.o (.data); - build/u/assets/images/split/image2280.o (.data); - build/u/assets/images/split/image2281.o (.data); - build/u/assets/images/split/image2282.o (.data); - build/u/assets/images/split/image2283.o (.data); - build/u/assets/images/split/image2284.o (.data); - build/u/assets/images/split/image2285.o (.data); - build/u/assets/images/split/image2286.o (.data); - build/u/assets/images/split/image2287.o (.data); - build/u/assets/images/split/image2288.o (.data); - build/u/assets/images/split/image2289.o (.data); - build/u/assets/images/split/image2290.o (.data); - build/u/assets/images/split/image2291.o (.data); - build/u/assets/images/split/image2292.o (.data); - build/u/assets/images/split/image2293.o (.data); - build/u/assets/images/split/image2294.o (.data); - build/u/assets/images/split/image2295.o (.data); - build/u/assets/images/split/image2296.o (.data); - build/u/assets/images/split/image2297.o (.data); - build/u/assets/images/split/image2298.o (.data); - build/u/assets/images/split/image2299.o (.data); - build/u/assets/images/split/image2300.o (.data); - build/u/assets/images/split/image2301.o (.data); - build/u/assets/images/split/image2302.o (.data); - build/u/assets/images/split/image2303.o (.data); - build/u/assets/images/split/image2304.o (.data); - build/u/assets/images/split/image2305.o (.data); - build/u/assets/images/split/image2306.o (.data); - build/u/assets/images/split/image2307.o (.data); - build/u/assets/images/split/image2308.o (.data); - build/u/assets/images/split/image2309.o (.data); - build/u/assets/images/split/image2310.o (.data); - build/u/assets/images/split/image2311.o (.data); - build/u/assets/images/split/image2312.o (.data); - build/u/assets/images/split/image2313.o (.data); - build/u/assets/images/split/image2314.o (.data); - build/u/assets/images/split/image2315.o (.data); - build/u/assets/images/split/image2316.o (.data); - build/u/assets/images/split/image2317.o (.data); - build/u/assets/images/split/image2318.o (.data); - build/u/assets/images/split/image2319.o (.data); - build/u/assets/images/split/image2320.o (.data); - build/u/assets/images/split/image2321.o (.data); - build/u/assets/images/split/image2322.o (.data); - build/u/assets/images/split/image2323.o (.data); - build/u/assets/images/split/image2324.o (.data); - build/u/assets/images/split/image2325.o (.data); - build/u/assets/images/split/image2326.o (.data); - build/u/assets/images/split/image2327.o (.data); - build/u/assets/images/split/image2328.o (.data); - build/u/assets/images/split/image2329.o (.data); - build/u/assets/images/split/image2330.o (.data); - build/u/assets/images/split/image2331.o (.data); - build/u/assets/images/split/image2332.o (.data); - build/u/assets/images/split/image2333.o (.data); - build/u/assets/images/split/image2334.o (.data); - build/u/assets/images/split/image2335.o (.data); - build/u/assets/images/split/image2336.o (.data); - build/u/assets/images/split/image2337.o (.data); - build/u/assets/images/split/image2338.o (.data); - build/u/assets/images/split/image2339.o (.data); - build/u/assets/images/split/image2340.o (.data); - build/u/assets/images/split/image2341.o (.data); - build/u/assets/images/split/image2342.o (.data); - build/u/assets/images/split/image2343.o (.data); - build/u/assets/images/split/image2344.o (.data); - build/u/assets/images/split/image2345.o (.data); - build/u/assets/images/split/image2346.o (.data); - build/u/assets/images/split/image2347.o (.data); - build/u/assets/images/split/image2348.o (.data); - build/u/assets/images/split/image2349.o (.data); - build/u/assets/images/split/image2350.o (.data); - build/u/assets/images/split/image2351.o (.data); - build/u/assets/images/split/image2352.o (.data); - build/u/assets/images/split/image2353.o (.data); - build/u/assets/images/split/image2354.o (.data); - build/u/assets/images/split/image2355.o (.data); - build/u/assets/images/split/image2356.o (.data); - build/u/assets/images/split/image2357.o (.data); - build/u/assets/images/split/image2358.o (.data); - build/u/assets/images/split/image2359.o (.data); - build/u/assets/images/split/image2360.o (.data); - build/u/assets/images/split/image2361.o (.data); - build/u/assets/images/split/image2362.o (.data); - build/u/assets/images/split/image2363.o (.data); - build/u/assets/images/split/image2364.o (.data); - build/u/assets/images/split/image2365.o (.data); - build/u/assets/images/split/image2366.o (.data); - build/u/assets/images/split/image2367.o (.data); - build/u/assets/images/split/image2368.o (.data); - build/u/assets/images/split/image2369.o (.data); - build/u/assets/images/split/image2370.o (.data); - build/u/assets/images/split/image2371.o (.data); - build/u/assets/images/split/image2372.o (.data); - build/u/assets/images/split/image2373.o (.data); - build/u/assets/images/split/image2374.o (.data); - build/u/assets/images/split/image2375.o (.data); - build/u/assets/images/split/image2376.o (.data); - build/u/assets/images/split/image2377.o (.data); - build/u/assets/images/split/image2378.o (.data); - build/u/assets/images/split/image2379.o (.data); - build/u/assets/images/split/image2380.o (.data); - build/u/assets/images/split/image2381.o (.data); - build/u/assets/images/split/image2382.o (.data); - build/u/assets/images/split/image2383.o (.data); - build/u/assets/images/split/image2384.o (.data); - build/u/assets/images/split/image2385.o (.data); - build/u/assets/images/split/image2386.o (.data); - build/u/assets/images/split/image2387.o (.data); - build/u/assets/images/split/image2388.o (.data); - build/u/assets/images/split/image2389.o (.data); - build/u/assets/images/split/image2390.o (.data); - build/u/assets/images/split/image2391.o (.data); - build/u/assets/images/split/image2392.o (.data); - build/u/assets/images/split/image2393.o (.data); - build/u/assets/images/split/image2394.o (.data); - build/u/assets/images/split/image2395.o (.data); - build/u/assets/images/split/image2396.o (.data); - build/u/assets/images/split/image2397.o (.data); - build/u/assets/images/split/image2398.o (.data); - build/u/assets/images/split/image2399.o (.data); - build/u/assets/images/split/image2400.o (.data); - build/u/assets/images/split/image2401.o (.data); - build/u/assets/images/split/image2402.o (.data); - build/u/assets/images/split/image2403.o (.data); - build/u/assets/images/split/image2404.o (.data); - build/u/assets/images/split/image2405.o (.data); - build/u/assets/images/split/image2406.o (.data); - build/u/assets/images/split/image2407.o (.data); - build/u/assets/images/split/image2408.o (.data); - build/u/assets/images/split/image2409.o (.data); - build/u/assets/images/split/image2410.o (.data); - build/u/assets/images/split/image2411.o (.data); - build/u/assets/images/split/image2412.o (.data); - build/u/assets/images/split/image2413.o (.data); - build/u/assets/images/split/image2414.o (.data); - build/u/assets/images/split/image2415.o (.data); - build/u/assets/images/split/image2416.o (.data); - build/u/assets/images/split/image2417.o (.data); - build/u/assets/images/split/image2418.o (.data); - build/u/assets/images/split/image2419.o (.data); - build/u/assets/images/split/image2420.o (.data); - build/u/assets/images/split/image2421.o (.data); - build/u/assets/images/split/image2422.o (.data); - build/u/assets/images/split/image2423.o (.data); - build/u/assets/images/split/image2424.o (.data); - build/u/assets/images/split/image2425.o (.data); - build/u/assets/images/split/image2426.o (.data); - build/u/assets/images/split/image2427.o (.data); - build/u/assets/images/split/image2428.o (.data); - build/u/assets/images/split/image2429.o (.data); - build/u/assets/images/split/image2430.o (.data); - build/u/assets/images/split/image2431.o (.data); - build/u/assets/images/split/image2432.o (.data); - build/u/assets/images/split/image2433.o (.data); - build/u/assets/images/split/image2434.o (.data); - build/u/assets/images/split/image2435.o (.data); - build/u/assets/images/split/image2436.o (.data); - build/u/assets/images/split/image2437.o (.data); - build/u/assets/images/split/image2438.o (.data); - build/u/assets/images/split/image2439.o (.data); - build/u/assets/images/split/image2440.o (.data); - build/u/assets/images/split/image2441.o (.data); - build/u/assets/images/split/image2442.o (.data); - build/u/assets/images/split/image2443.o (.data); - build/u/assets/images/split/image2444.o (.data); - build/u/assets/images/split/image2445.o (.data); - build/u/assets/images/split/image2446.o (.data); - build/u/assets/images/split/image2447.o (.data); - build/u/assets/images/split/image2448.o (.data); - build/u/assets/images/split/image2449.o (.data); - build/u/assets/images/split/image2450.o (.data); - build/u/assets/images/split/image2451.o (.data); - build/u/assets/images/split/image2452.o (.data); - build/u/assets/images/split/image2453.o (.data); - build/u/assets/images/split/image2454.o (.data); - build/u/assets/images/split/image2455.o (.data); - build/u/assets/images/split/image2456.o (.data); - build/u/assets/images/split/image2457.o (.data); - build/u/assets/images/split/image2458.o (.data); - build/u/assets/images/split/image2459.o (.data); - build/u/assets/images/split/image2460.o (.data); - build/u/assets/images/split/image2461.o (.data); - build/u/assets/images/split/image2462.o (.data); - build/u/assets/images/split/image2463.o (.data); - build/u/assets/images/split/image2464.o (.data); - build/u/assets/images/split/image2465.o (.data); - build/u/assets/images/split/image2466.o (.data); - build/u/assets/images/split/image2467.o (.data); - build/u/assets/images/split/image2468.o (.data); - build/u/assets/images/split/image2469.o (.data); - build/u/assets/images/split/image2470.o (.data); - build/u/assets/images/split/image2471.o (.data); - build/u/assets/images/split/image2472.o (.data); - build/u/assets/images/split/image2473.o (.data); - build/u/assets/images/split/image2474.o (.data); - build/u/assets/images/split/image2475.o (.data); - build/u/assets/images/split/image2476.o (.data); - build/u/assets/images/split/image2477.o (.data); - build/u/assets/images/split/image2478.o (.data); - build/u/assets/images/split/image2479.o (.data); - build/u/assets/images/split/image2480.o (.data); - build/u/assets/images/split/image2481.o (.data); - build/u/assets/images/split/image2482.o (.data); - build/u/assets/images/split/image2483.o (.data); - build/u/assets/images/split/image2484.o (.data); - build/u/assets/images/split/image2485.o (.data); - build/u/assets/images/split/image2486.o (.data); - build/u/assets/images/split/image2487.o (.data); - build/u/assets/images/split/image2488.o (.data); - build/u/assets/images/split/image2489.o (.data); - build/u/assets/images/split/image2490.o (.data); - build/u/assets/images/split/image2491.o (.data); - build/u/assets/images/split/image2492.o (.data); - build/u/assets/images/split/image2493.o (.data); - build/u/assets/images/split/image2494.o (.data); - build/u/assets/images/split/image2495.o (.data); - build/u/assets/images/split/image2496.o (.data); - build/u/assets/images/split/image2497.o (.data); - build/u/assets/images/split/image2498.o (.data); - build/u/assets/images/split/image2499.o (.data); - build/u/assets/images/split/image2500.o (.data); - build/u/assets/images/split/image2501.o (.data); - build/u/assets/images/split/image2502.o (.data); - build/u/assets/images/split/image2503.o (.data); - build/u/assets/images/split/image2504.o (.data); - build/u/assets/images/split/image2505.o (.data); - build/u/assets/images/split/image2506.o (.data); - build/u/assets/images/split/image2507.o (.data); - build/u/assets/images/split/image2508.o (.data); - build/u/assets/images/split/image2509.o (.data); - build/u/assets/images/split/image2510.o (.data); - build/u/assets/images/split/image2511.o (.data); - build/u/assets/images/split/image2512.o (.data); - build/u/assets/images/split/image2513.o (.data); - build/u/assets/images/split/image2514.o (.data); - build/u/assets/images/split/image2515.o (.data); - build/u/assets/images/split/image2516.o (.data); - build/u/assets/images/split/image2517.o (.data); - build/u/assets/images/split/image2518.o (.data); - build/u/assets/images/split/image2519.o (.data); - build/u/assets/images/split/image2520.o (.data); - build/u/assets/images/split/image2521.o (.data); - build/u/assets/images/split/image2522.o (.data); - build/u/assets/images/split/image2523.o (.data); - build/u/assets/images/split/image2524.o (.data); - build/u/assets/images/split/image2525.o (.data); - build/u/assets/images/split/image2526.o (.data); - build/u/assets/images/split/image2527.o (.data); - build/u/assets/images/split/image2528.o (.data); - build/u/assets/images/split/image2529.o (.data); - build/u/assets/images/split/image2530.o (.data); - build/u/assets/images/split/image2531.o (.data); - build/u/assets/images/split/image2532.o (.data); - build/u/assets/images/split/image2533.o (.data); - build/u/assets/images/split/image2534.o (.data); - build/u/assets/images/split/image2535.o (.data); - build/u/assets/images/split/image2536.o (.data); - build/u/assets/images/split/image2537.o (.data); - build/u/assets/images/split/image2538.o (.data); - build/u/assets/images/split/image2539.o (.data); - build/u/assets/images/split/image2540.o (.data); - build/u/assets/images/split/image2541.o (.data); - build/u/assets/images/split/image2542.o (.data); - build/u/assets/images/split/image2543.o (.data); - build/u/assets/images/split/image2544.o (.data); - build/u/assets/images/split/image2545.o (.data); - build/u/assets/images/split/image2546.o (.data); - build/u/assets/images/split/image2547.o (.data); - build/u/assets/images/split/image2548.o (.data); - build/u/assets/images/split/image2549.o (.data); - build/u/assets/images/split/image2550.o (.data); - build/u/assets/images/split/image2551.o (.data); - build/u/assets/images/split/image2552.o (.data); - build/u/assets/images/split/image2553.o (.data); - build/u/assets/images/split/image2554.o (.data); - build/u/assets/images/split/image2555.o (.data); - build/u/assets/images/split/image2556.o (.data); - build/u/assets/images/split/image2557.o (.data); - build/u/assets/images/split/image2558.o (.data); - build/u/assets/images/split/image2559.o (.data); - build/u/assets/images/split/image2560.o (.data); - build/u/assets/images/split/image2561.o (.data); - build/u/assets/images/split/image2562.o (.data); - build/u/assets/images/split/image2563.o (.data); - build/u/assets/images/split/image2564.o (.data); - build/u/assets/images/split/image2565.o (.data); - build/u/assets/images/split/image2566.o (.data); - build/u/assets/images/split/image2567.o (.data); - build/u/assets/images/split/image2568.o (.data); - build/u/assets/images/split/image2569.o (.data); - build/u/assets/images/split/image2570.o (.data); - build/u/assets/images/split/image2571.o (.data); - build/u/assets/images/split/image2572.o (.data); - build/u/assets/images/split/image2573.o (.data); - build/u/assets/images/split/image2574.o (.data); - build/u/assets/images/split/image2575.o (.data); - build/u/assets/images/split/image2576.o (.data); - build/u/assets/images/split/image2577.o (.data); - build/u/assets/images/split/image2578.o (.data); - build/u/assets/images/split/image2579.o (.data); - build/u/assets/images/split/image2580.o (.data); - build/u/assets/images/split/image2581.o (.data); - build/u/assets/images/split/image2582.o (.data); - build/u/assets/images/split/image2583.o (.data); - build/u/assets/images/split/image2584.o (.data); - build/u/assets/images/split/image2585.o (.data); - build/u/assets/images/split/image2586.o (.data); - build/u/assets/images/split/image2587.o (.data); - build/u/assets/images/split/image2588.o (.data); - build/u/assets/images/split/image2589.o (.data); - build/u/assets/images/split/image2590.o (.data); - build/u/assets/images/split/image2591.o (.data); - build/u/assets/images/split/image2592.o (.data); - build/u/assets/images/split/image2593.o (.data); - build/u/assets/images/split/image2594.o (.data); - build/u/assets/images/split/image2595.o (.data); - build/u/assets/images/split/image2596.o (.data); - build/u/assets/images/split/image2597.o (.data); - build/u/assets/images/split/image2598.o (.data); - build/u/assets/images/split/image2599.o (.data); - build/u/assets/images/split/image2600.o (.data); - build/u/assets/images/split/image2601.o (.data); - build/u/assets/images/split/image2602.o (.data); - build/u/assets/images/split/image2603.o (.data); - build/u/assets/images/split/image2604.o (.data); - build/u/assets/images/split/image2605.o (.data); - build/u/assets/images/split/image2606.o (.data); - build/u/assets/images/split/image2607.o (.data); - build/u/assets/images/split/image2608.o (.data); - build/u/assets/images/split/image2609.o (.data); - build/u/assets/images/split/image2610.o (.data); - build/u/assets/images/split/image2611.o (.data); - build/u/assets/images/split/image2612.o (.data); - build/u/assets/images/split/image2613.o (.data); - build/u/assets/images/split/image2614.o (.data); - build/u/assets/images/split/image2615.o (.data); - build/u/assets/images/split/image2616.o (.data); - build/u/assets/images/split/image2617.o (.data); - build/u/assets/images/split/image2618.o (.data); - build/u/assets/images/split/image2619.o (.data); - build/u/assets/images/split/image2620.o (.data); - build/u/assets/images/split/image2621.o (.data); - build/u/assets/images/split/image2622.o (.data); - build/u/assets/images/split/image2623.o (.data); - build/u/assets/images/split/image2624.o (.data); - build/u/assets/images/split/image2625.o (.data); - build/u/assets/images/split/image2626.o (.data); - build/u/assets/images/split/image2627.o (.data); - build/u/assets/images/split/image2628.o (.data); - build/u/assets/images/split/image2629.o (.data); - build/u/assets/images/split/image2630.o (.data); - build/u/assets/images/split/image2631.o (.data); - build/u/assets/images/split/image2632.o (.data); - build/u/assets/images/split/image2633.o (.data); - build/u/assets/images/split/image2634.o (.data); - build/u/assets/images/split/image2635.o (.data); - build/u/assets/images/split/image2636.o (.data); - build/u/assets/images/split/image2637.o (.data); - build/u/assets/images/split/image2638.o (.data); - build/u/assets/images/split/image2639.o (.data); - build/u/assets/images/split/image2640.o (.data); - build/u/assets/images/split/image2641.o (.data); - build/u/assets/images/split/image2642.o (.data); - build/u/assets/images/split/image2643.o (.data); - build/u/assets/images/split/image2644.o (.data); - build/u/assets/images/split/image2645.o (.data); - build/u/assets/images/split/image2646.o (.data); - build/u/assets/images/split/image2647.o (.data); - build/u/assets/images/split/image2648.o (.data); - build/u/assets/images/split/image2649.o (.data); - build/u/assets/images/split/image2650.o (.data); - build/u/assets/images/split/image2651.o (.data); - build/u/assets/images/split/image2652.o (.data); - build/u/assets/images/split/image2653.o (.data); - build/u/assets/images/split/image2654.o (.data); - build/u/assets/images/split/image2655.o (.data); - build/u/assets/images/split/image2656.o (.data); - build/u/assets/images/split/image2657.o (.data); - build/u/assets/images/split/image2658.o (.data); - build/u/assets/images/split/image2659.o (.data); - build/u/assets/images/split/image2660.o (.data); - build/u/assets/images/split/image2661.o (.data); - build/u/assets/images/split/image2662.o (.data); - build/u/assets/images/split/image2663.o (.data); - build/u/assets/images/split/image2664.o (.data); - build/u/assets/images/split/image2665.o (.data); - build/u/assets/images/split/image2666.o (.data); - build/u/assets/images/split/image2667.o (.data); - build/u/assets/images/split/image2668.o (.data); - build/u/assets/images/split/image2669.o (.data); - build/u/assets/images/split/image2670.o (.data); - build/u/assets/images/split/image2671.o (.data); - build/u/assets/images/split/image2672.o (.data); - build/u/assets/images/split/image2673.o (.data); - build/u/assets/images/split/image2674.o (.data); - build/u/assets/images/split/image2675.o (.data); - build/u/assets/images/split/image2676.o (.data); - build/u/assets/images/split/image2677.o (.data); - build/u/assets/images/split/image2678.o (.data); - build/u/assets/images/split/image2679.o (.data); - build/u/assets/images/split/image2680.o (.data); - build/u/assets/images/split/image2681.o (.data); - build/u/assets/images/split/image2682.o (.data); - build/u/assets/images/split/image2683.o (.data); - build/u/assets/images/split/image2684.o (.data); - build/u/assets/images/split/image2685.o (.data); - build/u/assets/images/split/image2686.o (.data); - build/u/assets/images/split/image2687.o (.data); - build/u/assets/images/split/image2688.o (.data); - build/u/assets/images/split/image2689.o (.data); - build/u/assets/images/split/image2690.o (.data); - build/u/assets/images/split/image2691.o (.data); - build/u/assets/images/split/image2692.o (.data); - build/u/assets/images/split/image2693.o (.data); - build/u/assets/images/split/image2694.o (.data); - build/u/assets/images/split/image2695.o (.data); - build/u/assets/images/split/image2696.o (.data); - build/u/assets/images/split/image2697.o (.data); - build/u/assets/images/split/image2698.o (.data); - build/u/assets/images/split/image2699.o (.data); - } - _imagesSegmentEnd = ADDR(.images) + SIZEOF(.images); - _imagesSegmentRomEnd = _imagesSegmentRomStart + SIZEOF(.images); - - - - _romSegmentEnd = _imagesSegmentRomEnd; - - - - __csegtempPos = 0xC00000; - __dataSegmentVaddrStart = _codeSegmentEnd + 0x10000000; - _csegmentSegmentStart = ADDR(.csegment); - _csegmentSegmentRomStart = __csegtempPos; - .csegment __dataSegmentVaddrStart : AT(_csegmentSegmentRomStart) { - build/u/src/rspboot.o (.text); - build/u/src/gspboot.o (.text); - build/u/src/aspboot.o (.text); - build/u/src/boot.o (.data); - build/u/src/init.o (.data); - build/u/src/sched.o (.data); - /*build/u/src/osMapTLB.o (.data);*/ - build/u/src/tlb_manage.o (.data); - build/u/src/tlb_random.o (.data); - /*build/u/src/tlb_resolve.o (.data);*/ - /*build/u/src/tlb_hardwire.o (.data);*/ - build/u/src/audi.o (.data); - build/u/src/speed_graph.o (.data); - build/u/src/fr.o (.data); - build/u/src/deb.o (.data); - /*build/u/src/fault.o (.data);*/ - /*deb_print may be part of fault per pd beta (.data);*/ - build/u/src/deb_print.o (.data); - /*build/u/src/getra.o (.data);*/ - /*build/u/src/ramrom.o (.data);*/ - build/u/src/boss.o (.data); - build/u/src/music.o (.data); - build/u/src/snd.o (.data); - build/u/src/memp.o (.data); - build/u/src/mema.o (.data); - build/u/src/random.o (.data); - build/u/src/token.o (.data); - /*build/u/src/str.o (.data);*/ - /*build/u/src/sprintf.o (.data);*/ - /*build/u/src/pi.o (.data);*/ - build/u/src/vi.o (.data); - build/u/src/debugmenu.o (.data); - build/u/src/joy.o (.data); - /*build/u/src/motor.o (.data);*/ - /*build/u/src/rmon.o (.data);*/ - - - /*build/u/src/libultra/io/pirawdma.o (.data);*/ - build/u/src/libultra/io/pigetstat.o (.data); - build/u/src/libultrare/os/initialize.o (.data); - build/u/src/libultra/os/writebackdcacheall.o (.data); - build/u/src/libultra/os/invalicache.o (.data); - build/u/src/libultra/os/unmaptlb.o (.data); - build/u/src/libultra/os/getfpccsr.o (.data); - build/u/src/libultra/os/setfpccsr.o (.data); - /*build/u/src/libultra/os/createthread.o (.data);*/ - /*build/u/src/libultra/os/startthread.o (.data);*/ - /*build/u/src/libultra/os/createmesgqueue.o (.data);*/ - build/u/src/libultra/os/parameters.o (.data); - build/u/src/libultra/os/stopthread.o (.data); - /*build/u/src/libultra/os/setthreadpri.o (.data);*/ - build/u/src/libultra/os/getcount.o (.data); - build/u/src/libultrare/io/vimgr.o (.data); - build/u/src/libultrare/io/vitbl.o (.data); /*edited*/ - /*build/u/src/libultra/os/seteventmesg.o (.data);*/ - /*build/u/src/libultra/io/visetevent.o (.data);*/ - build/u/src/libultra/os/setintmask.o (.data); - /*build/u/src/libultra/os/recvmesg.o (.data);*/ - /*build/u/src/libultra/os/sendmesg.o (.data);*/ - /*build/u/src/libultra/io/visetmode.o (.data);*/ - build/u/src/libultra/io/visetxscale.o (.data); - build/u/src/libultra/io/visetyscale.o (.data); - build/u/src/libultra/io/virepeatline.o (.data); - /*build/u/src/libultra/io/viblack.o (.data);*/ - /*build/u/src/libultra/io/sptaskyielded.o (.data);*/ - build/u/src/libultra/io/dpctr.o (.data); - build/u/src/libultra/io/vigetcurrframebuf.o (.data); - build/u/src/libultra/io/vigetnextframebuf.o (.data); - /*build/u/src/libultra/io/viswapbuf.o (.data);*/ - build/u/src/libultra/io/dpsetstat.o (.data); - build/u/src/libultrare/io/sptask.o (.data); - build/u/src/libultra/io/dpsetnextbuf.o (.data); - build/u/src/libultra/io/sptaskyield.o (.data); - build/u/src/libultra/os/gettlbhi.o (.data); - build/u/src/libultra/os/virtualtophysical.o (.data); - build/u/src/libultra/io/aisetfreq.o (.data); - build/u/src/libultra/audio/sl.o (.data); - build/u/src/libultra/audio/heapalloc.o (.data); - build/u/src/libultra/os/gettime.o (.data); - build/u/src/libultra/libc/ll.o (.data); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.data); - build/u/src/libultra/io/aigetlen.o (.data); - build/u/src/libultra/audio/synthesizer.o (.data); - build/u/src/libultra/io/pidma.o (.data); - build/u/src/libultra/io/visetspecial.o (.data); - build/u/src/libultra/libc/bcopy.o (.data); - build/u/src/libultra/gu/perspective.o (.data); - build/u/src/libultra/gu/mtxutil.o (.data); - build/u/src/libultra/os/getcurrfaultthread.o (.data); - build/u/src/libultra/os/exception.o (.data); /*edited*/ - build/u/src/libultra/os/thread.o (.data); - build/u/src/libultra/os/yieldthread.o (.data); - build/u/src/libultra/os/invaldcache.o (.data); - build/u/src/libultra/os/writebackdcache.o (.data); - build/u/src/libultra/os/settimer.o (.data); - build/u/src/libultra/audio/heapinit.o (.data); - build/u/src/libultra/audio/bnkf.o (.data); - build/u/src/libultra/audio/csplayer.o (.data); - build/u/src/libultra/audio/seqpsetbank.o (.data); - build/u/src/libultra/audio/cspgetstate.o (.data); - build/u/src/libultra/audio/cseq.o (.data); - build/u/src/libultra/audio/cspsetseq.o (.data); - build/u/src/libultra/audio/cspplay.o (.data); - build/u/src/libultra/audio/cspstop.o (.data); - build/u/src/libultra/audio/cspsetvol.o (.data); - build/u/src/libultra/audio/event.o (.data); - build/u/src/libultra/audio/synaddplayer.o (.data); - build/u/src/libultra/audio/synallocvoice.o (.data); - build/u/src/libultra/audio/synsetvol.o (.data); - build/u/src/libultra/audio/synstartvoice.o (.data); - build/u/src/libultra/audio/synsetpan.o (.data); - build/u/src/libultra/audio/synsetpitch.o (.data); - build/u/src/libultra/audio/synsetfxmix.o (.data); - build/u/src/libultra/audio/synstopvoice.o (.data); - build/u/src/libultra/audio/synfreevoice.o (.data); - build/u/src/libultra/audio/cents2ratio.o (.data); - build/u/src/libultra/io/piread.o (.data); - build/u/src/libultra/libc/string.o (.data); - build/u/src/libultrare/libc/xprintf.o (.data); - build/u/src/libultrare/io/pimgr.o (.data); - build/u/src/libultrare/io/pfsinit.o (.data); - build/u/src/libultrare/io/controller.o (.data); - build/u/src/libultra/io/contquery.o (.data); - build/u/src/libultrare/io/contreaddata.o (.data); - build/u/src/libultrare/io/conteepprobe.o (.data); - build/u/src/libultrare/io/conteepread.o (.data); - build/u/src/libultrare/io/conteepwrite.o (.data); - build/u/src/libultrare/io/conteeplongread.o (.data); - build/u/src/libultrare/io/conteeplongwrite.o (.data); - build/u/src/libultrare/io/pfsisplug.o (.data); - build/u/src/libultra/io/siacs.o (.data); - build/u/src/libultra/io/sirawdma.o (.data); - build/u/src/libultra/io/crc.o (.data); - build/u/src/libultrare/io/contramwrite.o (.data); - build/u/src/libultrare/io/contramread.o (.data); - build/u/src/libultra/gu/align.o (.data); - build/u/src/libultra/gu/ortho.o (.data); - build/u/src/libultra/gu/coss.o (.data); - build/u/src/libultra/gu/sins.o (.data); - build/u/src/libultra/gu/translate.o (.data); - build/u/src/libultra/libc/bcmp.o (.data); - build/u/src/libultra/gu/scale.o (.data); - build/u/src/libultra/gu/lookatref.o (.data); - build/u/src/libultra/gu/lookat.o (.data); - build/u/src/libultra/gu/rotate.o (.data); - build/u/src/libultra/libc/llcvt.o (.data); /*edited*/ - build/u/src/libultra/os/setsr.o (.data); - build/u/src/libultra/os/getsr.o (.data); - build/u/src/libultra/io/sirawread.o (.data); - build/u/src/libultra/io/sirawwrite.o (.data); - build/u/src/libultra/io/pirawread.o (.data); - build/u/src/libultra/libc/bzero.o (.data); - build/u/src/libultra/os/sethwinterrupt.o (.data); - build/u/src/libultrare/io/leointerrupt.o (.data); - build/u/src/libultra/os/interrupt.o (.data); - build/u/src/libultra/os/timerintr.o (.data); - build/u/src/libultra/os/kdebugserver.o (.data); - build/u/src/libultra/os/getthreadpri.o (.data); - build/u/src/libultrare/io/vi.o (.data); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.data); - build/u/src/libultra/io/viswapcontext.o (.data); - build/u/src/libultra/io/spgetstat.o (.data); - build/u/src/libultra/io/spsetstat.o (.data); - build/u/src/libultra/io/spsetpc.o (.data); - build/u/src/libultra/io/sprawdma.o (.data); - build/u/src/libultra/io/sp.o (.data); - build/u/src/libultra/io/dp.o (.data); - build/u/src/libultra/os/probetlb.o (.data); - build/u/src/libultra/audio/syndelete.o (.data); - build/u/src/libultra/io/ai.o (.data); - build/u/src/libultrare/audio/drvrNew.o (.data); - build/u/src/libultra/audio/synallocfx.o (.data); - build/u/src/libultra/audio/mainbus.o (.data); - build/u/src/libultra/audio/load.o (.data); - build/u/src/libultra/audio/resample.o (.data); - build/u/src/libultrare/audio/env.o (.data); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.data); - build/u/src/libultra/audio/save.o (.data); - build/u/src/libultra/os/jammesg.o (.data); - build/u/src/libultra/io/pigetcmdq.o (.data); - build/u/src/libultra/gu/cosf.o (.data); /*edited*/ - build/u/src/libultra/gu/sinf.o (.data); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.data); - build/u/src/libultra/audio/seqplayer.o (.data); - build/u/src/libultra/audio/synstartvoiceparam.o (.data); - build/u/src/libultra/audio/copy.o (.data); - build/u/src/libultra/io/piacs.o (.data); - build/u/src/libultra/libc/xlitob.o (.data); - build/u/src/libultra/libc/xldtob.o (.data); - build/u/src/libultrare/io/epirawdma.o (.data); - build/u/src/libultrare/io/devmgr.o (.data); - build/u/src/libultra/io/contpfs.o (.data); - build/u/src/libultra/io/si.o (.data); - build/u/src/libultra/gu/normalize.o (.data); - build/u/src/libultra/gu/sqrtf.o (.data); - build/u/src/libultrare/io/leodiskinit.o (.data); - build/u/src/libultra/os/setcompare.o (.data); - build/u/src/libultra/audio/filter.o (.data); - build/u/src/libultrare/audio/reverb.o (.data); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.data); /*edited*/ - build/u/src/libultra/audio/seq.o (.data); - build/u/src/libultra/audio/synsetpriority.o (.data); - build/u/src/libultra/libc/ldiv.o (.data); - build/u/src/libultra/os/resetglobalintmask.o (.data); - build/u/src/libultrare/io/epirawwrite.o (.data); - build/u/src/libultra/io/vimodentsclan1.o (.data); - build/u/src/libultrare/io/vimodepallan1.o (.data); - build/u/src/libultrare/ultra80069080.o (.data); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.data);*/ - - build/u/src/aspboot.o (.rodata); - build/u/src/boot.o (.rodata); - build/u/src/init.o (.rodata); - build/u/src/sched.o (.rodata); - build/u/src/osMapTLB.o (.rodata); - build/u/src/tlb_manage.o (.rodata); - build/u/src/tlb_random.o (.rodata); - build/u/src/tlb_resolve.o (.rodata); - build/u/src/tlb_hardwire.o (.rodata); - build/u/src/audi.o (.rodata); - build/u/src/speed_graph.o (.rodata); - build/u/src/fr.o (.rodata); - build/u/src/deb.o (.rodata); - build/u/src/fault.o (.rodata); - /*deb_print may be part of fault per pd beta (.rodata);*/ - build/u/src/deb_print.o (.rodata); - build/u/src/getra.o (.rodata); - build/u/src/ramrom.o (.rodata); - build/u/src/boss.o (.rodata); - build/u/src/music.o (.rodata); - build/u/src/snd.o (.rodata); - build/u/src/memp.o (.rodata); - build/u/src/mema.o (.rodata); - build/u/src/random.o (.rodata); - build/u/src/token.o (.rodata); - build/u/src/str.o (.rodata); - build/u/src/sprintf.o (.rodata); - build/u/src/pi.o (.rodata); - build/u/src/vi.o (.rodata); - build/u/src/debugmenu.o (.rodata); - build/u/src/joy.o (.rodata); - build/u/src/motor.o (.rodata); - build/u/src/rmon.o (.rodata); - - /*build/u/src/libultra/osPiRawStartDma.o (.rodata);*/ - build/u/src/libultra/io/pirawdma.o (.rodata); - build/u/src/libultra/io/pigetstat.o (.rodata); - build/u/src/libultrare/os/initialize.o (.rodata); - build/u/src/libultra/os/writebackdcacheall.o (.rodata); - build/u/src/libultra/os/invalicache.o (.rodata); - build/u/src/libultra/os/unmaptlb.o (.rodata); - build/u/src/libultra/os/getfpccsr.o (.rodata); - build/u/src/libultra/os/setfpccsr.o (.rodata); - build/u/src/libultra/os/createthread.o (.rodata); - build/u/src/libultra/os/startthread.o (.rodata); - build/u/src/libultra/os/createmesgqueue.o (.rodata); - build/u/src/libultra/os/parameters.o (.rodata); - build/u/src/libultra/os/stopthread.o (.rodata); - build/u/src/libultra/os/setthreadpri.o (.rodata); - build/u/src/libultra/os/getcount.o (.rodata); - build/u/src/libultrare/io/vimgr.o (.rodata); - build/u/src/libultrare/io/vitbl.o (.rodata); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.rodata); - build/u/src/libultra/io/visetevent.o (.rodata); - build/u/src/libultra/os/setintmask.o (.rodata); - build/u/src/libultra/os/recvmesg.o (.rodata); - build/u/src/libultra/os/sendmesg.o (.rodata); - build/u/src/libultra/io/visetmode.o (.rodata); - build/u/src/libultra/io/visetxscale.o (.rodata); - build/u/src/libultra/io/visetyscale.o (.rodata); - build/u/src/libultra/io/virepeatline.o (.rodata); - build/u/src/libultra/io/viblack.o (.rodata); - build/u/src/libultra/io/sptaskyielded.o (.rodata); - build/u/src/libultra/io/dpctr.o (.rodata); - build/u/src/libultra/io/vigetcurrframebuf.o (.rodata); - build/u/src/libultra/io/vigetnextframebuf.o (.rodata); - build/u/src/libultra/io/viswapbuf.o (.rodata); - build/u/src/libultra/io/dpsetstat.o (.rodata); - build/u/src/libultrare/io/sptask.o (.rodata); - build/u/src/libultra/io/dpsetnextbuf.o (.rodata); - build/u/src/libultra/io/sptaskyield.o (.rodata); - build/u/src/libultra/os/gettlbhi.o (.rodata); - build/u/src/libultra/os/virtualtophysical.o (.rodata); - build/u/src/libultra/io/aisetfreq.o (.rodata); - build/u/src/libultra/audio/sl.o (.rodata); - build/u/src/libultra/audio/heapalloc.o (.rodata); - build/u/src/libultra/os/gettime.o (.rodata); - build/u/src/libultra/libc/ll.o (.rodata); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.rodata); - build/u/src/libultra/io/aigetlen.o (.rodata); - build/u/src/libultra/audio/synthesizer.o (.rodata); - build/u/src/libultra/io/pidma.o (.rodata); - build/u/src/libultra/io/visetspecial.o (.rodata); - build/u/src/libultra/libc/bcopy.o (.rodata); - build/u/src/libultra/gu/perspective.o (.rodata); - build/u/src/libultra/gu/mtxutil.o (.rodata); - build/u/src/libultra/os/getcurrfaultthread.o (.rodata); - build/u/src/libultra/os/exception.o (.rodata); /*edited*/ - build/u/src/libultra/os/thread.o (.rodata); - build/u/src/libultra/os/yieldthread.o (.rodata); - build/u/src/libultra/os/invaldcache.o (.rodata); - build/u/src/libultra/os/writebackdcache.o (.rodata); - build/u/src/libultra/os/settimer.o (.rodata); - build/u/src/libultra/audio/heapinit.o (.rodata); - build/u/src/libultra/audio/bnkf.o (.rodata); - build/u/src/libultra/audio/csplayer.o (.rodata); - build/u/src/libultra/audio/seqpsetbank.o (.rodata); - build/u/src/libultra/audio/cspgetstate.o (.rodata); - build/u/src/libultra/audio/cseq.o (.rodata); - build/u/src/libultra/audio/cspsetseq.o (.rodata); - build/u/src/libultra/audio/cspplay.o (.rodata); - build/u/src/libultra/audio/cspstop.o (.rodata); - build/u/src/libultra/audio/cspsetvol.o (.rodata); - build/u/src/libultra/audio/event.o (.rodata); - build/u/src/libultra/audio/synaddplayer.o (.rodata); - build/u/src/libultra/audio/synallocvoice.o (.rodata); - build/u/src/libultra/audio/synsetvol.o (.rodata); - build/u/src/libultra/audio/synstartvoice.o (.rodata); - build/u/src/libultra/audio/synsetpan.o (.rodata); - build/u/src/libultra/audio/synsetpitch.o (.rodata); - build/u/src/libultra/audio/synsetfxmix.o (.rodata); - build/u/src/libultra/audio/synstopvoice.o (.rodata); - build/u/src/libultra/audio/synfreevoice.o (.rodata); - build/u/src/libultra/audio/cents2ratio.o (.rodata); - build/u/src/libultra/io/piread.o (.rodata); - build/u/src/libultra/libc/string.o (.rodata); - build/u/src/libultrare/libc/xprintf.o (.rodata); - build/u/src/libultrare/io/pimgr.o (.rodata); - build/u/src/libultrare/io/pfsinit.o (.rodata); - build/u/src/libultrare/io/controller.o (.rodata); - build/u/src/libultra/io/contquery.o (.rodata); - build/u/src/libultrare/io/contreaddata.o (.rodata); - build/u/src/libultrare/io/conteepprobe.o (.rodata); - build/u/src/libultrare/io/conteepread.o (.rodata); - build/u/src/libultrare/io/conteepwrite.o (.rodata); - build/u/src/libultrare/io/conteeplongread.o (.rodata); - build/u/src/libultrare/io/conteeplongwrite.o (.rodata); - build/u/src/libultrare/io/pfsisplug.o (.rodata); - build/u/src/libultra/io/siacs.o (.rodata); - build/u/src/libultra/io/sirawdma.o (.rodata); - build/u/src/libultra/io/crc.o (.rodata); - build/u/src/libultrare/io/contramwrite.o (.rodata); - build/u/src/libultrare/io/contramread.o (.rodata); - build/u/src/libultra/gu/align.o (.rodata); - build/u/src/libultra/gu/ortho.o (.rodata); - build/u/src/libultra/gu/coss.o (.rodata); - build/u/src/libultra/gu/sins.o (.rodata); - build/u/src/libultra/gu/translate.o (.rodata); - build/u/src/libultra/libc/bcmp.o (.rodata); - build/u/src/libultra/gu/scale.o (.rodata); - build/u/src/libultra/gu/lookatref.o (.rodata); - build/u/src/libultra/gu/lookat.o (.rodata); - build/u/src/libultra/gu/rotate.o (.rodata); - build/u/src/libultra/libc/llcvt.o (.rodata); /*edited*/ - build/u/src/libultra/os/setsr.o (.rodata); - build/u/src/libultra/os/getsr.o (.rodata); - build/u/src/libultra/io/sirawread.o (.rodata); - build/u/src/libultra/io/sirawwrite.o (.rodata); - build/u/src/libultra/io/pirawread.o (.rodata); - build/u/src/libultra/libc/bzero.o (.rodata); - build/u/src/libultra/os/sethwinterrupt.o (.rodata); - build/u/src/libultrare/io/leointerrupt.o (.rodata); - build/u/src/libultra/os/interrupt.o (.rodata); - build/u/src/libultra/os/timerintr.o (.rodata); - build/u/src/libultra/os/kdebugserver.o (.rodata); - build/u/src/libultra/os/getthreadpri.o (.rodata); - build/u/src/libultrare/io/vi.o (.rodata); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.rodata); - build/u/src/libultra/io/viswapcontext.o (.rodata); - build/u/src/libultra/io/spgetstat.o (.rodata); - build/u/src/libultra/io/spsetstat.o (.rodata); - build/u/src/libultra/io/spsetpc.o (.rodata); - build/u/src/libultra/io/sprawdma.o (.rodata); - build/u/src/libultra/io/sp.o (.rodata); - build/u/src/libultra/io/dp.o (.rodata); - build/u/src/libultra/os/probetlb.o (.rodata); - build/u/src/libultra/audio/syndelete.o (.rodata); - build/u/src/libultra/io/ai.o (.rodata); - build/u/src/libultrare/audio/drvrNew.o (.rodata); - build/u/src/libultra/audio/synallocfx.o (.rodata); - build/u/src/libultra/audio/mainbus.o (.rodata); - build/u/src/libultra/audio/load.o (.rodata); - build/u/src/libultra/audio/resample.o (.rodata); - build/u/src/libultrare/audio/env.o (.rodata); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.rodata); - build/u/src/libultra/audio/save.o (.rodata); - build/u/src/libultra/os/jammesg.o (.rodata); - build/u/src/libultra/io/pigetcmdq.o (.rodata); - build/u/src/libultra/gu/cosf.o (.rodata); /*edited*/ - build/u/src/libultra/gu/sinf.o (.rodata); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.rodata); - build/u/src/libultra/audio/seqplayer.o (.rodata); - build/u/src/libultra/audio/synstartvoiceparam.o (.rodata); - build/u/src/libultra/audio/copy.o (.rodata); - build/u/src/libultra/io/piacs.o (.rodata); - build/u/src/libultra/libc/xlitob.o (.rodata); - build/u/src/libultra/libc/xldtob.o (.rodata); - build/u/src/libultrare/io/epirawdma.o (.rodata); - build/u/src/libultrare/io/devmgr.o (.rodata); - build/u/src/libultra/io/contpfs.o (.rodata); - build/u/src/libultra/io/si.o (.rodata); - build/u/src/libultra/gu/normalize.o (.rodata); - build/u/src/libultra/gu/sqrtf.o (.rodata); - build/u/src/libultrare/io/leodiskinit.o (.rodata); - build/u/src/libultra/os/setcompare.o (.rodata); - build/u/src/libultra/audio/filter.o (.rodata); - build/u/src/libultrare/audio/reverb.o (.rodata); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.rodata); /*edited*/ - build/u/src/libultra/audio/seq.o (.rodata); - build/u/src/libultra/audio/synsetpriority.o (.rodata); - build/u/src/libultra/libc/ldiv.o (.rodata); - build/u/src/libultra/os/resetglobalintmask.o (.rodata); - build/u/src/libultrare/io/epirawwrite.o (.rodata); - build/u/src/libultra/io/vimodentsclan1.o (.rodata); - build/u/src/libultrare/io/vimodepallan1.o (.rodata); - build/u/src/libultrare/ultra80069080.o (.rodata); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.rodata);*/ - - build/u/src/game/initgamedata.o (.data); - build/u/src/game/initweaponanigroups.o (.data); - build/u/src/game/initactorpropstuff.o (.data); - build/u/src/game/initnull_0009D0.o (.data); - build/u/src/game/initunk_0009E0.o (.data); - build/u/src/game/initanitable.o (.data); - build/u/src/game/initplayergaitobject.o (.data); - build/u/src/game/setguscale.o (.data); - build/u/src/game/initnull_000BC0.o (.data); - build/u/src/game/initimages.o (.data); - build/u/src/game/initintromatrices.o (.data); - build/u/src/game/initmenus.o (.data); - build/u/src/game/initguards.o (.data); - build/u/src/game/deb_loadallmodels.o (.data); - build/u/src/game/initobjects.o (.data); - build/u/src/game/prop.o (.data); - build/u/src/game/objective.o (.data); - build/u/src/game/ejectedcartridges.o (.data); - build/u/src/game/initBondDATA.o (.data); - build/u/src/game/initunk_005450.o (.data); - build/u/src/game/initunk_005520.o (.data); - build/u/src/game/bondview_r.o (.data); - build/u/src/game/inititemslots.o (.data); - build/u/src/game/initBondDATAdefaults.o (.data); - build/u/src/game/initpathtablesomething.o (.data); - build/u/src/game/initpathtablelinks.o (.data); - build/u/src/game/initexplosioncasing.o (.data); - build/u/src/game/alloc_window_pieces.o (.data); - build/u/src/game/initunk_007290.o (.data); - build/u/src/game/initcheattext.o (.data); - build/u/src/game/initmttex.o (.data); - build/u/src/game/cleanup_guard_data.o (.data); - build/u/src/game/cleanup_object_sounds.o (.data); - build/u/src/game/cleanup_alarms.o (.data); - build/u/src/game/cleanup_objects.o (.data); - build/u/src/game/cleanup_objectives.o (.data); - build/u/src/game/cleanupSFXRelated.o (.data); - build/u/src/game/playerstats_007770.o (.data); - build/u/src/game/cleanexplosions.o (.data); - build/u/src/game/cleanwindowpieces.o (.data); - build/u/src/game/null_007970.o (.data); - build/u/src/game/cleanplayersound.o (.data); - build/u/src/game/title.o (.data); - build/u/src/game/front.o (.data); - build/u/src/game/unk_01B0E0.o (.data); - build/u/src/game/unk_01B240.o (.data); - build/u/src/game/unk_01BAE0.o (.data); - build/u/src/game/blood_animation.o (.data); - build/u/src/game/blood_decrypt.o (.data); - build/u/src/game/file.o (.data); - build/u/src/game/file2.o (.data); - build/u/src/game/chr.o (.data); - build/u/src/game/chr_b.o (.data); - build/u/src/game/chrlv.o (.data); - build/u/src/game/chrai.o (.data); - build/u/src/game/chrprop.o (.data); - build/u/src/game/chrobjhandler.o (.data); - build/u/src/game/loadobjectmodel.o (.data); - build/u/src/game/objective_status.o (.data); - build/u/src/game/objective_status2.o (.data); - build/u/src/game/math_sincos.o (.data); - build/u/src/game/matrixmath.o (.data); - build/u/src/game/math_unk_05A9E0.o (.data); - build/u/src/game/math_atan2f.o (.data); - build/u/src/game/math_asinacos.o (.data); - build/u/src/game/math_asinfacosf.o (.data); - build/u/src/game/matrixmath_misc.o (.data); - build/u/src/game/quaternion.o (.data); - build/u/src/game/math_floor.o (.data); - build/u/src/game/math_ceil.o (.data); - build/u/src/game/gun.o (.data); - build/u/src/game/bondwalk2.o (.data); - build/u/src/game/objecthandler.o (.data); - build/u/src/game/objecthandler_1.o (.data); - build/u/src/game/objecthandler_2.o (.data); - build/u/src/game/othermodemicrocode.o (.data); - build/u/src/game/bondview.o (.data); - build/u/src/game/bondinv.o (.data); - build/u/src/game/bondhead.o (.data); - build/u/src/game/padhalllv.o (.data); - build/u/src/game/debugmenu_08FE00.o (.data); - build/u/src/game/debugmenu_handler.o (.data); - build/u/src/game/unk_091080.o (.data); - build/u/src/game/chraidata.o (.data); - build/u/src/game/pobjdata.o (.data); - build/u/src/game/gobjdata.o (.data); - build/u/src/game/gobjdata2.o (.data); - build/u/src/game/cobjdata.o (.data); - build/u/src/game/cheat_buttons.o (.data); - build/u/src/game/unk_092890.o (.data); - build/u/src/game/unk_092E50.o (.data); - build/u/src/game/player.o (.data); - build/u/src/game/player_2.o (.data); - build/u/src/game/crc.o (.data); - build/u/src/game/chrObjRandom.o (.data); - build/u/src/game/unk_09B7A0.o (.data); - build/u/src/game/explosions.o (.data); - build/u/src/game/unk_0A1DA0.o (.data); - build/u/src/game/watch.o (.data); - build/u/src/game/textrelated.o (.data); - build/u/src/game/stan.o (.data); - build/u/src/game/unk_0B3200.o (.data); - build/u/src/game/bg.o (.data); - build/u/src/game/bg2.o (.data); - build/u/src/game/fog.o (.data); - build/u/src/game/lightfixture.o (.data); - build/u/src/game/unk_0BC530.o (.data); - build/u/src/game/ob.o (.data); - build/u/src/game/dyn.o (.data); - build/u/src/game/lvl.o (.data); - build/u/src/game/ramromreplay.o (.data); - build/u/src/game/unk_0C0A70.o (.data); - build/u/src/game/mp_music.o (.data); - build/u/src/game/lvl_text.o (.data); - build/u/src/game/mp_watch.o (.data); - build/u/src/game/radar.o (.data); - build/u/src/game/mp_weapon.o (.data); - build/u/src/game/image.o (.data); - build/u/src/game/image_bank.o (.data); - build/u/src/game/unk_0CC4C0.o (.data); - build/u/src/game/decompress.o (.data); - build/u/src/game/zlib.o (.data); - build/u/src/game/rsp.o (.data); - build/u/src/game/indy_comms.o (.data); - build/u/src/game/indy_commands.o (.data); - build/u/src/game/game_debug.o (.data); - build/u/src/game/compiletime.o (.data); - build/u/src/game/unk_0D1AC0.o (.data); - build/u/src/game/viewport.o (.data); - build/u/src/game/music_0D2720.o (.data); - build/u/src/game/spectrum.o (.data); - - build/u/src/game/initgamedata.o (.rodata); - build/u/src/game/initweaponanigroups.o (.rodata); - build/u/src/game/initactorpropstuff.o (.rodata); - build/u/src/game/initnull_0009D0.o (.rodata); - build/u/src/game/initunk_0009E0.o (.rodata); - build/u/src/game/initanitable.o (.rodata); - build/u/src/game/initplayergaitobject.o (.rodata); - build/u/src/game/setguscale.o (.rodata); - build/u/src/game/initnull_000BC0.o (.rodata); - build/u/src/game/initimages.o (.rodata); - build/u/src/game/initintromatrices.o (.rodata); - build/u/src/game/initmenus.o (.rodata); - build/u/src/game/initguards.o (.rodata); - build/u/src/game/deb_loadallmodels.o (.rodata); - build/u/src/game/initobjects.o (.rodata); - build/u/src/game/prop.o (.rodata); - build/u/src/game/objective.o (.rodata); - build/u/src/game/ejectedcartridges.o (.rodata); - build/u/src/game/initBondDATA.o (.rodata); - build/u/src/game/initunk_005450.o (.rodata); - build/u/src/game/initunk_005520.o (.rodata); - build/u/src/game/bondview_r.o (.rodata); - build/u/src/game/inititemslots.o (.rodata); - build/u/src/game/initBondDATAdefaults.o (.rodata); - build/u/src/game/initpathtablesomething.o (.rodata); - build/u/src/game/initpathtablelinks.o (.rodata); - build/u/src/game/initexplosioncasing.o (.rodata); - build/u/src/game/alloc_window_pieces.o (.rodata); - build/u/src/game/initunk_007290.o (.rodata); - build/u/src/game/initcheattext.o (.rodata); - build/u/src/game/initmttex.o (.rodata); - build/u/src/game/cleanup_guard_data.o (.rodata); - build/u/src/game/cleanup_object_sounds.o (.rodata); - build/u/src/game/cleanup_alarms.o (.rodata); - build/u/src/game/cleanup_objects.o (.rodata); - build/u/src/game/cleanup_objectives.o (.rodata); - build/u/src/game/cleanupSFXRelated.o (.rodata); - build/u/src/game/playerstats_007770.o (.rodata); - build/u/src/game/cleanexplosions.o (.rodata); - build/u/src/game/cleanwindowpieces.o (.rodata); - build/u/src/game/null_007970.o (.rodata); - build/u/src/game/cleanplayersound.o (.rodata); - build/u/src/game/title.o (.rodata); - build/u/src/game/front.o (.rodata); - build/u/src/game/unk_01B0E0.o (.rodata); - build/u/src/game/unk_01B240.o (.rodata); - build/u/src/game/unk_01BAE0.o (.rodata); - build/u/src/game/blood_animation.o (.rodata); - build/u/src/game/blood_decrypt.o (.rodata); - build/u/src/game/file.o (.rodata); - build/u/src/game/file2.o (.rodata); - build/u/src/game/chr.o (.rodata); - build/u/src/game/chr_b.o (.rodata); - build/u/src/game/chrlv.o (.rodata); - build/u/src/game/chrai.o (.rodata); - build/u/src/game/chrprop.o (.rodata); - build/u/src/game/chrobjhandler.o (.rodata); - build/u/src/game/loadobjectmodel.o (.rodata); - build/u/src/game/objective_status.o (.rodata); - build/u/src/game/objective_status2.o (.rodata); - build/u/src/game/math_sincos.o (.rodata); - build/u/src/game/matrixmath.o (.rodata); - build/u/src/game/math_unk_05A9E0.o (.rodata); - build/u/src/game/math_atan2f.o (.rodata); - build/u/src/game/math_asinacos.o (.rodata); - build/u/src/game/math_asinfacosf.o (.rodata); - build/u/src/game/matrixmath_misc.o (.rodata); - build/u/src/game/quaternion.o (.rodata); - build/u/src/game/math_floor.o (.rodata); - build/u/src/game/math_ceil.o (.rodata); - build/u/src/game/gun.o (.rodata); - build/u/src/game/bondwalk2.o (.rodata); - build/u/src/game/objecthandler.o (.rodata); - build/u/src/game/objecthandler_1.o (.rodata); - build/u/src/game/objecthandler_2.o (.rodata); - build/u/src/game/othermodemicrocode.o (.rodata); - build/u/src/game/bondview.o (.rodata); - build/u/src/game/bondinv.o (.rodata); - build/u/src/game/bondhead.o (.rodata); - build/u/src/game/padhalllv.o (.rodata); - build/u/src/game/debugmenu_08FE00.o (.rodata); - build/u/src/game/debugmenu_handler.o (.rodata); - build/u/src/game/unk_091080.o (.rodata); - build/u/src/game/chraidata.o (.rodata); - build/u/src/game/pobjdata.o (.rodata); - build/u/src/game/gobjdata.o (.rodata); - build/u/src/game/gobjdata2.o (.rodata); - build/u/src/game/cobjdata.o (.rodata); - build/u/src/game/cheat_buttons.o (.rodata); - build/u/src/game/unk_092890.o (.rodata); - build/u/src/game/unk_092E50.o (.rodata); - build/u/src/game/player.o (.rodata); - build/u/src/game/player_2.o (.rodata); - build/u/src/game/crc.o (.rodata); - build/u/src/game/chrObjRandom.o (.rodata); - build/u/src/game/unk_09B7A0.o (.rodata); - build/u/src/game/explosions.o (.rodata); - build/u/src/game/unk_0A1DA0.o (.rodata); - build/u/src/game/watch.o (.rodata); - build/u/src/game/textrelated.o (.rodata); - build/u/src/game/stan.o (.rodata); - build/u/src/game/unk_0B3200.o (.rodata); - build/u/src/game/bg.o (.rodata); - build/u/src/game/bg2.o (.rodata); - build/u/src/game/fog.o (.rodata); - build/u/src/game/lightfixture.o (.rodata); - build/u/src/game/unk_0BC530.o (.rodata); - build/u/src/game/ob.o (.rodata); - build/u/src/game/dyn.o (.rodata); - build/u/src/game/lvl.o (.rodata); - build/u/src/game/ramromreplay.o (.rodata); - build/u/src/game/unk_0C0A70.o (.rodata); - build/u/src/game/mp_music.o (.rodata); - build/u/src/game/lvl_text.o (.rodata); - build/u/src/game/mp_watch.o (.rodata); - build/u/src/game/radar.o (.rodata); - build/u/src/game/mp_weapon.o (.rodata); - build/u/src/game/image.o (.rodata); - build/u/src/game/image_bank.o (.rodata); - build/u/src/game/unk_0CC4C0.o (.rodata); - build/u/src/game/decompress.o (.rodata); - build/u/src/game/zlib.o (.rodata); - build/u/src/game/rsp.o (.rodata); - build/u/src/game/indy_comms.o (.rodata); - build/u/src/game/indy_commands.o (.rodata); - build/u/src/game/game_debug.o (.rodata); - build/u/src/game/compiletime.o (.rodata); - build/u/src/game/unk_0D1AC0.o (.rodata); - build/u/src/game/viewport.o (.rodata); - build/u/src/game/music_0D2720.o (.rodata); - build/u/src/game/spectrum.o (.rodata); - - build/u/src/gspboot.o (.data); - build/u/src/aspboot.o (.data); - } - _csegmentSegmentEnd = ADDR(.csegment) + SIZEOF(.csegment); - _csegmentSegmentRomEnd = _csegmentSegmentRomStart + SIZEOF(.csegment); - - __dataSegmentVaddrEnd = _csegmentSegmentRomEnd; - - _bssSegmentStart = ADDR(.bss); - .bss (NOLOAD) : - { - build/u/src/boot.o (.bss); - build/u/src/init.o (.bss); - build/u/src/sched.o (.bss); - build/u/src/osMapTLB.o (.bss); - build/u/src/tlb_manage.o (.bss); - build/u/src/tlb_random.o (.bss); - build/u/src/tlb_resolve.o (.bss); - build/u/src/audi.o (.bss); - build/u/src/speed_graph.o (.bss); - build/u/src/fr.o (.bss); - build/u/src/deb.o (.bss); - build/u/src/fault.o (.bss); - /*deb_print may be part of fault per pd beta (.bss);*/ - build/u/src/deb_print.o (.bss); - build/u/src/getra.o (.bss); - build/u/src/ramrom.o (.bss); - build/u/src/boss.o (.bss); - build/u/src/music.o (.bss); - build/u/src/snd.o (.bss); - build/u/src/memp.o (.bss); - build/u/src/mema.o (.bss); - build/u/src/random.o (.bss); - build/u/src/token.o (.bss); - build/u/src/str.o (.bss); - build/u/src/sprintf.o (.bss); - build/u/src/pi.o (.bss); - build/u/src/vi.o (.bss); - build/u/src/debugmenu.o (.bss); - build/u/src/joy.o (.bss); - build/u/src/motor.o (.bss); - build/u/src/rmon.o (.bss); - - /*build/u/src/libultra/osPiRawStartDma.o (.bss);*/ - build/u/src/libultra/io/pirawdma.o (.bss); - build/u/src/libultra/io/pigetstat.o (.bss); - build/u/src/libultrare/os/initialize.o (.bss); - build/u/src/libultra/os/writebackdcacheall.o (.bss); - build/u/src/libultra/os/invalicache.o (.bss); - build/u/src/libultra/os/unmaptlb.o (.bss); - build/u/src/libultra/os/getfpccsr.o (.bss); - build/u/src/libultra/os/setfpccsr.o (.bss); - build/u/src/libultra/os/createthread.o (.bss); - build/u/src/libultra/os/startthread.o (.bss); - build/u/src/libultra/os/createmesgqueue.o (.bss); - build/u/src/libultra/os/parameters.o (.bss); - build/u/src/libultra/os/stopthread.o (.bss); - build/u/src/libultra/os/setthreadpri.o (.bss); - build/u/src/libultra/os/getcount.o (.bss); - build/u/src/libultrare/io/vimgr.o (.bss); - build/u/src/libultrare/io/vitbl.o (.bss); /*edited*/ - build/u/src/libultra/os/seteventmesg.o (.bss); - build/u/src/libultra/io/visetevent.o (.bss); - build/u/src/libultra/os/setintmask.o (.bss); - build/u/src/libultra/os/recvmesg.o (.bss); - build/u/src/libultra/os/sendmesg.o (.bss); - build/u/src/libultra/io/visetmode.o (.bss); - build/u/src/libultra/io/visetxscale.o (.bss); - build/u/src/libultra/io/visetyscale.o (.bss); - build/u/src/libultra/io/virepeatline.o (.bss); - build/u/src/libultra/io/viblack.o (.bss); - build/u/src/libultra/io/sptaskyielded.o (.bss); - build/u/src/libultra/io/dpctr.o (.bss); - build/u/src/libultra/io/vigetcurrframebuf.o (.bss); - build/u/src/libultra/io/vigetnextframebuf.o (.bss); - build/u/src/libultra/io/viswapbuf.o (.bss); - build/u/src/libultra/io/dpsetstat.o (.bss); - build/u/src/libultrare/io/sptask.o (.bss); - build/u/src/libultra/io/dpsetnextbuf.o (.bss); - build/u/src/libultra/io/sptaskyield.o (.bss); - build/u/src/libultra/os/gettlbhi.o (.bss); - build/u/src/libultra/os/virtualtophysical.o (.bss); - build/u/src/libultra/io/aisetfreq.o (.bss); - build/u/src/libultra/audio/sl.o (.bss); - build/u/src/libultra/audio/heapalloc.o (.bss); - build/u/src/libultra/os/gettime.o (.bss); - build/u/src/libultra/libc/ll.o (.bss); /*edited*/ - build/u/src/libultrare/io/aisetnextbuf.o (.bss); - build/u/src/libultra/io/aigetlen.o (.bss); - build/u/src/libultra/audio/synthesizer.o (.bss); - build/u/src/libultra/io/pidma.o (.bss); - build/u/src/libultra/io/visetspecial.o (.bss); - build/u/src/libultra/libc/bcopy.o (.bss); - build/u/src/libultra/gu/perspective.o (.bss); - build/u/src/libultra/gu/mtxutil.o (.bss); - build/u/src/libultra/os/getcurrfaultthread.o (.bss); - build/u/src/libultra/os/exception.o (.bss); /*edited*/ - build/u/src/libultra/os/thread.o (.bss); - build/u/src/libultra/os/yieldthread.o (.bss); - build/u/src/libultra/os/invaldcache.o (.bss); - build/u/src/libultra/os/writebackdcache.o (.bss); - build/u/src/libultra/os/settimer.o (.bss); - build/u/src/libultra/audio/heapinit.o (.bss); - build/u/src/libultra/audio/bnkf.o (.bss); - build/u/src/libultra/audio/csplayer.o (.bss); - build/u/src/libultra/audio/seqpsetbank.o (.bss); - build/u/src/libultra/audio/cspgetstate.o (.bss); - build/u/src/libultra/audio/cseq.o (.bss); - build/u/src/libultra/audio/cspsetseq.o (.bss); - build/u/src/libultra/audio/cspplay.o (.bss); - build/u/src/libultra/audio/cspstop.o (.bss); - build/u/src/libultra/audio/cspsetvol.o (.bss); - build/u/src/libultra/audio/event.o (.bss); - build/u/src/libultra/audio/synaddplayer.o (.bss); - build/u/src/libultra/audio/synallocvoice.o (.bss); - build/u/src/libultra/audio/synsetvol.o (.bss); - build/u/src/libultra/audio/synstartvoice.o (.bss); - build/u/src/libultra/audio/synsetpan.o (.bss); - build/u/src/libultra/audio/synsetpitch.o (.bss); - build/u/src/libultra/audio/synsetfxmix.o (.bss); - build/u/src/libultra/audio/synstopvoice.o (.bss); - build/u/src/libultra/audio/synfreevoice.o (.bss); - build/u/src/libultra/audio/cents2ratio.o (.bss); - build/u/src/libultra/io/piread.o (.bss); - build/u/src/libultra/libc/string.o (.bss); - build/u/src/libultrare/libc/xprintf.o (.bss); - build/u/src/libultrare/io/pimgr.o (.bss); - build/u/src/libultrare/io/pfsinit.o (.bss); - build/u/src/libultrare/io/controller.o (.bss); - build/u/src/libultra/io/contquery.o (.bss); - build/u/src/libultrare/io/contreaddata.o (.bss); - build/u/src/libultrare/io/conteepprobe.o (.bss); - build/u/src/libultrare/io/conteepread.o (.bss); - build/u/src/libultrare/io/conteepwrite.o (.bss); - build/u/src/libultrare/io/conteeplongread.o (.bss); - build/u/src/libultrare/io/conteeplongwrite.o (.bss); - build/u/src/libultrare/io/pfsisplug.o (.bss); - build/u/src/libultra/io/siacs.o (.bss); - build/u/src/libultra/io/sirawdma.o (.bss); - build/u/src/libultra/io/crc.o (.bss); - build/u/src/libultrare/io/contramwrite.o (.bss); - build/u/src/libultrare/io/contramread.o (.bss); - build/u/src/libultra/gu/align.o (.bss); - build/u/src/libultra/gu/ortho.o (.bss); - build/u/src/libultra/gu/coss.o (.bss); - build/u/src/libultra/gu/sins.o (.bss); - build/u/src/libultra/gu/translate.o (.bss); - build/u/src/libultra/libc/bcmp.o (.bss); - build/u/src/libultra/gu/scale.o (.bss); - build/u/src/libultra/gu/lookatref.o (.bss); - build/u/src/libultra/gu/lookat.o (.bss); - build/u/src/libultra/gu/rotate.o (.bss); - build/u/src/libultra/libc/llcvt.o (.bss); /*edited*/ - build/u/src/libultra/os/setsr.o (.bss); - build/u/src/libultra/os/getsr.o (.bss); - build/u/src/libultra/io/sirawread.o (.bss); - build/u/src/libultra/io/sirawwrite.o (.bss); - build/u/src/libultra/io/pirawread.o (.bss); - build/u/src/libultra/libc/bzero.o (.bss); - build/u/src/libultra/os/sethwinterrupt.o (.bss); - build/u/src/libultrare/io/leointerrupt.o (.bss); - build/u/src/libultra/os/interrupt.o (.bss); - build/u/src/libultra/os/timerintr.o (.bss); - build/u/src/libultra/os/kdebugserver.o (.bss); - build/u/src/libultra/os/getthreadpri.o (.bss); - build/u/src/libultrare/io/vi.o (.bss); /*edited*/ - build/u/src/libultra/io/vigetcurrcontext.o (.bss); - build/u/src/libultra/io/viswapcontext.o (.bss); - build/u/src/libultra/io/spgetstat.o (.bss); - build/u/src/libultra/io/spsetstat.o (.bss); - build/u/src/libultra/io/spsetpc.o (.bss); - build/u/src/libultra/io/sprawdma.o (.bss); - build/u/src/libultra/io/sp.o (.bss); - build/u/src/libultra/io/dp.o (.bss); - build/u/src/libultra/os/probetlb.o (.bss); - build/u/src/libultra/audio/syndelete.o (.bss); - build/u/src/libultra/io/ai.o (.bss); - build/u/src/libultrare/audio/drvrNew.o (.bss); - build/u/src/libultra/audio/synallocfx.o (.bss); - build/u/src/libultra/audio/mainbus.o (.bss); - build/u/src/libultra/audio/load.o (.bss); - build/u/src/libultra/audio/resample.o (.bss); - build/u/src/libultrare/audio/env.o (.bss); /*edited*/ - build/u/src/libultra/audio/auxbus.o (.bss); - build/u/src/libultra/audio/save.o (.bss); - build/u/src/libultra/os/jammesg.o (.bss); - build/u/src/libultra/io/pigetcmdq.o (.bss); - build/u/src/libultra/gu/cosf.o (.bss); /*edited*/ - build/u/src/libultra/gu/sinf.o (.bss); /*edited*/ - build/u/src/libultrare/os/destroythread.o (.bss); - build/u/src/libultra/audio/seqplayer.o (.bss); - build/u/src/libultra/audio/synstartvoiceparam.o (.bss); - build/u/src/libultra/audio/copy.o (.bss); - build/u/src/libultra/io/piacs.o (.bss); - build/u/src/libultra/libc/xlitob.o (.bss); - build/u/src/libultra/libc/xldtob.o (.bss); - build/u/src/libultrare/io/epirawdma.o (.bss); - build/u/src/libultrare/io/devmgr.o (.bss); - build/u/src/libultra/io/contpfs.o (.bss); - build/u/src/libultra/io/si.o (.bss); - build/u/src/libultra/gu/normalize.o (.bss); - build/u/src/libultra/gu/sqrtf.o (.bss); - build/u/src/libultrare/io/leodiskinit.o (.bss); - build/u/src/libultra/os/setcompare.o (.bss); - build/u/src/libultra/audio/filter.o (.bss); - build/u/src/libultrare/audio/reverb.o (.bss); /*edited*/ - build/u/src/libultra/gu/libm_vals.o (.bss); /*edited*/ - build/u/src/libultra/audio/seq.o (.bss); - build/u/src/libultra/audio/synsetpriority.o (.bss); - build/u/src/libultra/libc/ldiv.o (.bss); - build/u/src/libultra/os/resetglobalintmask.o (.bss); - build/u/src/libultrare/io/epirawwrite.o (.bss); - build/u/src/libultra/io/vimodentsclan1.o (.bss); - build/u/src/libultrare/io/vimodepallan1.o (.bss); - build/u/src/libultrare/ultra80069080.o (.bss); /*edited*/ - /*build/u/src/libultra/libultra.a:libultra.o (.bss);*/ - - build/u/src/game/initgamedata.o (.bss); - build/u/src/game/initweaponanigroups.o (.bss); - build/u/src/game/initactorpropstuff.o (.bss); - build/u/src/game/initnull_0009D0.o (.bss); - build/u/src/game/initunk_0009E0.o (.bss); - build/u/src/game/initanitable.o (.bss); - build/u/src/game/initplayergaitobject.o (.bss); - build/u/src/game/setguscale.o (.bss); - build/u/src/game/initnull_000BC0.o (.bss); - build/u/src/game/initimages.o (.bss); - build/u/src/game/initintromatrices.o (.bss); - build/u/src/game/initmenus.o (.bss); - build/u/src/game/initguards.o (.bss); - build/u/src/game/deb_loadallmodels.o (.bss); - build/u/src/game/initobjects.o (.bss); - build/u/src/game/prop.o (.bss); - build/u/src/game/objective.o (.bss); - build/u/src/game/ejectedcartridges.o (.bss); - build/u/src/game/initBondDATA.o (.bss); - build/u/src/game/initunk_005450.o (.bss); - build/u/src/game/initunk_005520.o (.bss); - build/u/src/game/bondview_r.o (.bss); - build/u/src/game/inititemslots.o (.bss); - build/u/src/game/initBondDATAdefaults.o (.bss); - build/u/src/game/initpathtablesomething.o (.bss); - build/u/src/game/initpathtablelinks.o (.bss); - build/u/src/game/initexplosioncasing.o (.bss); - build/u/src/game/alloc_window_pieces.o (.bss); - build/u/src/game/initunk_007290.o (.bss); - build/u/src/game/initcheattext.o (.bss); - build/u/src/game/initmttex.o (.bss); - build/u/src/game/cleanup_guard_data.o (.bss); - build/u/src/game/cleanup_object_sounds.o (.bss); - build/u/src/game/cleanup_alarms.o (.bss); - build/u/src/game/cleanup_objects.o (.bss); - build/u/src/game/cleanup_objectives.o (.bss); - build/u/src/game/cleanupSFXRelated.o (.bss); - build/u/src/game/playerstats_007770.o (.bss); - build/u/src/game/cleanexplosions.o (.bss); - build/u/src/game/cleanwindowpieces.o (.bss); - build/u/src/game/null_007970.o (.bss); - build/u/src/game/cleanplayersound.o (.bss); - build/u/src/game/title.o (.bss); - build/u/src/game/front.o (.bss); - build/u/src/game/unk_01B0E0.o (.bss); - build/u/src/game/unk_01B240.o (.bss); - build/u/src/game/unk_01BAE0.o (.bss); - build/u/src/game/blood_animation.o (.bss); - build/u/src/game/blood_decrypt.o (.bss); - build/u/src/game/file.o (.bss); - build/u/src/game/file2.o (.bss); - build/u/src/game/chr.o (.bss); - build/u/src/game/chr_b.o (.bss); - build/u/src/game/chrlv.o (.bss); - build/u/src/game/chrai.o (.bss); - build/u/src/game/chrprop.o (.bss); - build/u/src/game/chrobjhandler.o (.bss); - build/u/src/game/loadobjectmodel.o (.bss); - build/u/src/game/objective_status.o (.bss); - build/u/src/game/objective_status2.o (.bss); - build/u/src/game/math_sincos.o (.bss); - build/u/src/game/matrixmath.o (.bss); - build/u/src/game/math_unk_05A9E0.o (.bss); - build/u/src/game/math_atan2f.o (.bss); - build/u/src/game/math_asinacos.o (.bss); - build/u/src/game/math_asinfacosf.o (.bss); - build/u/src/game/matrixmath_misc.o (.bss); - build/u/src/game/quaternion.o (.bss); - build/u/src/game/math_floor.o (.bss); - build/u/src/game/math_ceil.o (.bss); - build/u/src/game/gun.o (.bss); - build/u/src/game/bondwalk2.o (.bss); - build/u/src/game/objecthandler.o (.bss); - build/u/src/game/objecthandler_1.o (.bss); - build/u/src/game/objecthandler_2.o (.bss); - build/u/src/game/othermodemicrocode.o (.bss); - build/u/src/game/bondview.o (.bss); - build/u/src/game/bondinv.o (.bss); - build/u/src/game/bondhead.o (.bss); - build/u/src/game/padhalllv.o (.bss); - build/u/src/game/debugmenu_08FE00.o (.bss); - build/u/src/game/debugmenu_handler.o (.bss); - build/u/src/game/unk_091080.o (.bss); - build/u/src/game/chraidata.o (.bss); - build/u/src/game/pobjdata.o (.bss); - build/u/src/game/gobjdata.o (.bss); - build/u/src/game/gobjdata2.o (.bss); - build/u/src/game/cobjdata.o (.bss); - build/u/src/game/cheat_buttons.o (.bss); - build/u/src/game/unk_092890.o (.bss); - build/u/src/game/unk_092E50.o (.bss); - build/u/src/game/player.o (.bss); - build/u/src/game/player_2.o (.bss); - build/u/src/game/crc.o (.bss); - build/u/src/game/chrObjRandom.o (.bss); - build/u/src/game/unk_09B7A0.o (.bss); - build/u/src/game/explosions.o (.bss); - build/u/src/game/unk_0A1DA0.o (.bss); - build/u/src/game/watch.o (.bss); - build/u/src/game/textrelated.o (.bss); - build/u/src/game/stan.o (.bss); - build/u/src/game/unk_0B3200.o (.bss); - build/u/src/game/bg.o (.bss); - build/u/src/game/bg2.o (.bss); - build/u/src/game/fog.o (.bss); - build/u/src/game/lightfixture.o (.bss); - build/u/src/game/unk_0BC530.o (.bss); - build/u/src/game/ob.o (.bss); - build/u/src/game/dyn.o (.bss); - build/u/src/game/lvl.o (.bss); - build/u/src/game/ramromreplay.o (.bss); - build/u/src/game/unk_0C0A70.o (.bss); - build/u/src/game/mp_music.o (.bss); - build/u/src/game/lvl_text.o (.bss); - build/u/src/game/mp_watch.o (.bss); - build/u/src/game/radar.o (.bss); - build/u/src/game/mp_weapon.o (.bss); - build/u/src/game/image.o (.bss); - build/u/src/game/image_bank.o (.bss); - build/u/src/game/unk_0CC4C0.o (.bss); - build/u/src/game/decompress.o (.bss); - build/u/src/game/zlib.o (.bss); - build/u/src/game/rsp.o (.bss); - build/u/src/game/indy_comms.o (.bss); - build/u/src/game/indy_commands.o (.bss); - build/u/src/game/game_debug.o (.bss); - build/u/src/game/compiletime.o (.bss); - build/u/src/game/unk_0D1AC0.o (.bss); - build/u/src/game/viewport.o (.bss); - build/u/src/game/music_0D2720.o (.bss); - build/u/src/game/spectrum.o (.bss); - } - _bssSegmentEnd = ADDR(.bss) + SIZEOF(.bss); - _bssSegmentSize = SIZEOF(.bss); - - _roombufSegmentStart = ADDR(.roombuf); - .roombuf (NOLOAD) : - { - build/u/src/game/room_model_buffer.o (.bss); - } - _roombufSegmentEnd = ADDR(.roombuf) + SIZEOF(.roombuf); - - _decompbufSegmentStart = ADDR(.decompbuf); - .decompbuf 0x80300000 : - { - build/u/src/decompressbuffer.o (.bss); - } - _decompbufSegmentEnd = ADDR(.decompbuf) + SIZEOF(.decompbuf); - - _stacksSegmentStart = ADDR(.stacks); - .stacks (NOLOAD) : - { - build/u/src/stacks.o (.bss); - } - _stacksSegmentEnd = ADDR(.stacks) + SIZEOF(.stacks); - - _cfbSegmentStart = ADDR(.cfb); - .cfb (NOLOAD) : - { - build/u/src/cfb.o (.bss); - } - _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); - - /*move em to end, out of the way*/ - /DISCARD/ : { - * (.MIPS.abiflags); - * (.musicdecompressed); - * (.options); - * (.gnu.attributes); - * (.pdr); - * (.mdebug); - * (.gptab.bss); - * (.gptab.data); - * (.reginfo); - - -} -} diff --git a/imagelist.u.csv b/imagelist.u.csv index 74c53b53..f0b290fb 100644 --- a/imagelist.u.csv +++ b/imagelist.u.csv @@ -1,2699 +1,2699 @@ -9403888,1876,assets/images/split/image1.bin,0,1 -9405764,362,assets/images/split/image2.bin,0,1 -9406126,2420,assets/images/split/image3.bin,0,1 -9408546,907,assets/images/split/image4.bin,0,1 -9409453,339,assets/images/split/image5.bin,0,1 -9409792,606,assets/images/split/image6.bin,0,1 -9410398,958,assets/images/split/image7.bin,0,1 -9411356,26,assets/images/split/image8.bin,0,1 -9411382,26,assets/images/split/image9.bin,0,1 -9411408,895,assets/images/split/image10.bin,0,1 -9412303,913,assets/images/split/image11.bin,0,1 -9413216,224,assets/images/split/image12.bin,0,1 -9413440,932,assets/images/split/image13.bin,0,1 -9414372,1187,assets/images/split/image14.bin,0,1 -9415559,1143,assets/images/split/image15.bin,0,1 -9416702,1137,assets/images/split/image16.bin,0,1 -9417839,1196,assets/images/split/image17.bin,0,1 -9419035,986,assets/images/split/image18.bin,0,1 -9420021,26,assets/images/split/image19.bin,0,1 -9420047,26,assets/images/split/image20.bin,0,1 -9420073,1561,assets/images/split/image21.bin,0,1 -9421634,309,assets/images/split/image22.bin,0,1 -9421943,1525,assets/images/split/image23.bin,0,1 -9423468,863,assets/images/split/image24.bin,0,1 -9424331,848,assets/images/split/image25.bin,0,1 -9425179,1548,assets/images/split/image26.bin,0,1 -9426727,197,assets/images/split/image27.bin,0,1 -9426924,166,assets/images/split/image28.bin,0,1 -9427090,181,assets/images/split/image29.bin,0,1 -9427271,989,assets/images/split/image30.bin,0,1 -9428260,1020,assets/images/split/image31.bin,0,1 -9429280,776,assets/images/split/image32.bin,0,1 -9430056,774,assets/images/split/image33.bin,0,1 -9430830,1610,assets/images/split/image34.bin,0,1 -9432440,1484,assets/images/split/image35.bin,0,1 -9433924,1696,assets/images/split/image36.bin,0,1 -9435620,1734,assets/images/split/image37.bin,0,1 -9437354,1003,assets/images/split/image38.bin,0,1 -9438357,275,assets/images/split/image39.bin,0,1 -9438632,551,assets/images/split/image40.bin,0,1 -9439183,537,assets/images/split/image41.bin,0,1 -9439720,555,assets/images/split/image42.bin,0,1 -9440275,546,assets/images/split/image43.bin,0,1 -9440821,1341,assets/images/split/image44.bin,0,1 -9442162,1372,assets/images/split/image45.bin,0,1 -9443534,1007,assets/images/split/image46.bin,0,1 -9444541,410,assets/images/split/image47.bin,0,1 -9444951,1108,assets/images/split/image48.bin,0,1 -9446059,1726,assets/images/split/image49.bin,0,1 -9447785,636,assets/images/split/image50.bin,0,1 -9448421,1510,assets/images/split/image51.bin,0,1 -9449931,824,assets/images/split/image52.bin,0,1 -9450755,1232,assets/images/split/image53.bin,0,1 -9451987,1440,assets/images/split/image54.bin,0,1 -9453427,1170,assets/images/split/image55.bin,0,1 -9454597,792,assets/images/split/image56.bin,0,1 -9455389,270,assets/images/split/image57.bin,0,1 -9455659,241,assets/images/split/image58.bin,0,1 -9455900,281,assets/images/split/image59.bin,0,1 -9456181,678,assets/images/split/image60.bin,0,1 -9456859,416,assets/images/split/image61.bin,0,1 -9457275,34,assets/images/split/image62.bin,0,1 -9457309,276,assets/images/split/image63.bin,0,1 -9457585,156,assets/images/split/image64.bin,0,1 -9457741,933,assets/images/split/image65.bin,0,1 -9458674,888,assets/images/split/image66.bin,0,1 -9459562,836,assets/images/split/image67.bin,0,1 -9460398,247,assets/images/split/image68.bin,0,1 -9460645,923,assets/images/split/image69.bin,0,1 -9461568,429,assets/images/split/image70.bin,0,1 -9461997,484,assets/images/split/image71.bin,0,1 -9462481,725,assets/images/split/image72.bin,0,1 -9463206,198,assets/images/split/image73.bin,0,1 -9463404,199,assets/images/split/image74.bin,0,1 -9463603,691,assets/images/split/image75.bin,0,1 -9464294,418,assets/images/split/image76.bin,0,1 -9464712,400,assets/images/split/image77.bin,0,1 -9465112,1505,assets/images/split/image78.bin,0,1 -9466617,687,assets/images/split/image79.bin,0,1 -9467304,222,assets/images/split/image80.bin,0,1 -9467526,500,assets/images/split/image81.bin,0,1 -9468026,1508,assets/images/split/image82.bin,0,1 -9469534,441,assets/images/split/image83.bin,0,1 -9469975,1523,assets/images/split/image84.bin,0,1 -9471498,551,assets/images/split/image85.bin,0,1 -9472049,727,assets/images/split/image86.bin,0,1 -9472776,942,assets/images/split/image87.bin,0,1 -9473718,761,assets/images/split/image88.bin,0,1 -9474479,3114,assets/images/split/image89.bin,0,1 -9477593,3069,assets/images/split/image90.bin,0,1 -9480662,3121,assets/images/split/image91.bin,0,1 -9483783,2840,assets/images/split/image92.bin,0,1 -9486623,3014,assets/images/split/image93.bin,0,1 -9489637,3176,assets/images/split/image94.bin,0,1 -9492813,3237,assets/images/split/image95.bin,0,1 -9496050,3028,assets/images/split/image96.bin,0,1 -9499078,2941,assets/images/split/image97.bin,0,1 -9502019,3032,assets/images/split/image98.bin,0,1 -9505051,3137,assets/images/split/image99.bin,0,1 -9508188,2975,assets/images/split/image100.bin,0,1 -9511163,3046,assets/images/split/image101.bin,0,1 -9514209,3310,assets/images/split/image102.bin,0,1 -9517519,3334,assets/images/split/image103.bin,0,1 -9520853,2977,assets/images/split/image104.bin,0,1 -9523830,2855,assets/images/split/image105.bin,0,1 -9526685,3352,assets/images/split/image106.bin,0,1 -9530037,3274,assets/images/split/image107.bin,0,1 -9533311,2650,assets/images/split/image108.bin,0,1 -9535961,2166,assets/images/split/image109.bin,0,1 -9538127,2218,assets/images/split/image110.bin,0,1 -9540345,2255,assets/images/split/image111.bin,0,1 -9542600,1940,assets/images/split/image112.bin,0,1 -9544540,2682,assets/images/split/image113.bin,0,1 -9547222,3218,assets/images/split/image114.bin,0,1 -9550440,2954,assets/images/split/image115.bin,0,1 -9553394,2643,assets/images/split/image116.bin,0,1 -9556037,3056,assets/images/split/image117.bin,0,1 -9559093,3340,assets/images/split/image118.bin,0,1 -9562433,3276,assets/images/split/image119.bin,0,1 -9565709,2552,assets/images/split/image120.bin,0,1 -9568261,3265,assets/images/split/image121.bin,0,1 -9571526,3387,assets/images/split/image122.bin,0,1 -9574913,3437,assets/images/split/image123.bin,0,1 -9578350,3056,assets/images/split/image124.bin,0,1 -9581406,2432,assets/images/split/image125.bin,0,1 -9583838,2961,assets/images/split/image126.bin,0,1 -9586799,3233,assets/images/split/image127.bin,0,1 -9590032,2690,assets/images/split/image128.bin,0,1 -9592722,3194,assets/images/split/image129.bin,0,1 -9595916,3403,assets/images/split/image130.bin,0,1 -9599319,3461,assets/images/split/image131.bin,0,1 -9602780,3190,assets/images/split/image132.bin,0,1 -9605970,2985,assets/images/split/image133.bin,0,1 -9608955,3418,assets/images/split/image134.bin,0,1 -9612373,3408,assets/images/split/image135.bin,0,1 -9615781,3125,assets/images/split/image136.bin,0,1 -9618906,2701,assets/images/split/image137.bin,0,1 -9621607,3366,assets/images/split/image138.bin,0,1 -9624973,2853,assets/images/split/image139.bin,0,1 -9627826,2201,assets/images/split/image140.bin,0,1 -9630027,1143,assets/images/split/image141.bin,0,1 -9631170,1157,assets/images/split/image142.bin,0,1 -9632327,1110,assets/images/split/image143.bin,0,1 -9633437,2112,assets/images/split/image144.bin,0,1 -9635549,2122,assets/images/split/image145.bin,0,1 -9637671,2155,assets/images/split/image146.bin,0,1 -9639826,1986,assets/images/split/image147.bin,0,1 -9641812,530,assets/images/split/image148.bin,0,1 -9642342,587,assets/images/split/image149.bin,0,1 -9642929,329,assets/images/split/image150.bin,0,1 -9643258,293,assets/images/split/image151.bin,0,1 -9643551,784,assets/images/split/image152.bin,0,1 -9644335,311,assets/images/split/image153.bin,0,1 -9644646,295,assets/images/split/image154.bin,0,1 -9644941,315,assets/images/split/image155.bin,0,1 -9645256,705,assets/images/split/image156.bin,0,1 -9645961,956,assets/images/split/image157.bin,0,1 -9646917,1422,assets/images/split/image158.bin,0,1 -9648339,326,assets/images/split/image159.bin,0,1 -9648665,315,assets/images/split/image160.bin,0,1 -9648980,563,assets/images/split/image161.bin,0,1 -9649543,737,assets/images/split/image162.bin,0,1 -9650280,796,assets/images/split/image163.bin,0,1 -9651076,779,assets/images/split/image164.bin,0,1 -9651855,831,assets/images/split/image165.bin,0,1 -9652686,757,assets/images/split/image166.bin,0,1 -9653443,830,assets/images/split/image167.bin,0,1 -9654273,782,assets/images/split/image168.bin,0,1 -9655055,851,assets/images/split/image169.bin,0,1 -9655906,1143,assets/images/split/image170.bin,0,1 -9657049,761,assets/images/split/image171.bin,0,1 -9657810,603,assets/images/split/image172.bin,0,1 -9658413,186,assets/images/split/image173.bin,0,1 -9658599,678,assets/images/split/image174.bin,0,1 -9659277,938,assets/images/split/image175.bin,0,1 -9660215,572,assets/images/split/image176.bin,0,1 -9660787,2014,assets/images/split/image177.bin,0,1 -9662801,625,assets/images/split/image178.bin,0,1 -9663426,755,assets/images/split/image179.bin,0,1 -9664181,788,assets/images/split/image180.bin,0,1 -9664969,296,assets/images/split/image181.bin,0,1 -9665265,505,assets/images/split/image182.bin,0,1 -9665770,691,assets/images/split/image183.bin,0,1 -9666461,519,assets/images/split/image184.bin,0,1 -9666980,603,assets/images/split/image185.bin,0,1 -9667583,1353,assets/images/split/image186.bin,0,1 -9668936,1099,assets/images/split/image187.bin,0,1 -9670035,895,assets/images/split/image188.bin,0,1 -9670930,1568,assets/images/split/image189.bin,0,1 -9672498,1107,assets/images/split/image190.bin,0,1 -9673605,1388,assets/images/split/image191.bin,0,1 -9674993,1431,assets/images/split/image192.bin,0,1 -9676424,1302,assets/images/split/image193.bin,0,1 -9677726,648,assets/images/split/image194.bin,0,1 -9678374,712,assets/images/split/image195.bin,0,1 -9679086,1431,assets/images/split/image196.bin,0,1 -9680517,1149,assets/images/split/image197.bin,0,1 -9681666,671,assets/images/split/image198.bin,0,1 -9682337,675,assets/images/split/image199.bin,0,1 -9683012,330,assets/images/split/image200.bin,0,1 -9683342,1210,assets/images/split/image201.bin,0,1 -9684552,1018,assets/images/split/image202.bin,0,1 -9685570,1327,assets/images/split/image203.bin,0,1 -9686897,1120,assets/images/split/image204.bin,0,1 -9688017,1377,assets/images/split/image205.bin,0,1 -9689394,1271,assets/images/split/image206.bin,0,1 -9690665,1033,assets/images/split/image207.bin,0,1 -9691698,1603,assets/images/split/image208.bin,0,1 -9693301,2859,assets/images/split/image209.bin,0,1 -9696160,3134,assets/images/split/image210.bin,0,1 -9699294,1400,assets/images/split/image211.bin,0,1 -9700694,207,assets/images/split/image212.bin,0,1 -9700901,656,assets/images/split/image213.bin,0,1 -9701557,1238,assets/images/split/image214.bin,0,1 -9702795,224,assets/images/split/image215.bin,0,1 -9703019,622,assets/images/split/image216.bin,0,1 -9703641,334,assets/images/split/image217.bin,0,1 -9703975,480,assets/images/split/image218.bin,0,1 -9704455,281,assets/images/split/image219.bin,0,1 -9704736,984,assets/images/split/image220.bin,0,1 -9705720,1033,assets/images/split/image221.bin,0,1 -9706753,1010,assets/images/split/image222.bin,0,1 -9707763,1033,assets/images/split/image223.bin,0,1 -9708796,1090,assets/images/split/image224.bin,0,1 -9709886,1085,assets/images/split/image225.bin,0,1 -9710971,1014,assets/images/split/image226.bin,0,1 -9711985,691,assets/images/split/image227.bin,0,1 -9712676,895,assets/images/split/image228.bin,0,1 -9713571,617,assets/images/split/image229.bin,0,1 -9714188,553,assets/images/split/image230.bin,0,1 -9714741,899,assets/images/split/image231.bin,0,1 -9715640,1498,assets/images/split/image232.bin,0,1 -9717138,833,assets/images/split/image233.bin,0,1 -9717971,302,assets/images/split/image234.bin,0,1 -9718273,1364,assets/images/split/image235.bin,0,1 -9719637,925,assets/images/split/image236.bin,0,1 -9720562,1174,assets/images/split/image237.bin,0,1 -9721736,1257,assets/images/split/image238.bin,0,1 -9722993,967,assets/images/split/image239.bin,0,1 -9723960,991,assets/images/split/image240.bin,0,1 -9724951,1024,assets/images/split/image241.bin,0,1 -9725975,581,assets/images/split/image242.bin,0,1 -9726556,502,assets/images/split/image243.bin,0,1 -9727058,351,assets/images/split/image244.bin,0,1 -9727409,1144,assets/images/split/image245.bin,0,1 -9728553,525,assets/images/split/image246.bin,0,1 -9729078,738,assets/images/split/image247.bin,0,1 -9729816,199,assets/images/split/image248.bin,0,1 -9730015,180,assets/images/split/image249.bin,0,1 -9730195,152,assets/images/split/image250.bin,0,1 -9730347,199,assets/images/split/image251.bin,0,1 -9730546,809,assets/images/split/image252.bin,0,1 -9731355,673,assets/images/split/image253.bin,0,1 -9732028,717,assets/images/split/image254.bin,0,1 -9732745,1032,assets/images/split/image255.bin,0,1 -9733777,1003,assets/images/split/image256.bin,0,1 -9734780,463,assets/images/split/image257.bin,0,1 -9735243,829,assets/images/split/image258.bin,0,1 -9736072,647,assets/images/split/image259.bin,0,1 -9736719,806,assets/images/split/image260.bin,0,1 -9737525,896,assets/images/split/image261.bin,0,1 -9738421,689,assets/images/split/image262.bin,0,1 -9739110,708,assets/images/split/image263.bin,0,1 -9739818,558,assets/images/split/image264.bin,0,1 -9740376,1412,assets/images/split/image265.bin,0,1 -9741788,424,assets/images/split/image266.bin,0,1 -9742212,79,assets/images/split/image267.bin,0,1 -9742291,1368,assets/images/split/image268.bin,0,1 -9743659,727,assets/images/split/image269.bin,0,1 -9744386,1410,assets/images/split/image270.bin,0,1 -9745796,694,assets/images/split/image271.bin,0,1 -9746490,1302,assets/images/split/image272.bin,0,1 -9747792,1248,assets/images/split/image273.bin,0,1 -9749040,1945,assets/images/split/image274.bin,0,1 -9750985,1920,assets/images/split/image275.bin,0,1 -9752905,2060,assets/images/split/image276.bin,0,1 -9754965,1959,assets/images/split/image277.bin,0,1 -9756924,1924,assets/images/split/image278.bin,0,1 -9758848,1715,assets/images/split/image279.bin,0,1 -9760563,666,assets/images/split/image280.bin,0,1 -9761229,905,assets/images/split/image281.bin,0,1 -9762134,750,assets/images/split/image282.bin,0,1 -9762884,799,assets/images/split/image283.bin,0,1 -9763683,802,assets/images/split/image284.bin,0,1 -9764485,1400,assets/images/split/image285.bin,0,1 -9765885,798,assets/images/split/image286.bin,0,1 -9766683,1064,assets/images/split/image287.bin,0,1 -9767747,1217,assets/images/split/image288.bin,0,1 -9768964,1145,assets/images/split/image289.bin,0,1 -9770109,1273,assets/images/split/image290.bin,0,1 -9771382,1163,assets/images/split/image291.bin,0,1 -9772545,991,assets/images/split/image292.bin,0,1 -9773536,1350,assets/images/split/image293.bin,0,1 -9774886,1328,assets/images/split/image294.bin,0,1 -9776214,1323,assets/images/split/image295.bin,0,1 -9777537,1007,assets/images/split/image296.bin,0,1 -9778544,1088,assets/images/split/image297.bin,0,1 -9779632,930,assets/images/split/image298.bin,0,1 -9780562,783,assets/images/split/image299.bin,0,1 -9781345,771,assets/images/split/image300.bin,0,1 -9782116,771,assets/images/split/image301.bin,0,1 -9782887,884,assets/images/split/image302.bin,0,1 -9783771,1333,assets/images/split/image303.bin,0,1 -9785104,639,assets/images/split/image304.bin,0,1 -9785743,200,assets/images/split/image305.bin,0,1 -9785943,573,assets/images/split/image306.bin,0,1 -9786516,687,assets/images/split/image307.bin,0,1 -9787203,1376,assets/images/split/image308.bin,0,1 -9788579,901,assets/images/split/image309.bin,0,1 -9789480,949,assets/images/split/image310.bin,0,1 -9790429,1351,assets/images/split/image311.bin,0,1 -9791780,815,assets/images/split/image312.bin,0,1 -9792595,904,assets/images/split/image313.bin,0,1 -9793499,636,assets/images/split/image314.bin,0,1 -9794135,636,assets/images/split/image315.bin,0,1 -9794771,581,assets/images/split/image316.bin,0,1 -9795352,581,assets/images/split/image317.bin,0,1 -9795933,582,assets/images/split/image318.bin,0,1 -9796515,678,assets/images/split/image319.bin,0,1 -9797193,321,assets/images/split/image320.bin,0,1 -9797514,536,assets/images/split/image321.bin,0,1 -9798050,1115,assets/images/split/image322.bin,0,1 -9799165,1515,assets/images/split/image323.bin,0,1 -9800680,1563,assets/images/split/image324.bin,0,1 -9802243,1581,assets/images/split/image325.bin,0,1 -9803824,1567,assets/images/split/image326.bin,0,1 -9805391,1601,assets/images/split/image327.bin,0,1 -9806992,1619,assets/images/split/image328.bin,0,1 -9808611,1525,assets/images/split/image329.bin,0,1 -9810136,836,assets/images/split/image330.bin,0,1 -9810972,902,assets/images/split/image331.bin,0,1 -9811874,921,assets/images/split/image332.bin,0,1 -9812795,864,assets/images/split/image333.bin,0,1 -9813659,353,assets/images/split/image334.bin,0,1 -9814012,282,assets/images/split/image335.bin,0,1 -9814294,307,assets/images/split/image336.bin,0,1 -9814601,298,assets/images/split/image337.bin,0,1 -9814899,840,assets/images/split/image338.bin,0,1 -9815739,1319,assets/images/split/image339.bin,0,1 -9817058,922,assets/images/split/image340.bin,0,1 -9817980,1006,assets/images/split/image341.bin,0,1 -9818986,984,assets/images/split/image342.bin,0,1 -9819970,1115,assets/images/split/image343.bin,0,1 -9821085,232,assets/images/split/image344.bin,0,1 -9821317,290,assets/images/split/image345.bin,0,1 -9821607,1037,assets/images/split/image346.bin,0,1 -9822644,993,assets/images/split/image347.bin,0,1 -9823637,193,assets/images/split/image348.bin,0,1 -9823830,271,assets/images/split/image349.bin,0,1 -9824101,770,assets/images/split/image350.bin,0,1 -9824871,533,assets/images/split/image351.bin,0,1 -9825404,213,assets/images/split/image352.bin,0,1 -9825617,818,assets/images/split/image353.bin,0,1 -9826435,456,assets/images/split/image354.bin,0,1 -9826891,168,assets/images/split/image355.bin,0,1 -9827059,906,assets/images/split/image356.bin,0,1 -9827965,704,assets/images/split/image357.bin,0,1 -9828669,1098,assets/images/split/image358.bin,0,1 -9829767,987,assets/images/split/image359.bin,0,1 -9830754,861,assets/images/split/image360.bin,0,1 -9831615,845,assets/images/split/image361.bin,0,1 -9832460,1334,assets/images/split/image362.bin,0,1 -9833794,960,assets/images/split/image363.bin,0,1 -9834754,1224,assets/images/split/image364.bin,0,1 -9835978,973,assets/images/split/image365.bin,0,1 -9836951,532,assets/images/split/image366.bin,0,1 -9837483,756,assets/images/split/image367.bin,0,1 -9838239,950,assets/images/split/image368.bin,0,1 -9839189,990,assets/images/split/image369.bin,0,1 -9840179,622,assets/images/split/image370.bin,0,1 -9840801,622,assets/images/split/image371.bin,0,1 -9841423,1375,assets/images/split/image372.bin,0,1 -9842798,1418,assets/images/split/image373.bin,0,1 -9844216,823,assets/images/split/image374.bin,0,1 -9845039,1023,assets/images/split/image375.bin,0,1 -9846062,949,assets/images/split/image376.bin,0,1 -9847011,949,assets/images/split/image377.bin,0,1 -9847960,818,assets/images/split/image378.bin,0,1 -9848778,1020,assets/images/split/image379.bin,0,1 -9849798,964,assets/images/split/image380.bin,0,1 -9850762,1094,assets/images/split/image381.bin,0,1 -9851856,1018,assets/images/split/image382.bin,0,1 -9852874,609,assets/images/split/image383.bin,0,1 -9853483,1333,assets/images/split/image384.bin,0,1 -9854816,1389,assets/images/split/image385.bin,0,1 -9856205,1103,assets/images/split/image386.bin,0,1 -9857308,2429,assets/images/split/image387.bin,0,1 -9859737,2306,assets/images/split/image388.bin,0,1 -9862043,2349,assets/images/split/image389.bin,0,1 -9864392,2324,assets/images/split/image390.bin,0,1 -9866716,2433,assets/images/split/image391.bin,0,1 -9869149,2302,assets/images/split/image392.bin,0,1 -9871451,2293,assets/images/split/image393.bin,0,1 -9873744,2168,assets/images/split/image394.bin,0,1 -9875912,545,assets/images/split/image395.bin,0,1 -9876457,1136,assets/images/split/image396.bin,0,1 -9877593,1318,assets/images/split/image397.bin,0,1 -9878911,1254,assets/images/split/image398.bin,0,1 -9880165,1061,assets/images/split/image399.bin,0,1 -9881226,859,assets/images/split/image400.bin,0,1 -9882085,1077,assets/images/split/image401.bin,0,1 -9883162,1081,assets/images/split/image402.bin,0,1 -9884243,828,assets/images/split/image403.bin,0,1 -9885071,780,assets/images/split/image404.bin,0,1 -9885851,767,assets/images/split/image405.bin,0,1 -9886618,691,assets/images/split/image406.bin,0,1 -9887309,1321,assets/images/split/image407.bin,0,1 -9888630,845,assets/images/split/image408.bin,0,1 -9889475,525,assets/images/split/image409.bin,0,1 -9890000,925,assets/images/split/image410.bin,0,1 -9890925,753,assets/images/split/image411.bin,0,1 -9891678,435,assets/images/split/image412.bin,0,1 -9892113,526,assets/images/split/image413.bin,0,1 -9892639,363,assets/images/split/image414.bin,0,1 -9893002,519,assets/images/split/image415.bin,0,1 -9893521,399,assets/images/split/image416.bin,0,1 -9893920,463,assets/images/split/image417.bin,0,1 -9894383,447,assets/images/split/image418.bin,0,1 -9894830,1750,assets/images/split/image419.bin,0,1 -9896580,988,assets/images/split/image420.bin,0,1 -9897568,1760,assets/images/split/image421.bin,0,1 -9899328,547,assets/images/split/image422.bin,0,1 -9899875,483,assets/images/split/image423.bin,0,1 -9900358,344,assets/images/split/image424.bin,0,1 -9900702,385,assets/images/split/image425.bin,0,1 -9901087,1107,assets/images/split/image426.bin,0,1 -9902194,1374,assets/images/split/image427.bin,0,1 -9903568,1467,assets/images/split/image428.bin,0,1 -9905035,1317,assets/images/split/image429.bin,0,1 -9906352,1837,assets/images/split/image430.bin,0,1 -9908189,1214,assets/images/split/image431.bin,0,1 -9909403,755,assets/images/split/image432.bin,0,1 -9910158,1084,assets/images/split/image433.bin,0,1 -9911242,998,assets/images/split/image434.bin,0,1 -9912240,1579,assets/images/split/image435.bin,0,1 -9913819,797,assets/images/split/image436.bin,0,1 -9914616,768,assets/images/split/image437.bin,0,1 -9915384,1615,assets/images/split/image438.bin,0,1 -9916999,1527,assets/images/split/image439.bin,0,1 -9918526,1637,assets/images/split/image440.bin,0,1 -9920163,968,assets/images/split/image441.bin,0,1 -9921131,971,assets/images/split/image442.bin,0,1 -9922102,870,assets/images/split/image443.bin,0,1 -9922972,1718,assets/images/split/image444.bin,0,1 -9924690,1826,assets/images/split/image445.bin,0,1 -9926516,2215,assets/images/split/image446.bin,0,1 -9928731,2252,assets/images/split/image447.bin,0,1 -9930983,1008,assets/images/split/image448.bin,0,1 -9931991,827,assets/images/split/image449.bin,0,1 -9932818,580,assets/images/split/image450.bin,0,1 -9933398,512,assets/images/split/image451.bin,0,1 -9933910,503,assets/images/split/image452.bin,0,1 -9934413,1139,assets/images/split/image453.bin,0,1 -9935552,964,assets/images/split/image454.bin,0,1 -9936516,987,assets/images/split/image455.bin,0,1 -9937503,480,assets/images/split/image456.bin,0,1 -9937983,493,assets/images/split/image457.bin,0,1 -9938476,1325,assets/images/split/image458.bin,0,1 -9939801,1151,assets/images/split/image459.bin,0,1 -9940952,592,assets/images/split/image460.bin,0,1 -9941544,646,assets/images/split/image461.bin,0,1 -9942190,180,assets/images/split/image462.bin,0,1 -9942370,163,assets/images/split/image463.bin,0,1 -9942533,486,assets/images/split/image464.bin,0,1 -9943019,430,assets/images/split/image465.bin,0,1 -9943449,645,assets/images/split/image466.bin,0,1 -9944094,547,assets/images/split/image467.bin,0,1 -9944641,506,assets/images/split/image468.bin,0,1 -9945147,1954,assets/images/split/image469.bin,0,1 -9947101,1950,assets/images/split/image470.bin,0,1 -9949051,320,assets/images/split/image471.bin,0,1 -9949371,630,assets/images/split/image472.bin,0,1 -9950001,656,assets/images/split/image473.bin,0,1 -9950657,612,assets/images/split/image474.bin,0,1 -9951269,1156,assets/images/split/image475.bin,0,1 -9952425,966,assets/images/split/image476.bin,0,1 -9953391,835,assets/images/split/image477.bin,0,1 -9954226,827,assets/images/split/image478.bin,0,1 -9955053,809,assets/images/split/image479.bin,0,1 -9955862,973,assets/images/split/image480.bin,0,1 -9956835,321,assets/images/split/image481.bin,0,1 -9957156,1312,assets/images/split/image482.bin,0,1 -9958468,1139,assets/images/split/image483.bin,0,1 -9959607,1216,assets/images/split/image484.bin,0,1 -9960823,897,assets/images/split/image485.bin,0,1 -9961720,944,assets/images/split/image486.bin,0,1 -9962664,1010,assets/images/split/image487.bin,0,1 -9963674,1118,assets/images/split/image488.bin,0,1 -9964792,1168,assets/images/split/image489.bin,0,1 -9965960,937,assets/images/split/image490.bin,0,1 -9966897,923,assets/images/split/image491.bin,0,1 -9967820,866,assets/images/split/image492.bin,0,1 -9968686,680,assets/images/split/image493.bin,0,1 -9969366,1465,assets/images/split/image494.bin,0,1 -9970831,187,assets/images/split/image495.bin,0,1 -9971018,186,assets/images/split/image496.bin,0,1 -9971204,183,assets/images/split/image497.bin,0,1 -9971387,265,assets/images/split/image498.bin,0,1 -9971652,225,assets/images/split/image499.bin,0,1 -9971877,1182,assets/images/split/image500.bin,0,1 -9973059,1139,assets/images/split/image501.bin,0,1 -9974198,860,assets/images/split/image502.bin,0,1 -9975058,823,assets/images/split/image503.bin,0,1 -9975881,638,assets/images/split/image504.bin,0,1 -9976519,584,assets/images/split/image505.bin,0,1 -9977103,571,assets/images/split/image506.bin,0,1 -9977674,338,assets/images/split/image507.bin,0,1 -9978012,691,assets/images/split/image508.bin,0,1 -9978703,392,assets/images/split/image509.bin,0,1 -9979095,631,assets/images/split/image510.bin,0,1 -9979726,517,assets/images/split/image511.bin,0,1 -9980243,420,assets/images/split/image512.bin,0,1 -9980663,158,assets/images/split/image513.bin,0,1 -9980821,812,assets/images/split/image514.bin,0,1 -9981633,1199,assets/images/split/image515.bin,0,1 -9982832,266,assets/images/split/image516.bin,0,1 -9983098,312,assets/images/split/image517.bin,0,1 -9983410,319,assets/images/split/image518.bin,0,1 -9983729,1236,assets/images/split/image519.bin,0,1 -9984965,327,assets/images/split/image520.bin,0,1 -9985292,647,assets/images/split/image521.bin,0,1 -9985939,157,assets/images/split/image522.bin,0,1 -9986096,749,assets/images/split/image523.bin,0,1 -9986845,607,assets/images/split/image524.bin,0,1 -9987452,266,assets/images/split/image525.bin,0,1 -9987718,736,assets/images/split/image526.bin,0,1 -9988454,883,assets/images/split/image527.bin,0,1 -9989337,426,assets/images/split/image528.bin,0,1 -9989763,749,assets/images/split/image529.bin,0,1 -9990512,331,assets/images/split/image530.bin,0,1 -9990843,1156,assets/images/split/image531.bin,0,1 -9991999,746,assets/images/split/image532.bin,0,1 -9992745,69,assets/images/split/image533.bin,0,1 -9992814,484,assets/images/split/image534.bin,0,1 -9993298,964,assets/images/split/image535.bin,0,1 -9994262,1072,assets/images/split/image536.bin,0,1 -9995334,805,assets/images/split/image537.bin,0,1 -9996139,662,assets/images/split/image538.bin,0,1 -9996801,1175,assets/images/split/image539.bin,0,1 -9997976,828,assets/images/split/image540.bin,0,1 -9998804,687,assets/images/split/image541.bin,0,1 -9999491,249,assets/images/split/image542.bin,0,1 -9999740,1046,assets/images/split/image543.bin,0,1 -10000786,835,assets/images/split/image544.bin,0,1 -10001621,1516,assets/images/split/image545.bin,0,1 -10003137,1892,assets/images/split/image546.bin,0,1 -10005029,1902,assets/images/split/image547.bin,0,1 -10006931,1835,assets/images/split/image548.bin,0,1 -10008766,1068,assets/images/split/image549.bin,0,1 -10009834,968,assets/images/split/image550.bin,0,1 -10010802,1035,assets/images/split/image551.bin,0,1 -10011837,1767,assets/images/split/image552.bin,0,1 -10013604,1679,assets/images/split/image553.bin,0,1 -10015283,1538,assets/images/split/image554.bin,0,1 -10016821,1538,assets/images/split/image555.bin,0,1 -10018359,1525,assets/images/split/image556.bin,0,1 -10019884,1734,assets/images/split/image557.bin,0,1 -10021618,1529,assets/images/split/image558.bin,0,1 -10023147,1707,assets/images/split/image559.bin,0,1 -10024854,1896,assets/images/split/image560.bin,0,1 -10026750,1644,assets/images/split/image561.bin,0,1 -10028394,1581,assets/images/split/image562.bin,0,1 -10029975,1590,assets/images/split/image563.bin,0,1 -10031565,1537,assets/images/split/image564.bin,0,1 -10033102,1704,assets/images/split/image565.bin,0,1 -10034806,1695,assets/images/split/image566.bin,0,1 -10036501,1606,assets/images/split/image567.bin,0,1 -10038107,378,assets/images/split/image568.bin,0,1 -10038485,2029,assets/images/split/image569.bin,0,1 -10040514,1846,assets/images/split/image570.bin,0,1 -10042360,1903,assets/images/split/image571.bin,0,1 -10044263,2050,assets/images/split/image572.bin,0,1 -10046313,2028,assets/images/split/image573.bin,0,1 -10048341,1904,assets/images/split/image574.bin,0,1 -10050245,1793,assets/images/split/image575.bin,0,1 -10052038,2030,assets/images/split/image576.bin,0,1 -10054068,867,assets/images/split/image577.bin,0,1 -10054935,1214,assets/images/split/image578.bin,0,1 -10056149,1169,assets/images/split/image579.bin,0,1 -10057318,500,assets/images/split/image580.bin,0,1 -10057818,201,assets/images/split/image581.bin,0,1 -10058019,1534,assets/images/split/image582.bin,0,1 -10059553,1527,assets/images/split/image583.bin,0,1 -10061080,1548,assets/images/split/image584.bin,0,1 -10062628,1541,assets/images/split/image585.bin,0,1 -10064169,1039,assets/images/split/image586.bin,0,1 -10065208,1024,assets/images/split/image587.bin,0,1 -10066232,1122,assets/images/split/image588.bin,0,1 -10067354,1308,assets/images/split/image589.bin,0,1 -10068662,1245,assets/images/split/image590.bin,0,1 -10069907,1329,assets/images/split/image591.bin,0,1 -10071236,1196,assets/images/split/image592.bin,0,1 -10072432,1130,assets/images/split/image593.bin,0,1 -10073562,1427,assets/images/split/image594.bin,0,1 -10074989,891,assets/images/split/image595.bin,0,1 -10075880,1210,assets/images/split/image596.bin,0,1 -10077090,1422,assets/images/split/image597.bin,0,1 -10078512,433,assets/images/split/image598.bin,0,1 -10078945,1377,assets/images/split/image599.bin,0,1 -10080322,1619,assets/images/split/image600.bin,0,1 -10081941,1920,assets/images/split/image601.bin,0,1 -10083861,1617,assets/images/split/image602.bin,0,1 -10085478,481,assets/images/split/image603.bin,0,1 -10085959,1402,assets/images/split/image604.bin,0,1 -10087361,1317,assets/images/split/image605.bin,0,1 -10088678,1461,assets/images/split/image606.bin,0,1 -10090139,358,assets/images/split/image607.bin,0,1 -10090497,325,assets/images/split/image608.bin,0,1 -10090822,1694,assets/images/split/image609.bin,0,1 -10092516,2105,assets/images/split/image610.bin,0,1 -10094621,1404,assets/images/split/image611.bin,0,1 -10096025,2010,assets/images/split/image612.bin,0,1 -10098035,702,assets/images/split/image613.bin,0,1 -10098737,616,assets/images/split/image614.bin,0,1 -10099353,667,assets/images/split/image615.bin,0,1 -10100020,646,assets/images/split/image616.bin,0,1 -10100666,622,assets/images/split/image617.bin,0,1 -10101288,593,assets/images/split/image618.bin,0,1 -10101881,926,assets/images/split/image619.bin,0,1 -10102807,276,assets/images/split/image620.bin,0,1 -10103083,611,assets/images/split/image621.bin,0,1 -10103694,1432,assets/images/split/image622.bin,0,1 -10105126,1128,assets/images/split/image623.bin,0,1 -10106254,1146,assets/images/split/image624.bin,0,1 -10107400,293,assets/images/split/image625.bin,0,1 -10107693,446,assets/images/split/image626.bin,0,1 -10108139,267,assets/images/split/image627.bin,0,1 -10108406,328,assets/images/split/image628.bin,0,1 -10108734,320,assets/images/split/image629.bin,0,1 -10109054,328,assets/images/split/image630.bin,0,1 -10109382,1458,assets/images/split/image631.bin,0,1 -10110840,1000,assets/images/split/image632.bin,0,1 -10111840,621,assets/images/split/image633.bin,0,1 -10112461,961,assets/images/split/image634.bin,0,1 -10113422,973,assets/images/split/image635.bin,0,1 -10114395,85,assets/images/split/image636.bin,0,1 -10114480,612,assets/images/split/image637.bin,0,1 -10115092,870,assets/images/split/image638.bin,0,1 -10115962,447,assets/images/split/image639.bin,0,1 -10116409,1848,assets/images/split/image640.bin,0,1 -10118257,812,assets/images/split/image641.bin,0,1 -10119069,1363,assets/images/split/image642.bin,0,1 -10120432,908,assets/images/split/image643.bin,0,1 -10121340,301,assets/images/split/image644.bin,0,1 -10121641,726,assets/images/split/image645.bin,0,1 -10122367,445,assets/images/split/image646.bin,0,1 -10122812,1187,assets/images/split/image647.bin,0,1 -10123999,409,assets/images/split/image648.bin,0,1 -10124408,701,assets/images/split/image649.bin,0,1 -10125109,612,assets/images/split/image650.bin,0,1 -10125721,510,assets/images/split/image651.bin,0,1 -10126231,1260,assets/images/split/image652.bin,0,1 -10127491,620,assets/images/split/image653.bin,0,1 -10128111,587,assets/images/split/image654.bin,0,1 -10128698,837,assets/images/split/image655.bin,0,1 -10129535,889,assets/images/split/image656.bin,0,1 -10130424,164,assets/images/split/image657.bin,0,1 -10130588,171,assets/images/split/image658.bin,0,1 -10130759,85,assets/images/split/image659.bin,0,1 -10130844,1025,assets/images/split/image660.bin,0,1 -10131869,834,assets/images/split/image661.bin,0,1 -10132703,1241,assets/images/split/image662.bin,0,1 -10133944,1205,assets/images/split/image663.bin,0,1 -10135149,196,assets/images/split/image664.bin,0,1 -10135345,226,assets/images/split/image665.bin,0,1 -10135571,1511,assets/images/split/image666.bin,0,1 -10137082,1014,assets/images/split/image667.bin,0,1 -10138096,997,assets/images/split/image668.bin,0,1 -10139093,957,assets/images/split/image669.bin,0,1 -10140050,1084,assets/images/split/image670.bin,0,1 -10141134,841,assets/images/split/image671.bin,0,1 -10141975,1081,assets/images/split/image672.bin,0,1 -10143056,889,assets/images/split/image673.bin,0,1 -10143945,866,assets/images/split/image674.bin,0,1 -10144811,875,assets/images/split/image675.bin,0,1 -10145686,792,assets/images/split/image676.bin,0,1 -10146478,675,assets/images/split/image677.bin,0,1 -10147153,129,assets/images/split/image678.bin,0,1 -10147282,634,assets/images/split/image679.bin,0,1 -10147916,1258,assets/images/split/image680.bin,0,1 -10149174,1443,assets/images/split/image681.bin,0,1 -10150617,1408,assets/images/split/image682.bin,0,1 -10152025,1278,assets/images/split/image683.bin,0,1 -10153303,314,assets/images/split/image684.bin,0,1 -10153617,478,assets/images/split/image685.bin,0,1 -10154095,742,assets/images/split/image686.bin,0,1 -10154837,674,assets/images/split/image687.bin,0,1 -10155511,787,assets/images/split/image688.bin,0,1 -10156298,831,assets/images/split/image689.bin,0,1 -10157129,543,assets/images/split/image690.bin,0,1 -10157672,278,assets/images/split/image691.bin,0,1 -10157950,162,assets/images/split/image692.bin,0,1 -10158112,333,assets/images/split/image693.bin,0,1 -10158445,1101,assets/images/split/image694.bin,0,1 -10159546,593,assets/images/split/image695.bin,0,1 -10160139,508,assets/images/split/image696.bin,0,1 -10160647,529,assets/images/split/image697.bin,0,1 -10161176,452,assets/images/split/image698.bin,0,1 -10161628,388,assets/images/split/image699.bin,0,1 -10162016,543,assets/images/split/image700.bin,0,1 -10162559,343,assets/images/split/image701.bin,0,1 -10162902,828,assets/images/split/image702.bin,0,1 -10163730,138,assets/images/split/image703.bin,0,1 -10163868,525,assets/images/split/image704.bin,0,1 -10164393,520,assets/images/split/image705.bin,0,1 -10164913,884,assets/images/split/image706.bin,0,1 -10165797,662,assets/images/split/image707.bin,0,1 -10166459,498,assets/images/split/image708.bin,0,1 -10166957,351,assets/images/split/image709.bin,0,1 -10167308,1214,assets/images/split/image710.bin,0,1 -10168522,789,assets/images/split/image711.bin,0,1 -10169311,1242,assets/images/split/image712.bin,0,1 -10170553,589,assets/images/split/image713.bin,0,1 -10171142,1548,assets/images/split/image714.bin,0,1 -10172690,192,assets/images/split/image715.bin,0,1 -10172882,366,assets/images/split/image716.bin,0,1 -10173248,850,assets/images/split/image717.bin,0,1 -10174098,253,assets/images/split/image718.bin,0,1 -10174351,499,assets/images/split/image719.bin,0,1 -10174850,593,assets/images/split/image720.bin,0,1 -10175443,539,assets/images/split/image721.bin,0,1 -10175982,177,assets/images/split/image722.bin,0,1 -10176159,552,assets/images/split/image723.bin,0,1 -10176711,536,assets/images/split/image724.bin,0,1 -10177247,851,assets/images/split/image725.bin,0,1 -10178098,1062,assets/images/split/image726.bin,0,1 -10179160,453,assets/images/split/image727.bin,0,1 -10179613,921,assets/images/split/image728.bin,0,1 -10180534,1009,assets/images/split/image729.bin,0,1 -10181543,457,assets/images/split/image730.bin,0,1 -10182000,408,assets/images/split/image731.bin,0,1 -10182408,455,assets/images/split/image732.bin,0,1 -10182863,1335,assets/images/split/image733.bin,0,1 -10184198,1307,assets/images/split/image734.bin,0,1 -10185505,1187,assets/images/split/image735.bin,0,1 -10186692,1518,assets/images/split/image736.bin,0,1 -10188210,1496,assets/images/split/image737.bin,0,1 -10189706,1413,assets/images/split/image738.bin,0,1 -10191119,1346,assets/images/split/image739.bin,0,1 -10192465,1410,assets/images/split/image740.bin,0,1 -10193875,1097,assets/images/split/image741.bin,0,1 -10194972,1179,assets/images/split/image742.bin,0,1 -10196151,1389,assets/images/split/image743.bin,0,1 -10197540,1470,assets/images/split/image744.bin,0,1 -10199010,1499,assets/images/split/image745.bin,0,1 -10200509,1028,assets/images/split/image746.bin,0,1 -10201537,1278,assets/images/split/image747.bin,0,1 -10202815,1420,assets/images/split/image748.bin,0,1 -10204235,1379,assets/images/split/image749.bin,0,1 -10205614,1458,assets/images/split/image750.bin,0,1 -10207072,1403,assets/images/split/image751.bin,0,1 -10208475,1163,assets/images/split/image752.bin,0,1 -10209638,1198,assets/images/split/image753.bin,0,1 -10210836,1300,assets/images/split/image754.bin,0,1 -10212136,1436,assets/images/split/image755.bin,0,1 -10213572,1384,assets/images/split/image756.bin,0,1 -10214956,1466,assets/images/split/image757.bin,0,1 -10216422,1425,assets/images/split/image758.bin,0,1 -10217847,520,assets/images/split/image759.bin,0,1 -10218367,510,assets/images/split/image760.bin,0,1 -10218877,1285,assets/images/split/image761.bin,0,1 -10220162,927,assets/images/split/image762.bin,0,1 -10221089,178,assets/images/split/image763.bin,0,1 -10221267,167,assets/images/split/image764.bin,0,1 -10221434,103,assets/images/split/image765.bin,0,1 -10221537,1375,assets/images/split/image766.bin,0,1 -10222912,510,assets/images/split/image767.bin,0,1 -10223422,801,assets/images/split/image768.bin,0,1 -10224223,305,assets/images/split/image769.bin,0,1 -10224528,339,assets/images/split/image770.bin,0,1 -10224867,1154,assets/images/split/image771.bin,0,1 -10226021,1548,assets/images/split/image772.bin,0,1 -10227569,601,assets/images/split/image773.bin,0,1 -10228170,899,assets/images/split/image774.bin,0,1 -10229069,120,assets/images/split/image775.bin,0,1 -10229189,1228,assets/images/split/image776.bin,0,1 -10230417,1347,assets/images/split/image777.bin,0,1 -10231764,1468,assets/images/split/image778.bin,0,1 -10233232,881,assets/images/split/image779.bin,0,1 -10234113,1474,assets/images/split/image780.bin,0,1 -10235587,1250,assets/images/split/image781.bin,0,1 -10236837,1605,assets/images/split/image782.bin,0,1 -10238442,1339,assets/images/split/image783.bin,0,1 -10239781,1096,assets/images/split/image784.bin,0,1 -10240877,504,assets/images/split/image785.bin,0,1 -10241381,296,assets/images/split/image786.bin,0,1 -10241677,364,assets/images/split/image787.bin,0,1 -10242041,967,assets/images/split/image788.bin,0,1 -10243008,573,assets/images/split/image789.bin,0,1 -10243581,1580,assets/images/split/image790.bin,0,1 -10245161,1538,assets/images/split/image791.bin,0,1 -10246699,1503,assets/images/split/image792.bin,0,1 -10248202,1640,assets/images/split/image793.bin,0,1 -10249842,1656,assets/images/split/image794.bin,0,1 -10251498,1517,assets/images/split/image795.bin,0,1 -10253015,1600,assets/images/split/image796.bin,0,1 -10254615,624,assets/images/split/image797.bin,0,1 -10255239,588,assets/images/split/image798.bin,0,1 -10255827,612,assets/images/split/image799.bin,0,1 -10256439,225,assets/images/split/image800.bin,0,1 -10256664,152,assets/images/split/image801.bin,0,1 -10256816,451,assets/images/split/image802.bin,0,1 -10257267,671,assets/images/split/image803.bin,0,1 -10257938,415,assets/images/split/image804.bin,0,1 -10258353,464,assets/images/split/image805.bin,0,1 -10258817,783,assets/images/split/image806.bin,0,1 -10259600,987,assets/images/split/image807.bin,0,1 -10260587,325,assets/images/split/image808.bin,0,1 -10260912,665,assets/images/split/image809.bin,0,1 -10261577,1056,assets/images/split/image810.bin,0,1 -10262633,600,assets/images/split/image811.bin,0,1 -10263233,670,assets/images/split/image812.bin,0,1 -10263903,821,assets/images/split/image813.bin,0,1 -10264724,457,assets/images/split/image814.bin,0,1 -10265181,1145,assets/images/split/image815.bin,0,1 -10266326,479,assets/images/split/image816.bin,0,1 -10266805,729,assets/images/split/image817.bin,0,1 -10267534,1078,assets/images/split/image818.bin,0,1 -10268612,611,assets/images/split/image819.bin,0,1 -10269223,1539,assets/images/split/image820.bin,0,1 -10270762,1391,assets/images/split/image821.bin,0,1 -10272153,68,assets/images/split/image822.bin,0,1 -10272221,593,assets/images/split/image823.bin,0,1 -10272814,388,assets/images/split/image824.bin,0,1 -10273202,683,assets/images/split/image825.bin,0,1 -10273885,886,assets/images/split/image826.bin,0,1 -10274771,1109,assets/images/split/image827.bin,0,1 -10275880,1334,assets/images/split/image828.bin,0,1 -10277214,1256,assets/images/split/image829.bin,0,1 -10278470,1369,assets/images/split/image830.bin,0,1 -10279839,1401,assets/images/split/image831.bin,0,1 -10281240,1694,assets/images/split/image832.bin,0,1 -10282934,1882,assets/images/split/image833.bin,0,1 -10284816,1707,assets/images/split/image834.bin,0,1 -10286523,957,assets/images/split/image835.bin,0,1 -10287480,790,assets/images/split/image836.bin,0,1 -10288270,1236,assets/images/split/image837.bin,0,1 -10289506,590,assets/images/split/image838.bin,0,1 -10290096,1909,assets/images/split/image839.bin,0,1 -10292005,1962,assets/images/split/image840.bin,0,1 -10293967,1675,assets/images/split/image841.bin,0,1 -10295642,1677,assets/images/split/image842.bin,0,1 -10297319,1402,assets/images/split/image843.bin,0,1 -10298721,1393,assets/images/split/image844.bin,0,1 -10300114,762,assets/images/split/image845.bin,0,1 -10300876,1134,assets/images/split/image846.bin,0,1 -10302010,910,assets/images/split/image847.bin,0,1 -10302920,1187,assets/images/split/image848.bin,0,1 -10304107,183,assets/images/split/image849.bin,0,1 -10304290,1532,assets/images/split/image850.bin,0,1 -10305822,783,assets/images/split/image851.bin,0,1 -10306605,965,assets/images/split/image852.bin,0,1 -10307570,460,assets/images/split/image853.bin,0,1 -10308030,505,assets/images/split/image854.bin,0,1 -10308535,389,assets/images/split/image855.bin,0,1 -10308924,734,assets/images/split/image856.bin,0,1 -10309658,655,assets/images/split/image857.bin,0,1 -10310313,1106,assets/images/split/image858.bin,0,1 -10311419,795,assets/images/split/image859.bin,0,1 -10312214,1788,assets/images/split/image860.bin,0,1 -10314002,1802,assets/images/split/image861.bin,0,1 -10315804,529,assets/images/split/image862.bin,0,1 -10316333,728,assets/images/split/image863.bin,0,1 -10317061,447,assets/images/split/image864.bin,0,1 -10317508,557,assets/images/split/image865.bin,0,1 -10318065,403,assets/images/split/image866.bin,0,1 -10318468,1256,assets/images/split/image867.bin,0,1 -10319724,294,assets/images/split/image868.bin,0,1 -10320018,255,assets/images/split/image869.bin,0,1 -10320273,796,assets/images/split/image870.bin,0,1 -10321069,379,assets/images/split/image871.bin,0,1 -10321448,352,assets/images/split/image872.bin,0,1 -10321800,67,assets/images/split/image873.bin,0,1 -10321867,400,assets/images/split/image874.bin,0,1 -10322267,47,assets/images/split/image875.bin,0,1 -10322314,334,assets/images/split/image876.bin,0,1 -10322648,314,assets/images/split/image877.bin,0,1 -10322962,47,assets/images/split/image878.bin,0,1 -10323009,57,assets/images/split/image879.bin,0,1 -10323066,81,assets/images/split/image880.bin,0,1 -10323147,41,assets/images/split/image881.bin,0,1 -10323188,75,assets/images/split/image882.bin,0,1 -10323263,43,assets/images/split/image883.bin,0,1 -10323306,221,assets/images/split/image884.bin,0,1 -10323527,1792,assets/images/split/image885.bin,0,1 -10325319,584,assets/images/split/image886.bin,0,1 -10325903,335,assets/images/split/image887.bin,0,1 -10326238,364,assets/images/split/image888.bin,0,1 -10326602,1016,assets/images/split/image889.bin,0,1 -10327618,688,assets/images/split/image890.bin,0,1 -10328306,447,assets/images/split/image891.bin,0,1 -10328753,944,assets/images/split/image892.bin,0,1 -10329697,1001,assets/images/split/image893.bin,0,1 -10330698,976,assets/images/split/image894.bin,0,1 -10331674,882,assets/images/split/image895.bin,0,1 -10332556,1490,assets/images/split/image896.bin,0,1 -10334046,1809,assets/images/split/image897.bin,0,1 -10335855,1650,assets/images/split/image898.bin,0,1 -10337505,1226,assets/images/split/image899.bin,0,1 -10338731,1002,assets/images/split/image900.bin,0,1 -10339733,551,assets/images/split/image901.bin,0,1 -10340284,958,assets/images/split/image902.bin,0,1 -10341242,852,assets/images/split/image903.bin,0,1 -10342094,854,assets/images/split/image904.bin,0,1 -10342948,949,assets/images/split/image905.bin,0,1 -10343897,1053,assets/images/split/image906.bin,0,1 -10344950,697,assets/images/split/image907.bin,0,1 -10345647,429,assets/images/split/image908.bin,0,1 -10346076,1299,assets/images/split/image909.bin,0,1 -10347375,1220,assets/images/split/image910.bin,0,1 -10348595,1135,assets/images/split/image911.bin,0,1 -10349730,1245,assets/images/split/image912.bin,0,1 -10350975,1627,assets/images/split/image913.bin,0,1 -10352602,919,assets/images/split/image914.bin,0,1 -10353521,751,assets/images/split/image915.bin,0,1 -10354272,790,assets/images/split/image916.bin,0,1 -10355062,790,assets/images/split/image917.bin,0,1 -10355852,152,assets/images/split/image918.bin,0,1 -10356004,424,assets/images/split/image919.bin,0,1 -10356428,630,assets/images/split/image920.bin,0,1 -10357058,1945,assets/images/split/image921.bin,0,1 -10359003,668,assets/images/split/image922.bin,0,1 -10359671,912,assets/images/split/image923.bin,0,1 -10360583,954,assets/images/split/image924.bin,0,1 -10361537,2214,assets/images/split/image925.bin,0,1 -10363751,830,assets/images/split/image926.bin,0,1 -10364581,1548,assets/images/split/image927.bin,0,1 -10366129,1616,assets/images/split/image928.bin,0,1 -10367745,567,assets/images/split/image929.bin,0,1 -10368312,860,assets/images/split/image930.bin,0,1 -10369172,787,assets/images/split/image931.bin,0,1 -10369959,478,assets/images/split/image932.bin,0,1 -10370437,445,assets/images/split/image933.bin,0,1 -10370882,617,assets/images/split/image934.bin,0,1 -10371499,336,assets/images/split/image935.bin,0,1 -10371835,1078,assets/images/split/image936.bin,0,1 -10372913,358,assets/images/split/image937.bin,0,1 -10373271,397,assets/images/split/image938.bin,0,1 -10373668,513,assets/images/split/image939.bin,0,1 -10374181,1056,assets/images/split/image940.bin,0,1 -10375237,726,assets/images/split/image941.bin,0,1 -10375963,730,assets/images/split/image942.bin,0,1 -10376693,815,assets/images/split/image943.bin,0,1 -10377508,697,assets/images/split/image944.bin,0,1 -10378205,669,assets/images/split/image945.bin,0,1 -10378874,506,assets/images/split/image946.bin,0,1 -10379380,639,assets/images/split/image947.bin,0,1 -10380019,241,assets/images/split/image948.bin,0,1 -10380260,1511,assets/images/split/image949.bin,0,1 -10381771,1649,assets/images/split/image950.bin,0,1 -10383420,1323,assets/images/split/image951.bin,0,1 -10384743,2168,assets/images/split/image952.bin,0,1 -10386911,1945,assets/images/split/image953.bin,0,1 -10388856,1508,assets/images/split/image954.bin,0,1 -10390364,1544,assets/images/split/image955.bin,0,1 -10391908,1384,assets/images/split/image956.bin,0,1 -10393292,1473,assets/images/split/image957.bin,0,1 -10394765,1509,assets/images/split/image958.bin,0,1 -10396274,1908,assets/images/split/image959.bin,0,1 -10398182,647,assets/images/split/image960.bin,0,1 -10398829,647,assets/images/split/image961.bin,0,1 -10399476,1888,assets/images/split/image962.bin,0,1 -10401364,2122,assets/images/split/image963.bin,0,1 -10403486,2157,assets/images/split/image964.bin,0,1 -10405643,2153,assets/images/split/image965.bin,0,1 -10407796,2110,assets/images/split/image966.bin,0,1 -10409906,2097,assets/images/split/image967.bin,0,1 -10412003,2126,assets/images/split/image968.bin,0,1 -10414129,2080,assets/images/split/image969.bin,0,1 -10416209,645,assets/images/split/image970.bin,0,1 -10416854,753,assets/images/split/image971.bin,0,1 -10417607,1227,assets/images/split/image972.bin,0,1 -10418834,2175,assets/images/split/image973.bin,0,1 -10421009,2221,assets/images/split/image974.bin,0,1 -10423230,2175,assets/images/split/image975.bin,0,1 -10425405,2175,assets/images/split/image976.bin,0,1 -10427580,2210,assets/images/split/image977.bin,0,1 -10429790,2175,assets/images/split/image978.bin,0,1 -10431965,2330,assets/images/split/image979.bin,0,1 -10434295,601,assets/images/split/image980.bin,0,1 -10434896,1654,assets/images/split/image981.bin,0,1 -10436550,1654,assets/images/split/image982.bin,0,1 -10438204,74,assets/images/split/image983.bin,0,1 -10438278,880,assets/images/split/image984.bin,0,1 -10439158,775,assets/images/split/image985.bin,0,1 -10439933,785,assets/images/split/image986.bin,0,1 -10440718,1306,assets/images/split/image987.bin,0,1 -10442024,410,assets/images/split/image988.bin,0,1 -10442434,17,assets/images/split/image989.bin,0,1 -10442451,297,assets/images/split/image990.bin,0,1 -10442748,322,assets/images/split/image991.bin,0,1 -10443070,401,assets/images/split/image992.bin,0,1 -10443471,384,assets/images/split/image993.bin,0,1 -10443855,316,assets/images/split/image994.bin,0,1 -10444171,354,assets/images/split/image995.bin,0,1 -10444525,294,assets/images/split/image996.bin,0,1 -10444819,373,assets/images/split/image997.bin,0,1 -10445192,862,assets/images/split/image998.bin,0,1 -10446054,562,assets/images/split/image999.bin,0,1 -10446616,1290,assets/images/split/image1000.bin,0,1 -10447906,1036,assets/images/split/image1001.bin,0,1 -10448942,969,assets/images/split/image1002.bin,0,1 -10449911,1232,assets/images/split/image1003.bin,0,1 -10451143,1261,assets/images/split/image1004.bin,0,1 -10452404,615,assets/images/split/image1005.bin,0,1 -10453019,826,assets/images/split/image1006.bin,0,1 -10453845,240,assets/images/split/image1007.bin,0,1 -10454085,1169,assets/images/split/image1008.bin,0,1 -10455254,653,assets/images/split/image1009.bin,0,1 -10455907,434,assets/images/split/image1010.bin,0,1 -10456341,1554,assets/images/split/image1011.bin,0,1 -10457895,1822,assets/images/split/image1012.bin,0,1 -10459717,409,assets/images/split/image1013.bin,0,1 -10460126,1709,assets/images/split/image1014.bin,0,1 -10461835,499,assets/images/split/image1015.bin,0,1 -10462334,905,assets/images/split/image1016.bin,0,1 -10463239,871,assets/images/split/image1017.bin,0,1 -10464110,767,assets/images/split/image1018.bin,0,1 -10464877,889,assets/images/split/image1019.bin,0,1 -10465766,1166,assets/images/split/image1020.bin,0,1 -10466932,1311,assets/images/split/image1021.bin,0,1 -10468243,1349,assets/images/split/image1022.bin,0,1 -10469592,778,assets/images/split/image1023.bin,0,1 -10470370,947,assets/images/split/image1024.bin,0,1 -10471317,1142,assets/images/split/image1025.bin,0,1 -10472459,554,assets/images/split/image1026.bin,0,1 -10473013,150,assets/images/split/image1027.bin,0,1 -10473163,817,assets/images/split/image1028.bin,0,1 -10473980,1103,assets/images/split/image1029.bin,0,1 -10475083,817,assets/images/split/image1030.bin,0,1 -10475900,835,assets/images/split/image1031.bin,0,1 -10476735,173,assets/images/split/image1032.bin,0,1 -10476908,1490,assets/images/split/image1033.bin,0,1 -10478398,1160,assets/images/split/image1034.bin,0,1 -10479558,1143,assets/images/split/image1035.bin,0,1 -10480701,1235,assets/images/split/image1036.bin,0,1 -10481936,1562,assets/images/split/image1037.bin,0,1 -10483498,1167,assets/images/split/image1038.bin,0,1 -10484665,1275,assets/images/split/image1039.bin,0,1 -10485940,1339,assets/images/split/image1040.bin,0,1 -10487279,1696,assets/images/split/image1041.bin,0,1 -10488975,530,assets/images/split/image1042.bin,0,1 -10489505,743,assets/images/split/image1043.bin,0,1 -10490248,677,assets/images/split/image1044.bin,0,1 -10490925,580,assets/images/split/image1045.bin,0,1 -10491505,304,assets/images/split/image1046.bin,0,1 -10491809,348,assets/images/split/image1047.bin,0,1 -10492157,860,assets/images/split/image1048.bin,0,1 -10493017,1654,assets/images/split/image1049.bin,0,1 -10494671,717,assets/images/split/image1050.bin,0,1 -10495388,1902,assets/images/split/image1051.bin,0,1 -10497290,1827,assets/images/split/image1052.bin,0,1 -10499117,1970,assets/images/split/image1053.bin,0,1 -10501087,1555,assets/images/split/image1054.bin,0,1 -10502642,552,assets/images/split/image1055.bin,0,1 -10503194,1490,assets/images/split/image1056.bin,0,1 -10504684,519,assets/images/split/image1057.bin,0,1 -10505203,1438,assets/images/split/image1058.bin,0,1 -10506641,408,assets/images/split/image1059.bin,0,1 -10507049,1356,assets/images/split/image1060.bin,0,1 -10508405,1294,assets/images/split/image1061.bin,0,1 -10509699,483,assets/images/split/image1062.bin,0,1 -10510182,1316,assets/images/split/image1063.bin,0,1 -10511498,982,assets/images/split/image1064.bin,0,1 -10512480,658,assets/images/split/image1065.bin,0,1 -10513138,365,assets/images/split/image1066.bin,0,1 -10513503,965,assets/images/split/image1067.bin,0,1 -10514468,1467,assets/images/split/image1068.bin,0,1 -10515935,1338,assets/images/split/image1069.bin,0,1 -10517273,1443,assets/images/split/image1070.bin,0,1 -10518716,1818,assets/images/split/image1071.bin,0,1 -10520534,1034,assets/images/split/image1072.bin,0,1 -10521568,1761,assets/images/split/image1073.bin,0,1 -10523329,1827,assets/images/split/image1074.bin,0,1 -10525156,1150,assets/images/split/image1075.bin,0,1 -10526306,640,assets/images/split/image1076.bin,0,1 -10526946,899,assets/images/split/image1077.bin,0,1 -10527845,740,assets/images/split/image1078.bin,0,1 -10528585,320,assets/images/split/image1079.bin,0,1 -10528905,230,assets/images/split/image1080.bin,0,1 -10529135,1514,assets/images/split/image1081.bin,0,1 -10530649,1224,assets/images/split/image1082.bin,0,1 -10531873,1295,assets/images/split/image1083.bin,0,1 -10533168,228,assets/images/split/image1084.bin,0,1 -10533396,72,assets/images/split/image1085.bin,0,1 -10533468,1452,assets/images/split/image1086.bin,0,1 -10534920,539,assets/images/split/image1087.bin,0,1 -10535459,863,assets/images/split/image1088.bin,0,1 -10536322,518,assets/images/split/image1089.bin,0,1 -10536840,363,assets/images/split/image1090.bin,0,1 -10537203,1131,assets/images/split/image1091.bin,0,1 -10538334,1343,assets/images/split/image1092.bin,0,1 -10539677,1002,assets/images/split/image1093.bin,0,1 -10540679,1003,assets/images/split/image1094.bin,0,1 -10541682,1307,assets/images/split/image1095.bin,0,1 -10542989,1162,assets/images/split/image1096.bin,0,1 -10544151,1224,assets/images/split/image1097.bin,0,1 -10545375,1110,assets/images/split/image1098.bin,0,1 -10546485,902,assets/images/split/image1099.bin,0,1 -10547387,1264,assets/images/split/image1100.bin,0,1 -10548651,1366,assets/images/split/image1101.bin,0,1 -10550017,1331,assets/images/split/image1102.bin,0,1 -10551348,1002,assets/images/split/image1103.bin,0,1 -10552350,1256,assets/images/split/image1104.bin,0,1 -10553606,1358,assets/images/split/image1105.bin,0,1 -10554964,1304,assets/images/split/image1106.bin,0,1 -10556268,1183,assets/images/split/image1107.bin,0,1 -10557451,1354,assets/images/split/image1108.bin,0,1 -10558805,1335,assets/images/split/image1109.bin,0,1 -10560140,1333,assets/images/split/image1110.bin,0,1 -10561473,998,assets/images/split/image1111.bin,0,1 -10562471,1200,assets/images/split/image1112.bin,0,1 -10563671,1325,assets/images/split/image1113.bin,0,1 -10564996,1333,assets/images/split/image1114.bin,0,1 -10566329,1132,assets/images/split/image1115.bin,0,1 -10567461,1242,assets/images/split/image1116.bin,0,1 -10568703,1029,assets/images/split/image1117.bin,0,1 -10569732,1281,assets/images/split/image1118.bin,0,1 -10571013,1413,assets/images/split/image1119.bin,0,1 -10572426,698,assets/images/split/image1120.bin,0,1 -10573124,672,assets/images/split/image1121.bin,0,1 -10573796,796,assets/images/split/image1122.bin,0,1 -10574592,412,assets/images/split/image1123.bin,0,1 -10575004,216,assets/images/split/image1124.bin,0,1 -10575220,1832,assets/images/split/image1125.bin,0,1 -10577052,1197,assets/images/split/image1126.bin,0,1 -10578249,805,assets/images/split/image1127.bin,0,1 -10579054,1260,assets/images/split/image1128.bin,0,1 -10580314,2049,assets/images/split/image1129.bin,0,1 -10582363,2019,assets/images/split/image1130.bin,0,1 -10584382,1623,assets/images/split/image1131.bin,0,1 -10586005,1074,assets/images/split/image1132.bin,0,1 -10587079,2474,assets/images/split/image1133.bin,0,1 -10589553,895,assets/images/split/image1134.bin,0,1 -10590448,1246,assets/images/split/image1135.bin,0,1 -10591694,1451,assets/images/split/image1136.bin,0,1 -10593145,1548,assets/images/split/image1137.bin,0,1 -10594693,666,assets/images/split/image1138.bin,0,1 -10595359,318,assets/images/split/image1139.bin,0,1 -10595677,489,assets/images/split/image1140.bin,0,1 -10596166,955,assets/images/split/image1141.bin,0,1 -10597121,1086,assets/images/split/image1142.bin,0,1 -10598207,1061,assets/images/split/image1143.bin,0,1 -10599268,688,assets/images/split/image1144.bin,0,1 -10599956,213,assets/images/split/image1145.bin,0,1 -10600169,335,assets/images/split/image1146.bin,0,1 -10600504,297,assets/images/split/image1147.bin,0,1 -10600801,848,assets/images/split/image1148.bin,0,1 -10601649,828,assets/images/split/image1149.bin,0,1 -10602477,852,assets/images/split/image1150.bin,0,1 -10603329,401,assets/images/split/image1151.bin,0,1 -10603730,1226,assets/images/split/image1152.bin,0,1 -10604956,803,assets/images/split/image1153.bin,0,1 -10605759,903,assets/images/split/image1154.bin,0,1 -10606662,1948,assets/images/split/image1155.bin,0,1 -10608610,1798,assets/images/split/image1156.bin,0,1 -10610408,720,assets/images/split/image1157.bin,0,1 -10611128,762,assets/images/split/image1158.bin,0,1 -10611890,1176,assets/images/split/image1159.bin,0,1 -10613066,1183,assets/images/split/image1160.bin,0,1 -10614249,775,assets/images/split/image1161.bin,0,1 -10615024,1353,assets/images/split/image1162.bin,0,1 -10616377,1253,assets/images/split/image1163.bin,0,1 -10617630,1006,assets/images/split/image1164.bin,0,1 -10618636,1031,assets/images/split/image1165.bin,0,1 -10619667,1507,assets/images/split/image1166.bin,0,1 -10621174,1345,assets/images/split/image1167.bin,0,1 -10622519,1331,assets/images/split/image1168.bin,0,1 -10623850,1081,assets/images/split/image1169.bin,0,1 -10624931,1520,assets/images/split/image1170.bin,0,1 -10626451,1457,assets/images/split/image1171.bin,0,1 -10627908,884,assets/images/split/image1172.bin,0,1 -10628792,37,assets/images/split/image1173.bin,0,1 -10628829,676,assets/images/split/image1174.bin,0,1 -10629505,576,assets/images/split/image1175.bin,0,1 -10630081,527,assets/images/split/image1176.bin,0,1 -10630608,873,assets/images/split/image1177.bin,0,1 -10631481,551,assets/images/split/image1178.bin,0,1 -10632032,289,assets/images/split/image1179.bin,0,1 -10632321,617,assets/images/split/image1180.bin,0,1 -10632938,473,assets/images/split/image1181.bin,0,1 -10633411,586,assets/images/split/image1182.bin,0,1 -10633997,539,assets/images/split/image1183.bin,0,1 -10634536,1142,assets/images/split/image1184.bin,0,1 -10635678,1713,assets/images/split/image1185.bin,0,1 -10637391,1382,assets/images/split/image1186.bin,0,1 -10638773,1448,assets/images/split/image1187.bin,0,1 -10640221,1343,assets/images/split/image1188.bin,0,1 -10641564,94,assets/images/split/image1189.bin,0,1 -10641658,746,assets/images/split/image1190.bin,0,1 -10642404,958,assets/images/split/image1191.bin,0,1 -10643362,341,assets/images/split/image1192.bin,0,1 -10643703,198,assets/images/split/image1193.bin,0,1 -10643901,834,assets/images/split/image1194.bin,0,1 -10644735,982,assets/images/split/image1195.bin,0,1 -10645717,809,assets/images/split/image1196.bin,0,1 -10646526,1998,assets/images/split/image1197.bin,0,1 -10648524,1492,assets/images/split/image1198.bin,0,1 -10650016,1569,assets/images/split/image1199.bin,0,1 -10651585,2035,assets/images/split/image1200.bin,0,1 -10653620,1902,assets/images/split/image1201.bin,0,1 -10655522,1964,assets/images/split/image1202.bin,0,1 -10657486,483,assets/images/split/image1203.bin,0,1 -10657969,652,assets/images/split/image1204.bin,0,1 -10658621,722,assets/images/split/image1205.bin,0,1 -10659343,952,assets/images/split/image1206.bin,0,1 -10660295,1348,assets/images/split/image1207.bin,0,1 -10661643,1226,assets/images/split/image1208.bin,0,1 -10662869,1318,assets/images/split/image1209.bin,0,1 -10664187,1397,assets/images/split/image1210.bin,0,1 -10665584,1211,assets/images/split/image1211.bin,0,1 -10666795,1397,assets/images/split/image1212.bin,0,1 -10668192,1490,assets/images/split/image1213.bin,0,1 -10669682,1439,assets/images/split/image1214.bin,0,1 -10671121,317,assets/images/split/image1215.bin,0,1 -10671438,1764,assets/images/split/image1216.bin,0,1 -10673202,1661,assets/images/split/image1217.bin,0,1 -10674863,745,assets/images/split/image1218.bin,0,1 -10675608,883,assets/images/split/image1219.bin,0,1 -10676491,354,assets/images/split/image1220.bin,0,1 -10676845,273,assets/images/split/image1221.bin,0,1 -10677118,195,assets/images/split/image1222.bin,0,1 -10677313,542,assets/images/split/image1223.bin,0,1 -10677855,1082,assets/images/split/image1224.bin,0,1 -10678937,1357,assets/images/split/image1225.bin,0,1 -10680294,653,assets/images/split/image1226.bin,0,1 -10680947,963,assets/images/split/image1227.bin,0,1 -10681910,961,assets/images/split/image1228.bin,0,1 -10682871,940,assets/images/split/image1229.bin,0,1 -10683811,1438,assets/images/split/image1230.bin,0,1 -10685249,841,assets/images/split/image1231.bin,0,1 -10686090,984,assets/images/split/image1232.bin,0,1 -10687074,1107,assets/images/split/image1233.bin,0,1 -10688181,1055,assets/images/split/image1234.bin,0,1 -10689236,1711,assets/images/split/image1235.bin,0,1 -10690947,925,assets/images/split/image1236.bin,0,1 -10691872,768,assets/images/split/image1237.bin,0,1 -10692640,994,assets/images/split/image1238.bin,0,1 -10693634,907,assets/images/split/image1239.bin,0,1 -10694541,810,assets/images/split/image1240.bin,0,1 -10695351,1038,assets/images/split/image1241.bin,0,1 -10696389,819,assets/images/split/image1242.bin,0,1 -10697208,709,assets/images/split/image1243.bin,0,1 -10697917,613,assets/images/split/image1244.bin,0,1 -10698530,876,assets/images/split/image1245.bin,0,1 -10699406,1342,assets/images/split/image1246.bin,0,1 -10700748,1200,assets/images/split/image1247.bin,0,1 -10701948,408,assets/images/split/image1248.bin,0,1 -10702356,1257,assets/images/split/image1249.bin,0,1 -10703613,668,assets/images/split/image1250.bin,0,1 -10704281,739,assets/images/split/image1251.bin,0,1 -10705020,729,assets/images/split/image1252.bin,0,1 -10705749,630,assets/images/split/image1253.bin,0,1 -10706379,739,assets/images/split/image1254.bin,0,1 -10707118,939,assets/images/split/image1255.bin,0,1 -10708057,585,assets/images/split/image1256.bin,0,1 -10708642,218,assets/images/split/image1257.bin,0,1 -10708860,887,assets/images/split/image1258.bin,0,1 -10709747,1351,assets/images/split/image1259.bin,0,1 -10711098,999,assets/images/split/image1260.bin,0,1 -10712097,771,assets/images/split/image1261.bin,0,1 -10712868,498,assets/images/split/image1262.bin,0,1 -10713366,296,assets/images/split/image1263.bin,0,1 -10713662,434,assets/images/split/image1264.bin,0,1 -10714096,260,assets/images/split/image1265.bin,0,1 -10714356,1188,assets/images/split/image1266.bin,0,1 -10715544,830,assets/images/split/image1267.bin,0,1 -10716374,1356,assets/images/split/image1268.bin,0,1 -10717730,1121,assets/images/split/image1269.bin,0,1 -10718851,761,assets/images/split/image1270.bin,0,1 -10719612,1357,assets/images/split/image1271.bin,0,1 -10720969,481,assets/images/split/image1272.bin,0,1 -10721450,551,assets/images/split/image1273.bin,0,1 -10722001,501,assets/images/split/image1274.bin,0,1 -10722502,830,assets/images/split/image1275.bin,0,1 -10723332,726,assets/images/split/image1276.bin,0,1 -10724058,417,assets/images/split/image1277.bin,0,1 -10724475,203,assets/images/split/image1278.bin,0,1 -10724678,1264,assets/images/split/image1279.bin,0,1 -10725942,403,assets/images/split/image1280.bin,0,1 -10726345,880,assets/images/split/image1281.bin,0,1 -10727225,942,assets/images/split/image1282.bin,0,1 -10728167,1048,assets/images/split/image1283.bin,0,1 -10729215,439,assets/images/split/image1284.bin,0,1 -10729654,664,assets/images/split/image1285.bin,0,1 -10730318,2068,assets/images/split/image1286.bin,0,1 -10732386,2058,assets/images/split/image1287.bin,0,1 -10734444,2068,assets/images/split/image1288.bin,0,1 -10736512,2058,assets/images/split/image1289.bin,0,1 -10738570,1548,assets/images/split/image1290.bin,0,1 -10740118,1085,assets/images/split/image1291.bin,0,1 -10741203,1537,assets/images/split/image1292.bin,0,1 -10742740,1548,assets/images/split/image1293.bin,0,1 -10744288,1436,assets/images/split/image1294.bin,0,1 -10745724,1519,assets/images/split/image1295.bin,0,1 -10747243,1518,assets/images/split/image1296.bin,0,1 -10748761,1548,assets/images/split/image1297.bin,0,1 -10750309,1548,assets/images/split/image1298.bin,0,1 -10751857,1185,assets/images/split/image1299.bin,0,1 -10753042,1262,assets/images/split/image1300.bin,0,1 -10754304,1504,assets/images/split/image1301.bin,0,1 -10755808,1548,assets/images/split/image1302.bin,0,1 -10757356,1548,assets/images/split/image1303.bin,0,1 -10758904,1548,assets/images/split/image1304.bin,0,1 -10760452,2068,assets/images/split/image1305.bin,0,1 -10762520,2058,assets/images/split/image1306.bin,0,1 -10764578,2058,assets/images/split/image1307.bin,0,1 -10766636,2058,assets/images/split/image1308.bin,0,1 -10768694,1529,assets/images/split/image1309.bin,0,1 -10770223,1548,assets/images/split/image1310.bin,0,1 -10771771,2022,assets/images/split/image1311.bin,0,1 -10773793,2028,assets/images/split/image1312.bin,0,1 -10775821,2043,assets/images/split/image1313.bin,0,1 -10777864,2058,assets/images/split/image1314.bin,0,1 -10779922,2060,assets/images/split/image1315.bin,0,1 -10781982,2058,assets/images/split/image1316.bin,0,1 -10784040,2058,assets/images/split/image1317.bin,0,1 -10786098,2053,assets/images/split/image1318.bin,0,1 -10788151,1513,assets/images/split/image1319.bin,0,1 -10789664,1493,assets/images/split/image1320.bin,0,1 -10791157,1513,assets/images/split/image1321.bin,0,1 -10792670,1106,assets/images/split/image1322.bin,0,1 -10793776,1548,assets/images/split/image1323.bin,0,1 -10795324,1548,assets/images/split/image1324.bin,0,1 -10796872,2068,assets/images/split/image1325.bin,0,1 -10798940,2068,assets/images/split/image1326.bin,0,1 -10801008,2058,assets/images/split/image1327.bin,0,1 -10803066,2056,assets/images/split/image1328.bin,0,1 -10805122,2058,assets/images/split/image1329.bin,0,1 -10807180,2058,assets/images/split/image1330.bin,0,1 -10809238,2058,assets/images/split/image1331.bin,0,1 -10811296,2058,assets/images/split/image1332.bin,0,1 -10813354,1178,assets/images/split/image1333.bin,0,1 -10814532,1515,assets/images/split/image1334.bin,0,1 -10816047,1335,assets/images/split/image1335.bin,0,1 -10817382,1545,assets/images/split/image1336.bin,0,1 -10818927,1517,assets/images/split/image1337.bin,0,1 -10820444,1286,assets/images/split/image1338.bin,0,1 -10821730,899,assets/images/split/image1339.bin,0,1 -10822629,1269,assets/images/split/image1340.bin,0,1 -10823898,2068,assets/images/split/image1341.bin,0,1 -10825966,2068,assets/images/split/image1342.bin,0,1 -10828034,2058,assets/images/split/image1343.bin,0,1 -10830092,2058,assets/images/split/image1344.bin,0,1 -10832150,2058,assets/images/split/image1345.bin,0,1 -10834208,2058,assets/images/split/image1346.bin,0,1 -10836266,2058,assets/images/split/image1347.bin,0,1 -10838324,2058,assets/images/split/image1348.bin,0,1 -10840382,2068,assets/images/split/image1349.bin,0,1 -10842450,2068,assets/images/split/image1350.bin,0,1 -10844518,2058,assets/images/split/image1351.bin,0,1 -10846576,2058,assets/images/split/image1352.bin,0,1 -10848634,2058,assets/images/split/image1353.bin,0,1 -10850692,2058,assets/images/split/image1354.bin,0,1 -10852750,2058,assets/images/split/image1355.bin,0,1 -10854808,2058,assets/images/split/image1356.bin,0,1 -10856866,789,assets/images/split/image1357.bin,0,1 -10857655,643,assets/images/split/image1358.bin,0,1 -10858298,646,assets/images/split/image1359.bin,0,1 -10858944,1158,assets/images/split/image1360.bin,0,1 -10860102,1526,assets/images/split/image1361.bin,0,1 -10861628,1548,assets/images/split/image1362.bin,0,1 -10863176,1545,assets/images/split/image1363.bin,0,1 -10864721,1223,assets/images/split/image1364.bin,0,1 -10865944,830,assets/images/split/image1365.bin,0,1 -10866774,1063,assets/images/split/image1366.bin,0,1 -10867837,474,assets/images/split/image1367.bin,0,1 -10868311,1555,assets/images/split/image1368.bin,0,1 -10869866,1218,assets/images/split/image1369.bin,0,1 -10871084,1251,assets/images/split/image1370.bin,0,1 -10872335,1107,assets/images/split/image1371.bin,0,1 -10873442,1147,assets/images/split/image1372.bin,0,1 -10874589,636,assets/images/split/image1373.bin,0,1 -10875225,807,assets/images/split/image1374.bin,0,1 -10876032,737,assets/images/split/image1375.bin,0,1 -10876769,823,assets/images/split/image1376.bin,0,1 -10877592,590,assets/images/split/image1377.bin,0,1 -10878182,496,assets/images/split/image1378.bin,0,1 -10878678,819,assets/images/split/image1379.bin,0,1 -10879497,210,assets/images/split/image1380.bin,0,1 -10879707,1211,assets/images/split/image1381.bin,0,1 -10880918,40,assets/images/split/image1382.bin,0,1 -10880958,38,assets/images/split/image1383.bin,0,1 -10880996,826,assets/images/split/image1384.bin,0,1 -10881822,633,assets/images/split/image1385.bin,0,1 -10882455,1538,assets/images/split/image1386.bin,0,1 -10883993,787,assets/images/split/image1387.bin,0,1 -10884780,787,assets/images/split/image1388.bin,0,1 -10885567,1349,assets/images/split/image1389.bin,0,1 -10886916,1023,assets/images/split/image1390.bin,0,1 -10887939,1122,assets/images/split/image1391.bin,0,1 -10889061,1021,assets/images/split/image1392.bin,0,1 -10890082,399,assets/images/split/image1393.bin,0,1 -10890481,590,assets/images/split/image1394.bin,0,1 -10891071,940,assets/images/split/image1395.bin,0,1 -10892011,1423,assets/images/split/image1396.bin,0,1 -10893434,1374,assets/images/split/image1397.bin,0,1 -10894808,1047,assets/images/split/image1398.bin,0,1 -10895855,1222,assets/images/split/image1399.bin,0,1 -10897077,1413,assets/images/split/image1400.bin,0,1 -10898490,1126,assets/images/split/image1401.bin,0,1 -10899616,2383,assets/images/split/image1402.bin,0,1 -10901999,2288,assets/images/split/image1403.bin,0,1 -10904287,2305,assets/images/split/image1404.bin,0,1 -10906592,2349,assets/images/split/image1405.bin,0,1 -10908941,2368,assets/images/split/image1406.bin,0,1 -10911309,2313,assets/images/split/image1407.bin,0,1 -10913622,2368,assets/images/split/image1408.bin,0,1 -10915990,2289,assets/images/split/image1409.bin,0,1 -10918279,452,assets/images/split/image1410.bin,0,1 -10918731,371,assets/images/split/image1411.bin,0,1 -10919102,341,assets/images/split/image1412.bin,0,1 -10919443,785,assets/images/split/image1413.bin,0,1 -10920228,658,assets/images/split/image1414.bin,0,1 -10920886,555,assets/images/split/image1415.bin,0,1 -10921441,509,assets/images/split/image1416.bin,0,1 -10921950,461,assets/images/split/image1417.bin,0,1 -10922411,515,assets/images/split/image1418.bin,0,1 -10922926,642,assets/images/split/image1419.bin,0,1 -10923568,590,assets/images/split/image1420.bin,0,1 -10924158,479,assets/images/split/image1421.bin,0,1 -10924637,532,assets/images/split/image1422.bin,0,1 -10925169,1047,assets/images/split/image1423.bin,0,1 -10926216,500,assets/images/split/image1424.bin,0,1 -10926716,1505,assets/images/split/image1425.bin,0,1 -10928221,93,assets/images/split/image1426.bin,0,1 -10928314,1366,assets/images/split/image1427.bin,0,1 -10929680,353,assets/images/split/image1428.bin,0,1 -10930033,345,assets/images/split/image1429.bin,0,1 -10930378,1215,assets/images/split/image1430.bin,0,1 -10931593,643,assets/images/split/image1431.bin,0,1 -10932236,814,assets/images/split/image1432.bin,0,1 -10933050,308,assets/images/split/image1433.bin,0,1 -10933358,590,assets/images/split/image1434.bin,0,1 -10933948,278,assets/images/split/image1435.bin,0,1 -10934226,240,assets/images/split/image1436.bin,0,1 -10934466,274,assets/images/split/image1437.bin,0,1 -10934740,979,assets/images/split/image1438.bin,0,1 -10935719,979,assets/images/split/image1439.bin,0,1 -10936698,999,assets/images/split/image1440.bin,0,1 -10937697,1098,assets/images/split/image1441.bin,0,1 -10938795,283,assets/images/split/image1442.bin,0,1 -10939078,300,assets/images/split/image1443.bin,0,1 -10939378,373,assets/images/split/image1444.bin,0,1 -10939751,638,assets/images/split/image1445.bin,0,1 -10940389,456,assets/images/split/image1446.bin,0,1 -10940845,737,assets/images/split/image1447.bin,0,1 -10941582,511,assets/images/split/image1448.bin,0,1 -10942093,760,assets/images/split/image1449.bin,0,1 -10942853,667,assets/images/split/image1450.bin,0,1 -10943520,632,assets/images/split/image1451.bin,0,1 -10944152,671,assets/images/split/image1452.bin,0,1 -10944823,593,assets/images/split/image1453.bin,0,1 -10945416,654,assets/images/split/image1454.bin,0,1 -10946070,622,assets/images/split/image1455.bin,0,1 -10946692,722,assets/images/split/image1456.bin,0,1 -10947414,913,assets/images/split/image1457.bin,0,1 -10948327,1074,assets/images/split/image1458.bin,0,1 -10949401,315,assets/images/split/image1459.bin,0,1 -10949716,634,assets/images/split/image1460.bin,0,1 -10950350,623,assets/images/split/image1461.bin,0,1 -10950973,1285,assets/images/split/image1462.bin,0,1 -10952258,1246,assets/images/split/image1463.bin,0,1 -10953504,1202,assets/images/split/image1464.bin,0,1 -10954706,827,assets/images/split/image1465.bin,0,1 -10955533,727,assets/images/split/image1466.bin,0,1 -10956260,438,assets/images/split/image1467.bin,0,1 -10956698,498,assets/images/split/image1468.bin,0,1 -10957196,1699,assets/images/split/image1469.bin,0,1 -10958895,1699,assets/images/split/image1470.bin,0,1 -10960594,639,assets/images/split/image1471.bin,0,1 -10961233,603,assets/images/split/image1472.bin,0,1 -10961836,420,assets/images/split/image1473.bin,0,1 -10962256,1410,assets/images/split/image1474.bin,0,1 -10963666,541,assets/images/split/image1475.bin,0,1 -10964207,1309,assets/images/split/image1476.bin,0,1 -10965516,1272,assets/images/split/image1477.bin,0,1 -10966788,1159,assets/images/split/image1478.bin,0,1 -10967947,872,assets/images/split/image1479.bin,0,1 -10968819,892,assets/images/split/image1480.bin,0,1 -10969711,1930,assets/images/split/image1481.bin,0,1 -10971641,73,assets/images/split/image1482.bin,0,1 -10971714,75,assets/images/split/image1483.bin,0,1 -10971789,51,assets/images/split/image1484.bin,0,1 -10971840,958,assets/images/split/image1485.bin,0,1 -10972798,190,assets/images/split/image1486.bin,0,1 -10972988,424,assets/images/split/image1487.bin,0,1 -10973412,1742,assets/images/split/image1488.bin,0,1 -10975154,1652,assets/images/split/image1489.bin,0,1 -10976806,1798,assets/images/split/image1490.bin,0,1 -10978604,1732,assets/images/split/image1491.bin,0,1 -10980336,1758,assets/images/split/image1492.bin,0,1 -10982094,1792,assets/images/split/image1493.bin,0,1 -10983886,1724,assets/images/split/image1494.bin,0,1 -10985610,1765,assets/images/split/image1495.bin,0,1 -10987375,1643,assets/images/split/image1496.bin,0,1 -10989018,1851,assets/images/split/image1497.bin,0,1 -10990869,998,assets/images/split/image1498.bin,0,1 -10991867,1028,assets/images/split/image1499.bin,0,1 -10992895,925,assets/images/split/image1500.bin,0,1 -10993820,746,assets/images/split/image1501.bin,0,1 -10994566,1396,assets/images/split/image1502.bin,0,1 -10995962,270,assets/images/split/image1503.bin,0,1 -10996232,528,assets/images/split/image1504.bin,0,1 -10996760,351,assets/images/split/image1505.bin,0,1 -10997111,785,assets/images/split/image1506.bin,0,1 -10997896,943,assets/images/split/image1507.bin,0,1 -10998839,1271,assets/images/split/image1508.bin,0,1 -11000110,650,assets/images/split/image1509.bin,0,1 -11000760,564,assets/images/split/image1510.bin,0,1 -11001324,658,assets/images/split/image1511.bin,0,1 -11001982,645,assets/images/split/image1512.bin,0,1 -11002627,1353,assets/images/split/image1513.bin,0,1 -11003980,502,assets/images/split/image1514.bin,0,1 -11004482,12,assets/images/split/image1515.bin,0,1 -11004494,360,assets/images/split/image1516.bin,0,1 -11004854,400,assets/images/split/image1517.bin,0,1 -11005254,592,assets/images/split/image1518.bin,0,1 -11005846,1402,assets/images/split/image1519.bin,0,1 -11007248,1068,assets/images/split/image1520.bin,0,1 -11008316,1279,assets/images/split/image1521.bin,0,1 -11009595,803,assets/images/split/image1522.bin,0,1 -11010398,479,assets/images/split/image1523.bin,0,1 -11010877,1283,assets/images/split/image1524.bin,0,1 -11012160,421,assets/images/split/image1525.bin,0,1 -11012581,748,assets/images/split/image1526.bin,0,1 -11013329,1157,assets/images/split/image1527.bin,0,1 -11014486,1832,assets/images/split/image1528.bin,0,1 -11016318,547,assets/images/split/image1529.bin,0,1 -11016865,971,assets/images/split/image1530.bin,0,1 -11017836,346,assets/images/split/image1531.bin,0,1 -11018182,231,assets/images/split/image1532.bin,0,1 -11018413,374,assets/images/split/image1533.bin,0,1 -11018787,436,assets/images/split/image1534.bin,0,1 -11019223,707,assets/images/split/image1535.bin,0,1 -11019930,680,assets/images/split/image1536.bin,0,1 -11020610,570,assets/images/split/image1537.bin,0,1 -11021180,582,assets/images/split/image1538.bin,0,1 -11021762,576,assets/images/split/image1539.bin,0,1 -11022338,636,assets/images/split/image1540.bin,0,1 -11022974,746,assets/images/split/image1541.bin,0,1 -11023720,1201,assets/images/split/image1542.bin,0,1 -11024921,1140,assets/images/split/image1543.bin,0,1 -11026061,1157,assets/images/split/image1544.bin,0,1 -11027218,2006,assets/images/split/image1545.bin,0,1 -11029224,2177,assets/images/split/image1546.bin,0,1 -11031401,1066,assets/images/split/image1547.bin,0,1 -11032467,1468,assets/images/split/image1548.bin,0,1 -11033935,1836,assets/images/split/image1549.bin,0,1 -11035771,2193,assets/images/split/image1550.bin,0,1 -11037964,1884,assets/images/split/image1551.bin,0,1 -11039848,2268,assets/images/split/image1552.bin,0,1 -11042116,2378,assets/images/split/image1553.bin,0,1 -11044494,2340,assets/images/split/image1554.bin,0,1 -11046834,2416,assets/images/split/image1555.bin,0,1 -11049250,590,assets/images/split/image1556.bin,0,1 -11049840,2468,assets/images/split/image1557.bin,0,1 -11052308,823,assets/images/split/image1558.bin,0,1 -11053131,1544,assets/images/split/image1559.bin,0,1 -11054675,1548,assets/images/split/image1560.bin,0,1 -11056223,2535,assets/images/split/image1561.bin,0,1 -11058758,2524,assets/images/split/image1562.bin,0,1 -11061282,2498,assets/images/split/image1563.bin,0,1 -11063780,504,assets/images/split/image1564.bin,0,1 -11064284,593,assets/images/split/image1565.bin,0,1 -11064877,562,assets/images/split/image1566.bin,0,1 -11065439,507,assets/images/split/image1567.bin,0,1 -11065946,1472,assets/images/split/image1568.bin,0,1 -11067418,1031,assets/images/split/image1569.bin,0,1 -11068449,2537,assets/images/split/image1570.bin,0,1 -11070986,2214,assets/images/split/image1571.bin,0,1 -11073200,2408,assets/images/split/image1572.bin,0,1 -11075608,1477,assets/images/split/image1573.bin,0,1 -11077085,1050,assets/images/split/image1574.bin,0,1 -11078135,902,assets/images/split/image1575.bin,0,1 -11079037,990,assets/images/split/image1576.bin,0,1 -11080027,626,assets/images/split/image1577.bin,0,1 -11080653,917,assets/images/split/image1578.bin,0,1 -11081570,848,assets/images/split/image1579.bin,0,1 -11082418,748,assets/images/split/image1580.bin,0,1 -11083166,804,assets/images/split/image1581.bin,0,1 -11083970,710,assets/images/split/image1582.bin,0,1 -11084680,1822,assets/images/split/image1583.bin,0,1 -11086502,1807,assets/images/split/image1584.bin,0,1 -11088309,857,assets/images/split/image1585.bin,0,1 -11089166,969,assets/images/split/image1586.bin,0,1 -11090135,928,assets/images/split/image1587.bin,0,1 -11091063,875,assets/images/split/image1588.bin,0,1 -11091938,183,assets/images/split/image1589.bin,0,1 -11092121,1275,assets/images/split/image1590.bin,0,1 -11093396,1343,assets/images/split/image1591.bin,0,1 -11094739,1233,assets/images/split/image1592.bin,0,1 -11095972,1805,assets/images/split/image1593.bin,0,1 -11097777,732,assets/images/split/image1594.bin,0,1 -11098509,934,assets/images/split/image1595.bin,0,1 -11099443,411,assets/images/split/image1596.bin,0,1 -11099854,972,assets/images/split/image1597.bin,0,1 -11100826,40,assets/images/split/image1598.bin,0,1 -11100866,53,assets/images/split/image1599.bin,0,1 -11100919,567,assets/images/split/image1600.bin,0,1 -11101486,933,assets/images/split/image1601.bin,0,1 -11102419,910,assets/images/split/image1602.bin,0,1 -11103329,677,assets/images/split/image1603.bin,0,1 -11104006,655,assets/images/split/image1604.bin,0,1 -11104661,12,assets/images/split/image1605.bin,0,1 -11104673,475,assets/images/split/image1606.bin,0,1 -11105148,1883,assets/images/split/image1607.bin,0,1 -11107031,632,assets/images/split/image1608.bin,0,1 -11107663,12,assets/images/split/image1609.bin,0,1 -11107675,983,assets/images/split/image1610.bin,0,1 -11108658,341,assets/images/split/image1611.bin,0,1 -11108999,1019,assets/images/split/image1612.bin,0,1 -11110018,941,assets/images/split/image1613.bin,0,1 -11110959,1436,assets/images/split/image1614.bin,0,1 -11112395,305,assets/images/split/image1615.bin,0,1 -11112700,953,assets/images/split/image1616.bin,0,1 -11113653,1268,assets/images/split/image1617.bin,0,1 -11114921,335,assets/images/split/image1618.bin,0,1 -11115256,949,assets/images/split/image1619.bin,0,1 -11116205,1174,assets/images/split/image1620.bin,0,1 -11117379,366,assets/images/split/image1621.bin,0,1 -11117745,971,assets/images/split/image1622.bin,0,1 -11118716,1255,assets/images/split/image1623.bin,0,1 -11119971,434,assets/images/split/image1624.bin,0,1 -11120405,2144,assets/images/split/image1625.bin,0,1 -11122549,2170,assets/images/split/image1626.bin,0,1 -11124719,1788,assets/images/split/image1627.bin,0,1 -11126507,335,assets/images/split/image1628.bin,0,1 -11126842,762,assets/images/split/image1629.bin,0,1 -11127604,767,assets/images/split/image1630.bin,0,1 -11128371,308,assets/images/split/image1631.bin,0,1 -11128679,724,assets/images/split/image1632.bin,0,1 -11129403,1278,assets/images/split/image1633.bin,0,1 -11130681,1332,assets/images/split/image1634.bin,0,1 -11132013,899,assets/images/split/image1635.bin,0,1 -11132912,874,assets/images/split/image1636.bin,0,1 -11133786,753,assets/images/split/image1637.bin,0,1 -11134539,876,assets/images/split/image1638.bin,0,1 -11135415,314,assets/images/split/image1639.bin,0,1 -11135729,55,assets/images/split/image1640.bin,0,1 -11135784,921,assets/images/split/image1641.bin,0,1 -11136705,745,assets/images/split/image1642.bin,0,1 -11137450,1055,assets/images/split/image1643.bin,0,1 -11138505,812,assets/images/split/image1644.bin,0,1 -11139317,1470,assets/images/split/image1645.bin,0,1 -11140787,717,assets/images/split/image1646.bin,0,1 -11141504,781,assets/images/split/image1647.bin,0,1 -11142285,1486,assets/images/split/image1648.bin,0,1 -11143771,1832,assets/images/split/image1649.bin,0,1 -11145603,1148,assets/images/split/image1650.bin,0,1 -11146751,1522,assets/images/split/image1651.bin,0,1 -11148273,64,assets/images/split/image1652.bin,0,1 -11148337,1724,assets/images/split/image1653.bin,0,1 -11150061,2474,assets/images/split/image1654.bin,0,1 -11152535,2042,assets/images/split/image1655.bin,0,1 -11154577,1022,assets/images/split/image1656.bin,0,1 -11155599,1230,assets/images/split/image1657.bin,0,1 -11156829,700,assets/images/split/image1658.bin,0,1 -11157529,1488,assets/images/split/image1659.bin,0,1 -11159017,1389,assets/images/split/image1660.bin,0,1 -11160406,1937,assets/images/split/image1661.bin,0,1 -11162343,2385,assets/images/split/image1662.bin,0,1 -11164728,1933,assets/images/split/image1663.bin,0,1 -11166661,590,assets/images/split/image1664.bin,0,1 -11167251,781,assets/images/split/image1665.bin,0,1 -11168032,2358,assets/images/split/image1666.bin,0,1 -11170390,1233,assets/images/split/image1667.bin,0,1 -11171623,1358,assets/images/split/image1668.bin,0,1 -11172981,374,assets/images/split/image1669.bin,0,1 -11173355,1441,assets/images/split/image1670.bin,0,1 -11174796,1414,assets/images/split/image1671.bin,0,1 -11176210,12,assets/images/split/image1672.bin,0,1 -11176222,1122,assets/images/split/image1673.bin,0,1 -11177344,1527,assets/images/split/image1674.bin,0,1 -11178871,1844,assets/images/split/image1675.bin,0,1 -11180715,1850,assets/images/split/image1676.bin,0,1 -11182565,1735,assets/images/split/image1677.bin,0,1 -11184300,1945,assets/images/split/image1678.bin,0,1 -11186245,1125,assets/images/split/image1679.bin,0,1 -11187370,1630,assets/images/split/image1680.bin,0,1 -11189000,1179,assets/images/split/image1681.bin,0,1 -11190179,1664,assets/images/split/image1682.bin,0,1 -11191843,2444,assets/images/split/image1683.bin,0,1 -11194287,2336,assets/images/split/image1684.bin,0,1 -11196623,2333,assets/images/split/image1685.bin,0,1 -11198956,2494,assets/images/split/image1686.bin,0,1 -11201450,1647,assets/images/split/image1687.bin,0,1 -11203097,1553,assets/images/split/image1688.bin,0,1 -11204650,1459,assets/images/split/image1689.bin,0,1 -11206109,327,assets/images/split/image1690.bin,0,1 -11206436,1690,assets/images/split/image1691.bin,0,1 -11208126,1333,assets/images/split/image1692.bin,0,1 -11209459,1034,assets/images/split/image1693.bin,0,1 -11210493,796,assets/images/split/image1694.bin,0,1 -11211289,720,assets/images/split/image1695.bin,0,1 -11212009,703,assets/images/split/image1696.bin,0,1 -11212712,2456,assets/images/split/image1697.bin,0,1 -11215168,449,assets/images/split/image1698.bin,0,1 -11215617,692,assets/images/split/image1699.bin,0,1 -11216309,796,assets/images/split/image1700.bin,0,1 -11217105,904,assets/images/split/image1701.bin,0,1 -11218009,1006,assets/images/split/image1702.bin,0,1 -11219015,2267,assets/images/split/image1703.bin,0,1 -11221282,2137,assets/images/split/image1704.bin,0,1 -11223419,874,assets/images/split/image1705.bin,0,1 -11224293,2391,assets/images/split/image1706.bin,0,1 -11226684,2463,assets/images/split/image1707.bin,0,1 -11229147,2512,assets/images/split/image1708.bin,0,1 -11231659,1686,assets/images/split/image1709.bin,0,1 -11233345,446,assets/images/split/image1710.bin,0,1 -11233791,673,assets/images/split/image1711.bin,0,1 -11234464,1368,assets/images/split/image1712.bin,0,1 -11235832,443,assets/images/split/image1713.bin,0,1 -11236275,695,assets/images/split/image1714.bin,0,1 -11236970,643,assets/images/split/image1715.bin,0,1 -11237613,592,assets/images/split/image1716.bin,0,1 -11238205,705,assets/images/split/image1717.bin,0,1 -11238910,1249,assets/images/split/image1718.bin,0,1 -11240159,876,assets/images/split/image1719.bin,0,1 -11241035,775,assets/images/split/image1720.bin,0,1 -11241810,746,assets/images/split/image1721.bin,0,1 -11242556,705,assets/images/split/image1722.bin,0,1 -11243261,2371,assets/images/split/image1723.bin,0,1 -11245632,2243,assets/images/split/image1724.bin,0,1 -11247875,2311,assets/images/split/image1725.bin,0,1 -11250186,12,assets/images/split/image1726.bin,0,1 -11250198,2514,assets/images/split/image1727.bin,0,1 -11252712,2483,assets/images/split/image1728.bin,0,1 -11255195,2448,assets/images/split/image1729.bin,0,1 -11257643,1022,assets/images/split/image1730.bin,0,1 -11258665,1034,assets/images/split/image1731.bin,0,1 -11259699,1095,assets/images/split/image1732.bin,0,1 -11260794,1048,assets/images/split/image1733.bin,0,1 -11261842,2099,assets/images/split/image1734.bin,0,1 -11263941,2025,assets/images/split/image1735.bin,0,1 -11265966,833,assets/images/split/image1736.bin,0,1 -11266799,369,assets/images/split/image1737.bin,0,1 -11267168,1543,assets/images/split/image1738.bin,0,1 -11268711,1421,assets/images/split/image1739.bin,0,1 -11270132,951,assets/images/split/image1740.bin,0,1 -11271083,1024,assets/images/split/image1741.bin,0,1 -11272107,1114,assets/images/split/image1742.bin,0,1 -11273221,1810,assets/images/split/image1743.bin,0,1 -11275031,550,assets/images/split/image1744.bin,0,1 -11275581,1045,assets/images/split/image1745.bin,0,1 -11276626,1333,assets/images/split/image1746.bin,0,1 -11277959,1908,assets/images/split/image1747.bin,0,1 -11279867,1960,assets/images/split/image1748.bin,0,1 -11281827,1901,assets/images/split/image1749.bin,0,1 -11283728,636,assets/images/split/image1750.bin,0,1 -11284364,681,assets/images/split/image1751.bin,0,1 -11285045,267,assets/images/split/image1752.bin,0,1 -11285312,834,assets/images/split/image1753.bin,0,1 -11286146,485,assets/images/split/image1754.bin,0,1 -11286631,507,assets/images/split/image1755.bin,0,1 -11287138,1480,assets/images/split/image1756.bin,0,1 -11288618,923,assets/images/split/image1757.bin,0,1 -11289541,1046,assets/images/split/image1758.bin,0,1 -11290587,1106,assets/images/split/image1759.bin,0,1 -11291693,1064,assets/images/split/image1760.bin,0,1 -11292757,667,assets/images/split/image1761.bin,0,1 -11293424,466,assets/images/split/image1762.bin,0,1 -11293890,1626,assets/images/split/image1763.bin,0,1 -11295516,2404,assets/images/split/image1764.bin,0,1 -11297920,2236,assets/images/split/image1765.bin,0,1 -11300156,2280,assets/images/split/image1766.bin,0,1 -11302436,2538,assets/images/split/image1767.bin,0,1 -11304974,2475,assets/images/split/image1768.bin,0,1 -11307449,2485,assets/images/split/image1769.bin,0,1 -11309934,908,assets/images/split/image1770.bin,0,1 -11310842,1369,assets/images/split/image1771.bin,0,1 -11312211,1639,assets/images/split/image1772.bin,0,1 -11313850,1402,assets/images/split/image1773.bin,0,1 -11315252,1152,assets/images/split/image1774.bin,0,1 -11316404,416,assets/images/split/image1775.bin,0,1 -11316820,246,assets/images/split/image1776.bin,0,1 -11317066,791,assets/images/split/image1777.bin,0,1 -11317857,894,assets/images/split/image1778.bin,0,1 -11318751,1562,assets/images/split/image1779.bin,0,1 -11320313,1205,assets/images/split/image1780.bin,0,1 -11321518,313,assets/images/split/image1781.bin,0,1 -11321831,322,assets/images/split/image1782.bin,0,1 -11322153,401,assets/images/split/image1783.bin,0,1 -11322554,769,assets/images/split/image1784.bin,0,1 -11323323,450,assets/images/split/image1785.bin,0,1 -11323773,871,assets/images/split/image1786.bin,0,1 -11324644,989,assets/images/split/image1787.bin,0,1 -11325633,902,assets/images/split/image1788.bin,0,1 -11326535,830,assets/images/split/image1789.bin,0,1 -11327365,778,assets/images/split/image1790.bin,0,1 -11328143,744,assets/images/split/image1791.bin,0,1 -11328887,832,assets/images/split/image1792.bin,0,1 -11329719,872,assets/images/split/image1793.bin,0,1 -11330591,981,assets/images/split/image1794.bin,0,1 -11331572,987,assets/images/split/image1795.bin,0,1 -11332559,1239,assets/images/split/image1796.bin,0,1 -11333798,1176,assets/images/split/image1797.bin,0,1 -11334974,1181,assets/images/split/image1798.bin,0,1 -11336155,746,assets/images/split/image1799.bin,0,1 -11336901,884,assets/images/split/image1800.bin,0,1 -11337785,1676,assets/images/split/image1801.bin,0,1 -11339461,1838,assets/images/split/image1802.bin,0,1 -11341299,2274,assets/images/split/image1803.bin,0,1 -11343573,2080,assets/images/split/image1804.bin,0,1 -11345653,2209,assets/images/split/image1805.bin,0,1 -11347862,2106,assets/images/split/image1806.bin,0,1 -11349968,502,assets/images/split/image1807.bin,0,1 -11350470,468,assets/images/split/image1808.bin,0,1 -11350938,756,assets/images/split/image1809.bin,0,1 -11351694,318,assets/images/split/image1810.bin,0,1 -11352012,371,assets/images/split/image1811.bin,0,1 -11352383,1656,assets/images/split/image1812.bin,0,1 -11354039,665,assets/images/split/image1813.bin,0,1 -11354704,1443,assets/images/split/image1814.bin,0,1 -11356147,2572,assets/images/split/image1815.bin,0,1 -11358719,2531,assets/images/split/image1816.bin,0,1 -11361250,2537,assets/images/split/image1817.bin,0,1 -11363787,2368,assets/images/split/image1818.bin,0,1 -11366155,2482,assets/images/split/image1819.bin,0,1 -11368637,2406,assets/images/split/image1820.bin,0,1 -11371043,2529,assets/images/split/image1821.bin,0,1 -11373572,2345,assets/images/split/image1822.bin,0,1 -11375917,2376,assets/images/split/image1823.bin,0,1 -11378293,2536,assets/images/split/image1824.bin,0,1 -11380829,2509,assets/images/split/image1825.bin,0,1 -11383338,2468,assets/images/split/image1826.bin,0,1 -11385806,2401,assets/images/split/image1827.bin,0,1 -11388207,2405,assets/images/split/image1828.bin,0,1 -11390612,2313,assets/images/split/image1829.bin,0,1 -11392925,915,assets/images/split/image1830.bin,0,1 -11393840,343,assets/images/split/image1831.bin,0,1 -11394183,651,assets/images/split/image1832.bin,0,1 -11394834,786,assets/images/split/image1833.bin,0,1 -11395620,2521,assets/images/split/image1834.bin,0,1 -11398141,2309,assets/images/split/image1835.bin,0,1 -11400450,2344,assets/images/split/image1836.bin,0,1 -11402794,631,assets/images/split/image1837.bin,0,1 -11403425,636,assets/images/split/image1838.bin,0,1 -11404061,278,assets/images/split/image1839.bin,0,1 -11404339,455,assets/images/split/image1840.bin,0,1 -11404794,260,assets/images/split/image1841.bin,0,1 -11405054,648,assets/images/split/image1842.bin,0,1 -11405702,1565,assets/images/split/image1843.bin,0,1 -11407267,389,assets/images/split/image1844.bin,0,1 -11407656,2137,assets/images/split/image1845.bin,0,1 -11409793,2207,assets/images/split/image1846.bin,0,1 -11412000,2024,assets/images/split/image1847.bin,0,1 -11414024,2470,assets/images/split/image1848.bin,0,1 -11416494,2221,assets/images/split/image1849.bin,0,1 -11418715,2239,assets/images/split/image1850.bin,0,1 -11420954,2345,assets/images/split/image1851.bin,0,1 -11423299,2393,assets/images/split/image1852.bin,0,1 -11425692,2363,assets/images/split/image1853.bin,0,1 -11428055,2288,assets/images/split/image1854.bin,0,1 -11430343,2232,assets/images/split/image1855.bin,0,1 -11432575,2355,assets/images/split/image1856.bin,0,1 -11434930,1243,assets/images/split/image1857.bin,0,1 -11436173,2369,assets/images/split/image1858.bin,0,1 -11438542,1731,assets/images/split/image1859.bin,0,1 -11440273,2116,assets/images/split/image1860.bin,0,1 -11442389,810,assets/images/split/image1861.bin,0,1 -11443199,1546,assets/images/split/image1862.bin,0,1 -11444745,934,assets/images/split/image1863.bin,0,1 -11445679,272,assets/images/split/image1864.bin,0,1 -11445951,694,assets/images/split/image1865.bin,0,1 -11446645,1829,assets/images/split/image1866.bin,0,1 -11448474,1278,assets/images/split/image1867.bin,0,1 -11449752,12,assets/images/split/image1868.bin,0,1 -11449764,2255,assets/images/split/image1869.bin,0,1 -11452019,2378,assets/images/split/image1870.bin,0,1 -11454397,2472,assets/images/split/image1871.bin,0,1 -11456869,1932,assets/images/split/image1872.bin,0,1 -11458801,2526,assets/images/split/image1873.bin,0,1 -11461327,276,assets/images/split/image1874.bin,0,1 -11461603,1407,assets/images/split/image1875.bin,0,1 -11463010,450,assets/images/split/image1876.bin,0,1 -11463460,2004,assets/images/split/image1877.bin,0,1 -11465464,2021,assets/images/split/image1878.bin,0,1 -11467485,2531,assets/images/split/image1879.bin,0,1 -11470016,1981,assets/images/split/image1880.bin,0,1 -11471997,1192,assets/images/split/image1881.bin,0,1 -11473189,186,assets/images/split/image1882.bin,0,1 -11473375,1489,assets/images/split/image1883.bin,0,1 -11474864,2412,assets/images/split/image1884.bin,0,1 -11477276,2170,assets/images/split/image1885.bin,0,1 -11479446,2048,assets/images/split/image1886.bin,0,1 -11481494,1136,assets/images/split/image1887.bin,0,1 -11482630,529,assets/images/split/image1888.bin,0,1 -11483159,522,assets/images/split/image1889.bin,0,1 -11483681,810,assets/images/split/image1890.bin,0,1 -11484491,999,assets/images/split/image1891.bin,0,1 -11485490,611,assets/images/split/image1892.bin,0,1 -11486101,2572,assets/images/split/image1893.bin,0,1 -11488673,1548,assets/images/split/image1894.bin,0,1 -11490221,1520,assets/images/split/image1895.bin,0,1 -11491741,1642,assets/images/split/image1896.bin,0,1 -11493383,802,assets/images/split/image1897.bin,0,1 -11494185,895,assets/images/split/image1898.bin,0,1 -11495080,895,assets/images/split/image1899.bin,0,1 -11495975,788,assets/images/split/image1900.bin,0,1 -11496763,819,assets/images/split/image1901.bin,0,1 -11497582,412,assets/images/split/image1902.bin,0,1 -11497994,562,assets/images/split/image1903.bin,0,1 -11498556,337,assets/images/split/image1904.bin,0,1 -11498893,374,assets/images/split/image1905.bin,0,1 -11499267,1961,assets/images/split/image1906.bin,0,1 -11501228,1946,assets/images/split/image1907.bin,0,1 -11503174,2354,assets/images/split/image1908.bin,0,1 -11505528,2253,assets/images/split/image1909.bin,0,1 -11507781,2254,assets/images/split/image1910.bin,0,1 -11510035,260,assets/images/split/image1911.bin,0,1 -11510295,755,assets/images/split/image1912.bin,0,1 -11511050,1460,assets/images/split/image1913.bin,0,1 -11512510,830,assets/images/split/image1914.bin,0,1 -11513340,1294,assets/images/split/image1915.bin,0,1 -11514634,1530,assets/images/split/image1916.bin,0,1 -11516164,1124,assets/images/split/image1917.bin,0,1 -11517288,12,assets/images/split/image1918.bin,0,1 -11517300,1399,assets/images/split/image1919.bin,0,1 -11518699,1411,assets/images/split/image1920.bin,0,1 -11520110,2212,assets/images/split/image1921.bin,0,1 -11522322,850,assets/images/split/image1922.bin,0,1 -11523172,727,assets/images/split/image1923.bin,0,1 -11523899,859,assets/images/split/image1924.bin,0,1 -11524758,963,assets/images/split/image1925.bin,0,1 -11525721,1143,assets/images/split/image1926.bin,0,1 -11526864,1151,assets/images/split/image1927.bin,0,1 -11528015,657,assets/images/split/image1928.bin,0,1 -11528672,2293,assets/images/split/image1929.bin,0,1 -11530965,2312,assets/images/split/image1930.bin,0,1 -11533277,2515,assets/images/split/image1931.bin,0,1 -11535792,2249,assets/images/split/image1932.bin,0,1 -11538041,672,assets/images/split/image1933.bin,0,1 -11538713,2104,assets/images/split/image1934.bin,0,1 -11540817,2037,assets/images/split/image1935.bin,0,1 -11542854,789,assets/images/split/image1936.bin,0,1 -11543643,1302,assets/images/split/image1937.bin,0,1 -11544945,1131,assets/images/split/image1938.bin,0,1 -11546076,773,assets/images/split/image1939.bin,0,1 -11546849,1246,assets/images/split/image1940.bin,0,1 -11548095,1131,assets/images/split/image1941.bin,0,1 -11549226,800,assets/images/split/image1942.bin,0,1 -11550026,1685,assets/images/split/image1943.bin,0,1 -11551711,2414,assets/images/split/image1944.bin,0,1 -11554125,2461,assets/images/split/image1945.bin,0,1 -11556586,2454,assets/images/split/image1946.bin,0,1 -11559040,910,assets/images/split/image1947.bin,0,1 -11559950,584,assets/images/split/image1948.bin,0,1 -11560534,716,assets/images/split/image1949.bin,0,1 -11561250,121,assets/images/split/image1950.bin,0,1 -11561371,1564,assets/images/split/image1951.bin,0,1 -11562935,1166,assets/images/split/image1952.bin,0,1 -11564101,1370,assets/images/split/image1953.bin,0,1 -11565471,1315,assets/images/split/image1954.bin,0,1 -11566786,1618,assets/images/split/image1955.bin,0,1 -11568404,1347,assets/images/split/image1956.bin,0,1 -11569751,1239,assets/images/split/image1957.bin,0,1 -11570990,1379,assets/images/split/image1958.bin,0,1 -11572369,966,assets/images/split/image1959.bin,0,1 -11573335,1094,assets/images/split/image1960.bin,0,1 -11574429,618,assets/images/split/image1961.bin,0,1 -11575047,1377,assets/images/split/image1962.bin,0,1 -11576424,601,assets/images/split/image1963.bin,0,1 -11577025,1879,assets/images/split/image1964.bin,0,1 -11578904,1810,assets/images/split/image1965.bin,0,1 -11580714,1067,assets/images/split/image1966.bin,0,1 -11581781,370,assets/images/split/image1967.bin,0,1 -11582151,860,assets/images/split/image1968.bin,0,1 -11583011,1017,assets/images/split/image1969.bin,0,1 -11584028,1428,assets/images/split/image1970.bin,0,1 -11585456,2442,assets/images/split/image1971.bin,0,1 -11587898,2315,assets/images/split/image1972.bin,0,1 -11590213,2501,assets/images/split/image1973.bin,0,1 -11592714,2275,assets/images/split/image1974.bin,0,1 -11594989,2377,assets/images/split/image1975.bin,0,1 -11597366,2319,assets/images/split/image1976.bin,0,1 -11599685,2572,assets/images/split/image1977.bin,0,1 -11602257,2400,assets/images/split/image1978.bin,0,1 -11604657,2396,assets/images/split/image1979.bin,0,1 -11607053,435,assets/images/split/image1980.bin,0,1 -11607488,1061,assets/images/split/image1981.bin,0,1 -11608549,1900,assets/images/split/image1982.bin,0,1 -11610449,1909,assets/images/split/image1983.bin,0,1 -11612358,431,assets/images/split/image1984.bin,0,1 -11612789,374,assets/images/split/image1985.bin,0,1 -11613163,704,assets/images/split/image1986.bin,0,1 -11613867,916,assets/images/split/image1987.bin,0,1 -11614783,774,assets/images/split/image1988.bin,0,1 -11615557,1373,assets/images/split/image1989.bin,0,1 -11616930,1342,assets/images/split/image1990.bin,0,1 -11618272,377,assets/images/split/image1991.bin,0,1 -11618649,381,assets/images/split/image1992.bin,0,1 -11619030,439,assets/images/split/image1993.bin,0,1 -11619469,460,assets/images/split/image1994.bin,0,1 -11619929,385,assets/images/split/image1995.bin,0,1 -11620314,240,assets/images/split/image1996.bin,0,1 -11620554,544,assets/images/split/image1997.bin,0,1 -11621098,2456,assets/images/split/image1998.bin,0,1 -11623554,2487,assets/images/split/image1999.bin,0,1 -11626041,2413,assets/images/split/image2000.bin,0,1 -11628454,2236,assets/images/split/image2001.bin,0,1 -11630690,2234,assets/images/split/image2002.bin,0,1 -11632924,2180,assets/images/split/image2003.bin,0,1 -11635104,2340,assets/images/split/image2004.bin,0,1 -11637444,2066,assets/images/split/image2005.bin,0,1 -11639510,630,assets/images/split/image2006.bin,0,1 -11640140,412,assets/images/split/image2007.bin,0,1 -11640552,254,assets/images/split/image2008.bin,0,1 -11640806,689,assets/images/split/image2009.bin,0,1 -11641495,617,assets/images/split/image2010.bin,0,1 -11642112,1896,assets/images/split/image2011.bin,0,1 -11644008,185,assets/images/split/image2012.bin,0,1 -11644193,228,assets/images/split/image2013.bin,0,1 -11644421,321,assets/images/split/image2014.bin,0,1 -11644742,783,assets/images/split/image2015.bin,0,1 -11645525,320,assets/images/split/image2016.bin,0,1 -11645845,920,assets/images/split/image2017.bin,0,1 -11646765,387,assets/images/split/image2018.bin,0,1 -11647152,303,assets/images/split/image2019.bin,0,1 -11647455,344,assets/images/split/image2020.bin,0,1 -11647799,430,assets/images/split/image2021.bin,0,1 -11648229,469,assets/images/split/image2022.bin,0,1 -11648698,196,assets/images/split/image2023.bin,0,1 -11648894,920,assets/images/split/image2024.bin,0,1 -11649814,703,assets/images/split/image2025.bin,0,1 -11650517,1889,assets/images/split/image2026.bin,0,1 -11652406,286,assets/images/split/image2027.bin,0,1 -11652692,955,assets/images/split/image2028.bin,0,1 -11653647,1620,assets/images/split/image2029.bin,0,1 -11655267,1463,assets/images/split/image2030.bin,0,1 -11656730,1647,assets/images/split/image2031.bin,0,1 -11658377,1731,assets/images/split/image2032.bin,0,1 -11660108,1024,assets/images/split/image2033.bin,0,1 -11661132,776,assets/images/split/image2034.bin,0,1 -11661908,898,assets/images/split/image2035.bin,0,1 -11662806,1444,assets/images/split/image2036.bin,0,1 -11664250,689,assets/images/split/image2037.bin,0,1 -11664939,1089,assets/images/split/image2038.bin,0,1 -11666028,500,assets/images/split/image2039.bin,0,1 -11666528,423,assets/images/split/image2040.bin,0,1 -11666951,2304,assets/images/split/image2041.bin,0,1 -11669255,2036,assets/images/split/image2042.bin,0,1 -11671291,293,assets/images/split/image2043.bin,0,1 -11671584,410,assets/images/split/image2044.bin,0,1 -11671994,1370,assets/images/split/image2045.bin,0,1 -11673364,560,assets/images/split/image2046.bin,0,1 -11673924,782,assets/images/split/image2047.bin,0,1 -11674706,2372,assets/images/split/image2048.bin,0,1 -11677078,641,assets/images/split/image2049.bin,0,1 -11677719,597,assets/images/split/image2050.bin,0,1 -11678316,1105,assets/images/split/image2051.bin,0,1 -11679421,958,assets/images/split/image2052.bin,0,1 -11680379,443,assets/images/split/image2053.bin,0,1 -11680822,1738,assets/images/split/image2054.bin,0,1 -11682560,1963,assets/images/split/image2055.bin,0,1 -11684523,967,assets/images/split/image2056.bin,0,1 -11685490,2418,assets/images/split/image2057.bin,0,1 -11687908,12,assets/images/split/image2058.bin,0,1 -11687920,406,assets/images/split/image2059.bin,0,1 -11688326,635,assets/images/split/image2060.bin,0,1 -11688961,426,assets/images/split/image2061.bin,0,1 -11689387,2433,assets/images/split/image2062.bin,0,1 -11691820,2411,assets/images/split/image2063.bin,0,1 -11694231,2307,assets/images/split/image2064.bin,0,1 -11696538,581,assets/images/split/image2065.bin,0,1 -11697119,303,assets/images/split/image2066.bin,0,1 -11697422,1163,assets/images/split/image2067.bin,0,1 -11698585,762,assets/images/split/image2068.bin,0,1 -11699347,1062,assets/images/split/image2069.bin,0,1 -11700409,1547,assets/images/split/image2070.bin,0,1 -11701956,1211,assets/images/split/image2071.bin,0,1 -11703167,906,assets/images/split/image2072.bin,0,1 -11704073,1119,assets/images/split/image2073.bin,0,1 -11705192,1170,assets/images/split/image2074.bin,0,1 -11706362,783,assets/images/split/image2075.bin,0,1 -11707145,1033,assets/images/split/image2076.bin,0,1 -11708178,918,assets/images/split/image2077.bin,0,1 -11709096,2478,assets/images/split/image2078.bin,0,1 -11711574,1960,assets/images/split/image2079.bin,0,1 -11713534,2226,assets/images/split/image2080.bin,0,1 -11715760,734,assets/images/split/image2081.bin,0,1 -11716494,936,assets/images/split/image2082.bin,0,1 -11717430,1717,assets/images/split/image2083.bin,0,1 -11719147,1578,assets/images/split/image2084.bin,0,1 -11720725,7,assets/images/split/image2085.bin,0,1 -11720732,8,assets/images/split/image2086.bin,0,1 -11720740,1245,assets/images/split/image2087.bin,0,1 -11721985,291,assets/images/split/image2088.bin,0,1 -11722276,943,assets/images/split/image2089.bin,0,1 -11723219,209,assets/images/split/image2090.bin,0,1 -11723428,1157,assets/images/split/image2091.bin,0,1 -11724585,254,assets/images/split/image2092.bin,0,1 -11724839,1061,assets/images/split/image2093.bin,0,1 -11725900,218,assets/images/split/image2094.bin,0,1 -11726118,787,assets/images/split/image2095.bin,0,1 -11726905,120,assets/images/split/image2096.bin,0,1 -11727025,170,assets/images/split/image2097.bin,0,1 -11727195,50,assets/images/split/image2098.bin,0,1 -11727245,971,assets/images/split/image2099.bin,0,1 -11728216,256,assets/images/split/image2100.bin,0,1 -11728472,1196,assets/images/split/image2101.bin,0,1 -11729668,274,assets/images/split/image2102.bin,0,1 -11729942,1365,assets/images/split/image2103.bin,0,1 -11731307,288,assets/images/split/image2104.bin,0,1 -11731595,1459,assets/images/split/image2105.bin,0,1 -11733054,306,assets/images/split/image2106.bin,0,1 -11733360,1517,assets/images/split/image2107.bin,0,1 -11734877,322,assets/images/split/image2108.bin,0,1 -11735199,1451,assets/images/split/image2109.bin,0,1 -11736650,311,assets/images/split/image2110.bin,0,1 -11736961,1408,assets/images/split/image2111.bin,0,1 -11738369,309,assets/images/split/image2112.bin,0,1 -11738678,1318,assets/images/split/image2113.bin,0,1 -11739996,301,assets/images/split/image2114.bin,0,1 -11740297,2297,assets/images/split/image2115.bin,0,1 -11742594,2246,assets/images/split/image2116.bin,0,1 -11744840,2094,assets/images/split/image2117.bin,0,1 -11746934,2245,assets/images/split/image2118.bin,0,1 -11749179,412,assets/images/split/image2119.bin,0,1 -11749591,2299,assets/images/split/image2120.bin,0,1 -11751890,1889,assets/images/split/image2121.bin,0,1 -11753779,1739,assets/images/split/image2122.bin,0,1 -11755518,1778,assets/images/split/image2123.bin,0,1 -11757296,1747,assets/images/split/image2124.bin,0,1 -11759043,1931,assets/images/split/image2125.bin,0,1 -11760974,1852,assets/images/split/image2126.bin,0,1 -11762826,1938,assets/images/split/image2127.bin,0,1 -11764764,1909,assets/images/split/image2128.bin,0,1 -11766673,1149,assets/images/split/image2129.bin,0,1 -11767822,1572,assets/images/split/image2130.bin,0,1 -11769394,1548,assets/images/split/image2131.bin,0,1 -11770942,1548,assets/images/split/image2132.bin,0,1 -11772490,1548,assets/images/split/image2133.bin,0,1 -11774038,1546,assets/images/split/image2134.bin,0,1 -11775584,3015,assets/images/split/image2135.bin,0,1 -11778599,1300,assets/images/split/image2136.bin,0,1 -11779899,1159,assets/images/split/image2137.bin,0,1 -11781058,2557,assets/images/split/image2138.bin,0,1 -11783615,2399,assets/images/split/image2139.bin,0,1 -11786014,1989,assets/images/split/image2140.bin,0,1 -11788003,2215,assets/images/split/image2141.bin,0,1 -11790218,1881,assets/images/split/image2142.bin,0,1 -11792099,1680,assets/images/split/image2143.bin,0,1 -11793779,1636,assets/images/split/image2144.bin,0,1 -11795415,1715,assets/images/split/image2145.bin,0,1 -11797130,2062,assets/images/split/image2146.bin,0,1 -11799192,1951,assets/images/split/image2147.bin,0,1 -11801143,1909,assets/images/split/image2148.bin,0,1 -11803052,1919,assets/images/split/image2149.bin,0,1 -11804971,1721,assets/images/split/image2150.bin,0,1 -11806692,1606,assets/images/split/image2151.bin,0,1 -11808298,1609,assets/images/split/image2152.bin,0,1 -11809907,1620,assets/images/split/image2153.bin,0,1 -11811527,1408,assets/images/split/image2154.bin,0,1 -11812935,1291,assets/images/split/image2155.bin,0,1 -11814226,1285,assets/images/split/image2156.bin,0,1 -11815511,1323,assets/images/split/image2157.bin,0,1 -11816834,2098,assets/images/split/image2158.bin,0,1 -11818932,2023,assets/images/split/image2159.bin,0,1 -11820955,2003,assets/images/split/image2160.bin,0,1 -11822958,1927,assets/images/split/image2161.bin,0,1 -11824885,538,assets/images/split/image2162.bin,0,1 -11825423,744,assets/images/split/image2163.bin,0,1 -11826167,910,assets/images/split/image2164.bin,0,1 -11827077,149,assets/images/split/image2165.bin,0,1 -11827226,643,assets/images/split/image2166.bin,0,1 -11827869,513,assets/images/split/image2167.bin,0,1 -11828382,142,assets/images/split/image2168.bin,0,1 -11828524,1017,assets/images/split/image2169.bin,0,1 -11829541,847,assets/images/split/image2170.bin,0,1 -11830388,1624,assets/images/split/image2171.bin,0,1 -11832012,1140,assets/images/split/image2172.bin,0,1 -11833152,540,assets/images/split/image2173.bin,0,1 -11833692,1321,assets/images/split/image2174.bin,0,1 -11835013,1104,assets/images/split/image2175.bin,0,1 -11836117,1111,assets/images/split/image2176.bin,0,1 -11837228,487,assets/images/split/image2177.bin,0,1 -11837715,1249,assets/images/split/image2178.bin,0,1 -11838964,414,assets/images/split/image2179.bin,0,1 -11839378,644,assets/images/split/image2180.bin,0,1 -11840022,923,assets/images/split/image2181.bin,0,1 -11840945,869,assets/images/split/image2182.bin,0,1 -11841814,1381,assets/images/split/image2183.bin,0,1 -11843195,1537,assets/images/split/image2184.bin,0,1 -11844732,1612,assets/images/split/image2185.bin,0,1 -11846344,1594,assets/images/split/image2186.bin,0,1 -11847938,1605,assets/images/split/image2187.bin,0,1 -11849543,909,assets/images/split/image2188.bin,0,1 -11850452,921,assets/images/split/image2189.bin,0,1 -11851373,1116,assets/images/split/image2190.bin,0,1 -11852489,846,assets/images/split/image2191.bin,0,1 -11853335,1039,assets/images/split/image2192.bin,0,1 -11854374,1067,assets/images/split/image2193.bin,0,1 -11855441,290,assets/images/split/image2194.bin,0,1 -11855731,1509,assets/images/split/image2195.bin,0,1 -11857240,1491,assets/images/split/image2196.bin,0,1 -11858731,1437,assets/images/split/image2197.bin,0,1 -11860168,1387,assets/images/split/image2198.bin,0,1 -11861555,1415,assets/images/split/image2199.bin,0,1 -11862970,1418,assets/images/split/image2200.bin,0,1 -11864388,378,assets/images/split/image2201.bin,0,1 -11864766,1527,assets/images/split/image2202.bin,0,1 -11866293,1526,assets/images/split/image2203.bin,0,1 -11867819,1421,assets/images/split/image2204.bin,0,1 -11869240,1494,assets/images/split/image2205.bin,0,1 -11870734,1514,assets/images/split/image2206.bin,0,1 -11872248,1318,assets/images/split/image2207.bin,0,1 -11873566,491,assets/images/split/image2208.bin,0,1 -11874057,459,assets/images/split/image2209.bin,0,1 -11874516,492,assets/images/split/image2210.bin,0,1 -11875008,1084,assets/images/split/image2211.bin,0,1 -11876092,1090,assets/images/split/image2212.bin,0,1 -11877182,1083,assets/images/split/image2213.bin,0,1 -11878265,1083,assets/images/split/image2214.bin,0,1 -11879348,1718,assets/images/split/image2215.bin,0,1 -11881066,432,assets/images/split/image2216.bin,0,1 -11881498,431,assets/images/split/image2217.bin,0,1 -11881929,433,assets/images/split/image2218.bin,0,1 -11882362,450,assets/images/split/image2219.bin,0,1 -11882812,795,assets/images/split/image2220.bin,0,1 -11883607,820,assets/images/split/image2221.bin,0,1 -11884427,816,assets/images/split/image2222.bin,0,1 -11885243,837,assets/images/split/image2223.bin,0,1 -11886080,455,assets/images/split/image2224.bin,0,1 -11886535,136,assets/images/split/image2225.bin,0,1 -11886671,50,assets/images/split/image2226.bin,0,1 -11886721,84,assets/images/split/image2227.bin,0,1 -11886805,1609,assets/images/split/image2228.bin,0,1 -11888414,1713,assets/images/split/image2229.bin,0,1 -11890127,1717,assets/images/split/image2230.bin,0,1 -11891844,1128,assets/images/split/image2231.bin,0,1 -11892972,186,assets/images/split/image2232.bin,0,1 -11893158,395,assets/images/split/image2233.bin,0,1 -11893553,143,assets/images/split/image2234.bin,0,1 -11893696,735,assets/images/split/image2235.bin,0,1 -11894431,737,assets/images/split/image2236.bin,0,1 -11895168,1027,assets/images/split/image2237.bin,0,1 -11896195,430,assets/images/split/image2238.bin,0,1 -11896625,736,assets/images/split/image2239.bin,0,1 -11897361,2529,assets/images/split/image2240.bin,0,1 -11899890,2547,assets/images/split/image2241.bin,0,1 -11902437,1461,assets/images/split/image2242.bin,0,1 -11903898,1220,assets/images/split/image2243.bin,0,1 -11905118,1112,assets/images/split/image2244.bin,0,1 -11906230,1917,assets/images/split/image2245.bin,0,1 -11908147,3026,assets/images/split/image2246.bin,0,1 -11911173,2511,assets/images/split/image2247.bin,0,1 -11913684,1667,assets/images/split/image2248.bin,0,1 -11915351,880,assets/images/split/image2249.bin,0,1 -11916231,3211,assets/images/split/image2250.bin,0,1 -11919442,1499,assets/images/split/image2251.bin,0,1 -11920941,1508,assets/images/split/image2252.bin,0,1 -11922449,1428,assets/images/split/image2253.bin,0,1 -11923877,1435,assets/images/split/image2254.bin,0,1 -11925312,1042,assets/images/split/image2255.bin,0,1 -11926354,478,assets/images/split/image2256.bin,0,1 -11926832,731,assets/images/split/image2257.bin,0,1 -11927563,811,assets/images/split/image2258.bin,0,1 -11928374,860,assets/images/split/image2259.bin,0,1 -11929234,691,assets/images/split/image2260.bin,0,1 -11929925,2106,assets/images/split/image2261.bin,0,1 -11932031,1438,assets/images/split/image2262.bin,0,1 -11933469,1770,assets/images/split/image2263.bin,0,1 -11935239,426,assets/images/split/image2264.bin,0,1 -11935665,848,assets/images/split/image2265.bin,0,1 -11936513,1179,assets/images/split/image2266.bin,0,1 -11937692,1792,assets/images/split/image2267.bin,0,1 -11939484,1999,assets/images/split/image2268.bin,0,1 -11941483,1995,assets/images/split/image2269.bin,0,1 -11943478,1749,assets/images/split/image2270.bin,0,1 -11945227,1268,assets/images/split/image2271.bin,0,1 -11946495,1197,assets/images/split/image2272.bin,0,1 -11947692,528,assets/images/split/image2273.bin,0,1 -11948220,834,assets/images/split/image2274.bin,0,1 -11949054,167,assets/images/split/image2275.bin,0,1 -11949221,448,assets/images/split/image2276.bin,0,1 -11949669,851,assets/images/split/image2277.bin,0,1 -11950520,1036,assets/images/split/image2278.bin,0,1 -11951556,954,assets/images/split/image2279.bin,0,1 -11952510,1024,assets/images/split/image2280.bin,0,1 -11953534,3646,assets/images/split/image2281.bin,0,1 -11957180,1058,assets/images/split/image2282.bin,0,1 -11958238,1024,assets/images/split/image2283.bin,0,1 -11959262,661,assets/images/split/image2284.bin,0,1 -11959923,1493,assets/images/split/image2285.bin,0,1 -11961416,547,assets/images/split/image2286.bin,0,1 -11961963,600,assets/images/split/image2287.bin,0,1 -11962563,578,assets/images/split/image2288.bin,0,1 -11963141,442,assets/images/split/image2289.bin,0,1 -11963583,467,assets/images/split/image2290.bin,0,1 -11964050,252,assets/images/split/image2291.bin,0,1 -11964302,494,assets/images/split/image2292.bin,0,1 -11964796,442,assets/images/split/image2293.bin,0,1 -11965238,491,assets/images/split/image2294.bin,0,1 -11965729,574,assets/images/split/image2295.bin,0,1 -11966303,1379,assets/images/split/image2296.bin,0,1 -11967682,443,assets/images/split/image2297.bin,0,1 -11968125,397,assets/images/split/image2298.bin,0,1 -11968522,640,assets/images/split/image2299.bin,0,1 -11969162,157,assets/images/split/image2300.bin,0,1 -11969319,788,assets/images/split/image2301.bin,0,1 -11970107,967,assets/images/split/image2302.bin,0,1 -11971074,1377,assets/images/split/image2303.bin,0,1 -11972451,995,assets/images/split/image2304.bin,0,1 -11973446,1247,assets/images/split/image2305.bin,0,1 -11974693,1068,assets/images/split/image2306.bin,0,1 -11975761,1540,assets/images/split/image2307.bin,0,1 -11977301,241,assets/images/split/image2308.bin,0,1 -11977542,823,assets/images/split/image2309.bin,0,1 -11978365,1098,assets/images/split/image2310.bin,0,1 -11979463,1279,assets/images/split/image2311.bin,0,1 -11980742,407,assets/images/split/image2312.bin,0,1 -11981149,767,assets/images/split/image2313.bin,0,1 -11981916,684,assets/images/split/image2314.bin,0,1 -11982600,774,assets/images/split/image2315.bin,0,1 -11983374,996,assets/images/split/image2316.bin,0,1 -11984370,649,assets/images/split/image2317.bin,0,1 -11985019,666,assets/images/split/image2318.bin,0,1 -11985685,1199,assets/images/split/image2319.bin,0,1 -11986884,1087,assets/images/split/image2320.bin,0,1 -11987971,1008,assets/images/split/image2321.bin,0,1 -11988979,1012,assets/images/split/image2322.bin,0,1 -11989991,1055,assets/images/split/image2323.bin,0,1 -11991046,966,assets/images/split/image2324.bin,0,1 -11992012,1053,assets/images/split/image2325.bin,0,1 -11993065,720,assets/images/split/image2326.bin,0,1 -11993785,659,assets/images/split/image2327.bin,0,1 -11994444,998,assets/images/split/image2328.bin,0,1 -11995442,526,assets/images/split/image2329.bin,0,1 -11995968,887,assets/images/split/image2330.bin,0,1 -11996855,923,assets/images/split/image2331.bin,0,1 -11997778,1308,assets/images/split/image2332.bin,0,1 -11999086,690,assets/images/split/image2333.bin,0,1 -11999776,1284,assets/images/split/image2334.bin,0,1 -12001060,1453,assets/images/split/image2335.bin,0,1 -12002513,739,assets/images/split/image2336.bin,0,1 -12003252,1023,assets/images/split/image2337.bin,0,1 -12004275,423,assets/images/split/image2338.bin,0,1 -12004698,706,assets/images/split/image2339.bin,0,1 -12005404,237,assets/images/split/image2340.bin,0,1 -12005641,722,assets/images/split/image2341.bin,0,1 -12006363,1284,assets/images/split/image2342.bin,0,1 -12007647,1085,assets/images/split/image2343.bin,0,1 -12008732,1049,assets/images/split/image2344.bin,0,1 -12009781,693,assets/images/split/image2345.bin,0,1 -12010474,1548,assets/images/split/image2346.bin,0,1 -12012022,669,assets/images/split/image2347.bin,0,1 -12012691,1262,assets/images/split/image2348.bin,0,1 -12013953,1265,assets/images/split/image2349.bin,0,1 -12015218,566,assets/images/split/image2350.bin,0,1 -12015784,852,assets/images/split/image2351.bin,0,1 -12016636,654,assets/images/split/image2352.bin,0,1 -12017290,1018,assets/images/split/image2353.bin,0,1 -12018308,1234,assets/images/split/image2354.bin,0,1 -12019542,1412,assets/images/split/image2355.bin,0,1 -12020954,1022,assets/images/split/image2356.bin,0,1 -12021976,1195,assets/images/split/image2357.bin,0,1 -12023171,1140,assets/images/split/image2358.bin,0,1 -12024311,1136,assets/images/split/image2359.bin,0,1 -12025447,1088,assets/images/split/image2360.bin,0,1 -12026535,1228,assets/images/split/image2361.bin,0,1 -12027763,1231,assets/images/split/image2362.bin,0,1 -12028994,1191,assets/images/split/image2363.bin,0,1 -12030185,394,assets/images/split/image2364.bin,0,1 -12030579,422,assets/images/split/image2365.bin,0,1 -12031001,330,assets/images/split/image2366.bin,0,1 -12031331,899,assets/images/split/image2367.bin,0,1 -12032230,508,assets/images/split/image2368.bin,0,1 -12032738,389,assets/images/split/image2369.bin,0,1 -12033127,977,assets/images/split/image2370.bin,0,1 -12034104,1204,assets/images/split/image2371.bin,0,1 -12035308,1397,assets/images/split/image2372.bin,0,1 -12036705,1037,assets/images/split/image2373.bin,0,1 -12037742,2035,assets/images/split/image2374.bin,0,1 -12039777,1581,assets/images/split/image2375.bin,0,1 -12041358,780,assets/images/split/image2376.bin,0,1 -12042138,1046,assets/images/split/image2377.bin,0,1 -12043184,1092,assets/images/split/image2378.bin,0,1 -12044276,426,assets/images/split/image2379.bin,0,1 -12044702,545,assets/images/split/image2380.bin,0,1 -12045247,1608,assets/images/split/image2381.bin,0,1 -12046855,1056,assets/images/split/image2382.bin,0,1 -12047911,1021,assets/images/split/image2383.bin,0,1 -12048932,1027,assets/images/split/image2384.bin,0,1 -12049959,1032,assets/images/split/image2385.bin,0,1 -12050991,1109,assets/images/split/image2386.bin,0,1 -12052100,1020,assets/images/split/image2387.bin,0,1 -12053120,1032,assets/images/split/image2388.bin,0,1 -12054152,787,assets/images/split/image2389.bin,0,1 -12054939,813,assets/images/split/image2390.bin,0,1 -12055752,635,assets/images/split/image2391.bin,0,1 -12056387,693,assets/images/split/image2392.bin,0,1 -12057080,1306,assets/images/split/image2393.bin,0,1 -12058386,996,assets/images/split/image2394.bin,0,1 -12059382,659,assets/images/split/image2395.bin,0,1 -12060041,908,assets/images/split/image2396.bin,0,1 -12060949,1171,assets/images/split/image2397.bin,0,1 -12062120,790,assets/images/split/image2398.bin,0,1 -12062910,730,assets/images/split/image2399.bin,0,1 -12063640,694,assets/images/split/image2400.bin,0,1 -12064334,772,assets/images/split/image2401.bin,0,1 -12065106,654,assets/images/split/image2402.bin,0,1 -12065760,895,assets/images/split/image2403.bin,0,1 -12066655,1548,assets/images/split/image2404.bin,0,1 -12068203,1548,assets/images/split/image2405.bin,0,1 -12069751,958,assets/images/split/image2406.bin,0,1 -12070709,1548,assets/images/split/image2407.bin,0,1 -12072257,596,assets/images/split/image2408.bin,0,1 -12072853,1225,assets/images/split/image2409.bin,0,1 -12074078,1548,assets/images/split/image2410.bin,0,1 -12075626,1599,assets/images/split/image2411.bin,0,1 -12077225,1521,assets/images/split/image2412.bin,0,1 -12078746,1791,assets/images/split/image2413.bin,0,1 -12080537,1594,assets/images/split/image2414.bin,0,1 -12082131,746,assets/images/split/image2415.bin,0,1 -12082877,1055,assets/images/split/image2416.bin,0,1 -12083932,829,assets/images/split/image2417.bin,0,1 -12084761,933,assets/images/split/image2418.bin,0,1 -12085694,814,assets/images/split/image2419.bin,0,1 -12086508,1018,assets/images/split/image2420.bin,0,1 -12087526,865,assets/images/split/image2421.bin,0,1 -12088391,1818,assets/images/split/image2422.bin,0,1 -12090209,1940,assets/images/split/image2423.bin,0,1 -12092149,1698,assets/images/split/image2424.bin,0,1 -12093847,545,assets/images/split/image2425.bin,0,1 -12094392,1016,assets/images/split/image2426.bin,0,1 -12095408,796,assets/images/split/image2427.bin,0,1 -12096204,497,assets/images/split/image2428.bin,0,1 -12096701,194,assets/images/split/image2429.bin,0,1 -12096895,522,assets/images/split/image2430.bin,0,1 -12097417,1481,assets/images/split/image2431.bin,0,1 -12098898,171,assets/images/split/image2432.bin,0,1 -12099069,310,assets/images/split/image2433.bin,0,1 -12099379,854,assets/images/split/image2434.bin,0,1 -12100233,785,assets/images/split/image2435.bin,0,1 -12101018,1485,assets/images/split/image2436.bin,0,1 -12102503,481,assets/images/split/image2437.bin,0,1 -12102984,851,assets/images/split/image2438.bin,0,1 -12103835,775,assets/images/split/image2439.bin,0,1 -12104610,378,assets/images/split/image2440.bin,0,1 -12104988,1465,assets/images/split/image2441.bin,0,1 -12106453,828,assets/images/split/image2442.bin,0,1 -12107281,884,assets/images/split/image2443.bin,0,1 -12108165,1013,assets/images/split/image2444.bin,0,1 -12109178,1132,assets/images/split/image2445.bin,0,1 -12110310,770,assets/images/split/image2446.bin,0,1 -12111080,1190,assets/images/split/image2447.bin,0,1 -12112270,945,assets/images/split/image2448.bin,0,1 -12113215,681,assets/images/split/image2449.bin,0,1 -12113896,547,assets/images/split/image2450.bin,0,1 -12114443,165,assets/images/split/image2451.bin,0,1 -12114608,1170,assets/images/split/image2452.bin,0,1 -12115778,196,assets/images/split/image2453.bin,0,1 -12115974,444,assets/images/split/image2454.bin,0,1 -12116418,1081,assets/images/split/image2455.bin,0,1 -12117499,764,assets/images/split/image2456.bin,0,1 -12118263,776,assets/images/split/image2457.bin,0,1 -12119039,85,assets/images/split/image2458.bin,0,1 -12119124,527,assets/images/split/image2459.bin,0,1 -12119651,268,assets/images/split/image2460.bin,0,1 -12119919,369,assets/images/split/image2461.bin,0,1 -12120288,942,assets/images/split/image2462.bin,0,1 -12121230,1812,assets/images/split/image2463.bin,0,1 -12123042,182,assets/images/split/image2464.bin,0,1 -12123224,225,assets/images/split/image2465.bin,0,1 -12123449,531,assets/images/split/image2466.bin,0,1 -12123980,624,assets/images/split/image2467.bin,0,1 -12124604,1383,assets/images/split/image2468.bin,0,1 -12125987,1267,assets/images/split/image2469.bin,0,1 -12127254,346,assets/images/split/image2470.bin,0,1 -12127600,418,assets/images/split/image2471.bin,0,1 -12128018,594,assets/images/split/image2472.bin,0,1 -12128612,648,assets/images/split/image2473.bin,0,1 -12129260,859,assets/images/split/image2474.bin,0,1 -12130119,1300,assets/images/split/image2475.bin,0,1 -12131419,566,assets/images/split/image2476.bin,0,1 -12131985,2104,assets/images/split/image2477.bin,0,1 -12134089,940,assets/images/split/image2478.bin,0,1 -12135029,856,assets/images/split/image2479.bin,0,1 -12135885,756,assets/images/split/image2480.bin,0,1 -12136641,446,assets/images/split/image2481.bin,0,1 -12137087,370,assets/images/split/image2482.bin,0,1 -12137457,845,assets/images/split/image2483.bin,0,1 -12138302,1370,assets/images/split/image2484.bin,0,1 -12139672,1427,assets/images/split/image2485.bin,0,1 -12141099,738,assets/images/split/image2486.bin,0,1 -12141837,591,assets/images/split/image2487.bin,0,1 -12142428,731,assets/images/split/image2488.bin,0,1 -12143159,1263,assets/images/split/image2489.bin,0,1 -12144422,1232,assets/images/split/image2490.bin,0,1 -12145654,861,assets/images/split/image2491.bin,0,1 -12146515,913,assets/images/split/image2492.bin,0,1 -12147428,15,assets/images/split/image2493.bin,0,1 -12147443,1362,assets/images/split/image2494.bin,0,1 -12148805,472,assets/images/split/image2495.bin,0,1 -12149277,1293,assets/images/split/image2496.bin,0,1 -12150570,1448,assets/images/split/image2497.bin,0,1 -12152018,1239,assets/images/split/image2498.bin,0,1 -12153257,906,assets/images/split/image2499.bin,0,1 -12154163,739,assets/images/split/image2500.bin,0,1 -12154902,1130,assets/images/split/image2501.bin,0,1 -12156032,1071,assets/images/split/image2502.bin,0,1 -12157103,913,assets/images/split/image2503.bin,0,1 -12158016,2328,assets/images/split/image2504.bin,0,1 -12160344,2220,assets/images/split/image2505.bin,0,1 -12162564,2340,assets/images/split/image2506.bin,0,1 -12164904,2443,assets/images/split/image2507.bin,0,1 -12167347,2491,assets/images/split/image2508.bin,0,1 -12169838,2459,assets/images/split/image2509.bin,0,1 -12172297,1469,assets/images/split/image2510.bin,0,1 -12173766,1030,assets/images/split/image2511.bin,0,1 -12174796,1065,assets/images/split/image2512.bin,0,1 -12175861,1129,assets/images/split/image2513.bin,0,1 -12176990,1111,assets/images/split/image2514.bin,0,1 -12178101,892,assets/images/split/image2515.bin,0,1 -12178993,1333,assets/images/split/image2516.bin,0,1 -12180326,1897,assets/images/split/image2517.bin,0,1 -12182223,1968,assets/images/split/image2518.bin,0,1 -12184191,1943,assets/images/split/image2519.bin,0,1 -12186134,1780,assets/images/split/image2520.bin,0,1 -12187914,1503,assets/images/split/image2521.bin,0,1 -12189417,1863,assets/images/split/image2522.bin,0,1 -12191280,2095,assets/images/split/image2523.bin,0,1 -12193375,2442,assets/images/split/image2524.bin,0,1 -12195817,2330,assets/images/split/image2525.bin,0,1 -12198147,1781,assets/images/split/image2526.bin,0,1 -12199928,980,assets/images/split/image2527.bin,0,1 -12200908,1106,assets/images/split/image2528.bin,0,1 -12202014,1255,assets/images/split/image2529.bin,0,1 -12203269,2055,assets/images/split/image2530.bin,0,1 -12205324,1961,assets/images/split/image2531.bin,0,1 -12207285,1695,assets/images/split/image2532.bin,0,1 -12208980,2253,assets/images/split/image2533.bin,0,1 -12211233,1786,assets/images/split/image2534.bin,0,1 -12213019,774,assets/images/split/image2535.bin,0,1 -12213793,1099,assets/images/split/image2536.bin,0,1 -12214892,1042,assets/images/split/image2537.bin,0,1 -12215934,2027,assets/images/split/image2538.bin,0,1 -12217961,2341,assets/images/split/image2539.bin,0,1 -12220302,2393,assets/images/split/image2540.bin,0,1 -12222695,2465,assets/images/split/image2541.bin,0,1 -12225160,2384,assets/images/split/image2542.bin,0,1 -12227544,1918,assets/images/split/image2543.bin,0,1 -12229462,2606,assets/images/split/image2544.bin,0,1 -12232068,2251,assets/images/split/image2545.bin,0,1 -12234319,2334,assets/images/split/image2546.bin,0,1 -12236653,2319,assets/images/split/image2547.bin,0,1 -12238972,2280,assets/images/split/image2548.bin,0,1 -12241252,1961,assets/images/split/image2549.bin,0,1 -12243213,2528,assets/images/split/image2550.bin,0,1 -12245741,2235,assets/images/split/image2551.bin,0,1 -12247976,2323,assets/images/split/image2552.bin,0,1 -12250299,1717,assets/images/split/image2553.bin,0,1 -12252016,2109,assets/images/split/image2554.bin,0,1 -12254125,2141,assets/images/split/image2555.bin,0,1 -12256266,2112,assets/images/split/image2556.bin,0,1 -12258378,1578,assets/images/split/image2557.bin,0,1 -12259956,1655,assets/images/split/image2558.bin,0,1 -12261611,1031,assets/images/split/image2559.bin,0,1 -12262642,2231,assets/images/split/image2560.bin,0,1 -12264873,2285,assets/images/split/image2561.bin,0,1 -12267158,2356,assets/images/split/image2562.bin,0,1 -12269514,1840,assets/images/split/image2563.bin,0,1 -12271354,1793,assets/images/split/image2564.bin,0,1 -12273147,1925,assets/images/split/image2565.bin,0,1 -12275072,2146,assets/images/split/image2566.bin,0,1 -12277218,1945,assets/images/split/image2567.bin,0,1 -12279163,2158,assets/images/split/image2568.bin,0,1 -12281321,1819,assets/images/split/image2569.bin,0,1 -12283140,1523,assets/images/split/image2570.bin,0,1 -12284663,1843,assets/images/split/image2571.bin,0,1 -12286506,1880,assets/images/split/image2572.bin,0,1 -12288386,2599,assets/images/split/image2573.bin,0,1 -12290985,2724,assets/images/split/image2574.bin,0,1 -12293709,1889,assets/images/split/image2575.bin,0,1 -12295598,1780,assets/images/split/image2576.bin,0,1 -12297378,1586,assets/images/split/image2577.bin,0,1 -12298964,1675,assets/images/split/image2578.bin,0,1 -12300639,2429,assets/images/split/image2579.bin,0,1 -12303068,2606,assets/images/split/image2580.bin,0,1 -12305674,2456,assets/images/split/image2581.bin,0,1 -12308130,2478,assets/images/split/image2582.bin,0,1 -12310608,2469,assets/images/split/image2583.bin,0,1 -12313077,2221,assets/images/split/image2584.bin,0,1 -12315298,2456,assets/images/split/image2585.bin,0,1 -12317754,2076,assets/images/split/image2586.bin,0,1 -12319830,2286,assets/images/split/image2587.bin,0,1 -12322116,2013,assets/images/split/image2588.bin,0,1 -12324129,2180,assets/images/split/image2589.bin,0,1 -12326309,2425,assets/images/split/image2590.bin,0,1 -12328734,2148,assets/images/split/image2591.bin,0,1 -12330882,2335,assets/images/split/image2592.bin,0,1 -12333217,2230,assets/images/split/image2593.bin,0,1 -12335447,1880,assets/images/split/image2594.bin,0,1 -12337327,2099,assets/images/split/image2595.bin,0,1 -12339426,2670,assets/images/split/image2596.bin,0,1 -12342096,2103,assets/images/split/image2597.bin,0,1 -12344199,2278,assets/images/split/image2598.bin,0,1 -12346477,1321,assets/images/split/image2599.bin,0,1 -12347798,1310,assets/images/split/image2600.bin,0,1 -12349108,1412,assets/images/split/image2601.bin,0,1 -12350520,1446,assets/images/split/image2602.bin,0,1 -12351966,1407,assets/images/split/image2603.bin,0,1 -12353373,1533,assets/images/split/image2604.bin,0,1 -12354906,1226,assets/images/split/image2605.bin,0,1 -12356132,1547,assets/images/split/image2606.bin,0,1 -12357679,1382,assets/images/split/image2607.bin,0,1 -12359061,1452,assets/images/split/image2608.bin,0,1 -12360513,1157,assets/images/split/image2609.bin,0,1 -12361670,1764,assets/images/split/image2610.bin,0,1 -12363434,1290,assets/images/split/image2611.bin,0,1 -12364724,1384,assets/images/split/image2612.bin,0,1 -12366108,1558,assets/images/split/image2613.bin,0,1 -12367666,1439,assets/images/split/image2614.bin,0,1 -12369105,1428,assets/images/split/image2615.bin,0,1 -12370533,1214,assets/images/split/image2616.bin,0,1 -12371747,1356,assets/images/split/image2617.bin,0,1 -12373103,1299,assets/images/split/image2618.bin,0,1 -12374402,1853,assets/images/split/image2619.bin,0,1 -12376255,1762,assets/images/split/image2620.bin,0,1 -12378017,1780,assets/images/split/image2621.bin,0,1 -12379797,1758,assets/images/split/image2622.bin,0,1 -12381555,1647,assets/images/split/image2623.bin,0,1 -12383202,1732,assets/images/split/image2624.bin,0,1 -12384934,1435,assets/images/split/image2625.bin,0,1 -12386369,1882,assets/images/split/image2626.bin,0,1 -12388251,931,assets/images/split/image2627.bin,0,1 -12389182,1658,assets/images/split/image2628.bin,0,1 -12390840,1778,assets/images/split/image2629.bin,0,1 -12392618,650,assets/images/split/image2630.bin,0,1 -12393268,1346,assets/images/split/image2631.bin,0,1 -12394614,53,assets/images/split/image2632.bin,0,1 -12394667,1208,assets/images/split/image2633.bin,0,1 -12395875,1315,assets/images/split/image2634.bin,0,1 -12397190,1319,assets/images/split/image2635.bin,0,1 -12398509,1530,assets/images/split/image2636.bin,0,1 -12400039,1556,assets/images/split/image2637.bin,0,1 -12401595,1289,assets/images/split/image2638.bin,0,1 -12402884,1432,assets/images/split/image2639.bin,0,1 -12404316,1467,assets/images/split/image2640.bin,0,1 -12405783,1255,assets/images/split/image2641.bin,0,1 -12407038,1261,assets/images/split/image2642.bin,0,1 -12408299,1043,assets/images/split/image2643.bin,0,1 -12409342,1074,assets/images/split/image2644.bin,0,1 -12410416,1242,assets/images/split/image2645.bin,0,1 -12411658,1300,assets/images/split/image2646.bin,0,1 -12412958,1195,assets/images/split/image2647.bin,0,1 -12414153,1231,assets/images/split/image2648.bin,0,1 -12415384,1362,assets/images/split/image2649.bin,0,1 -12416746,1212,assets/images/split/image2650.bin,0,1 -12417958,1334,assets/images/split/image2651.bin,0,1 -12419292,1551,assets/images/split/image2652.bin,0,1 -12420843,1347,assets/images/split/image2653.bin,0,1 -12422190,1358,assets/images/split/image2654.bin,0,1 -12423548,1213,assets/images/split/image2655.bin,0,1 -12424761,1219,assets/images/split/image2656.bin,0,1 -12425980,1235,assets/images/split/image2657.bin,0,1 -12427215,1161,assets/images/split/image2658.bin,0,1 -12428376,1687,assets/images/split/image2659.bin,0,1 -12430063,1602,assets/images/split/image2660.bin,0,1 -12431665,1383,assets/images/split/image2661.bin,0,1 -12433048,1308,assets/images/split/image2662.bin,0,1 -12434356,1341,assets/images/split/image2663.bin,0,1 -12435697,1389,assets/images/split/image2664.bin,0,1 -12437086,1374,assets/images/split/image2665.bin,0,1 -12438460,1115,assets/images/split/image2666.bin,0,1 -12439575,1445,assets/images/split/image2667.bin,0,1 -12441020,1451,assets/images/split/image2668.bin,0,1 -12442471,1364,assets/images/split/image2669.bin,0,1 -12443835,1302,assets/images/split/image2670.bin,0,1 -12445137,1407,assets/images/split/image2671.bin,0,1 -12446544,1212,assets/images/split/image2672.bin,0,1 -12447756,160,assets/images/split/image2673.bin,0,1 -12447916,248,assets/images/split/image2674.bin,0,1 -12448164,919,assets/images/split/image2675.bin,0,1 -12449083,188,assets/images/split/image2676.bin,0,1 -12449271,1077,assets/images/split/image2677.bin,0,1 -12450348,2572,assets/images/split/image2678.bin,0,1 -12452920,1845,assets/images/split/image2679.bin,0,1 -12454765,726,assets/images/split/image2680.bin,0,1 -12455491,2270,assets/images/split/image2681.bin,0,1 -12457761,631,assets/images/split/image2682.bin,0,1 -12458392,947,assets/images/split/image2683.bin,0,1 -12459339,948,assets/images/split/image2684.bin,0,1 -12460287,705,assets/images/split/image2685.bin,0,1 -12460992,708,assets/images/split/image2686.bin,0,1 -12461700,2422,assets/images/split/image2687.bin,0,1 -12464122,2504,assets/images/split/image2688.bin,0,1 -12466626,2617,assets/images/split/image2689.bin,0,1 -12469243,2159,assets/images/split/image2690.bin,0,1 -12471402,896,assets/images/split/image2691.bin,0,1 -12472298,1348,assets/images/split/image2692.bin,0,1 -12473646,1299,assets/images/split/image2693.bin,0,1 -12474945,1282,assets/images/split/image2694.bin,0,1 -12476227,1252,assets/images/split/image2695.bin,0,1 -12477479,419,assets/images/split/image2696.bin,0,1 -12477898,513,assets/images/split/image2697.bin,0,1 -12478411,1341,assets/images/split/image2698.bin,0,1 -12479752,8,assets/images/split/image2699.bin,0,1 +9403888,1876,assets/images/split/image0.bin,0,1 +9405764,362,assets/images/split/image1.bin,0,1 +9406126,2420,assets/images/split/image2.bin,0,1 +9408546,907,assets/images/split/image3.bin,0,1 +9409453,339,assets/images/split/image4.bin,0,1 +9409792,606,assets/images/split/image5.bin,0,1 +9410398,958,assets/images/split/image6.bin,0,1 +9411356,26,assets/images/split/image7.bin,0,1 +9411382,26,assets/images/split/image8.bin,0,1 +9411408,895,assets/images/split/image9.bin,0,1 +9412303,913,assets/images/split/image10.bin,0,1 +9413216,224,assets/images/split/image11.bin,0,1 +9413440,932,assets/images/split/image12.bin,0,1 +9414372,1187,assets/images/split/image13.bin,0,1 +9415559,1143,assets/images/split/image14.bin,0,1 +9416702,1137,assets/images/split/image15.bin,0,1 +9417839,1196,assets/images/split/image16.bin,0,1 +9419035,986,assets/images/split/image17.bin,0,1 +9420021,26,assets/images/split/image18.bin,0,1 +9420047,26,assets/images/split/image19.bin,0,1 +9420073,1561,assets/images/split/image20.bin,0,1 +9421634,309,assets/images/split/image21.bin,0,1 +9421943,1525,assets/images/split/image22.bin,0,1 +9423468,863,assets/images/split/image23.bin,0,1 +9424331,848,assets/images/split/image24.bin,0,1 +9425179,1548,assets/images/split/image25.bin,0,1 +9426727,197,assets/images/split/image26.bin,0,1 +9426924,166,assets/images/split/image27.bin,0,1 +9427090,181,assets/images/split/image28.bin,0,1 +9427271,989,assets/images/split/image29.bin,0,1 +9428260,1020,assets/images/split/image30.bin,0,1 +9429280,776,assets/images/split/image31.bin,0,1 +9430056,774,assets/images/split/image32.bin,0,1 +9430830,1610,assets/images/split/image33.bin,0,1 +9432440,1484,assets/images/split/image34.bin,0,1 +9433924,1696,assets/images/split/image35.bin,0,1 +9435620,1734,assets/images/split/image36.bin,0,1 +9437354,1003,assets/images/split/image37.bin,0,1 +9438357,275,assets/images/split/image38.bin,0,1 +9438632,551,assets/images/split/image39.bin,0,1 +9439183,537,assets/images/split/image40.bin,0,1 +9439720,555,assets/images/split/image41.bin,0,1 +9440275,546,assets/images/split/image42.bin,0,1 +9440821,1341,assets/images/split/image43.bin,0,1 +9442162,1372,assets/images/split/image44.bin,0,1 +9443534,1007,assets/images/split/image45.bin,0,1 +9444541,410,assets/images/split/image46.bin,0,1 +9444951,1108,assets/images/split/image47.bin,0,1 +9446059,1726,assets/images/split/image48.bin,0,1 +9447785,636,assets/images/split/image49.bin,0,1 +9448421,1510,assets/images/split/image50.bin,0,1 +9449931,824,assets/images/split/image51.bin,0,1 +9450755,1232,assets/images/split/image52.bin,0,1 +9451987,1440,assets/images/split/image53.bin,0,1 +9453427,1170,assets/images/split/image54.bin,0,1 +9454597,792,assets/images/split/image55.bin,0,1 +9455389,270,assets/images/split/image56.bin,0,1 +9455659,241,assets/images/split/image57.bin,0,1 +9455900,281,assets/images/split/image58.bin,0,1 +9456181,678,assets/images/split/image59.bin,0,1 +9456859,416,assets/images/split/image60.bin,0,1 +9457275,34,assets/images/split/image61.bin,0,1 +9457309,276,assets/images/split/image62.bin,0,1 +9457585,156,assets/images/split/image63.bin,0,1 +9457741,933,assets/images/split/image64.bin,0,1 +9458674,888,assets/images/split/image65.bin,0,1 +9459562,836,assets/images/split/image66.bin,0,1 +9460398,247,assets/images/split/image67.bin,0,1 +9460645,923,assets/images/split/image68.bin,0,1 +9461568,429,assets/images/split/image69.bin,0,1 +9461997,484,assets/images/split/image70.bin,0,1 +9462481,725,assets/images/split/image71.bin,0,1 +9463206,198,assets/images/split/image72.bin,0,1 +9463404,199,assets/images/split/image73.bin,0,1 +9463603,691,assets/images/split/image74.bin,0,1 +9464294,418,assets/images/split/image75.bin,0,1 +9464712,400,assets/images/split/image76.bin,0,1 +9465112,1505,assets/images/split/image77.bin,0,1 +9466617,687,assets/images/split/image78.bin,0,1 +9467304,222,assets/images/split/image79.bin,0,1 +9467526,500,assets/images/split/image80.bin,0,1 +9468026,1508,assets/images/split/image81.bin,0,1 +9469534,441,assets/images/split/image82.bin,0,1 +9469975,1523,assets/images/split/image83.bin,0,1 +9471498,551,assets/images/split/image84.bin,0,1 +9472049,727,assets/images/split/image85.bin,0,1 +9472776,942,assets/images/split/image86.bin,0,1 +9473718,761,assets/images/split/image87.bin,0,1 +9474479,3114,assets/images/split/image88.bin,0,1 +9477593,3069,assets/images/split/image89.bin,0,1 +9480662,3121,assets/images/split/image90.bin,0,1 +9483783,2840,assets/images/split/image91.bin,0,1 +9486623,3014,assets/images/split/image92.bin,0,1 +9489637,3176,assets/images/split/image93.bin,0,1 +9492813,3237,assets/images/split/image94.bin,0,1 +9496050,3028,assets/images/split/image95.bin,0,1 +9499078,2941,assets/images/split/image96.bin,0,1 +9502019,3032,assets/images/split/image97.bin,0,1 +9505051,3137,assets/images/split/image98.bin,0,1 +9508188,2975,assets/images/split/image99.bin,0,1 +9511163,3046,assets/images/split/image100.bin,0,1 +9514209,3310,assets/images/split/image101.bin,0,1 +9517519,3334,assets/images/split/image102.bin,0,1 +9520853,2977,assets/images/split/image103.bin,0,1 +9523830,2855,assets/images/split/image104.bin,0,1 +9526685,3352,assets/images/split/image105.bin,0,1 +9530037,3274,assets/images/split/image106.bin,0,1 +9533311,2650,assets/images/split/image107.bin,0,1 +9535961,2166,assets/images/split/image108.bin,0,1 +9538127,2218,assets/images/split/image109.bin,0,1 +9540345,2255,assets/images/split/image110.bin,0,1 +9542600,1940,assets/images/split/image111.bin,0,1 +9544540,2682,assets/images/split/image112.bin,0,1 +9547222,3218,assets/images/split/image113.bin,0,1 +9550440,2954,assets/images/split/image114.bin,0,1 +9553394,2643,assets/images/split/image115.bin,0,1 +9556037,3056,assets/images/split/image116.bin,0,1 +9559093,3340,assets/images/split/image117.bin,0,1 +9562433,3276,assets/images/split/image118.bin,0,1 +9565709,2552,assets/images/split/image119.bin,0,1 +9568261,3265,assets/images/split/image120.bin,0,1 +9571526,3387,assets/images/split/image121.bin,0,1 +9574913,3437,assets/images/split/image122.bin,0,1 +9578350,3056,assets/images/split/image123.bin,0,1 +9581406,2432,assets/images/split/image124.bin,0,1 +9583838,2961,assets/images/split/image125.bin,0,1 +9586799,3233,assets/images/split/image126.bin,0,1 +9590032,2690,assets/images/split/image127.bin,0,1 +9592722,3194,assets/images/split/image128.bin,0,1 +9595916,3403,assets/images/split/image129.bin,0,1 +9599319,3461,assets/images/split/image130.bin,0,1 +9602780,3190,assets/images/split/image131.bin,0,1 +9605970,2985,assets/images/split/image132.bin,0,1 +9608955,3418,assets/images/split/image133.bin,0,1 +9612373,3408,assets/images/split/image134.bin,0,1 +9615781,3125,assets/images/split/image135.bin,0,1 +9618906,2701,assets/images/split/image136.bin,0,1 +9621607,3366,assets/images/split/image137.bin,0,1 +9624973,2853,assets/images/split/image138.bin,0,1 +9627826,2201,assets/images/split/image139.bin,0,1 +9630027,1143,assets/images/split/image140.bin,0,1 +9631170,1157,assets/images/split/image141.bin,0,1 +9632327,1110,assets/images/split/image142.bin,0,1 +9633437,2112,assets/images/split/image143.bin,0,1 +9635549,2122,assets/images/split/image144.bin,0,1 +9637671,2155,assets/images/split/image145.bin,0,1 +9639826,1986,assets/images/split/image146.bin,0,1 +9641812,530,assets/images/split/image147.bin,0,1 +9642342,587,assets/images/split/image148.bin,0,1 +9642929,329,assets/images/split/image149.bin,0,1 +9643258,293,assets/images/split/image150.bin,0,1 +9643551,784,assets/images/split/image151.bin,0,1 +9644335,311,assets/images/split/image152.bin,0,1 +9644646,295,assets/images/split/image153.bin,0,1 +9644941,315,assets/images/split/image154.bin,0,1 +9645256,705,assets/images/split/image155.bin,0,1 +9645961,956,assets/images/split/image156.bin,0,1 +9646917,1422,assets/images/split/image157.bin,0,1 +9648339,326,assets/images/split/image158.bin,0,1 +9648665,315,assets/images/split/image159.bin,0,1 +9648980,563,assets/images/split/image160.bin,0,1 +9649543,737,assets/images/split/image161.bin,0,1 +9650280,796,assets/images/split/image162.bin,0,1 +9651076,779,assets/images/split/image163.bin,0,1 +9651855,831,assets/images/split/image164.bin,0,1 +9652686,757,assets/images/split/image165.bin,0,1 +9653443,830,assets/images/split/image166.bin,0,1 +9654273,782,assets/images/split/image167.bin,0,1 +9655055,851,assets/images/split/image168.bin,0,1 +9655906,1143,assets/images/split/image169.bin,0,1 +9657049,761,assets/images/split/image170.bin,0,1 +9657810,603,assets/images/split/image171.bin,0,1 +9658413,186,assets/images/split/image172.bin,0,1 +9658599,678,assets/images/split/image173.bin,0,1 +9659277,938,assets/images/split/image174.bin,0,1 +9660215,572,assets/images/split/image175.bin,0,1 +9660787,2014,assets/images/split/image176.bin,0,1 +9662801,625,assets/images/split/image177.bin,0,1 +9663426,755,assets/images/split/image178.bin,0,1 +9664181,788,assets/images/split/image179.bin,0,1 +9664969,296,assets/images/split/image180.bin,0,1 +9665265,505,assets/images/split/image181.bin,0,1 +9665770,691,assets/images/split/image182.bin,0,1 +9666461,519,assets/images/split/image183.bin,0,1 +9666980,603,assets/images/split/image184.bin,0,1 +9667583,1353,assets/images/split/image185.bin,0,1 +9668936,1099,assets/images/split/image186.bin,0,1 +9670035,895,assets/images/split/image187.bin,0,1 +9670930,1568,assets/images/split/image188.bin,0,1 +9672498,1107,assets/images/split/image189.bin,0,1 +9673605,1388,assets/images/split/image190.bin,0,1 +9674993,1431,assets/images/split/image191.bin,0,1 +9676424,1302,assets/images/split/image192.bin,0,1 +9677726,648,assets/images/split/image193.bin,0,1 +9678374,712,assets/images/split/image194.bin,0,1 +9679086,1431,assets/images/split/image195.bin,0,1 +9680517,1149,assets/images/split/image196.bin,0,1 +9681666,671,assets/images/split/image197.bin,0,1 +9682337,675,assets/images/split/image198.bin,0,1 +9683012,330,assets/images/split/image199.bin,0,1 +9683342,1210,assets/images/split/image200.bin,0,1 +9684552,1018,assets/images/split/image201.bin,0,1 +9685570,1327,assets/images/split/image202.bin,0,1 +9686897,1120,assets/images/split/image203.bin,0,1 +9688017,1377,assets/images/split/image204.bin,0,1 +9689394,1271,assets/images/split/image205.bin,0,1 +9690665,1033,assets/images/split/image206.bin,0,1 +9691698,1603,assets/images/split/image207.bin,0,1 +9693301,2859,assets/images/split/image208.bin,0,1 +9696160,3134,assets/images/split/image209.bin,0,1 +9699294,1400,assets/images/split/image210.bin,0,1 +9700694,207,assets/images/split/image211.bin,0,1 +9700901,656,assets/images/split/image212.bin,0,1 +9701557,1238,assets/images/split/image213.bin,0,1 +9702795,224,assets/images/split/image214.bin,0,1 +9703019,622,assets/images/split/image215.bin,0,1 +9703641,334,assets/images/split/image216.bin,0,1 +9703975,480,assets/images/split/image217.bin,0,1 +9704455,281,assets/images/split/image218.bin,0,1 +9704736,984,assets/images/split/image219.bin,0,1 +9705720,1033,assets/images/split/image220.bin,0,1 +9706753,1010,assets/images/split/image221.bin,0,1 +9707763,1033,assets/images/split/image222.bin,0,1 +9708796,1090,assets/images/split/image223.bin,0,1 +9709886,1085,assets/images/split/image224.bin,0,1 +9710971,1014,assets/images/split/image225.bin,0,1 +9711985,691,assets/images/split/image226.bin,0,1 +9712676,895,assets/images/split/image227.bin,0,1 +9713571,617,assets/images/split/image228.bin,0,1 +9714188,553,assets/images/split/image229.bin,0,1 +9714741,899,assets/images/split/image230.bin,0,1 +9715640,1498,assets/images/split/image231.bin,0,1 +9717138,833,assets/images/split/image232.bin,0,1 +9717971,302,assets/images/split/image233.bin,0,1 +9718273,1364,assets/images/split/image234.bin,0,1 +9719637,925,assets/images/split/image235.bin,0,1 +9720562,1174,assets/images/split/image236.bin,0,1 +9721736,1257,assets/images/split/image237.bin,0,1 +9722993,967,assets/images/split/image238.bin,0,1 +9723960,991,assets/images/split/image239.bin,0,1 +9724951,1024,assets/images/split/image240.bin,0,1 +9725975,581,assets/images/split/image241.bin,0,1 +9726556,502,assets/images/split/image242.bin,0,1 +9727058,351,assets/images/split/image243.bin,0,1 +9727409,1144,assets/images/split/image244.bin,0,1 +9728553,525,assets/images/split/image245.bin,0,1 +9729078,738,assets/images/split/image246.bin,0,1 +9729816,199,assets/images/split/image247.bin,0,1 +9730015,180,assets/images/split/image248.bin,0,1 +9730195,152,assets/images/split/image249.bin,0,1 +9730347,199,assets/images/split/image250.bin,0,1 +9730546,809,assets/images/split/image251.bin,0,1 +9731355,673,assets/images/split/image252.bin,0,1 +9732028,717,assets/images/split/image253.bin,0,1 +9732745,1032,assets/images/split/image254.bin,0,1 +9733777,1003,assets/images/split/image255.bin,0,1 +9734780,463,assets/images/split/image256.bin,0,1 +9735243,829,assets/images/split/image257.bin,0,1 +9736072,647,assets/images/split/image258.bin,0,1 +9736719,806,assets/images/split/image259.bin,0,1 +9737525,896,assets/images/split/image260.bin,0,1 +9738421,689,assets/images/split/image261.bin,0,1 +9739110,708,assets/images/split/image262.bin,0,1 +9739818,558,assets/images/split/image263.bin,0,1 +9740376,1412,assets/images/split/image264.bin,0,1 +9741788,424,assets/images/split/image265.bin,0,1 +9742212,79,assets/images/split/image266.bin,0,1 +9742291,1368,assets/images/split/image267.bin,0,1 +9743659,727,assets/images/split/image268.bin,0,1 +9744386,1410,assets/images/split/image269.bin,0,1 +9745796,694,assets/images/split/image270.bin,0,1 +9746490,1302,assets/images/split/image271.bin,0,1 +9747792,1248,assets/images/split/image272.bin,0,1 +9749040,1945,assets/images/split/image273.bin,0,1 +9750985,1920,assets/images/split/image274.bin,0,1 +9752905,2060,assets/images/split/image275.bin,0,1 +9754965,1959,assets/images/split/image276.bin,0,1 +9756924,1924,assets/images/split/image277.bin,0,1 +9758848,1715,assets/images/split/image278.bin,0,1 +9760563,666,assets/images/split/image279.bin,0,1 +9761229,905,assets/images/split/image280.bin,0,1 +9762134,750,assets/images/split/image281.bin,0,1 +9762884,799,assets/images/split/image282.bin,0,1 +9763683,802,assets/images/split/image283.bin,0,1 +9764485,1400,assets/images/split/image284.bin,0,1 +9765885,798,assets/images/split/image285.bin,0,1 +9766683,1064,assets/images/split/image286.bin,0,1 +9767747,1217,assets/images/split/image287.bin,0,1 +9768964,1145,assets/images/split/image288.bin,0,1 +9770109,1273,assets/images/split/image289.bin,0,1 +9771382,1163,assets/images/split/image290.bin,0,1 +9772545,991,assets/images/split/image291.bin,0,1 +9773536,1350,assets/images/split/image292.bin,0,1 +9774886,1328,assets/images/split/image293.bin,0,1 +9776214,1323,assets/images/split/image294.bin,0,1 +9777537,1007,assets/images/split/image295.bin,0,1 +9778544,1088,assets/images/split/image296.bin,0,1 +9779632,930,assets/images/split/image297.bin,0,1 +9780562,783,assets/images/split/image298.bin,0,1 +9781345,771,assets/images/split/image299.bin,0,1 +9782116,771,assets/images/split/image300.bin,0,1 +9782887,884,assets/images/split/image301.bin,0,1 +9783771,1333,assets/images/split/image302.bin,0,1 +9785104,639,assets/images/split/image303.bin,0,1 +9785743,200,assets/images/split/image304.bin,0,1 +9785943,573,assets/images/split/image305.bin,0,1 +9786516,687,assets/images/split/image306.bin,0,1 +9787203,1376,assets/images/split/image307.bin,0,1 +9788579,901,assets/images/split/image308.bin,0,1 +9789480,949,assets/images/split/image309.bin,0,1 +9790429,1351,assets/images/split/image310.bin,0,1 +9791780,815,assets/images/split/image311.bin,0,1 +9792595,904,assets/images/split/image312.bin,0,1 +9793499,636,assets/images/split/image313.bin,0,1 +9794135,636,assets/images/split/image314.bin,0,1 +9794771,581,assets/images/split/image315.bin,0,1 +9795352,581,assets/images/split/image316.bin,0,1 +9795933,582,assets/images/split/image317.bin,0,1 +9796515,678,assets/images/split/image318.bin,0,1 +9797193,321,assets/images/split/image319.bin,0,1 +9797514,536,assets/images/split/image320.bin,0,1 +9798050,1115,assets/images/split/image321.bin,0,1 +9799165,1515,assets/images/split/image322.bin,0,1 +9800680,1563,assets/images/split/image323.bin,0,1 +9802243,1581,assets/images/split/image324.bin,0,1 +9803824,1567,assets/images/split/image325.bin,0,1 +9805391,1601,assets/images/split/image326.bin,0,1 +9806992,1619,assets/images/split/image327.bin,0,1 +9808611,1525,assets/images/split/image328.bin,0,1 +9810136,836,assets/images/split/image329.bin,0,1 +9810972,902,assets/images/split/image330.bin,0,1 +9811874,921,assets/images/split/image331.bin,0,1 +9812795,864,assets/images/split/image332.bin,0,1 +9813659,353,assets/images/split/image333.bin,0,1 +9814012,282,assets/images/split/image334.bin,0,1 +9814294,307,assets/images/split/image335.bin,0,1 +9814601,298,assets/images/split/image336.bin,0,1 +9814899,840,assets/images/split/image337.bin,0,1 +9815739,1319,assets/images/split/image338.bin,0,1 +9817058,922,assets/images/split/image339.bin,0,1 +9817980,1006,assets/images/split/image340.bin,0,1 +9818986,984,assets/images/split/image341.bin,0,1 +9819970,1115,assets/images/split/image342.bin,0,1 +9821085,232,assets/images/split/image343.bin,0,1 +9821317,290,assets/images/split/image344.bin,0,1 +9821607,1037,assets/images/split/image345.bin,0,1 +9822644,993,assets/images/split/image346.bin,0,1 +9823637,193,assets/images/split/image347.bin,0,1 +9823830,271,assets/images/split/image348.bin,0,1 +9824101,770,assets/images/split/image349.bin,0,1 +9824871,533,assets/images/split/image350.bin,0,1 +9825404,213,assets/images/split/image351.bin,0,1 +9825617,818,assets/images/split/image352.bin,0,1 +9826435,456,assets/images/split/image353.bin,0,1 +9826891,168,assets/images/split/image354.bin,0,1 +9827059,906,assets/images/split/image355.bin,0,1 +9827965,704,assets/images/split/image356.bin,0,1 +9828669,1098,assets/images/split/image357.bin,0,1 +9829767,987,assets/images/split/image358.bin,0,1 +9830754,861,assets/images/split/image359.bin,0,1 +9831615,845,assets/images/split/image360.bin,0,1 +9832460,1334,assets/images/split/image361.bin,0,1 +9833794,960,assets/images/split/image362.bin,0,1 +9834754,1224,assets/images/split/image363.bin,0,1 +9835978,973,assets/images/split/image364.bin,0,1 +9836951,532,assets/images/split/image365.bin,0,1 +9837483,756,assets/images/split/image366.bin,0,1 +9838239,950,assets/images/split/image367.bin,0,1 +9839189,990,assets/images/split/image368.bin,0,1 +9840179,622,assets/images/split/image369.bin,0,1 +9840801,622,assets/images/split/image370.bin,0,1 +9841423,1375,assets/images/split/image371.bin,0,1 +9842798,1418,assets/images/split/image372.bin,0,1 +9844216,823,assets/images/split/image373.bin,0,1 +9845039,1023,assets/images/split/image374.bin,0,1 +9846062,949,assets/images/split/image375.bin,0,1 +9847011,949,assets/images/split/image376.bin,0,1 +9847960,818,assets/images/split/image377.bin,0,1 +9848778,1020,assets/images/split/image378.bin,0,1 +9849798,964,assets/images/split/image379.bin,0,1 +9850762,1094,assets/images/split/image380.bin,0,1 +9851856,1018,assets/images/split/image381.bin,0,1 +9852874,609,assets/images/split/image382.bin,0,1 +9853483,1333,assets/images/split/image383.bin,0,1 +9854816,1389,assets/images/split/image384.bin,0,1 +9856205,1103,assets/images/split/image385.bin,0,1 +9857308,2429,assets/images/split/image386.bin,0,1 +9859737,2306,assets/images/split/image387.bin,0,1 +9862043,2349,assets/images/split/image388.bin,0,1 +9864392,2324,assets/images/split/image389.bin,0,1 +9866716,2433,assets/images/split/image390.bin,0,1 +9869149,2302,assets/images/split/image391.bin,0,1 +9871451,2293,assets/images/split/image392.bin,0,1 +9873744,2168,assets/images/split/image393.bin,0,1 +9875912,545,assets/images/split/image394.bin,0,1 +9876457,1136,assets/images/split/image395.bin,0,1 +9877593,1318,assets/images/split/image396.bin,0,1 +9878911,1254,assets/images/split/image397.bin,0,1 +9880165,1061,assets/images/split/image398.bin,0,1 +9881226,859,assets/images/split/image399.bin,0,1 +9882085,1077,assets/images/split/image400.bin,0,1 +9883162,1081,assets/images/split/image401.bin,0,1 +9884243,828,assets/images/split/image402.bin,0,1 +9885071,780,assets/images/split/image403.bin,0,1 +9885851,767,assets/images/split/image404.bin,0,1 +9886618,691,assets/images/split/image405.bin,0,1 +9887309,1321,assets/images/split/image406.bin,0,1 +9888630,845,assets/images/split/image407.bin,0,1 +9889475,525,assets/images/split/image408.bin,0,1 +9890000,925,assets/images/split/image409.bin,0,1 +9890925,753,assets/images/split/image410.bin,0,1 +9891678,435,assets/images/split/image411.bin,0,1 +9892113,526,assets/images/split/image412.bin,0,1 +9892639,363,assets/images/split/image413.bin,0,1 +9893002,519,assets/images/split/image414.bin,0,1 +9893521,399,assets/images/split/image415.bin,0,1 +9893920,463,assets/images/split/image416.bin,0,1 +9894383,447,assets/images/split/image417.bin,0,1 +9894830,1750,assets/images/split/image418.bin,0,1 +9896580,988,assets/images/split/image419.bin,0,1 +9897568,1760,assets/images/split/image420.bin,0,1 +9899328,547,assets/images/split/image421.bin,0,1 +9899875,483,assets/images/split/image422.bin,0,1 +9900358,344,assets/images/split/image423.bin,0,1 +9900702,385,assets/images/split/image424.bin,0,1 +9901087,1107,assets/images/split/image425.bin,0,1 +9902194,1374,assets/images/split/image426.bin,0,1 +9903568,1467,assets/images/split/image427.bin,0,1 +9905035,1317,assets/images/split/image428.bin,0,1 +9906352,1837,assets/images/split/image429.bin,0,1 +9908189,1214,assets/images/split/image430.bin,0,1 +9909403,755,assets/images/split/image431.bin,0,1 +9910158,1084,assets/images/split/image432.bin,0,1 +9911242,998,assets/images/split/image433.bin,0,1 +9912240,1579,assets/images/split/image434.bin,0,1 +9913819,797,assets/images/split/image435.bin,0,1 +9914616,768,assets/images/split/image436.bin,0,1 +9915384,1615,assets/images/split/image437.bin,0,1 +9916999,1527,assets/images/split/image438.bin,0,1 +9918526,1637,assets/images/split/image439.bin,0,1 +9920163,968,assets/images/split/image440.bin,0,1 +9921131,971,assets/images/split/image441.bin,0,1 +9922102,870,assets/images/split/image442.bin,0,1 +9922972,1718,assets/images/split/image443.bin,0,1 +9924690,1826,assets/images/split/image444.bin,0,1 +9926516,2215,assets/images/split/image445.bin,0,1 +9928731,2252,assets/images/split/image446.bin,0,1 +9930983,1008,assets/images/split/image447.bin,0,1 +9931991,827,assets/images/split/image448.bin,0,1 +9932818,580,assets/images/split/image449.bin,0,1 +9933398,512,assets/images/split/image450.bin,0,1 +9933910,503,assets/images/split/image451.bin,0,1 +9934413,1139,assets/images/split/image452.bin,0,1 +9935552,964,assets/images/split/image453.bin,0,1 +9936516,987,assets/images/split/image454.bin,0,1 +9937503,480,assets/images/split/image455.bin,0,1 +9937983,493,assets/images/split/image456.bin,0,1 +9938476,1325,assets/images/split/image457.bin,0,1 +9939801,1151,assets/images/split/image458.bin,0,1 +9940952,592,assets/images/split/image459.bin,0,1 +9941544,646,assets/images/split/image460.bin,0,1 +9942190,180,assets/images/split/image461.bin,0,1 +9942370,163,assets/images/split/image462.bin,0,1 +9942533,486,assets/images/split/image463.bin,0,1 +9943019,430,assets/images/split/image464.bin,0,1 +9943449,645,assets/images/split/image465.bin,0,1 +9944094,547,assets/images/split/image466.bin,0,1 +9944641,506,assets/images/split/image467.bin,0,1 +9945147,1954,assets/images/split/image468.bin,0,1 +9947101,1950,assets/images/split/image469.bin,0,1 +9949051,320,assets/images/split/image470.bin,0,1 +9949371,630,assets/images/split/image471.bin,0,1 +9950001,656,assets/images/split/image472.bin,0,1 +9950657,612,assets/images/split/image473.bin,0,1 +9951269,1156,assets/images/split/image474.bin,0,1 +9952425,966,assets/images/split/image475.bin,0,1 +9953391,835,assets/images/split/image476.bin,0,1 +9954226,827,assets/images/split/image477.bin,0,1 +9955053,809,assets/images/split/image478.bin,0,1 +9955862,973,assets/images/split/image479.bin,0,1 +9956835,321,assets/images/split/image480.bin,0,1 +9957156,1312,assets/images/split/image481.bin,0,1 +9958468,1139,assets/images/split/image482.bin,0,1 +9959607,1216,assets/images/split/image483.bin,0,1 +9960823,897,assets/images/split/image484.bin,0,1 +9961720,944,assets/images/split/image485.bin,0,1 +9962664,1010,assets/images/split/image486.bin,0,1 +9963674,1118,assets/images/split/image487.bin,0,1 +9964792,1168,assets/images/split/image488.bin,0,1 +9965960,937,assets/images/split/image489.bin,0,1 +9966897,923,assets/images/split/image490.bin,0,1 +9967820,866,assets/images/split/image491.bin,0,1 +9968686,680,assets/images/split/image492.bin,0,1 +9969366,1465,assets/images/split/image493.bin,0,1 +9970831,187,assets/images/split/image494.bin,0,1 +9971018,186,assets/images/split/image495.bin,0,1 +9971204,183,assets/images/split/image496.bin,0,1 +9971387,265,assets/images/split/image497.bin,0,1 +9971652,225,assets/images/split/image498.bin,0,1 +9971877,1182,assets/images/split/image499.bin,0,1 +9973059,1139,assets/images/split/image500.bin,0,1 +9974198,860,assets/images/split/image501.bin,0,1 +9975058,823,assets/images/split/image502.bin,0,1 +9975881,638,assets/images/split/image503.bin,0,1 +9976519,584,assets/images/split/image504.bin,0,1 +9977103,571,assets/images/split/image505.bin,0,1 +9977674,338,assets/images/split/image506.bin,0,1 +9978012,691,assets/images/split/image507.bin,0,1 +9978703,392,assets/images/split/image508.bin,0,1 +9979095,631,assets/images/split/image509.bin,0,1 +9979726,517,assets/images/split/image510.bin,0,1 +9980243,420,assets/images/split/image511.bin,0,1 +9980663,158,assets/images/split/image512.bin,0,1 +9980821,812,assets/images/split/image513.bin,0,1 +9981633,1199,assets/images/split/image514.bin,0,1 +9982832,266,assets/images/split/image515.bin,0,1 +9983098,312,assets/images/split/image516.bin,0,1 +9983410,319,assets/images/split/image517.bin,0,1 +9983729,1236,assets/images/split/image518.bin,0,1 +9984965,327,assets/images/split/image519.bin,0,1 +9985292,647,assets/images/split/image520.bin,0,1 +9985939,157,assets/images/split/image521.bin,0,1 +9986096,749,assets/images/split/image522.bin,0,1 +9986845,607,assets/images/split/image523.bin,0,1 +9987452,266,assets/images/split/image524.bin,0,1 +9987718,736,assets/images/split/image525.bin,0,1 +9988454,883,assets/images/split/image526.bin,0,1 +9989337,426,assets/images/split/image527.bin,0,1 +9989763,749,assets/images/split/image528.bin,0,1 +9990512,331,assets/images/split/image529.bin,0,1 +9990843,1156,assets/images/split/image530.bin,0,1 +9991999,746,assets/images/split/image531.bin,0,1 +9992745,69,assets/images/split/image532.bin,0,1 +9992814,484,assets/images/split/image533.bin,0,1 +9993298,964,assets/images/split/image534.bin,0,1 +9994262,1072,assets/images/split/image535.bin,0,1 +9995334,805,assets/images/split/image536.bin,0,1 +9996139,662,assets/images/split/image537.bin,0,1 +9996801,1175,assets/images/split/image538.bin,0,1 +9997976,828,assets/images/split/image539.bin,0,1 +9998804,687,assets/images/split/image540.bin,0,1 +9999491,249,assets/images/split/image541.bin,0,1 +9999740,1046,assets/images/split/image542.bin,0,1 +10000786,835,assets/images/split/image543.bin,0,1 +10001621,1516,assets/images/split/image544.bin,0,1 +10003137,1892,assets/images/split/image545.bin,0,1 +10005029,1902,assets/images/split/image546.bin,0,1 +10006931,1835,assets/images/split/image547.bin,0,1 +10008766,1068,assets/images/split/image548.bin,0,1 +10009834,968,assets/images/split/image549.bin,0,1 +10010802,1035,assets/images/split/image550.bin,0,1 +10011837,1767,assets/images/split/image551.bin,0,1 +10013604,1679,assets/images/split/image552.bin,0,1 +10015283,1538,assets/images/split/image553.bin,0,1 +10016821,1538,assets/images/split/image554.bin,0,1 +10018359,1525,assets/images/split/image555.bin,0,1 +10019884,1734,assets/images/split/image556.bin,0,1 +10021618,1529,assets/images/split/image557.bin,0,1 +10023147,1707,assets/images/split/image558.bin,0,1 +10024854,1896,assets/images/split/image559.bin,0,1 +10026750,1644,assets/images/split/image560.bin,0,1 +10028394,1581,assets/images/split/image561.bin,0,1 +10029975,1590,assets/images/split/image562.bin,0,1 +10031565,1537,assets/images/split/image563.bin,0,1 +10033102,1704,assets/images/split/image564.bin,0,1 +10034806,1695,assets/images/split/image565.bin,0,1 +10036501,1606,assets/images/split/image566.bin,0,1 +10038107,378,assets/images/split/image567.bin,0,1 +10038485,2029,assets/images/split/image568.bin,0,1 +10040514,1846,assets/images/split/image569.bin,0,1 +10042360,1903,assets/images/split/image570.bin,0,1 +10044263,2050,assets/images/split/image571.bin,0,1 +10046313,2028,assets/images/split/image572.bin,0,1 +10048341,1904,assets/images/split/image573.bin,0,1 +10050245,1793,assets/images/split/image574.bin,0,1 +10052038,2030,assets/images/split/image575.bin,0,1 +10054068,867,assets/images/split/image576.bin,0,1 +10054935,1214,assets/images/split/image577.bin,0,1 +10056149,1169,assets/images/split/image578.bin,0,1 +10057318,500,assets/images/split/image579.bin,0,1 +10057818,201,assets/images/split/image580.bin,0,1 +10058019,1534,assets/images/split/image581.bin,0,1 +10059553,1527,assets/images/split/image582.bin,0,1 +10061080,1548,assets/images/split/image583.bin,0,1 +10062628,1541,assets/images/split/image584.bin,0,1 +10064169,1039,assets/images/split/image585.bin,0,1 +10065208,1024,assets/images/split/image586.bin,0,1 +10066232,1122,assets/images/split/image587.bin,0,1 +10067354,1308,assets/images/split/image588.bin,0,1 +10068662,1245,assets/images/split/image589.bin,0,1 +10069907,1329,assets/images/split/image590.bin,0,1 +10071236,1196,assets/images/split/image591.bin,0,1 +10072432,1130,assets/images/split/image592.bin,0,1 +10073562,1427,assets/images/split/image593.bin,0,1 +10074989,891,assets/images/split/image594.bin,0,1 +10075880,1210,assets/images/split/image595.bin,0,1 +10077090,1422,assets/images/split/image596.bin,0,1 +10078512,433,assets/images/split/image597.bin,0,1 +10078945,1377,assets/images/split/image598.bin,0,1 +10080322,1619,assets/images/split/image599.bin,0,1 +10081941,1920,assets/images/split/image600.bin,0,1 +10083861,1617,assets/images/split/image601.bin,0,1 +10085478,481,assets/images/split/image602.bin,0,1 +10085959,1402,assets/images/split/image603.bin,0,1 +10087361,1317,assets/images/split/image604.bin,0,1 +10088678,1461,assets/images/split/image605.bin,0,1 +10090139,358,assets/images/split/image606.bin,0,1 +10090497,325,assets/images/split/image607.bin,0,1 +10090822,1694,assets/images/split/image608.bin,0,1 +10092516,2105,assets/images/split/image609.bin,0,1 +10094621,1404,assets/images/split/image610.bin,0,1 +10096025,2010,assets/images/split/image611.bin,0,1 +10098035,702,assets/images/split/image612.bin,0,1 +10098737,616,assets/images/split/image613.bin,0,1 +10099353,667,assets/images/split/image614.bin,0,1 +10100020,646,assets/images/split/image615.bin,0,1 +10100666,622,assets/images/split/image616.bin,0,1 +10101288,593,assets/images/split/image617.bin,0,1 +10101881,926,assets/images/split/image618.bin,0,1 +10102807,276,assets/images/split/image619.bin,0,1 +10103083,611,assets/images/split/image620.bin,0,1 +10103694,1432,assets/images/split/image621.bin,0,1 +10105126,1128,assets/images/split/image622.bin,0,1 +10106254,1146,assets/images/split/image623.bin,0,1 +10107400,293,assets/images/split/image624.bin,0,1 +10107693,446,assets/images/split/image625.bin,0,1 +10108139,267,assets/images/split/image626.bin,0,1 +10108406,328,assets/images/split/image627.bin,0,1 +10108734,320,assets/images/split/image628.bin,0,1 +10109054,328,assets/images/split/image629.bin,0,1 +10109382,1458,assets/images/split/image630.bin,0,1 +10110840,1000,assets/images/split/image631.bin,0,1 +10111840,621,assets/images/split/image632.bin,0,1 +10112461,961,assets/images/split/image633.bin,0,1 +10113422,973,assets/images/split/image634.bin,0,1 +10114395,85,assets/images/split/image635.bin,0,1 +10114480,612,assets/images/split/image636.bin,0,1 +10115092,870,assets/images/split/image637.bin,0,1 +10115962,447,assets/images/split/image638.bin,0,1 +10116409,1848,assets/images/split/image639.bin,0,1 +10118257,812,assets/images/split/image640.bin,0,1 +10119069,1363,assets/images/split/image641.bin,0,1 +10120432,908,assets/images/split/image642.bin,0,1 +10121340,301,assets/images/split/image643.bin,0,1 +10121641,726,assets/images/split/image644.bin,0,1 +10122367,445,assets/images/split/image645.bin,0,1 +10122812,1187,assets/images/split/image646.bin,0,1 +10123999,409,assets/images/split/image647.bin,0,1 +10124408,701,assets/images/split/image648.bin,0,1 +10125109,612,assets/images/split/image649.bin,0,1 +10125721,510,assets/images/split/image650.bin,0,1 +10126231,1260,assets/images/split/image651.bin,0,1 +10127491,620,assets/images/split/image652.bin,0,1 +10128111,587,assets/images/split/image653.bin,0,1 +10128698,837,assets/images/split/image654.bin,0,1 +10129535,889,assets/images/split/image655.bin,0,1 +10130424,164,assets/images/split/image656.bin,0,1 +10130588,171,assets/images/split/image657.bin,0,1 +10130759,85,assets/images/split/image658.bin,0,1 +10130844,1025,assets/images/split/image659.bin,0,1 +10131869,834,assets/images/split/image660.bin,0,1 +10132703,1241,assets/images/split/image661.bin,0,1 +10133944,1205,assets/images/split/image662.bin,0,1 +10135149,196,assets/images/split/image663.bin,0,1 +10135345,226,assets/images/split/image664.bin,0,1 +10135571,1511,assets/images/split/image665.bin,0,1 +10137082,1014,assets/images/split/image666.bin,0,1 +10138096,997,assets/images/split/image667.bin,0,1 +10139093,957,assets/images/split/image668.bin,0,1 +10140050,1084,assets/images/split/image669.bin,0,1 +10141134,841,assets/images/split/image670.bin,0,1 +10141975,1081,assets/images/split/image671.bin,0,1 +10143056,889,assets/images/split/image672.bin,0,1 +10143945,866,assets/images/split/image673.bin,0,1 +10144811,875,assets/images/split/image674.bin,0,1 +10145686,792,assets/images/split/image675.bin,0,1 +10146478,675,assets/images/split/image676.bin,0,1 +10147153,129,assets/images/split/image677.bin,0,1 +10147282,634,assets/images/split/image678.bin,0,1 +10147916,1258,assets/images/split/image679.bin,0,1 +10149174,1443,assets/images/split/image680.bin,0,1 +10150617,1408,assets/images/split/image681.bin,0,1 +10152025,1278,assets/images/split/image682.bin,0,1 +10153303,314,assets/images/split/image683.bin,0,1 +10153617,478,assets/images/split/image684.bin,0,1 +10154095,742,assets/images/split/image685.bin,0,1 +10154837,674,assets/images/split/image686.bin,0,1 +10155511,787,assets/images/split/image687.bin,0,1 +10156298,831,assets/images/split/image688.bin,0,1 +10157129,543,assets/images/split/image689.bin,0,1 +10157672,278,assets/images/split/image690.bin,0,1 +10157950,162,assets/images/split/image691.bin,0,1 +10158112,333,assets/images/split/image692.bin,0,1 +10158445,1101,assets/images/split/image693.bin,0,1 +10159546,593,assets/images/split/image694.bin,0,1 +10160139,508,assets/images/split/image695.bin,0,1 +10160647,529,assets/images/split/image696.bin,0,1 +10161176,452,assets/images/split/image697.bin,0,1 +10161628,388,assets/images/split/image698.bin,0,1 +10162016,543,assets/images/split/image699.bin,0,1 +10162559,343,assets/images/split/image700.bin,0,1 +10162902,828,assets/images/split/image701.bin,0,1 +10163730,138,assets/images/split/image702.bin,0,1 +10163868,525,assets/images/split/image703.bin,0,1 +10164393,520,assets/images/split/image704.bin,0,1 +10164913,884,assets/images/split/image705.bin,0,1 +10165797,662,assets/images/split/image706.bin,0,1 +10166459,498,assets/images/split/image707.bin,0,1 +10166957,351,assets/images/split/image708.bin,0,1 +10167308,1214,assets/images/split/image709.bin,0,1 +10168522,789,assets/images/split/image710.bin,0,1 +10169311,1242,assets/images/split/image711.bin,0,1 +10170553,589,assets/images/split/image712.bin,0,1 +10171142,1548,assets/images/split/image713.bin,0,1 +10172690,192,assets/images/split/image714.bin,0,1 +10172882,366,assets/images/split/image715.bin,0,1 +10173248,850,assets/images/split/image716.bin,0,1 +10174098,253,assets/images/split/image717.bin,0,1 +10174351,499,assets/images/split/image718.bin,0,1 +10174850,593,assets/images/split/image719.bin,0,1 +10175443,539,assets/images/split/image720.bin,0,1 +10175982,177,assets/images/split/image721.bin,0,1 +10176159,552,assets/images/split/image722.bin,0,1 +10176711,536,assets/images/split/image723.bin,0,1 +10177247,851,assets/images/split/image724.bin,0,1 +10178098,1062,assets/images/split/image725.bin,0,1 +10179160,453,assets/images/split/image726.bin,0,1 +10179613,921,assets/images/split/image727.bin,0,1 +10180534,1009,assets/images/split/image728.bin,0,1 +10181543,457,assets/images/split/image729.bin,0,1 +10182000,408,assets/images/split/image730.bin,0,1 +10182408,455,assets/images/split/image731.bin,0,1 +10182863,1335,assets/images/split/image732.bin,0,1 +10184198,1307,assets/images/split/image733.bin,0,1 +10185505,1187,assets/images/split/image734.bin,0,1 +10186692,1518,assets/images/split/image735.bin,0,1 +10188210,1496,assets/images/split/image736.bin,0,1 +10189706,1413,assets/images/split/image737.bin,0,1 +10191119,1346,assets/images/split/image738.bin,0,1 +10192465,1410,assets/images/split/image739.bin,0,1 +10193875,1097,assets/images/split/image740.bin,0,1 +10194972,1179,assets/images/split/image741.bin,0,1 +10196151,1389,assets/images/split/image742.bin,0,1 +10197540,1470,assets/images/split/image743.bin,0,1 +10199010,1499,assets/images/split/image744.bin,0,1 +10200509,1028,assets/images/split/image745.bin,0,1 +10201537,1278,assets/images/split/image746.bin,0,1 +10202815,1420,assets/images/split/image747.bin,0,1 +10204235,1379,assets/images/split/image748.bin,0,1 +10205614,1458,assets/images/split/image749.bin,0,1 +10207072,1403,assets/images/split/image750.bin,0,1 +10208475,1163,assets/images/split/image751.bin,0,1 +10209638,1198,assets/images/split/image752.bin,0,1 +10210836,1300,assets/images/split/image753.bin,0,1 +10212136,1436,assets/images/split/image754.bin,0,1 +10213572,1384,assets/images/split/image755.bin,0,1 +10214956,1466,assets/images/split/image756.bin,0,1 +10216422,1425,assets/images/split/image757.bin,0,1 +10217847,520,assets/images/split/image758.bin,0,1 +10218367,510,assets/images/split/image759.bin,0,1 +10218877,1285,assets/images/split/image760.bin,0,1 +10220162,927,assets/images/split/image761.bin,0,1 +10221089,178,assets/images/split/image762.bin,0,1 +10221267,167,assets/images/split/image763.bin,0,1 +10221434,103,assets/images/split/image764.bin,0,1 +10221537,1375,assets/images/split/image765.bin,0,1 +10222912,510,assets/images/split/image766.bin,0,1 +10223422,801,assets/images/split/image767.bin,0,1 +10224223,305,assets/images/split/image768.bin,0,1 +10224528,339,assets/images/split/image769.bin,0,1 +10224867,1154,assets/images/split/image770.bin,0,1 +10226021,1548,assets/images/split/image771.bin,0,1 +10227569,601,assets/images/split/image772.bin,0,1 +10228170,899,assets/images/split/image773.bin,0,1 +10229069,120,assets/images/split/image774.bin,0,1 +10229189,1228,assets/images/split/image775.bin,0,1 +10230417,1347,assets/images/split/image776.bin,0,1 +10231764,1468,assets/images/split/image777.bin,0,1 +10233232,881,assets/images/split/image778.bin,0,1 +10234113,1474,assets/images/split/image779.bin,0,1 +10235587,1250,assets/images/split/image780.bin,0,1 +10236837,1605,assets/images/split/image781.bin,0,1 +10238442,1339,assets/images/split/image782.bin,0,1 +10239781,1096,assets/images/split/image783.bin,0,1 +10240877,504,assets/images/split/image784.bin,0,1 +10241381,296,assets/images/split/image785.bin,0,1 +10241677,364,assets/images/split/image786.bin,0,1 +10242041,967,assets/images/split/image787.bin,0,1 +10243008,573,assets/images/split/image788.bin,0,1 +10243581,1580,assets/images/split/image789.bin,0,1 +10245161,1538,assets/images/split/image790.bin,0,1 +10246699,1503,assets/images/split/image791.bin,0,1 +10248202,1640,assets/images/split/image792.bin,0,1 +10249842,1656,assets/images/split/image793.bin,0,1 +10251498,1517,assets/images/split/image794.bin,0,1 +10253015,1600,assets/images/split/image795.bin,0,1 +10254615,624,assets/images/split/image796.bin,0,1 +10255239,588,assets/images/split/image797.bin,0,1 +10255827,612,assets/images/split/image798.bin,0,1 +10256439,225,assets/images/split/image799.bin,0,1 +10256664,152,assets/images/split/image800.bin,0,1 +10256816,451,assets/images/split/image801.bin,0,1 +10257267,671,assets/images/split/image802.bin,0,1 +10257938,415,assets/images/split/image803.bin,0,1 +10258353,464,assets/images/split/image804.bin,0,1 +10258817,783,assets/images/split/image805.bin,0,1 +10259600,987,assets/images/split/image806.bin,0,1 +10260587,325,assets/images/split/image807.bin,0,1 +10260912,665,assets/images/split/image808.bin,0,1 +10261577,1056,assets/images/split/image809.bin,0,1 +10262633,600,assets/images/split/image810.bin,0,1 +10263233,670,assets/images/split/image811.bin,0,1 +10263903,821,assets/images/split/image812.bin,0,1 +10264724,457,assets/images/split/image813.bin,0,1 +10265181,1145,assets/images/split/image814.bin,0,1 +10266326,479,assets/images/split/image815.bin,0,1 +10266805,729,assets/images/split/image816.bin,0,1 +10267534,1078,assets/images/split/image817.bin,0,1 +10268612,611,assets/images/split/image818.bin,0,1 +10269223,1539,assets/images/split/image819.bin,0,1 +10270762,1391,assets/images/split/image820.bin,0,1 +10272153,68,assets/images/split/image821.bin,0,1 +10272221,593,assets/images/split/image822.bin,0,1 +10272814,388,assets/images/split/image823.bin,0,1 +10273202,683,assets/images/split/image824.bin,0,1 +10273885,886,assets/images/split/image825.bin,0,1 +10274771,1109,assets/images/split/image826.bin,0,1 +10275880,1334,assets/images/split/image827.bin,0,1 +10277214,1256,assets/images/split/image828.bin,0,1 +10278470,1369,assets/images/split/image829.bin,0,1 +10279839,1401,assets/images/split/image830.bin,0,1 +10281240,1694,assets/images/split/image831.bin,0,1 +10282934,1882,assets/images/split/image832.bin,0,1 +10284816,1707,assets/images/split/image833.bin,0,1 +10286523,957,assets/images/split/image834.bin,0,1 +10287480,790,assets/images/split/image835.bin,0,1 +10288270,1236,assets/images/split/image836.bin,0,1 +10289506,590,assets/images/split/image837.bin,0,1 +10290096,1909,assets/images/split/image838.bin,0,1 +10292005,1962,assets/images/split/image839.bin,0,1 +10293967,1675,assets/images/split/image840.bin,0,1 +10295642,1677,assets/images/split/image841.bin,0,1 +10297319,1402,assets/images/split/image842.bin,0,1 +10298721,1393,assets/images/split/image843.bin,0,1 +10300114,762,assets/images/split/image844.bin,0,1 +10300876,1134,assets/images/split/image845.bin,0,1 +10302010,910,assets/images/split/image846.bin,0,1 +10302920,1187,assets/images/split/image847.bin,0,1 +10304107,183,assets/images/split/image848.bin,0,1 +10304290,1532,assets/images/split/image849.bin,0,1 +10305822,783,assets/images/split/image850.bin,0,1 +10306605,965,assets/images/split/image851.bin,0,1 +10307570,460,assets/images/split/image852.bin,0,1 +10308030,505,assets/images/split/image853.bin,0,1 +10308535,389,assets/images/split/image854.bin,0,1 +10308924,734,assets/images/split/image855.bin,0,1 +10309658,655,assets/images/split/image856.bin,0,1 +10310313,1106,assets/images/split/image857.bin,0,1 +10311419,795,assets/images/split/image858.bin,0,1 +10312214,1788,assets/images/split/image859.bin,0,1 +10314002,1802,assets/images/split/image860.bin,0,1 +10315804,529,assets/images/split/image861.bin,0,1 +10316333,728,assets/images/split/image862.bin,0,1 +10317061,447,assets/images/split/image863.bin,0,1 +10317508,557,assets/images/split/image864.bin,0,1 +10318065,403,assets/images/split/image865.bin,0,1 +10318468,1256,assets/images/split/image866.bin,0,1 +10319724,294,assets/images/split/image867.bin,0,1 +10320018,255,assets/images/split/image868.bin,0,1 +10320273,796,assets/images/split/image869.bin,0,1 +10321069,379,assets/images/split/image870.bin,0,1 +10321448,352,assets/images/split/image871.bin,0,1 +10321800,67,assets/images/split/image872.bin,0,1 +10321867,400,assets/images/split/image873.bin,0,1 +10322267,47,assets/images/split/image874.bin,0,1 +10322314,334,assets/images/split/image875.bin,0,1 +10322648,314,assets/images/split/image876.bin,0,1 +10322962,47,assets/images/split/image877.bin,0,1 +10323009,57,assets/images/split/image878.bin,0,1 +10323066,81,assets/images/split/image879.bin,0,1 +10323147,41,assets/images/split/image880.bin,0,1 +10323188,75,assets/images/split/image881.bin,0,1 +10323263,43,assets/images/split/image882.bin,0,1 +10323306,221,assets/images/split/image883.bin,0,1 +10323527,1792,assets/images/split/image884.bin,0,1 +10325319,584,assets/images/split/image885.bin,0,1 +10325903,335,assets/images/split/image886.bin,0,1 +10326238,364,assets/images/split/image887.bin,0,1 +10326602,1016,assets/images/split/image888.bin,0,1 +10327618,688,assets/images/split/image889.bin,0,1 +10328306,447,assets/images/split/image890.bin,0,1 +10328753,944,assets/images/split/image891.bin,0,1 +10329697,1001,assets/images/split/image892.bin,0,1 +10330698,976,assets/images/split/image893.bin,0,1 +10331674,882,assets/images/split/image894.bin,0,1 +10332556,1490,assets/images/split/image895.bin,0,1 +10334046,1809,assets/images/split/image896.bin,0,1 +10335855,1650,assets/images/split/image897.bin,0,1 +10337505,1226,assets/images/split/image898.bin,0,1 +10338731,1002,assets/images/split/image899.bin,0,1 +10339733,551,assets/images/split/image900.bin,0,1 +10340284,958,assets/images/split/image901.bin,0,1 +10341242,852,assets/images/split/image902.bin,0,1 +10342094,854,assets/images/split/image903.bin,0,1 +10342948,949,assets/images/split/image904.bin,0,1 +10343897,1053,assets/images/split/image905.bin,0,1 +10344950,697,assets/images/split/image906.bin,0,1 +10345647,429,assets/images/split/image907.bin,0,1 +10346076,1299,assets/images/split/image908.bin,0,1 +10347375,1220,assets/images/split/image909.bin,0,1 +10348595,1135,assets/images/split/image910.bin,0,1 +10349730,1245,assets/images/split/image911.bin,0,1 +10350975,1627,assets/images/split/image912.bin,0,1 +10352602,919,assets/images/split/image913.bin,0,1 +10353521,751,assets/images/split/image914.bin,0,1 +10354272,790,assets/images/split/image915.bin,0,1 +10355062,790,assets/images/split/image916.bin,0,1 +10355852,152,assets/images/split/image917.bin,0,1 +10356004,424,assets/images/split/image918.bin,0,1 +10356428,630,assets/images/split/image919.bin,0,1 +10357058,1945,assets/images/split/image920.bin,0,1 +10359003,668,assets/images/split/image921.bin,0,1 +10359671,912,assets/images/split/image922.bin,0,1 +10360583,954,assets/images/split/image923.bin,0,1 +10361537,2214,assets/images/split/image924.bin,0,1 +10363751,830,assets/images/split/image925.bin,0,1 +10364581,1548,assets/images/split/image926.bin,0,1 +10366129,1616,assets/images/split/image927.bin,0,1 +10367745,567,assets/images/split/image928.bin,0,1 +10368312,860,assets/images/split/image929.bin,0,1 +10369172,787,assets/images/split/image930.bin,0,1 +10369959,478,assets/images/split/image931.bin,0,1 +10370437,445,assets/images/split/image932.bin,0,1 +10370882,617,assets/images/split/image933.bin,0,1 +10371499,336,assets/images/split/image934.bin,0,1 +10371835,1078,assets/images/split/image935.bin,0,1 +10372913,358,assets/images/split/image936.bin,0,1 +10373271,397,assets/images/split/image937.bin,0,1 +10373668,513,assets/images/split/image938.bin,0,1 +10374181,1056,assets/images/split/image939.bin,0,1 +10375237,726,assets/images/split/image940.bin,0,1 +10375963,730,assets/images/split/image941.bin,0,1 +10376693,815,assets/images/split/image942.bin,0,1 +10377508,697,assets/images/split/image943.bin,0,1 +10378205,669,assets/images/split/image944.bin,0,1 +10378874,506,assets/images/split/image945.bin,0,1 +10379380,639,assets/images/split/image946.bin,0,1 +10380019,241,assets/images/split/image947.bin,0,1 +10380260,1511,assets/images/split/image948.bin,0,1 +10381771,1649,assets/images/split/image949.bin,0,1 +10383420,1323,assets/images/split/image950.bin,0,1 +10384743,2168,assets/images/split/image951.bin,0,1 +10386911,1945,assets/images/split/image952.bin,0,1 +10388856,1508,assets/images/split/image953.bin,0,1 +10390364,1544,assets/images/split/image954.bin,0,1 +10391908,1384,assets/images/split/image955.bin,0,1 +10393292,1473,assets/images/split/image956.bin,0,1 +10394765,1509,assets/images/split/image957.bin,0,1 +10396274,1908,assets/images/split/image958.bin,0,1 +10398182,647,assets/images/split/image959.bin,0,1 +10398829,647,assets/images/split/image960.bin,0,1 +10399476,1888,assets/images/split/image961.bin,0,1 +10401364,2122,assets/images/split/image962.bin,0,1 +10403486,2157,assets/images/split/image963.bin,0,1 +10405643,2153,assets/images/split/image964.bin,0,1 +10407796,2110,assets/images/split/image965.bin,0,1 +10409906,2097,assets/images/split/image966.bin,0,1 +10412003,2126,assets/images/split/image967.bin,0,1 +10414129,2080,assets/images/split/image968.bin,0,1 +10416209,645,assets/images/split/image969.bin,0,1 +10416854,753,assets/images/split/image970.bin,0,1 +10417607,1227,assets/images/split/image971.bin,0,1 +10418834,2175,assets/images/split/image972.bin,0,1 +10421009,2221,assets/images/split/image973.bin,0,1 +10423230,2175,assets/images/split/image974.bin,0,1 +10425405,2175,assets/images/split/image975.bin,0,1 +10427580,2210,assets/images/split/image976.bin,0,1 +10429790,2175,assets/images/split/image977.bin,0,1 +10431965,2330,assets/images/split/image978.bin,0,1 +10434295,601,assets/images/split/image979.bin,0,1 +10434896,1654,assets/images/split/image980.bin,0,1 +10436550,1654,assets/images/split/image981.bin,0,1 +10438204,74,assets/images/split/image982.bin,0,1 +10438278,880,assets/images/split/image983.bin,0,1 +10439158,775,assets/images/split/image984.bin,0,1 +10439933,785,assets/images/split/image985.bin,0,1 +10440718,1306,assets/images/split/image986.bin,0,1 +10442024,410,assets/images/split/image987.bin,0,1 +10442434,17,assets/images/split/image988.bin,0,1 +10442451,297,assets/images/split/image989.bin,0,1 +10442748,322,assets/images/split/image990.bin,0,1 +10443070,401,assets/images/split/image991.bin,0,1 +10443471,384,assets/images/split/image992.bin,0,1 +10443855,316,assets/images/split/image993.bin,0,1 +10444171,354,assets/images/split/image994.bin,0,1 +10444525,294,assets/images/split/image995.bin,0,1 +10444819,373,assets/images/split/image996.bin,0,1 +10445192,862,assets/images/split/image997.bin,0,1 +10446054,562,assets/images/split/image998.bin,0,1 +10446616,1290,assets/images/split/image999.bin,0,1 +10447906,1036,assets/images/split/image1000.bin,0,1 +10448942,969,assets/images/split/image1001.bin,0,1 +10449911,1232,assets/images/split/image1002.bin,0,1 +10451143,1261,assets/images/split/image1003.bin,0,1 +10452404,615,assets/images/split/image1004.bin,0,1 +10453019,826,assets/images/split/image1005.bin,0,1 +10453845,240,assets/images/split/image1006.bin,0,1 +10454085,1169,assets/images/split/image1007.bin,0,1 +10455254,653,assets/images/split/image1008.bin,0,1 +10455907,434,assets/images/split/image1009.bin,0,1 +10456341,1554,assets/images/split/image1010.bin,0,1 +10457895,1822,assets/images/split/image1011.bin,0,1 +10459717,409,assets/images/split/image1012.bin,0,1 +10460126,1709,assets/images/split/image1013.bin,0,1 +10461835,499,assets/images/split/image1014.bin,0,1 +10462334,905,assets/images/split/image1015.bin,0,1 +10463239,871,assets/images/split/image1016.bin,0,1 +10464110,767,assets/images/split/image1017.bin,0,1 +10464877,889,assets/images/split/image1018.bin,0,1 +10465766,1166,assets/images/split/image1019.bin,0,1 +10466932,1311,assets/images/split/image1020.bin,0,1 +10468243,1349,assets/images/split/image1021.bin,0,1 +10469592,778,assets/images/split/image1022.bin,0,1 +10470370,947,assets/images/split/image1023.bin,0,1 +10471317,1142,assets/images/split/image1024.bin,0,1 +10472459,554,assets/images/split/image1025.bin,0,1 +10473013,150,assets/images/split/image1026.bin,0,1 +10473163,817,assets/images/split/image1027.bin,0,1 +10473980,1103,assets/images/split/image1028.bin,0,1 +10475083,817,assets/images/split/image1029.bin,0,1 +10475900,835,assets/images/split/image1030.bin,0,1 +10476735,173,assets/images/split/image1031.bin,0,1 +10476908,1490,assets/images/split/image1032.bin,0,1 +10478398,1160,assets/images/split/image1033.bin,0,1 +10479558,1143,assets/images/split/image1034.bin,0,1 +10480701,1235,assets/images/split/image1035.bin,0,1 +10481936,1562,assets/images/split/image1036.bin,0,1 +10483498,1167,assets/images/split/image1037.bin,0,1 +10484665,1275,assets/images/split/image1038.bin,0,1 +10485940,1339,assets/images/split/image1039.bin,0,1 +10487279,1696,assets/images/split/image1040.bin,0,1 +10488975,530,assets/images/split/image1041.bin,0,1 +10489505,743,assets/images/split/image1042.bin,0,1 +10490248,677,assets/images/split/image1043.bin,0,1 +10490925,580,assets/images/split/image1044.bin,0,1 +10491505,304,assets/images/split/image1045.bin,0,1 +10491809,348,assets/images/split/image1046.bin,0,1 +10492157,860,assets/images/split/image1047.bin,0,1 +10493017,1654,assets/images/split/image1048.bin,0,1 +10494671,717,assets/images/split/image1049.bin,0,1 +10495388,1902,assets/images/split/image1050.bin,0,1 +10497290,1827,assets/images/split/image1051.bin,0,1 +10499117,1970,assets/images/split/image1052.bin,0,1 +10501087,1555,assets/images/split/image1053.bin,0,1 +10502642,552,assets/images/split/image1054.bin,0,1 +10503194,1490,assets/images/split/image1055.bin,0,1 +10504684,519,assets/images/split/image1056.bin,0,1 +10505203,1438,assets/images/split/image1057.bin,0,1 +10506641,408,assets/images/split/image1058.bin,0,1 +10507049,1356,assets/images/split/image1059.bin,0,1 +10508405,1294,assets/images/split/image1060.bin,0,1 +10509699,483,assets/images/split/image1061.bin,0,1 +10510182,1316,assets/images/split/image1062.bin,0,1 +10511498,982,assets/images/split/image1063.bin,0,1 +10512480,658,assets/images/split/image1064.bin,0,1 +10513138,365,assets/images/split/image1065.bin,0,1 +10513503,965,assets/images/split/image1066.bin,0,1 +10514468,1467,assets/images/split/image1067.bin,0,1 +10515935,1338,assets/images/split/image1068.bin,0,1 +10517273,1443,assets/images/split/image1069.bin,0,1 +10518716,1818,assets/images/split/image1070.bin,0,1 +10520534,1034,assets/images/split/image1071.bin,0,1 +10521568,1761,assets/images/split/image1072.bin,0,1 +10523329,1827,assets/images/split/image1073.bin,0,1 +10525156,1150,assets/images/split/image1074.bin,0,1 +10526306,640,assets/images/split/image1075.bin,0,1 +10526946,899,assets/images/split/image1076.bin,0,1 +10527845,740,assets/images/split/image1077.bin,0,1 +10528585,320,assets/images/split/image1078.bin,0,1 +10528905,230,assets/images/split/image1079.bin,0,1 +10529135,1514,assets/images/split/image1080.bin,0,1 +10530649,1224,assets/images/split/image1081.bin,0,1 +10531873,1295,assets/images/split/image1082.bin,0,1 +10533168,228,assets/images/split/image1083.bin,0,1 +10533396,72,assets/images/split/image1084.bin,0,1 +10533468,1452,assets/images/split/image1085.bin,0,1 +10534920,539,assets/images/split/image1086.bin,0,1 +10535459,863,assets/images/split/image1087.bin,0,1 +10536322,518,assets/images/split/image1088.bin,0,1 +10536840,363,assets/images/split/image1089.bin,0,1 +10537203,1131,assets/images/split/image1090.bin,0,1 +10538334,1343,assets/images/split/image1091.bin,0,1 +10539677,1002,assets/images/split/image1092.bin,0,1 +10540679,1003,assets/images/split/image1093.bin,0,1 +10541682,1307,assets/images/split/image1094.bin,0,1 +10542989,1162,assets/images/split/image1095.bin,0,1 +10544151,1224,assets/images/split/image1096.bin,0,1 +10545375,1110,assets/images/split/image1097.bin,0,1 +10546485,902,assets/images/split/image1098.bin,0,1 +10547387,1264,assets/images/split/image1099.bin,0,1 +10548651,1366,assets/images/split/image1100.bin,0,1 +10550017,1331,assets/images/split/image1101.bin,0,1 +10551348,1002,assets/images/split/image1102.bin,0,1 +10552350,1256,assets/images/split/image1103.bin,0,1 +10553606,1358,assets/images/split/image1104.bin,0,1 +10554964,1304,assets/images/split/image1105.bin,0,1 +10556268,1183,assets/images/split/image1106.bin,0,1 +10557451,1354,assets/images/split/image1107.bin,0,1 +10558805,1335,assets/images/split/image1108.bin,0,1 +10560140,1333,assets/images/split/image1109.bin,0,1 +10561473,998,assets/images/split/image1110.bin,0,1 +10562471,1200,assets/images/split/image1111.bin,0,1 +10563671,1325,assets/images/split/image1112.bin,0,1 +10564996,1333,assets/images/split/image1113.bin,0,1 +10566329,1132,assets/images/split/image1114.bin,0,1 +10567461,1242,assets/images/split/image1115.bin,0,1 +10568703,1029,assets/images/split/image1116.bin,0,1 +10569732,1281,assets/images/split/image1117.bin,0,1 +10571013,1413,assets/images/split/image1118.bin,0,1 +10572426,698,assets/images/split/image1119.bin,0,1 +10573124,672,assets/images/split/image1120.bin,0,1 +10573796,796,assets/images/split/image1121.bin,0,1 +10574592,412,assets/images/split/image1122.bin,0,1 +10575004,216,assets/images/split/image1123.bin,0,1 +10575220,1832,assets/images/split/image1124.bin,0,1 +10577052,1197,assets/images/split/image1125.bin,0,1 +10578249,805,assets/images/split/image1126.bin,0,1 +10579054,1260,assets/images/split/image1127.bin,0,1 +10580314,2049,assets/images/split/image1128.bin,0,1 +10582363,2019,assets/images/split/image1129.bin,0,1 +10584382,1623,assets/images/split/image1130.bin,0,1 +10586005,1074,assets/images/split/image1131.bin,0,1 +10587079,2474,assets/images/split/image1132.bin,0,1 +10589553,895,assets/images/split/image1133.bin,0,1 +10590448,1246,assets/images/split/image1134.bin,0,1 +10591694,1451,assets/images/split/image1135.bin,0,1 +10593145,1548,assets/images/split/image1136.bin,0,1 +10594693,666,assets/images/split/image1137.bin,0,1 +10595359,318,assets/images/split/image1138.bin,0,1 +10595677,489,assets/images/split/image1139.bin,0,1 +10596166,955,assets/images/split/image1140.bin,0,1 +10597121,1086,assets/images/split/image1141.bin,0,1 +10598207,1061,assets/images/split/image1142.bin,0,1 +10599268,688,assets/images/split/image1143.bin,0,1 +10599956,213,assets/images/split/image1144.bin,0,1 +10600169,335,assets/images/split/image1145.bin,0,1 +10600504,297,assets/images/split/image1146.bin,0,1 +10600801,848,assets/images/split/image1147.bin,0,1 +10601649,828,assets/images/split/image1148.bin,0,1 +10602477,852,assets/images/split/image1149.bin,0,1 +10603329,401,assets/images/split/image1150.bin,0,1 +10603730,1226,assets/images/split/image1151.bin,0,1 +10604956,803,assets/images/split/image1152.bin,0,1 +10605759,903,assets/images/split/image1153.bin,0,1 +10606662,1948,assets/images/split/image1154.bin,0,1 +10608610,1798,assets/images/split/image1155.bin,0,1 +10610408,720,assets/images/split/image1156.bin,0,1 +10611128,762,assets/images/split/image1157.bin,0,1 +10611890,1176,assets/images/split/image1158.bin,0,1 +10613066,1183,assets/images/split/image1159.bin,0,1 +10614249,775,assets/images/split/image1160.bin,0,1 +10615024,1353,assets/images/split/image1161.bin,0,1 +10616377,1253,assets/images/split/image1162.bin,0,1 +10617630,1006,assets/images/split/image1163.bin,0,1 +10618636,1031,assets/images/split/image1164.bin,0,1 +10619667,1507,assets/images/split/image1165.bin,0,1 +10621174,1345,assets/images/split/image1166.bin,0,1 +10622519,1331,assets/images/split/image1167.bin,0,1 +10623850,1081,assets/images/split/image1168.bin,0,1 +10624931,1520,assets/images/split/image1169.bin,0,1 +10626451,1457,assets/images/split/image1170.bin,0,1 +10627908,884,assets/images/split/image1171.bin,0,1 +10628792,37,assets/images/split/image1172.bin,0,1 +10628829,676,assets/images/split/image1173.bin,0,1 +10629505,576,assets/images/split/image1174.bin,0,1 +10630081,527,assets/images/split/image1175.bin,0,1 +10630608,873,assets/images/split/image1176.bin,0,1 +10631481,551,assets/images/split/image1177.bin,0,1 +10632032,289,assets/images/split/image1178.bin,0,1 +10632321,617,assets/images/split/image1179.bin,0,1 +10632938,473,assets/images/split/image1180.bin,0,1 +10633411,586,assets/images/split/image1181.bin,0,1 +10633997,539,assets/images/split/image1182.bin,0,1 +10634536,1142,assets/images/split/image1183.bin,0,1 +10635678,1713,assets/images/split/image1184.bin,0,1 +10637391,1382,assets/images/split/image1185.bin,0,1 +10638773,1448,assets/images/split/image1186.bin,0,1 +10640221,1343,assets/images/split/image1187.bin,0,1 +10641564,94,assets/images/split/image1188.bin,0,1 +10641658,746,assets/images/split/image1189.bin,0,1 +10642404,958,assets/images/split/image1190.bin,0,1 +10643362,341,assets/images/split/image1191.bin,0,1 +10643703,198,assets/images/split/image1192.bin,0,1 +10643901,834,assets/images/split/image1193.bin,0,1 +10644735,982,assets/images/split/image1194.bin,0,1 +10645717,809,assets/images/split/image1195.bin,0,1 +10646526,1998,assets/images/split/image1196.bin,0,1 +10648524,1492,assets/images/split/image1197.bin,0,1 +10650016,1569,assets/images/split/image1198.bin,0,1 +10651585,2035,assets/images/split/image1199.bin,0,1 +10653620,1902,assets/images/split/image1200.bin,0,1 +10655522,1964,assets/images/split/image1201.bin,0,1 +10657486,483,assets/images/split/image1202.bin,0,1 +10657969,652,assets/images/split/image1203.bin,0,1 +10658621,722,assets/images/split/image1204.bin,0,1 +10659343,952,assets/images/split/image1205.bin,0,1 +10660295,1348,assets/images/split/image1206.bin,0,1 +10661643,1226,assets/images/split/image1207.bin,0,1 +10662869,1318,assets/images/split/image1208.bin,0,1 +10664187,1397,assets/images/split/image1209.bin,0,1 +10665584,1211,assets/images/split/image1210.bin,0,1 +10666795,1397,assets/images/split/image1211.bin,0,1 +10668192,1490,assets/images/split/image1212.bin,0,1 +10669682,1439,assets/images/split/image1213.bin,0,1 +10671121,317,assets/images/split/image1214.bin,0,1 +10671438,1764,assets/images/split/image1215.bin,0,1 +10673202,1661,assets/images/split/image1216.bin,0,1 +10674863,745,assets/images/split/image1217.bin,0,1 +10675608,883,assets/images/split/image1218.bin,0,1 +10676491,354,assets/images/split/image1219.bin,0,1 +10676845,273,assets/images/split/image1220.bin,0,1 +10677118,195,assets/images/split/image1221.bin,0,1 +10677313,542,assets/images/split/image1222.bin,0,1 +10677855,1082,assets/images/split/image1223.bin,0,1 +10678937,1357,assets/images/split/image1224.bin,0,1 +10680294,653,assets/images/split/image1225.bin,0,1 +10680947,963,assets/images/split/image1226.bin,0,1 +10681910,961,assets/images/split/image1227.bin,0,1 +10682871,940,assets/images/split/image1228.bin,0,1 +10683811,1438,assets/images/split/image1229.bin,0,1 +10685249,841,assets/images/split/image1230.bin,0,1 +10686090,984,assets/images/split/image1231.bin,0,1 +10687074,1107,assets/images/split/image1232.bin,0,1 +10688181,1055,assets/images/split/image1233.bin,0,1 +10689236,1711,assets/images/split/image1234.bin,0,1 +10690947,925,assets/images/split/image1235.bin,0,1 +10691872,768,assets/images/split/image1236.bin,0,1 +10692640,994,assets/images/split/image1237.bin,0,1 +10693634,907,assets/images/split/image1238.bin,0,1 +10694541,810,assets/images/split/image1239.bin,0,1 +10695351,1038,assets/images/split/image1240.bin,0,1 +10696389,819,assets/images/split/image1241.bin,0,1 +10697208,709,assets/images/split/image1242.bin,0,1 +10697917,613,assets/images/split/image1243.bin,0,1 +10698530,876,assets/images/split/image1244.bin,0,1 +10699406,1342,assets/images/split/image1245.bin,0,1 +10700748,1200,assets/images/split/image1246.bin,0,1 +10701948,408,assets/images/split/image1247.bin,0,1 +10702356,1257,assets/images/split/image1248.bin,0,1 +10703613,668,assets/images/split/image1249.bin,0,1 +10704281,739,assets/images/split/image1250.bin,0,1 +10705020,729,assets/images/split/image1251.bin,0,1 +10705749,630,assets/images/split/image1252.bin,0,1 +10706379,739,assets/images/split/image1253.bin,0,1 +10707118,939,assets/images/split/image1254.bin,0,1 +10708057,585,assets/images/split/image1255.bin,0,1 +10708642,218,assets/images/split/image1256.bin,0,1 +10708860,887,assets/images/split/image1257.bin,0,1 +10709747,1351,assets/images/split/image1258.bin,0,1 +10711098,999,assets/images/split/image1259.bin,0,1 +10712097,771,assets/images/split/image1260.bin,0,1 +10712868,498,assets/images/split/image1261.bin,0,1 +10713366,296,assets/images/split/image1262.bin,0,1 +10713662,434,assets/images/split/image1263.bin,0,1 +10714096,260,assets/images/split/image1264.bin,0,1 +10714356,1188,assets/images/split/image1265.bin,0,1 +10715544,830,assets/images/split/image1266.bin,0,1 +10716374,1356,assets/images/split/image1267.bin,0,1 +10717730,1121,assets/images/split/image1268.bin,0,1 +10718851,761,assets/images/split/image1269.bin,0,1 +10719612,1357,assets/images/split/image1270.bin,0,1 +10720969,481,assets/images/split/image1271.bin,0,1 +10721450,551,assets/images/split/image1272.bin,0,1 +10722001,501,assets/images/split/image1273.bin,0,1 +10722502,830,assets/images/split/image1274.bin,0,1 +10723332,726,assets/images/split/image1275.bin,0,1 +10724058,417,assets/images/split/image1276.bin,0,1 +10724475,203,assets/images/split/image1277.bin,0,1 +10724678,1264,assets/images/split/image1278.bin,0,1 +10725942,403,assets/images/split/image1279.bin,0,1 +10726345,880,assets/images/split/image1280.bin,0,1 +10727225,942,assets/images/split/image1281.bin,0,1 +10728167,1048,assets/images/split/image1282.bin,0,1 +10729215,439,assets/images/split/image1283.bin,0,1 +10729654,664,assets/images/split/image1284.bin,0,1 +10730318,2068,assets/images/split/image1285.bin,0,1 +10732386,2058,assets/images/split/image1286.bin,0,1 +10734444,2068,assets/images/split/image1287.bin,0,1 +10736512,2058,assets/images/split/image1288.bin,0,1 +10738570,1548,assets/images/split/image1289.bin,0,1 +10740118,1085,assets/images/split/image1290.bin,0,1 +10741203,1537,assets/images/split/image1291.bin,0,1 +10742740,1548,assets/images/split/image1292.bin,0,1 +10744288,1436,assets/images/split/image1293.bin,0,1 +10745724,1519,assets/images/split/image1294.bin,0,1 +10747243,1518,assets/images/split/image1295.bin,0,1 +10748761,1548,assets/images/split/image1296.bin,0,1 +10750309,1548,assets/images/split/image1297.bin,0,1 +10751857,1185,assets/images/split/image1298.bin,0,1 +10753042,1262,assets/images/split/image1299.bin,0,1 +10754304,1504,assets/images/split/image1300.bin,0,1 +10755808,1548,assets/images/split/image1301.bin,0,1 +10757356,1548,assets/images/split/image1302.bin,0,1 +10758904,1548,assets/images/split/image1303.bin,0,1 +10760452,2068,assets/images/split/image1304.bin,0,1 +10762520,2058,assets/images/split/image1305.bin,0,1 +10764578,2058,assets/images/split/image1306.bin,0,1 +10766636,2058,assets/images/split/image1307.bin,0,1 +10768694,1529,assets/images/split/image1308.bin,0,1 +10770223,1548,assets/images/split/image1309.bin,0,1 +10771771,2022,assets/images/split/image1310.bin,0,1 +10773793,2028,assets/images/split/image1311.bin,0,1 +10775821,2043,assets/images/split/image1312.bin,0,1 +10777864,2058,assets/images/split/image1313.bin,0,1 +10779922,2060,assets/images/split/image1314.bin,0,1 +10781982,2058,assets/images/split/image1315.bin,0,1 +10784040,2058,assets/images/split/image1316.bin,0,1 +10786098,2053,assets/images/split/image1317.bin,0,1 +10788151,1513,assets/images/split/image1318.bin,0,1 +10789664,1493,assets/images/split/image1319.bin,0,1 +10791157,1513,assets/images/split/image1320.bin,0,1 +10792670,1106,assets/images/split/image1321.bin,0,1 +10793776,1548,assets/images/split/image1322.bin,0,1 +10795324,1548,assets/images/split/image1323.bin,0,1 +10796872,2068,assets/images/split/image1324.bin,0,1 +10798940,2068,assets/images/split/image1325.bin,0,1 +10801008,2058,assets/images/split/image1326.bin,0,1 +10803066,2056,assets/images/split/image1327.bin,0,1 +10805122,2058,assets/images/split/image1328.bin,0,1 +10807180,2058,assets/images/split/image1329.bin,0,1 +10809238,2058,assets/images/split/image1330.bin,0,1 +10811296,2058,assets/images/split/image1331.bin,0,1 +10813354,1178,assets/images/split/image1332.bin,0,1 +10814532,1515,assets/images/split/image1333.bin,0,1 +10816047,1335,assets/images/split/image1334.bin,0,1 +10817382,1545,assets/images/split/image1335.bin,0,1 +10818927,1517,assets/images/split/image1336.bin,0,1 +10820444,1286,assets/images/split/image1337.bin,0,1 +10821730,899,assets/images/split/image1338.bin,0,1 +10822629,1269,assets/images/split/image1339.bin,0,1 +10823898,2068,assets/images/split/image1340.bin,0,1 +10825966,2068,assets/images/split/image1341.bin,0,1 +10828034,2058,assets/images/split/image1342.bin,0,1 +10830092,2058,assets/images/split/image1343.bin,0,1 +10832150,2058,assets/images/split/image1344.bin,0,1 +10834208,2058,assets/images/split/image1345.bin,0,1 +10836266,2058,assets/images/split/image1346.bin,0,1 +10838324,2058,assets/images/split/image1347.bin,0,1 +10840382,2068,assets/images/split/image1348.bin,0,1 +10842450,2068,assets/images/split/image1349.bin,0,1 +10844518,2058,assets/images/split/image1350.bin,0,1 +10846576,2058,assets/images/split/image1351.bin,0,1 +10848634,2058,assets/images/split/image1352.bin,0,1 +10850692,2058,assets/images/split/image1353.bin,0,1 +10852750,2058,assets/images/split/image1354.bin,0,1 +10854808,2058,assets/images/split/image1355.bin,0,1 +10856866,789,assets/images/split/image1356.bin,0,1 +10857655,643,assets/images/split/image1357.bin,0,1 +10858298,646,assets/images/split/image1358.bin,0,1 +10858944,1158,assets/images/split/image1359.bin,0,1 +10860102,1526,assets/images/split/image1360.bin,0,1 +10861628,1548,assets/images/split/image1361.bin,0,1 +10863176,1545,assets/images/split/image1362.bin,0,1 +10864721,1223,assets/images/split/image1363.bin,0,1 +10865944,830,assets/images/split/image1364.bin,0,1 +10866774,1063,assets/images/split/image1365.bin,0,1 +10867837,474,assets/images/split/image1366.bin,0,1 +10868311,1555,assets/images/split/image1367.bin,0,1 +10869866,1218,assets/images/split/image1368.bin,0,1 +10871084,1251,assets/images/split/image1369.bin,0,1 +10872335,1107,assets/images/split/image1370.bin,0,1 +10873442,1147,assets/images/split/image1371.bin,0,1 +10874589,636,assets/images/split/image1372.bin,0,1 +10875225,807,assets/images/split/image1373.bin,0,1 +10876032,737,assets/images/split/image1374.bin,0,1 +10876769,823,assets/images/split/image1375.bin,0,1 +10877592,590,assets/images/split/image1376.bin,0,1 +10878182,496,assets/images/split/image1377.bin,0,1 +10878678,819,assets/images/split/image1378.bin,0,1 +10879497,210,assets/images/split/image1379.bin,0,1 +10879707,1211,assets/images/split/image1380.bin,0,1 +10880918,40,assets/images/split/image1381.bin,0,1 +10880958,38,assets/images/split/image1382.bin,0,1 +10880996,826,assets/images/split/image1383.bin,0,1 +10881822,633,assets/images/split/image1384.bin,0,1 +10882455,1538,assets/images/split/image1385.bin,0,1 +10883993,787,assets/images/split/image1386.bin,0,1 +10884780,787,assets/images/split/image1387.bin,0,1 +10885567,1349,assets/images/split/image1388.bin,0,1 +10886916,1023,assets/images/split/image1389.bin,0,1 +10887939,1122,assets/images/split/image1390.bin,0,1 +10889061,1021,assets/images/split/image1391.bin,0,1 +10890082,399,assets/images/split/image1392.bin,0,1 +10890481,590,assets/images/split/image1393.bin,0,1 +10891071,940,assets/images/split/image1394.bin,0,1 +10892011,1423,assets/images/split/image1395.bin,0,1 +10893434,1374,assets/images/split/image1396.bin,0,1 +10894808,1047,assets/images/split/image1397.bin,0,1 +10895855,1222,assets/images/split/image1398.bin,0,1 +10897077,1413,assets/images/split/image1399.bin,0,1 +10898490,1126,assets/images/split/image1400.bin,0,1 +10899616,2383,assets/images/split/image1401.bin,0,1 +10901999,2288,assets/images/split/image1402.bin,0,1 +10904287,2305,assets/images/split/image1403.bin,0,1 +10906592,2349,assets/images/split/image1404.bin,0,1 +10908941,2368,assets/images/split/image1405.bin,0,1 +10911309,2313,assets/images/split/image1406.bin,0,1 +10913622,2368,assets/images/split/image1407.bin,0,1 +10915990,2289,assets/images/split/image1408.bin,0,1 +10918279,452,assets/images/split/image1409.bin,0,1 +10918731,371,assets/images/split/image1410.bin,0,1 +10919102,341,assets/images/split/image1411.bin,0,1 +10919443,785,assets/images/split/image1412.bin,0,1 +10920228,658,assets/images/split/image1413.bin,0,1 +10920886,555,assets/images/split/image1414.bin,0,1 +10921441,509,assets/images/split/image1415.bin,0,1 +10921950,461,assets/images/split/image1416.bin,0,1 +10922411,515,assets/images/split/image1417.bin,0,1 +10922926,642,assets/images/split/image1418.bin,0,1 +10923568,590,assets/images/split/image1419.bin,0,1 +10924158,479,assets/images/split/image1420.bin,0,1 +10924637,532,assets/images/split/image1421.bin,0,1 +10925169,1047,assets/images/split/image1422.bin,0,1 +10926216,500,assets/images/split/image1423.bin,0,1 +10926716,1505,assets/images/split/image1424.bin,0,1 +10928221,93,assets/images/split/image1425.bin,0,1 +10928314,1366,assets/images/split/image1426.bin,0,1 +10929680,353,assets/images/split/image1427.bin,0,1 +10930033,345,assets/images/split/image1428.bin,0,1 +10930378,1215,assets/images/split/image1429.bin,0,1 +10931593,643,assets/images/split/image1430.bin,0,1 +10932236,814,assets/images/split/image1431.bin,0,1 +10933050,308,assets/images/split/image1432.bin,0,1 +10933358,590,assets/images/split/image1433.bin,0,1 +10933948,278,assets/images/split/image1434.bin,0,1 +10934226,240,assets/images/split/image1435.bin,0,1 +10934466,274,assets/images/split/image1436.bin,0,1 +10934740,979,assets/images/split/image1437.bin,0,1 +10935719,979,assets/images/split/image1438.bin,0,1 +10936698,999,assets/images/split/image1439.bin,0,1 +10937697,1098,assets/images/split/image1440.bin,0,1 +10938795,283,assets/images/split/image1441.bin,0,1 +10939078,300,assets/images/split/image1442.bin,0,1 +10939378,373,assets/images/split/image1443.bin,0,1 +10939751,638,assets/images/split/image1444.bin,0,1 +10940389,456,assets/images/split/image1445.bin,0,1 +10940845,737,assets/images/split/image1446.bin,0,1 +10941582,511,assets/images/split/image1447.bin,0,1 +10942093,760,assets/images/split/image1448.bin,0,1 +10942853,667,assets/images/split/image1449.bin,0,1 +10943520,632,assets/images/split/image1450.bin,0,1 +10944152,671,assets/images/split/image1451.bin,0,1 +10944823,593,assets/images/split/image1452.bin,0,1 +10945416,654,assets/images/split/image1453.bin,0,1 +10946070,622,assets/images/split/image1454.bin,0,1 +10946692,722,assets/images/split/image1455.bin,0,1 +10947414,913,assets/images/split/image1456.bin,0,1 +10948327,1074,assets/images/split/image1457.bin,0,1 +10949401,315,assets/images/split/image1458.bin,0,1 +10949716,634,assets/images/split/image1459.bin,0,1 +10950350,623,assets/images/split/image1460.bin,0,1 +10950973,1285,assets/images/split/image1461.bin,0,1 +10952258,1246,assets/images/split/image1462.bin,0,1 +10953504,1202,assets/images/split/image1463.bin,0,1 +10954706,827,assets/images/split/image1464.bin,0,1 +10955533,727,assets/images/split/image1465.bin,0,1 +10956260,438,assets/images/split/image1466.bin,0,1 +10956698,498,assets/images/split/image1467.bin,0,1 +10957196,1699,assets/images/split/image1468.bin,0,1 +10958895,1699,assets/images/split/image1469.bin,0,1 +10960594,639,assets/images/split/image1470.bin,0,1 +10961233,603,assets/images/split/image1471.bin,0,1 +10961836,420,assets/images/split/image1472.bin,0,1 +10962256,1410,assets/images/split/image1473.bin,0,1 +10963666,541,assets/images/split/image1474.bin,0,1 +10964207,1309,assets/images/split/image1475.bin,0,1 +10965516,1272,assets/images/split/image1476.bin,0,1 +10966788,1159,assets/images/split/image1477.bin,0,1 +10967947,872,assets/images/split/image1478.bin,0,1 +10968819,892,assets/images/split/image1479.bin,0,1 +10969711,1930,assets/images/split/image1480.bin,0,1 +10971641,73,assets/images/split/image1481.bin,0,1 +10971714,75,assets/images/split/image1482.bin,0,1 +10971789,51,assets/images/split/image1483.bin,0,1 +10971840,958,assets/images/split/image1484.bin,0,1 +10972798,190,assets/images/split/image1485.bin,0,1 +10972988,424,assets/images/split/image1486.bin,0,1 +10973412,1742,assets/images/split/image1487.bin,0,1 +10975154,1652,assets/images/split/image1488.bin,0,1 +10976806,1798,assets/images/split/image1489.bin,0,1 +10978604,1732,assets/images/split/image1490.bin,0,1 +10980336,1758,assets/images/split/image1491.bin,0,1 +10982094,1792,assets/images/split/image1492.bin,0,1 +10983886,1724,assets/images/split/image1493.bin,0,1 +10985610,1765,assets/images/split/image1494.bin,0,1 +10987375,1643,assets/images/split/image1495.bin,0,1 +10989018,1851,assets/images/split/image1496.bin,0,1 +10990869,998,assets/images/split/image1497.bin,0,1 +10991867,1028,assets/images/split/image1498.bin,0,1 +10992895,925,assets/images/split/image1499.bin,0,1 +10993820,746,assets/images/split/image1500.bin,0,1 +10994566,1396,assets/images/split/image1501.bin,0,1 +10995962,270,assets/images/split/image1502.bin,0,1 +10996232,528,assets/images/split/image1503.bin,0,1 +10996760,351,assets/images/split/image1504.bin,0,1 +10997111,785,assets/images/split/image1505.bin,0,1 +10997896,943,assets/images/split/image1506.bin,0,1 +10998839,1271,assets/images/split/image1507.bin,0,1 +11000110,650,assets/images/split/image1508.bin,0,1 +11000760,564,assets/images/split/image1509.bin,0,1 +11001324,658,assets/images/split/image1510.bin,0,1 +11001982,645,assets/images/split/image1511.bin,0,1 +11002627,1353,assets/images/split/image1512.bin,0,1 +11003980,502,assets/images/split/image1513.bin,0,1 +11004482,12,assets/images/split/image1514.bin,0,1 +11004494,360,assets/images/split/image1515.bin,0,1 +11004854,400,assets/images/split/image1516.bin,0,1 +11005254,592,assets/images/split/image1517.bin,0,1 +11005846,1402,assets/images/split/image1518.bin,0,1 +11007248,1068,assets/images/split/image1519.bin,0,1 +11008316,1279,assets/images/split/image1520.bin,0,1 +11009595,803,assets/images/split/image1521.bin,0,1 +11010398,479,assets/images/split/image1522.bin,0,1 +11010877,1283,assets/images/split/image1523.bin,0,1 +11012160,421,assets/images/split/image1524.bin,0,1 +11012581,748,assets/images/split/image1525.bin,0,1 +11013329,1157,assets/images/split/image1526.bin,0,1 +11014486,1832,assets/images/split/image1527.bin,0,1 +11016318,547,assets/images/split/image1528.bin,0,1 +11016865,971,assets/images/split/image1529.bin,0,1 +11017836,346,assets/images/split/image1530.bin,0,1 +11018182,231,assets/images/split/image1531.bin,0,1 +11018413,374,assets/images/split/image1532.bin,0,1 +11018787,436,assets/images/split/image1533.bin,0,1 +11019223,707,assets/images/split/image1534.bin,0,1 +11019930,680,assets/images/split/image1535.bin,0,1 +11020610,570,assets/images/split/image1536.bin,0,1 +11021180,582,assets/images/split/image1537.bin,0,1 +11021762,576,assets/images/split/image1538.bin,0,1 +11022338,636,assets/images/split/image1539.bin,0,1 +11022974,746,assets/images/split/image1540.bin,0,1 +11023720,1201,assets/images/split/image1541.bin,0,1 +11024921,1140,assets/images/split/image1542.bin,0,1 +11026061,1157,assets/images/split/image1543.bin,0,1 +11027218,2006,assets/images/split/image1544.bin,0,1 +11029224,2177,assets/images/split/image1545.bin,0,1 +11031401,1066,assets/images/split/image1546.bin,0,1 +11032467,1468,assets/images/split/image1547.bin,0,1 +11033935,1836,assets/images/split/image1548.bin,0,1 +11035771,2193,assets/images/split/image1549.bin,0,1 +11037964,1884,assets/images/split/image1550.bin,0,1 +11039848,2268,assets/images/split/image1551.bin,0,1 +11042116,2378,assets/images/split/image1552.bin,0,1 +11044494,2340,assets/images/split/image1553.bin,0,1 +11046834,2416,assets/images/split/image1554.bin,0,1 +11049250,590,assets/images/split/image1555.bin,0,1 +11049840,2468,assets/images/split/image1556.bin,0,1 +11052308,823,assets/images/split/image1557.bin,0,1 +11053131,1544,assets/images/split/image1558.bin,0,1 +11054675,1548,assets/images/split/image1559.bin,0,1 +11056223,2535,assets/images/split/image1560.bin,0,1 +11058758,2524,assets/images/split/image1561.bin,0,1 +11061282,2498,assets/images/split/image1562.bin,0,1 +11063780,504,assets/images/split/image1563.bin,0,1 +11064284,593,assets/images/split/image1564.bin,0,1 +11064877,562,assets/images/split/image1565.bin,0,1 +11065439,507,assets/images/split/image1566.bin,0,1 +11065946,1472,assets/images/split/image1567.bin,0,1 +11067418,1031,assets/images/split/image1568.bin,0,1 +11068449,2537,assets/images/split/image1569.bin,0,1 +11070986,2214,assets/images/split/image1570.bin,0,1 +11073200,2408,assets/images/split/image1571.bin,0,1 +11075608,1477,assets/images/split/image1572.bin,0,1 +11077085,1050,assets/images/split/image1573.bin,0,1 +11078135,902,assets/images/split/image1574.bin,0,1 +11079037,990,assets/images/split/image1575.bin,0,1 +11080027,626,assets/images/split/image1576.bin,0,1 +11080653,917,assets/images/split/image1577.bin,0,1 +11081570,848,assets/images/split/image1578.bin,0,1 +11082418,748,assets/images/split/image1579.bin,0,1 +11083166,804,assets/images/split/image1580.bin,0,1 +11083970,710,assets/images/split/image1581.bin,0,1 +11084680,1822,assets/images/split/image1582.bin,0,1 +11086502,1807,assets/images/split/image1583.bin,0,1 +11088309,857,assets/images/split/image1584.bin,0,1 +11089166,969,assets/images/split/image1585.bin,0,1 +11090135,928,assets/images/split/image1586.bin,0,1 +11091063,875,assets/images/split/image1587.bin,0,1 +11091938,183,assets/images/split/image1588.bin,0,1 +11092121,1275,assets/images/split/image1589.bin,0,1 +11093396,1343,assets/images/split/image1590.bin,0,1 +11094739,1233,assets/images/split/image1591.bin,0,1 +11095972,1805,assets/images/split/image1592.bin,0,1 +11097777,732,assets/images/split/image1593.bin,0,1 +11098509,934,assets/images/split/image1594.bin,0,1 +11099443,411,assets/images/split/image1595.bin,0,1 +11099854,972,assets/images/split/image1596.bin,0,1 +11100826,40,assets/images/split/image1597.bin,0,1 +11100866,53,assets/images/split/image1598.bin,0,1 +11100919,567,assets/images/split/image1599.bin,0,1 +11101486,933,assets/images/split/image1600.bin,0,1 +11102419,910,assets/images/split/image1601.bin,0,1 +11103329,677,assets/images/split/image1602.bin,0,1 +11104006,655,assets/images/split/image1603.bin,0,1 +11104661,12,assets/images/split/image1604.bin,0,1 +11104673,475,assets/images/split/image1605.bin,0,1 +11105148,1883,assets/images/split/image1606.bin,0,1 +11107031,632,assets/images/split/image1607.bin,0,1 +11107663,12,assets/images/split/image1608.bin,0,1 +11107675,983,assets/images/split/image1609.bin,0,1 +11108658,341,assets/images/split/image1610.bin,0,1 +11108999,1019,assets/images/split/image1611.bin,0,1 +11110018,941,assets/images/split/image1612.bin,0,1 +11110959,1436,assets/images/split/image1613.bin,0,1 +11112395,305,assets/images/split/image1614.bin,0,1 +11112700,953,assets/images/split/image1615.bin,0,1 +11113653,1268,assets/images/split/image1616.bin,0,1 +11114921,335,assets/images/split/image1617.bin,0,1 +11115256,949,assets/images/split/image1618.bin,0,1 +11116205,1174,assets/images/split/image1619.bin,0,1 +11117379,366,assets/images/split/image1620.bin,0,1 +11117745,971,assets/images/split/image1621.bin,0,1 +11118716,1255,assets/images/split/image1622.bin,0,1 +11119971,434,assets/images/split/image1623.bin,0,1 +11120405,2144,assets/images/split/image1624.bin,0,1 +11122549,2170,assets/images/split/image1625.bin,0,1 +11124719,1788,assets/images/split/image1626.bin,0,1 +11126507,335,assets/images/split/image1627.bin,0,1 +11126842,762,assets/images/split/image1628.bin,0,1 +11127604,767,assets/images/split/image1629.bin,0,1 +11128371,308,assets/images/split/image1630.bin,0,1 +11128679,724,assets/images/split/image1631.bin,0,1 +11129403,1278,assets/images/split/image1632.bin,0,1 +11130681,1332,assets/images/split/image1633.bin,0,1 +11132013,899,assets/images/split/image1634.bin,0,1 +11132912,874,assets/images/split/image1635.bin,0,1 +11133786,753,assets/images/split/image1636.bin,0,1 +11134539,876,assets/images/split/image1637.bin,0,1 +11135415,314,assets/images/split/image1638.bin,0,1 +11135729,55,assets/images/split/image1639.bin,0,1 +11135784,921,assets/images/split/image1640.bin,0,1 +11136705,745,assets/images/split/image1641.bin,0,1 +11137450,1055,assets/images/split/image1642.bin,0,1 +11138505,812,assets/images/split/image1643.bin,0,1 +11139317,1470,assets/images/split/image1644.bin,0,1 +11140787,717,assets/images/split/image1645.bin,0,1 +11141504,781,assets/images/split/image1646.bin,0,1 +11142285,1486,assets/images/split/image1647.bin,0,1 +11143771,1832,assets/images/split/image1648.bin,0,1 +11145603,1148,assets/images/split/image1649.bin,0,1 +11146751,1522,assets/images/split/image1650.bin,0,1 +11148273,64,assets/images/split/image1651.bin,0,1 +11148337,1724,assets/images/split/image1652.bin,0,1 +11150061,2474,assets/images/split/image1653.bin,0,1 +11152535,2042,assets/images/split/image1654.bin,0,1 +11154577,1022,assets/images/split/image1655.bin,0,1 +11155599,1230,assets/images/split/image1656.bin,0,1 +11156829,700,assets/images/split/image1657.bin,0,1 +11157529,1488,assets/images/split/image1658.bin,0,1 +11159017,1389,assets/images/split/image1659.bin,0,1 +11160406,1937,assets/images/split/image1660.bin,0,1 +11162343,2385,assets/images/split/image1661.bin,0,1 +11164728,1933,assets/images/split/image1662.bin,0,1 +11166661,590,assets/images/split/image1663.bin,0,1 +11167251,781,assets/images/split/image1664.bin,0,1 +11168032,2358,assets/images/split/image1665.bin,0,1 +11170390,1233,assets/images/split/image1666.bin,0,1 +11171623,1358,assets/images/split/image1667.bin,0,1 +11172981,374,assets/images/split/image1668.bin,0,1 +11173355,1441,assets/images/split/image1669.bin,0,1 +11174796,1414,assets/images/split/image1670.bin,0,1 +11176210,12,assets/images/split/image1671.bin,0,1 +11176222,1122,assets/images/split/image1672.bin,0,1 +11177344,1527,assets/images/split/image1673.bin,0,1 +11178871,1844,assets/images/split/image1674.bin,0,1 +11180715,1850,assets/images/split/image1675.bin,0,1 +11182565,1735,assets/images/split/image1676.bin,0,1 +11184300,1945,assets/images/split/image1677.bin,0,1 +11186245,1125,assets/images/split/image1678.bin,0,1 +11187370,1630,assets/images/split/image1679.bin,0,1 +11189000,1179,assets/images/split/image1680.bin,0,1 +11190179,1664,assets/images/split/image1681.bin,0,1 +11191843,2444,assets/images/split/image1682.bin,0,1 +11194287,2336,assets/images/split/image1683.bin,0,1 +11196623,2333,assets/images/split/image1684.bin,0,1 +11198956,2494,assets/images/split/image1685.bin,0,1 +11201450,1647,assets/images/split/image1686.bin,0,1 +11203097,1553,assets/images/split/image1687.bin,0,1 +11204650,1459,assets/images/split/image1688.bin,0,1 +11206109,327,assets/images/split/image1689.bin,0,1 +11206436,1690,assets/images/split/image1690.bin,0,1 +11208126,1333,assets/images/split/image1691.bin,0,1 +11209459,1034,assets/images/split/image1692.bin,0,1 +11210493,796,assets/images/split/image1693.bin,0,1 +11211289,720,assets/images/split/image1694.bin,0,1 +11212009,703,assets/images/split/image1695.bin,0,1 +11212712,2456,assets/images/split/image1696.bin,0,1 +11215168,449,assets/images/split/image1697.bin,0,1 +11215617,692,assets/images/split/image1698.bin,0,1 +11216309,796,assets/images/split/image1699.bin,0,1 +11217105,904,assets/images/split/image1700.bin,0,1 +11218009,1006,assets/images/split/image1701.bin,0,1 +11219015,2267,assets/images/split/image1702.bin,0,1 +11221282,2137,assets/images/split/image1703.bin,0,1 +11223419,874,assets/images/split/image1704.bin,0,1 +11224293,2391,assets/images/split/image1705.bin,0,1 +11226684,2463,assets/images/split/image1706.bin,0,1 +11229147,2512,assets/images/split/image1707.bin,0,1 +11231659,1686,assets/images/split/image1708.bin,0,1 +11233345,446,assets/images/split/image1709.bin,0,1 +11233791,673,assets/images/split/image1710.bin,0,1 +11234464,1368,assets/images/split/image1711.bin,0,1 +11235832,443,assets/images/split/image1712.bin,0,1 +11236275,695,assets/images/split/image1713.bin,0,1 +11236970,643,assets/images/split/image1714.bin,0,1 +11237613,592,assets/images/split/image1715.bin,0,1 +11238205,705,assets/images/split/image1716.bin,0,1 +11238910,1249,assets/images/split/image1717.bin,0,1 +11240159,876,assets/images/split/image1718.bin,0,1 +11241035,775,assets/images/split/image1719.bin,0,1 +11241810,746,assets/images/split/image1720.bin,0,1 +11242556,705,assets/images/split/image1721.bin,0,1 +11243261,2371,assets/images/split/image1722.bin,0,1 +11245632,2243,assets/images/split/image1723.bin,0,1 +11247875,2311,assets/images/split/image1724.bin,0,1 +11250186,12,assets/images/split/image1725.bin,0,1 +11250198,2514,assets/images/split/image1726.bin,0,1 +11252712,2483,assets/images/split/image1727.bin,0,1 +11255195,2448,assets/images/split/image1728.bin,0,1 +11257643,1022,assets/images/split/image1729.bin,0,1 +11258665,1034,assets/images/split/image1730.bin,0,1 +11259699,1095,assets/images/split/image1731.bin,0,1 +11260794,1048,assets/images/split/image1732.bin,0,1 +11261842,2099,assets/images/split/image1733.bin,0,1 +11263941,2025,assets/images/split/image1734.bin,0,1 +11265966,833,assets/images/split/image1735.bin,0,1 +11266799,369,assets/images/split/image1736.bin,0,1 +11267168,1543,assets/images/split/image1737.bin,0,1 +11268711,1421,assets/images/split/image1738.bin,0,1 +11270132,951,assets/images/split/image1739.bin,0,1 +11271083,1024,assets/images/split/image1740.bin,0,1 +11272107,1114,assets/images/split/image1741.bin,0,1 +11273221,1810,assets/images/split/image1742.bin,0,1 +11275031,550,assets/images/split/image1743.bin,0,1 +11275581,1045,assets/images/split/image1744.bin,0,1 +11276626,1333,assets/images/split/image1745.bin,0,1 +11277959,1908,assets/images/split/image1746.bin,0,1 +11279867,1960,assets/images/split/image1747.bin,0,1 +11281827,1901,assets/images/split/image1748.bin,0,1 +11283728,636,assets/images/split/image1749.bin,0,1 +11284364,681,assets/images/split/image1750.bin,0,1 +11285045,267,assets/images/split/image1751.bin,0,1 +11285312,834,assets/images/split/image1752.bin,0,1 +11286146,485,assets/images/split/image1753.bin,0,1 +11286631,507,assets/images/split/image1754.bin,0,1 +11287138,1480,assets/images/split/image1755.bin,0,1 +11288618,923,assets/images/split/image1756.bin,0,1 +11289541,1046,assets/images/split/image1757.bin,0,1 +11290587,1106,assets/images/split/image1758.bin,0,1 +11291693,1064,assets/images/split/image1759.bin,0,1 +11292757,667,assets/images/split/image1760.bin,0,1 +11293424,466,assets/images/split/image1761.bin,0,1 +11293890,1626,assets/images/split/image1762.bin,0,1 +11295516,2404,assets/images/split/image1763.bin,0,1 +11297920,2236,assets/images/split/image1764.bin,0,1 +11300156,2280,assets/images/split/image1765.bin,0,1 +11302436,2538,assets/images/split/image1766.bin,0,1 +11304974,2475,assets/images/split/image1767.bin,0,1 +11307449,2485,assets/images/split/image1768.bin,0,1 +11309934,908,assets/images/split/image1769.bin,0,1 +11310842,1369,assets/images/split/image1770.bin,0,1 +11312211,1639,assets/images/split/image1771.bin,0,1 +11313850,1402,assets/images/split/image1772.bin,0,1 +11315252,1152,assets/images/split/image1773.bin,0,1 +11316404,416,assets/images/split/image1774.bin,0,1 +11316820,246,assets/images/split/image1775.bin,0,1 +11317066,791,assets/images/split/image1776.bin,0,1 +11317857,894,assets/images/split/image1777.bin,0,1 +11318751,1562,assets/images/split/image1778.bin,0,1 +11320313,1205,assets/images/split/image1779.bin,0,1 +11321518,313,assets/images/split/image1780.bin,0,1 +11321831,322,assets/images/split/image1781.bin,0,1 +11322153,401,assets/images/split/image1782.bin,0,1 +11322554,769,assets/images/split/image1783.bin,0,1 +11323323,450,assets/images/split/image1784.bin,0,1 +11323773,871,assets/images/split/image1785.bin,0,1 +11324644,989,assets/images/split/image1786.bin,0,1 +11325633,902,assets/images/split/image1787.bin,0,1 +11326535,830,assets/images/split/image1788.bin,0,1 +11327365,778,assets/images/split/image1789.bin,0,1 +11328143,744,assets/images/split/image1790.bin,0,1 +11328887,832,assets/images/split/image1791.bin,0,1 +11329719,872,assets/images/split/image1792.bin,0,1 +11330591,981,assets/images/split/image1793.bin,0,1 +11331572,987,assets/images/split/image1794.bin,0,1 +11332559,1239,assets/images/split/image1795.bin,0,1 +11333798,1176,assets/images/split/image1796.bin,0,1 +11334974,1181,assets/images/split/image1797.bin,0,1 +11336155,746,assets/images/split/image1798.bin,0,1 +11336901,884,assets/images/split/image1799.bin,0,1 +11337785,1676,assets/images/split/image1800.bin,0,1 +11339461,1838,assets/images/split/image1801.bin,0,1 +11341299,2274,assets/images/split/image1802.bin,0,1 +11343573,2080,assets/images/split/image1803.bin,0,1 +11345653,2209,assets/images/split/image1804.bin,0,1 +11347862,2106,assets/images/split/image1805.bin,0,1 +11349968,502,assets/images/split/image1806.bin,0,1 +11350470,468,assets/images/split/image1807.bin,0,1 +11350938,756,assets/images/split/image1808.bin,0,1 +11351694,318,assets/images/split/image1809.bin,0,1 +11352012,371,assets/images/split/image1810.bin,0,1 +11352383,1656,assets/images/split/image1811.bin,0,1 +11354039,665,assets/images/split/image1812.bin,0,1 +11354704,1443,assets/images/split/image1813.bin,0,1 +11356147,2572,assets/images/split/image1814.bin,0,1 +11358719,2531,assets/images/split/image1815.bin,0,1 +11361250,2537,assets/images/split/image1816.bin,0,1 +11363787,2368,assets/images/split/image1817.bin,0,1 +11366155,2482,assets/images/split/image1818.bin,0,1 +11368637,2406,assets/images/split/image1819.bin,0,1 +11371043,2529,assets/images/split/image1820.bin,0,1 +11373572,2345,assets/images/split/image1821.bin,0,1 +11375917,2376,assets/images/split/image1822.bin,0,1 +11378293,2536,assets/images/split/image1823.bin,0,1 +11380829,2509,assets/images/split/image1824.bin,0,1 +11383338,2468,assets/images/split/image1825.bin,0,1 +11385806,2401,assets/images/split/image1826.bin,0,1 +11388207,2405,assets/images/split/image1827.bin,0,1 +11390612,2313,assets/images/split/image1828.bin,0,1 +11392925,915,assets/images/split/image1829.bin,0,1 +11393840,343,assets/images/split/image1830.bin,0,1 +11394183,651,assets/images/split/image1831.bin,0,1 +11394834,786,assets/images/split/image1832.bin,0,1 +11395620,2521,assets/images/split/image1833.bin,0,1 +11398141,2309,assets/images/split/image1834.bin,0,1 +11400450,2344,assets/images/split/image1835.bin,0,1 +11402794,631,assets/images/split/image1836.bin,0,1 +11403425,636,assets/images/split/image1837.bin,0,1 +11404061,278,assets/images/split/image1838.bin,0,1 +11404339,455,assets/images/split/image1839.bin,0,1 +11404794,260,assets/images/split/image1840.bin,0,1 +11405054,648,assets/images/split/image1841.bin,0,1 +11405702,1565,assets/images/split/image1842.bin,0,1 +11407267,389,assets/images/split/image1843.bin,0,1 +11407656,2137,assets/images/split/image1844.bin,0,1 +11409793,2207,assets/images/split/image1845.bin,0,1 +11412000,2024,assets/images/split/image1846.bin,0,1 +11414024,2470,assets/images/split/image1847.bin,0,1 +11416494,2221,assets/images/split/image1848.bin,0,1 +11418715,2239,assets/images/split/image1849.bin,0,1 +11420954,2345,assets/images/split/image1850.bin,0,1 +11423299,2393,assets/images/split/image1851.bin,0,1 +11425692,2363,assets/images/split/image1852.bin,0,1 +11428055,2288,assets/images/split/image1853.bin,0,1 +11430343,2232,assets/images/split/image1854.bin,0,1 +11432575,2355,assets/images/split/image1855.bin,0,1 +11434930,1243,assets/images/split/image1856.bin,0,1 +11436173,2369,assets/images/split/image1857.bin,0,1 +11438542,1731,assets/images/split/image1858.bin,0,1 +11440273,2116,assets/images/split/image1859.bin,0,1 +11442389,810,assets/images/split/image1860.bin,0,1 +11443199,1546,assets/images/split/image1861.bin,0,1 +11444745,934,assets/images/split/image1862.bin,0,1 +11445679,272,assets/images/split/image1863.bin,0,1 +11445951,694,assets/images/split/image1864.bin,0,1 +11446645,1829,assets/images/split/image1865.bin,0,1 +11448474,1278,assets/images/split/image1866.bin,0,1 +11449752,12,assets/images/split/image1867.bin,0,1 +11449764,2255,assets/images/split/image1868.bin,0,1 +11452019,2378,assets/images/split/image1869.bin,0,1 +11454397,2472,assets/images/split/image1870.bin,0,1 +11456869,1932,assets/images/split/image1871.bin,0,1 +11458801,2526,assets/images/split/image1872.bin,0,1 +11461327,276,assets/images/split/image1873.bin,0,1 +11461603,1407,assets/images/split/image1874.bin,0,1 +11463010,450,assets/images/split/image1875.bin,0,1 +11463460,2004,assets/images/split/image1876.bin,0,1 +11465464,2021,assets/images/split/image1877.bin,0,1 +11467485,2531,assets/images/split/image1878.bin,0,1 +11470016,1981,assets/images/split/image1879.bin,0,1 +11471997,1192,assets/images/split/image1880.bin,0,1 +11473189,186,assets/images/split/image1881.bin,0,1 +11473375,1489,assets/images/split/image1882.bin,0,1 +11474864,2412,assets/images/split/image1883.bin,0,1 +11477276,2170,assets/images/split/image1884.bin,0,1 +11479446,2048,assets/images/split/image1885.bin,0,1 +11481494,1136,assets/images/split/image1886.bin,0,1 +11482630,529,assets/images/split/image1887.bin,0,1 +11483159,522,assets/images/split/image1888.bin,0,1 +11483681,810,assets/images/split/image1889.bin,0,1 +11484491,999,assets/images/split/image1890.bin,0,1 +11485490,611,assets/images/split/image1891.bin,0,1 +11486101,2572,assets/images/split/image1892.bin,0,1 +11488673,1548,assets/images/split/image1893.bin,0,1 +11490221,1520,assets/images/split/image1894.bin,0,1 +11491741,1642,assets/images/split/image1895.bin,0,1 +11493383,802,assets/images/split/image1896.bin,0,1 +11494185,895,assets/images/split/image1897.bin,0,1 +11495080,895,assets/images/split/image1898.bin,0,1 +11495975,788,assets/images/split/image1899.bin,0,1 +11496763,819,assets/images/split/image1900.bin,0,1 +11497582,412,assets/images/split/image1901.bin,0,1 +11497994,562,assets/images/split/image1902.bin,0,1 +11498556,337,assets/images/split/image1903.bin,0,1 +11498893,374,assets/images/split/image1904.bin,0,1 +11499267,1961,assets/images/split/image1905.bin,0,1 +11501228,1946,assets/images/split/image1906.bin,0,1 +11503174,2354,assets/images/split/image1907.bin,0,1 +11505528,2253,assets/images/split/image1908.bin,0,1 +11507781,2254,assets/images/split/image1909.bin,0,1 +11510035,260,assets/images/split/image1910.bin,0,1 +11510295,755,assets/images/split/image1911.bin,0,1 +11511050,1460,assets/images/split/image1912.bin,0,1 +11512510,830,assets/images/split/image1913.bin,0,1 +11513340,1294,assets/images/split/image1914.bin,0,1 +11514634,1530,assets/images/split/image1915.bin,0,1 +11516164,1124,assets/images/split/image1916.bin,0,1 +11517288,12,assets/images/split/image1917.bin,0,1 +11517300,1399,assets/images/split/image1918.bin,0,1 +11518699,1411,assets/images/split/image1919.bin,0,1 +11520110,2212,assets/images/split/image1920.bin,0,1 +11522322,850,assets/images/split/image1921.bin,0,1 +11523172,727,assets/images/split/image1922.bin,0,1 +11523899,859,assets/images/split/image1923.bin,0,1 +11524758,963,assets/images/split/image1924.bin,0,1 +11525721,1143,assets/images/split/image1925.bin,0,1 +11526864,1151,assets/images/split/image1926.bin,0,1 +11528015,657,assets/images/split/image1927.bin,0,1 +11528672,2293,assets/images/split/image1928.bin,0,1 +11530965,2312,assets/images/split/image1929.bin,0,1 +11533277,2515,assets/images/split/image1930.bin,0,1 +11535792,2249,assets/images/split/image1931.bin,0,1 +11538041,672,assets/images/split/image1932.bin,0,1 +11538713,2104,assets/images/split/image1933.bin,0,1 +11540817,2037,assets/images/split/image1934.bin,0,1 +11542854,789,assets/images/split/image1935.bin,0,1 +11543643,1302,assets/images/split/image1936.bin,0,1 +11544945,1131,assets/images/split/image1937.bin,0,1 +11546076,773,assets/images/split/image1938.bin,0,1 +11546849,1246,assets/images/split/image1939.bin,0,1 +11548095,1131,assets/images/split/image1940.bin,0,1 +11549226,800,assets/images/split/image1941.bin,0,1 +11550026,1685,assets/images/split/image1942.bin,0,1 +11551711,2414,assets/images/split/image1943.bin,0,1 +11554125,2461,assets/images/split/image1944.bin,0,1 +11556586,2454,assets/images/split/image1945.bin,0,1 +11559040,910,assets/images/split/image1946.bin,0,1 +11559950,584,assets/images/split/image1947.bin,0,1 +11560534,716,assets/images/split/image1948.bin,0,1 +11561250,121,assets/images/split/image1949.bin,0,1 +11561371,1564,assets/images/split/image1950.bin,0,1 +11562935,1166,assets/images/split/image1951.bin,0,1 +11564101,1370,assets/images/split/image1952.bin,0,1 +11565471,1315,assets/images/split/image1953.bin,0,1 +11566786,1618,assets/images/split/image1954.bin,0,1 +11568404,1347,assets/images/split/image1955.bin,0,1 +11569751,1239,assets/images/split/image1956.bin,0,1 +11570990,1379,assets/images/split/image1957.bin,0,1 +11572369,966,assets/images/split/image1958.bin,0,1 +11573335,1094,assets/images/split/image1959.bin,0,1 +11574429,618,assets/images/split/image1960.bin,0,1 +11575047,1377,assets/images/split/image1961.bin,0,1 +11576424,601,assets/images/split/image1962.bin,0,1 +11577025,1879,assets/images/split/image1963.bin,0,1 +11578904,1810,assets/images/split/image1964.bin,0,1 +11580714,1067,assets/images/split/image1965.bin,0,1 +11581781,370,assets/images/split/image1966.bin,0,1 +11582151,860,assets/images/split/image1967.bin,0,1 +11583011,1017,assets/images/split/image1968.bin,0,1 +11584028,1428,assets/images/split/image1969.bin,0,1 +11585456,2442,assets/images/split/image1970.bin,0,1 +11587898,2315,assets/images/split/image1971.bin,0,1 +11590213,2501,assets/images/split/image1972.bin,0,1 +11592714,2275,assets/images/split/image1973.bin,0,1 +11594989,2377,assets/images/split/image1974.bin,0,1 +11597366,2319,assets/images/split/image1975.bin,0,1 +11599685,2572,assets/images/split/image1976.bin,0,1 +11602257,2400,assets/images/split/image1977.bin,0,1 +11604657,2396,assets/images/split/image1978.bin,0,1 +11607053,435,assets/images/split/image1979.bin,0,1 +11607488,1061,assets/images/split/image1980.bin,0,1 +11608549,1900,assets/images/split/image1981.bin,0,1 +11610449,1909,assets/images/split/image1982.bin,0,1 +11612358,431,assets/images/split/image1983.bin,0,1 +11612789,374,assets/images/split/image1984.bin,0,1 +11613163,704,assets/images/split/image1985.bin,0,1 +11613867,916,assets/images/split/image1986.bin,0,1 +11614783,774,assets/images/split/image1987.bin,0,1 +11615557,1373,assets/images/split/image1988.bin,0,1 +11616930,1342,assets/images/split/image1989.bin,0,1 +11618272,377,assets/images/split/image1990.bin,0,1 +11618649,381,assets/images/split/image1991.bin,0,1 +11619030,439,assets/images/split/image1992.bin,0,1 +11619469,460,assets/images/split/image1993.bin,0,1 +11619929,385,assets/images/split/image1994.bin,0,1 +11620314,240,assets/images/split/image1995.bin,0,1 +11620554,544,assets/images/split/image1996.bin,0,1 +11621098,2456,assets/images/split/image1997.bin,0,1 +11623554,2487,assets/images/split/image1998.bin,0,1 +11626041,2413,assets/images/split/image1999.bin,0,1 +11628454,2236,assets/images/split/image2000.bin,0,1 +11630690,2234,assets/images/split/image2001.bin,0,1 +11632924,2180,assets/images/split/image2002.bin,0,1 +11635104,2340,assets/images/split/image2003.bin,0,1 +11637444,2066,assets/images/split/image2004.bin,0,1 +11639510,630,assets/images/split/image2005.bin,0,1 +11640140,412,assets/images/split/image2006.bin,0,1 +11640552,254,assets/images/split/image2007.bin,0,1 +11640806,689,assets/images/split/image2008.bin,0,1 +11641495,617,assets/images/split/image2009.bin,0,1 +11642112,1896,assets/images/split/image2010.bin,0,1 +11644008,185,assets/images/split/image2011.bin,0,1 +11644193,228,assets/images/split/image2012.bin,0,1 +11644421,321,assets/images/split/image2013.bin,0,1 +11644742,783,assets/images/split/image2014.bin,0,1 +11645525,320,assets/images/split/image2015.bin,0,1 +11645845,920,assets/images/split/image2016.bin,0,1 +11646765,387,assets/images/split/image2017.bin,0,1 +11647152,303,assets/images/split/image2018.bin,0,1 +11647455,344,assets/images/split/image2019.bin,0,1 +11647799,430,assets/images/split/image2020.bin,0,1 +11648229,469,assets/images/split/image2021.bin,0,1 +11648698,196,assets/images/split/image2022.bin,0,1 +11648894,920,assets/images/split/image2023.bin,0,1 +11649814,703,assets/images/split/image2024.bin,0,1 +11650517,1889,assets/images/split/image2025.bin,0,1 +11652406,286,assets/images/split/image2026.bin,0,1 +11652692,955,assets/images/split/image2027.bin,0,1 +11653647,1620,assets/images/split/image2028.bin,0,1 +11655267,1463,assets/images/split/image2029.bin,0,1 +11656730,1647,assets/images/split/image2030.bin,0,1 +11658377,1731,assets/images/split/image2031.bin,0,1 +11660108,1024,assets/images/split/image2032.bin,0,1 +11661132,776,assets/images/split/image2033.bin,0,1 +11661908,898,assets/images/split/image2034.bin,0,1 +11662806,1444,assets/images/split/image2035.bin,0,1 +11664250,689,assets/images/split/image2036.bin,0,1 +11664939,1089,assets/images/split/image2037.bin,0,1 +11666028,500,assets/images/split/image2038.bin,0,1 +11666528,423,assets/images/split/image2039.bin,0,1 +11666951,2304,assets/images/split/image2040.bin,0,1 +11669255,2036,assets/images/split/image2041.bin,0,1 +11671291,293,assets/images/split/image2042.bin,0,1 +11671584,410,assets/images/split/image2043.bin,0,1 +11671994,1370,assets/images/split/image2044.bin,0,1 +11673364,560,assets/images/split/image2045.bin,0,1 +11673924,782,assets/images/split/image2046.bin,0,1 +11674706,2372,assets/images/split/image2047.bin,0,1 +11677078,641,assets/images/split/image2048.bin,0,1 +11677719,597,assets/images/split/image2049.bin,0,1 +11678316,1105,assets/images/split/image2050.bin,0,1 +11679421,958,assets/images/split/image2051.bin,0,1 +11680379,443,assets/images/split/image2052.bin,0,1 +11680822,1738,assets/images/split/image2053.bin,0,1 +11682560,1963,assets/images/split/image2054.bin,0,1 +11684523,967,assets/images/split/image2055.bin,0,1 +11685490,2418,assets/images/split/image2056.bin,0,1 +11687908,12,assets/images/split/image2057.bin,0,1 +11687920,406,assets/images/split/image2058.bin,0,1 +11688326,635,assets/images/split/image2059.bin,0,1 +11688961,426,assets/images/split/image2060.bin,0,1 +11689387,2433,assets/images/split/image2061.bin,0,1 +11691820,2411,assets/images/split/image2062.bin,0,1 +11694231,2307,assets/images/split/image2063.bin,0,1 +11696538,581,assets/images/split/image2064.bin,0,1 +11697119,303,assets/images/split/image2065.bin,0,1 +11697422,1163,assets/images/split/image2066.bin,0,1 +11698585,762,assets/images/split/image2067.bin,0,1 +11699347,1062,assets/images/split/image2068.bin,0,1 +11700409,1547,assets/images/split/image2069.bin,0,1 +11701956,1211,assets/images/split/image2070.bin,0,1 +11703167,906,assets/images/split/image2071.bin,0,1 +11704073,1119,assets/images/split/image2072.bin,0,1 +11705192,1170,assets/images/split/image2073.bin,0,1 +11706362,783,assets/images/split/image2074.bin,0,1 +11707145,1033,assets/images/split/image2075.bin,0,1 +11708178,918,assets/images/split/image2076.bin,0,1 +11709096,2478,assets/images/split/image2077.bin,0,1 +11711574,1960,assets/images/split/image2078.bin,0,1 +11713534,2226,assets/images/split/image2079.bin,0,1 +11715760,734,assets/images/split/image2080.bin,0,1 +11716494,936,assets/images/split/image2081.bin,0,1 +11717430,1717,assets/images/split/image2082.bin,0,1 +11719147,1578,assets/images/split/image2083.bin,0,1 +11720725,7,assets/images/split/image2084.bin,0,1 +11720732,8,assets/images/split/image2085.bin,0,1 +11720740,1245,assets/images/split/image2086.bin,0,1 +11721985,291,assets/images/split/image2087.bin,0,1 +11722276,943,assets/images/split/image2088.bin,0,1 +11723219,209,assets/images/split/image2089.bin,0,1 +11723428,1157,assets/images/split/image2090.bin,0,1 +11724585,254,assets/images/split/image2091.bin,0,1 +11724839,1061,assets/images/split/image2092.bin,0,1 +11725900,218,assets/images/split/image2093.bin,0,1 +11726118,787,assets/images/split/image2094.bin,0,1 +11726905,120,assets/images/split/image2095.bin,0,1 +11727025,170,assets/images/split/image2096.bin,0,1 +11727195,50,assets/images/split/image2097.bin,0,1 +11727245,971,assets/images/split/image2098.bin,0,1 +11728216,256,assets/images/split/image2099.bin,0,1 +11728472,1196,assets/images/split/image2100.bin,0,1 +11729668,274,assets/images/split/image2101.bin,0,1 +11729942,1365,assets/images/split/image2102.bin,0,1 +11731307,288,assets/images/split/image2103.bin,0,1 +11731595,1459,assets/images/split/image2104.bin,0,1 +11733054,306,assets/images/split/image2105.bin,0,1 +11733360,1517,assets/images/split/image2106.bin,0,1 +11734877,322,assets/images/split/image2107.bin,0,1 +11735199,1451,assets/images/split/image2108.bin,0,1 +11736650,311,assets/images/split/image2109.bin,0,1 +11736961,1408,assets/images/split/image2110.bin,0,1 +11738369,309,assets/images/split/image2111.bin,0,1 +11738678,1318,assets/images/split/image2112.bin,0,1 +11739996,301,assets/images/split/image2113.bin,0,1 +11740297,2297,assets/images/split/image2114.bin,0,1 +11742594,2246,assets/images/split/image2115.bin,0,1 +11744840,2094,assets/images/split/image2116.bin,0,1 +11746934,2245,assets/images/split/image2117.bin,0,1 +11749179,412,assets/images/split/image2118.bin,0,1 +11749591,2299,assets/images/split/image2119.bin,0,1 +11751890,1889,assets/images/split/image2120.bin,0,1 +11753779,1739,assets/images/split/image2121.bin,0,1 +11755518,1778,assets/images/split/image2122.bin,0,1 +11757296,1747,assets/images/split/image2123.bin,0,1 +11759043,1931,assets/images/split/image2124.bin,0,1 +11760974,1852,assets/images/split/image2125.bin,0,1 +11762826,1938,assets/images/split/image2126.bin,0,1 +11764764,1909,assets/images/split/image2127.bin,0,1 +11766673,1149,assets/images/split/image2128.bin,0,1 +11767822,1572,assets/images/split/image2129.bin,0,1 +11769394,1548,assets/images/split/image2130.bin,0,1 +11770942,1548,assets/images/split/image2131.bin,0,1 +11772490,1548,assets/images/split/image2132.bin,0,1 +11774038,1546,assets/images/split/image2133.bin,0,1 +11775584,3015,assets/images/split/image2134.bin,0,1 +11778599,1300,assets/images/split/image2135.bin,0,1 +11779899,1159,assets/images/split/image2136.bin,0,1 +11781058,2557,assets/images/split/image2137.bin,0,1 +11783615,2399,assets/images/split/image2138.bin,0,1 +11786014,1989,assets/images/split/image2139.bin,0,1 +11788003,2215,assets/images/split/image2140.bin,0,1 +11790218,1881,assets/images/split/image2141.bin,0,1 +11792099,1680,assets/images/split/image2142.bin,0,1 +11793779,1636,assets/images/split/image2143.bin,0,1 +11795415,1715,assets/images/split/image2144.bin,0,1 +11797130,2062,assets/images/split/image2145.bin,0,1 +11799192,1951,assets/images/split/image2146.bin,0,1 +11801143,1909,assets/images/split/image2147.bin,0,1 +11803052,1919,assets/images/split/image2148.bin,0,1 +11804971,1721,assets/images/split/image2149.bin,0,1 +11806692,1606,assets/images/split/image2150.bin,0,1 +11808298,1609,assets/images/split/image2151.bin,0,1 +11809907,1620,assets/images/split/image2152.bin,0,1 +11811527,1408,assets/images/split/image2153.bin,0,1 +11812935,1291,assets/images/split/image2154.bin,0,1 +11814226,1285,assets/images/split/image2155.bin,0,1 +11815511,1323,assets/images/split/image2156.bin,0,1 +11816834,2098,assets/images/split/image2157.bin,0,1 +11818932,2023,assets/images/split/image2158.bin,0,1 +11820955,2003,assets/images/split/image2159.bin,0,1 +11822958,1927,assets/images/split/image2160.bin,0,1 +11824885,538,assets/images/split/image2161.bin,0,1 +11825423,744,assets/images/split/image2162.bin,0,1 +11826167,910,assets/images/split/image2163.bin,0,1 +11827077,149,assets/images/split/image2164.bin,0,1 +11827226,643,assets/images/split/image2165.bin,0,1 +11827869,513,assets/images/split/image2166.bin,0,1 +11828382,142,assets/images/split/image2167.bin,0,1 +11828524,1017,assets/images/split/image2168.bin,0,1 +11829541,847,assets/images/split/image2169.bin,0,1 +11830388,1624,assets/images/split/image2170.bin,0,1 +11832012,1140,assets/images/split/image2171.bin,0,1 +11833152,540,assets/images/split/image2172.bin,0,1 +11833692,1321,assets/images/split/image2173.bin,0,1 +11835013,1104,assets/images/split/image2174.bin,0,1 +11836117,1111,assets/images/split/image2175.bin,0,1 +11837228,487,assets/images/split/image2176.bin,0,1 +11837715,1249,assets/images/split/image2177.bin,0,1 +11838964,414,assets/images/split/image2178.bin,0,1 +11839378,644,assets/images/split/image2179.bin,0,1 +11840022,923,assets/images/split/image2180.bin,0,1 +11840945,869,assets/images/split/image2181.bin,0,1 +11841814,1381,assets/images/split/image2182.bin,0,1 +11843195,1537,assets/images/split/image2183.bin,0,1 +11844732,1612,assets/images/split/image2184.bin,0,1 +11846344,1594,assets/images/split/image2185.bin,0,1 +11847938,1605,assets/images/split/image2186.bin,0,1 +11849543,909,assets/images/split/image2187.bin,0,1 +11850452,921,assets/images/split/image2188.bin,0,1 +11851373,1116,assets/images/split/image2189.bin,0,1 +11852489,846,assets/images/split/image2190.bin,0,1 +11853335,1039,assets/images/split/image2191.bin,0,1 +11854374,1067,assets/images/split/image2192.bin,0,1 +11855441,290,assets/images/split/image2193.bin,0,1 +11855731,1509,assets/images/split/image2194.bin,0,1 +11857240,1491,assets/images/split/image2195.bin,0,1 +11858731,1437,assets/images/split/image2196.bin,0,1 +11860168,1387,assets/images/split/image2197.bin,0,1 +11861555,1415,assets/images/split/image2198.bin,0,1 +11862970,1418,assets/images/split/image2199.bin,0,1 +11864388,378,assets/images/split/image2200.bin,0,1 +11864766,1527,assets/images/split/image2201.bin,0,1 +11866293,1526,assets/images/split/image2202.bin,0,1 +11867819,1421,assets/images/split/image2203.bin,0,1 +11869240,1494,assets/images/split/image2204.bin,0,1 +11870734,1514,assets/images/split/image2205.bin,0,1 +11872248,1318,assets/images/split/image2206.bin,0,1 +11873566,491,assets/images/split/image2207.bin,0,1 +11874057,459,assets/images/split/image2208.bin,0,1 +11874516,492,assets/images/split/image2209.bin,0,1 +11875008,1084,assets/images/split/image2210.bin,0,1 +11876092,1090,assets/images/split/image2211.bin,0,1 +11877182,1083,assets/images/split/image2212.bin,0,1 +11878265,1083,assets/images/split/image2213.bin,0,1 +11879348,1718,assets/images/split/image2214.bin,0,1 +11881066,432,assets/images/split/image2215.bin,0,1 +11881498,431,assets/images/split/image2216.bin,0,1 +11881929,433,assets/images/split/image2217.bin,0,1 +11882362,450,assets/images/split/image2218.bin,0,1 +11882812,795,assets/images/split/image2219.bin,0,1 +11883607,820,assets/images/split/image2220.bin,0,1 +11884427,816,assets/images/split/image2221.bin,0,1 +11885243,837,assets/images/split/image2222.bin,0,1 +11886080,455,assets/images/split/image2223.bin,0,1 +11886535,136,assets/images/split/image2224.bin,0,1 +11886671,50,assets/images/split/image2225.bin,0,1 +11886721,84,assets/images/split/image2226.bin,0,1 +11886805,1609,assets/images/split/image2227.bin,0,1 +11888414,1713,assets/images/split/image2228.bin,0,1 +11890127,1717,assets/images/split/image2229.bin,0,1 +11891844,1128,assets/images/split/image2230.bin,0,1 +11892972,186,assets/images/split/image2231.bin,0,1 +11893158,395,assets/images/split/image2232.bin,0,1 +11893553,143,assets/images/split/image2233.bin,0,1 +11893696,735,assets/images/split/image2234.bin,0,1 +11894431,737,assets/images/split/image2235.bin,0,1 +11895168,1027,assets/images/split/image2236.bin,0,1 +11896195,430,assets/images/split/image2237.bin,0,1 +11896625,736,assets/images/split/image2238.bin,0,1 +11897361,2529,assets/images/split/image2239.bin,0,1 +11899890,2547,assets/images/split/image2240.bin,0,1 +11902437,1461,assets/images/split/image2241.bin,0,1 +11903898,1220,assets/images/split/image2242.bin,0,1 +11905118,1112,assets/images/split/image2243.bin,0,1 +11906230,1917,assets/images/split/image2244.bin,0,1 +11908147,3026,assets/images/split/image2245.bin,0,1 +11911173,2511,assets/images/split/image2246.bin,0,1 +11913684,1667,assets/images/split/image2247.bin,0,1 +11915351,880,assets/images/split/image2248.bin,0,1 +11916231,3211,assets/images/split/image2249.bin,0,1 +11919442,1499,assets/images/split/image2250.bin,0,1 +11920941,1508,assets/images/split/image2251.bin,0,1 +11922449,1428,assets/images/split/image2252.bin,0,1 +11923877,1435,assets/images/split/image2253.bin,0,1 +11925312,1042,assets/images/split/image2254.bin,0,1 +11926354,478,assets/images/split/image2255.bin,0,1 +11926832,731,assets/images/split/image2256.bin,0,1 +11927563,811,assets/images/split/image2257.bin,0,1 +11928374,860,assets/images/split/image2258.bin,0,1 +11929234,691,assets/images/split/image2259.bin,0,1 +11929925,2106,assets/images/split/image2260.bin,0,1 +11932031,1438,assets/images/split/image2261.bin,0,1 +11933469,1770,assets/images/split/image2262.bin,0,1 +11935239,426,assets/images/split/image2263.bin,0,1 +11935665,848,assets/images/split/image2264.bin,0,1 +11936513,1179,assets/images/split/image2265.bin,0,1 +11937692,1792,assets/images/split/image2266.bin,0,1 +11939484,1999,assets/images/split/image2267.bin,0,1 +11941483,1995,assets/images/split/image2268.bin,0,1 +11943478,1749,assets/images/split/image2269.bin,0,1 +11945227,1268,assets/images/split/image2270.bin,0,1 +11946495,1197,assets/images/split/image2271.bin,0,1 +11947692,528,assets/images/split/image2272.bin,0,1 +11948220,834,assets/images/split/image2273.bin,0,1 +11949054,167,assets/images/split/image2274.bin,0,1 +11949221,448,assets/images/split/image2275.bin,0,1 +11949669,851,assets/images/split/image2276.bin,0,1 +11950520,1036,assets/images/split/image2277.bin,0,1 +11951556,954,assets/images/split/image2278.bin,0,1 +11952510,1024,assets/images/split/image2279.bin,0,1 +11953534,3646,assets/images/split/image2280.bin,0,1 +11957180,1058,assets/images/split/image2281.bin,0,1 +11958238,1024,assets/images/split/image2282.bin,0,1 +11959262,661,assets/images/split/image2283.bin,0,1 +11959923,1493,assets/images/split/image2284.bin,0,1 +11961416,547,assets/images/split/image2285.bin,0,1 +11961963,600,assets/images/split/image2286.bin,0,1 +11962563,578,assets/images/split/image2287.bin,0,1 +11963141,442,assets/images/split/image2288.bin,0,1 +11963583,467,assets/images/split/image2289.bin,0,1 +11964050,252,assets/images/split/image2290.bin,0,1 +11964302,494,assets/images/split/image2291.bin,0,1 +11964796,442,assets/images/split/image2292.bin,0,1 +11965238,491,assets/images/split/image2293.bin,0,1 +11965729,574,assets/images/split/image2294.bin,0,1 +11966303,1379,assets/images/split/image2295.bin,0,1 +11967682,443,assets/images/split/image2296.bin,0,1 +11968125,397,assets/images/split/image2297.bin,0,1 +11968522,640,assets/images/split/image2298.bin,0,1 +11969162,157,assets/images/split/image2299.bin,0,1 +11969319,788,assets/images/split/image2300.bin,0,1 +11970107,967,assets/images/split/image2301.bin,0,1 +11971074,1377,assets/images/split/image2302.bin,0,1 +11972451,995,assets/images/split/image2303.bin,0,1 +11973446,1247,assets/images/split/image2304.bin,0,1 +11974693,1068,assets/images/split/image2305.bin,0,1 +11975761,1540,assets/images/split/image2306.bin,0,1 +11977301,241,assets/images/split/image2307.bin,0,1 +11977542,823,assets/images/split/image2308.bin,0,1 +11978365,1098,assets/images/split/image2309.bin,0,1 +11979463,1279,assets/images/split/image2310.bin,0,1 +11980742,407,assets/images/split/image2311.bin,0,1 +11981149,767,assets/images/split/image2312.bin,0,1 +11981916,684,assets/images/split/image2313.bin,0,1 +11982600,774,assets/images/split/image2314.bin,0,1 +11983374,996,assets/images/split/image2315.bin,0,1 +11984370,649,assets/images/split/image2316.bin,0,1 +11985019,666,assets/images/split/image2317.bin,0,1 +11985685,1199,assets/images/split/image2318.bin,0,1 +11986884,1087,assets/images/split/image2319.bin,0,1 +11987971,1008,assets/images/split/image2320.bin,0,1 +11988979,1012,assets/images/split/image2321.bin,0,1 +11989991,1055,assets/images/split/image2322.bin,0,1 +11991046,966,assets/images/split/image2323.bin,0,1 +11992012,1053,assets/images/split/image2324.bin,0,1 +11993065,720,assets/images/split/image2325.bin,0,1 +11993785,659,assets/images/split/image2326.bin,0,1 +11994444,998,assets/images/split/image2327.bin,0,1 +11995442,526,assets/images/split/image2328.bin,0,1 +11995968,887,assets/images/split/image2329.bin,0,1 +11996855,923,assets/images/split/image2330.bin,0,1 +11997778,1308,assets/images/split/image2331.bin,0,1 +11999086,690,assets/images/split/image2332.bin,0,1 +11999776,1284,assets/images/split/image2333.bin,0,1 +12001060,1453,assets/images/split/image2334.bin,0,1 +12002513,739,assets/images/split/image2335.bin,0,1 +12003252,1023,assets/images/split/image2336.bin,0,1 +12004275,423,assets/images/split/image2337.bin,0,1 +12004698,706,assets/images/split/image2338.bin,0,1 +12005404,237,assets/images/split/image2339.bin,0,1 +12005641,722,assets/images/split/image2340.bin,0,1 +12006363,1284,assets/images/split/image2341.bin,0,1 +12007647,1085,assets/images/split/image2342.bin,0,1 +12008732,1049,assets/images/split/image2343.bin,0,1 +12009781,693,assets/images/split/image2344.bin,0,1 +12010474,1548,assets/images/split/image2345.bin,0,1 +12012022,669,assets/images/split/image2346.bin,0,1 +12012691,1262,assets/images/split/image2347.bin,0,1 +12013953,1265,assets/images/split/image2348.bin,0,1 +12015218,566,assets/images/split/image2349.bin,0,1 +12015784,852,assets/images/split/image2350.bin,0,1 +12016636,654,assets/images/split/image2351.bin,0,1 +12017290,1018,assets/images/split/image2352.bin,0,1 +12018308,1234,assets/images/split/image2353.bin,0,1 +12019542,1412,assets/images/split/image2354.bin,0,1 +12020954,1022,assets/images/split/image2355.bin,0,1 +12021976,1195,assets/images/split/image2356.bin,0,1 +12023171,1140,assets/images/split/image2357.bin,0,1 +12024311,1136,assets/images/split/image2358.bin,0,1 +12025447,1088,assets/images/split/image2359.bin,0,1 +12026535,1228,assets/images/split/image2360.bin,0,1 +12027763,1231,assets/images/split/image2361.bin,0,1 +12028994,1191,assets/images/split/image2362.bin,0,1 +12030185,394,assets/images/split/image2363.bin,0,1 +12030579,422,assets/images/split/image2364.bin,0,1 +12031001,330,assets/images/split/image2365.bin,0,1 +12031331,899,assets/images/split/image2366.bin,0,1 +12032230,508,assets/images/split/image2367.bin,0,1 +12032738,389,assets/images/split/image2368.bin,0,1 +12033127,977,assets/images/split/image2369.bin,0,1 +12034104,1204,assets/images/split/image2370.bin,0,1 +12035308,1397,assets/images/split/image2371.bin,0,1 +12036705,1037,assets/images/split/image2372.bin,0,1 +12037742,2035,assets/images/split/image2373.bin,0,1 +12039777,1581,assets/images/split/image2374.bin,0,1 +12041358,780,assets/images/split/image2375.bin,0,1 +12042138,1046,assets/images/split/image2376.bin,0,1 +12043184,1092,assets/images/split/image2377.bin,0,1 +12044276,426,assets/images/split/image2378.bin,0,1 +12044702,545,assets/images/split/image2379.bin,0,1 +12045247,1608,assets/images/split/image2380.bin,0,1 +12046855,1056,assets/images/split/image2381.bin,0,1 +12047911,1021,assets/images/split/image2382.bin,0,1 +12048932,1027,assets/images/split/image2383.bin,0,1 +12049959,1032,assets/images/split/image2384.bin,0,1 +12050991,1109,assets/images/split/image2385.bin,0,1 +12052100,1020,assets/images/split/image2386.bin,0,1 +12053120,1032,assets/images/split/image2387.bin,0,1 +12054152,787,assets/images/split/image2388.bin,0,1 +12054939,813,assets/images/split/image2389.bin,0,1 +12055752,635,assets/images/split/image2390.bin,0,1 +12056387,693,assets/images/split/image2391.bin,0,1 +12057080,1306,assets/images/split/image2392.bin,0,1 +12058386,996,assets/images/split/image2393.bin,0,1 +12059382,659,assets/images/split/image2394.bin,0,1 +12060041,908,assets/images/split/image2395.bin,0,1 +12060949,1171,assets/images/split/image2396.bin,0,1 +12062120,790,assets/images/split/image2397.bin,0,1 +12062910,730,assets/images/split/image2398.bin,0,1 +12063640,694,assets/images/split/image2399.bin,0,1 +12064334,772,assets/images/split/image2400.bin,0,1 +12065106,654,assets/images/split/image2401.bin,0,1 +12065760,895,assets/images/split/image2402.bin,0,1 +12066655,1548,assets/images/split/image2403.bin,0,1 +12068203,1548,assets/images/split/image2404.bin,0,1 +12069751,958,assets/images/split/image2405.bin,0,1 +12070709,1548,assets/images/split/image2406.bin,0,1 +12072257,596,assets/images/split/image2407.bin,0,1 +12072853,1225,assets/images/split/image2408.bin,0,1 +12074078,1548,assets/images/split/image2409.bin,0,1 +12075626,1599,assets/images/split/image2410.bin,0,1 +12077225,1521,assets/images/split/image2411.bin,0,1 +12078746,1791,assets/images/split/image2412.bin,0,1 +12080537,1594,assets/images/split/image2413.bin,0,1 +12082131,746,assets/images/split/image2414.bin,0,1 +12082877,1055,assets/images/split/image2415.bin,0,1 +12083932,829,assets/images/split/image2416.bin,0,1 +12084761,933,assets/images/split/image2417.bin,0,1 +12085694,814,assets/images/split/image2418.bin,0,1 +12086508,1018,assets/images/split/image2419.bin,0,1 +12087526,865,assets/images/split/image2420.bin,0,1 +12088391,1818,assets/images/split/image2421.bin,0,1 +12090209,1940,assets/images/split/image2422.bin,0,1 +12092149,1698,assets/images/split/image2423.bin,0,1 +12093847,545,assets/images/split/image2424.bin,0,1 +12094392,1016,assets/images/split/image2425.bin,0,1 +12095408,796,assets/images/split/image2426.bin,0,1 +12096204,497,assets/images/split/image2427.bin,0,1 +12096701,194,assets/images/split/image2428.bin,0,1 +12096895,522,assets/images/split/image2429.bin,0,1 +12097417,1481,assets/images/split/image2430.bin,0,1 +12098898,171,assets/images/split/image2431.bin,0,1 +12099069,310,assets/images/split/image2432.bin,0,1 +12099379,854,assets/images/split/image2433.bin,0,1 +12100233,785,assets/images/split/image2434.bin,0,1 +12101018,1485,assets/images/split/image2435.bin,0,1 +12102503,481,assets/images/split/image2436.bin,0,1 +12102984,851,assets/images/split/image2437.bin,0,1 +12103835,775,assets/images/split/image2438.bin,0,1 +12104610,378,assets/images/split/image2439.bin,0,1 +12104988,1465,assets/images/split/image2440.bin,0,1 +12106453,828,assets/images/split/image2441.bin,0,1 +12107281,884,assets/images/split/image2442.bin,0,1 +12108165,1013,assets/images/split/image2443.bin,0,1 +12109178,1132,assets/images/split/image2444.bin,0,1 +12110310,770,assets/images/split/image2445.bin,0,1 +12111080,1190,assets/images/split/image2446.bin,0,1 +12112270,945,assets/images/split/image2447.bin,0,1 +12113215,681,assets/images/split/image2448.bin,0,1 +12113896,547,assets/images/split/image2449.bin,0,1 +12114443,165,assets/images/split/image2450.bin,0,1 +12114608,1170,assets/images/split/image2451.bin,0,1 +12115778,196,assets/images/split/image2452.bin,0,1 +12115974,444,assets/images/split/image2453.bin,0,1 +12116418,1081,assets/images/split/image2454.bin,0,1 +12117499,764,assets/images/split/image2455.bin,0,1 +12118263,776,assets/images/split/image2456.bin,0,1 +12119039,85,assets/images/split/image2457.bin,0,1 +12119124,527,assets/images/split/image2458.bin,0,1 +12119651,268,assets/images/split/image2459.bin,0,1 +12119919,369,assets/images/split/image2460.bin,0,1 +12120288,942,assets/images/split/image2461.bin,0,1 +12121230,1812,assets/images/split/image2462.bin,0,1 +12123042,182,assets/images/split/image2463.bin,0,1 +12123224,225,assets/images/split/image2464.bin,0,1 +12123449,531,assets/images/split/image2465.bin,0,1 +12123980,624,assets/images/split/image2466.bin,0,1 +12124604,1383,assets/images/split/image2467.bin,0,1 +12125987,1267,assets/images/split/image2468.bin,0,1 +12127254,346,assets/images/split/image2469.bin,0,1 +12127600,418,assets/images/split/image2470.bin,0,1 +12128018,594,assets/images/split/image2471.bin,0,1 +12128612,648,assets/images/split/image2472.bin,0,1 +12129260,859,assets/images/split/image2473.bin,0,1 +12130119,1300,assets/images/split/image2474.bin,0,1 +12131419,566,assets/images/split/image2475.bin,0,1 +12131985,2104,assets/images/split/image2476.bin,0,1 +12134089,940,assets/images/split/image2477.bin,0,1 +12135029,856,assets/images/split/image2478.bin,0,1 +12135885,756,assets/images/split/image2479.bin,0,1 +12136641,446,assets/images/split/image2480.bin,0,1 +12137087,370,assets/images/split/image2481.bin,0,1 +12137457,845,assets/images/split/image2482.bin,0,1 +12138302,1370,assets/images/split/image2483.bin,0,1 +12139672,1427,assets/images/split/image2484.bin,0,1 +12141099,738,assets/images/split/image2485.bin,0,1 +12141837,591,assets/images/split/image2486.bin,0,1 +12142428,731,assets/images/split/image2487.bin,0,1 +12143159,1263,assets/images/split/image2488.bin,0,1 +12144422,1232,assets/images/split/image2489.bin,0,1 +12145654,861,assets/images/split/image2490.bin,0,1 +12146515,913,assets/images/split/image2491.bin,0,1 +12147428,15,assets/images/split/image2492.bin,0,1 +12147443,1362,assets/images/split/image2493.bin,0,1 +12148805,472,assets/images/split/image2494.bin,0,1 +12149277,1293,assets/images/split/image2495.bin,0,1 +12150570,1448,assets/images/split/image2496.bin,0,1 +12152018,1239,assets/images/split/image2497.bin,0,1 +12153257,906,assets/images/split/image2498.bin,0,1 +12154163,739,assets/images/split/image2499.bin,0,1 +12154902,1130,assets/images/split/image2500.bin,0,1 +12156032,1071,assets/images/split/image2501.bin,0,1 +12157103,913,assets/images/split/image2502.bin,0,1 +12158016,2328,assets/images/split/image2503.bin,0,1 +12160344,2220,assets/images/split/image2504.bin,0,1 +12162564,2340,assets/images/split/image2505.bin,0,1 +12164904,2443,assets/images/split/image2506.bin,0,1 +12167347,2491,assets/images/split/image2507.bin,0,1 +12169838,2459,assets/images/split/image2508.bin,0,1 +12172297,1469,assets/images/split/image2509.bin,0,1 +12173766,1030,assets/images/split/image2510.bin,0,1 +12174796,1065,assets/images/split/image2511.bin,0,1 +12175861,1129,assets/images/split/image2512.bin,0,1 +12176990,1111,assets/images/split/image2513.bin,0,1 +12178101,892,assets/images/split/image2514.bin,0,1 +12178993,1333,assets/images/split/image2515.bin,0,1 +12180326,1897,assets/images/split/image2516.bin,0,1 +12182223,1968,assets/images/split/image2517.bin,0,1 +12184191,1943,assets/images/split/image2518.bin,0,1 +12186134,1780,assets/images/split/image2519.bin,0,1 +12187914,1503,assets/images/split/image2520.bin,0,1 +12189417,1863,assets/images/split/image2521.bin,0,1 +12191280,2095,assets/images/split/image2522.bin,0,1 +12193375,2442,assets/images/split/image2523.bin,0,1 +12195817,2330,assets/images/split/image2524.bin,0,1 +12198147,1781,assets/images/split/image2525.bin,0,1 +12199928,980,assets/images/split/image2526.bin,0,1 +12200908,1106,assets/images/split/image2527.bin,0,1 +12202014,1255,assets/images/split/image2528.bin,0,1 +12203269,2055,assets/images/split/image2529.bin,0,1 +12205324,1961,assets/images/split/image2530.bin,0,1 +12207285,1695,assets/images/split/image2531.bin,0,1 +12208980,2253,assets/images/split/image2532.bin,0,1 +12211233,1786,assets/images/split/image2533.bin,0,1 +12213019,774,assets/images/split/image2534.bin,0,1 +12213793,1099,assets/images/split/image2535.bin,0,1 +12214892,1042,assets/images/split/image2536.bin,0,1 +12215934,2027,assets/images/split/image2537.bin,0,1 +12217961,2341,assets/images/split/image2538.bin,0,1 +12220302,2393,assets/images/split/image2539.bin,0,1 +12222695,2465,assets/images/split/image2540.bin,0,1 +12225160,2384,assets/images/split/image2541.bin,0,1 +12227544,1918,assets/images/split/image2542.bin,0,1 +12229462,2606,assets/images/split/image2543.bin,0,1 +12232068,2251,assets/images/split/image2544.bin,0,1 +12234319,2334,assets/images/split/image2545.bin,0,1 +12236653,2319,assets/images/split/image2546.bin,0,1 +12238972,2280,assets/images/split/image2547.bin,0,1 +12241252,1961,assets/images/split/image2548.bin,0,1 +12243213,2528,assets/images/split/image2549.bin,0,1 +12245741,2235,assets/images/split/image2550.bin,0,1 +12247976,2323,assets/images/split/image2551.bin,0,1 +12250299,1717,assets/images/split/image2552.bin,0,1 +12252016,2109,assets/images/split/image2553.bin,0,1 +12254125,2141,assets/images/split/image2554.bin,0,1 +12256266,2112,assets/images/split/image2555.bin,0,1 +12258378,1578,assets/images/split/image2556.bin,0,1 +12259956,1655,assets/images/split/image2557.bin,0,1 +12261611,1031,assets/images/split/image2558.bin,0,1 +12262642,2231,assets/images/split/image2559.bin,0,1 +12264873,2285,assets/images/split/image2560.bin,0,1 +12267158,2356,assets/images/split/image2561.bin,0,1 +12269514,1840,assets/images/split/image2562.bin,0,1 +12271354,1793,assets/images/split/image2563.bin,0,1 +12273147,1925,assets/images/split/image2564.bin,0,1 +12275072,2146,assets/images/split/image2565.bin,0,1 +12277218,1945,assets/images/split/image2566.bin,0,1 +12279163,2158,assets/images/split/image2567.bin,0,1 +12281321,1819,assets/images/split/image2568.bin,0,1 +12283140,1523,assets/images/split/image2569.bin,0,1 +12284663,1843,assets/images/split/image2570.bin,0,1 +12286506,1880,assets/images/split/image2571.bin,0,1 +12288386,2599,assets/images/split/image2572.bin,0,1 +12290985,2724,assets/images/split/image2573.bin,0,1 +12293709,1889,assets/images/split/image2574.bin,0,1 +12295598,1780,assets/images/split/image2575.bin,0,1 +12297378,1586,assets/images/split/image2576.bin,0,1 +12298964,1675,assets/images/split/image2577.bin,0,1 +12300639,2429,assets/images/split/image2578.bin,0,1 +12303068,2606,assets/images/split/image2579.bin,0,1 +12305674,2456,assets/images/split/image2580.bin,0,1 +12308130,2478,assets/images/split/image2581.bin,0,1 +12310608,2469,assets/images/split/image2582.bin,0,1 +12313077,2221,assets/images/split/image2583.bin,0,1 +12315298,2456,assets/images/split/image2584.bin,0,1 +12317754,2076,assets/images/split/image2585.bin,0,1 +12319830,2286,assets/images/split/image2586.bin,0,1 +12322116,2013,assets/images/split/image2587.bin,0,1 +12324129,2180,assets/images/split/image2588.bin,0,1 +12326309,2425,assets/images/split/image2589.bin,0,1 +12328734,2148,assets/images/split/image2590.bin,0,1 +12330882,2335,assets/images/split/image2591.bin,0,1 +12333217,2230,assets/images/split/image2592.bin,0,1 +12335447,1880,assets/images/split/image2593.bin,0,1 +12337327,2099,assets/images/split/image2594.bin,0,1 +12339426,2670,assets/images/split/image2595.bin,0,1 +12342096,2103,assets/images/split/image2596.bin,0,1 +12344199,2278,assets/images/split/image2597.bin,0,1 +12346477,1321,assets/images/split/image2598.bin,0,1 +12347798,1310,assets/images/split/image2599.bin,0,1 +12349108,1412,assets/images/split/image2600.bin,0,1 +12350520,1446,assets/images/split/image2601.bin,0,1 +12351966,1407,assets/images/split/image2602.bin,0,1 +12353373,1533,assets/images/split/image2603.bin,0,1 +12354906,1226,assets/images/split/image2604.bin,0,1 +12356132,1547,assets/images/split/image2605.bin,0,1 +12357679,1382,assets/images/split/image2606.bin,0,1 +12359061,1452,assets/images/split/image2607.bin,0,1 +12360513,1157,assets/images/split/image2608.bin,0,1 +12361670,1764,assets/images/split/image2609.bin,0,1 +12363434,1290,assets/images/split/image2610.bin,0,1 +12364724,1384,assets/images/split/image2611.bin,0,1 +12366108,1558,assets/images/split/image2612.bin,0,1 +12367666,1439,assets/images/split/image2613.bin,0,1 +12369105,1428,assets/images/split/image2614.bin,0,1 +12370533,1214,assets/images/split/image2615.bin,0,1 +12371747,1356,assets/images/split/image2616.bin,0,1 +12373103,1299,assets/images/split/image2617.bin,0,1 +12374402,1853,assets/images/split/image2618.bin,0,1 +12376255,1762,assets/images/split/image2619.bin,0,1 +12378017,1780,assets/images/split/image2620.bin,0,1 +12379797,1758,assets/images/split/image2621.bin,0,1 +12381555,1647,assets/images/split/image2622.bin,0,1 +12383202,1732,assets/images/split/image2623.bin,0,1 +12384934,1435,assets/images/split/image2624.bin,0,1 +12386369,1882,assets/images/split/image2625.bin,0,1 +12388251,931,assets/images/split/image2626.bin,0,1 +12389182,1658,assets/images/split/image2627.bin,0,1 +12390840,1778,assets/images/split/image2628.bin,0,1 +12392618,650,assets/images/split/image2629.bin,0,1 +12393268,1346,assets/images/split/image2630.bin,0,1 +12394614,53,assets/images/split/image2631.bin,0,1 +12394667,1208,assets/images/split/image2632.bin,0,1 +12395875,1315,assets/images/split/image2633.bin,0,1 +12397190,1319,assets/images/split/image2634.bin,0,1 +12398509,1530,assets/images/split/image2635.bin,0,1 +12400039,1556,assets/images/split/image2636.bin,0,1 +12401595,1289,assets/images/split/image2637.bin,0,1 +12402884,1432,assets/images/split/image2638.bin,0,1 +12404316,1467,assets/images/split/image2639.bin,0,1 +12405783,1255,assets/images/split/image2640.bin,0,1 +12407038,1261,assets/images/split/image2641.bin,0,1 +12408299,1043,assets/images/split/image2642.bin,0,1 +12409342,1074,assets/images/split/image2643.bin,0,1 +12410416,1242,assets/images/split/image2644.bin,0,1 +12411658,1300,assets/images/split/image2645.bin,0,1 +12412958,1195,assets/images/split/image2646.bin,0,1 +12414153,1231,assets/images/split/image2647.bin,0,1 +12415384,1362,assets/images/split/image2648.bin,0,1 +12416746,1212,assets/images/split/image2649.bin,0,1 +12417958,1334,assets/images/split/image2650.bin,0,1 +12419292,1551,assets/images/split/image2651.bin,0,1 +12420843,1347,assets/images/split/image2652.bin,0,1 +12422190,1358,assets/images/split/image2653.bin,0,1 +12423548,1213,assets/images/split/image2654.bin,0,1 +12424761,1219,assets/images/split/image2655.bin,0,1 +12425980,1235,assets/images/split/image2656.bin,0,1 +12427215,1161,assets/images/split/image2657.bin,0,1 +12428376,1687,assets/images/split/image2658.bin,0,1 +12430063,1602,assets/images/split/image2659.bin,0,1 +12431665,1383,assets/images/split/image2660.bin,0,1 +12433048,1308,assets/images/split/image2661.bin,0,1 +12434356,1341,assets/images/split/image2662.bin,0,1 +12435697,1389,assets/images/split/image2663.bin,0,1 +12437086,1374,assets/images/split/image2664.bin,0,1 +12438460,1115,assets/images/split/image2665.bin,0,1 +12439575,1445,assets/images/split/image2666.bin,0,1 +12441020,1451,assets/images/split/image2667.bin,0,1 +12442471,1364,assets/images/split/image2668.bin,0,1 +12443835,1302,assets/images/split/image2669.bin,0,1 +12445137,1407,assets/images/split/image2670.bin,0,1 +12446544,1212,assets/images/split/image2671.bin,0,1 +12447756,160,assets/images/split/image2672.bin,0,1 +12447916,248,assets/images/split/image2673.bin,0,1 +12448164,919,assets/images/split/image2674.bin,0,1 +12449083,188,assets/images/split/image2675.bin,0,1 +12449271,1077,assets/images/split/image2676.bin,0,1 +12450348,2572,assets/images/split/image2677.bin,0,1 +12452920,1845,assets/images/split/image2678.bin,0,1 +12454765,726,assets/images/split/image2679.bin,0,1 +12455491,2270,assets/images/split/image2680.bin,0,1 +12457761,631,assets/images/split/image2681.bin,0,1 +12458392,947,assets/images/split/image2682.bin,0,1 +12459339,948,assets/images/split/image2683.bin,0,1 +12460287,705,assets/images/split/image2684.bin,0,1 +12460992,708,assets/images/split/image2685.bin,0,1 +12461700,2422,assets/images/split/image2686.bin,0,1 +12464122,2504,assets/images/split/image2687.bin,0,1 +12466626,2617,assets/images/split/image2688.bin,0,1 +12469243,2159,assets/images/split/image2689.bin,0,1 +12471402,896,assets/images/split/image2690.bin,0,1 +12472298,1348,assets/images/split/image2691.bin,0,1 +12473646,1299,assets/images/split/image2692.bin,0,1 +12474945,1282,assets/images/split/image2693.bin,0,1 +12476227,1252,assets/images/split/image2694.bin,0,1 +12477479,419,assets/images/split/image2695.bin,0,1 +12477898,513,assets/images/split/image2696.bin,0,1 +12478411,1341,assets/images/split/image2697.bin,0,1 +12479752,8,assets/images/split/image2698.bin,0,1 diff --git a/include/CPPLib.h b/include/CPPLib.h index 513a7826..00e8c3d0 100644 --- a/include/CPPLib.h +++ b/include/CPPLib.h @@ -579,22 +579,22 @@ HAS_ARGS(( ())) COUNTPARAMS((A, B, C, D, E, F,G,H,I)) #enAdif -#define LIST_TO_TUPLE(list) \ - IF_ELSE(IS_PAREN(list))\ - (\ - EVAL16((LIST_TO_TUPLE_INNER(SECOND list, FIRST list)))\ - )\ - (\ - list\ +#define LIST_TO_TUPLE(list) \ + IF_ELSE(IS_PAREN(list))\ + (\ + EVAL16((LIST_TO_TUPLE_INNER(SECOND list, FIRST list)))\ + )\ + (\ + list\ ) -#define LIST_TO_TUPLE_INNER(list, listb) \ - IF_ELSE(HAS_ARGS(list)) \ - (\ - EXPAND(DEFER4(_LIST_TO_TUPLE_INNER)()(TRY_EXPAND((POP_ARG list)), PUSH_ARG(FIRST list, listb)))\ - )\ - (\ - 0 listb\ +#define LIST_TO_TUPLE_INNER(list, listb) \ + IF_ELSE(HAS_ARGS(list)) \ + (\ + EXPAND(DEFER4(_LIST_TO_TUPLE_INNER)()(TRY_EXPAND((POP_ARG list)), PUSH_ARG(FIRST list, listb)))\ + )\ + (\ + 0 listb\ ) #define _LIST_TO_TUPLE_INNER() LIST_TO_TUPLE_INNER // list to tuple diff --git a/include/gbi_extension.h b/include/gbi_extension.h index f35d5023..d48c1bb2 100644 --- a/include/gbi_extension.h +++ b/include/gbi_extension.h @@ -130,6 +130,62 @@ gsSP4Triangles(x1, y1, z1, x2, y2, z2, 0, 0, 0, 0, 0, 0) +/** + * B1 rsp_tri4 + * Draws up to four triangles at a time. + * Expects values from 0-F, corresponding with # points declared by vertex command. + * Triangles with all points set to 0 are not drawn. + * + * upper word + * 0000F000 z4 + * 00000F00 z3 + * 000000F0 z2 + * 0000000F z1 + * + * lower word + * f0000000 y4 + * 0f000000 x4 + * 00f00000 y3 + * 000f0000 x3 + * 0000f000 y2 + * 00000f00 x2 + * 000000f0 y1 + * 0000000f x1 + */ +#define gDPTri4(pkt, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) \ +{ \ + Gfx *_g = (Gfx *)(pkt); \ + _g->words.w0 = (_SHIFTL(G_TRI4, 24, 8) \ + | _SHIFTL(z4, 12, 4) \ + | _SHIFTL(z3, 8, 4) \ + | _SHIFTL(z2, 4, 4) \ + | _SHIFTL(z1, 0, 4)); \ + _g->words.w1 = (_SHIFTL(y4, 28, 4) \ + | _SHIFTL(x4, 24, 4) \ + | _SHIFTL(y3, 20, 4) \ + | _SHIFTL(x3, 16, 4) \ + | _SHIFTL(y2, 12, 4) \ + | _SHIFTL(x2, 8, 4) \ + | _SHIFTL(y1, 4, 4) \ + | _SHIFTL(x1, 0, 4)); \ +} + +#define gDPTri3(pkt, x1, y1, z1, x2, y2, z2, x3, y3, z3) \ + gDPTri4(pkt, x1, y1, z1, x2, y2, z2, x3, y3, z3, 0, 0, 0) + +#define gDPTri2(pkt, x1, y1, z1, x2, y2, z2) \ + gDPTri4(pkt, x1, y1, z1, x2, y2, z2, 0, 0, 0, 0, 0, 0) + +#define gDPTri1(pkt, x1, y1, z1) \ + gDPTri4(pkt, x1, y1, z1, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +#define gDPLoadTLUT06(pkt, a, b, c, d) \ +{ \ + Gfx *_g = (Gfx *)pkt; \ + _g->words.w0 = _SHIFTL(G_LOADTLUT, 24, 8) | _SHIFTL((a), 14, 10) | _SHIFTL((b), 2, 10); \ + _g->words.w1 = _SHIFTL(0x06, 24, 8) | _SHIFTL((c), 14, 10) | _SHIFTL((d), 2, 10); \ +} + /* * Texturing macro Overrides */ diff --git a/ld/game.bss.ld.inc b/ld/game.bss.ld.inc new file mode 100644 index 00000000..d41e7691 --- /dev/null +++ b/ld/game.bss.ld.inc @@ -0,0 +1,133 @@ + build/OUTCODE/src/game/initgamedata.o (.bss); + build/OUTCODE/src/game/initweaponanigroups.o (.bss); + build/OUTCODE/src/game/initactorpropstuff.o (.bss); + build/OUTCODE/src/game/initnull_0009D0.o (.bss); + build/OUTCODE/src/game/initunk_0009E0.o (.bss); + build/OUTCODE/src/game/initanitable.o (.bss); + build/OUTCODE/src/game/initplayergaitobject.o (.bss); + build/OUTCODE/src/game/setguscale.o (.bss); + build/OUTCODE/src/game/initnull_000BC0.o (.bss); + build/OUTCODE/src/game/initimages.o (.bss); + build/OUTCODE/src/game/initintromatrices.o (.bss); + build/OUTCODE/src/game/initmenus.o (.bss); + build/OUTCODE/src/game/initguards.o (.bss); + build/OUTCODE/src/game/deb_loadallmodels.o (.bss); + build/OUTCODE/src/game/initobjects.o (.bss); + build/OUTCODE/src/game/prop.o (.bss); + build/OUTCODE/src/game/objective.o (.bss); + build/OUTCODE/src/game/ejectedcartridges.o (.bss); + build/OUTCODE/src/game/initBondDATA.o (.bss); + build/OUTCODE/src/game/initunk_005450.o (.bss); + build/OUTCODE/src/game/initunk_005520.o (.bss); + build/OUTCODE/src/game/bondview_r.o (.bss); + build/OUTCODE/src/game/inititemslots.o (.bss); + build/OUTCODE/src/game/initBondDATAdefaults.o (.bss); + build/OUTCODE/src/game/initpathtablesomething.o (.bss); + build/OUTCODE/src/game/initpathtablelinks.o (.bss); + build/OUTCODE/src/game/initexplosioncasing.o (.bss); + build/OUTCODE/src/game/alloc_window_pieces.o (.bss); + build/OUTCODE/src/game/initunk_007290.o (.bss); + build/OUTCODE/src/game/initcheattext.o (.bss); + build/OUTCODE/src/game/initmttex.o (.bss); + build/OUTCODE/src/game/cleanup_guard_data.o (.bss); + build/OUTCODE/src/game/cleanup_object_sounds.o (.bss); + build/OUTCODE/src/game/cleanup_alarms.o (.bss); + build/OUTCODE/src/game/cleanup_objects.o (.bss); + build/OUTCODE/src/game/cleanup_objectives.o (.bss); + build/OUTCODE/src/game/cleanupSFXRelated.o (.bss); + build/OUTCODE/src/game/playerstats_007770.o (.bss); + build/OUTCODE/src/game/cleanexplosions.o (.bss); + build/OUTCODE/src/game/cleanwindowpieces.o (.bss); + build/OUTCODE/src/game/null_007970.o (.bss); + build/OUTCODE/src/game/cleanplayersound.o (.bss); + build/OUTCODE/src/game/title.o (.bss); + build/OUTCODE/src/game/front.o (.bss); + build/OUTCODE/src/game/unk_01B0E0.o (.bss); + build/OUTCODE/src/game/unk_01B240.o (.bss); + build/OUTCODE/src/game/unk_01BAE0.o (.bss); + build/OUTCODE/src/game/blood_animation.o (.bss); + build/OUTCODE/src/game/blood_decrypt.o (.bss); + build/OUTCODE/src/game/file.o (.bss); + build/OUTCODE/src/game/file2.o (.bss); + build/OUTCODE/src/game/chr.o (.bss); + build/OUTCODE/src/game/chr_b.o (.bss); + build/OUTCODE/src/game/chrlv.o (.bss); + build/OUTCODE/src/game/chrai.o (.bss); + build/OUTCODE/src/game/chrprop.o (.bss); + build/OUTCODE/src/game/chrobjhandler.o (.bss); + build/OUTCODE/src/game/loadobjectmodel.o (.bss); + build/OUTCODE/src/game/objective_status.o (.bss); + build/OUTCODE/src/game/objective_status2.o (.bss); + build/OUTCODE/src/game/math_sincos.o (.bss); + build/OUTCODE/src/game/matrixmath.o (.bss); + build/OUTCODE/src/game/math_unk_05A9E0.o (.bss); + build/OUTCODE/src/game/math_atan2f.o (.bss); + build/OUTCODE/src/game/math_asinacos.o (.bss); + build/OUTCODE/src/game/math_asinfacosf.o (.bss); + build/OUTCODE/src/game/matrixmath_misc.o (.bss); + build/OUTCODE/src/game/quaternion.o (.bss); + build/OUTCODE/src/game/math_floor.o (.bss); + build/OUTCODE/src/game/math_ceil.o (.bss); + build/OUTCODE/src/game/gun.o (.bss); + build/OUTCODE/src/game/bondwalk2.o (.bss); + build/OUTCODE/src/game/objecthandler.o (.bss); + build/OUTCODE/src/game/objecthandler_1.o (.bss); + build/OUTCODE/src/game/objecthandler_2.o (.bss); + build/OUTCODE/src/game/othermodemicrocode.o (.bss); + build/OUTCODE/src/game/bondview.o (.bss); + build/OUTCODE/src/game/bondinv.o (.bss); + build/OUTCODE/src/game/bondhead.o (.bss); + build/OUTCODE/src/game/padhalllv.o (.bss); + build/OUTCODE/src/game/debugmenu_08FE00.o (.bss); + build/OUTCODE/src/game/debugmenu_handler.o (.bss); + build/OUTCODE/src/game/unk_091080.o (.bss); + build/OUTCODE/src/game/chraidata.o (.bss); + build/OUTCODE/src/game/pobjdata.o (.bss); + build/OUTCODE/src/game/gobjdata.o (.bss); + build/OUTCODE/src/game/gobjdata2.o (.bss); + build/OUTCODE/src/game/cobjdata.o (.bss); + build/OUTCODE/src/game/cheat_buttons.o (.bss); + build/OUTCODE/src/game/unk_092890.o (.bss); + build/OUTCODE/src/game/unk_092E50.o (.bss); + build/OUTCODE/src/game/player.o (.bss); + build/OUTCODE/src/game/player_2.o (.bss); + build/OUTCODE/src/game/crc.o (.bss); + build/OUTCODE/src/game/chrObjRandom.o (.bss); + build/OUTCODE/src/game/unk_09B7A0.o (.bss); + build/OUTCODE/src/game/explosions.o (.bss); + build/OUTCODE/src/game/unk_0A1DA0.o (.bss); + build/OUTCODE/src/game/watch.o (.bss); + build/OUTCODE/src/game/textrelated.o (.bss); + build/OUTCODE/src/game/stan.o (.bss); + build/OUTCODE/src/game/unk_0B3200.o (.bss); + build/OUTCODE/src/game/bg.o (.bss); + build/OUTCODE/src/game/bg2.o (.bss); + build/OUTCODE/src/game/fog.o (.bss); + build/OUTCODE/src/game/lightfixture.o (.bss); + build/OUTCODE/src/game/unk_0BC530.o (.bss); + build/OUTCODE/src/game/ob.o (.bss); + build/OUTCODE/src/game/dyn.o (.bss); + build/OUTCODE/src/game/lvl.o (.bss); + build/OUTCODE/src/game/ramromreplay.o (.bss); + build/OUTCODE/src/game/unk_0C0A70.o (.bss); + build/OUTCODE/src/game/mp_music.o (.bss); + build/OUTCODE/src/game/lvl_text.o (.bss); + build/OUTCODE/src/game/mp_watch.o (.bss); + build/OUTCODE/src/game/radar.o (.bss); + build/OUTCODE/src/game/mp_weapon.o (.bss); + build/OUTCODE/src/game/image.o (.bss); + build/OUTCODE/src/game/image_bank.o (.bss); + build/OUTCODE/src/game/unk_0CC4C0.o (.bss); + build/OUTCODE/src/game/decompress.o (.bss); + build/OUTCODE/src/game/zlib.o (.bss); + build/OUTCODE/src/game/rsp.o (.bss); + build/OUTCODE/src/game/indy_comms.o (.bss); + build/OUTCODE/src/game/indy_commands.o (.bss); + build/OUTCODE/src/game/game_debug.o (.bss); + build/OUTCODE/src/game/compiletime.o (.bss); + build/OUTCODE/src/game/unk_0D1AC0.o (.bss); + build/OUTCODE/src/game/viewport.o (.bss); + build/OUTCODE/src/game/music_0D2720.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/game/spectrum.o (.bss); +#endif \ No newline at end of file diff --git a/ld/game.data.ld.inc b/ld/game.data.ld.inc new file mode 100644 index 00000000..5372c005 --- /dev/null +++ b/ld/game.data.ld.inc @@ -0,0 +1,133 @@ + build/OUTCODE/src/game/initgamedata.o (.data); + build/OUTCODE/src/game/initweaponanigroups.o (.data); + build/OUTCODE/src/game/initactorpropstuff.o (.data); + build/OUTCODE/src/game/initnull_0009D0.o (.data); + build/OUTCODE/src/game/initunk_0009E0.o (.data); + build/OUTCODE/src/game/initanitable.o (.data); + build/OUTCODE/src/game/initplayergaitobject.o (.data); + build/OUTCODE/src/game/setguscale.o (.data); + build/OUTCODE/src/game/initnull_000BC0.o (.data); + build/OUTCODE/src/game/initimages.o (.data); + build/OUTCODE/src/game/initintromatrices.o (.data); + build/OUTCODE/src/game/initmenus.o (.data); + build/OUTCODE/src/game/initguards.o (.data); + build/OUTCODE/src/game/deb_loadallmodels.o (.data); + build/OUTCODE/src/game/initobjects.o (.data); + build/OUTCODE/src/game/prop.o (.data); + build/OUTCODE/src/game/objective.o (.data); + build/OUTCODE/src/game/ejectedcartridges.o (.data); + build/OUTCODE/src/game/initBondDATA.o (.data); + build/OUTCODE/src/game/initunk_005450.o (.data); + build/OUTCODE/src/game/initunk_005520.o (.data); + build/OUTCODE/src/game/bondview_r.o (.data); + build/OUTCODE/src/game/inititemslots.o (.data); + build/OUTCODE/src/game/initBondDATAdefaults.o (.data); + build/OUTCODE/src/game/initpathtablesomething.o (.data); + build/OUTCODE/src/game/initpathtablelinks.o (.data); + build/OUTCODE/src/game/initexplosioncasing.o (.data); + build/OUTCODE/src/game/alloc_window_pieces.o (.data); + build/OUTCODE/src/game/initunk_007290.o (.data); + build/OUTCODE/src/game/initcheattext.o (.data); + build/OUTCODE/src/game/initmttex.o (.data); + build/OUTCODE/src/game/cleanup_guard_data.o (.data); + build/OUTCODE/src/game/cleanup_object_sounds.o (.data); + build/OUTCODE/src/game/cleanup_alarms.o (.data); + build/OUTCODE/src/game/cleanup_objects.o (.data); + build/OUTCODE/src/game/cleanup_objectives.o (.data); + build/OUTCODE/src/game/cleanupSFXRelated.o (.data); + build/OUTCODE/src/game/playerstats_007770.o (.data); + build/OUTCODE/src/game/cleanexplosions.o (.data); + build/OUTCODE/src/game/cleanwindowpieces.o (.data); + build/OUTCODE/src/game/null_007970.o (.data); + build/OUTCODE/src/game/cleanplayersound.o (.data); + build/OUTCODE/src/game/title.o (.data); + build/OUTCODE/src/game/front.o (.data); + build/OUTCODE/src/game/unk_01B0E0.o (.data); + build/OUTCODE/src/game/unk_01B240.o (.data); + build/OUTCODE/src/game/unk_01BAE0.o (.data); + build/OUTCODE/src/game/blood_animation.o (.data); + build/OUTCODE/src/game/blood_decrypt.o (.data); + build/OUTCODE/src/game/file.o (.data); + build/OUTCODE/src/game/file2.o (.data); + build/OUTCODE/src/game/chr.o (.data); + build/OUTCODE/src/game/chr_b.o (.data); + build/OUTCODE/src/game/chrlv.o (.data); + build/OUTCODE/src/game/chrai.o (.data); + build/OUTCODE/src/game/chrprop.o (.data); + build/OUTCODE/src/game/chrobjhandler.o (.data); + build/OUTCODE/src/game/loadobjectmodel.o (.data); + build/OUTCODE/src/game/objective_status.o (.data); + build/OUTCODE/src/game/objective_status2.o (.data); + build/OUTCODE/src/game/math_sincos.o (.data); + build/OUTCODE/src/game/matrixmath.o (.data); + build/OUTCODE/src/game/math_unk_05A9E0.o (.data); + build/OUTCODE/src/game/math_atan2f.o (.data); + build/OUTCODE/src/game/math_asinacos.o (.data); + build/OUTCODE/src/game/math_asinfacosf.o (.data); + build/OUTCODE/src/game/matrixmath_misc.o (.data); + build/OUTCODE/src/game/quaternion.o (.data); + build/OUTCODE/src/game/math_floor.o (.data); + build/OUTCODE/src/game/math_ceil.o (.data); + build/OUTCODE/src/game/gun.o (.data); + build/OUTCODE/src/game/bondwalk2.o (.data); + build/OUTCODE/src/game/objecthandler.o (.data); + build/OUTCODE/src/game/objecthandler_1.o (.data); + build/OUTCODE/src/game/objecthandler_2.o (.data); + build/OUTCODE/src/game/othermodemicrocode.o (.data); + build/OUTCODE/src/game/bondview.o (.data); + build/OUTCODE/src/game/bondinv.o (.data); + build/OUTCODE/src/game/bondhead.o (.data); + build/OUTCODE/src/game/padhalllv.o (.data); + build/OUTCODE/src/game/debugmenu_08FE00.o (.data); + build/OUTCODE/src/game/debugmenu_handler.o (.data); + build/OUTCODE/src/game/unk_091080.o (.data); + build/OUTCODE/src/game/chraidata.o (.data); + build/OUTCODE/src/game/pobjdata.o (.data); + build/OUTCODE/src/game/gobjdata.o (.data); + build/OUTCODE/src/game/gobjdata2.o (.data); + build/OUTCODE/src/game/cobjdata.o (.data); + build/OUTCODE/src/game/cheat_buttons.o (.data); + build/OUTCODE/src/game/unk_092890.o (.data); + build/OUTCODE/src/game/unk_092E50.o (.data); + build/OUTCODE/src/game/player.o (.data); + build/OUTCODE/src/game/player_2.o (.data); + build/OUTCODE/src/game/crc.o (.data); + build/OUTCODE/src/game/chrObjRandom.o (.data); + build/OUTCODE/src/game/unk_09B7A0.o (.data); + build/OUTCODE/src/game/explosions.o (.data); + build/OUTCODE/src/game/unk_0A1DA0.o (.data); + build/OUTCODE/src/game/watch.o (.data); + build/OUTCODE/src/game/textrelated.o (.data); + build/OUTCODE/src/game/stan.o (.data); + build/OUTCODE/src/game/unk_0B3200.o (.data); + build/OUTCODE/src/game/bg.o (.data); + build/OUTCODE/src/game/bg2.o (.data); + build/OUTCODE/src/game/fog.o (.data); + build/OUTCODE/src/game/lightfixture.o (.data); + build/OUTCODE/src/game/unk_0BC530.o (.data); + build/OUTCODE/src/game/ob.o (.data); + build/OUTCODE/src/game/dyn.o (.data); + build/OUTCODE/src/game/lvl.o (.data); + build/OUTCODE/src/game/ramromreplay.o (.data); + build/OUTCODE/src/game/unk_0C0A70.o (.data); + build/OUTCODE/src/game/mp_music.o (.data); + build/OUTCODE/src/game/lvl_text.o (.data); + build/OUTCODE/src/game/mp_watch.o (.data); + build/OUTCODE/src/game/radar.o (.data); + build/OUTCODE/src/game/mp_weapon.o (.data); + build/OUTCODE/src/game/image.o (.data); + build/OUTCODE/src/game/image_bank.o (.data); + build/OUTCODE/src/game/unk_0CC4C0.o (.data); + build/OUTCODE/src/game/decompress.o (.data); + build/OUTCODE/src/game/zlib.o (.data); + build/OUTCODE/src/game/rsp.o (.data); + build/OUTCODE/src/game/indy_comms.o (.data); + build/OUTCODE/src/game/indy_commands.o (.data); + build/OUTCODE/src/game/game_debug.o (.data); + build/OUTCODE/src/game/compiletime.o (.data); + build/OUTCODE/src/game/unk_0D1AC0.o (.data); + build/OUTCODE/src/game/viewport.o (.data); + build/OUTCODE/src/game/music_0D2720.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/game/spectrum.o (.data); +#endif diff --git a/ld/game.rodata.ld.inc b/ld/game.rodata.ld.inc new file mode 100644 index 00000000..e6f7e4f1 --- /dev/null +++ b/ld/game.rodata.ld.inc @@ -0,0 +1,133 @@ + build/OUTCODE/src/game/initgamedata.o (.rodata); + build/OUTCODE/src/game/initweaponanigroups.o (.rodata); + build/OUTCODE/src/game/initactorpropstuff.o (.rodata); + build/OUTCODE/src/game/initnull_0009D0.o (.rodata); + build/OUTCODE/src/game/initunk_0009E0.o (.rodata); + build/OUTCODE/src/game/initanitable.o (.rodata); + build/OUTCODE/src/game/initplayergaitobject.o (.rodata); + build/OUTCODE/src/game/setguscale.o (.rodata); + build/OUTCODE/src/game/initnull_000BC0.o (.rodata); + build/OUTCODE/src/game/initimages.o (.rodata); + build/OUTCODE/src/game/initintromatrices.o (.rodata); + build/OUTCODE/src/game/initmenus.o (.rodata); + build/OUTCODE/src/game/initguards.o (.rodata); + build/OUTCODE/src/game/deb_loadallmodels.o (.rodata); + build/OUTCODE/src/game/initobjects.o (.rodata); + build/OUTCODE/src/game/prop.o (.rodata); + build/OUTCODE/src/game/objective.o (.rodata); + build/OUTCODE/src/game/ejectedcartridges.o (.rodata); + build/OUTCODE/src/game/initBondDATA.o (.rodata); + build/OUTCODE/src/game/initunk_005450.o (.rodata); + build/OUTCODE/src/game/initunk_005520.o (.rodata); + build/OUTCODE/src/game/bondview_r.o (.rodata); + build/OUTCODE/src/game/inititemslots.o (.rodata); + build/OUTCODE/src/game/initBondDATAdefaults.o (.rodata); + build/OUTCODE/src/game/initpathtablesomething.o (.rodata); + build/OUTCODE/src/game/initpathtablelinks.o (.rodata); + build/OUTCODE/src/game/initexplosioncasing.o (.rodata); + build/OUTCODE/src/game/alloc_window_pieces.o (.rodata); + build/OUTCODE/src/game/initunk_007290.o (.rodata); + build/OUTCODE/src/game/initcheattext.o (.rodata); + build/OUTCODE/src/game/initmttex.o (.rodata); + build/OUTCODE/src/game/cleanup_guard_data.o (.rodata); + build/OUTCODE/src/game/cleanup_object_sounds.o (.rodata); + build/OUTCODE/src/game/cleanup_alarms.o (.rodata); + build/OUTCODE/src/game/cleanup_objects.o (.rodata); + build/OUTCODE/src/game/cleanup_objectives.o (.rodata); + build/OUTCODE/src/game/cleanupSFXRelated.o (.rodata); + build/OUTCODE/src/game/playerstats_007770.o (.rodata); + build/OUTCODE/src/game/cleanexplosions.o (.rodata); + build/OUTCODE/src/game/cleanwindowpieces.o (.rodata); + build/OUTCODE/src/game/null_007970.o (.rodata); + build/OUTCODE/src/game/cleanplayersound.o (.rodata); + build/OUTCODE/src/game/title.o (.rodata); + build/OUTCODE/src/game/front.o (.rodata); + build/OUTCODE/src/game/unk_01B0E0.o (.rodata); + build/OUTCODE/src/game/unk_01B240.o (.rodata); + build/OUTCODE/src/game/unk_01BAE0.o (.rodata); + build/OUTCODE/src/game/blood_animation.o (.rodata); + build/OUTCODE/src/game/blood_decrypt.o (.rodata); + build/OUTCODE/src/game/file.o (.rodata); + build/OUTCODE/src/game/file2.o (.rodata); + build/OUTCODE/src/game/chr.o (.rodata); + build/OUTCODE/src/game/chr_b.o (.rodata); + build/OUTCODE/src/game/chrlv.o (.rodata); + build/OUTCODE/src/game/chrai.o (.rodata); + build/OUTCODE/src/game/chrprop.o (.rodata); + build/OUTCODE/src/game/chrobjhandler.o (.rodata); + build/OUTCODE/src/game/loadobjectmodel.o (.rodata); + build/OUTCODE/src/game/objective_status.o (.rodata); + build/OUTCODE/src/game/objective_status2.o (.rodata); + build/OUTCODE/src/game/math_sincos.o (.rodata); + build/OUTCODE/src/game/matrixmath.o (.rodata); + build/OUTCODE/src/game/math_unk_05A9E0.o (.rodata); + build/OUTCODE/src/game/math_atan2f.o (.rodata); + build/OUTCODE/src/game/math_asinacos.o (.rodata); + build/OUTCODE/src/game/math_asinfacosf.o (.rodata); + build/OUTCODE/src/game/matrixmath_misc.o (.rodata); + build/OUTCODE/src/game/quaternion.o (.rodata); + build/OUTCODE/src/game/math_floor.o (.rodata); + build/OUTCODE/src/game/math_ceil.o (.rodata); + build/OUTCODE/src/game/gun.o (.rodata); + build/OUTCODE/src/game/bondwalk2.o (.rodata); + build/OUTCODE/src/game/objecthandler.o (.rodata); + build/OUTCODE/src/game/objecthandler_1.o (.rodata); + build/OUTCODE/src/game/objecthandler_2.o (.rodata); + build/OUTCODE/src/game/othermodemicrocode.o (.rodata); + build/OUTCODE/src/game/bondview.o (.rodata); + build/OUTCODE/src/game/bondinv.o (.rodata); + build/OUTCODE/src/game/bondhead.o (.rodata); + build/OUTCODE/src/game/padhalllv.o (.rodata); + build/OUTCODE/src/game/debugmenu_08FE00.o (.rodata); + build/OUTCODE/src/game/debugmenu_handler.o (.rodata); + build/OUTCODE/src/game/unk_091080.o (.rodata); + build/OUTCODE/src/game/chraidata.o (.rodata); + build/OUTCODE/src/game/pobjdata.o (.rodata); + build/OUTCODE/src/game/gobjdata.o (.rodata); + build/OUTCODE/src/game/gobjdata2.o (.rodata); + build/OUTCODE/src/game/cobjdata.o (.rodata); + build/OUTCODE/src/game/cheat_buttons.o (.rodata); + build/OUTCODE/src/game/unk_092890.o (.rodata); + build/OUTCODE/src/game/unk_092E50.o (.rodata); + build/OUTCODE/src/game/player.o (.rodata); + build/OUTCODE/src/game/player_2.o (.rodata); + build/OUTCODE/src/game/crc.o (.rodata); + build/OUTCODE/src/game/chrObjRandom.o (.rodata); + build/OUTCODE/src/game/unk_09B7A0.o (.rodata); + build/OUTCODE/src/game/explosions.o (.rodata); + build/OUTCODE/src/game/unk_0A1DA0.o (.rodata); + build/OUTCODE/src/game/watch.o (.rodata); + build/OUTCODE/src/game/textrelated.o (.rodata); + build/OUTCODE/src/game/stan.o (.rodata); + build/OUTCODE/src/game/unk_0B3200.o (.rodata); + build/OUTCODE/src/game/bg.o (.rodata); + build/OUTCODE/src/game/bg2.o (.rodata); + build/OUTCODE/src/game/fog.o (.rodata); + build/OUTCODE/src/game/lightfixture.o (.rodata); + build/OUTCODE/src/game/unk_0BC530.o (.rodata); + build/OUTCODE/src/game/ob.o (.rodata); + build/OUTCODE/src/game/dyn.o (.rodata); + build/OUTCODE/src/game/lvl.o (.rodata); + build/OUTCODE/src/game/ramromreplay.o (.rodata); + build/OUTCODE/src/game/unk_0C0A70.o (.rodata); + build/OUTCODE/src/game/mp_music.o (.rodata); + build/OUTCODE/src/game/lvl_text.o (.rodata); + build/OUTCODE/src/game/mp_watch.o (.rodata); + build/OUTCODE/src/game/radar.o (.rodata); + build/OUTCODE/src/game/mp_weapon.o (.rodata); + build/OUTCODE/src/game/image.o (.rodata); + build/OUTCODE/src/game/image_bank.o (.rodata); + build/OUTCODE/src/game/unk_0CC4C0.o (.rodata); + build/OUTCODE/src/game/decompress.o (.rodata); + build/OUTCODE/src/game/zlib.o (.rodata); + build/OUTCODE/src/game/rsp.o (.rodata); + build/OUTCODE/src/game/indy_comms.o (.rodata); + build/OUTCODE/src/game/indy_commands.o (.rodata); + build/OUTCODE/src/game/game_debug.o (.rodata); + build/OUTCODE/src/game/compiletime.o (.rodata); + build/OUTCODE/src/game/unk_0D1AC0.o (.rodata); + build/OUTCODE/src/game/viewport.o (.rodata); + build/OUTCODE/src/game/music_0D2720.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/game/spectrum.o (.rodata); +#endif \ No newline at end of file diff --git a/ld/game.text.ld.inc b/ld/game.text.ld.inc new file mode 100644 index 00000000..84696a72 --- /dev/null +++ b/ld/game.text.ld.inc @@ -0,0 +1,133 @@ + build/OUTCODE/src/game/initgamedata.o (.text); + build/OUTCODE/src/game/initweaponanigroups.o (.text); + build/OUTCODE/src/game/initactorpropstuff.o (.text); + build/OUTCODE/src/game/initnull_0009D0.o (.text); + build/OUTCODE/src/game/initunk_0009E0.o (.text); + build/OUTCODE/src/game/initanitable.o (.text); + build/OUTCODE/src/game/initplayergaitobject.o (.text); + build/OUTCODE/src/game/setguscale.o (.text); + build/OUTCODE/src/game/initnull_000BC0.o (.text); + build/OUTCODE/src/game/initimages.o (.text); + build/OUTCODE/src/game/initintromatrices.o (.text); + build/OUTCODE/src/game/initmenus.o (.text); + build/OUTCODE/src/game/initguards.o (.text); + build/OUTCODE/src/game/deb_loadallmodels.o (.text); + build/OUTCODE/src/game/initobjects.o (.text); + build/OUTCODE/src/game/prop.o (.text); + build/OUTCODE/src/game/objective.o (.text); + build/OUTCODE/src/game/ejectedcartridges.o (.text); + build/OUTCODE/src/game/initBondDATA.o (.text); + build/OUTCODE/src/game/initunk_005450.o (.text); + build/OUTCODE/src/game/initunk_005520.o (.text); + build/OUTCODE/src/game/bondview_r.o (.text); + build/OUTCODE/src/game/inititemslots.o (.text); + build/OUTCODE/src/game/initBondDATAdefaults.o (.text); + build/OUTCODE/src/game/initpathtablesomething.o (.text); + build/OUTCODE/src/game/initpathtablelinks.o (.text); + build/OUTCODE/src/game/initexplosioncasing.o (.text); + build/OUTCODE/src/game/alloc_window_pieces.o (.text); + build/OUTCODE/src/game/initunk_007290.o (.text); + build/OUTCODE/src/game/initcheattext.o (.text); + build/OUTCODE/src/game/initmttex.o (.text); + build/OUTCODE/src/game/cleanup_guard_data.o (.text); + build/OUTCODE/src/game/cleanup_object_sounds.o (.text); + build/OUTCODE/src/game/cleanup_alarms.o (.text); + build/OUTCODE/src/game/cleanup_objects.o (.text); + build/OUTCODE/src/game/cleanup_objectives.o (.text); + build/OUTCODE/src/game/cleanupSFXRelated.o (.text); + build/OUTCODE/src/game/playerstats_007770.o (.text); + build/OUTCODE/src/game/cleanexplosions.o (.text); + build/OUTCODE/src/game/cleanwindowpieces.o (.text); + build/OUTCODE/src/game/null_007970.o (.text); + build/OUTCODE/src/game/cleanplayersound.o (.text); + build/OUTCODE/src/game/title.o (.text); + build/OUTCODE/src/game/front.o (.text); + build/OUTCODE/src/game/unk_01B0E0.o (.text); + build/OUTCODE/src/game/unk_01B240.o (.text); + build/OUTCODE/src/game/unk_01BAE0.o (.text); + build/OUTCODE/src/game/blood_animation.o (.text); + build/OUTCODE/src/game/blood_decrypt.o (.text); + build/OUTCODE/src/game/file.o (.text); + build/OUTCODE/src/game/file2.o (.text); + build/OUTCODE/src/game/chr.o (.text); + build/OUTCODE/src/game/chr_b.o (.text); + build/OUTCODE/src/game/chrlv.o (.text); + build/OUTCODE/src/game/chrai.o (.text); + build/OUTCODE/src/game/chrprop.o (.text); + build/OUTCODE/src/game/chrobjhandler.o (.text); + build/OUTCODE/src/game/loadobjectmodel.o (.text); + build/OUTCODE/src/game/objective_status.o (.text); + build/OUTCODE/src/game/objective_status2.o (.text); + build/OUTCODE/src/game/math_sincos.o (.text); + build/OUTCODE/src/game/matrixmath.o (.text); + build/OUTCODE/src/game/math_unk_05A9E0.o (.text); + build/OUTCODE/src/game/math_atan2f.o (.text); + build/OUTCODE/src/game/math_asinacos.o (.text); + build/OUTCODE/src/game/math_asinfacosf.o (.text); + build/OUTCODE/src/game/matrixmath_misc.o (.text); + build/OUTCODE/src/game/quaternion.o (.text); + build/OUTCODE/src/game/math_floor.o (.text); + build/OUTCODE/src/game/math_ceil.o (.text); + build/OUTCODE/src/game/gun.o (.text); + build/OUTCODE/src/game/bondwalk2.o (.text); + build/OUTCODE/src/game/objecthandler.o (.text); + build/OUTCODE/src/game/objecthandler_1.o (.text); + build/OUTCODE/src/game/objecthandler_2.o (.text); + build/OUTCODE/src/game/othermodemicrocode.o (.text); + build/OUTCODE/src/game/bondview.o (.text); + build/OUTCODE/src/game/bondinv.o (.text); + build/OUTCODE/src/game/bondhead.o (.text); + build/OUTCODE/src/game/padhalllv.o (.text); + build/OUTCODE/src/game/debugmenu_08FE00.o (.text); + build/OUTCODE/src/game/debugmenu_handler.o (.text); + build/OUTCODE/src/game/unk_091080.o (.text); + build/OUTCODE/src/game/chraidata.o (.text); + build/OUTCODE/src/game/pobjdata.o (.text); + build/OUTCODE/src/game/gobjdata.o (.text); + build/OUTCODE/src/game/gobjdata2.o (.text); + build/OUTCODE/src/game/cobjdata.o (.text); + build/OUTCODE/src/game/cheat_buttons.o (.text); + build/OUTCODE/src/game/unk_092890.o (.text); + build/OUTCODE/src/game/unk_092E50.o (.text); + build/OUTCODE/src/game/player.o (.text); + build/OUTCODE/src/game/player_2.o (.text); + build/OUTCODE/src/game/crc.o (.text); + build/OUTCODE/src/game/chrObjRandom.o (.text); + build/OUTCODE/src/game/unk_09B7A0.o (.text); + build/OUTCODE/src/game/explosions.o (.text); + build/OUTCODE/src/game/unk_0A1DA0.o (.text); + build/OUTCODE/src/game/watch.o (.text); + build/OUTCODE/src/game/textrelated.o (.text); + build/OUTCODE/src/game/stan.o (.text); + build/OUTCODE/src/game/unk_0B3200.o (.text); + build/OUTCODE/src/game/bg.o (.text); + build/OUTCODE/src/game/bg2.o (.text); + build/OUTCODE/src/game/fog.o (.text); + build/OUTCODE/src/game/lightfixture.o (.text); + build/OUTCODE/src/game/unk_0BC530.o (.text); + build/OUTCODE/src/game/ob.o (.text); + build/OUTCODE/src/game/dyn.o (.text); + build/OUTCODE/src/game/lvl.o (.text); + build/OUTCODE/src/game/ramromreplay.o (.text); + build/OUTCODE/src/game/unk_0C0A70.o (.text); + build/OUTCODE/src/game/mp_music.o (.text); + build/OUTCODE/src/game/lvl_text.o (.text); + build/OUTCODE/src/game/mp_watch.o (.text); + build/OUTCODE/src/game/radar.o (.text); + build/OUTCODE/src/game/mp_weapon.o (.text); + build/OUTCODE/src/game/image.o (.text); + build/OUTCODE/src/game/image_bank.o (.text); + build/OUTCODE/src/game/unk_0CC4C0.o (.text); + build/OUTCODE/src/game/decompress.o (.text); + build/OUTCODE/src/game/zlib.o (.text); + build/OUTCODE/src/game/rsp.o (.text); + build/OUTCODE/src/game/indy_comms.o (.text); + build/OUTCODE/src/game/indy_commands.o (.text); + build/OUTCODE/src/game/game_debug.o (.text); + build/OUTCODE/src/game/compiletime.o (.text); + build/OUTCODE/src/game/unk_0D1AC0.o (.text); + build/OUTCODE/src/game/viewport.o (.text); + build/OUTCODE/src/game/music_0D2720.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/game/spectrum.o (.text); +#endif diff --git a/ld/images.ld.inc b/ld/images.ld.inc new file mode 100644 index 00000000..7e3b5d51 --- /dev/null +++ b/ld/images.ld.inc @@ -0,0 +1,2699 @@ + build/OUTCODE/assets/images/split/image0.o (.data); + build/OUTCODE/assets/images/split/image1.o (.data); + build/OUTCODE/assets/images/split/image2.o (.data); + build/OUTCODE/assets/images/split/image3.o (.data); + build/OUTCODE/assets/images/split/image4.o (.data); + build/OUTCODE/assets/images/split/image5.o (.data); + build/OUTCODE/assets/images/split/image6.o (.data); + build/OUTCODE/assets/images/split/image7.o (.data); + build/OUTCODE/assets/images/split/image8.o (.data); + build/OUTCODE/assets/images/split/image9.o (.data); + build/OUTCODE/assets/images/split/image10.o (.data); + build/OUTCODE/assets/images/split/image11.o (.data); + build/OUTCODE/assets/images/split/image12.o (.data); + build/OUTCODE/assets/images/split/image13.o (.data); + build/OUTCODE/assets/images/split/image14.o (.data); + build/OUTCODE/assets/images/split/image15.o (.data); + build/OUTCODE/assets/images/split/image16.o (.data); + build/OUTCODE/assets/images/split/image17.o (.data); + build/OUTCODE/assets/images/split/image18.o (.data); + build/OUTCODE/assets/images/split/image19.o (.data); + build/OUTCODE/assets/images/split/image20.o (.data); + build/OUTCODE/assets/images/split/image21.o (.data); + build/OUTCODE/assets/images/split/image22.o (.data); + build/OUTCODE/assets/images/split/image23.o (.data); + build/OUTCODE/assets/images/split/image24.o (.data); + build/OUTCODE/assets/images/split/image25.o (.data); + build/OUTCODE/assets/images/split/image26.o (.data); + build/OUTCODE/assets/images/split/image27.o (.data); + build/OUTCODE/assets/images/split/image28.o (.data); + build/OUTCODE/assets/images/split/image29.o (.data); + build/OUTCODE/assets/images/split/image30.o (.data); + build/OUTCODE/assets/images/split/image31.o (.data); + build/OUTCODE/assets/images/split/image32.o (.data); + build/OUTCODE/assets/images/split/image33.o (.data); + build/OUTCODE/assets/images/split/image34.o (.data); + build/OUTCODE/assets/images/split/image35.o (.data); + build/OUTCODE/assets/images/split/image36.o (.data); + build/OUTCODE/assets/images/split/image37.o (.data); + build/OUTCODE/assets/images/split/image38.o (.data); + build/OUTCODE/assets/images/split/image39.o (.data); + build/OUTCODE/assets/images/split/image40.o (.data); + build/OUTCODE/assets/images/split/image41.o (.data); + build/OUTCODE/assets/images/split/image42.o (.data); + build/OUTCODE/assets/images/split/image43.o (.data); + build/OUTCODE/assets/images/split/image44.o (.data); + build/OUTCODE/assets/images/split/image45.o (.data); + build/OUTCODE/assets/images/split/image46.o (.data); + build/OUTCODE/assets/images/split/image47.o (.data); + build/OUTCODE/assets/images/split/image48.o (.data); + build/OUTCODE/assets/images/split/image49.o (.data); + build/OUTCODE/assets/images/split/image50.o (.data); + build/OUTCODE/assets/images/split/image51.o (.data); + build/OUTCODE/assets/images/split/image52.o (.data); + build/OUTCODE/assets/images/split/image53.o (.data); + build/OUTCODE/assets/images/split/image54.o (.data); + build/OUTCODE/assets/images/split/image55.o (.data); + build/OUTCODE/assets/images/split/image56.o (.data); + build/OUTCODE/assets/images/split/image57.o (.data); + build/OUTCODE/assets/images/split/image58.o (.data); + build/OUTCODE/assets/images/split/image59.o (.data); + build/OUTCODE/assets/images/split/image60.o (.data); + build/OUTCODE/assets/images/split/image61.o (.data); + build/OUTCODE/assets/images/split/image62.o (.data); + build/OUTCODE/assets/images/split/image63.o (.data); + build/OUTCODE/assets/images/split/image64.o (.data); + build/OUTCODE/assets/images/split/image65.o (.data); + build/OUTCODE/assets/images/split/image66.o (.data); + build/OUTCODE/assets/images/split/image67.o (.data); + build/OUTCODE/assets/images/split/image68.o (.data); + build/OUTCODE/assets/images/split/image69.o (.data); + build/OUTCODE/assets/images/split/image70.o (.data); + build/OUTCODE/assets/images/split/image71.o (.data); + build/OUTCODE/assets/images/split/image72.o (.data); + build/OUTCODE/assets/images/split/image73.o (.data); + build/OUTCODE/assets/images/split/image74.o (.data); + build/OUTCODE/assets/images/split/image75.o (.data); + build/OUTCODE/assets/images/split/image76.o (.data); + build/OUTCODE/assets/images/split/image77.o (.data); + build/OUTCODE/assets/images/split/image78.o (.data); + build/OUTCODE/assets/images/split/image79.o (.data); + build/OUTCODE/assets/images/split/image80.o (.data); + build/OUTCODE/assets/images/split/image81.o (.data); + build/OUTCODE/assets/images/split/image82.o (.data); + build/OUTCODE/assets/images/split/image83.o (.data); + build/OUTCODE/assets/images/split/image84.o (.data); + build/OUTCODE/assets/images/split/image85.o (.data); + build/OUTCODE/assets/images/split/image86.o (.data); + build/OUTCODE/assets/images/split/image87.o (.data); + build/OUTCODE/assets/images/split/image88.o (.data); + build/OUTCODE/assets/images/split/image89.o (.data); + build/OUTCODE/assets/images/split/image90.o (.data); + build/OUTCODE/assets/images/split/image91.o (.data); + build/OUTCODE/assets/images/split/image92.o (.data); + build/OUTCODE/assets/images/split/image93.o (.data); + build/OUTCODE/assets/images/split/image94.o (.data); + build/OUTCODE/assets/images/split/image95.o (.data); + build/OUTCODE/assets/images/split/image96.o (.data); + build/OUTCODE/assets/images/split/image97.o (.data); + build/OUTCODE/assets/images/split/image98.o (.data); + build/OUTCODE/assets/images/split/image99.o (.data); + build/OUTCODE/assets/images/split/image100.o (.data); + build/OUTCODE/assets/images/split/image101.o (.data); + build/OUTCODE/assets/images/split/image102.o (.data); + build/OUTCODE/assets/images/split/image103.o (.data); + build/OUTCODE/assets/images/split/image104.o (.data); + build/OUTCODE/assets/images/split/image105.o (.data); + build/OUTCODE/assets/images/split/image106.o (.data); + build/OUTCODE/assets/images/split/image107.o (.data); + build/OUTCODE/assets/images/split/image108.o (.data); + build/OUTCODE/assets/images/split/image109.o (.data); + build/OUTCODE/assets/images/split/image110.o (.data); + build/OUTCODE/assets/images/split/image111.o (.data); + build/OUTCODE/assets/images/split/image112.o (.data); + build/OUTCODE/assets/images/split/image113.o (.data); + build/OUTCODE/assets/images/split/image114.o (.data); + build/OUTCODE/assets/images/split/image115.o (.data); + build/OUTCODE/assets/images/split/image116.o (.data); + build/OUTCODE/assets/images/split/image117.o (.data); + build/OUTCODE/assets/images/split/image118.o (.data); + build/OUTCODE/assets/images/split/image119.o (.data); + build/OUTCODE/assets/images/split/image120.o (.data); + build/OUTCODE/assets/images/split/image121.o (.data); + build/OUTCODE/assets/images/split/image122.o (.data); + build/OUTCODE/assets/images/split/image123.o (.data); + build/OUTCODE/assets/images/split/image124.o (.data); + build/OUTCODE/assets/images/split/image125.o (.data); + build/OUTCODE/assets/images/split/image126.o (.data); + build/OUTCODE/assets/images/split/image127.o (.data); + build/OUTCODE/assets/images/split/image128.o (.data); + build/OUTCODE/assets/images/split/image129.o (.data); + build/OUTCODE/assets/images/split/image130.o (.data); + build/OUTCODE/assets/images/split/image131.o (.data); + build/OUTCODE/assets/images/split/image132.o (.data); + build/OUTCODE/assets/images/split/image133.o (.data); + build/OUTCODE/assets/images/split/image134.o (.data); + build/OUTCODE/assets/images/split/image135.o (.data); + build/OUTCODE/assets/images/split/image136.o (.data); + build/OUTCODE/assets/images/split/image137.o (.data); + build/OUTCODE/assets/images/split/image138.o (.data); + build/OUTCODE/assets/images/split/image139.o (.data); + build/OUTCODE/assets/images/split/image140.o (.data); + build/OUTCODE/assets/images/split/image141.o (.data); + build/OUTCODE/assets/images/split/image142.o (.data); + build/OUTCODE/assets/images/split/image143.o (.data); + build/OUTCODE/assets/images/split/image144.o (.data); + build/OUTCODE/assets/images/split/image145.o (.data); + build/OUTCODE/assets/images/split/image146.o (.data); + build/OUTCODE/assets/images/split/image147.o (.data); + build/OUTCODE/assets/images/split/image148.o (.data); + build/OUTCODE/assets/images/split/image149.o (.data); + build/OUTCODE/assets/images/split/image150.o (.data); + build/OUTCODE/assets/images/split/image151.o (.data); + build/OUTCODE/assets/images/split/image152.o (.data); + build/OUTCODE/assets/images/split/image153.o (.data); + build/OUTCODE/assets/images/split/image154.o (.data); + build/OUTCODE/assets/images/split/image155.o (.data); + build/OUTCODE/assets/images/split/image156.o (.data); + build/OUTCODE/assets/images/split/image157.o (.data); + build/OUTCODE/assets/images/split/image158.o (.data); + build/OUTCODE/assets/images/split/image159.o (.data); + build/OUTCODE/assets/images/split/image160.o (.data); + build/OUTCODE/assets/images/split/image161.o (.data); + build/OUTCODE/assets/images/split/image162.o (.data); + build/OUTCODE/assets/images/split/image163.o (.data); + build/OUTCODE/assets/images/split/image164.o (.data); + build/OUTCODE/assets/images/split/image165.o (.data); + build/OUTCODE/assets/images/split/image166.o (.data); + build/OUTCODE/assets/images/split/image167.o (.data); + build/OUTCODE/assets/images/split/image168.o (.data); + build/OUTCODE/assets/images/split/image169.o (.data); + build/OUTCODE/assets/images/split/image170.o (.data); + build/OUTCODE/assets/images/split/image171.o (.data); + build/OUTCODE/assets/images/split/image172.o (.data); + build/OUTCODE/assets/images/split/image173.o (.data); + build/OUTCODE/assets/images/split/image174.o (.data); + build/OUTCODE/assets/images/split/image175.o (.data); + build/OUTCODE/assets/images/split/image176.o (.data); + build/OUTCODE/assets/images/split/image177.o (.data); + build/OUTCODE/assets/images/split/image178.o (.data); + build/OUTCODE/assets/images/split/image179.o (.data); + build/OUTCODE/assets/images/split/image180.o (.data); + build/OUTCODE/assets/images/split/image181.o (.data); + build/OUTCODE/assets/images/split/image182.o (.data); + build/OUTCODE/assets/images/split/image183.o (.data); + build/OUTCODE/assets/images/split/image184.o (.data); + build/OUTCODE/assets/images/split/image185.o (.data); + build/OUTCODE/assets/images/split/image186.o (.data); + build/OUTCODE/assets/images/split/image187.o (.data); + build/OUTCODE/assets/images/split/image188.o (.data); + build/OUTCODE/assets/images/split/image189.o (.data); + build/OUTCODE/assets/images/split/image190.o (.data); + build/OUTCODE/assets/images/split/image191.o (.data); + build/OUTCODE/assets/images/split/image192.o (.data); + build/OUTCODE/assets/images/split/image193.o (.data); + build/OUTCODE/assets/images/split/image194.o (.data); + build/OUTCODE/assets/images/split/image195.o (.data); + build/OUTCODE/assets/images/split/image196.o (.data); + build/OUTCODE/assets/images/split/image197.o (.data); + build/OUTCODE/assets/images/split/image198.o (.data); + build/OUTCODE/assets/images/split/image199.o (.data); + build/OUTCODE/assets/images/split/image200.o (.data); + build/OUTCODE/assets/images/split/image201.o (.data); + build/OUTCODE/assets/images/split/image202.o (.data); + build/OUTCODE/assets/images/split/image203.o (.data); + build/OUTCODE/assets/images/split/image204.o (.data); + build/OUTCODE/assets/images/split/image205.o (.data); + build/OUTCODE/assets/images/split/image206.o (.data); + build/OUTCODE/assets/images/split/image207.o (.data); + build/OUTCODE/assets/images/split/image208.o (.data); + build/OUTCODE/assets/images/split/image209.o (.data); + build/OUTCODE/assets/images/split/image210.o (.data); + build/OUTCODE/assets/images/split/image211.o (.data); + build/OUTCODE/assets/images/split/image212.o (.data); + build/OUTCODE/assets/images/split/image213.o (.data); + build/OUTCODE/assets/images/split/image214.o (.data); + build/OUTCODE/assets/images/split/image215.o (.data); + build/OUTCODE/assets/images/split/image216.o (.data); + build/OUTCODE/assets/images/split/image217.o (.data); + build/OUTCODE/assets/images/split/image218.o (.data); + build/OUTCODE/assets/images/split/image219.o (.data); + build/OUTCODE/assets/images/split/image220.o (.data); + build/OUTCODE/assets/images/split/image221.o (.data); + build/OUTCODE/assets/images/split/image222.o (.data); + build/OUTCODE/assets/images/split/image223.o (.data); + build/OUTCODE/assets/images/split/image224.o (.data); + build/OUTCODE/assets/images/split/image225.o (.data); + build/OUTCODE/assets/images/split/image226.o (.data); + build/OUTCODE/assets/images/split/image227.o (.data); + build/OUTCODE/assets/images/split/image228.o (.data); + build/OUTCODE/assets/images/split/image229.o (.data); + build/OUTCODE/assets/images/split/image230.o (.data); + build/OUTCODE/assets/images/split/image231.o (.data); + build/OUTCODE/assets/images/split/image232.o (.data); + build/OUTCODE/assets/images/split/image233.o (.data); + build/OUTCODE/assets/images/split/image234.o (.data); + build/OUTCODE/assets/images/split/image235.o (.data); + build/OUTCODE/assets/images/split/image236.o (.data); + build/OUTCODE/assets/images/split/image237.o (.data); + build/OUTCODE/assets/images/split/image238.o (.data); + build/OUTCODE/assets/images/split/image239.o (.data); + build/OUTCODE/assets/images/split/image240.o (.data); + build/OUTCODE/assets/images/split/image241.o (.data); + build/OUTCODE/assets/images/split/image242.o (.data); + build/OUTCODE/assets/images/split/image243.o (.data); + build/OUTCODE/assets/images/split/image244.o (.data); + build/OUTCODE/assets/images/split/image245.o (.data); + build/OUTCODE/assets/images/split/image246.o (.data); + build/OUTCODE/assets/images/split/image247.o (.data); + build/OUTCODE/assets/images/split/image248.o (.data); + build/OUTCODE/assets/images/split/image249.o (.data); + build/OUTCODE/assets/images/split/image250.o (.data); + build/OUTCODE/assets/images/split/image251.o (.data); + build/OUTCODE/assets/images/split/image252.o (.data); + build/OUTCODE/assets/images/split/image253.o (.data); + build/OUTCODE/assets/images/split/image254.o (.data); + build/OUTCODE/assets/images/split/image255.o (.data); + build/OUTCODE/assets/images/split/image256.o (.data); + build/OUTCODE/assets/images/split/image257.o (.data); + build/OUTCODE/assets/images/split/image258.o (.data); + build/OUTCODE/assets/images/split/image259.o (.data); + build/OUTCODE/assets/images/split/image260.o (.data); + build/OUTCODE/assets/images/split/image261.o (.data); + build/OUTCODE/assets/images/split/image262.o (.data); + build/OUTCODE/assets/images/split/image263.o (.data); + build/OUTCODE/assets/images/split/image264.o (.data); + build/OUTCODE/assets/images/split/image265.o (.data); + build/OUTCODE/assets/images/split/image266.o (.data); + build/OUTCODE/assets/images/split/image267.o (.data); + build/OUTCODE/assets/images/split/image268.o (.data); + build/OUTCODE/assets/images/split/image269.o (.data); + build/OUTCODE/assets/images/split/image270.o (.data); + build/OUTCODE/assets/images/split/image271.o (.data); + build/OUTCODE/assets/images/split/image272.o (.data); + build/OUTCODE/assets/images/split/image273.o (.data); + build/OUTCODE/assets/images/split/image274.o (.data); + build/OUTCODE/assets/images/split/image275.o (.data); + build/OUTCODE/assets/images/split/image276.o (.data); + build/OUTCODE/assets/images/split/image277.o (.data); + build/OUTCODE/assets/images/split/image278.o (.data); + build/OUTCODE/assets/images/split/image279.o (.data); + build/OUTCODE/assets/images/split/image280.o (.data); + build/OUTCODE/assets/images/split/image281.o (.data); + build/OUTCODE/assets/images/split/image282.o (.data); + build/OUTCODE/assets/images/split/image283.o (.data); + build/OUTCODE/assets/images/split/image284.o (.data); + build/OUTCODE/assets/images/split/image285.o (.data); + build/OUTCODE/assets/images/split/image286.o (.data); + build/OUTCODE/assets/images/split/image287.o (.data); + build/OUTCODE/assets/images/split/image288.o (.data); + build/OUTCODE/assets/images/split/image289.o (.data); + build/OUTCODE/assets/images/split/image290.o (.data); + build/OUTCODE/assets/images/split/image291.o (.data); + build/OUTCODE/assets/images/split/image292.o (.data); + build/OUTCODE/assets/images/split/image293.o (.data); + build/OUTCODE/assets/images/split/image294.o (.data); + build/OUTCODE/assets/images/split/image295.o (.data); + build/OUTCODE/assets/images/split/image296.o (.data); + build/OUTCODE/assets/images/split/image297.o (.data); + build/OUTCODE/assets/images/split/image298.o (.data); + build/OUTCODE/assets/images/split/image299.o (.data); + build/OUTCODE/assets/images/split/image300.o (.data); + build/OUTCODE/assets/images/split/image301.o (.data); + build/OUTCODE/assets/images/split/image302.o (.data); + build/OUTCODE/assets/images/split/image303.o (.data); + build/OUTCODE/assets/images/split/image304.o (.data); + build/OUTCODE/assets/images/split/image305.o (.data); + build/OUTCODE/assets/images/split/image306.o (.data); + build/OUTCODE/assets/images/split/image307.o (.data); + build/OUTCODE/assets/images/split/image308.o (.data); + build/OUTCODE/assets/images/split/image309.o (.data); + build/OUTCODE/assets/images/split/image310.o (.data); + build/OUTCODE/assets/images/split/image311.o (.data); + build/OUTCODE/assets/images/split/image312.o (.data); + build/OUTCODE/assets/images/split/image313.o (.data); + build/OUTCODE/assets/images/split/image314.o (.data); + build/OUTCODE/assets/images/split/image315.o (.data); + build/OUTCODE/assets/images/split/image316.o (.data); + build/OUTCODE/assets/images/split/image317.o (.data); + build/OUTCODE/assets/images/split/image318.o (.data); + build/OUTCODE/assets/images/split/image319.o (.data); + build/OUTCODE/assets/images/split/image320.o (.data); + build/OUTCODE/assets/images/split/image321.o (.data); + build/OUTCODE/assets/images/split/image322.o (.data); + build/OUTCODE/assets/images/split/image323.o (.data); + build/OUTCODE/assets/images/split/image324.o (.data); + build/OUTCODE/assets/images/split/image325.o (.data); + build/OUTCODE/assets/images/split/image326.o (.data); + build/OUTCODE/assets/images/split/image327.o (.data); + build/OUTCODE/assets/images/split/image328.o (.data); + build/OUTCODE/assets/images/split/image329.o (.data); + build/OUTCODE/assets/images/split/image330.o (.data); + build/OUTCODE/assets/images/split/image331.o (.data); + build/OUTCODE/assets/images/split/image332.o (.data); + build/OUTCODE/assets/images/split/image333.o (.data); + build/OUTCODE/assets/images/split/image334.o (.data); + build/OUTCODE/assets/images/split/image335.o (.data); + build/OUTCODE/assets/images/split/image336.o (.data); + build/OUTCODE/assets/images/split/image337.o (.data); + build/OUTCODE/assets/images/split/image338.o (.data); + build/OUTCODE/assets/images/split/image339.o (.data); + build/OUTCODE/assets/images/split/image340.o (.data); + build/OUTCODE/assets/images/split/image341.o (.data); + build/OUTCODE/assets/images/split/image342.o (.data); + build/OUTCODE/assets/images/split/image343.o (.data); + build/OUTCODE/assets/images/split/image344.o (.data); + build/OUTCODE/assets/images/split/image345.o (.data); + build/OUTCODE/assets/images/split/image346.o (.data); + build/OUTCODE/assets/images/split/image347.o (.data); + build/OUTCODE/assets/images/split/image348.o (.data); + build/OUTCODE/assets/images/split/image349.o (.data); + build/OUTCODE/assets/images/split/image350.o (.data); + build/OUTCODE/assets/images/split/image351.o (.data); + build/OUTCODE/assets/images/split/image352.o (.data); + build/OUTCODE/assets/images/split/image353.o (.data); + build/OUTCODE/assets/images/split/image354.o (.data); + build/OUTCODE/assets/images/split/image355.o (.data); + build/OUTCODE/assets/images/split/image356.o (.data); + build/OUTCODE/assets/images/split/image357.o (.data); + build/OUTCODE/assets/images/split/image358.o (.data); + build/OUTCODE/assets/images/split/image359.o (.data); + build/OUTCODE/assets/images/split/image360.o (.data); + build/OUTCODE/assets/images/split/image361.o (.data); + build/OUTCODE/assets/images/split/image362.o (.data); + build/OUTCODE/assets/images/split/image363.o (.data); + build/OUTCODE/assets/images/split/image364.o (.data); + build/OUTCODE/assets/images/split/image365.o (.data); + build/OUTCODE/assets/images/split/image366.o (.data); + build/OUTCODE/assets/images/split/image367.o (.data); + build/OUTCODE/assets/images/split/image368.o (.data); + build/OUTCODE/assets/images/split/image369.o (.data); + build/OUTCODE/assets/images/split/image370.o (.data); + build/OUTCODE/assets/images/split/image371.o (.data); + build/OUTCODE/assets/images/split/image372.o (.data); + build/OUTCODE/assets/images/split/image373.o (.data); + build/OUTCODE/assets/images/split/image374.o (.data); + build/OUTCODE/assets/images/split/image375.o (.data); + build/OUTCODE/assets/images/split/image376.o (.data); + build/OUTCODE/assets/images/split/image377.o (.data); + build/OUTCODE/assets/images/split/image378.o (.data); + build/OUTCODE/assets/images/split/image379.o (.data); + build/OUTCODE/assets/images/split/image380.o (.data); + build/OUTCODE/assets/images/split/image381.o (.data); + build/OUTCODE/assets/images/split/image382.o (.data); + build/OUTCODE/assets/images/split/image383.o (.data); + build/OUTCODE/assets/images/split/image384.o (.data); + build/OUTCODE/assets/images/split/image385.o (.data); + build/OUTCODE/assets/images/split/image386.o (.data); + build/OUTCODE/assets/images/split/image387.o (.data); + build/OUTCODE/assets/images/split/image388.o (.data); + build/OUTCODE/assets/images/split/image389.o (.data); + build/OUTCODE/assets/images/split/image390.o (.data); + build/OUTCODE/assets/images/split/image391.o (.data); + build/OUTCODE/assets/images/split/image392.o (.data); + build/OUTCODE/assets/images/split/image393.o (.data); + build/OUTCODE/assets/images/split/image394.o (.data); + build/OUTCODE/assets/images/split/image395.o (.data); + build/OUTCODE/assets/images/split/image396.o (.data); + build/OUTCODE/assets/images/split/image397.o (.data); + build/OUTCODE/assets/images/split/image398.o (.data); + build/OUTCODE/assets/images/split/image399.o (.data); + build/OUTCODE/assets/images/split/image400.o (.data); + build/OUTCODE/assets/images/split/image401.o (.data); + build/OUTCODE/assets/images/split/image402.o (.data); + build/OUTCODE/assets/images/split/image403.o (.data); + build/OUTCODE/assets/images/split/image404.o (.data); + build/OUTCODE/assets/images/split/image405.o (.data); + build/OUTCODE/assets/images/split/image406.o (.data); + build/OUTCODE/assets/images/split/image407.o (.data); + build/OUTCODE/assets/images/split/image408.o (.data); + build/OUTCODE/assets/images/split/image409.o (.data); + build/OUTCODE/assets/images/split/image410.o (.data); + build/OUTCODE/assets/images/split/image411.o (.data); + build/OUTCODE/assets/images/split/image412.o (.data); + build/OUTCODE/assets/images/split/image413.o (.data); + build/OUTCODE/assets/images/split/image414.o (.data); + build/OUTCODE/assets/images/split/image415.o (.data); + build/OUTCODE/assets/images/split/image416.o (.data); + build/OUTCODE/assets/images/split/image417.o (.data); + build/OUTCODE/assets/images/split/image418.o (.data); + build/OUTCODE/assets/images/split/image419.o (.data); + build/OUTCODE/assets/images/split/image420.o (.data); + build/OUTCODE/assets/images/split/image421.o (.data); + build/OUTCODE/assets/images/split/image422.o (.data); + build/OUTCODE/assets/images/split/image423.o (.data); + build/OUTCODE/assets/images/split/image424.o (.data); + build/OUTCODE/assets/images/split/image425.o (.data); + build/OUTCODE/assets/images/split/image426.o (.data); + build/OUTCODE/assets/images/split/image427.o (.data); + build/OUTCODE/assets/images/split/image428.o (.data); + build/OUTCODE/assets/images/split/image429.o (.data); + build/OUTCODE/assets/images/split/image430.o (.data); + build/OUTCODE/assets/images/split/image431.o (.data); + build/OUTCODE/assets/images/split/image432.o (.data); + build/OUTCODE/assets/images/split/image433.o (.data); + build/OUTCODE/assets/images/split/image434.o (.data); + build/OUTCODE/assets/images/split/image435.o (.data); + build/OUTCODE/assets/images/split/image436.o (.data); + build/OUTCODE/assets/images/split/image437.o (.data); + build/OUTCODE/assets/images/split/image438.o (.data); + build/OUTCODE/assets/images/split/image439.o (.data); + build/OUTCODE/assets/images/split/image440.o (.data); + build/OUTCODE/assets/images/split/image441.o (.data); + build/OUTCODE/assets/images/split/image442.o (.data); + build/OUTCODE/assets/images/split/image443.o (.data); + build/OUTCODE/assets/images/split/image444.o (.data); + build/OUTCODE/assets/images/split/image445.o (.data); + build/OUTCODE/assets/images/split/image446.o (.data); + build/OUTCODE/assets/images/split/image447.o (.data); + build/OUTCODE/assets/images/split/image448.o (.data); + build/OUTCODE/assets/images/split/image449.o (.data); + build/OUTCODE/assets/images/split/image450.o (.data); + build/OUTCODE/assets/images/split/image451.o (.data); + build/OUTCODE/assets/images/split/image452.o (.data); + build/OUTCODE/assets/images/split/image453.o (.data); + build/OUTCODE/assets/images/split/image454.o (.data); + build/OUTCODE/assets/images/split/image455.o (.data); + build/OUTCODE/assets/images/split/image456.o (.data); + build/OUTCODE/assets/images/split/image457.o (.data); + build/OUTCODE/assets/images/split/image458.o (.data); + build/OUTCODE/assets/images/split/image459.o (.data); + build/OUTCODE/assets/images/split/image460.o (.data); + build/OUTCODE/assets/images/split/image461.o (.data); + build/OUTCODE/assets/images/split/image462.o (.data); + build/OUTCODE/assets/images/split/image463.o (.data); + build/OUTCODE/assets/images/split/image464.o (.data); + build/OUTCODE/assets/images/split/image465.o (.data); + build/OUTCODE/assets/images/split/image466.o (.data); + build/OUTCODE/assets/images/split/image467.o (.data); + build/OUTCODE/assets/images/split/image468.o (.data); + build/OUTCODE/assets/images/split/image469.o (.data); + build/OUTCODE/assets/images/split/image470.o (.data); + build/OUTCODE/assets/images/split/image471.o (.data); + build/OUTCODE/assets/images/split/image472.o (.data); + build/OUTCODE/assets/images/split/image473.o (.data); + build/OUTCODE/assets/images/split/image474.o (.data); + build/OUTCODE/assets/images/split/image475.o (.data); + build/OUTCODE/assets/images/split/image476.o (.data); + build/OUTCODE/assets/images/split/image477.o (.data); + build/OUTCODE/assets/images/split/image478.o (.data); + build/OUTCODE/assets/images/split/image479.o (.data); + build/OUTCODE/assets/images/split/image480.o (.data); + build/OUTCODE/assets/images/split/image481.o (.data); + build/OUTCODE/assets/images/split/image482.o (.data); + build/OUTCODE/assets/images/split/image483.o (.data); + build/OUTCODE/assets/images/split/image484.o (.data); + build/OUTCODE/assets/images/split/image485.o (.data); + build/OUTCODE/assets/images/split/image486.o (.data); + build/OUTCODE/assets/images/split/image487.o (.data); + build/OUTCODE/assets/images/split/image488.o (.data); + build/OUTCODE/assets/images/split/image489.o (.data); + build/OUTCODE/assets/images/split/image490.o (.data); + build/OUTCODE/assets/images/split/image491.o (.data); + build/OUTCODE/assets/images/split/image492.o (.data); + build/OUTCODE/assets/images/split/image493.o (.data); + build/OUTCODE/assets/images/split/image494.o (.data); + build/OUTCODE/assets/images/split/image495.o (.data); + build/OUTCODE/assets/images/split/image496.o (.data); + build/OUTCODE/assets/images/split/image497.o (.data); + build/OUTCODE/assets/images/split/image498.o (.data); + build/OUTCODE/assets/images/split/image499.o (.data); + build/OUTCODE/assets/images/split/image500.o (.data); + build/OUTCODE/assets/images/split/image501.o (.data); + build/OUTCODE/assets/images/split/image502.o (.data); + build/OUTCODE/assets/images/split/image503.o (.data); + build/OUTCODE/assets/images/split/image504.o (.data); + build/OUTCODE/assets/images/split/image505.o (.data); + build/OUTCODE/assets/images/split/image506.o (.data); + build/OUTCODE/assets/images/split/image507.o (.data); + build/OUTCODE/assets/images/split/image508.o (.data); + build/OUTCODE/assets/images/split/image509.o (.data); + build/OUTCODE/assets/images/split/image510.o (.data); + build/OUTCODE/assets/images/split/image511.o (.data); + build/OUTCODE/assets/images/split/image512.o (.data); + build/OUTCODE/assets/images/split/image513.o (.data); + build/OUTCODE/assets/images/split/image514.o (.data); + build/OUTCODE/assets/images/split/image515.o (.data); + build/OUTCODE/assets/images/split/image516.o (.data); + build/OUTCODE/assets/images/split/image517.o (.data); + build/OUTCODE/assets/images/split/image518.o (.data); + build/OUTCODE/assets/images/split/image519.o (.data); + build/OUTCODE/assets/images/split/image520.o (.data); + build/OUTCODE/assets/images/split/image521.o (.data); + build/OUTCODE/assets/images/split/image522.o (.data); + build/OUTCODE/assets/images/split/image523.o (.data); + build/OUTCODE/assets/images/split/image524.o (.data); + build/OUTCODE/assets/images/split/image525.o (.data); + build/OUTCODE/assets/images/split/image526.o (.data); + build/OUTCODE/assets/images/split/image527.o (.data); + build/OUTCODE/assets/images/split/image528.o (.data); + build/OUTCODE/assets/images/split/image529.o (.data); + build/OUTCODE/assets/images/split/image530.o (.data); + build/OUTCODE/assets/images/split/image531.o (.data); + build/OUTCODE/assets/images/split/image532.o (.data); + build/OUTCODE/assets/images/split/image533.o (.data); + build/OUTCODE/assets/images/split/image534.o (.data); + build/OUTCODE/assets/images/split/image535.o (.data); + build/OUTCODE/assets/images/split/image536.o (.data); + build/OUTCODE/assets/images/split/image537.o (.data); + build/OUTCODE/assets/images/split/image538.o (.data); + build/OUTCODE/assets/images/split/image539.o (.data); + build/OUTCODE/assets/images/split/image540.o (.data); + build/OUTCODE/assets/images/split/image541.o (.data); + build/OUTCODE/assets/images/split/image542.o (.data); + build/OUTCODE/assets/images/split/image543.o (.data); + build/OUTCODE/assets/images/split/image544.o (.data); + build/OUTCODE/assets/images/split/image545.o (.data); + build/OUTCODE/assets/images/split/image546.o (.data); + build/OUTCODE/assets/images/split/image547.o (.data); + build/OUTCODE/assets/images/split/image548.o (.data); + build/OUTCODE/assets/images/split/image549.o (.data); + build/OUTCODE/assets/images/split/image550.o (.data); + build/OUTCODE/assets/images/split/image551.o (.data); + build/OUTCODE/assets/images/split/image552.o (.data); + build/OUTCODE/assets/images/split/image553.o (.data); + build/OUTCODE/assets/images/split/image554.o (.data); + build/OUTCODE/assets/images/split/image555.o (.data); + build/OUTCODE/assets/images/split/image556.o (.data); + build/OUTCODE/assets/images/split/image557.o (.data); + build/OUTCODE/assets/images/split/image558.o (.data); + build/OUTCODE/assets/images/split/image559.o (.data); + build/OUTCODE/assets/images/split/image560.o (.data); + build/OUTCODE/assets/images/split/image561.o (.data); + build/OUTCODE/assets/images/split/image562.o (.data); + build/OUTCODE/assets/images/split/image563.o (.data); + build/OUTCODE/assets/images/split/image564.o (.data); + build/OUTCODE/assets/images/split/image565.o (.data); + build/OUTCODE/assets/images/split/image566.o (.data); + build/OUTCODE/assets/images/split/image567.o (.data); + build/OUTCODE/assets/images/split/image568.o (.data); + build/OUTCODE/assets/images/split/image569.o (.data); + build/OUTCODE/assets/images/split/image570.o (.data); + build/OUTCODE/assets/images/split/image571.o (.data); + build/OUTCODE/assets/images/split/image572.o (.data); + build/OUTCODE/assets/images/split/image573.o (.data); + build/OUTCODE/assets/images/split/image574.o (.data); + build/OUTCODE/assets/images/split/image575.o (.data); + build/OUTCODE/assets/images/split/image576.o (.data); + build/OUTCODE/assets/images/split/image577.o (.data); + build/OUTCODE/assets/images/split/image578.o (.data); + build/OUTCODE/assets/images/split/image579.o (.data); + build/OUTCODE/assets/images/split/image580.o (.data); + build/OUTCODE/assets/images/split/image581.o (.data); + build/OUTCODE/assets/images/split/image582.o (.data); + build/OUTCODE/assets/images/split/image583.o (.data); + build/OUTCODE/assets/images/split/image584.o (.data); + build/OUTCODE/assets/images/split/image585.o (.data); + build/OUTCODE/assets/images/split/image586.o (.data); + build/OUTCODE/assets/images/split/image587.o (.data); + build/OUTCODE/assets/images/split/image588.o (.data); + build/OUTCODE/assets/images/split/image589.o (.data); + build/OUTCODE/assets/images/split/image590.o (.data); + build/OUTCODE/assets/images/split/image591.o (.data); + build/OUTCODE/assets/images/split/image592.o (.data); + build/OUTCODE/assets/images/split/image593.o (.data); + build/OUTCODE/assets/images/split/image594.o (.data); + build/OUTCODE/assets/images/split/image595.o (.data); + build/OUTCODE/assets/images/split/image596.o (.data); + build/OUTCODE/assets/images/split/image597.o (.data); + build/OUTCODE/assets/images/split/image598.o (.data); + build/OUTCODE/assets/images/split/image599.o (.data); + build/OUTCODE/assets/images/split/image600.o (.data); + build/OUTCODE/assets/images/split/image601.o (.data); + build/OUTCODE/assets/images/split/image602.o (.data); + build/OUTCODE/assets/images/split/image603.o (.data); + build/OUTCODE/assets/images/split/image604.o (.data); + build/OUTCODE/assets/images/split/image605.o (.data); + build/OUTCODE/assets/images/split/image606.o (.data); + build/OUTCODE/assets/images/split/image607.o (.data); + build/OUTCODE/assets/images/split/image608.o (.data); + build/OUTCODE/assets/images/split/image609.o (.data); + build/OUTCODE/assets/images/split/image610.o (.data); + build/OUTCODE/assets/images/split/image611.o (.data); + build/OUTCODE/assets/images/split/image612.o (.data); + build/OUTCODE/assets/images/split/image613.o (.data); + build/OUTCODE/assets/images/split/image614.o (.data); + build/OUTCODE/assets/images/split/image615.o (.data); + build/OUTCODE/assets/images/split/image616.o (.data); + build/OUTCODE/assets/images/split/image617.o (.data); + build/OUTCODE/assets/images/split/image618.o (.data); + build/OUTCODE/assets/images/split/image619.o (.data); + build/OUTCODE/assets/images/split/image620.o (.data); + build/OUTCODE/assets/images/split/image621.o (.data); + build/OUTCODE/assets/images/split/image622.o (.data); + build/OUTCODE/assets/images/split/image623.o (.data); + build/OUTCODE/assets/images/split/image624.o (.data); + build/OUTCODE/assets/images/split/image625.o (.data); + build/OUTCODE/assets/images/split/image626.o (.data); + build/OUTCODE/assets/images/split/image627.o (.data); + build/OUTCODE/assets/images/split/image628.o (.data); + build/OUTCODE/assets/images/split/image629.o (.data); + build/OUTCODE/assets/images/split/image630.o (.data); + build/OUTCODE/assets/images/split/image631.o (.data); + build/OUTCODE/assets/images/split/image632.o (.data); + build/OUTCODE/assets/images/split/image633.o (.data); + build/OUTCODE/assets/images/split/image634.o (.data); + build/OUTCODE/assets/images/split/image635.o (.data); + build/OUTCODE/assets/images/split/image636.o (.data); + build/OUTCODE/assets/images/split/image637.o (.data); + build/OUTCODE/assets/images/split/image638.o (.data); + build/OUTCODE/assets/images/split/image639.o (.data); + build/OUTCODE/assets/images/split/image640.o (.data); + build/OUTCODE/assets/images/split/image641.o (.data); + build/OUTCODE/assets/images/split/image642.o (.data); + build/OUTCODE/assets/images/split/image643.o (.data); + build/OUTCODE/assets/images/split/image644.o (.data); + build/OUTCODE/assets/images/split/image645.o (.data); + build/OUTCODE/assets/images/split/image646.o (.data); + build/OUTCODE/assets/images/split/image647.o (.data); + build/OUTCODE/assets/images/split/image648.o (.data); + build/OUTCODE/assets/images/split/image649.o (.data); + build/OUTCODE/assets/images/split/image650.o (.data); + build/OUTCODE/assets/images/split/image651.o (.data); + build/OUTCODE/assets/images/split/image652.o (.data); + build/OUTCODE/assets/images/split/image653.o (.data); + build/OUTCODE/assets/images/split/image654.o (.data); + build/OUTCODE/assets/images/split/image655.o (.data); + build/OUTCODE/assets/images/split/image656.o (.data); + build/OUTCODE/assets/images/split/image657.o (.data); + build/OUTCODE/assets/images/split/image658.o (.data); + build/OUTCODE/assets/images/split/image659.o (.data); + build/OUTCODE/assets/images/split/image660.o (.data); + build/OUTCODE/assets/images/split/image661.o (.data); + build/OUTCODE/assets/images/split/image662.o (.data); + build/OUTCODE/assets/images/split/image663.o (.data); + build/OUTCODE/assets/images/split/image664.o (.data); + build/OUTCODE/assets/images/split/image665.o (.data); + build/OUTCODE/assets/images/split/image666.o (.data); + build/OUTCODE/assets/images/split/image667.o (.data); + build/OUTCODE/assets/images/split/image668.o (.data); + build/OUTCODE/assets/images/split/image669.o (.data); + build/OUTCODE/assets/images/split/image670.o (.data); + build/OUTCODE/assets/images/split/image671.o (.data); + build/OUTCODE/assets/images/split/image672.o (.data); + build/OUTCODE/assets/images/split/image673.o (.data); + build/OUTCODE/assets/images/split/image674.o (.data); + build/OUTCODE/assets/images/split/image675.o (.data); + build/OUTCODE/assets/images/split/image676.o (.data); + build/OUTCODE/assets/images/split/image677.o (.data); + build/OUTCODE/assets/images/split/image678.o (.data); + build/OUTCODE/assets/images/split/image679.o (.data); + build/OUTCODE/assets/images/split/image680.o (.data); + build/OUTCODE/assets/images/split/image681.o (.data); + build/OUTCODE/assets/images/split/image682.o (.data); + build/OUTCODE/assets/images/split/image683.o (.data); + build/OUTCODE/assets/images/split/image684.o (.data); + build/OUTCODE/assets/images/split/image685.o (.data); + build/OUTCODE/assets/images/split/image686.o (.data); + build/OUTCODE/assets/images/split/image687.o (.data); + build/OUTCODE/assets/images/split/image688.o (.data); + build/OUTCODE/assets/images/split/image689.o (.data); + build/OUTCODE/assets/images/split/image690.o (.data); + build/OUTCODE/assets/images/split/image691.o (.data); + build/OUTCODE/assets/images/split/image692.o (.data); + build/OUTCODE/assets/images/split/image693.o (.data); + build/OUTCODE/assets/images/split/image694.o (.data); + build/OUTCODE/assets/images/split/image695.o (.data); + build/OUTCODE/assets/images/split/image696.o (.data); + build/OUTCODE/assets/images/split/image697.o (.data); + build/OUTCODE/assets/images/split/image698.o (.data); + build/OUTCODE/assets/images/split/image699.o (.data); + build/OUTCODE/assets/images/split/image700.o (.data); + build/OUTCODE/assets/images/split/image701.o (.data); + build/OUTCODE/assets/images/split/image702.o (.data); + build/OUTCODE/assets/images/split/image703.o (.data); + build/OUTCODE/assets/images/split/image704.o (.data); + build/OUTCODE/assets/images/split/image705.o (.data); + build/OUTCODE/assets/images/split/image706.o (.data); + build/OUTCODE/assets/images/split/image707.o (.data); + build/OUTCODE/assets/images/split/image708.o (.data); + build/OUTCODE/assets/images/split/image709.o (.data); + build/OUTCODE/assets/images/split/image710.o (.data); + build/OUTCODE/assets/images/split/image711.o (.data); + build/OUTCODE/assets/images/split/image712.o (.data); + build/OUTCODE/assets/images/split/image713.o (.data); + build/OUTCODE/assets/images/split/image714.o (.data); + build/OUTCODE/assets/images/split/image715.o (.data); + build/OUTCODE/assets/images/split/image716.o (.data); + build/OUTCODE/assets/images/split/image717.o (.data); + build/OUTCODE/assets/images/split/image718.o (.data); + build/OUTCODE/assets/images/split/image719.o (.data); + build/OUTCODE/assets/images/split/image720.o (.data); + build/OUTCODE/assets/images/split/image721.o (.data); + build/OUTCODE/assets/images/split/image722.o (.data); + build/OUTCODE/assets/images/split/image723.o (.data); + build/OUTCODE/assets/images/split/image724.o (.data); + build/OUTCODE/assets/images/split/image725.o (.data); + build/OUTCODE/assets/images/split/image726.o (.data); + build/OUTCODE/assets/images/split/image727.o (.data); + build/OUTCODE/assets/images/split/image728.o (.data); + build/OUTCODE/assets/images/split/image729.o (.data); + build/OUTCODE/assets/images/split/image730.o (.data); + build/OUTCODE/assets/images/split/image731.o (.data); + build/OUTCODE/assets/images/split/image732.o (.data); + build/OUTCODE/assets/images/split/image733.o (.data); + build/OUTCODE/assets/images/split/image734.o (.data); + build/OUTCODE/assets/images/split/image735.o (.data); + build/OUTCODE/assets/images/split/image736.o (.data); + build/OUTCODE/assets/images/split/image737.o (.data); + build/OUTCODE/assets/images/split/image738.o (.data); + build/OUTCODE/assets/images/split/image739.o (.data); + build/OUTCODE/assets/images/split/image740.o (.data); + build/OUTCODE/assets/images/split/image741.o (.data); + build/OUTCODE/assets/images/split/image742.o (.data); + build/OUTCODE/assets/images/split/image743.o (.data); + build/OUTCODE/assets/images/split/image744.o (.data); + build/OUTCODE/assets/images/split/image745.o (.data); + build/OUTCODE/assets/images/split/image746.o (.data); + build/OUTCODE/assets/images/split/image747.o (.data); + build/OUTCODE/assets/images/split/image748.o (.data); + build/OUTCODE/assets/images/split/image749.o (.data); + build/OUTCODE/assets/images/split/image750.o (.data); + build/OUTCODE/assets/images/split/image751.o (.data); + build/OUTCODE/assets/images/split/image752.o (.data); + build/OUTCODE/assets/images/split/image753.o (.data); + build/OUTCODE/assets/images/split/image754.o (.data); + build/OUTCODE/assets/images/split/image755.o (.data); + build/OUTCODE/assets/images/split/image756.o (.data); + build/OUTCODE/assets/images/split/image757.o (.data); + build/OUTCODE/assets/images/split/image758.o (.data); + build/OUTCODE/assets/images/split/image759.o (.data); + build/OUTCODE/assets/images/split/image760.o (.data); + build/OUTCODE/assets/images/split/image761.o (.data); + build/OUTCODE/assets/images/split/image762.o (.data); + build/OUTCODE/assets/images/split/image763.o (.data); + build/OUTCODE/assets/images/split/image764.o (.data); + build/OUTCODE/assets/images/split/image765.o (.data); + build/OUTCODE/assets/images/split/image766.o (.data); + build/OUTCODE/assets/images/split/image767.o (.data); + build/OUTCODE/assets/images/split/image768.o (.data); + build/OUTCODE/assets/images/split/image769.o (.data); + build/OUTCODE/assets/images/split/image770.o (.data); + build/OUTCODE/assets/images/split/image771.o (.data); + build/OUTCODE/assets/images/split/image772.o (.data); + build/OUTCODE/assets/images/split/image773.o (.data); + build/OUTCODE/assets/images/split/image774.o (.data); + build/OUTCODE/assets/images/split/image775.o (.data); + build/OUTCODE/assets/images/split/image776.o (.data); + build/OUTCODE/assets/images/split/image777.o (.data); + build/OUTCODE/assets/images/split/image778.o (.data); + build/OUTCODE/assets/images/split/image779.o (.data); + build/OUTCODE/assets/images/split/image780.o (.data); + build/OUTCODE/assets/images/split/image781.o (.data); + build/OUTCODE/assets/images/split/image782.o (.data); + build/OUTCODE/assets/images/split/image783.o (.data); + build/OUTCODE/assets/images/split/image784.o (.data); + build/OUTCODE/assets/images/split/image785.o (.data); + build/OUTCODE/assets/images/split/image786.o (.data); + build/OUTCODE/assets/images/split/image787.o (.data); + build/OUTCODE/assets/images/split/image788.o (.data); + build/OUTCODE/assets/images/split/image789.o (.data); + build/OUTCODE/assets/images/split/image790.o (.data); + build/OUTCODE/assets/images/split/image791.o (.data); + build/OUTCODE/assets/images/split/image792.o (.data); + build/OUTCODE/assets/images/split/image793.o (.data); + build/OUTCODE/assets/images/split/image794.o (.data); + build/OUTCODE/assets/images/split/image795.o (.data); + build/OUTCODE/assets/images/split/image796.o (.data); + build/OUTCODE/assets/images/split/image797.o (.data); + build/OUTCODE/assets/images/split/image798.o (.data); + build/OUTCODE/assets/images/split/image799.o (.data); + build/OUTCODE/assets/images/split/image800.o (.data); + build/OUTCODE/assets/images/split/image801.o (.data); + build/OUTCODE/assets/images/split/image802.o (.data); + build/OUTCODE/assets/images/split/image803.o (.data); + build/OUTCODE/assets/images/split/image804.o (.data); + build/OUTCODE/assets/images/split/image805.o (.data); + build/OUTCODE/assets/images/split/image806.o (.data); + build/OUTCODE/assets/images/split/image807.o (.data); + build/OUTCODE/assets/images/split/image808.o (.data); + build/OUTCODE/assets/images/split/image809.o (.data); + build/OUTCODE/assets/images/split/image810.o (.data); + build/OUTCODE/assets/images/split/image811.o (.data); + build/OUTCODE/assets/images/split/image812.o (.data); + build/OUTCODE/assets/images/split/image813.o (.data); + build/OUTCODE/assets/images/split/image814.o (.data); + build/OUTCODE/assets/images/split/image815.o (.data); + build/OUTCODE/assets/images/split/image816.o (.data); + build/OUTCODE/assets/images/split/image817.o (.data); + build/OUTCODE/assets/images/split/image818.o (.data); + build/OUTCODE/assets/images/split/image819.o (.data); + build/OUTCODE/assets/images/split/image820.o (.data); + build/OUTCODE/assets/images/split/image821.o (.data); + build/OUTCODE/assets/images/split/image822.o (.data); + build/OUTCODE/assets/images/split/image823.o (.data); + build/OUTCODE/assets/images/split/image824.o (.data); + build/OUTCODE/assets/images/split/image825.o (.data); + build/OUTCODE/assets/images/split/image826.o (.data); + build/OUTCODE/assets/images/split/image827.o (.data); + build/OUTCODE/assets/images/split/image828.o (.data); + build/OUTCODE/assets/images/split/image829.o (.data); + build/OUTCODE/assets/images/split/image830.o (.data); + build/OUTCODE/assets/images/split/image831.o (.data); + build/OUTCODE/assets/images/split/image832.o (.data); + build/OUTCODE/assets/images/split/image833.o (.data); + build/OUTCODE/assets/images/split/image834.o (.data); + build/OUTCODE/assets/images/split/image835.o (.data); + build/OUTCODE/assets/images/split/image836.o (.data); + build/OUTCODE/assets/images/split/image837.o (.data); + build/OUTCODE/assets/images/split/image838.o (.data); + build/OUTCODE/assets/images/split/image839.o (.data); + build/OUTCODE/assets/images/split/image840.o (.data); + build/OUTCODE/assets/images/split/image841.o (.data); + build/OUTCODE/assets/images/split/image842.o (.data); + build/OUTCODE/assets/images/split/image843.o (.data); + build/OUTCODE/assets/images/split/image844.o (.data); + build/OUTCODE/assets/images/split/image845.o (.data); + build/OUTCODE/assets/images/split/image846.o (.data); + build/OUTCODE/assets/images/split/image847.o (.data); + build/OUTCODE/assets/images/split/image848.o (.data); + build/OUTCODE/assets/images/split/image849.o (.data); + build/OUTCODE/assets/images/split/image850.o (.data); + build/OUTCODE/assets/images/split/image851.o (.data); + build/OUTCODE/assets/images/split/image852.o (.data); + build/OUTCODE/assets/images/split/image853.o (.data); + build/OUTCODE/assets/images/split/image854.o (.data); + build/OUTCODE/assets/images/split/image855.o (.data); + build/OUTCODE/assets/images/split/image856.o (.data); + build/OUTCODE/assets/images/split/image857.o (.data); + build/OUTCODE/assets/images/split/image858.o (.data); + build/OUTCODE/assets/images/split/image859.o (.data); + build/OUTCODE/assets/images/split/image860.o (.data); + build/OUTCODE/assets/images/split/image861.o (.data); + build/OUTCODE/assets/images/split/image862.o (.data); + build/OUTCODE/assets/images/split/image863.o (.data); + build/OUTCODE/assets/images/split/image864.o (.data); + build/OUTCODE/assets/images/split/image865.o (.data); + build/OUTCODE/assets/images/split/image866.o (.data); + build/OUTCODE/assets/images/split/image867.o (.data); + build/OUTCODE/assets/images/split/image868.o (.data); + build/OUTCODE/assets/images/split/image869.o (.data); + build/OUTCODE/assets/images/split/image870.o (.data); + build/OUTCODE/assets/images/split/image871.o (.data); + build/OUTCODE/assets/images/split/image872.o (.data); + build/OUTCODE/assets/images/split/image873.o (.data); + build/OUTCODE/assets/images/split/image874.o (.data); + build/OUTCODE/assets/images/split/image875.o (.data); + build/OUTCODE/assets/images/split/image876.o (.data); + build/OUTCODE/assets/images/split/image877.o (.data); + build/OUTCODE/assets/images/split/image878.o (.data); + build/OUTCODE/assets/images/split/image879.o (.data); + build/OUTCODE/assets/images/split/image880.o (.data); + build/OUTCODE/assets/images/split/image881.o (.data); + build/OUTCODE/assets/images/split/image882.o (.data); + build/OUTCODE/assets/images/split/image883.o (.data); + build/OUTCODE/assets/images/split/image884.o (.data); + build/OUTCODE/assets/images/split/image885.o (.data); + build/OUTCODE/assets/images/split/image886.o (.data); + build/OUTCODE/assets/images/split/image887.o (.data); + build/OUTCODE/assets/images/split/image888.o (.data); + build/OUTCODE/assets/images/split/image889.o (.data); + build/OUTCODE/assets/images/split/image890.o (.data); + build/OUTCODE/assets/images/split/image891.o (.data); + build/OUTCODE/assets/images/split/image892.o (.data); + build/OUTCODE/assets/images/split/image893.o (.data); + build/OUTCODE/assets/images/split/image894.o (.data); + build/OUTCODE/assets/images/split/image895.o (.data); + build/OUTCODE/assets/images/split/image896.o (.data); + build/OUTCODE/assets/images/split/image897.o (.data); + build/OUTCODE/assets/images/split/image898.o (.data); + build/OUTCODE/assets/images/split/image899.o (.data); + build/OUTCODE/assets/images/split/image900.o (.data); + build/OUTCODE/assets/images/split/image901.o (.data); + build/OUTCODE/assets/images/split/image902.o (.data); + build/OUTCODE/assets/images/split/image903.o (.data); + build/OUTCODE/assets/images/split/image904.o (.data); + build/OUTCODE/assets/images/split/image905.o (.data); + build/OUTCODE/assets/images/split/image906.o (.data); + build/OUTCODE/assets/images/split/image907.o (.data); + build/OUTCODE/assets/images/split/image908.o (.data); + build/OUTCODE/assets/images/split/image909.o (.data); + build/OUTCODE/assets/images/split/image910.o (.data); + build/OUTCODE/assets/images/split/image911.o (.data); + build/OUTCODE/assets/images/split/image912.o (.data); + build/OUTCODE/assets/images/split/image913.o (.data); + build/OUTCODE/assets/images/split/image914.o (.data); + build/OUTCODE/assets/images/split/image915.o (.data); + build/OUTCODE/assets/images/split/image916.o (.data); + build/OUTCODE/assets/images/split/image917.o (.data); + build/OUTCODE/assets/images/split/image918.o (.data); + build/OUTCODE/assets/images/split/image919.o (.data); + build/OUTCODE/assets/images/split/image920.o (.data); + build/OUTCODE/assets/images/split/image921.o (.data); + build/OUTCODE/assets/images/split/image922.o (.data); + build/OUTCODE/assets/images/split/image923.o (.data); + build/OUTCODE/assets/images/split/image924.o (.data); + build/OUTCODE/assets/images/split/image925.o (.data); + build/OUTCODE/assets/images/split/image926.o (.data); + build/OUTCODE/assets/images/split/image927.o (.data); + build/OUTCODE/assets/images/split/image928.o (.data); + build/OUTCODE/assets/images/split/image929.o (.data); + build/OUTCODE/assets/images/split/image930.o (.data); + build/OUTCODE/assets/images/split/image931.o (.data); + build/OUTCODE/assets/images/split/image932.o (.data); + build/OUTCODE/assets/images/split/image933.o (.data); + build/OUTCODE/assets/images/split/image934.o (.data); + build/OUTCODE/assets/images/split/image935.o (.data); + build/OUTCODE/assets/images/split/image936.o (.data); + build/OUTCODE/assets/images/split/image937.o (.data); + build/OUTCODE/assets/images/split/image938.o (.data); + build/OUTCODE/assets/images/split/image939.o (.data); + build/OUTCODE/assets/images/split/image940.o (.data); + build/OUTCODE/assets/images/split/image941.o (.data); + build/OUTCODE/assets/images/split/image942.o (.data); + build/OUTCODE/assets/images/split/image943.o (.data); + build/OUTCODE/assets/images/split/image944.o (.data); + build/OUTCODE/assets/images/split/image945.o (.data); + build/OUTCODE/assets/images/split/image946.o (.data); + build/OUTCODE/assets/images/split/image947.o (.data); + build/OUTCODE/assets/images/split/image948.o (.data); + build/OUTCODE/assets/images/split/image949.o (.data); + build/OUTCODE/assets/images/split/image950.o (.data); + build/OUTCODE/assets/images/split/image951.o (.data); + build/OUTCODE/assets/images/split/image952.o (.data); + build/OUTCODE/assets/images/split/image953.o (.data); + build/OUTCODE/assets/images/split/image954.o (.data); + build/OUTCODE/assets/images/split/image955.o (.data); + build/OUTCODE/assets/images/split/image956.o (.data); + build/OUTCODE/assets/images/split/image957.o (.data); + build/OUTCODE/assets/images/split/image958.o (.data); + build/OUTCODE/assets/images/split/image959.o (.data); + build/OUTCODE/assets/images/split/image960.o (.data); + build/OUTCODE/assets/images/split/image961.o (.data); + build/OUTCODE/assets/images/split/image962.o (.data); + build/OUTCODE/assets/images/split/image963.o (.data); + build/OUTCODE/assets/images/split/image964.o (.data); + build/OUTCODE/assets/images/split/image965.o (.data); + build/OUTCODE/assets/images/split/image966.o (.data); + build/OUTCODE/assets/images/split/image967.o (.data); + build/OUTCODE/assets/images/split/image968.o (.data); + build/OUTCODE/assets/images/split/image969.o (.data); + build/OUTCODE/assets/images/split/image970.o (.data); + build/OUTCODE/assets/images/split/image971.o (.data); + build/OUTCODE/assets/images/split/image972.o (.data); + build/OUTCODE/assets/images/split/image973.o (.data); + build/OUTCODE/assets/images/split/image974.o (.data); + build/OUTCODE/assets/images/split/image975.o (.data); + build/OUTCODE/assets/images/split/image976.o (.data); + build/OUTCODE/assets/images/split/image977.o (.data); + build/OUTCODE/assets/images/split/image978.o (.data); + build/OUTCODE/assets/images/split/image979.o (.data); + build/OUTCODE/assets/images/split/image980.o (.data); + build/OUTCODE/assets/images/split/image981.o (.data); + build/OUTCODE/assets/images/split/image982.o (.data); + build/OUTCODE/assets/images/split/image983.o (.data); + build/OUTCODE/assets/images/split/image984.o (.data); + build/OUTCODE/assets/images/split/image985.o (.data); + build/OUTCODE/assets/images/split/image986.o (.data); + build/OUTCODE/assets/images/split/image987.o (.data); + build/OUTCODE/assets/images/split/image988.o (.data); + build/OUTCODE/assets/images/split/image989.o (.data); + build/OUTCODE/assets/images/split/image990.o (.data); + build/OUTCODE/assets/images/split/image991.o (.data); + build/OUTCODE/assets/images/split/image992.o (.data); + build/OUTCODE/assets/images/split/image993.o (.data); + build/OUTCODE/assets/images/split/image994.o (.data); + build/OUTCODE/assets/images/split/image995.o (.data); + build/OUTCODE/assets/images/split/image996.o (.data); + build/OUTCODE/assets/images/split/image997.o (.data); + build/OUTCODE/assets/images/split/image998.o (.data); + build/OUTCODE/assets/images/split/image999.o (.data); + build/OUTCODE/assets/images/split/image1000.o (.data); + build/OUTCODE/assets/images/split/image1001.o (.data); + build/OUTCODE/assets/images/split/image1002.o (.data); + build/OUTCODE/assets/images/split/image1003.o (.data); + build/OUTCODE/assets/images/split/image1004.o (.data); + build/OUTCODE/assets/images/split/image1005.o (.data); + build/OUTCODE/assets/images/split/image1006.o (.data); + build/OUTCODE/assets/images/split/image1007.o (.data); + build/OUTCODE/assets/images/split/image1008.o (.data); + build/OUTCODE/assets/images/split/image1009.o (.data); + build/OUTCODE/assets/images/split/image1010.o (.data); + build/OUTCODE/assets/images/split/image1011.o (.data); + build/OUTCODE/assets/images/split/image1012.o (.data); + build/OUTCODE/assets/images/split/image1013.o (.data); + build/OUTCODE/assets/images/split/image1014.o (.data); + build/OUTCODE/assets/images/split/image1015.o (.data); + build/OUTCODE/assets/images/split/image1016.o (.data); + build/OUTCODE/assets/images/split/image1017.o (.data); + build/OUTCODE/assets/images/split/image1018.o (.data); + build/OUTCODE/assets/images/split/image1019.o (.data); + build/OUTCODE/assets/images/split/image1020.o (.data); + build/OUTCODE/assets/images/split/image1021.o (.data); + build/OUTCODE/assets/images/split/image1022.o (.data); + build/OUTCODE/assets/images/split/image1023.o (.data); + build/OUTCODE/assets/images/split/image1024.o (.data); + build/OUTCODE/assets/images/split/image1025.o (.data); + build/OUTCODE/assets/images/split/image1026.o (.data); + build/OUTCODE/assets/images/split/image1027.o (.data); + build/OUTCODE/assets/images/split/image1028.o (.data); + build/OUTCODE/assets/images/split/image1029.o (.data); + build/OUTCODE/assets/images/split/image1030.o (.data); + build/OUTCODE/assets/images/split/image1031.o (.data); + build/OUTCODE/assets/images/split/image1032.o (.data); + build/OUTCODE/assets/images/split/image1033.o (.data); + build/OUTCODE/assets/images/split/image1034.o (.data); + build/OUTCODE/assets/images/split/image1035.o (.data); + build/OUTCODE/assets/images/split/image1036.o (.data); + build/OUTCODE/assets/images/split/image1037.o (.data); + build/OUTCODE/assets/images/split/image1038.o (.data); + build/OUTCODE/assets/images/split/image1039.o (.data); + build/OUTCODE/assets/images/split/image1040.o (.data); + build/OUTCODE/assets/images/split/image1041.o (.data); + build/OUTCODE/assets/images/split/image1042.o (.data); + build/OUTCODE/assets/images/split/image1043.o (.data); + build/OUTCODE/assets/images/split/image1044.o (.data); + build/OUTCODE/assets/images/split/image1045.o (.data); + build/OUTCODE/assets/images/split/image1046.o (.data); + build/OUTCODE/assets/images/split/image1047.o (.data); + build/OUTCODE/assets/images/split/image1048.o (.data); + build/OUTCODE/assets/images/split/image1049.o (.data); + build/OUTCODE/assets/images/split/image1050.o (.data); + build/OUTCODE/assets/images/split/image1051.o (.data); + build/OUTCODE/assets/images/split/image1052.o (.data); + build/OUTCODE/assets/images/split/image1053.o (.data); + build/OUTCODE/assets/images/split/image1054.o (.data); + build/OUTCODE/assets/images/split/image1055.o (.data); + build/OUTCODE/assets/images/split/image1056.o (.data); + build/OUTCODE/assets/images/split/image1057.o (.data); + build/OUTCODE/assets/images/split/image1058.o (.data); + build/OUTCODE/assets/images/split/image1059.o (.data); + build/OUTCODE/assets/images/split/image1060.o (.data); + build/OUTCODE/assets/images/split/image1061.o (.data); + build/OUTCODE/assets/images/split/image1062.o (.data); + build/OUTCODE/assets/images/split/image1063.o (.data); + build/OUTCODE/assets/images/split/image1064.o (.data); + build/OUTCODE/assets/images/split/image1065.o (.data); + build/OUTCODE/assets/images/split/image1066.o (.data); + build/OUTCODE/assets/images/split/image1067.o (.data); + build/OUTCODE/assets/images/split/image1068.o (.data); + build/OUTCODE/assets/images/split/image1069.o (.data); + build/OUTCODE/assets/images/split/image1070.o (.data); + build/OUTCODE/assets/images/split/image1071.o (.data); + build/OUTCODE/assets/images/split/image1072.o (.data); + build/OUTCODE/assets/images/split/image1073.o (.data); + build/OUTCODE/assets/images/split/image1074.o (.data); + build/OUTCODE/assets/images/split/image1075.o (.data); + build/OUTCODE/assets/images/split/image1076.o (.data); + build/OUTCODE/assets/images/split/image1077.o (.data); + build/OUTCODE/assets/images/split/image1078.o (.data); + build/OUTCODE/assets/images/split/image1079.o (.data); + build/OUTCODE/assets/images/split/image1080.o (.data); + build/OUTCODE/assets/images/split/image1081.o (.data); + build/OUTCODE/assets/images/split/image1082.o (.data); + build/OUTCODE/assets/images/split/image1083.o (.data); + build/OUTCODE/assets/images/split/image1084.o (.data); + build/OUTCODE/assets/images/split/image1085.o (.data); + build/OUTCODE/assets/images/split/image1086.o (.data); + build/OUTCODE/assets/images/split/image1087.o (.data); + build/OUTCODE/assets/images/split/image1088.o (.data); + build/OUTCODE/assets/images/split/image1089.o (.data); + build/OUTCODE/assets/images/split/image1090.o (.data); + build/OUTCODE/assets/images/split/image1091.o (.data); + build/OUTCODE/assets/images/split/image1092.o (.data); + build/OUTCODE/assets/images/split/image1093.o (.data); + build/OUTCODE/assets/images/split/image1094.o (.data); + build/OUTCODE/assets/images/split/image1095.o (.data); + build/OUTCODE/assets/images/split/image1096.o (.data); + build/OUTCODE/assets/images/split/image1097.o (.data); + build/OUTCODE/assets/images/split/image1098.o (.data); + build/OUTCODE/assets/images/split/image1099.o (.data); + build/OUTCODE/assets/images/split/image1100.o (.data); + build/OUTCODE/assets/images/split/image1101.o (.data); + build/OUTCODE/assets/images/split/image1102.o (.data); + build/OUTCODE/assets/images/split/image1103.o (.data); + build/OUTCODE/assets/images/split/image1104.o (.data); + build/OUTCODE/assets/images/split/image1105.o (.data); + build/OUTCODE/assets/images/split/image1106.o (.data); + build/OUTCODE/assets/images/split/image1107.o (.data); + build/OUTCODE/assets/images/split/image1108.o (.data); + build/OUTCODE/assets/images/split/image1109.o (.data); + build/OUTCODE/assets/images/split/image1110.o (.data); + build/OUTCODE/assets/images/split/image1111.o (.data); + build/OUTCODE/assets/images/split/image1112.o (.data); + build/OUTCODE/assets/images/split/image1113.o (.data); + build/OUTCODE/assets/images/split/image1114.o (.data); + build/OUTCODE/assets/images/split/image1115.o (.data); + build/OUTCODE/assets/images/split/image1116.o (.data); + build/OUTCODE/assets/images/split/image1117.o (.data); + build/OUTCODE/assets/images/split/image1118.o (.data); + build/OUTCODE/assets/images/split/image1119.o (.data); + build/OUTCODE/assets/images/split/image1120.o (.data); + build/OUTCODE/assets/images/split/image1121.o (.data); + build/OUTCODE/assets/images/split/image1122.o (.data); + build/OUTCODE/assets/images/split/image1123.o (.data); + build/OUTCODE/assets/images/split/image1124.o (.data); + build/OUTCODE/assets/images/split/image1125.o (.data); + build/OUTCODE/assets/images/split/image1126.o (.data); + build/OUTCODE/assets/images/split/image1127.o (.data); + build/OUTCODE/assets/images/split/image1128.o (.data); + build/OUTCODE/assets/images/split/image1129.o (.data); + build/OUTCODE/assets/images/split/image1130.o (.data); + build/OUTCODE/assets/images/split/image1131.o (.data); + build/OUTCODE/assets/images/split/image1132.o (.data); + build/OUTCODE/assets/images/split/image1133.o (.data); + build/OUTCODE/assets/images/split/image1134.o (.data); + build/OUTCODE/assets/images/split/image1135.o (.data); + build/OUTCODE/assets/images/split/image1136.o (.data); + build/OUTCODE/assets/images/split/image1137.o (.data); + build/OUTCODE/assets/images/split/image1138.o (.data); + build/OUTCODE/assets/images/split/image1139.o (.data); + build/OUTCODE/assets/images/split/image1140.o (.data); + build/OUTCODE/assets/images/split/image1141.o (.data); + build/OUTCODE/assets/images/split/image1142.o (.data); + build/OUTCODE/assets/images/split/image1143.o (.data); + build/OUTCODE/assets/images/split/image1144.o (.data); + build/OUTCODE/assets/images/split/image1145.o (.data); + build/OUTCODE/assets/images/split/image1146.o (.data); + build/OUTCODE/assets/images/split/image1147.o (.data); + build/OUTCODE/assets/images/split/image1148.o (.data); + build/OUTCODE/assets/images/split/image1149.o (.data); + build/OUTCODE/assets/images/split/image1150.o (.data); + build/OUTCODE/assets/images/split/image1151.o (.data); + build/OUTCODE/assets/images/split/image1152.o (.data); + build/OUTCODE/assets/images/split/image1153.o (.data); + build/OUTCODE/assets/images/split/image1154.o (.data); + build/OUTCODE/assets/images/split/image1155.o (.data); + build/OUTCODE/assets/images/split/image1156.o (.data); + build/OUTCODE/assets/images/split/image1157.o (.data); + build/OUTCODE/assets/images/split/image1158.o (.data); + build/OUTCODE/assets/images/split/image1159.o (.data); + build/OUTCODE/assets/images/split/image1160.o (.data); + build/OUTCODE/assets/images/split/image1161.o (.data); + build/OUTCODE/assets/images/split/image1162.o (.data); + build/OUTCODE/assets/images/split/image1163.o (.data); + build/OUTCODE/assets/images/split/image1164.o (.data); + build/OUTCODE/assets/images/split/image1165.o (.data); + build/OUTCODE/assets/images/split/image1166.o (.data); + build/OUTCODE/assets/images/split/image1167.o (.data); + build/OUTCODE/assets/images/split/image1168.o (.data); + build/OUTCODE/assets/images/split/image1169.o (.data); + build/OUTCODE/assets/images/split/image1170.o (.data); + build/OUTCODE/assets/images/split/image1171.o (.data); + build/OUTCODE/assets/images/split/image1172.o (.data); + build/OUTCODE/assets/images/split/image1173.o (.data); + build/OUTCODE/assets/images/split/image1174.o (.data); + build/OUTCODE/assets/images/split/image1175.o (.data); + build/OUTCODE/assets/images/split/image1176.o (.data); + build/OUTCODE/assets/images/split/image1177.o (.data); + build/OUTCODE/assets/images/split/image1178.o (.data); + build/OUTCODE/assets/images/split/image1179.o (.data); + build/OUTCODE/assets/images/split/image1180.o (.data); + build/OUTCODE/assets/images/split/image1181.o (.data); + build/OUTCODE/assets/images/split/image1182.o (.data); + build/OUTCODE/assets/images/split/image1183.o (.data); + build/OUTCODE/assets/images/split/image1184.o (.data); + build/OUTCODE/assets/images/split/image1185.o (.data); + build/OUTCODE/assets/images/split/image1186.o (.data); + build/OUTCODE/assets/images/split/image1187.o (.data); + build/OUTCODE/assets/images/split/image1188.o (.data); + build/OUTCODE/assets/images/split/image1189.o (.data); + build/OUTCODE/assets/images/split/image1190.o (.data); + build/OUTCODE/assets/images/split/image1191.o (.data); + build/OUTCODE/assets/images/split/image1192.o (.data); + build/OUTCODE/assets/images/split/image1193.o (.data); + build/OUTCODE/assets/images/split/image1194.o (.data); + build/OUTCODE/assets/images/split/image1195.o (.data); + build/OUTCODE/assets/images/split/image1196.o (.data); + build/OUTCODE/assets/images/split/image1197.o (.data); + build/OUTCODE/assets/images/split/image1198.o (.data); + build/OUTCODE/assets/images/split/image1199.o (.data); + build/OUTCODE/assets/images/split/image1200.o (.data); + build/OUTCODE/assets/images/split/image1201.o (.data); + build/OUTCODE/assets/images/split/image1202.o (.data); + build/OUTCODE/assets/images/split/image1203.o (.data); + build/OUTCODE/assets/images/split/image1204.o (.data); + build/OUTCODE/assets/images/split/image1205.o (.data); + build/OUTCODE/assets/images/split/image1206.o (.data); + build/OUTCODE/assets/images/split/image1207.o (.data); + build/OUTCODE/assets/images/split/image1208.o (.data); + build/OUTCODE/assets/images/split/image1209.o (.data); + build/OUTCODE/assets/images/split/image1210.o (.data); + build/OUTCODE/assets/images/split/image1211.o (.data); + build/OUTCODE/assets/images/split/image1212.o (.data); + build/OUTCODE/assets/images/split/image1213.o (.data); + build/OUTCODE/assets/images/split/image1214.o (.data); + build/OUTCODE/assets/images/split/image1215.o (.data); + build/OUTCODE/assets/images/split/image1216.o (.data); + build/OUTCODE/assets/images/split/image1217.o (.data); + build/OUTCODE/assets/images/split/image1218.o (.data); + build/OUTCODE/assets/images/split/image1219.o (.data); + build/OUTCODE/assets/images/split/image1220.o (.data); + build/OUTCODE/assets/images/split/image1221.o (.data); + build/OUTCODE/assets/images/split/image1222.o (.data); + build/OUTCODE/assets/images/split/image1223.o (.data); + build/OUTCODE/assets/images/split/image1224.o (.data); + build/OUTCODE/assets/images/split/image1225.o (.data); + build/OUTCODE/assets/images/split/image1226.o (.data); + build/OUTCODE/assets/images/split/image1227.o (.data); + build/OUTCODE/assets/images/split/image1228.o (.data); + build/OUTCODE/assets/images/split/image1229.o (.data); + build/OUTCODE/assets/images/split/image1230.o (.data); + build/OUTCODE/assets/images/split/image1231.o (.data); + build/OUTCODE/assets/images/split/image1232.o (.data); + build/OUTCODE/assets/images/split/image1233.o (.data); + build/OUTCODE/assets/images/split/image1234.o (.data); + build/OUTCODE/assets/images/split/image1235.o (.data); + build/OUTCODE/assets/images/split/image1236.o (.data); + build/OUTCODE/assets/images/split/image1237.o (.data); + build/OUTCODE/assets/images/split/image1238.o (.data); + build/OUTCODE/assets/images/split/image1239.o (.data); + build/OUTCODE/assets/images/split/image1240.o (.data); + build/OUTCODE/assets/images/split/image1241.o (.data); + build/OUTCODE/assets/images/split/image1242.o (.data); + build/OUTCODE/assets/images/split/image1243.o (.data); + build/OUTCODE/assets/images/split/image1244.o (.data); + build/OUTCODE/assets/images/split/image1245.o (.data); + build/OUTCODE/assets/images/split/image1246.o (.data); + build/OUTCODE/assets/images/split/image1247.o (.data); + build/OUTCODE/assets/images/split/image1248.o (.data); + build/OUTCODE/assets/images/split/image1249.o (.data); + build/OUTCODE/assets/images/split/image1250.o (.data); + build/OUTCODE/assets/images/split/image1251.o (.data); + build/OUTCODE/assets/images/split/image1252.o (.data); + build/OUTCODE/assets/images/split/image1253.o (.data); + build/OUTCODE/assets/images/split/image1254.o (.data); + build/OUTCODE/assets/images/split/image1255.o (.data); + build/OUTCODE/assets/images/split/image1256.o (.data); + build/OUTCODE/assets/images/split/image1257.o (.data); + build/OUTCODE/assets/images/split/image1258.o (.data); + build/OUTCODE/assets/images/split/image1259.o (.data); + build/OUTCODE/assets/images/split/image1260.o (.data); + build/OUTCODE/assets/images/split/image1261.o (.data); + build/OUTCODE/assets/images/split/image1262.o (.data); + build/OUTCODE/assets/images/split/image1263.o (.data); + build/OUTCODE/assets/images/split/image1264.o (.data); + build/OUTCODE/assets/images/split/image1265.o (.data); + build/OUTCODE/assets/images/split/image1266.o (.data); + build/OUTCODE/assets/images/split/image1267.o (.data); + build/OUTCODE/assets/images/split/image1268.o (.data); + build/OUTCODE/assets/images/split/image1269.o (.data); + build/OUTCODE/assets/images/split/image1270.o (.data); + build/OUTCODE/assets/images/split/image1271.o (.data); + build/OUTCODE/assets/images/split/image1272.o (.data); + build/OUTCODE/assets/images/split/image1273.o (.data); + build/OUTCODE/assets/images/split/image1274.o (.data); + build/OUTCODE/assets/images/split/image1275.o (.data); + build/OUTCODE/assets/images/split/image1276.o (.data); + build/OUTCODE/assets/images/split/image1277.o (.data); + build/OUTCODE/assets/images/split/image1278.o (.data); + build/OUTCODE/assets/images/split/image1279.o (.data); + build/OUTCODE/assets/images/split/image1280.o (.data); + build/OUTCODE/assets/images/split/image1281.o (.data); + build/OUTCODE/assets/images/split/image1282.o (.data); + build/OUTCODE/assets/images/split/image1283.o (.data); + build/OUTCODE/assets/images/split/image1284.o (.data); + build/OUTCODE/assets/images/split/image1285.o (.data); + build/OUTCODE/assets/images/split/image1286.o (.data); + build/OUTCODE/assets/images/split/image1287.o (.data); + build/OUTCODE/assets/images/split/image1288.o (.data); + build/OUTCODE/assets/images/split/image1289.o (.data); + build/OUTCODE/assets/images/split/image1290.o (.data); + build/OUTCODE/assets/images/split/image1291.o (.data); + build/OUTCODE/assets/images/split/image1292.o (.data); + build/OUTCODE/assets/images/split/image1293.o (.data); + build/OUTCODE/assets/images/split/image1294.o (.data); + build/OUTCODE/assets/images/split/image1295.o (.data); + build/OUTCODE/assets/images/split/image1296.o (.data); + build/OUTCODE/assets/images/split/image1297.o (.data); + build/OUTCODE/assets/images/split/image1298.o (.data); + build/OUTCODE/assets/images/split/image1299.o (.data); + build/OUTCODE/assets/images/split/image1300.o (.data); + build/OUTCODE/assets/images/split/image1301.o (.data); + build/OUTCODE/assets/images/split/image1302.o (.data); + build/OUTCODE/assets/images/split/image1303.o (.data); + build/OUTCODE/assets/images/split/image1304.o (.data); + build/OUTCODE/assets/images/split/image1305.o (.data); + build/OUTCODE/assets/images/split/image1306.o (.data); + build/OUTCODE/assets/images/split/image1307.o (.data); + build/OUTCODE/assets/images/split/image1308.o (.data); + build/OUTCODE/assets/images/split/image1309.o (.data); + build/OUTCODE/assets/images/split/image1310.o (.data); + build/OUTCODE/assets/images/split/image1311.o (.data); + build/OUTCODE/assets/images/split/image1312.o (.data); + build/OUTCODE/assets/images/split/image1313.o (.data); + build/OUTCODE/assets/images/split/image1314.o (.data); + build/OUTCODE/assets/images/split/image1315.o (.data); + build/OUTCODE/assets/images/split/image1316.o (.data); + build/OUTCODE/assets/images/split/image1317.o (.data); + build/OUTCODE/assets/images/split/image1318.o (.data); + build/OUTCODE/assets/images/split/image1319.o (.data); + build/OUTCODE/assets/images/split/image1320.o (.data); + build/OUTCODE/assets/images/split/image1321.o (.data); + build/OUTCODE/assets/images/split/image1322.o (.data); + build/OUTCODE/assets/images/split/image1323.o (.data); + build/OUTCODE/assets/images/split/image1324.o (.data); + build/OUTCODE/assets/images/split/image1325.o (.data); + build/OUTCODE/assets/images/split/image1326.o (.data); + build/OUTCODE/assets/images/split/image1327.o (.data); + build/OUTCODE/assets/images/split/image1328.o (.data); + build/OUTCODE/assets/images/split/image1329.o (.data); + build/OUTCODE/assets/images/split/image1330.o (.data); + build/OUTCODE/assets/images/split/image1331.o (.data); + build/OUTCODE/assets/images/split/image1332.o (.data); + build/OUTCODE/assets/images/split/image1333.o (.data); + build/OUTCODE/assets/images/split/image1334.o (.data); + build/OUTCODE/assets/images/split/image1335.o (.data); + build/OUTCODE/assets/images/split/image1336.o (.data); + build/OUTCODE/assets/images/split/image1337.o (.data); + build/OUTCODE/assets/images/split/image1338.o (.data); + build/OUTCODE/assets/images/split/image1339.o (.data); + build/OUTCODE/assets/images/split/image1340.o (.data); + build/OUTCODE/assets/images/split/image1341.o (.data); + build/OUTCODE/assets/images/split/image1342.o (.data); + build/OUTCODE/assets/images/split/image1343.o (.data); + build/OUTCODE/assets/images/split/image1344.o (.data); + build/OUTCODE/assets/images/split/image1345.o (.data); + build/OUTCODE/assets/images/split/image1346.o (.data); + build/OUTCODE/assets/images/split/image1347.o (.data); + build/OUTCODE/assets/images/split/image1348.o (.data); + build/OUTCODE/assets/images/split/image1349.o (.data); + build/OUTCODE/assets/images/split/image1350.o (.data); + build/OUTCODE/assets/images/split/image1351.o (.data); + build/OUTCODE/assets/images/split/image1352.o (.data); + build/OUTCODE/assets/images/split/image1353.o (.data); + build/OUTCODE/assets/images/split/image1354.o (.data); + build/OUTCODE/assets/images/split/image1355.o (.data); + build/OUTCODE/assets/images/split/image1356.o (.data); + build/OUTCODE/assets/images/split/image1357.o (.data); + build/OUTCODE/assets/images/split/image1358.o (.data); + build/OUTCODE/assets/images/split/image1359.o (.data); + build/OUTCODE/assets/images/split/image1360.o (.data); + build/OUTCODE/assets/images/split/image1361.o (.data); + build/OUTCODE/assets/images/split/image1362.o (.data); + build/OUTCODE/assets/images/split/image1363.o (.data); + build/OUTCODE/assets/images/split/image1364.o (.data); + build/OUTCODE/assets/images/split/image1365.o (.data); + build/OUTCODE/assets/images/split/image1366.o (.data); + build/OUTCODE/assets/images/split/image1367.o (.data); + build/OUTCODE/assets/images/split/image1368.o (.data); + build/OUTCODE/assets/images/split/image1369.o (.data); + build/OUTCODE/assets/images/split/image1370.o (.data); + build/OUTCODE/assets/images/split/image1371.o (.data); + build/OUTCODE/assets/images/split/image1372.o (.data); + build/OUTCODE/assets/images/split/image1373.o (.data); + build/OUTCODE/assets/images/split/image1374.o (.data); + build/OUTCODE/assets/images/split/image1375.o (.data); + build/OUTCODE/assets/images/split/image1376.o (.data); + build/OUTCODE/assets/images/split/image1377.o (.data); + build/OUTCODE/assets/images/split/image1378.o (.data); + build/OUTCODE/assets/images/split/image1379.o (.data); + build/OUTCODE/assets/images/split/image1380.o (.data); + build/OUTCODE/assets/images/split/image1381.o (.data); + build/OUTCODE/assets/images/split/image1382.o (.data); + build/OUTCODE/assets/images/split/image1383.o (.data); + build/OUTCODE/assets/images/split/image1384.o (.data); + build/OUTCODE/assets/images/split/image1385.o (.data); + build/OUTCODE/assets/images/split/image1386.o (.data); + build/OUTCODE/assets/images/split/image1387.o (.data); + build/OUTCODE/assets/images/split/image1388.o (.data); + build/OUTCODE/assets/images/split/image1389.o (.data); + build/OUTCODE/assets/images/split/image1390.o (.data); + build/OUTCODE/assets/images/split/image1391.o (.data); + build/OUTCODE/assets/images/split/image1392.o (.data); + build/OUTCODE/assets/images/split/image1393.o (.data); + build/OUTCODE/assets/images/split/image1394.o (.data); + build/OUTCODE/assets/images/split/image1395.o (.data); + build/OUTCODE/assets/images/split/image1396.o (.data); + build/OUTCODE/assets/images/split/image1397.o (.data); + build/OUTCODE/assets/images/split/image1398.o (.data); + build/OUTCODE/assets/images/split/image1399.o (.data); + build/OUTCODE/assets/images/split/image1400.o (.data); + build/OUTCODE/assets/images/split/image1401.o (.data); + build/OUTCODE/assets/images/split/image1402.o (.data); + build/OUTCODE/assets/images/split/image1403.o (.data); + build/OUTCODE/assets/images/split/image1404.o (.data); + build/OUTCODE/assets/images/split/image1405.o (.data); + build/OUTCODE/assets/images/split/image1406.o (.data); + build/OUTCODE/assets/images/split/image1407.o (.data); + build/OUTCODE/assets/images/split/image1408.o (.data); + build/OUTCODE/assets/images/split/image1409.o (.data); + build/OUTCODE/assets/images/split/image1410.o (.data); + build/OUTCODE/assets/images/split/image1411.o (.data); + build/OUTCODE/assets/images/split/image1412.o (.data); + build/OUTCODE/assets/images/split/image1413.o (.data); + build/OUTCODE/assets/images/split/image1414.o (.data); + build/OUTCODE/assets/images/split/image1415.o (.data); + build/OUTCODE/assets/images/split/image1416.o (.data); + build/OUTCODE/assets/images/split/image1417.o (.data); + build/OUTCODE/assets/images/split/image1418.o (.data); + build/OUTCODE/assets/images/split/image1419.o (.data); + build/OUTCODE/assets/images/split/image1420.o (.data); + build/OUTCODE/assets/images/split/image1421.o (.data); + build/OUTCODE/assets/images/split/image1422.o (.data); + build/OUTCODE/assets/images/split/image1423.o (.data); + build/OUTCODE/assets/images/split/image1424.o (.data); + build/OUTCODE/assets/images/split/image1425.o (.data); + build/OUTCODE/assets/images/split/image1426.o (.data); + build/OUTCODE/assets/images/split/image1427.o (.data); + build/OUTCODE/assets/images/split/image1428.o (.data); + build/OUTCODE/assets/images/split/image1429.o (.data); + build/OUTCODE/assets/images/split/image1430.o (.data); + build/OUTCODE/assets/images/split/image1431.o (.data); + build/OUTCODE/assets/images/split/image1432.o (.data); + build/OUTCODE/assets/images/split/image1433.o (.data); + build/OUTCODE/assets/images/split/image1434.o (.data); + build/OUTCODE/assets/images/split/image1435.o (.data); + build/OUTCODE/assets/images/split/image1436.o (.data); + build/OUTCODE/assets/images/split/image1437.o (.data); + build/OUTCODE/assets/images/split/image1438.o (.data); + build/OUTCODE/assets/images/split/image1439.o (.data); + build/OUTCODE/assets/images/split/image1440.o (.data); + build/OUTCODE/assets/images/split/image1441.o (.data); + build/OUTCODE/assets/images/split/image1442.o (.data); + build/OUTCODE/assets/images/split/image1443.o (.data); + build/OUTCODE/assets/images/split/image1444.o (.data); + build/OUTCODE/assets/images/split/image1445.o (.data); + build/OUTCODE/assets/images/split/image1446.o (.data); + build/OUTCODE/assets/images/split/image1447.o (.data); + build/OUTCODE/assets/images/split/image1448.o (.data); + build/OUTCODE/assets/images/split/image1449.o (.data); + build/OUTCODE/assets/images/split/image1450.o (.data); + build/OUTCODE/assets/images/split/image1451.o (.data); + build/OUTCODE/assets/images/split/image1452.o (.data); + build/OUTCODE/assets/images/split/image1453.o (.data); + build/OUTCODE/assets/images/split/image1454.o (.data); + build/OUTCODE/assets/images/split/image1455.o (.data); + build/OUTCODE/assets/images/split/image1456.o (.data); + build/OUTCODE/assets/images/split/image1457.o (.data); + build/OUTCODE/assets/images/split/image1458.o (.data); + build/OUTCODE/assets/images/split/image1459.o (.data); + build/OUTCODE/assets/images/split/image1460.o (.data); + build/OUTCODE/assets/images/split/image1461.o (.data); + build/OUTCODE/assets/images/split/image1462.o (.data); + build/OUTCODE/assets/images/split/image1463.o (.data); + build/OUTCODE/assets/images/split/image1464.o (.data); + build/OUTCODE/assets/images/split/image1465.o (.data); + build/OUTCODE/assets/images/split/image1466.o (.data); + build/OUTCODE/assets/images/split/image1467.o (.data); + build/OUTCODE/assets/images/split/image1468.o (.data); + build/OUTCODE/assets/images/split/image1469.o (.data); + build/OUTCODE/assets/images/split/image1470.o (.data); + build/OUTCODE/assets/images/split/image1471.o (.data); + build/OUTCODE/assets/images/split/image1472.o (.data); + build/OUTCODE/assets/images/split/image1473.o (.data); + build/OUTCODE/assets/images/split/image1474.o (.data); + build/OUTCODE/assets/images/split/image1475.o (.data); + build/OUTCODE/assets/images/split/image1476.o (.data); + build/OUTCODE/assets/images/split/image1477.o (.data); + build/OUTCODE/assets/images/split/image1478.o (.data); + build/OUTCODE/assets/images/split/image1479.o (.data); + build/OUTCODE/assets/images/split/image1480.o (.data); + build/OUTCODE/assets/images/split/image1481.o (.data); + build/OUTCODE/assets/images/split/image1482.o (.data); + build/OUTCODE/assets/images/split/image1483.o (.data); + build/OUTCODE/assets/images/split/image1484.o (.data); + build/OUTCODE/assets/images/split/image1485.o (.data); + build/OUTCODE/assets/images/split/image1486.o (.data); + build/OUTCODE/assets/images/split/image1487.o (.data); + build/OUTCODE/assets/images/split/image1488.o (.data); + build/OUTCODE/assets/images/split/image1489.o (.data); + build/OUTCODE/assets/images/split/image1490.o (.data); + build/OUTCODE/assets/images/split/image1491.o (.data); + build/OUTCODE/assets/images/split/image1492.o (.data); + build/OUTCODE/assets/images/split/image1493.o (.data); + build/OUTCODE/assets/images/split/image1494.o (.data); + build/OUTCODE/assets/images/split/image1495.o (.data); + build/OUTCODE/assets/images/split/image1496.o (.data); + build/OUTCODE/assets/images/split/image1497.o (.data); + build/OUTCODE/assets/images/split/image1498.o (.data); + build/OUTCODE/assets/images/split/image1499.o (.data); + build/OUTCODE/assets/images/split/image1500.o (.data); + build/OUTCODE/assets/images/split/image1501.o (.data); + build/OUTCODE/assets/images/split/image1502.o (.data); + build/OUTCODE/assets/images/split/image1503.o (.data); + build/OUTCODE/assets/images/split/image1504.o (.data); + build/OUTCODE/assets/images/split/image1505.o (.data); + build/OUTCODE/assets/images/split/image1506.o (.data); + build/OUTCODE/assets/images/split/image1507.o (.data); + build/OUTCODE/assets/images/split/image1508.o (.data); + build/OUTCODE/assets/images/split/image1509.o (.data); + build/OUTCODE/assets/images/split/image1510.o (.data); + build/OUTCODE/assets/images/split/image1511.o (.data); + build/OUTCODE/assets/images/split/image1512.o (.data); + build/OUTCODE/assets/images/split/image1513.o (.data); + build/OUTCODE/assets/images/split/image1514.o (.data); + build/OUTCODE/assets/images/split/image1515.o (.data); + build/OUTCODE/assets/images/split/image1516.o (.data); + build/OUTCODE/assets/images/split/image1517.o (.data); + build/OUTCODE/assets/images/split/image1518.o (.data); + build/OUTCODE/assets/images/split/image1519.o (.data); + build/OUTCODE/assets/images/split/image1520.o (.data); + build/OUTCODE/assets/images/split/image1521.o (.data); + build/OUTCODE/assets/images/split/image1522.o (.data); + build/OUTCODE/assets/images/split/image1523.o (.data); + build/OUTCODE/assets/images/split/image1524.o (.data); + build/OUTCODE/assets/images/split/image1525.o (.data); + build/OUTCODE/assets/images/split/image1526.o (.data); + build/OUTCODE/assets/images/split/image1527.o (.data); + build/OUTCODE/assets/images/split/image1528.o (.data); + build/OUTCODE/assets/images/split/image1529.o (.data); + build/OUTCODE/assets/images/split/image1530.o (.data); + build/OUTCODE/assets/images/split/image1531.o (.data); + build/OUTCODE/assets/images/split/image1532.o (.data); + build/OUTCODE/assets/images/split/image1533.o (.data); + build/OUTCODE/assets/images/split/image1534.o (.data); + build/OUTCODE/assets/images/split/image1535.o (.data); + build/OUTCODE/assets/images/split/image1536.o (.data); + build/OUTCODE/assets/images/split/image1537.o (.data); + build/OUTCODE/assets/images/split/image1538.o (.data); + build/OUTCODE/assets/images/split/image1539.o (.data); + build/OUTCODE/assets/images/split/image1540.o (.data); + build/OUTCODE/assets/images/split/image1541.o (.data); + build/OUTCODE/assets/images/split/image1542.o (.data); + build/OUTCODE/assets/images/split/image1543.o (.data); + build/OUTCODE/assets/images/split/image1544.o (.data); + build/OUTCODE/assets/images/split/image1545.o (.data); + build/OUTCODE/assets/images/split/image1546.o (.data); + build/OUTCODE/assets/images/split/image1547.o (.data); + build/OUTCODE/assets/images/split/image1548.o (.data); + build/OUTCODE/assets/images/split/image1549.o (.data); + build/OUTCODE/assets/images/split/image1550.o (.data); + build/OUTCODE/assets/images/split/image1551.o (.data); + build/OUTCODE/assets/images/split/image1552.o (.data); + build/OUTCODE/assets/images/split/image1553.o (.data); + build/OUTCODE/assets/images/split/image1554.o (.data); + build/OUTCODE/assets/images/split/image1555.o (.data); + build/OUTCODE/assets/images/split/image1556.o (.data); + build/OUTCODE/assets/images/split/image1557.o (.data); + build/OUTCODE/assets/images/split/image1558.o (.data); + build/OUTCODE/assets/images/split/image1559.o (.data); + build/OUTCODE/assets/images/split/image1560.o (.data); + build/OUTCODE/assets/images/split/image1561.o (.data); + build/OUTCODE/assets/images/split/image1562.o (.data); + build/OUTCODE/assets/images/split/image1563.o (.data); + build/OUTCODE/assets/images/split/image1564.o (.data); + build/OUTCODE/assets/images/split/image1565.o (.data); + build/OUTCODE/assets/images/split/image1566.o (.data); + build/OUTCODE/assets/images/split/image1567.o (.data); + build/OUTCODE/assets/images/split/image1568.o (.data); + build/OUTCODE/assets/images/split/image1569.o (.data); + build/OUTCODE/assets/images/split/image1570.o (.data); + build/OUTCODE/assets/images/split/image1571.o (.data); + build/OUTCODE/assets/images/split/image1572.o (.data); + build/OUTCODE/assets/images/split/image1573.o (.data); + build/OUTCODE/assets/images/split/image1574.o (.data); + build/OUTCODE/assets/images/split/image1575.o (.data); + build/OUTCODE/assets/images/split/image1576.o (.data); + build/OUTCODE/assets/images/split/image1577.o (.data); + build/OUTCODE/assets/images/split/image1578.o (.data); + build/OUTCODE/assets/images/split/image1579.o (.data); + build/OUTCODE/assets/images/split/image1580.o (.data); + build/OUTCODE/assets/images/split/image1581.o (.data); + build/OUTCODE/assets/images/split/image1582.o (.data); + build/OUTCODE/assets/images/split/image1583.o (.data); + build/OUTCODE/assets/images/split/image1584.o (.data); + build/OUTCODE/assets/images/split/image1585.o (.data); + build/OUTCODE/assets/images/split/image1586.o (.data); + build/OUTCODE/assets/images/split/image1587.o (.data); + build/OUTCODE/assets/images/split/image1588.o (.data); + build/OUTCODE/assets/images/split/image1589.o (.data); + build/OUTCODE/assets/images/split/image1590.o (.data); + build/OUTCODE/assets/images/split/image1591.o (.data); + build/OUTCODE/assets/images/split/image1592.o (.data); + build/OUTCODE/assets/images/split/image1593.o (.data); + build/OUTCODE/assets/images/split/image1594.o (.data); + build/OUTCODE/assets/images/split/image1595.o (.data); + build/OUTCODE/assets/images/split/image1596.o (.data); + build/OUTCODE/assets/images/split/image1597.o (.data); + build/OUTCODE/assets/images/split/image1598.o (.data); + build/OUTCODE/assets/images/split/image1599.o (.data); + build/OUTCODE/assets/images/split/image1600.o (.data); + build/OUTCODE/assets/images/split/image1601.o (.data); + build/OUTCODE/assets/images/split/image1602.o (.data); + build/OUTCODE/assets/images/split/image1603.o (.data); + build/OUTCODE/assets/images/split/image1604.o (.data); + build/OUTCODE/assets/images/split/image1605.o (.data); + build/OUTCODE/assets/images/split/image1606.o (.data); + build/OUTCODE/assets/images/split/image1607.o (.data); + build/OUTCODE/assets/images/split/image1608.o (.data); + build/OUTCODE/assets/images/split/image1609.o (.data); + build/OUTCODE/assets/images/split/image1610.o (.data); + build/OUTCODE/assets/images/split/image1611.o (.data); + build/OUTCODE/assets/images/split/image1612.o (.data); + build/OUTCODE/assets/images/split/image1613.o (.data); + build/OUTCODE/assets/images/split/image1614.o (.data); + build/OUTCODE/assets/images/split/image1615.o (.data); + build/OUTCODE/assets/images/split/image1616.o (.data); + build/OUTCODE/assets/images/split/image1617.o (.data); + build/OUTCODE/assets/images/split/image1618.o (.data); + build/OUTCODE/assets/images/split/image1619.o (.data); + build/OUTCODE/assets/images/split/image1620.o (.data); + build/OUTCODE/assets/images/split/image1621.o (.data); + build/OUTCODE/assets/images/split/image1622.o (.data); + build/OUTCODE/assets/images/split/image1623.o (.data); + build/OUTCODE/assets/images/split/image1624.o (.data); + build/OUTCODE/assets/images/split/image1625.o (.data); + build/OUTCODE/assets/images/split/image1626.o (.data); + build/OUTCODE/assets/images/split/image1627.o (.data); + build/OUTCODE/assets/images/split/image1628.o (.data); + build/OUTCODE/assets/images/split/image1629.o (.data); + build/OUTCODE/assets/images/split/image1630.o (.data); + build/OUTCODE/assets/images/split/image1631.o (.data); + build/OUTCODE/assets/images/split/image1632.o (.data); + build/OUTCODE/assets/images/split/image1633.o (.data); + build/OUTCODE/assets/images/split/image1634.o (.data); + build/OUTCODE/assets/images/split/image1635.o (.data); + build/OUTCODE/assets/images/split/image1636.o (.data); + build/OUTCODE/assets/images/split/image1637.o (.data); + build/OUTCODE/assets/images/split/image1638.o (.data); + build/OUTCODE/assets/images/split/image1639.o (.data); + build/OUTCODE/assets/images/split/image1640.o (.data); + build/OUTCODE/assets/images/split/image1641.o (.data); + build/OUTCODE/assets/images/split/image1642.o (.data); + build/OUTCODE/assets/images/split/image1643.o (.data); + build/OUTCODE/assets/images/split/image1644.o (.data); + build/OUTCODE/assets/images/split/image1645.o (.data); + build/OUTCODE/assets/images/split/image1646.o (.data); + build/OUTCODE/assets/images/split/image1647.o (.data); + build/OUTCODE/assets/images/split/image1648.o (.data); + build/OUTCODE/assets/images/split/image1649.o (.data); + build/OUTCODE/assets/images/split/image1650.o (.data); + build/OUTCODE/assets/images/split/image1651.o (.data); + build/OUTCODE/assets/images/split/image1652.o (.data); + build/OUTCODE/assets/images/split/image1653.o (.data); + build/OUTCODE/assets/images/split/image1654.o (.data); + build/OUTCODE/assets/images/split/image1655.o (.data); + build/OUTCODE/assets/images/split/image1656.o (.data); + build/OUTCODE/assets/images/split/image1657.o (.data); + build/OUTCODE/assets/images/split/image1658.o (.data); + build/OUTCODE/assets/images/split/image1659.o (.data); + build/OUTCODE/assets/images/split/image1660.o (.data); + build/OUTCODE/assets/images/split/image1661.o (.data); + build/OUTCODE/assets/images/split/image1662.o (.data); + build/OUTCODE/assets/images/split/image1663.o (.data); + build/OUTCODE/assets/images/split/image1664.o (.data); + build/OUTCODE/assets/images/split/image1665.o (.data); + build/OUTCODE/assets/images/split/image1666.o (.data); + build/OUTCODE/assets/images/split/image1667.o (.data); + build/OUTCODE/assets/images/split/image1668.o (.data); + build/OUTCODE/assets/images/split/image1669.o (.data); + build/OUTCODE/assets/images/split/image1670.o (.data); + build/OUTCODE/assets/images/split/image1671.o (.data); + build/OUTCODE/assets/images/split/image1672.o (.data); + build/OUTCODE/assets/images/split/image1673.o (.data); + build/OUTCODE/assets/images/split/image1674.o (.data); + build/OUTCODE/assets/images/split/image1675.o (.data); + build/OUTCODE/assets/images/split/image1676.o (.data); + build/OUTCODE/assets/images/split/image1677.o (.data); + build/OUTCODE/assets/images/split/image1678.o (.data); + build/OUTCODE/assets/images/split/image1679.o (.data); + build/OUTCODE/assets/images/split/image1680.o (.data); + build/OUTCODE/assets/images/split/image1681.o (.data); + build/OUTCODE/assets/images/split/image1682.o (.data); + build/OUTCODE/assets/images/split/image1683.o (.data); + build/OUTCODE/assets/images/split/image1684.o (.data); + build/OUTCODE/assets/images/split/image1685.o (.data); + build/OUTCODE/assets/images/split/image1686.o (.data); + build/OUTCODE/assets/images/split/image1687.o (.data); + build/OUTCODE/assets/images/split/image1688.o (.data); + build/OUTCODE/assets/images/split/image1689.o (.data); + build/OUTCODE/assets/images/split/image1690.o (.data); + build/OUTCODE/assets/images/split/image1691.o (.data); + build/OUTCODE/assets/images/split/image1692.o (.data); + build/OUTCODE/assets/images/split/image1693.o (.data); + build/OUTCODE/assets/images/split/image1694.o (.data); + build/OUTCODE/assets/images/split/image1695.o (.data); + build/OUTCODE/assets/images/split/image1696.o (.data); + build/OUTCODE/assets/images/split/image1697.o (.data); + build/OUTCODE/assets/images/split/image1698.o (.data); + build/OUTCODE/assets/images/split/image1699.o (.data); + build/OUTCODE/assets/images/split/image1700.o (.data); + build/OUTCODE/assets/images/split/image1701.o (.data); + build/OUTCODE/assets/images/split/image1702.o (.data); + build/OUTCODE/assets/images/split/image1703.o (.data); + build/OUTCODE/assets/images/split/image1704.o (.data); + build/OUTCODE/assets/images/split/image1705.o (.data); + build/OUTCODE/assets/images/split/image1706.o (.data); + build/OUTCODE/assets/images/split/image1707.o (.data); + build/OUTCODE/assets/images/split/image1708.o (.data); + build/OUTCODE/assets/images/split/image1709.o (.data); + build/OUTCODE/assets/images/split/image1710.o (.data); + build/OUTCODE/assets/images/split/image1711.o (.data); + build/OUTCODE/assets/images/split/image1712.o (.data); + build/OUTCODE/assets/images/split/image1713.o (.data); + build/OUTCODE/assets/images/split/image1714.o (.data); + build/OUTCODE/assets/images/split/image1715.o (.data); + build/OUTCODE/assets/images/split/image1716.o (.data); + build/OUTCODE/assets/images/split/image1717.o (.data); + build/OUTCODE/assets/images/split/image1718.o (.data); + build/OUTCODE/assets/images/split/image1719.o (.data); + build/OUTCODE/assets/images/split/image1720.o (.data); + build/OUTCODE/assets/images/split/image1721.o (.data); + build/OUTCODE/assets/images/split/image1722.o (.data); + build/OUTCODE/assets/images/split/image1723.o (.data); + build/OUTCODE/assets/images/split/image1724.o (.data); + build/OUTCODE/assets/images/split/image1725.o (.data); + build/OUTCODE/assets/images/split/image1726.o (.data); + build/OUTCODE/assets/images/split/image1727.o (.data); + build/OUTCODE/assets/images/split/image1728.o (.data); + build/OUTCODE/assets/images/split/image1729.o (.data); + build/OUTCODE/assets/images/split/image1730.o (.data); + build/OUTCODE/assets/images/split/image1731.o (.data); + build/OUTCODE/assets/images/split/image1732.o (.data); + build/OUTCODE/assets/images/split/image1733.o (.data); + build/OUTCODE/assets/images/split/image1734.o (.data); + build/OUTCODE/assets/images/split/image1735.o (.data); + build/OUTCODE/assets/images/split/image1736.o (.data); + build/OUTCODE/assets/images/split/image1737.o (.data); + build/OUTCODE/assets/images/split/image1738.o (.data); + build/OUTCODE/assets/images/split/image1739.o (.data); + build/OUTCODE/assets/images/split/image1740.o (.data); + build/OUTCODE/assets/images/split/image1741.o (.data); + build/OUTCODE/assets/images/split/image1742.o (.data); + build/OUTCODE/assets/images/split/image1743.o (.data); + build/OUTCODE/assets/images/split/image1744.o (.data); + build/OUTCODE/assets/images/split/image1745.o (.data); + build/OUTCODE/assets/images/split/image1746.o (.data); + build/OUTCODE/assets/images/split/image1747.o (.data); + build/OUTCODE/assets/images/split/image1748.o (.data); + build/OUTCODE/assets/images/split/image1749.o (.data); + build/OUTCODE/assets/images/split/image1750.o (.data); + build/OUTCODE/assets/images/split/image1751.o (.data); + build/OUTCODE/assets/images/split/image1752.o (.data); + build/OUTCODE/assets/images/split/image1753.o (.data); + build/OUTCODE/assets/images/split/image1754.o (.data); + build/OUTCODE/assets/images/split/image1755.o (.data); + build/OUTCODE/assets/images/split/image1756.o (.data); + build/OUTCODE/assets/images/split/image1757.o (.data); + build/OUTCODE/assets/images/split/image1758.o (.data); + build/OUTCODE/assets/images/split/image1759.o (.data); + build/OUTCODE/assets/images/split/image1760.o (.data); + build/OUTCODE/assets/images/split/image1761.o (.data); + build/OUTCODE/assets/images/split/image1762.o (.data); + build/OUTCODE/assets/images/split/image1763.o (.data); + build/OUTCODE/assets/images/split/image1764.o (.data); + build/OUTCODE/assets/images/split/image1765.o (.data); + build/OUTCODE/assets/images/split/image1766.o (.data); + build/OUTCODE/assets/images/split/image1767.o (.data); + build/OUTCODE/assets/images/split/image1768.o (.data); + build/OUTCODE/assets/images/split/image1769.o (.data); + build/OUTCODE/assets/images/split/image1770.o (.data); + build/OUTCODE/assets/images/split/image1771.o (.data); + build/OUTCODE/assets/images/split/image1772.o (.data); + build/OUTCODE/assets/images/split/image1773.o (.data); + build/OUTCODE/assets/images/split/image1774.o (.data); + build/OUTCODE/assets/images/split/image1775.o (.data); + build/OUTCODE/assets/images/split/image1776.o (.data); + build/OUTCODE/assets/images/split/image1777.o (.data); + build/OUTCODE/assets/images/split/image1778.o (.data); + build/OUTCODE/assets/images/split/image1779.o (.data); + build/OUTCODE/assets/images/split/image1780.o (.data); + build/OUTCODE/assets/images/split/image1781.o (.data); + build/OUTCODE/assets/images/split/image1782.o (.data); + build/OUTCODE/assets/images/split/image1783.o (.data); + build/OUTCODE/assets/images/split/image1784.o (.data); + build/OUTCODE/assets/images/split/image1785.o (.data); + build/OUTCODE/assets/images/split/image1786.o (.data); + build/OUTCODE/assets/images/split/image1787.o (.data); + build/OUTCODE/assets/images/split/image1788.o (.data); + build/OUTCODE/assets/images/split/image1789.o (.data); + build/OUTCODE/assets/images/split/image1790.o (.data); + build/OUTCODE/assets/images/split/image1791.o (.data); + build/OUTCODE/assets/images/split/image1792.o (.data); + build/OUTCODE/assets/images/split/image1793.o (.data); + build/OUTCODE/assets/images/split/image1794.o (.data); + build/OUTCODE/assets/images/split/image1795.o (.data); + build/OUTCODE/assets/images/split/image1796.o (.data); + build/OUTCODE/assets/images/split/image1797.o (.data); + build/OUTCODE/assets/images/split/image1798.o (.data); + build/OUTCODE/assets/images/split/image1799.o (.data); + build/OUTCODE/assets/images/split/image1800.o (.data); + build/OUTCODE/assets/images/split/image1801.o (.data); + build/OUTCODE/assets/images/split/image1802.o (.data); + build/OUTCODE/assets/images/split/image1803.o (.data); + build/OUTCODE/assets/images/split/image1804.o (.data); + build/OUTCODE/assets/images/split/image1805.o (.data); + build/OUTCODE/assets/images/split/image1806.o (.data); + build/OUTCODE/assets/images/split/image1807.o (.data); + build/OUTCODE/assets/images/split/image1808.o (.data); + build/OUTCODE/assets/images/split/image1809.o (.data); + build/OUTCODE/assets/images/split/image1810.o (.data); + build/OUTCODE/assets/images/split/image1811.o (.data); + build/OUTCODE/assets/images/split/image1812.o (.data); + build/OUTCODE/assets/images/split/image1813.o (.data); + build/OUTCODE/assets/images/split/image1814.o (.data); + build/OUTCODE/assets/images/split/image1815.o (.data); + build/OUTCODE/assets/images/split/image1816.o (.data); + build/OUTCODE/assets/images/split/image1817.o (.data); + build/OUTCODE/assets/images/split/image1818.o (.data); + build/OUTCODE/assets/images/split/image1819.o (.data); + build/OUTCODE/assets/images/split/image1820.o (.data); + build/OUTCODE/assets/images/split/image1821.o (.data); + build/OUTCODE/assets/images/split/image1822.o (.data); + build/OUTCODE/assets/images/split/image1823.o (.data); + build/OUTCODE/assets/images/split/image1824.o (.data); + build/OUTCODE/assets/images/split/image1825.o (.data); + build/OUTCODE/assets/images/split/image1826.o (.data); + build/OUTCODE/assets/images/split/image1827.o (.data); + build/OUTCODE/assets/images/split/image1828.o (.data); + build/OUTCODE/assets/images/split/image1829.o (.data); + build/OUTCODE/assets/images/split/image1830.o (.data); + build/OUTCODE/assets/images/split/image1831.o (.data); + build/OUTCODE/assets/images/split/image1832.o (.data); + build/OUTCODE/assets/images/split/image1833.o (.data); + build/OUTCODE/assets/images/split/image1834.o (.data); + build/OUTCODE/assets/images/split/image1835.o (.data); + build/OUTCODE/assets/images/split/image1836.o (.data); + build/OUTCODE/assets/images/split/image1837.o (.data); + build/OUTCODE/assets/images/split/image1838.o (.data); + build/OUTCODE/assets/images/split/image1839.o (.data); + build/OUTCODE/assets/images/split/image1840.o (.data); + build/OUTCODE/assets/images/split/image1841.o (.data); + build/OUTCODE/assets/images/split/image1842.o (.data); + build/OUTCODE/assets/images/split/image1843.o (.data); + build/OUTCODE/assets/images/split/image1844.o (.data); + build/OUTCODE/assets/images/split/image1845.o (.data); + build/OUTCODE/assets/images/split/image1846.o (.data); + build/OUTCODE/assets/images/split/image1847.o (.data); + build/OUTCODE/assets/images/split/image1848.o (.data); + build/OUTCODE/assets/images/split/image1849.o (.data); + build/OUTCODE/assets/images/split/image1850.o (.data); + build/OUTCODE/assets/images/split/image1851.o (.data); + build/OUTCODE/assets/images/split/image1852.o (.data); + build/OUTCODE/assets/images/split/image1853.o (.data); + build/OUTCODE/assets/images/split/image1854.o (.data); + build/OUTCODE/assets/images/split/image1855.o (.data); + build/OUTCODE/assets/images/split/image1856.o (.data); + build/OUTCODE/assets/images/split/image1857.o (.data); + build/OUTCODE/assets/images/split/image1858.o (.data); + build/OUTCODE/assets/images/split/image1859.o (.data); + build/OUTCODE/assets/images/split/image1860.o (.data); + build/OUTCODE/assets/images/split/image1861.o (.data); + build/OUTCODE/assets/images/split/image1862.o (.data); + build/OUTCODE/assets/images/split/image1863.o (.data); + build/OUTCODE/assets/images/split/image1864.o (.data); + build/OUTCODE/assets/images/split/image1865.o (.data); + build/OUTCODE/assets/images/split/image1866.o (.data); + build/OUTCODE/assets/images/split/image1867.o (.data); + build/OUTCODE/assets/images/split/image1868.o (.data); + build/OUTCODE/assets/images/split/image1869.o (.data); + build/OUTCODE/assets/images/split/image1870.o (.data); + build/OUTCODE/assets/images/split/image1871.o (.data); + build/OUTCODE/assets/images/split/image1872.o (.data); + build/OUTCODE/assets/images/split/image1873.o (.data); + build/OUTCODE/assets/images/split/image1874.o (.data); + build/OUTCODE/assets/images/split/image1875.o (.data); + build/OUTCODE/assets/images/split/image1876.o (.data); + build/OUTCODE/assets/images/split/image1877.o (.data); + build/OUTCODE/assets/images/split/image1878.o (.data); + build/OUTCODE/assets/images/split/image1879.o (.data); + build/OUTCODE/assets/images/split/image1880.o (.data); + build/OUTCODE/assets/images/split/image1881.o (.data); + build/OUTCODE/assets/images/split/image1882.o (.data); + build/OUTCODE/assets/images/split/image1883.o (.data); + build/OUTCODE/assets/images/split/image1884.o (.data); + build/OUTCODE/assets/images/split/image1885.o (.data); + build/OUTCODE/assets/images/split/image1886.o (.data); + build/OUTCODE/assets/images/split/image1887.o (.data); + build/OUTCODE/assets/images/split/image1888.o (.data); + build/OUTCODE/assets/images/split/image1889.o (.data); + build/OUTCODE/assets/images/split/image1890.o (.data); + build/OUTCODE/assets/images/split/image1891.o (.data); + build/OUTCODE/assets/images/split/image1892.o (.data); + build/OUTCODE/assets/images/split/image1893.o (.data); + build/OUTCODE/assets/images/split/image1894.o (.data); + build/OUTCODE/assets/images/split/image1895.o (.data); + build/OUTCODE/assets/images/split/image1896.o (.data); + build/OUTCODE/assets/images/split/image1897.o (.data); + build/OUTCODE/assets/images/split/image1898.o (.data); + build/OUTCODE/assets/images/split/image1899.o (.data); + build/OUTCODE/assets/images/split/image1900.o (.data); + build/OUTCODE/assets/images/split/image1901.o (.data); + build/OUTCODE/assets/images/split/image1902.o (.data); + build/OUTCODE/assets/images/split/image1903.o (.data); + build/OUTCODE/assets/images/split/image1904.o (.data); + build/OUTCODE/assets/images/split/image1905.o (.data); + build/OUTCODE/assets/images/split/image1906.o (.data); + build/OUTCODE/assets/images/split/image1907.o (.data); + build/OUTCODE/assets/images/split/image1908.o (.data); + build/OUTCODE/assets/images/split/image1909.o (.data); + build/OUTCODE/assets/images/split/image1910.o (.data); + build/OUTCODE/assets/images/split/image1911.o (.data); + build/OUTCODE/assets/images/split/image1912.o (.data); + build/OUTCODE/assets/images/split/image1913.o (.data); + build/OUTCODE/assets/images/split/image1914.o (.data); + build/OUTCODE/assets/images/split/image1915.o (.data); + build/OUTCODE/assets/images/split/image1916.o (.data); + build/OUTCODE/assets/images/split/image1917.o (.data); + build/OUTCODE/assets/images/split/image1918.o (.data); + build/OUTCODE/assets/images/split/image1919.o (.data); + build/OUTCODE/assets/images/split/image1920.o (.data); + build/OUTCODE/assets/images/split/image1921.o (.data); + build/OUTCODE/assets/images/split/image1922.o (.data); + build/OUTCODE/assets/images/split/image1923.o (.data); + build/OUTCODE/assets/images/split/image1924.o (.data); + build/OUTCODE/assets/images/split/image1925.o (.data); + build/OUTCODE/assets/images/split/image1926.o (.data); + build/OUTCODE/assets/images/split/image1927.o (.data); + build/OUTCODE/assets/images/split/image1928.o (.data); + build/OUTCODE/assets/images/split/image1929.o (.data); + build/OUTCODE/assets/images/split/image1930.o (.data); + build/OUTCODE/assets/images/split/image1931.o (.data); + build/OUTCODE/assets/images/split/image1932.o (.data); + build/OUTCODE/assets/images/split/image1933.o (.data); + build/OUTCODE/assets/images/split/image1934.o (.data); + build/OUTCODE/assets/images/split/image1935.o (.data); + build/OUTCODE/assets/images/split/image1936.o (.data); + build/OUTCODE/assets/images/split/image1937.o (.data); + build/OUTCODE/assets/images/split/image1938.o (.data); + build/OUTCODE/assets/images/split/image1939.o (.data); + build/OUTCODE/assets/images/split/image1940.o (.data); + build/OUTCODE/assets/images/split/image1941.o (.data); + build/OUTCODE/assets/images/split/image1942.o (.data); + build/OUTCODE/assets/images/split/image1943.o (.data); + build/OUTCODE/assets/images/split/image1944.o (.data); + build/OUTCODE/assets/images/split/image1945.o (.data); + build/OUTCODE/assets/images/split/image1946.o (.data); + build/OUTCODE/assets/images/split/image1947.o (.data); + build/OUTCODE/assets/images/split/image1948.o (.data); + build/OUTCODE/assets/images/split/image1949.o (.data); + build/OUTCODE/assets/images/split/image1950.o (.data); + build/OUTCODE/assets/images/split/image1951.o (.data); + build/OUTCODE/assets/images/split/image1952.o (.data); + build/OUTCODE/assets/images/split/image1953.o (.data); + build/OUTCODE/assets/images/split/image1954.o (.data); + build/OUTCODE/assets/images/split/image1955.o (.data); + build/OUTCODE/assets/images/split/image1956.o (.data); + build/OUTCODE/assets/images/split/image1957.o (.data); + build/OUTCODE/assets/images/split/image1958.o (.data); + build/OUTCODE/assets/images/split/image1959.o (.data); + build/OUTCODE/assets/images/split/image1960.o (.data); + build/OUTCODE/assets/images/split/image1961.o (.data); + build/OUTCODE/assets/images/split/image1962.o (.data); + build/OUTCODE/assets/images/split/image1963.o (.data); + build/OUTCODE/assets/images/split/image1964.o (.data); + build/OUTCODE/assets/images/split/image1965.o (.data); + build/OUTCODE/assets/images/split/image1966.o (.data); + build/OUTCODE/assets/images/split/image1967.o (.data); + build/OUTCODE/assets/images/split/image1968.o (.data); + build/OUTCODE/assets/images/split/image1969.o (.data); + build/OUTCODE/assets/images/split/image1970.o (.data); + build/OUTCODE/assets/images/split/image1971.o (.data); + build/OUTCODE/assets/images/split/image1972.o (.data); + build/OUTCODE/assets/images/split/image1973.o (.data); + build/OUTCODE/assets/images/split/image1974.o (.data); + build/OUTCODE/assets/images/split/image1975.o (.data); + build/OUTCODE/assets/images/split/image1976.o (.data); + build/OUTCODE/assets/images/split/image1977.o (.data); + build/OUTCODE/assets/images/split/image1978.o (.data); + build/OUTCODE/assets/images/split/image1979.o (.data); + build/OUTCODE/assets/images/split/image1980.o (.data); + build/OUTCODE/assets/images/split/image1981.o (.data); + build/OUTCODE/assets/images/split/image1982.o (.data); + build/OUTCODE/assets/images/split/image1983.o (.data); + build/OUTCODE/assets/images/split/image1984.o (.data); + build/OUTCODE/assets/images/split/image1985.o (.data); + build/OUTCODE/assets/images/split/image1986.o (.data); + build/OUTCODE/assets/images/split/image1987.o (.data); + build/OUTCODE/assets/images/split/image1988.o (.data); + build/OUTCODE/assets/images/split/image1989.o (.data); + build/OUTCODE/assets/images/split/image1990.o (.data); + build/OUTCODE/assets/images/split/image1991.o (.data); + build/OUTCODE/assets/images/split/image1992.o (.data); + build/OUTCODE/assets/images/split/image1993.o (.data); + build/OUTCODE/assets/images/split/image1994.o (.data); + build/OUTCODE/assets/images/split/image1995.o (.data); + build/OUTCODE/assets/images/split/image1996.o (.data); + build/OUTCODE/assets/images/split/image1997.o (.data); + build/OUTCODE/assets/images/split/image1998.o (.data); + build/OUTCODE/assets/images/split/image1999.o (.data); + build/OUTCODE/assets/images/split/image2000.o (.data); + build/OUTCODE/assets/images/split/image2001.o (.data); + build/OUTCODE/assets/images/split/image2002.o (.data); + build/OUTCODE/assets/images/split/image2003.o (.data); + build/OUTCODE/assets/images/split/image2004.o (.data); + build/OUTCODE/assets/images/split/image2005.o (.data); + build/OUTCODE/assets/images/split/image2006.o (.data); + build/OUTCODE/assets/images/split/image2007.o (.data); + build/OUTCODE/assets/images/split/image2008.o (.data); + build/OUTCODE/assets/images/split/image2009.o (.data); + build/OUTCODE/assets/images/split/image2010.o (.data); + build/OUTCODE/assets/images/split/image2011.o (.data); + build/OUTCODE/assets/images/split/image2012.o (.data); + build/OUTCODE/assets/images/split/image2013.o (.data); + build/OUTCODE/assets/images/split/image2014.o (.data); + build/OUTCODE/assets/images/split/image2015.o (.data); + build/OUTCODE/assets/images/split/image2016.o (.data); + build/OUTCODE/assets/images/split/image2017.o (.data); + build/OUTCODE/assets/images/split/image2018.o (.data); + build/OUTCODE/assets/images/split/image2019.o (.data); + build/OUTCODE/assets/images/split/image2020.o (.data); + build/OUTCODE/assets/images/split/image2021.o (.data); + build/OUTCODE/assets/images/split/image2022.o (.data); + build/OUTCODE/assets/images/split/image2023.o (.data); + build/OUTCODE/assets/images/split/image2024.o (.data); + build/OUTCODE/assets/images/split/image2025.o (.data); + build/OUTCODE/assets/images/split/image2026.o (.data); + build/OUTCODE/assets/images/split/image2027.o (.data); + build/OUTCODE/assets/images/split/image2028.o (.data); + build/OUTCODE/assets/images/split/image2029.o (.data); + build/OUTCODE/assets/images/split/image2030.o (.data); + build/OUTCODE/assets/images/split/image2031.o (.data); + build/OUTCODE/assets/images/split/image2032.o (.data); + build/OUTCODE/assets/images/split/image2033.o (.data); + build/OUTCODE/assets/images/split/image2034.o (.data); + build/OUTCODE/assets/images/split/image2035.o (.data); + build/OUTCODE/assets/images/split/image2036.o (.data); + build/OUTCODE/assets/images/split/image2037.o (.data); + build/OUTCODE/assets/images/split/image2038.o (.data); + build/OUTCODE/assets/images/split/image2039.o (.data); + build/OUTCODE/assets/images/split/image2040.o (.data); + build/OUTCODE/assets/images/split/image2041.o (.data); + build/OUTCODE/assets/images/split/image2042.o (.data); + build/OUTCODE/assets/images/split/image2043.o (.data); + build/OUTCODE/assets/images/split/image2044.o (.data); + build/OUTCODE/assets/images/split/image2045.o (.data); + build/OUTCODE/assets/images/split/image2046.o (.data); + build/OUTCODE/assets/images/split/image2047.o (.data); + build/OUTCODE/assets/images/split/image2048.o (.data); + build/OUTCODE/assets/images/split/image2049.o (.data); + build/OUTCODE/assets/images/split/image2050.o (.data); + build/OUTCODE/assets/images/split/image2051.o (.data); + build/OUTCODE/assets/images/split/image2052.o (.data); + build/OUTCODE/assets/images/split/image2053.o (.data); + build/OUTCODE/assets/images/split/image2054.o (.data); + build/OUTCODE/assets/images/split/image2055.o (.data); + build/OUTCODE/assets/images/split/image2056.o (.data); + build/OUTCODE/assets/images/split/image2057.o (.data); + build/OUTCODE/assets/images/split/image2058.o (.data); + build/OUTCODE/assets/images/split/image2059.o (.data); + build/OUTCODE/assets/images/split/image2060.o (.data); + build/OUTCODE/assets/images/split/image2061.o (.data); + build/OUTCODE/assets/images/split/image2062.o (.data); + build/OUTCODE/assets/images/split/image2063.o (.data); + build/OUTCODE/assets/images/split/image2064.o (.data); + build/OUTCODE/assets/images/split/image2065.o (.data); + build/OUTCODE/assets/images/split/image2066.o (.data); + build/OUTCODE/assets/images/split/image2067.o (.data); + build/OUTCODE/assets/images/split/image2068.o (.data); + build/OUTCODE/assets/images/split/image2069.o (.data); + build/OUTCODE/assets/images/split/image2070.o (.data); + build/OUTCODE/assets/images/split/image2071.o (.data); + build/OUTCODE/assets/images/split/image2072.o (.data); + build/OUTCODE/assets/images/split/image2073.o (.data); + build/OUTCODE/assets/images/split/image2074.o (.data); + build/OUTCODE/assets/images/split/image2075.o (.data); + build/OUTCODE/assets/images/split/image2076.o (.data); + build/OUTCODE/assets/images/split/image2077.o (.data); + build/OUTCODE/assets/images/split/image2078.o (.data); + build/OUTCODE/assets/images/split/image2079.o (.data); + build/OUTCODE/assets/images/split/image2080.o (.data); + build/OUTCODE/assets/images/split/image2081.o (.data); + build/OUTCODE/assets/images/split/image2082.o (.data); + build/OUTCODE/assets/images/split/image2083.o (.data); + build/OUTCODE/assets/images/split/image2084.o (.data); + build/OUTCODE/assets/images/split/image2085.o (.data); + build/OUTCODE/assets/images/split/image2086.o (.data); + build/OUTCODE/assets/images/split/image2087.o (.data); + build/OUTCODE/assets/images/split/image2088.o (.data); + build/OUTCODE/assets/images/split/image2089.o (.data); + build/OUTCODE/assets/images/split/image2090.o (.data); + build/OUTCODE/assets/images/split/image2091.o (.data); + build/OUTCODE/assets/images/split/image2092.o (.data); + build/OUTCODE/assets/images/split/image2093.o (.data); + build/OUTCODE/assets/images/split/image2094.o (.data); + build/OUTCODE/assets/images/split/image2095.o (.data); + build/OUTCODE/assets/images/split/image2096.o (.data); + build/OUTCODE/assets/images/split/image2097.o (.data); + build/OUTCODE/assets/images/split/image2098.o (.data); + build/OUTCODE/assets/images/split/image2099.o (.data); + build/OUTCODE/assets/images/split/image2100.o (.data); + build/OUTCODE/assets/images/split/image2101.o (.data); + build/OUTCODE/assets/images/split/image2102.o (.data); + build/OUTCODE/assets/images/split/image2103.o (.data); + build/OUTCODE/assets/images/split/image2104.o (.data); + build/OUTCODE/assets/images/split/image2105.o (.data); + build/OUTCODE/assets/images/split/image2106.o (.data); + build/OUTCODE/assets/images/split/image2107.o (.data); + build/OUTCODE/assets/images/split/image2108.o (.data); + build/OUTCODE/assets/images/split/image2109.o (.data); + build/OUTCODE/assets/images/split/image2110.o (.data); + build/OUTCODE/assets/images/split/image2111.o (.data); + build/OUTCODE/assets/images/split/image2112.o (.data); + build/OUTCODE/assets/images/split/image2113.o (.data); + build/OUTCODE/assets/images/split/image2114.o (.data); + build/OUTCODE/assets/images/split/image2115.o (.data); + build/OUTCODE/assets/images/split/image2116.o (.data); + build/OUTCODE/assets/images/split/image2117.o (.data); + build/OUTCODE/assets/images/split/image2118.o (.data); + build/OUTCODE/assets/images/split/image2119.o (.data); + build/OUTCODE/assets/images/split/image2120.o (.data); + build/OUTCODE/assets/images/split/image2121.o (.data); + build/OUTCODE/assets/images/split/image2122.o (.data); + build/OUTCODE/assets/images/split/image2123.o (.data); + build/OUTCODE/assets/images/split/image2124.o (.data); + build/OUTCODE/assets/images/split/image2125.o (.data); + build/OUTCODE/assets/images/split/image2126.o (.data); + build/OUTCODE/assets/images/split/image2127.o (.data); + build/OUTCODE/assets/images/split/image2128.o (.data); + build/OUTCODE/assets/images/split/image2129.o (.data); + build/OUTCODE/assets/images/split/image2130.o (.data); + build/OUTCODE/assets/images/split/image2131.o (.data); + build/OUTCODE/assets/images/split/image2132.o (.data); + build/OUTCODE/assets/images/split/image2133.o (.data); + build/OUTCODE/assets/images/split/image2134.o (.data); + build/OUTCODE/assets/images/split/image2135.o (.data); + build/OUTCODE/assets/images/split/image2136.o (.data); + build/OUTCODE/assets/images/split/image2137.o (.data); + build/OUTCODE/assets/images/split/image2138.o (.data); + build/OUTCODE/assets/images/split/image2139.o (.data); + build/OUTCODE/assets/images/split/image2140.o (.data); + build/OUTCODE/assets/images/split/image2141.o (.data); + build/OUTCODE/assets/images/split/image2142.o (.data); + build/OUTCODE/assets/images/split/image2143.o (.data); + build/OUTCODE/assets/images/split/image2144.o (.data); + build/OUTCODE/assets/images/split/image2145.o (.data); + build/OUTCODE/assets/images/split/image2146.o (.data); + build/OUTCODE/assets/images/split/image2147.o (.data); + build/OUTCODE/assets/images/split/image2148.o (.data); + build/OUTCODE/assets/images/split/image2149.o (.data); + build/OUTCODE/assets/images/split/image2150.o (.data); + build/OUTCODE/assets/images/split/image2151.o (.data); + build/OUTCODE/assets/images/split/image2152.o (.data); + build/OUTCODE/assets/images/split/image2153.o (.data); + build/OUTCODE/assets/images/split/image2154.o (.data); + build/OUTCODE/assets/images/split/image2155.o (.data); + build/OUTCODE/assets/images/split/image2156.o (.data); + build/OUTCODE/assets/images/split/image2157.o (.data); + build/OUTCODE/assets/images/split/image2158.o (.data); + build/OUTCODE/assets/images/split/image2159.o (.data); + build/OUTCODE/assets/images/split/image2160.o (.data); + build/OUTCODE/assets/images/split/image2161.o (.data); + build/OUTCODE/assets/images/split/image2162.o (.data); + build/OUTCODE/assets/images/split/image2163.o (.data); + build/OUTCODE/assets/images/split/image2164.o (.data); + build/OUTCODE/assets/images/split/image2165.o (.data); + build/OUTCODE/assets/images/split/image2166.o (.data); + build/OUTCODE/assets/images/split/image2167.o (.data); + build/OUTCODE/assets/images/split/image2168.o (.data); + build/OUTCODE/assets/images/split/image2169.o (.data); + build/OUTCODE/assets/images/split/image2170.o (.data); + build/OUTCODE/assets/images/split/image2171.o (.data); + build/OUTCODE/assets/images/split/image2172.o (.data); + build/OUTCODE/assets/images/split/image2173.o (.data); + build/OUTCODE/assets/images/split/image2174.o (.data); + build/OUTCODE/assets/images/split/image2175.o (.data); + build/OUTCODE/assets/images/split/image2176.o (.data); + build/OUTCODE/assets/images/split/image2177.o (.data); + build/OUTCODE/assets/images/split/image2178.o (.data); + build/OUTCODE/assets/images/split/image2179.o (.data); + build/OUTCODE/assets/images/split/image2180.o (.data); + build/OUTCODE/assets/images/split/image2181.o (.data); + build/OUTCODE/assets/images/split/image2182.o (.data); + build/OUTCODE/assets/images/split/image2183.o (.data); + build/OUTCODE/assets/images/split/image2184.o (.data); + build/OUTCODE/assets/images/split/image2185.o (.data); + build/OUTCODE/assets/images/split/image2186.o (.data); + build/OUTCODE/assets/images/split/image2187.o (.data); + build/OUTCODE/assets/images/split/image2188.o (.data); + build/OUTCODE/assets/images/split/image2189.o (.data); + build/OUTCODE/assets/images/split/image2190.o (.data); + build/OUTCODE/assets/images/split/image2191.o (.data); + build/OUTCODE/assets/images/split/image2192.o (.data); + build/OUTCODE/assets/images/split/image2193.o (.data); + build/OUTCODE/assets/images/split/image2194.o (.data); + build/OUTCODE/assets/images/split/image2195.o (.data); + build/OUTCODE/assets/images/split/image2196.o (.data); + build/OUTCODE/assets/images/split/image2197.o (.data); + build/OUTCODE/assets/images/split/image2198.o (.data); + build/OUTCODE/assets/images/split/image2199.o (.data); + build/OUTCODE/assets/images/split/image2200.o (.data); + build/OUTCODE/assets/images/split/image2201.o (.data); + build/OUTCODE/assets/images/split/image2202.o (.data); + build/OUTCODE/assets/images/split/image2203.o (.data); + build/OUTCODE/assets/images/split/image2204.o (.data); + build/OUTCODE/assets/images/split/image2205.o (.data); + build/OUTCODE/assets/images/split/image2206.o (.data); + build/OUTCODE/assets/images/split/image2207.o (.data); + build/OUTCODE/assets/images/split/image2208.o (.data); + build/OUTCODE/assets/images/split/image2209.o (.data); + build/OUTCODE/assets/images/split/image2210.o (.data); + build/OUTCODE/assets/images/split/image2211.o (.data); + build/OUTCODE/assets/images/split/image2212.o (.data); + build/OUTCODE/assets/images/split/image2213.o (.data); + build/OUTCODE/assets/images/split/image2214.o (.data); + build/OUTCODE/assets/images/split/image2215.o (.data); + build/OUTCODE/assets/images/split/image2216.o (.data); + build/OUTCODE/assets/images/split/image2217.o (.data); + build/OUTCODE/assets/images/split/image2218.o (.data); + build/OUTCODE/assets/images/split/image2219.o (.data); + build/OUTCODE/assets/images/split/image2220.o (.data); + build/OUTCODE/assets/images/split/image2221.o (.data); + build/OUTCODE/assets/images/split/image2222.o (.data); + build/OUTCODE/assets/images/split/image2223.o (.data); + build/OUTCODE/assets/images/split/image2224.o (.data); + build/OUTCODE/assets/images/split/image2225.o (.data); + build/OUTCODE/assets/images/split/image2226.o (.data); + build/OUTCODE/assets/images/split/image2227.o (.data); + build/OUTCODE/assets/images/split/image2228.o (.data); + build/OUTCODE/assets/images/split/image2229.o (.data); + build/OUTCODE/assets/images/split/image2230.o (.data); + build/OUTCODE/assets/images/split/image2231.o (.data); + build/OUTCODE/assets/images/split/image2232.o (.data); + build/OUTCODE/assets/images/split/image2233.o (.data); + build/OUTCODE/assets/images/split/image2234.o (.data); + build/OUTCODE/assets/images/split/image2235.o (.data); + build/OUTCODE/assets/images/split/image2236.o (.data); + build/OUTCODE/assets/images/split/image2237.o (.data); + build/OUTCODE/assets/images/split/image2238.o (.data); + build/OUTCODE/assets/images/split/image2239.o (.data); + build/OUTCODE/assets/images/split/image2240.o (.data); + build/OUTCODE/assets/images/split/image2241.o (.data); + build/OUTCODE/assets/images/split/image2242.o (.data); + build/OUTCODE/assets/images/split/image2243.o (.data); + build/OUTCODE/assets/images/split/image2244.o (.data); + build/OUTCODE/assets/images/split/image2245.o (.data); + build/OUTCODE/assets/images/split/image2246.o (.data); + build/OUTCODE/assets/images/split/image2247.o (.data); + build/OUTCODE/assets/images/split/image2248.o (.data); + build/OUTCODE/assets/images/split/image2249.o (.data); + build/OUTCODE/assets/images/split/image2250.o (.data); + build/OUTCODE/assets/images/split/image2251.o (.data); + build/OUTCODE/assets/images/split/image2252.o (.data); + build/OUTCODE/assets/images/split/image2253.o (.data); + build/OUTCODE/assets/images/split/image2254.o (.data); + build/OUTCODE/assets/images/split/image2255.o (.data); + build/OUTCODE/assets/images/split/image2256.o (.data); + build/OUTCODE/assets/images/split/image2257.o (.data); + build/OUTCODE/assets/images/split/image2258.o (.data); + build/OUTCODE/assets/images/split/image2259.o (.data); + build/OUTCODE/assets/images/split/image2260.o (.data); + build/OUTCODE/assets/images/split/image2261.o (.data); + build/OUTCODE/assets/images/split/image2262.o (.data); + build/OUTCODE/assets/images/split/image2263.o (.data); + build/OUTCODE/assets/images/split/image2264.o (.data); + build/OUTCODE/assets/images/split/image2265.o (.data); + build/OUTCODE/assets/images/split/image2266.o (.data); + build/OUTCODE/assets/images/split/image2267.o (.data); + build/OUTCODE/assets/images/split/image2268.o (.data); + build/OUTCODE/assets/images/split/image2269.o (.data); + build/OUTCODE/assets/images/split/image2270.o (.data); + build/OUTCODE/assets/images/split/image2271.o (.data); + build/OUTCODE/assets/images/split/image2272.o (.data); + build/OUTCODE/assets/images/split/image2273.o (.data); + build/OUTCODE/assets/images/split/image2274.o (.data); + build/OUTCODE/assets/images/split/image2275.o (.data); + build/OUTCODE/assets/images/split/image2276.o (.data); + build/OUTCODE/assets/images/split/image2277.o (.data); + build/OUTCODE/assets/images/split/image2278.o (.data); + build/OUTCODE/assets/images/split/image2279.o (.data); + build/OUTCODE/assets/images/split/image2280.o (.data); + build/OUTCODE/assets/images/split/image2281.o (.data); + build/OUTCODE/assets/images/split/image2282.o (.data); + build/OUTCODE/assets/images/split/image2283.o (.data); + build/OUTCODE/assets/images/split/image2284.o (.data); + build/OUTCODE/assets/images/split/image2285.o (.data); + build/OUTCODE/assets/images/split/image2286.o (.data); + build/OUTCODE/assets/images/split/image2287.o (.data); + build/OUTCODE/assets/images/split/image2288.o (.data); + build/OUTCODE/assets/images/split/image2289.o (.data); + build/OUTCODE/assets/images/split/image2290.o (.data); + build/OUTCODE/assets/images/split/image2291.o (.data); + build/OUTCODE/assets/images/split/image2292.o (.data); + build/OUTCODE/assets/images/split/image2293.o (.data); + build/OUTCODE/assets/images/split/image2294.o (.data); + build/OUTCODE/assets/images/split/image2295.o (.data); + build/OUTCODE/assets/images/split/image2296.o (.data); + build/OUTCODE/assets/images/split/image2297.o (.data); + build/OUTCODE/assets/images/split/image2298.o (.data); + build/OUTCODE/assets/images/split/image2299.o (.data); + build/OUTCODE/assets/images/split/image2300.o (.data); + build/OUTCODE/assets/images/split/image2301.o (.data); + build/OUTCODE/assets/images/split/image2302.o (.data); + build/OUTCODE/assets/images/split/image2303.o (.data); + build/OUTCODE/assets/images/split/image2304.o (.data); + build/OUTCODE/assets/images/split/image2305.o (.data); + build/OUTCODE/assets/images/split/image2306.o (.data); + build/OUTCODE/assets/images/split/image2307.o (.data); + build/OUTCODE/assets/images/split/image2308.o (.data); + build/OUTCODE/assets/images/split/image2309.o (.data); + build/OUTCODE/assets/images/split/image2310.o (.data); + build/OUTCODE/assets/images/split/image2311.o (.data); + build/OUTCODE/assets/images/split/image2312.o (.data); + build/OUTCODE/assets/images/split/image2313.o (.data); + build/OUTCODE/assets/images/split/image2314.o (.data); + build/OUTCODE/assets/images/split/image2315.o (.data); + build/OUTCODE/assets/images/split/image2316.o (.data); + build/OUTCODE/assets/images/split/image2317.o (.data); + build/OUTCODE/assets/images/split/image2318.o (.data); + build/OUTCODE/assets/images/split/image2319.o (.data); + build/OUTCODE/assets/images/split/image2320.o (.data); + build/OUTCODE/assets/images/split/image2321.o (.data); + build/OUTCODE/assets/images/split/image2322.o (.data); + build/OUTCODE/assets/images/split/image2323.o (.data); + build/OUTCODE/assets/images/split/image2324.o (.data); + build/OUTCODE/assets/images/split/image2325.o (.data); + build/OUTCODE/assets/images/split/image2326.o (.data); + build/OUTCODE/assets/images/split/image2327.o (.data); + build/OUTCODE/assets/images/split/image2328.o (.data); + build/OUTCODE/assets/images/split/image2329.o (.data); + build/OUTCODE/assets/images/split/image2330.o (.data); + build/OUTCODE/assets/images/split/image2331.o (.data); + build/OUTCODE/assets/images/split/image2332.o (.data); + build/OUTCODE/assets/images/split/image2333.o (.data); + build/OUTCODE/assets/images/split/image2334.o (.data); + build/OUTCODE/assets/images/split/image2335.o (.data); + build/OUTCODE/assets/images/split/image2336.o (.data); + build/OUTCODE/assets/images/split/image2337.o (.data); + build/OUTCODE/assets/images/split/image2338.o (.data); + build/OUTCODE/assets/images/split/image2339.o (.data); + build/OUTCODE/assets/images/split/image2340.o (.data); + build/OUTCODE/assets/images/split/image2341.o (.data); + build/OUTCODE/assets/images/split/image2342.o (.data); + build/OUTCODE/assets/images/split/image2343.o (.data); + build/OUTCODE/assets/images/split/image2344.o (.data); + build/OUTCODE/assets/images/split/image2345.o (.data); + build/OUTCODE/assets/images/split/image2346.o (.data); + build/OUTCODE/assets/images/split/image2347.o (.data); + build/OUTCODE/assets/images/split/image2348.o (.data); + build/OUTCODE/assets/images/split/image2349.o (.data); + build/OUTCODE/assets/images/split/image2350.o (.data); + build/OUTCODE/assets/images/split/image2351.o (.data); + build/OUTCODE/assets/images/split/image2352.o (.data); + build/OUTCODE/assets/images/split/image2353.o (.data); + build/OUTCODE/assets/images/split/image2354.o (.data); + build/OUTCODE/assets/images/split/image2355.o (.data); + build/OUTCODE/assets/images/split/image2356.o (.data); + build/OUTCODE/assets/images/split/image2357.o (.data); + build/OUTCODE/assets/images/split/image2358.o (.data); + build/OUTCODE/assets/images/split/image2359.o (.data); + build/OUTCODE/assets/images/split/image2360.o (.data); + build/OUTCODE/assets/images/split/image2361.o (.data); + build/OUTCODE/assets/images/split/image2362.o (.data); + build/OUTCODE/assets/images/split/image2363.o (.data); + build/OUTCODE/assets/images/split/image2364.o (.data); + build/OUTCODE/assets/images/split/image2365.o (.data); + build/OUTCODE/assets/images/split/image2366.o (.data); + build/OUTCODE/assets/images/split/image2367.o (.data); + build/OUTCODE/assets/images/split/image2368.o (.data); + build/OUTCODE/assets/images/split/image2369.o (.data); + build/OUTCODE/assets/images/split/image2370.o (.data); + build/OUTCODE/assets/images/split/image2371.o (.data); + build/OUTCODE/assets/images/split/image2372.o (.data); + build/OUTCODE/assets/images/split/image2373.o (.data); + build/OUTCODE/assets/images/split/image2374.o (.data); + build/OUTCODE/assets/images/split/image2375.o (.data); + build/OUTCODE/assets/images/split/image2376.o (.data); + build/OUTCODE/assets/images/split/image2377.o (.data); + build/OUTCODE/assets/images/split/image2378.o (.data); + build/OUTCODE/assets/images/split/image2379.o (.data); + build/OUTCODE/assets/images/split/image2380.o (.data); + build/OUTCODE/assets/images/split/image2381.o (.data); + build/OUTCODE/assets/images/split/image2382.o (.data); + build/OUTCODE/assets/images/split/image2383.o (.data); + build/OUTCODE/assets/images/split/image2384.o (.data); + build/OUTCODE/assets/images/split/image2385.o (.data); + build/OUTCODE/assets/images/split/image2386.o (.data); + build/OUTCODE/assets/images/split/image2387.o (.data); + build/OUTCODE/assets/images/split/image2388.o (.data); + build/OUTCODE/assets/images/split/image2389.o (.data); + build/OUTCODE/assets/images/split/image2390.o (.data); + build/OUTCODE/assets/images/split/image2391.o (.data); + build/OUTCODE/assets/images/split/image2392.o (.data); + build/OUTCODE/assets/images/split/image2393.o (.data); + build/OUTCODE/assets/images/split/image2394.o (.data); + build/OUTCODE/assets/images/split/image2395.o (.data); + build/OUTCODE/assets/images/split/image2396.o (.data); + build/OUTCODE/assets/images/split/image2397.o (.data); + build/OUTCODE/assets/images/split/image2398.o (.data); + build/OUTCODE/assets/images/split/image2399.o (.data); + build/OUTCODE/assets/images/split/image2400.o (.data); + build/OUTCODE/assets/images/split/image2401.o (.data); + build/OUTCODE/assets/images/split/image2402.o (.data); + build/OUTCODE/assets/images/split/image2403.o (.data); + build/OUTCODE/assets/images/split/image2404.o (.data); + build/OUTCODE/assets/images/split/image2405.o (.data); + build/OUTCODE/assets/images/split/image2406.o (.data); + build/OUTCODE/assets/images/split/image2407.o (.data); + build/OUTCODE/assets/images/split/image2408.o (.data); + build/OUTCODE/assets/images/split/image2409.o (.data); + build/OUTCODE/assets/images/split/image2410.o (.data); + build/OUTCODE/assets/images/split/image2411.o (.data); + build/OUTCODE/assets/images/split/image2412.o (.data); + build/OUTCODE/assets/images/split/image2413.o (.data); + build/OUTCODE/assets/images/split/image2414.o (.data); + build/OUTCODE/assets/images/split/image2415.o (.data); + build/OUTCODE/assets/images/split/image2416.o (.data); + build/OUTCODE/assets/images/split/image2417.o (.data); + build/OUTCODE/assets/images/split/image2418.o (.data); + build/OUTCODE/assets/images/split/image2419.o (.data); + build/OUTCODE/assets/images/split/image2420.o (.data); + build/OUTCODE/assets/images/split/image2421.o (.data); + build/OUTCODE/assets/images/split/image2422.o (.data); + build/OUTCODE/assets/images/split/image2423.o (.data); + build/OUTCODE/assets/images/split/image2424.o (.data); + build/OUTCODE/assets/images/split/image2425.o (.data); + build/OUTCODE/assets/images/split/image2426.o (.data); + build/OUTCODE/assets/images/split/image2427.o (.data); + build/OUTCODE/assets/images/split/image2428.o (.data); + build/OUTCODE/assets/images/split/image2429.o (.data); + build/OUTCODE/assets/images/split/image2430.o (.data); + build/OUTCODE/assets/images/split/image2431.o (.data); + build/OUTCODE/assets/images/split/image2432.o (.data); + build/OUTCODE/assets/images/split/image2433.o (.data); + build/OUTCODE/assets/images/split/image2434.o (.data); + build/OUTCODE/assets/images/split/image2435.o (.data); + build/OUTCODE/assets/images/split/image2436.o (.data); + build/OUTCODE/assets/images/split/image2437.o (.data); + build/OUTCODE/assets/images/split/image2438.o (.data); + build/OUTCODE/assets/images/split/image2439.o (.data); + build/OUTCODE/assets/images/split/image2440.o (.data); + build/OUTCODE/assets/images/split/image2441.o (.data); + build/OUTCODE/assets/images/split/image2442.o (.data); + build/OUTCODE/assets/images/split/image2443.o (.data); + build/OUTCODE/assets/images/split/image2444.o (.data); + build/OUTCODE/assets/images/split/image2445.o (.data); + build/OUTCODE/assets/images/split/image2446.o (.data); + build/OUTCODE/assets/images/split/image2447.o (.data); + build/OUTCODE/assets/images/split/image2448.o (.data); + build/OUTCODE/assets/images/split/image2449.o (.data); + build/OUTCODE/assets/images/split/image2450.o (.data); + build/OUTCODE/assets/images/split/image2451.o (.data); + build/OUTCODE/assets/images/split/image2452.o (.data); + build/OUTCODE/assets/images/split/image2453.o (.data); + build/OUTCODE/assets/images/split/image2454.o (.data); + build/OUTCODE/assets/images/split/image2455.o (.data); + build/OUTCODE/assets/images/split/image2456.o (.data); + build/OUTCODE/assets/images/split/image2457.o (.data); + build/OUTCODE/assets/images/split/image2458.o (.data); + build/OUTCODE/assets/images/split/image2459.o (.data); + build/OUTCODE/assets/images/split/image2460.o (.data); + build/OUTCODE/assets/images/split/image2461.o (.data); + build/OUTCODE/assets/images/split/image2462.o (.data); + build/OUTCODE/assets/images/split/image2463.o (.data); + build/OUTCODE/assets/images/split/image2464.o (.data); + build/OUTCODE/assets/images/split/image2465.o (.data); + build/OUTCODE/assets/images/split/image2466.o (.data); + build/OUTCODE/assets/images/split/image2467.o (.data); + build/OUTCODE/assets/images/split/image2468.o (.data); + build/OUTCODE/assets/images/split/image2469.o (.data); + build/OUTCODE/assets/images/split/image2470.o (.data); + build/OUTCODE/assets/images/split/image2471.o (.data); + build/OUTCODE/assets/images/split/image2472.o (.data); + build/OUTCODE/assets/images/split/image2473.o (.data); + build/OUTCODE/assets/images/split/image2474.o (.data); + build/OUTCODE/assets/images/split/image2475.o (.data); + build/OUTCODE/assets/images/split/image2476.o (.data); + build/OUTCODE/assets/images/split/image2477.o (.data); + build/OUTCODE/assets/images/split/image2478.o (.data); + build/OUTCODE/assets/images/split/image2479.o (.data); + build/OUTCODE/assets/images/split/image2480.o (.data); + build/OUTCODE/assets/images/split/image2481.o (.data); + build/OUTCODE/assets/images/split/image2482.o (.data); + build/OUTCODE/assets/images/split/image2483.o (.data); + build/OUTCODE/assets/images/split/image2484.o (.data); + build/OUTCODE/assets/images/split/image2485.o (.data); + build/OUTCODE/assets/images/split/image2486.o (.data); + build/OUTCODE/assets/images/split/image2487.o (.data); + build/OUTCODE/assets/images/split/image2488.o (.data); + build/OUTCODE/assets/images/split/image2489.o (.data); + build/OUTCODE/assets/images/split/image2490.o (.data); + build/OUTCODE/assets/images/split/image2491.o (.data); + build/OUTCODE/assets/images/split/image2492.o (.data); + build/OUTCODE/assets/images/split/image2493.o (.data); + build/OUTCODE/assets/images/split/image2494.o (.data); + build/OUTCODE/assets/images/split/image2495.o (.data); + build/OUTCODE/assets/images/split/image2496.o (.data); + build/OUTCODE/assets/images/split/image2497.o (.data); + build/OUTCODE/assets/images/split/image2498.o (.data); + build/OUTCODE/assets/images/split/image2499.o (.data); + build/OUTCODE/assets/images/split/image2500.o (.data); + build/OUTCODE/assets/images/split/image2501.o (.data); + build/OUTCODE/assets/images/split/image2502.o (.data); + build/OUTCODE/assets/images/split/image2503.o (.data); + build/OUTCODE/assets/images/split/image2504.o (.data); + build/OUTCODE/assets/images/split/image2505.o (.data); + build/OUTCODE/assets/images/split/image2506.o (.data); + build/OUTCODE/assets/images/split/image2507.o (.data); + build/OUTCODE/assets/images/split/image2508.o (.data); + build/OUTCODE/assets/images/split/image2509.o (.data); + build/OUTCODE/assets/images/split/image2510.o (.data); + build/OUTCODE/assets/images/split/image2511.o (.data); + build/OUTCODE/assets/images/split/image2512.o (.data); + build/OUTCODE/assets/images/split/image2513.o (.data); + build/OUTCODE/assets/images/split/image2514.o (.data); + build/OUTCODE/assets/images/split/image2515.o (.data); + build/OUTCODE/assets/images/split/image2516.o (.data); + build/OUTCODE/assets/images/split/image2517.o (.data); + build/OUTCODE/assets/images/split/image2518.o (.data); + build/OUTCODE/assets/images/split/image2519.o (.data); + build/OUTCODE/assets/images/split/image2520.o (.data); + build/OUTCODE/assets/images/split/image2521.o (.data); + build/OUTCODE/assets/images/split/image2522.o (.data); + build/OUTCODE/assets/images/split/image2523.o (.data); + build/OUTCODE/assets/images/split/image2524.o (.data); + build/OUTCODE/assets/images/split/image2525.o (.data); + build/OUTCODE/assets/images/split/image2526.o (.data); + build/OUTCODE/assets/images/split/image2527.o (.data); + build/OUTCODE/assets/images/split/image2528.o (.data); + build/OUTCODE/assets/images/split/image2529.o (.data); + build/OUTCODE/assets/images/split/image2530.o (.data); + build/OUTCODE/assets/images/split/image2531.o (.data); + build/OUTCODE/assets/images/split/image2532.o (.data); + build/OUTCODE/assets/images/split/image2533.o (.data); + build/OUTCODE/assets/images/split/image2534.o (.data); + build/OUTCODE/assets/images/split/image2535.o (.data); + build/OUTCODE/assets/images/split/image2536.o (.data); + build/OUTCODE/assets/images/split/image2537.o (.data); + build/OUTCODE/assets/images/split/image2538.o (.data); + build/OUTCODE/assets/images/split/image2539.o (.data); + build/OUTCODE/assets/images/split/image2540.o (.data); + build/OUTCODE/assets/images/split/image2541.o (.data); + build/OUTCODE/assets/images/split/image2542.o (.data); + build/OUTCODE/assets/images/split/image2543.o (.data); + build/OUTCODE/assets/images/split/image2544.o (.data); + build/OUTCODE/assets/images/split/image2545.o (.data); + build/OUTCODE/assets/images/split/image2546.o (.data); + build/OUTCODE/assets/images/split/image2547.o (.data); + build/OUTCODE/assets/images/split/image2548.o (.data); + build/OUTCODE/assets/images/split/image2549.o (.data); + build/OUTCODE/assets/images/split/image2550.o (.data); + build/OUTCODE/assets/images/split/image2551.o (.data); + build/OUTCODE/assets/images/split/image2552.o (.data); + build/OUTCODE/assets/images/split/image2553.o (.data); + build/OUTCODE/assets/images/split/image2554.o (.data); + build/OUTCODE/assets/images/split/image2555.o (.data); + build/OUTCODE/assets/images/split/image2556.o (.data); + build/OUTCODE/assets/images/split/image2557.o (.data); + build/OUTCODE/assets/images/split/image2558.o (.data); + build/OUTCODE/assets/images/split/image2559.o (.data); + build/OUTCODE/assets/images/split/image2560.o (.data); + build/OUTCODE/assets/images/split/image2561.o (.data); + build/OUTCODE/assets/images/split/image2562.o (.data); + build/OUTCODE/assets/images/split/image2563.o (.data); + build/OUTCODE/assets/images/split/image2564.o (.data); + build/OUTCODE/assets/images/split/image2565.o (.data); + build/OUTCODE/assets/images/split/image2566.o (.data); + build/OUTCODE/assets/images/split/image2567.o (.data); + build/OUTCODE/assets/images/split/image2568.o (.data); + build/OUTCODE/assets/images/split/image2569.o (.data); + build/OUTCODE/assets/images/split/image2570.o (.data); + build/OUTCODE/assets/images/split/image2571.o (.data); + build/OUTCODE/assets/images/split/image2572.o (.data); + build/OUTCODE/assets/images/split/image2573.o (.data); + build/OUTCODE/assets/images/split/image2574.o (.data); + build/OUTCODE/assets/images/split/image2575.o (.data); + build/OUTCODE/assets/images/split/image2576.o (.data); + build/OUTCODE/assets/images/split/image2577.o (.data); + build/OUTCODE/assets/images/split/image2578.o (.data); + build/OUTCODE/assets/images/split/image2579.o (.data); + build/OUTCODE/assets/images/split/image2580.o (.data); + build/OUTCODE/assets/images/split/image2581.o (.data); + build/OUTCODE/assets/images/split/image2582.o (.data); + build/OUTCODE/assets/images/split/image2583.o (.data); + build/OUTCODE/assets/images/split/image2584.o (.data); + build/OUTCODE/assets/images/split/image2585.o (.data); + build/OUTCODE/assets/images/split/image2586.o (.data); + build/OUTCODE/assets/images/split/image2587.o (.data); + build/OUTCODE/assets/images/split/image2588.o (.data); + build/OUTCODE/assets/images/split/image2589.o (.data); + build/OUTCODE/assets/images/split/image2590.o (.data); + build/OUTCODE/assets/images/split/image2591.o (.data); + build/OUTCODE/assets/images/split/image2592.o (.data); + build/OUTCODE/assets/images/split/image2593.o (.data); + build/OUTCODE/assets/images/split/image2594.o (.data); + build/OUTCODE/assets/images/split/image2595.o (.data); + build/OUTCODE/assets/images/split/image2596.o (.data); + build/OUTCODE/assets/images/split/image2597.o (.data); + build/OUTCODE/assets/images/split/image2598.o (.data); + build/OUTCODE/assets/images/split/image2599.o (.data); + build/OUTCODE/assets/images/split/image2600.o (.data); + build/OUTCODE/assets/images/split/image2601.o (.data); + build/OUTCODE/assets/images/split/image2602.o (.data); + build/OUTCODE/assets/images/split/image2603.o (.data); + build/OUTCODE/assets/images/split/image2604.o (.data); + build/OUTCODE/assets/images/split/image2605.o (.data); + build/OUTCODE/assets/images/split/image2606.o (.data); + build/OUTCODE/assets/images/split/image2607.o (.data); + build/OUTCODE/assets/images/split/image2608.o (.data); + build/OUTCODE/assets/images/split/image2609.o (.data); + build/OUTCODE/assets/images/split/image2610.o (.data); + build/OUTCODE/assets/images/split/image2611.o (.data); + build/OUTCODE/assets/images/split/image2612.o (.data); + build/OUTCODE/assets/images/split/image2613.o (.data); + build/OUTCODE/assets/images/split/image2614.o (.data); + build/OUTCODE/assets/images/split/image2615.o (.data); + build/OUTCODE/assets/images/split/image2616.o (.data); + build/OUTCODE/assets/images/split/image2617.o (.data); + build/OUTCODE/assets/images/split/image2618.o (.data); + build/OUTCODE/assets/images/split/image2619.o (.data); + build/OUTCODE/assets/images/split/image2620.o (.data); + build/OUTCODE/assets/images/split/image2621.o (.data); + build/OUTCODE/assets/images/split/image2622.o (.data); + build/OUTCODE/assets/images/split/image2623.o (.data); + build/OUTCODE/assets/images/split/image2624.o (.data); + build/OUTCODE/assets/images/split/image2625.o (.data); + build/OUTCODE/assets/images/split/image2626.o (.data); + build/OUTCODE/assets/images/split/image2627.o (.data); + build/OUTCODE/assets/images/split/image2628.o (.data); + build/OUTCODE/assets/images/split/image2629.o (.data); + build/OUTCODE/assets/images/split/image2630.o (.data); + build/OUTCODE/assets/images/split/image2631.o (.data); + build/OUTCODE/assets/images/split/image2632.o (.data); + build/OUTCODE/assets/images/split/image2633.o (.data); + build/OUTCODE/assets/images/split/image2634.o (.data); + build/OUTCODE/assets/images/split/image2635.o (.data); + build/OUTCODE/assets/images/split/image2636.o (.data); + build/OUTCODE/assets/images/split/image2637.o (.data); + build/OUTCODE/assets/images/split/image2638.o (.data); + build/OUTCODE/assets/images/split/image2639.o (.data); + build/OUTCODE/assets/images/split/image2640.o (.data); + build/OUTCODE/assets/images/split/image2641.o (.data); + build/OUTCODE/assets/images/split/image2642.o (.data); + build/OUTCODE/assets/images/split/image2643.o (.data); + build/OUTCODE/assets/images/split/image2644.o (.data); + build/OUTCODE/assets/images/split/image2645.o (.data); + build/OUTCODE/assets/images/split/image2646.o (.data); + build/OUTCODE/assets/images/split/image2647.o (.data); + build/OUTCODE/assets/images/split/image2648.o (.data); + build/OUTCODE/assets/images/split/image2649.o (.data); + build/OUTCODE/assets/images/split/image2650.o (.data); + build/OUTCODE/assets/images/split/image2651.o (.data); + build/OUTCODE/assets/images/split/image2652.o (.data); + build/OUTCODE/assets/images/split/image2653.o (.data); + build/OUTCODE/assets/images/split/image2654.o (.data); + build/OUTCODE/assets/images/split/image2655.o (.data); + build/OUTCODE/assets/images/split/image2656.o (.data); + build/OUTCODE/assets/images/split/image2657.o (.data); + build/OUTCODE/assets/images/split/image2658.o (.data); + build/OUTCODE/assets/images/split/image2659.o (.data); + build/OUTCODE/assets/images/split/image2660.o (.data); + build/OUTCODE/assets/images/split/image2661.o (.data); + build/OUTCODE/assets/images/split/image2662.o (.data); + build/OUTCODE/assets/images/split/image2663.o (.data); + build/OUTCODE/assets/images/split/image2664.o (.data); + build/OUTCODE/assets/images/split/image2665.o (.data); + build/OUTCODE/assets/images/split/image2666.o (.data); + build/OUTCODE/assets/images/split/image2667.o (.data); + build/OUTCODE/assets/images/split/image2668.o (.data); + build/OUTCODE/assets/images/split/image2669.o (.data); + build/OUTCODE/assets/images/split/image2670.o (.data); + build/OUTCODE/assets/images/split/image2671.o (.data); + build/OUTCODE/assets/images/split/image2672.o (.data); + build/OUTCODE/assets/images/split/image2673.o (.data); + build/OUTCODE/assets/images/split/image2674.o (.data); + build/OUTCODE/assets/images/split/image2675.o (.data); + build/OUTCODE/assets/images/split/image2676.o (.data); + build/OUTCODE/assets/images/split/image2677.o (.data); + build/OUTCODE/assets/images/split/image2678.o (.data); + build/OUTCODE/assets/images/split/image2679.o (.data); + build/OUTCODE/assets/images/split/image2680.o (.data); + build/OUTCODE/assets/images/split/image2681.o (.data); + build/OUTCODE/assets/images/split/image2682.o (.data); + build/OUTCODE/assets/images/split/image2683.o (.data); + build/OUTCODE/assets/images/split/image2684.o (.data); + build/OUTCODE/assets/images/split/image2685.o (.data); + build/OUTCODE/assets/images/split/image2686.o (.data); + build/OUTCODE/assets/images/split/image2687.o (.data); + build/OUTCODE/assets/images/split/image2688.o (.data); + build/OUTCODE/assets/images/split/image2689.o (.data); + build/OUTCODE/assets/images/split/image2690.o (.data); + build/OUTCODE/assets/images/split/image2691.o (.data); + build/OUTCODE/assets/images/split/image2692.o (.data); + build/OUTCODE/assets/images/split/image2693.o (.data); + build/OUTCODE/assets/images/split/image2694.o (.data); + build/OUTCODE/assets/images/split/image2695.o (.data); + build/OUTCODE/assets/images/split/image2696.o (.data); + build/OUTCODE/assets/images/split/image2697.o (.data); + build/OUTCODE/assets/images/split/image2698.o (.data); diff --git a/ld/lib.bss.ld.inc b/ld/lib.bss.ld.inc new file mode 100644 index 00000000..74fd69bf --- /dev/null +++ b/ld/lib.bss.ld.inc @@ -0,0 +1,252 @@ + build/OUTCODE/src/boot.o (.bss); + build/OUTCODE/src/init.o (.bss); + build/OUTCODE/src/sched.o (.bss); + build/OUTCODE/src/osMapTLB.o (.bss); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.bss); + build/OUTCODE/src/libultrare/io/pimgr.o (.bss); +#endif + build/OUTCODE/src/tlb_manage.o (.bss); + build/OUTCODE/src/tlb_random.o (.bss); + build/OUTCODE/src/tlb_resolve.o (.bss); + build/OUTCODE/src/audi.o (.bss); + build/OUTCODE/src/speed_graph.o (.bss); + build/OUTCODE/src/fr.o (.bss); + build/OUTCODE/src/deb.o (.bss); + build/OUTCODE/src/crash.o (.bss); + /*deb_print may be part of fault per pd beta (.bss);*/ + /*build/OUTCODE/src/deb_print.o (.bss);*/ + build/OUTCODE/src/getra.o (.bss); + build/OUTCODE/src/ramrom.o (.bss); + build/OUTCODE/src/boss.o (.bss); + build/OUTCODE/src/music.o (.bss); + build/OUTCODE/src/snd.o (.bss); + build/OUTCODE/src/memp.o (.bss); + build/OUTCODE/src/mema.o (.bss); + build/OUTCODE/src/random.o (.bss); + build/OUTCODE/src/token.o (.bss); + build/OUTCODE/src/str.o (.bss); + build/OUTCODE/src/sprintf.o (.bss); + build/OUTCODE/src/pi.o (.bss); + build/OUTCODE/src/vi.o (.bss); + build/OUTCODE/src/debugmenu.o (.bss); + build/OUTCODE/src/joy.o (.bss); + build/OUTCODE/src/motor.o (.bss); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.bss); +#endif + build/OUTCODE/src/rmon.o (.bss); +#ifdef ENABLE_USB + build/OUTCODE/src/usb.o (.bss); +#endif + /*build/OUTCODE/src/libultra/osPiRawStartDma.o (.bss);*/ + build/OUTCODE/src/libultra/io/pirawdma.o (.bss); + build/OUTCODE/src/libultra/io/pigetstat.o (.bss); + build/OUTCODE/src/libultrare/os/initialize.o (.bss); + build/OUTCODE/src/libultra/os/writebackdcacheall.o (.bss); + build/OUTCODE/src/libultra/os/invalicache.o (.bss); + build/OUTCODE/src/libultra/os/unmaptlb.o (.bss); + build/OUTCODE/src/libultra/os/getfpccsr.o (.bss); + build/OUTCODE/src/libultra/os/setfpccsr.o (.bss); + build/OUTCODE/src/libultra/os/createthread.o (.bss); + build/OUTCODE/src/libultra/os/startthread.o (.bss); + build/OUTCODE/src/libultra/os/createmesgqueue.o (.bss); + build/OUTCODE/src/libultra/os/parameters.o (.bss); + build/OUTCODE/src/libultra/os/stopthread.o (.bss); + build/OUTCODE/src/libultra/os/setthreadpri.o (.bss); + build/OUTCODE/src/libultra/os/getcount.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.bss); +#endif + build/OUTCODE/src/libultrare/io/vitbl.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/os/seteventmesg.o (.bss); + build/OUTCODE/src/libultra/io/visetevent.o (.bss); + build/OUTCODE/src/libultra/os/setintmask.o (.bss); + build/OUTCODE/src/libultra/os/recvmesg.o (.bss); + build/OUTCODE/src/libultra/os/sendmesg.o (.bss); + build/OUTCODE/src/libultra/io/visetmode.o (.bss); + build/OUTCODE/src/libultra/io/visetxscale.o (.bss); + build/OUTCODE/src/libultra/io/visetyscale.o (.bss); + build/OUTCODE/src/libultra/io/virepeatline.o (.bss); + build/OUTCODE/src/libultra/io/viblack.o (.bss); + build/OUTCODE/src/libultra/io/sptaskyielded.o (.bss); + build/OUTCODE/src/libultra/io/dpctr.o (.bss); + build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.bss); + build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.bss); + build/OUTCODE/src/libultra/io/viswapbuf.o (.bss); + build/OUTCODE/src/libultra/io/dpsetstat.o (.bss); + build/OUTCODE/src/libultrare/io/sptask.o (.bss); + build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.bss); + build/OUTCODE/src/libultra/io/sptaskyield.o (.bss); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/timerintr.o (.bss); + build/OUTCODE/src/libultra/os/getthreadpri.o (.bss); + build/OUTCODE/src/libultra/os/interrupt.o (.bss); + build/OUTCODE/src/libultrare/io/vi.o (.bss); + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.bss); + build/OUTCODE/src/libultra/io/viswapcontext.o (.bss); + build/OUTCODE/src/libultra/io/piacs.o (.bss); + build/OUTCODE/src/libultrare/io/epirawdma.o (.bss); + build/OUTCODE/src/libultrare/io/devmgr.o (.bss); +#endif + build/OUTCODE/src/libultra/os/gettlbhi.o (.bss); + build/OUTCODE/src/libultra/os/virtualtophysical.o (.bss); + build/OUTCODE/src/libultra/io/aisetfreq.o (.bss); + build/OUTCODE/src/libultra/audio/sl.o (.bss); + build/OUTCODE/src/libultra/audio/heapalloc.o (.bss); + build/OUTCODE/src/libultra/os/gettime.o (.bss); + build/OUTCODE/src/libultra/libc/ll.o (.bss); /*edited*/ + build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.bss); + build/OUTCODE/src/libultra/io/aigetlen.o (.bss); + build/OUTCODE/src/libultra/audio/synthesizer.o (.bss); + build/OUTCODE/src/libultra/io/pidma.o (.bss); + build/OUTCODE/src/libultra/io/visetspecial.o (.bss); + build/OUTCODE/src/libultra/libc/bcopy.o (.bss); + build/OUTCODE/src/libultra/gu/perspective.o (.bss); + build/OUTCODE/src/libultra/gu/mtxutil.o (.bss); + build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.bss); + build/OUTCODE/src/libultra/os/exception.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/os/thread.o (.bss); + build/OUTCODE/src/libultra/os/yieldthread.o (.bss); + build/OUTCODE/src/libultra/os/invaldcache.o (.bss); + build/OUTCODE/src/libultra/os/writebackdcache.o (.bss); + build/OUTCODE/src/libultra/os/settimer.o (.bss); + build/OUTCODE/src/libultra/audio/heapinit.o (.bss); + build/OUTCODE/src/libultra/audio/bnkf.o (.bss); + build/OUTCODE/src/libultra/audio/csplayer.o (.bss); + build/OUTCODE/src/libultra/audio/seqpsetbank.o (.bss); + build/OUTCODE/src/libultra/audio/cspgetstate.o (.bss); + build/OUTCODE/src/libultra/audio/cseq.o (.bss); + build/OUTCODE/src/libultra/audio/cspsetseq.o (.bss); + build/OUTCODE/src/libultra/audio/cspplay.o (.bss); + build/OUTCODE/src/libultra/audio/cspstop.o (.bss); + build/OUTCODE/src/libultra/audio/cspsetvol.o (.bss); + build/OUTCODE/src/libultra/audio/event.o (.bss); + build/OUTCODE/src/libultra/audio/synaddplayer.o (.bss); + build/OUTCODE/src/libultra/audio/synallocvoice.o (.bss); + build/OUTCODE/src/libultra/audio/synsetvol.o (.bss); + build/OUTCODE/src/libultra/audio/synstartvoice.o (.bss); + build/OUTCODE/src/libultra/audio/synsetpan.o (.bss); + build/OUTCODE/src/libultra/audio/synsetpitch.o (.bss); + build/OUTCODE/src/libultra/audio/synsetfxmix.o (.bss); + build/OUTCODE/src/libultra/audio/synstopvoice.o (.bss); + build/OUTCODE/src/libultra/audio/synfreevoice.o (.bss); + build/OUTCODE/src/libultra/audio/cents2ratio.o (.bss); + build/OUTCODE/src/libultra/io/piread.o (.bss); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/piwrite.o (.bss); +#endif + build/OUTCODE/src/libultra/libc/string.o (.bss); + build/OUTCODE/src/libultrare/libc/xprintf.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/pimgr.o (.bss); +#endif + build/OUTCODE/src/libultrare/io/pfsinit.o (.bss); + build/OUTCODE/src/libultrare/io/controller.o (.bss); + build/OUTCODE/src/libultra/io/contquery.o (.bss); + build/OUTCODE/src/libultrare/io/contreaddata.o (.bss); + build/OUTCODE/src/libultrare/io/conteepprobe.o (.bss); + build/OUTCODE/src/libultrare/io/conteepread.o (.bss); + build/OUTCODE/src/libultrare/io/conteepwrite.o (.bss); + build/OUTCODE/src/libultrare/io/conteeplongread.o (.bss); + build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.bss); + build/OUTCODE/src/libultrare/io/pfsisplug.o (.bss); + build/OUTCODE/src/libultra/io/siacs.o (.bss); + build/OUTCODE/src/libultra/io/sirawdma.o (.bss); + build/OUTCODE/src/libultra/io/crc.o (.bss); + build/OUTCODE/src/libultrare/io/contramwrite.o (.bss); + build/OUTCODE/src/libultrare/io/contramread.o (.bss); + build/OUTCODE/src/libultra/gu/align.o (.bss); + build/OUTCODE/src/libultra/gu/ortho.o (.bss); + build/OUTCODE/src/libultra/gu/coss.o (.bss); + build/OUTCODE/src/libultra/gu/sins.o (.bss); + build/OUTCODE/src/libultra/gu/translate.o (.bss); + build/OUTCODE/src/libultra/libc/bcmp.o (.bss); + build/OUTCODE/src/libultra/gu/scale.o (.bss); + build/OUTCODE/src/libultra/gu/lookatref.o (.bss); + build/OUTCODE/src/libultra/gu/lookat.o (.bss); + build/OUTCODE/src/libultra/gu/rotate.o (.bss); + build/OUTCODE/src/libultra/libc/llcvt.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/os/setsr.o (.bss); + build/OUTCODE/src/libultra/os/getsr.o (.bss); + build/OUTCODE/src/libultra/io/sirawread.o (.bss); + build/OUTCODE/src/libultra/io/sirawwrite.o (.bss); + build/OUTCODE/src/libultra/io/pirawread.o (.bss); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/pirawwrite.o (.bss); +#endif + build/OUTCODE/src/libultra/libc/bzero.o (.bss); + build/OUTCODE/src/libultra/os/sethwinterrupt.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.bss); + build/OUTCODE/src/libultra/os/interrupt.o (.bss); + build/OUTCODE/src/libultra/os/timerintr.o (.bss); +#endif + build/OUTCODE/src/libultra/os/kdebugserver.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/getthreadpri.o (.bss); + build/OUTCODE/src/libultrare/io/vi.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.bss); + build/OUTCODE/src/libultra/io/viswapcontext.o (.bss); +#endif + build/OUTCODE/src/libultra/io/spgetstat.o (.bss); + build/OUTCODE/src/libultra/io/spsetstat.o (.bss); + build/OUTCODE/src/libultra/io/spsetpc.o (.bss); + build/OUTCODE/src/libultra/io/sprawdma.o (.bss); + build/OUTCODE/src/libultra/io/sp.o (.bss); + build/OUTCODE/src/libultra/io/dp.o (.bss); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/setcompare.o (.bss); + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.bss); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.bss); +#endif + build/OUTCODE/src/libultra/os/probetlb.o (.bss); + build/OUTCODE/src/libultra/audio/syndelete.o (.bss); + build/OUTCODE/src/libultra/io/ai.o (.bss); + build/OUTCODE/src/libultrare/audio/drvrNew.o (.bss); + build/OUTCODE/src/libultra/audio/synallocfx.o (.bss); + build/OUTCODE/src/libultra/audio/mainbus.o (.bss); + build/OUTCODE/src/libultra/audio/load.o (.bss); + build/OUTCODE/src/libultra/audio/resample.o (.bss); + build/OUTCODE/src/libultrare/audio/env.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/audio/auxbus.o (.bss); + build/OUTCODE/src/libultra/audio/save.o (.bss); + build/OUTCODE/src/libultra/os/jammesg.o (.bss); + build/OUTCODE/src/libultra/io/pigetcmdq.o (.bss); + build/OUTCODE/src/libultra/gu/cosf.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/gu/sinf.o (.bss); /*edited*/ + build/OUTCODE/src/libultrare/os/destroythread.o (.bss); + build/OUTCODE/src/libultra/audio/seqplayer.o (.bss); + build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.bss); + build/OUTCODE/src/libultra/audio/copy.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/io/piacs.o (.bss); +#endif + build/OUTCODE/src/libultra/libc/xlitob.o (.bss); + build/OUTCODE/src/libultra/libc/xldtob.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/epirawdma.o (.bss); + build/OUTCODE/src/libultrare/io/devmgr.o (.bss); +#endif + build/OUTCODE/src/libultra/io/contpfs.o (.bss); + build/OUTCODE/src/libultra/io/si.o (.bss); + build/OUTCODE/src/libultra/gu/normalize.o (.bss); + build/OUTCODE/src/libultra/gu/sqrtf.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leodiskinit.o (.bss); + build/OUTCODE/src/libultra/os/setcompare.o (.bss); +#endif + build/OUTCODE/src/libultra/audio/filter.o (.bss); + build/OUTCODE/src/libultrare/audio/reverb.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/gu/libm_vals.o (.bss); /*edited*/ + build/OUTCODE/src/libultra/audio/seq.o (.bss); + build/OUTCODE/src/libultra/audio/synsetpriority.o (.bss); + build/OUTCODE/src/libultra/libc/ldiv.o (.bss); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.bss); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.bss); +#endif + build/OUTCODE/src/libultra/io/vimodentsclan1.o (.bss); + build/OUTCODE/src/libultrare/io/vimodepallan1.o (.bss); + build/OUTCODE/src/libultrare/ultra80069080.o (.bss); /*edited*/ + /*build/OUTCODE/src/libultra/libultra.a:libultra.o (.bss);*/ diff --git a/ld/lib.data.ld.inc b/ld/lib.data.ld.inc new file mode 100644 index 00000000..28e5c209 --- /dev/null +++ b/ld/lib.data.ld.inc @@ -0,0 +1,256 @@ + build/OUTCODE/src/boot.o (.data); + build/OUTCODE/src/init.o (.data); + build/OUTCODE/src/sched.o (.data); + build/OUTCODE/src/osMapTLB.o (.data); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.data); + build/OUTCODE/src/libultrare/io/pimgr.o (.data); +#endif + build/OUTCODE/src/tlb_manage.o (.data); + build/OUTCODE/src/tlb_random.o (.data); + build/OUTCODE/src/tlb_resolve.o (.data); + build/OUTCODE/src/tlb_hardwire.o (.data); + build/OUTCODE/src/audi.o (.data); + build/OUTCODE/src/speed_graph.o (.data); + build/OUTCODE/src/fr.o (.data); + build/OUTCODE/src/deb.o (.data); + build/OUTCODE/src/crash.o (.data); + /*deb_print may be part of fault per pd beta (.data);*/ + /*build/OUTCODE/src/deb_print.o (.data);*/ + build/OUTCODE/src/getra.o (.data); + build/OUTCODE/src/ramrom.o (.data); + build/OUTCODE/src/boss.o (.data); + build/OUTCODE/src/music.o (.data); + build/OUTCODE/src/snd.o (.data); + build/OUTCODE/src/memp.o (.data); + build/OUTCODE/src/mema.o (.data); + build/OUTCODE/src/random.o (.data); + build/OUTCODE/src/token.o (.data); + build/OUTCODE/src/str.o (.data); + build/OUTCODE/src/sprintf.o (.data); + build/OUTCODE/src/pi.o (.data); + build/OUTCODE/src/vi.o (.data); + build/OUTCODE/src/debugmenu.o (.data); + build/OUTCODE/src/joy.o (.data); + build/OUTCODE/src/motor.o (.data); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.data); +#endif + build/OUTCODE/src/rmon.o (.data); +#ifdef ENABLE_USB + build/OUTCODE/src/usb.o (.data); +#endif + build/OUTCODE/src/libultra/io/pirawdma.o (.data); + build/OUTCODE/src/libultra/io/pigetstat.o (.data); + build/OUTCODE/src/libultrare/os/initialize.o (.data); + build/OUTCODE/src/libultra/os/writebackdcacheall.o (.data); + build/OUTCODE/src/libultra/os/invalicache.o (.data); + build/OUTCODE/src/libultra/os/unmaptlb.o (.data); + build/OUTCODE/src/libultra/os/getfpccsr.o (.data); + build/OUTCODE/src/libultra/os/setfpccsr.o (.data); + build/OUTCODE/src/libultra/os/createthread.o (.data); + build/OUTCODE/src/libultra/os/startthread.o (.data); + build/OUTCODE/src/libultra/os/createmesgqueue.o (.data); + build/OUTCODE/src/libultra/os/parameters.o (.data); + build/OUTCODE/src/libultra/os/stopthread.o (.data); + build/OUTCODE/src/libultra/os/setthreadpri.o (.data); + build/OUTCODE/src/libultra/os/getcount.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.data); +#endif + build/OUTCODE/src/libultrare/io/vitbl.o (.data); /*edited*/ + build/OUTCODE/src/libultra/os/seteventmesg.o (.data); + build/OUTCODE/src/libultra/io/visetevent.o (.data); + build/OUTCODE/src/libultra/os/setintmask.o (.data); + build/OUTCODE/src/libultra/os/recvmesg.o (.data); + build/OUTCODE/src/libultra/os/sendmesg.o (.data); + build/OUTCODE/src/libultra/io/visetmode.o (.data); + build/OUTCODE/src/libultra/io/visetxscale.o (.data); + build/OUTCODE/src/libultra/io/visetyscale.o (.data); + build/OUTCODE/src/libultra/io/virepeatline.o (.data); + build/OUTCODE/src/libultra/io/viblack.o (.data); + build/OUTCODE/src/libultra/io/sptaskyielded.o (.data); + build/OUTCODE/src/libultra/io/dpctr.o (.data); + build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.data); + build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.data); + build/OUTCODE/src/libultra/io/viswapbuf.o (.data); + build/OUTCODE/src/libultra/io/dpsetstat.o (.data); + build/OUTCODE/src/libultrare/io/sptask.o (.data); + build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.data); + build/OUTCODE/src/libultra/io/sptaskyield.o (.data); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/timerintr.o (.data); + build/OUTCODE/src/libultra/os/getthreadpri.o (.data); + build/OUTCODE/src/libultra/os/interrupt.o (.data); + build/OUTCODE/src/libultrare/io/vi.o (.data); + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.data); + build/OUTCODE/src/libultra/io/viswapcontext.o (.data); + build/OUTCODE/src/libultra/io/piacs.o (.data); + build/OUTCODE/src/libultrare/io/epirawdma.o (.data); + build/OUTCODE/src/libultrare/io/devmgr.o (.data); +#endif + build/OUTCODE/src/libultra/os/gettlbhi.o (.data); + build/OUTCODE/src/libultra/os/virtualtophysical.o (.data); + build/OUTCODE/src/libultra/io/aisetfreq.o (.data); + build/OUTCODE/src/libultra/audio/sl.o (.data); + build/OUTCODE/src/libultra/audio/heapalloc.o (.data); + build/OUTCODE/src/libultra/os/gettime.o (.data); + build/OUTCODE/src/libultra/libc/ll.o (.data); /*edited*/ + build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.data); + build/OUTCODE/src/libultra/io/aigetlen.o (.data); + build/OUTCODE/src/libultra/audio/synthesizer.o (.data); + build/OUTCODE/src/libultra/io/pidma.o (.data); + build/OUTCODE/src/libultra/io/visetspecial.o (.data); + build/OUTCODE/src/libultra/libc/bcopy.o (.data); + build/OUTCODE/src/libultra/gu/perspective.o (.data); + build/OUTCODE/src/libultra/gu/mtxutil.o (.data); + build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.data); + build/OUTCODE/src/libultra/os/exception.o (.data); /*edited*/ + build/OUTCODE/src/libultra/os/thread.o (.data); + build/OUTCODE/src/libultra/os/yieldthread.o (.data); + build/OUTCODE/src/libultra/os/invaldcache.o (.data); + build/OUTCODE/src/libultra/os/writebackdcache.o (.data); + build/OUTCODE/src/libultra/os/settimer.o (.data); + build/OUTCODE/src/libultra/audio/heapinit.o (.data); + build/OUTCODE/src/libultra/audio/bnkf.o (.data); + build/OUTCODE/src/libultra/audio/csplayer.o (.data); + build/OUTCODE/src/libultra/audio/seqpsetbank.o (.data); + build/OUTCODE/src/libultra/audio/cspgetstate.o (.data); + build/OUTCODE/src/libultra/audio/cseq.o (.data); + build/OUTCODE/src/libultra/audio/cspsetseq.o (.data); + build/OUTCODE/src/libultra/audio/cspplay.o (.data); + build/OUTCODE/src/libultra/audio/cspstop.o (.data); + build/OUTCODE/src/libultra/audio/cspsetvol.o (.data); + build/OUTCODE/src/libultra/audio/event.o (.data); + build/OUTCODE/src/libultra/audio/synaddplayer.o (.data); + build/OUTCODE/src/libultra/audio/synallocvoice.o (.data); + build/OUTCODE/src/libultra/audio/synsetvol.o (.data); + build/OUTCODE/src/libultra/audio/synstartvoice.o (.data); + build/OUTCODE/src/libultra/audio/synsetpan.o (.data); + build/OUTCODE/src/libultra/audio/synsetpitch.o (.data); + build/OUTCODE/src/libultra/audio/synsetfxmix.o (.data); + build/OUTCODE/src/libultra/audio/synstopvoice.o (.data); + build/OUTCODE/src/libultra/audio/synfreevoice.o (.data); + build/OUTCODE/src/libultra/audio/cents2ratio.o (.data); + build/OUTCODE/src/libultra/io/piread.o (.data); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/piwrite.o (.data); +#endif + build/OUTCODE/src/libultra/libc/string.o (.data); + build/OUTCODE/src/libultrare/libc/xprintf.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/pimgr.o (.data); +#endif + build/OUTCODE/src/libultrare/io/pfsinit.o (.data); + build/OUTCODE/src/libultrare/io/controller.o (.data); + build/OUTCODE/src/libultra/io/contquery.o (.data); + build/OUTCODE/src/libultrare/io/contreaddata.o (.data); + build/OUTCODE/src/libultrare/io/conteepprobe.o (.data); + build/OUTCODE/src/libultrare/io/conteepread.o (.data); + build/OUTCODE/src/libultrare/io/conteepwrite.o (.data); + build/OUTCODE/src/libultrare/io/conteeplongread.o (.data); + build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.data); + build/OUTCODE/src/libultrare/io/pfsisplug.o (.data); + build/OUTCODE/src/libultra/io/siacs.o (.data); + build/OUTCODE/src/libultra/io/sirawdma.o (.data); + build/OUTCODE/src/libultra/io/crc.o (.data); + build/OUTCODE/src/libultrare/io/contramwrite.o (.data); + build/OUTCODE/src/libultrare/io/contramread.o (.data); + build/OUTCODE/src/libultra/gu/align.o (.data); + build/OUTCODE/src/libultra/gu/ortho.o (.data); + build/OUTCODE/src/libultra/gu/coss.o (.data); + build/OUTCODE/src/libultra/gu/sins.o (.data); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/io/vimodentsclan1.o (.data); + build/OUTCODE/src/libultrare/io/vimodepallan1.o (.data); +#endif + build/OUTCODE/src/libultra/gu/translate.o (.data); + build/OUTCODE/src/libultra/libc/bcmp.o (.data); + build/OUTCODE/src/libultra/gu/scale.o (.data); + build/OUTCODE/src/libultra/gu/lookatref.o (.data); + build/OUTCODE/src/libultra/gu/lookat.o (.data); + build/OUTCODE/src/libultra/gu/rotate.o (.data); + build/OUTCODE/src/libultra/libc/llcvt.o (.data); /*edited*/ + build/OUTCODE/src/libultra/os/setsr.o (.data); + build/OUTCODE/src/libultra/os/getsr.o (.data); + build/OUTCODE/src/libultra/io/sirawread.o (.data); + build/OUTCODE/src/libultra/io/sirawwrite.o (.data); + build/OUTCODE/src/libultra/io/pirawread.o (.data); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/pirawwrite.o (.data); +#endif + build/OUTCODE/src/libultra/libc/bzero.o (.data); + build/OUTCODE/src/libultra/os/sethwinterrupt.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.data); + build/OUTCODE/src/libultra/os/interrupt.o (.data); + build/OUTCODE/src/libultra/os/timerintr.o (.data); +#endif + build/OUTCODE/src/libultra/os/kdebugserver.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/getthreadpri.o (.data); + build/OUTCODE/src/libultrare/io/vi.o (.data); /*edited*/ + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.data); + build/OUTCODE/src/libultra/io/viswapcontext.o (.data); +#endif + build/OUTCODE/src/libultra/io/spgetstat.o (.data); + build/OUTCODE/src/libultra/io/spsetstat.o (.data); + build/OUTCODE/src/libultra/io/spsetpc.o (.data); + build/OUTCODE/src/libultra/io/sprawdma.o (.data); + build/OUTCODE/src/libultra/io/sp.o (.data); + build/OUTCODE/src/libultra/io/dp.o (.data); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/setcompare.o (.data); + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.data); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.data); +#endif + build/OUTCODE/src/libultra/os/probetlb.o (.data); + build/OUTCODE/src/libultra/audio/syndelete.o (.data); + build/OUTCODE/src/libultra/io/ai.o (.data); + build/OUTCODE/src/libultrare/audio/drvrNew.o (.data); + build/OUTCODE/src/libultra/audio/synallocfx.o (.data); + build/OUTCODE/src/libultra/audio/mainbus.o (.data); + build/OUTCODE/src/libultra/audio/load.o (.data); + build/OUTCODE/src/libultra/audio/resample.o (.data); + build/OUTCODE/src/libultrare/audio/env.o (.data); /*edited*/ + build/OUTCODE/src/libultra/audio/auxbus.o (.data); + build/OUTCODE/src/libultra/audio/save.o (.data); + build/OUTCODE/src/libultra/os/jammesg.o (.data); + build/OUTCODE/src/libultra/io/pigetcmdq.o (.data); + build/OUTCODE/src/libultra/gu/cosf.o (.data); /*edited*/ + build/OUTCODE/src/libultra/gu/sinf.o (.data); /*edited*/ + build/OUTCODE/src/libultrare/os/destroythread.o (.data); + build/OUTCODE/src/libultra/audio/seqplayer.o (.data); + build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.data); + build/OUTCODE/src/libultra/audio/copy.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/io/piacs.o (.data); +#endif + build/OUTCODE/src/libultra/libc/xlitob.o (.data); + build/OUTCODE/src/libultra/libc/xldtob.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/epirawdma.o (.data); + build/OUTCODE/src/libultrare/io/devmgr.o (.data); +#endif + build/OUTCODE/src/libultra/io/contpfs.o (.data); + build/OUTCODE/src/libultra/io/si.o (.data); + build/OUTCODE/src/libultra/gu/normalize.o (.data); + build/OUTCODE/src/libultra/gu/sqrtf.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leodiskinit.o (.data); + build/OUTCODE/src/libultra/os/setcompare.o (.data); +#endif + build/OUTCODE/src/libultra/audio/filter.o (.data); + build/OUTCODE/src/libultrare/audio/reverb.o (.data); /*edited*/ + build/OUTCODE/src/libultra/gu/libm_vals.o (.data); /*edited*/ + build/OUTCODE/src/libultra/audio/seq.o (.data); + build/OUTCODE/src/libultra/audio/synsetpriority.o (.data); + build/OUTCODE/src/libultra/libc/ldiv.o (.data); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.data); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.data); + build/OUTCODE/src/libultra/io/vimodentsclan1.o (.data); + build/OUTCODE/src/libultrare/io/vimodepallan1.o (.data); +#endif + build/OUTCODE/src/libultrare/ultra80069080.o (.data); /*edited*/ + /*build/OUTCODE/src/libultra/libultra.a:libultra.o (.data);*/ diff --git a/ld/lib.rodata.ld.inc b/ld/lib.rodata.ld.inc new file mode 100644 index 00000000..1516b647 --- /dev/null +++ b/ld/lib.rodata.ld.inc @@ -0,0 +1,254 @@ + build/OUTCODE/src/aspboot.o (.rodata); + build/OUTCODE/src/boot.o (.rodata); + build/OUTCODE/src/init.o (.rodata); + build/OUTCODE/src/sched.o (.rodata); + build/OUTCODE/src/osMapTLB.o (.rodata); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.rodata); + build/OUTCODE/src/libultrare/io/pimgr.o (.rodata); +#endif + build/OUTCODE/src/tlb_manage.o (.rodata); + build/OUTCODE/src/tlb_random.o (.rodata); + build/OUTCODE/src/tlb_resolve.o (.rodata); + build/OUTCODE/src/tlb_hardwire.o (.rodata); + build/OUTCODE/src/audi.o (.rodata); + build/OUTCODE/src/speed_graph.o (.rodata); + build/OUTCODE/src/fr.o (.rodata); + build/OUTCODE/src/deb.o (.rodata); + build/OUTCODE/src/crash.o (.rodata); + /*deb_print may be part of fault per pd beta (.rodata);*/ + /*build/OUTCODE/src/deb_print.o (.rodata);*/ + build/OUTCODE/src/getra.o (.rodata); + build/OUTCODE/src/ramrom.o (.rodata); + build/OUTCODE/src/boss.o (.rodata); + build/OUTCODE/src/music.o (.rodata); + build/OUTCODE/src/snd.o (.rodata); + build/OUTCODE/src/memp.o (.rodata); + build/OUTCODE/src/mema.o (.rodata); + build/OUTCODE/src/random.o (.rodata); + build/OUTCODE/src/token.o (.rodata); + build/OUTCODE/src/str.o (.rodata); + build/OUTCODE/src/sprintf.o (.rodata); + build/OUTCODE/src/pi.o (.rodata); + build/OUTCODE/src/vi.o (.rodata); + build/OUTCODE/src/debugmenu.o (.rodata); + build/OUTCODE/src/joy.o (.rodata); + build/OUTCODE/src/motor.o (.rodata); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.rodata); +#endif + build/OUTCODE/src/rmon.o (.rodata); +#ifdef ENABLE_USB + build/OUTCODE/src/usb.o (.rodata); +#endif + /*build/OUTCODE/src/libultra/osPiRawStartDma.o (.rodata);*/ + build/OUTCODE/src/libultra/io/pirawdma.o (.rodata); + build/OUTCODE/src/libultra/io/pigetstat.o (.rodata); + build/OUTCODE/src/libultrare/os/initialize.o (.rodata); + build/OUTCODE/src/libultra/os/writebackdcacheall.o (.rodata); + build/OUTCODE/src/libultra/os/invalicache.o (.rodata); + build/OUTCODE/src/libultra/os/unmaptlb.o (.rodata); + build/OUTCODE/src/libultra/os/getfpccsr.o (.rodata); + build/OUTCODE/src/libultra/os/setfpccsr.o (.rodata); + build/OUTCODE/src/libultra/os/createthread.o (.rodata); + build/OUTCODE/src/libultra/os/startthread.o (.rodata); + build/OUTCODE/src/libultra/os/createmesgqueue.o (.rodata); + build/OUTCODE/src/libultra/os/parameters.o (.rodata); + build/OUTCODE/src/libultra/os/stopthread.o (.rodata); + build/OUTCODE/src/libultra/os/setthreadpri.o (.rodata); + build/OUTCODE/src/libultra/os/getcount.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.rodata); +#endif + build/OUTCODE/src/libultrare/io/vitbl.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/os/seteventmesg.o (.rodata); + build/OUTCODE/src/libultra/io/visetevent.o (.rodata); + build/OUTCODE/src/libultra/os/setintmask.o (.rodata); + build/OUTCODE/src/libultra/os/recvmesg.o (.rodata); + build/OUTCODE/src/libultra/os/sendmesg.o (.rodata); + build/OUTCODE/src/libultra/io/visetmode.o (.rodata); + build/OUTCODE/src/libultra/io/visetxscale.o (.rodata); + build/OUTCODE/src/libultra/io/visetyscale.o (.rodata); + build/OUTCODE/src/libultra/io/virepeatline.o (.rodata); + build/OUTCODE/src/libultra/io/viblack.o (.rodata); + build/OUTCODE/src/libultra/io/sptaskyielded.o (.rodata); + build/OUTCODE/src/libultra/io/dpctr.o (.rodata); + build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.rodata); + build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.rodata); + build/OUTCODE/src/libultra/io/viswapbuf.o (.rodata); + build/OUTCODE/src/libultra/io/dpsetstat.o (.rodata); + build/OUTCODE/src/libultrare/io/sptask.o (.rodata); + build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.rodata); + build/OUTCODE/src/libultra/io/sptaskyield.o (.rodata); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/timerintr.o (.rodata); + build/OUTCODE/src/libultra/os/getthreadpri.o (.rodata); + build/OUTCODE/src/libultra/os/interrupt.o (.rodata); + build/OUTCODE/src/libultrare/io/vi.o (.rodata); + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.rodata); + build/OUTCODE/src/libultra/io/viswapcontext.o (.rodata); + build/OUTCODE/src/libultra/io/piacs.o (.rodata); + build/OUTCODE/src/libultrare/io/epirawdma.o (.rodata); + build/OUTCODE/src/libultrare/io/devmgr.o (.rodata); +#endif + build/OUTCODE/src/libultra/os/gettlbhi.o (.rodata); + build/OUTCODE/src/libultra/os/virtualtophysical.o (.rodata); + build/OUTCODE/src/libultra/io/aisetfreq.o (.rodata); + build/OUTCODE/src/libultra/audio/sl.o (.rodata); + build/OUTCODE/src/libultra/audio/heapalloc.o (.rodata); + build/OUTCODE/src/libultra/os/gettime.o (.rodata); + build/OUTCODE/src/libultra/libc/ll.o (.rodata); /*edited*/ + build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.rodata); + build/OUTCODE/src/libultra/io/aigetlen.o (.rodata); + build/OUTCODE/src/libultra/audio/synthesizer.o (.rodata); + build/OUTCODE/src/libultra/io/pidma.o (.rodata); + build/OUTCODE/src/libultra/io/visetspecial.o (.rodata); + build/OUTCODE/src/libultra/libc/bcopy.o (.rodata); + build/OUTCODE/src/libultra/gu/perspective.o (.rodata); + build/OUTCODE/src/libultra/gu/mtxutil.o (.rodata); + build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.rodata); + build/OUTCODE/src/libultra/os/exception.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/os/thread.o (.rodata); + build/OUTCODE/src/libultra/os/yieldthread.o (.rodata); + build/OUTCODE/src/libultra/os/invaldcache.o (.rodata); + build/OUTCODE/src/libultra/os/writebackdcache.o (.rodata); + build/OUTCODE/src/libultra/os/settimer.o (.rodata); + build/OUTCODE/src/libultra/audio/heapinit.o (.rodata); + build/OUTCODE/src/libultra/audio/bnkf.o (.rodata); + build/OUTCODE/src/libultra/audio/csplayer.o (.rodata); + build/OUTCODE/src/libultra/audio/seqpsetbank.o (.rodata); + build/OUTCODE/src/libultra/audio/cspgetstate.o (.rodata); + build/OUTCODE/src/libultra/audio/cseq.o (.rodata); + build/OUTCODE/src/libultra/audio/cspsetseq.o (.rodata); + build/OUTCODE/src/libultra/audio/cspplay.o (.rodata); + build/OUTCODE/src/libultra/audio/cspstop.o (.rodata); + build/OUTCODE/src/libultra/audio/cspsetvol.o (.rodata); + build/OUTCODE/src/libultra/audio/event.o (.rodata); + build/OUTCODE/src/libultra/audio/synaddplayer.o (.rodata); + build/OUTCODE/src/libultra/audio/synallocvoice.o (.rodata); + build/OUTCODE/src/libultra/audio/synsetvol.o (.rodata); + build/OUTCODE/src/libultra/audio/synstartvoice.o (.rodata); + build/OUTCODE/src/libultra/audio/synsetpan.o (.rodata); + build/OUTCODE/src/libultra/audio/synsetpitch.o (.rodata); + build/OUTCODE/src/libultra/audio/synsetfxmix.o (.rodata); + build/OUTCODE/src/libultra/audio/synstopvoice.o (.rodata); + build/OUTCODE/src/libultra/audio/synfreevoice.o (.rodata); + build/OUTCODE/src/libultra/audio/cents2ratio.o (.rodata); + build/OUTCODE/src/libultra/io/piread.o (.rodata); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/piwrite.o (.rodata); +#endif + build/OUTCODE/src/libultra/libc/string.o (.rodata); + build/OUTCODE/src/libultrare/libc/xprintf.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/pimgr.o (.rodata); +#endif + build/OUTCODE/src/libultrare/io/pfsinit.o (.rodata); + build/OUTCODE/src/libultrare/io/controller.o (.rodata); + build/OUTCODE/src/libultra/io/contquery.o (.rodata); + build/OUTCODE/src/libultrare/io/contreaddata.o (.rodata); + build/OUTCODE/src/libultrare/io/conteepprobe.o (.rodata); + build/OUTCODE/src/libultrare/io/conteepread.o (.rodata); + build/OUTCODE/src/libultrare/io/conteepwrite.o (.rodata); + build/OUTCODE/src/libultrare/io/conteeplongread.o (.rodata); + build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.rodata); + build/OUTCODE/src/libultrare/io/pfsisplug.o (.rodata); + build/OUTCODE/src/libultra/io/siacs.o (.rodata); + build/OUTCODE/src/libultra/io/sirawdma.o (.rodata); + build/OUTCODE/src/libultra/io/crc.o (.rodata); + build/OUTCODE/src/libultrare/io/contramwrite.o (.rodata); + build/OUTCODE/src/libultrare/io/contramread.o (.rodata); + build/OUTCODE/src/libultra/gu/align.o (.rodata); + build/OUTCODE/src/libultra/gu/ortho.o (.rodata); + build/OUTCODE/src/libultra/gu/coss.o (.rodata); + build/OUTCODE/src/libultra/gu/sins.o (.rodata); + build/OUTCODE/src/libultra/gu/translate.o (.rodata); + build/OUTCODE/src/libultra/libc/bcmp.o (.rodata); + build/OUTCODE/src/libultra/gu/scale.o (.rodata); + build/OUTCODE/src/libultra/gu/lookatref.o (.rodata); + build/OUTCODE/src/libultra/gu/lookat.o (.rodata); + build/OUTCODE/src/libultra/gu/rotate.o (.rodata); + build/OUTCODE/src/libultra/libc/llcvt.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/os/setsr.o (.rodata); + build/OUTCODE/src/libultra/os/getsr.o (.rodata); + build/OUTCODE/src/libultra/io/sirawread.o (.rodata); + build/OUTCODE/src/libultra/io/sirawwrite.o (.rodata); + build/OUTCODE/src/libultra/io/pirawread.o (.rodata); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/pirawwrite.o (.rodata); +#endif + build/OUTCODE/src/libultra/libc/bzero.o (.rodata); + build/OUTCODE/src/libultra/os/sethwinterrupt.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.rodata); + build/OUTCODE/src/libultra/os/interrupt.o (.rodata); + build/OUTCODE/src/libultra/os/timerintr.o (.rodata); +#endif + build/OUTCODE/src/libultra/os/kdebugserver.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/getthreadpri.o (.rodata); + build/OUTCODE/src/libultrare/io/vi.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.rodata); + build/OUTCODE/src/libultra/io/viswapcontext.o (.rodata); +#endif + build/OUTCODE/src/libultra/io/spgetstat.o (.rodata); + build/OUTCODE/src/libultra/io/spsetstat.o (.rodata); + build/OUTCODE/src/libultra/io/spsetpc.o (.rodata); + build/OUTCODE/src/libultra/io/sprawdma.o (.rodata); + build/OUTCODE/src/libultra/io/sp.o (.rodata); + build/OUTCODE/src/libultra/io/dp.o (.rodata); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/setcompare.o (.rodata); + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.rodata); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.rodata); +#endif + build/OUTCODE/src/libultra/os/probetlb.o (.rodata); + build/OUTCODE/src/libultra/audio/syndelete.o (.rodata); + build/OUTCODE/src/libultra/io/ai.o (.rodata); + build/OUTCODE/src/libultrare/audio/drvrNew.o (.rodata); + build/OUTCODE/src/libultra/audio/synallocfx.o (.rodata); + build/OUTCODE/src/libultra/audio/mainbus.o (.rodata); + build/OUTCODE/src/libultra/audio/load.o (.rodata); + build/OUTCODE/src/libultra/audio/resample.o (.rodata); + build/OUTCODE/src/libultrare/audio/env.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/audio/auxbus.o (.rodata); + build/OUTCODE/src/libultra/audio/save.o (.rodata); + build/OUTCODE/src/libultra/os/jammesg.o (.rodata); + build/OUTCODE/src/libultra/io/pigetcmdq.o (.rodata); + build/OUTCODE/src/libultra/gu/cosf.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/gu/sinf.o (.rodata); /*edited*/ + build/OUTCODE/src/libultrare/os/destroythread.o (.rodata); + build/OUTCODE/src/libultra/audio/seqplayer.o (.rodata); + build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.rodata); + build/OUTCODE/src/libultra/audio/copy.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/io/piacs.o (.rodata); +#endif + build/OUTCODE/src/libultra/libc/xlitob.o (.rodata); + build/OUTCODE/src/libultra/libc/xldtob.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/epirawdma.o (.rodata); + build/OUTCODE/src/libultrare/io/devmgr.o (.rodata); +#endif + build/OUTCODE/src/libultra/io/contpfs.o (.rodata); + build/OUTCODE/src/libultra/io/si.o (.rodata); + build/OUTCODE/src/libultra/gu/normalize.o (.rodata); + build/OUTCODE/src/libultra/gu/sqrtf.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leodiskinit.o (.rodata); + build/OUTCODE/src/libultra/os/setcompare.o (.rodata); +#endif + build/OUTCODE/src/libultra/audio/filter.o (.rodata); + build/OUTCODE/src/libultrare/audio/reverb.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/gu/libm_vals.o (.rodata); /*edited*/ + build/OUTCODE/src/libultra/audio/seq.o (.rodata); + build/OUTCODE/src/libultra/audio/synsetpriority.o (.rodata); + build/OUTCODE/src/libultra/libc/ldiv.o (.rodata); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.rodata); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.rodata); +#endif + build/OUTCODE/src/libultra/io/vimodentsclan1.o (.rodata); + build/OUTCODE/src/libultrare/io/vimodepallan1.o (.rodata); + build/OUTCODE/src/libultrare/ultra80069080.o (.rodata); /*edited*/ + /*build/OUTCODE/src/libultra/libultra.a:libultra.o (.rodata);*/ diff --git a/ld/lib.text.ld.inc b/ld/lib.text.ld.inc new file mode 100644 index 00000000..3e471a8b --- /dev/null +++ b/ld/lib.text.ld.inc @@ -0,0 +1,253 @@ + build/OUTCODE/src/boot.o (.text); + build/OUTCODE/src/init.o (.text); + build/OUTCODE/src/sched.o (.text); + build/OUTCODE/src/osMapTLB.o (.text); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.text); + build/OUTCODE/src/libultrare/io/pimgr.o (.text); +#endif + build/OUTCODE/src/tlb_manage.o (.text); + build/OUTCODE/src/tlb_random.o (.text); + build/OUTCODE/src/tlb_resolve.o (.text); + build/OUTCODE/src/tlb_hardwire.o (.text); + build/OUTCODE/src/audi.o (.text); + build/OUTCODE/src/speed_graph.o (.text); + build/OUTCODE/src/fr.o (.text); + build/OUTCODE/src/deb.o (.text); + build/OUTCODE/src/crash.o (.text); + /*deb_print may be part of fault per pd beta (.text);*/ + /*build/OUTCODE/src/deb_print.o (.text);*/ + build/OUTCODE/src/getra.o (.text); + build/OUTCODE/src/ramrom.o (.text); + build/OUTCODE/src/boss.o (.text); + build/OUTCODE/src/music.o (.text); + build/OUTCODE/src/snd.o (.text); + build/OUTCODE/src/memp.o (.text); + build/OUTCODE/src/mema.o (.text); + build/OUTCODE/src/random.o (.text); + build/OUTCODE/src/token.o (.text); + build/OUTCODE/src/str.o (.text); + build/OUTCODE/src/sprintf.o (.text); + build/OUTCODE/src/pi.o (.text); + build/OUTCODE/src/vi.o (.text); + build/OUTCODE/src/debugmenu.o (.text); + build/OUTCODE/src/joy.o (.text); + build/OUTCODE/src/motor.o (.text); +#ifdef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.text); +#endif + build/OUTCODE/src/rmon.o (.text); +#ifdef ENABLE_USB + build/OUTCODE/src/usb.o (.text); +#endif + /*build/OUTCODE/src/libultra/osPiRawStartDma.o (.text);*/ + build/OUTCODE/src/libultra/io/pirawdma.o (.text); + build/OUTCODE/src/libultra/io/pigetstat.o (.text); + build/OUTCODE/src/libultrare/os/initialize.o (.text); + build/OUTCODE/src/libultra/os/writebackdcacheall.o (.text); + build/OUTCODE/src/libultra/os/invalicache.o (.text); + build/OUTCODE/src/libultra/os/unmaptlb.o (.text); + build/OUTCODE/src/libultra/os/getfpccsr.o (.text); + build/OUTCODE/src/libultra/os/setfpccsr.o (.text); + build/OUTCODE/src/libultra/os/createthread.o (.text); + build/OUTCODE/src/libultra/os/startthread.o (.text); + build/OUTCODE/src/libultra/os/createmesgqueue.o (.text); + build/OUTCODE/src/libultra/os/parameters.o (.text); + build/OUTCODE/src/libultra/os/stopthread.o (.text); + build/OUTCODE/src/libultra/os/setthreadpri.o (.text); + build/OUTCODE/src/libultra/os/getcount.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/vimgr.o (.text); +#endif + build/OUTCODE/src/libultrare/io/vitbl.o (.text); /*edited*/ + build/OUTCODE/src/libultra/os/seteventmesg.o (.text); + build/OUTCODE/src/libultra/io/visetevent.o (.text); + build/OUTCODE/src/libultra/os/setintmask.o (.text); + build/OUTCODE/src/libultra/os/recvmesg.o (.text); + build/OUTCODE/src/libultra/os/sendmesg.o (.text); + build/OUTCODE/src/libultra/io/visetmode.o (.text); + build/OUTCODE/src/libultra/io/visetxscale.o (.text); + build/OUTCODE/src/libultra/io/visetyscale.o (.text); + build/OUTCODE/src/libultra/io/virepeatline.o (.text); + build/OUTCODE/src/libultra/io/viblack.o (.text); + build/OUTCODE/src/libultra/io/sptaskyielded.o (.text); + build/OUTCODE/src/libultra/io/dpctr.o (.text); + build/OUTCODE/src/libultra/io/vigetcurrframebuf.o (.text); + build/OUTCODE/src/libultra/io/vigetnextframebuf.o (.text); + build/OUTCODE/src/libultra/io/viswapbuf.o (.text); + build/OUTCODE/src/libultra/io/dpsetstat.o (.text); + build/OUTCODE/src/libultrare/io/sptask.o (.text); + build/OUTCODE/src/libultra/io/dpsetnextbuf.o (.text); + build/OUTCODE/src/libultra/io/sptaskyield.o (.text); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/timerintr.o (.text); + build/OUTCODE/src/libultra/os/getthreadpri.o (.text); + build/OUTCODE/src/libultra/os/interrupt.o (.text); + build/OUTCODE/src/libultrare/io/vi.o (.text); + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.text); + build/OUTCODE/src/libultra/io/viswapcontext.o (.text); + build/OUTCODE/src/libultra/io/piacs.o (.text); + build/OUTCODE/src/libultrare/io/epirawdma.o (.text); + build/OUTCODE/src/libultrare/io/devmgr.o (.text); +#endif + build/OUTCODE/src/libultra/os/gettlbhi.o (.text); + build/OUTCODE/src/libultra/os/virtualtophysical.o (.text); + build/OUTCODE/src/libultra/io/aisetfreq.o (.text); + build/OUTCODE/src/libultra/audio/sl.o (.text); + build/OUTCODE/src/libultra/audio/heapalloc.o (.text); + build/OUTCODE/src/libultra/os/gettime.o (.text); + build/OUTCODE/src/libultra/libc/ll.o (.text); /*edited*/ + build/OUTCODE/src/libultrare/io/aisetnextbuf.o (.text); + build/OUTCODE/src/libultra/io/aigetlen.o (.text); + build/OUTCODE/src/libultra/audio/synthesizer.o (.text); + build/OUTCODE/src/libultra/io/pidma.o (.text); + build/OUTCODE/src/libultra/io/visetspecial.o (.text); + build/OUTCODE/src/libultra/libc/bcopy.o (.text); + build/OUTCODE/src/libultra/gu/perspective.o (.text); + build/OUTCODE/src/libultra/gu/mtxutil.o (.text); + build/OUTCODE/src/libultra/os/getcurrfaultthread.o (.text); + build/OUTCODE/src/libultra/os/exception.o (.text); /*edited*/ + build/OUTCODE/src/libultra/os/thread.o (.text); + build/OUTCODE/src/libultra/os/yieldthread.o (.text); + build/OUTCODE/src/libultra/os/invaldcache.o (.text); + build/OUTCODE/src/libultra/os/writebackdcache.o (.text); + build/OUTCODE/src/libultra/os/settimer.o (.text); + build/OUTCODE/src/libultra/audio/heapinit.o (.text); + build/OUTCODE/src/libultra/audio/bnkf.o (.text); + build/OUTCODE/src/libultra/audio/csplayer.o (.text); + build/OUTCODE/src/libultra/audio/seqpsetbank.o (.text); + build/OUTCODE/src/libultra/audio/cspgetstate.o (.text); + build/OUTCODE/src/libultra/audio/cseq.o (.text); + build/OUTCODE/src/libultra/audio/cspsetseq.o (.text); + build/OUTCODE/src/libultra/audio/cspplay.o (.text); + build/OUTCODE/src/libultra/audio/cspstop.o (.text); + build/OUTCODE/src/libultra/audio/cspsetvol.o (.text); + build/OUTCODE/src/libultra/audio/event.o (.text); + build/OUTCODE/src/libultra/audio/synaddplayer.o (.text); + build/OUTCODE/src/libultra/audio/synallocvoice.o (.text); + build/OUTCODE/src/libultra/audio/synsetvol.o (.text); + build/OUTCODE/src/libultra/audio/synstartvoice.o (.text); + build/OUTCODE/src/libultra/audio/synsetpan.o (.text); + build/OUTCODE/src/libultra/audio/synsetpitch.o (.text); + build/OUTCODE/src/libultra/audio/synsetfxmix.o (.text); + build/OUTCODE/src/libultra/audio/synstopvoice.o (.text); + build/OUTCODE/src/libultra/audio/synfreevoice.o (.text); + build/OUTCODE/src/libultra/audio/cents2ratio.o (.text); + build/OUTCODE/src/libultra/io/piread.o (.text); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/piwrite.o (.text); +#endif + build/OUTCODE/src/libultra/libc/string.o (.text); + build/OUTCODE/src/libultrare/libc/xprintf.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/pimgr.o (.text); +#endif + build/OUTCODE/src/libultrare/io/pfsinit.o (.text); + build/OUTCODE/src/libultrare/io/controller.o (.text); + build/OUTCODE/src/libultra/io/contquery.o (.text); + build/OUTCODE/src/libultrare/io/contreaddata.o (.text); + build/OUTCODE/src/libultrare/io/conteepprobe.o (.text); + build/OUTCODE/src/libultrare/io/conteepread.o (.text); + build/OUTCODE/src/libultrare/io/conteepwrite.o (.text); + build/OUTCODE/src/libultrare/io/conteeplongread.o (.text); + build/OUTCODE/src/libultrare/io/conteeplongwrite.o (.text); + build/OUTCODE/src/libultrare/io/pfsisplug.o (.text); + build/OUTCODE/src/libultra/io/siacs.o (.text); + build/OUTCODE/src/libultra/io/sirawdma.o (.text); + build/OUTCODE/src/libultra/io/crc.o (.text); + build/OUTCODE/src/libultrare/io/contramwrite.o (.text); + build/OUTCODE/src/libultrare/io/contramread.o (.text); + build/OUTCODE/src/libultra/gu/align.o (.text); + build/OUTCODE/src/libultra/gu/ortho.o (.text); + build/OUTCODE/src/libultra/gu/coss.o (.text); + build/OUTCODE/src/libultra/gu/sins.o (.text); + build/OUTCODE/src/libultra/gu/translate.o (.text); + build/OUTCODE/src/libultra/libc/bcmp.o (.text); + build/OUTCODE/src/libultra/gu/scale.o (.text); + build/OUTCODE/src/libultra/gu/lookatref.o (.text); + build/OUTCODE/src/libultra/gu/lookat.o (.text); + build/OUTCODE/src/libultra/gu/rotate.o (.text); + build/OUTCODE/src/libultra/libc/llcvt.o (.text); /*edited*/ + build/OUTCODE/src/libultra/os/setsr.o (.text); + build/OUTCODE/src/libultra/os/getsr.o (.text); + build/OUTCODE/src/libultra/io/sirawread.o (.text); + build/OUTCODE/src/libultra/io/sirawwrite.o (.text); + build/OUTCODE/src/libultra/io/pirawread.o (.text); +#ifdef ENABLE_USB + build/OUTCODE/src/libultra/io/pirawwrite.o (.text); +#endif + build/OUTCODE/src/libultra/libc/bzero.o (.text); + build/OUTCODE/src/libultra/os/sethwinterrupt.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leointerrupt.o (.text); + build/OUTCODE/src/libultra/os/interrupt.o (.text); + build/OUTCODE/src/libultra/os/timerintr.o (.text); +#endif + build/OUTCODE/src/libultra/os/kdebugserver.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/getthreadpri.o (.text); + build/OUTCODE/src/libultrare/io/vi.o (.text); /*edited*/ + build/OUTCODE/src/libultra/io/vigetcurrcontext.o (.text); + build/OUTCODE/src/libultra/io/viswapcontext.o (.text); +#endif + build/OUTCODE/src/libultra/io/spgetstat.o (.text); + build/OUTCODE/src/libultra/io/spsetstat.o (.text); + build/OUTCODE/src/libultra/io/spsetpc.o (.text); + build/OUTCODE/src/libultra/io/sprawdma.o (.text); + build/OUTCODE/src/libultra/io/sp.o (.text); + build/OUTCODE/src/libultra/io/dp.o (.text); +#ifdef VERSION_EU + build/OUTCODE/src/libultra/os/setcompare.o (.text); + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.text); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.text); +#endif + build/OUTCODE/src/libultra/os/probetlb.o (.text); + build/OUTCODE/src/libultra/audio/syndelete.o (.text); + build/OUTCODE/src/libultra/io/ai.o (.text); + build/OUTCODE/src/libultrare/audio/drvrNew.o (.text); + build/OUTCODE/src/libultra/audio/synallocfx.o (.text); + build/OUTCODE/src/libultra/audio/mainbus.o (.text); + build/OUTCODE/src/libultra/audio/load.o (.text); + build/OUTCODE/src/libultra/audio/resample.o (.text); + build/OUTCODE/src/libultrare/audio/env.o (.text); /*edited*/ + build/OUTCODE/src/libultra/audio/auxbus.o (.text); + build/OUTCODE/src/libultra/audio/save.o (.text); + build/OUTCODE/src/libultra/os/jammesg.o (.text); + build/OUTCODE/src/libultra/io/pigetcmdq.o (.text); + build/OUTCODE/src/libultra/gu/cosf.o (.text); /*edited*/ + build/OUTCODE/src/libultra/gu/sinf.o (.text); /*edited*/ + build/OUTCODE/src/libultrare/os/destroythread.o (.text); + build/OUTCODE/src/libultra/audio/seqplayer.o (.text); + build/OUTCODE/src/libultra/audio/synstartvoiceparam.o (.text); + build/OUTCODE/src/libultra/audio/copy.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/io/piacs.o (.text); +#endif + build/OUTCODE/src/libultra/libc/xlitob.o (.text); + build/OUTCODE/src/libultra/libc/xldtob.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/epirawdma.o (.text); + build/OUTCODE/src/libultrare/io/devmgr.o (.text); +#endif + build/OUTCODE/src/libultra/io/contpfs.o (.text); + build/OUTCODE/src/libultra/io/si.o (.text); + build/OUTCODE/src/libultra/gu/normalize.o (.text); + build/OUTCODE/src/libultra/gu/sqrtf.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultrare/io/leodiskinit.o (.text); + build/OUTCODE/src/libultra/os/setcompare.o (.text); +#endif + build/OUTCODE/src/libultra/audio/filter.o (.text); + build/OUTCODE/src/libultrare/audio/reverb.o (.text); /*edited*/ + build/OUTCODE/src/libultra/gu/libm_vals.o (.text); /*edited*/ + build/OUTCODE/src/libultra/audio/seq.o (.text); + build/OUTCODE/src/libultra/audio/synsetpriority.o (.text); + build/OUTCODE/src/libultra/libc/ldiv.o (.text); +#ifndef VERSION_EU + build/OUTCODE/src/libultra/os/resetglobalintmask.o (.text); + build/OUTCODE/src/libultrare/io/epirawwrite.o (.text); +#endif + build/OUTCODE/src/libultra/io/vimodentsclan1.o (.text); + build/OUTCODE/src/libultrare/io/vimodepallan1.o (.text); + build/OUTCODE/src/libultrare/ultra80069080.o (.text); /*edited*/ + /*build/OUTCODE/src/libultra/libultra.a:libultra.o (.text);*/ diff --git a/src/aicommands.def b/src/aicommands.def index 708360fc..06368d0e 100644 --- a/src/aicommands.def +++ b/src/aicommands.def @@ -5149,11 +5149,11 @@ _AI_CMD( { if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum]; + pad = &g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } matrix_4x4_7F059908(&matrix, 0, 0, 0, -pad->target.x, -pad->target.y, -pad->target.z, pad->up.x, pad->up.y, pad->up.z); if (obj->model) @@ -9482,11 +9482,11 @@ _AI_CMD( u16 sfxID = CharArrayTo16(ai->val,2); if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum]; + pad = &g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } if (ai->SlotID >= 0 && ai->SlotID < 8 && pad) { @@ -10151,11 +10151,11 @@ _AI_CMD( u16 padnum = CharArrayTo16(ai->val,0); if (isNotBoundPad(padnum)) { - dword_CODE_bss_800799F8 = &g_chraiCurrentSetup.pads[padnum]; + dword_CODE_bss_800799F8 = &g_CurrentSetup.pads[padnum]; } else { - dword_CODE_bss_800799F8 = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + dword_CODE_bss_800799F8 = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } set_camera_mode(CAMERAMODE_POSEND); Offset += CAT(CAT(AI_, CMDNAME), _LENGTH); @@ -10392,11 +10392,11 @@ _AI_CMD( padnum = chrResolvePadId(ChrEntityp, padnum); if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum]; + pad = &g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } FacingDirection = atan2f(pad->target.x, pad->target.z); pos.x = pad->pos.x; @@ -10673,7 +10673,7 @@ _AI_CMD( door->openedTime = g_GlobalTimer; door->openstate = DOORSTATE_STATIONARY; sub_GAME_7F052B00(door); - sub_GAME_7F053598(door); + doorActivatePortal(door); sub_GAME_7F053B10(door); } Offset += CAT(CAT(AI_, CMDNAME), _LENGTH); @@ -10956,11 +10956,11 @@ _AI_CMD( ObjectRecord *obj = objFindByTagId(ai->val[0]); if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum * 1]; + pad = &g_CurrentSetup.pads[padnum * 1]; } else { - pad = (PadRecord *) &g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *) &g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } if (pad->stan && obj && obj->prop && (pad->stan->RoomID == obj->prop->stan->RoomID)) { @@ -11838,7 +11838,7 @@ _AI_CMD( sub_GAME_7F03FDA8(obj->prop); if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { - obj->unk6C->id |= 0x601; + obj->unk6C->flags |= 0x601; sub_GAME_7F03FE14(obj->prop); matrix_4x4_set_identity(&obj->unk6C->m); obj->unk6C->pos.x = 0; diff --git a/src/audi.c b/src/audi.c index d2665c27..5a014f54 100644 --- a/src/audi.c +++ b/src/audi.c @@ -593,7 +593,7 @@ void amHandleDoneMessage(AudioInfo *info) if (!samplesLeft && !(*b)) { // debug printf from audioMgr demo -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("audio: ai out of samples\n"); #endif g_FirstTime = 0; @@ -776,7 +776,7 @@ void amClearDmaBuffers(void) { if (osRecvMesg(&g_DmaMessageQueue, (OSMesg *)&osmesg, OS_MESG_NOBLOCK) == -1) { -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("Dma not done\n"); #endif } diff --git a/src/bondconstants.h b/src/bondconstants.h index 7a06dcbe..5373fc14 100644 --- a/src/bondconstants.h +++ b/src/bondconstants.h @@ -330,6 +330,12 @@ typedef enum PROPFLAG2 PROPFLAG2_80000000 = 0x80000000 // unknown }PROPFLAG2; +typedef enum DOORFLAG +{ + DOORFLAG_100 = 0x00000100, + DOORFLAG_CANNOT_ACTIVATE = 0x02000000, + DOORFLAG_KEEPOPEN = 0x80000000 +}DOORFLAG; /* door lock flags*/ BITFLAG(DOOR_LOCK, @@ -444,6 +450,10 @@ BITFLAG(RUNTIMEBITFLAG, #define QUADRANT_2NDWPTOTARGET 0x10 // second waypoint on route to target #define QUADRANT_20 0x20 // second waypoint on route to target +#define CULLMODE_NONE 1 +#define CULLMODE_FRONT 2 +#define CULLMODE_BACK 3 + #pragma endregion #pragma region Constants @@ -779,7 +789,9 @@ typedef enum CHEAT_IDS CHEAT_UNLOCK_AZTEK, CHEAT_UNLOCK_EGYPT, - CHEAT_INVALID + CHEAT_INVALID, + + CHEAT_MAX = CHEAT_INVALID+5 } CHEAT_ID; //Controller stuff including Rumble Pak are in joy.c @@ -1199,6 +1211,15 @@ typedef enum MODELNODE_OPCODE MODELNODE_OPCODE_MAX } MODELNODE_OPCODE; +typedef enum MODELNODE_CHILD +{ + MODELNODE_CHILD_NULL, + MODELNODE_CHILD_VTX, + MODELNODE_CHILD_IMAGE, + MODELNODE_CHILD_TRI, + MODELNODE_CHILD_MAX +} MODELNODE_CHILD; + typedef enum MP_STAGE_SELECTED { MP_STAGE_RANDOM, @@ -1389,6 +1410,8 @@ typedef enum PLAYER_ID PLAYER_4 } PLAYER_ID; +#define MAX_PLAYER_COUNT 4 + typedef enum RGBA_ENUM { RED, @@ -1949,6 +1972,13 @@ typedef enum SPEED SPEED_SPRINT } SPEED; +typedef enum STAGESTATUS +{ + STAGESTATUS_LOCKED, + STAGESTATUS_UNLOCKED, + STAGESTATUS_NOTCOMPLETED, + STAGESTATUS_COMPLETED +} STAGESTATUS; typedef enum TEXTBANK_LEVEL_INDEX { @@ -2020,6 +2050,28 @@ typedef enum WATCH_BRIEFING_PAGE } WATCH_BRIEFING_PAGE; +typedef enum AWARD { + + AWARD_MOSTSUICIDAL = 0x00001, + AWARD_WHONEEDSAMMO = 0x00002, + AWARD_WHERESTHEARMOR = 0x00004, + AWARD_ACNEGATIVE10 = 0x00008, + AWARD_MARKSMANSHIP = 0x00010, + AWARD_MOSTPROFESSIONAL = 0x00020, + AWARD_MOSTDEADLY = 0x00040, + AWARD_MOSTHARMLESS = 0x00080, + AWARD_MOSTCOWARDLY = 0x00100, + AWARD_MOSTFRANTIC = 0x00200, + AWARD_MOSTHONORABLE = 0x00400, + AWARD_MOSTDISHONORABLE = 0x00800, + AWARD_SHORTESTINNINGS = 0x01000, + AWARD_LONGESTINNINGS = 0x02000, + AWARD_DOUBLEKILL = 0x04000, + AWARD_TRIPLEKILL = 0x08000, + AWARD_QUADKILL = 0x10000 +} AWARD; + + typedef enum WAYMODE { WAYMODE_0, @@ -2031,6 +2083,20 @@ typedef enum WAYMODE WAYMODE_MAGIC } WAYMODE; +typedef enum SPSEGMENT +{ + SPSEGMENT_PHYSICAL = 0, + SPSEGMENT_UNKNOWN = 1, + SPSEGMENT_GETITLE = 2, + SPSEGMENT_MODEL_MTX = 3, + SPSEGMENT_MODEL_VTX = 4, + SPSEGMENT_MODEL_COL1 = 5, + SPSEGMENT_MODEL_COL2 = 6, + SPSEGMENT_BG_COL = 13, + SPSEGMENT_BG_VTX = 14, + SPSEGMENT_BG_DL = 15 +} SPSEGMENT; + #pragma region Object Instance Stuff typedef enum BODIES { @@ -2959,7 +3025,13 @@ typedef enum WAYMODE } VIDEOMODE; #pragma endregion - +#if !defined(VERSION_EU) +#define MAXROOMCOUNT 150 +#else +#define MAXROOMCOUNT 139 +#endif + + /* special chr num IDs */ #define CHR_BOND_CINEMA -8 /* only works when bond has a third person model (intro/exit cutscene) */ #define CHR_CLONE -7 @@ -2980,9 +3052,17 @@ typedef enum WAYMODE #define OBJECTIVES_MAX 10 #define MAX_CHRWAYPOINTS 6 #define MAX_WAYMODE ((s32)WAYMODE_MAGIC) +#define MAX_TEXTURES 3001 #define PROPRECORD_STAN_ROOM_LEN 4 #define NUMBER_SHOTGUN_BULLETS 5 +#ifdef VERSION_EU +#define NTSC 0 +#define PAL 1 +#else +#define NTSC 1 +#define PAL 0 +#endif #pragma endregion @@ -3193,7 +3273,11 @@ typedef enum WAYMODE #define forever for (;;) +#define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0])) +#define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7) +#define RANDOMFRAC() ((f32) randomGetNext() * 2.3283064e-10f) #pragma endregion + #endif diff --git a/src/bondtypes.h b/src/bondtypes.h index 08494498..a3740b7a 100644 --- a/src/bondtypes.h +++ b/src/bondtypes.h @@ -55,6 +55,7 @@ struct PropRecord; struct ObjectRecord; struct WeaponObjRecord; struct WeaponObjRecordExtended; +union ModelRoData; /** * The following region deals with various AI structures that can be applied to @@ -537,7 +538,10 @@ typedef union s32 unk00; u16 unk04; u16 unk06; - + u16 unk08; + u16 unk0A; + u16 unk0C; + u16 unk0E; // ... } ModelAnimation; @@ -654,6 +658,28 @@ typedef union #pragma region ModelTypes + /** + * Taken from PD, unsure that all of the fields line up + */ + typedef struct ModelRenderData { + /*0x00*/ Mtxf *unk00; + /*0x04*/ bool zbufferenabled; + /*0x08*/ u32 flags; + /*0x0c*/ Gfx *gdl; + /*0x10*/ Mtxf *unk10; + /*0x14*/ u32 unk14; + /*0x18*/ u32 unk18; + /*0x1c*/ u32 unk1c; + /*0x20*/ u32 unk20; + /*0x24*/ u32 unk24; + /*0x28*/ u32 unk28; + /*0x2c*/ u32 unk2c; + /*0x30*/ s32 unk30; + /*0x34*/ u32 envcolour; + /*0x38*/ u32 fogcolour; + /*0x3c*/ u32 cullmode; + } ModelRenderData; + /** * Binary compatible with gbi Vtx but more verbose and with "collision" * information in place of "flags" for use in Openflight Records below @@ -750,43 +776,59 @@ typedef union } ModelFileTextures; - /* - Handy Union for each type of Node - More Verbose than void *Data - Note: Probably cant actually use this since would need to know the type before hand - union ModelNode_Data - { - struct ModelNode_HeaderRecord Header; - struct ModelNode_GroupRecord Group; - struct ModelNode_DisplayListRecord DisplayList; - struct ModelNode_LODRecord LOD; - struct ModelNode_BSPRecord BSP; - struct ModelNode_BoundingBoxRecord BoundingBox; - struct ModelNode_GunfireRecord Gunfire; - struct ModelNode_ShadowRecord Shadow; - struct ModelNode_InterlinkageRecord Interlinkage; - struct ModelNode_SwitchRecord Switch; - struct ModelNode_GroupSimpleRecord GroupSimple; - struct ModelNode_DisplayListPrimaryRecord DisplayListPrimary; - struct ModelNode_HeadPlaceholderRecord HeadPlaceholder; - struct ModelNode_DisplayList_CollisionRecord DisplayListCollisions; - }; - */ - /* This defines each row of the Node Table */ typedef struct ModelNode { //u8 UseAdditionalMatrices; //1 = group use MatrixID1 also. not actually used - u16 Opcode; /*0x00*/ - void *Data; /*0x04 Node Data*/ - struct ModelNode *Parent; /*0x08*/ - struct ModelNode *Next; /*0x0c*/ - struct ModelNode *Prev; /*0x10*/ - struct ModelNode *Child; /*0x14*/ + u16 Opcode; /*0x00*/ + union ModelRoData *Data; /*0x04 Node Data*/ + struct ModelNode *Parent; /*0x08*/ + struct ModelNode *Next; /*0x0c*/ + struct ModelNode *Prev; /*0x10*/ + struct ModelNode *Child; /*0x14*/ } ModelNode; + + #pragma region Model Node OpCode Definitions + + /* + * These are some extra RoData structs that are used by Op07 (and presumably Op05) + * Not sure how these fit in with the rest, they appear to be separate + */ + + typedef struct ModelRoData_Child + { + u8 NumEntries; /*0x00*/ + u8 unk01; /*0x01*/ + u16 unk02; /*0x02*/ + u8 *unk04; /*0x04*/ + } ModelRoData_Child; + + typedef struct ModelRoData_Child_Vtx + { + u8 Type; /*0x00*/ + u8 unk01; /*0x01*/ + u16 VtxIndex; /*0x02*/ + } ModelRoData_Child_Vtx; + + typedef struct ModelRoData_Child_Tri + { + u8 Type; /*0x00*/ + u8 VtxIndex1; /*0x01*/ + u8 VtxIndex2; /*0x02*/ + u8 VtxIndex3; /*0x03*/ + } ModelRoData_Child_Tri; + + typedef struct ModelRoData_Child_Image + { + u8 Type; /*0x00*/ + u8 ImageIndex; /*0x01*/ + } ModelRoData_Child_Image; + + #pragma endregion + #pragma region Model Node OpCode Definitions /** @@ -794,15 +836,44 @@ typedef union * The header record is found at the beginning of the database file. * Used on Character Bodies Only */ - typedef struct ModelNode_HeaderRecord + typedef struct ModelRoData_HeaderRecord { - u32 ModelType; /*0x0 Legnth of Record (4)*/ - struct ModelNode_GroupRecord *FirstGroup; /*0x4 First group in tree*/ - u16 Group1; /*0x8*/ - u16 Group2; /*0xA*/ - u16 number; /*0xC*/ - u16 reserved; /*0xE padding*/ - } ModelNode_HeaderRecord; + u32 ModelType; /*0x0 Legnth of Record (4)*/ + struct ModelRoData_GroupRecord *FirstGroup; /*0x4 First group in tree*/ + + union + { + struct + { + u16 Group1; /*0x8*/ + u16 Group2; /*0xA*/ + }; + f32 GroupsAsF32; /*0x8*/ + }; + + u16 RwDataIndex; /*0xC*/ + u16 reserved; /*0xE padding*/ + } ModelRoData_HeaderRecord; + + typedef struct ModelRwData_HeaderRecord + { + s8 unk00; + s8 unk01; + s8 unk02; + f32 ground; + coord3d pos; + f32 unk14; // angle + f32 unk18; + f32 unk1c; + f32 unk20; // angle + coord3d unk24; + f32 unk30; // angle + coord3d unk34; + coord3d unk40; // "2" version of unk24 + coord3d unk4c; // "2" version of unk34 + f32 unk58; + f32 unk5c; + } ModelRwData_HeaderRecord; /** * Opcode 2 @@ -819,16 +890,21 @@ typedef union * Since MultiGen sorts based on this field before saving the database, it can * be ignored by the real-time software. */ - typedef struct ModelNode_GroupRecord + typedef struct ModelRoData_GroupRecord { coord3d Origin; /*0x0*/ u16 JointID; /*0xC*/ - u16 MatrixID0; /*0xE*/ - u16 MatrixID1; /*0x10*/ - u16 MatrixID2; /*0x12 never used*/ - struct ModelNode_GroupRecord *ChildGroup; /*0x14*/ + union { + s16 MatrixIDs[3]; /*0xE*/ + struct { + s16 MatrixID0; /*0xE*/ + s16 MatrixID1; /*0x10*/ + s16 MatrixID2; /*0x12 never used*/ + }; + }; + struct ModelRoData_GroupRecord *ChildGroup; /*0x14*/ f32 BoundingVolumeRadius; /*0x18*/ - } ModelNode_GroupRecord; + } ModelRoData_GroupRecord; /** * Opcode 3 @@ -839,11 +915,11 @@ typedef union * Opcode 4 * Collisionless Display List used primarely for guns */ - typedef struct ModelNode_DisplayListRecord + typedef struct ModelRoData_DisplayListRecord { Gfx *Primary; /*0x0*/ Gfx *Secondary; /*0x4*/ // optional - u32 reserved; /*0x8*/ + void *BaseAddr; /*0x8*/ Vertex *Vertices; /*0xC*/ u16 numVertices; /*0x10*/ /* @@ -854,29 +930,70 @@ typedef union 3 = GunLighting - Reduced Secondary Commands (guns) 4 = Normal Fog/Lighting object */ - u8 ModelType; - } ModelNode_DisplayListRecord; + s8 ModelType; + } ModelRoData_DisplayListRecord; + + typedef struct ModelRwData_DisplayListRecord // this record is a guess + { + s32 unk00; + } ModelRwData_DisplayListRecord; /** * Opcode 5 * unused */ + typedef struct ModelRoData_Op05Record + { + // shares this structure with op07 + s32 NumChildren; /*0x00*/ + struct ModelRoData_Child *Children; /*0x04*/ + struct Vertex *Vertices; /*0x08*/ + struct sImageTableEntry *Images; /*0x0C*/ + u8 Data[400]; /*0x10*/ + + u32 unk1A0; /*0x1A0*/ + void* BaseAddr; /*0x1A4*/ + } ModelRoData_Op05Record; /** * Opcode 6 * unused */ + typedef struct ModelRoData_Op06Record + { + u32 unk00; + u32 unk04; + u32 unk08; + u32 unk0C; + u32 unk10; + void* BaseAddr; /*0x14*/ + } ModelRoData_Op06Record; /** * Opcode 7 * unused but referenced */ - typedef struct ModelNode_Op07Record + typedef struct ModelRoData_Op07Record { - u32 unk00[106]; /*0x0*/ - u16 unk1A8; /*0x1A8*/ - u16 number; /*0x1AA*/ - } ModelNode_Op07Record; + struct ModelNode* unk00; /*0x00*/ + struct ModelNode* unk04; /*0x04*/ + + // shares this structure with op05 + s32 NumChildren; /*0x08*/ + struct ModelRoData_Child *Children; /*0x0C*/ + struct Vertex *Vertices; /*0x10*/ + struct sImageTableEntry *Images; /*0x14*/ + u8 Data[400]; /*0x18*/ + + u16 unk1A8; /*0x1A8*/ + u16 RwDataIndex; /*0x1AA*/ + void* BaseAddr; + } ModelRoData_Op07Record; + + typedef struct ModelRwData_Op07Record + { + s32 index; + } ModelRwData_Op07Record; /** * Opcode 8 @@ -884,90 +1001,113 @@ typedef union * The distance is calculated by the real-time software by using the distance * from the eye-point to the LOD center found */ - typedef struct ModelNode_LODRecord + typedef struct ModelRoData_LODRecord { f32 MinDistance; /*0x0 Switch in distance*/ f32 MaxDistance; /*0x4 Switch out distance*/ ModelNode *Affects; /*0x8 Affects this node (Must be child)*/ - u16 number; /*0xC*/ + u16 RwDataIndex; /*0xC*/ u16 reserved; /*0xE padding*/ - } ModelNode_LODRecord; + } ModelRoData_LODRecord; + + typedef struct ModelRwData_LODRecord + { + bool visible; + } ModelRwData_LODRecord; /** * Opcode 9 * Binary Separating Plane * BSPs allow you to model 3D databases with the Z buffer turned off. */ - typedef struct ModelNode_BSPRecord + typedef struct ModelRoData_BSPRecord { - coord3d Point; /*0x0*/ - coord3d Vector; /*0xC*/ - ModelNode *leftChild; /*0x18 back/first */ - ModelNode *rightChild; /*0x1C front/last */ - u16 reserved; /*0x20 padding or u32*/ - u16 number; /*0x22*/ - } ModelNode_BSPRecord; + coord3d Point; /*0x0*/ + coord3d Vector; /*0xC*/ + ModelNode *leftChild; /*0x18 back/first */ + ModelNode *rightChild; /*0x1C front/last */ + s16 reserved; /*0x20 padding or u32*/ + u16 RwDataIndex; /*0x22*/ + } ModelRoData_BSPRecord; + + typedef struct ModelRwData_BSPRecord + { + bool visible; + } ModelRwData_BSPRecord; /** * Opcode 10 0xA * Box within which collisions are tested */ - typedef struct ModelNode_BoundingBoxRecord + typedef struct ModelRoData_BoundingBoxRecord { u32 ModelNumber; /*0x0*/ struct bbox Bounds; /*0x4*/ - } ModelNode_BoundingBoxRecord; + } ModelRoData_BoundingBoxRecord; /** * Opcode 11 * unused but referenced */ - typedef struct ModelNode_Op11Record + typedef struct ModelRoData_Op11Record { u32 unk0c[16]; /*0x0*/ f32 BoundingVolumeRadius; - u16 number; /*0x44*/ - } ModelNode_Op11Record; + u16 RwDataIndex; /*0x44*/ + u16 unk46; + void* BaseAddr; + } ModelRoData_Op11Record; + + typedef struct ModelRwData_Op11Record + { + s16 unk00; + s16 unk02; + } ModelRwData_Op11Record; /** * Opcode 12 0xC */ - typedef struct ModelNode_GunfireRecord + typedef struct ModelRoData_GunfireRecord { - coord3d Offset; /*0x0*/ - coord3d Size; /*0xC*/ - void * Image; /*0x18*/ - f32 Scale; /*0x1c*/ - u16 number; /*0x20*/ - u16 reserved; /*0x22 padding*/ - u32 reserved2; /*0x24 padding*/ - } ModelNode_GunfireRecord; + coord3d Offset; /*0x0*/ + coord3d Size; /*0xC*/ + void * Image; /*0x18*/ + f32 Scale; /*0x1c*/ + u16 RwDataIndex; /*0x20*/ + u16 reserved; /*0x22 padding*/ + u32 BaseAddr; /*0x24 padding*/ + } ModelRoData_GunfireRecord; + + typedef struct ModelRwData_GunfireRecord + { + s16 visible; + u16 unk02; + } ModelRwData_GunfireRecord; /** * Opcode 13 0xD * Draws a shadow under character only */ - typedef struct ModelNode_ShadowRecord + typedef struct ModelRoData_ShadowRecord { - coord2d pos; /*0x0*/ - coord2d size; /*0x8*/ - void *image; /*0x10*/ - ModelNode_HeaderRecord *Header; /*0x14*/ - f32 Scale; /*0x18*/ - u16 number; /*0x1C*/ - u16 reserved; /*0x1E padding*/ - } ModelNode_ShadowRecord; + coord2d pos; /*0x0*/ + coord2d size; /*0x8*/ + void *image; /*0x10*/ + ModelRoData_HeaderRecord *Header; /*0x14*/ + f32 Scale; /*0x18*/ + void *BaseAddr; /*0x1C*/ + } ModelRoData_ShadowRecord; /** * Opcode 14 * unused */ - typedef struct ModelNode_Op14Record + typedef struct ModelRoData_Op14Record { coord3d pos; /*0x0*/ f32 Scale; /*0xC*/ - } ModelNode_Op14Record; + } ModelRoData_Op14Record; /** * Opcode 15 0xF @@ -980,14 +1120,14 @@ typedef union * The key value is used to represent a node, an arc, or a node name, if the * node represents a database entity */ - typedef struct ModelNode_InterlinkageRecord + typedef struct ModelRoData_InterlinkageRecord { coord3d pos; /*0x0*/ u32 unknown1; /*0xC*/ u32 unknown2; /*0x10*/ u32 unknown3; /*0x14*/ f32 Scale; /*0x18*/ - } ModelNode_InterlinkageRecord; + } ModelRoData_InterlinkageRecord; /** * Opcode 16 @@ -1012,12 +1152,17 @@ typedef union * The mask may inhibit the display of some, none, or all of the switch node * children. */ - typedef struct ModelNode_SwitchRecord + typedef struct ModelRoData_SwitchRecord { - ModelNode *Controls; /*0x0 Which node to display (Must be Child)*/ - u16 number; /*0x4*/ - u16 reserved; /*0x6 padding*/ - } ModelNode_SwitchRecord; + ModelNode *Controls; /*0x0 Which node to display (Must be Child)*/ + u16 RwDataIndex; /*0x4*/ + u16 reserved; /*0x6 padding*/ + } ModelRoData_SwitchRecord; + + typedef struct ModelRwData_SwitchRecord + { + bool visible; + } ModelRwData_SwitchRecord; /** * Opcode 19 @@ -1033,56 +1178,112 @@ typedef union * Opcode 21 0x15 * Simple Group used to position Cartridge ejection and held items */ - typedef struct ModelNode_GroupSimpleRecord + typedef struct ModelRoData_GroupSimpleRecord { coord3d Origin; /*0x0*/ - u16 Group1; /*0xC*/ + s16 Group1; /*0xC*/ u16 Group2; /*0xE*/ f32 BoundingVolumeRadius; /*0x10*/ - } ModelNode_GroupSimpleRecord; + } ModelRoData_GroupSimpleRecord; /** * Opcode 22 0x16 * Primary Display List Only */ - typedef struct ModelNode_DisplayListPrimaryRecord + typedef struct ModelRoData_DisplayListPrimaryRecord { - u16 numVertices; /*0x0*/ + s32 numVertices; /*0x0*/ Vertex *Vertices; /*0x4*/ Gfx *Primary; /*0x8*/ - u32 reserved; /*0xC*/ - } ModelNode_DisplayListPrimaryRecord; + void *BaseAddr; /*0xC*/ + } ModelRoData_DisplayListPrimaryRecord; /** * Opcode 23 0x17 * Head Placeholder for Random Heads */ - typedef struct ModelNode_HeadPlaceholderRecord + typedef struct ModelRoData_HeadPlaceholderRecord { - u16 number; //referenced by extract_id_from_object_structure_microcode() - } ModelNode_HeadPlaceholderRecord; + u16 RwDataIndex; + } ModelRoData_HeadPlaceholderRecord; + + typedef struct ModelRwData_HeadPlaceholderRecord + { + struct ModelFileHeader *ModelFileHeader; + void *RwDatas; + } ModelRwData_HeadPlaceholderRecord; /** * Opcode 24 0x18 * Full Display List with Collision Table */ - typedef struct ModelNode_DisplayList_CollisionRecord + typedef struct ModelRoData_DisplayList_CollisionRecord { - Gfx *Primary; /*0x0*/ - Gfx *Secondary; /*0x4*/ // optional - Vertex *Vertices; /*0x8*/ - u16 numVertices; /*0xC*/ - u16 numCollisionVertices; /*0xE*/ - Vertex *CollisionVertices; /*0x10 Table of vertices with unique point in space (UV's and Colour are disregarded). */ - s16 *PointUsage; /*0x14*/ - u16 ModelType; /*0x18*/ - u16 unknown; /*0x1A*/ - u16 number; /*0x1C*/ - u16 reserved; /*0x1E*/ - } ModelNode_DisplayList_CollisionRecord; + Gfx *Primary; /*0x0*/ + Gfx *Secondary; /*0x4*/ // optional + Vertex *Vertices; /*0x8*/ + u16 numVertices; /*0xC*/ + s16 numCollisionVertices; /*0xE*/ + Vertex *CollisionVertices; /*0x10 Table of vertices with unique point in space (UV's and Colour are disregarded). */ + s16 *PointUsage; /*0x14*/ + s16 ModelType; /*0x18*/ + u16 RwDataIndex; /*0x1A*/ + void *BaseAddr; /*0x1C*/ + + } ModelRoData_DisplayList_CollisionRecord; + + typedef struct ModelRwData_DisplayList_CollisionRecord + { + Vertex *Vertices; + Gfx *gdl; + } ModelRwData_DisplayList_CollisionRecord; #pragma endregion Model Node OpCode Definitions + /* + * Handy Union for each type of RoData + */ + union ModelRoData + { + struct ModelRoData_HeaderRecord Header; + struct ModelRoData_GroupRecord Group; + struct ModelRoData_DisplayListRecord DisplayList; + struct ModelRoData_Op05Record Op05; + struct ModelRoData_Op06Record Op06; + struct ModelRoData_Op07Record Op07; + struct ModelRoData_LODRecord LOD; + struct ModelRoData_BSPRecord BSP; + struct ModelRoData_BoundingBoxRecord BoundingBox; + struct ModelRoData_Op11Record Op11; + struct ModelRoData_GunfireRecord Gunfire; + struct ModelRoData_ShadowRecord Shadow; + struct ModelRoData_Op14Record Op14; + struct ModelRoData_InterlinkageRecord Interlinkage; + struct ModelNode_Op16Record Op16; + struct ModelRoData_SwitchRecord Switch; + struct ModelRoData_GroupSimpleRecord GroupSimple; + struct ModelRoData_DisplayListPrimaryRecord DisplayListPrimary; + struct ModelRoData_HeadPlaceholderRecord HeadPlaceholder; + struct ModelRoData_DisplayList_CollisionRecord DisplayListCollisions; + }; + + /* + * Handy Union for each type of RwData + */ + union ModelRwData + { + struct ModelRwData_HeaderRecord Header; + struct ModelRwData_DisplayListRecord DisplayList; + struct ModelRwData_Op07Record Op07; + struct ModelRwData_LODRecord LOD; + struct ModelRwData_BSPRecord BSP; + struct ModelRwData_Op11Record Op11; + struct ModelRwData_GunfireRecord Gunfire; + struct ModelRwData_SwitchRecord Switch; + struct ModelRwData_HeadPlaceholderRecord HeadPlaceholder; + struct ModelRwData_DisplayList_CollisionRecord DisplayListCollisions; + }; + #pragma endregion OpenFlight Records @@ -1193,7 +1394,7 @@ typedef union u16 unk00; /*0*/ u8 unk02; /*2*/ f32 ground; /*4*/ - coord3d pos; //8, 12, 16 - this is the right poition for this, but no idea what this node actually is (used in extract_id_from_object_structure_microcode) + coord3d pos; //8, 12, 16 - this is the right poition for this, but no idea what this node actually is (used in modelGetNodeRwData) f32 subroty; //14 angle - this also happens to fit best for getsubroty f32 unk18; /*18*/ u32 unk1c; /*1c*/ @@ -1220,12 +1421,14 @@ typedef union */ typedef struct Model { - u8 unk00; /*0x00*/ - s16 Type; /*0x01*/ //per sub_GAME_7F075F68 should be s16? - struct ChrRecord *chr; /*0x04*/ - ModelFileHeader *obj; /*0x08 GE Name confirmed*/ - RenderPosView *render_pos; /*0x0c*/ - void **datas; // array of pointers to modeldata structs /*0x10*/ + u8 unk00; /*0x00*/ // init_standard_object() indicates that unk00 is a s16... + s16 Type; /*0x01*/ // but sub_GAME_7F075F68() indicates that Type is a s16... + // not sure which is correct. + + struct ChrRecord *chr; /*0x04*/ + ModelFileHeader *obj; /*0x08 GE Name confirmed*/ + RenderPosView *render_pos; /*0x0c*/ + union ModelRwData **datas; // array of pointers to modeldata structs /*0x10*/ f32 scale; /*0x14*/ struct Model *attachedto; /*0x18*/ @@ -1282,12 +1485,12 @@ typedef union s32 unk64; s32 unk68; - s32 unk6c; + f32 unk6c; // 0x70 - s32 unk70; + f32 unk70; s32 unk74; s32 unk78; - s32 unk7c; + f32 unk7c; // 0x80 s32 unk80; @@ -1296,7 +1499,7 @@ typedef union */ f32 unk84; - s32 unk88; + f32 unk88; s32 unk8c; // 0x90 f32 animloopframe; /*0x90*/ @@ -1306,7 +1509,7 @@ typedef union // 0xa0 s32 unka0; f32 unka4; // used by ACT_STAND in chrlv - f32 unka8; + f32 animrate; f32 unkac; // 0xb0 f32 unkb0; @@ -1997,7 +2200,7 @@ typedef union typedef struct ChrRecord_f180 { /***/ - char unk00; + s8 unk00; s8 item_id; // type ITEM_IDS char unk02; char unk03; @@ -2017,7 +2220,7 @@ typedef union typedef struct ObjectRecord_f6c { - u32 id; + u32 flags; coord3d pos; /** @@ -2059,7 +2262,7 @@ typedef union u32 unka0; u32 unka4; - u32 unka8; + u32 animrate; u32 unkac; f32 unkb0; // runtime y position? @@ -2264,16 +2467,9 @@ typedef union struct collision_data { s32 unk00; - s32 unk04; - s32 unk08; - s32 unk0C; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; + rect4f unk04; - s32 unk20; s32 unk24; s32 unk28; s32 unk2C; @@ -2683,9 +2879,9 @@ typedef union * If you reset this to 0 (NULL pointer), then the door opening * sound never stops playing. */ - void *unkf4; // ALSoundState *openSoundState; + ALSoundState *openSoundState; - void *unkf8; // ALSoundState *closeSoundState; + ALSoundState *closeSoundState; /** * Copy of global timer value. @@ -2708,7 +2904,7 @@ typedef union typedef struct GlobalDoorScaleRecord { inherits PropDefHeaderRecord; - u32 Scale; + s32 Scale; } GlobalDoorScaleRecord; #define New_GlobalDoorScaleRecord(Scale) \ @@ -3014,6 +3210,18 @@ typedef union // PROPDEF_HAT (17) // PROPDEF_GUARD_ATTRIBUTE (18) + typedef struct GuardAttributeRecord + { + inherits PropDefHeaderRecord; + s32 chrnum; //0x4 + s16 unk8; //0x8 + s8 unkA; // 0xa + s8 GrenadeProb; //0xb + } GuardAttributeRecord; + #define New_SwitchRecord(ID1, ID2) \ + { \ + New_PropDefHeaderRecord(19), ID1 + 0, ID2 + 0 \ + } // PROPDEF_SWITCH (19) - see LinkRecord #define New_SwitchRecord(ID1, ID2) \ @@ -3364,8 +3572,8 @@ typedef union s32 CullDist; s32 unk88; s32 unk8c; - s32 unk90; - } GlassData; + f32 unk90; + } TintedGlassRecord; #define New_TintedGlassRecord(pad) \ { \ New_PropDefHeaderRecord(47), 0, pad + 0 \ @@ -3550,7 +3758,9 @@ struct SetupIntroCredits enum WATCH_BRIEFING_PAGE menu;//4 u16 reserved;//8 u16 text; //a - struct watchMenuObjectiveText *nextentry; //c + u16 unkC; //c + s8 unkD; //d + s8 difficulty; //f }; #pragma endregion Objectives @@ -3573,6 +3783,36 @@ struct SetupIntroCredits #pragma endregion Images #pragma region Player + + typedef struct SkyRelated38 { + f32 unk00; /*0x00*/ + f32 unk04; /*0x04*/ + f32 unk08; /*0x08*/ + f32 unk0c; /*0x0c*/ + f32 r; /*0x10*/ + f32 g; /*0x14*/ + f32 b; /*0x18*/ + f32 a; /*0x1c*/ + f32 unk20; /*0x20*/ + f32 unk24; /*0x24*/ + f32 unk28; /*0x28*/ + f32 unk2c; /*0x2c*/ + f32 unk30; /*0x30*/ + f32 unk34; /*0x34*/ + } SkyRelated38; + + typedef struct SkyRelated18 { + f32 unk00; /*0x00*/ + f32 unk04; /*0x04*/ + f32 unk08; /*0x08*/ + f32 unk0c; /*0x0c*/ + f32 unk10; /*0x10*/ + u8 r; /*0x14*/ + u8 g; /*0x15*/ + u8 b; /*0x16*/ + u8 a; /*0x17*/ + } SkyRelated18; + #pragma endregion Player #pragma region stagesetup.h @@ -3581,7 +3821,7 @@ struct SetupIntroCredits waypoint *pathwaypoints; waygroup *waypointgroups; struct SetupIntroEmpty *intro; - s32 *propDefs; + PropDefHeaderRecord *propDefs; PathRecord *patrolpaths; AIListRecord *ailists; PadRecord *pads; diff --git a/src/boss.c b/src/boss.c index 89980fb1..4573e8a9 100644 --- a/src/boss.c +++ b/src/boss.c @@ -160,7 +160,7 @@ void bossInitMainthreadData(void) viInitDebugNoticeList(); viInitVideoSettings(); indycommInit(); - g_DebugAndUpdateStageFlag = rmonIsDisabled(); + g_DebugAndUpdateStageFlag = rmonGetToken(); obInitDebugNoticeList(); rspInitDebugNoticeList(); dynInitDebugNoticeList(); @@ -477,7 +477,7 @@ void bossMainloop(void) #if defined(VERSION_EU) profileSetMarker(); speedGraphVideoRelated_2(); - speedGraphDisplay(0x20004); + speedGraphDisplay(0x20000); #else video_DL_related_4(); speedGraphVideoRelated_2(); @@ -500,7 +500,7 @@ void bossMainloop(void) g_DebugMode = g_DebugHighlightedOption; } else #endif -#ifndef DEBUGMEN +#ifndef DEBUGMENU if (g_BossIsDebugMenuOpen) #endif { diff --git a/src/fault.c b/src/crash.c similarity index 56% rename from src/fault.c rename to src/crash.c index 5caf874d..23a06d15 100644 --- a/src/fault.c +++ b/src/crash.c @@ -1,8 +1,9 @@ #include #include #include +#include "fr.h" #include "tlb_manage.h" -#include "deb_print.h" +#include "crash.h" #include "ramrom.h" #include #include "thread_config.h" @@ -21,7 +22,7 @@ #define g_indyReadBuffer_LEN 0x60 /** - * Copied from n64devkit\ultra\usr\src\pr\demos\fault\fault.c + * Copied from n64devkit\ultra\usr\src\pr\demos\fault\crash.c */ #define MSG_FAULT 0x10 @@ -144,25 +145,184 @@ char g_tlbStack[0x2300]; OSMesgQueue g_faultMesgQ; OSMesg *g_faultMesgBuf; +/** + * EU .data, offset from start of data_seg : 0x2540 +*/ +// Padding +u32 D_80023300 = 0; +//The following regDesc's are similar to PR/Tools/Gload/Server.c +/* + * Cause Register + */ +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, ""}, +}; +/* + * Status register + */ +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"}, + /* + * 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, ""} +}; + +/* + * floating-point status register + */ +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, ""} +}; + +void *g_StackPtrs1[STACK_POINTER_COUNT] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; + +#ifndef VERSION_EU +void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug}; +#else +// no sp_debug +void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &cfb_16}; +#endif + +void *g_StackPtrs3[STACK_POINTER_COUNT] = {&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}; // forward declarations -void faultMain(void* arg0); +void crashMain(void* arg0); // end forward declarations /** * 5AE0 70004EE0 */ -void faultInit(void) +void crashInit(void) { - deboutInitBuffers(); + crashInitBuffers(); osCreateMesgQueue(&g_faultMesgQ, (OSMesg *)&g_faultMesgBuf, TLB_MESSAGE_QUEUE_SIZE); - osCreateThread(&g_tlbThread, TLB_THREAD_ID, &faultMain, NULL, &g_tlbStack, TLB_THREAD_PRIORITY); + osCreateThread(&g_tlbThread, TLB_THREAD_ID, &crashMain, NULL, &g_tlbStack, TLB_THREAD_PRIORITY); osStartThread(&g_tlbThread); } @@ -172,7 +332,7 @@ void faultInit(void) * @param arg0 Unused. */ extern OSThread *__osRunQueue; -void faultMain(void* arg0) +void crashMain(void* arg0) { OSMesg msg = 0; OSIntMask mask; @@ -202,8 +362,8 @@ void faultMain(void* arg0) else if (((curr->context.cause & 0x7c) == 8) && ((curr->context.badvaddr & 0xFFC00000) == (u32)0x7F000000)) { tlbmanageTranslateLoadRomFromTlbAddress(curr->context.badvaddr); - curr->state = (u16)0xA; - curr->flags = (u16)0; + curr->state = OS_STATE_RUNNABLE | OS_STATE_WAITING;; + curr->flags = OS_READ; __osEnqueueThread(&__osRunQueue, curr); osSetIntMask(mask); @@ -383,7 +543,7 @@ s32 crashIsReturnAddress(u32 *instruction) * * Max length returned is 256. */ -s32 indyStrlen(u8 *arg0) +s32 crashGetStrLen(u8 *arg0) { s32 count = 0; u8 c; @@ -412,7 +572,7 @@ char g_indyReadBuffer[g_indyReadBuffer_LEN]; * V0= total size of one word, two strings at hardware A0 * accepts: A0=hardware address */ -u8 *indyFileGetAddressSubsequentData(u8 *arg0) +u8 *crashIndyFileGetAddressSubsequentData(u8 *arg0) { u32 returnAddress; @@ -421,13 +581,13 @@ u8 *indyFileGetAddressSubsequentData(u8 *arg0) g_indyCurrentReadBufferResourceId = (u32*)(*(s32*) &g_indyReadBuffer); g_indyReadBufferString1 = (u8*)&g_indyReadBuffer[4]; g_indyReadBufferString2 = (u8 *) ( - indyStrlen(g_indyReadBufferString1) + crashGetStrLen(g_indyReadBufferString1) + (u32)g_indyReadBufferString1 + 1); returnAddress = - indyStrlen(g_indyReadBufferString1) - + ((u32)arg0 + indyStrlen(g_indyReadBufferString2)) + crashGetStrLen(g_indyReadBufferString1) + + ((u32)arg0 + crashGetStrLen(g_indyReadBufferString2)) + 6; if (returnAddress & 3) @@ -443,7 +603,7 @@ u8 *indyFileGetAddressSubsequentData(u8 *arg0) * scan for and load resourceID A0 from indy.read.buf * accepts: A0=resourceID */ -s32 indyScanLoadResourceIdFromBuffer(u32 arg0) +s32 crashIndyScanLoadResourceIdFromBuffer(u32 arg0) { u32 *temp_v1; u8 *phi_s0 = (u8 *)0xE00004; @@ -455,7 +615,7 @@ s32 indyScanLoadResourceIdFromBuffer(u32 arg0) while (1) { - v0 = indyFileGetAddressSubsequentData(phi_s0); + v0 = crashIndyFileGetAddressSubsequentData(phi_s0); temp_v1 = g_indyCurrentReadBufferResourceId; @@ -474,7 +634,7 @@ s32 indyScanLoadResourceIdFromBuffer(u32 arg0) phi_s0 = v0; } - indyFileGetAddressSubsequentData(phi_s3); + crashIndyFileGetAddressSubsequentData(phi_s3); return 1; } @@ -483,9 +643,9 @@ s32 indyScanLoadResourceIdFromBuffer(u32 arg0) * 5FC8 700053C8 * V0= TRUE if valid indy.read.buf.resourceID [matches 826475BE] */ -u32 indyIsValidReadBufferResourceId(void) +u32 crashIidyIsValidReadBufferResourceId(void) { - indyFileGetAddressSubsequentData((u8*)0xe00000); + crashIndyFileGetAddressSubsequentData((u8*)0xe00000); return ((u32)g_indyCurrentReadBufferResourceId ^ 0x826475be) == 0; } @@ -493,8 +653,25 @@ u32 indyIsValidReadBufferResourceId(void) * 5FFC 700053FC * unconditional return */ -void indyRemoved01(void) +void crashIndyRemoved01(void) { + //from pd +#ifdef VERSION_DEBUG + s32 numvalid = 0; + s32 i; + + for (i = 0; i < 4; i++) { + if (g_indyReadBufferString1[i] >= '!' && g_indyReadBufferString1[i] <= 0x7f) { + numvalid++; + } + } + + if (numvalid == 4) { + rmonPrintf("%.49s", g_indyReadBufferString1); + } else { + rmonPrintf("???"); + } +#endif return; } @@ -502,8 +679,24 @@ void indyRemoved01(void) * 6004 70005404 * unconditional return */ -void indyRemoved02(void) +void crashIndyRemoved02(void) { +#ifdef VERSION_DEBUG + s32 numvalid = 0; + s32 i; + + for (i = 0; i < 4; i++) { + if (g_indyReadBufferString2[i] >= '!' && g_indyReadBufferString2[i] <= 0x7f) { + numvalid++; + } + } + + if (numvalid == 4) { + rmonPrintf("%.41s", g_indyReadBufferString2); + } else { + rmonPrintf("???"); + } +#endif return; } @@ -511,10 +704,10 @@ void indyRemoved02(void) * 600C 7000540C * unconditional return */ -void indyPrintReadBufferResourceId(void) +void crashIndyPrintReadBufferResourceIdI(void) { - #ifdef DEBUG - osSyncPrintf("%08x",_g_indyCurrentReadBufferResourceId); //from pd beta + #ifdef ENABLE_LOG + rmonPrintf("%08x",g_indyCurrentReadBufferResourceId); //from pd beta #endif return; } @@ -523,7 +716,7 @@ void indyPrintReadBufferResourceId(void) * 6014 70005414 * V0= indy.read.buf.resourceID [80063664] */ -u32 * indyGetReadBufferResourceId(void) +u32 * crashIndyGetReadBufferResourceId(void) { return g_indyCurrentReadBufferResourceId; } @@ -634,6 +827,20 @@ s32 crashPrintFloat(s32 index, f32 value) return crashIsDouble(value); } +#ifdef VERSION_DEBUG +void crashPrint2Floats(s32 index, f32 value1, f32 value2) +{ + crashPrintFloat(index, value1); + crashPrintFloat(index + 1, value2); +} + +void crashPrint3Floats(s32 index, f32 value1, f32 value2, f32 value3) +{ + crashPrintFloat(index, value1); + crashPrintFloat(index + 1, value2); + crashPrintFloat(index + 2, value3); +} +#endif /** * 61C8 700055C8 * removed: set normality of single-precision floats A1, A2, A3, SP+10 in table at A0 @@ -656,3 +863,182 @@ void crashRender(void) { return; } + + +/** + * DebConTextPos + * Sets the position where text will be displayed inside console window + * (Does not draw - see print_to_vidbuff1) + * @param x: column in which to display text (0-71) + * @param y: line in which to display text (0-31) + * @param c: Character to Print + */ +void crashPutChar(s32 x, s32 y, unsigned char c) +{ + // replace tabs and line feeds with nothing + if ((c == '\t') || (c == '\n')) + { + c = '\0'; + } + // is printable char? if not replace with "?" + if ((c > '\0') && (c < ' ') || (c > '~')) + { + c = '?'; + } + if (((x >= 0) && (x <= 71)) && ((y >= 0) && (y <= 31))) + { + // Debug Window is 71 chars wide 32 rows high + //! BUG 71 is accepted as xpos but will overflow the buffer + g_DebugOutputTextBuffer[y][x] = c; + } +} + +/** + * crashAppendChar + * Parse Character and save to On-Screen Buffer + * @param c: Character to parse + */ +void crashAppendChar(unsigned char c) +{ + if (c != '\0') + { + if (c == '\t') + { + do + { + crashAppendChar(' '); // fill with blanks + } while (g_DebugOutputCurrentPosX & 7); + + return; + } + if (c == '\n') + { + g_DebugOutputCurrentPosY++; + g_DebugOutputCurrentPosX = 0; + } + if (g_DebugOutputCurrentPosY > 30) + { + crashScroll(g_DebugOutputCurrentPosY - 30); + g_DebugOutputCurrentPosY = 30; + } + if (c != '\n') + { + crashPutChar(g_DebugOutputCurrentPosX, g_DebugOutputCurrentPosY, c); + g_DebugOutputCurrentPosX++; + if (g_DebugOutputCurrentPosX > 70) + { + g_DebugOutputCurrentPosX = 0; + g_DebugOutputCurrentPosY++; + } + } + } +} + +/** + * Scroll Buffer up by a number of lines + * @param LinesToScroll: Number of Lines to scroll upward + */ +void crashScroll(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]; + } + } + } +} +/** + * Print 4x8 1bit Glyph to stderr screen at position (x,y) + * @param x: Pixels from left within the stderr box + * @param y: Pixels from top within the stderr box + * @param c: the character to display + */ +void crashRenderChar(s32 x, s32 y, unsigned char c) +{ + s32 bitmap_x; + s32 bitmap_y; + u32 bitmap; + s16 screen_w = viGetX(); + u16 *Vidbufp; + if (c == '\0') + { + c = ' '; //replace nul with space + } + if ((c >= ' ') && (c <= '~')) //if valid char + { + Vidbufp = (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)) + { + *Vidbufp = GPACK_RGBA5551(255, 255, 255, 1); + } + else + { + *Vidbufp = GPACK_RGBA5551(0, 0, 0, 1); + } + Vidbufp++; + bitmap <<= 1; // + } + Vidbufp += screen_w; + Vidbufp -= 4; + } + } +} + +/** + * Set pointers to video buffers 1 & 2. + * Converts values to uncached addresses + * @param cfba | A0000000 -> 8002417C + * @param cfbb | A0000000 -> 80024180 + */ +void crashSetBuffers(u16 *buffer1, u16 *buffer2) +{ + g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer1); + g_DebugOutputVideoBuffer2 = (void *)K0_TO_K1(buffer2); +} + +/** + * Set up the 2 16bit CFBs to Direct mapped, uncached memory + */ +void crashInitBuffers(void) +{ + crashSetBuffers(&cfb_16[0], &cfb_16[1]); +} + +/** + * crashRenderFrame + * write stderr to video buffer + * @param buffer: video buffer to render output + */ +void crashRenderFrame(u16 *buffer) +{ + s32 screen_w; + s32 screen_h; + s32 output_w; + s32 output_h; + s32 x; + s32 y; + crashInitBuffers(); + g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer); // overwrite cfba + 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++) + { + crashRenderChar(((x + 5) * 4), ((y + 1) * 7), g_DebugOutputTextBuffer[y][x]); + } + } +} diff --git a/src/deb_print.h b/src/crash.h similarity index 55% rename from src/deb_print.h rename to src/crash.h index 058f4950..d48ce17f 100644 --- a/src/deb_print.h +++ b/src/crash.h @@ -1,5 +1,5 @@ -#ifndef _DEBUG_PRINT_H_ -#define _DEBUG_PRINT_H_ +#ifndef _TLB_PAGING_H_ +#define _TLB_PAGING_H_ #include @@ -18,9 +18,14 @@ extern void *g_StackPtrs1[STACK_POINTER_COUNT]; extern void *g_StackPtrs2[STACK_POINTER_COUNT]; extern void *g_StackPtrs3[STACK_POINTER_COUNT]; -void deboutWriteChar(unsigned char c); -void deboutScrollUp(s32 numlines); -void deboutInitBuffers(); -void deboutDrawToBuffer(u16 *buffer); +void crashInit(void); +void crashMain(void* arg0); + +void crashAppendChar(unsigned char c); +void crashScroll(s32 numlines); +void crashInitBuffers(); +void crashRenderFrame(u16 *buffer); + + #endif diff --git a/src/deb.c b/src/deb.c index 9690128c..d3e31a69 100644 --- a/src/deb.c +++ b/src/deb.c @@ -4,8 +4,12 @@ #include "deb.h" #include "str.h" #include "memp.h" -#include "fault.h" - +#include "crash.h" +#include +#include "fr.h" +#include "tlb_manage.h" +#include +#include "thread_config.h" struct deblistentry { struct deblistentry *next; @@ -76,7 +80,7 @@ void debAdd(const char *name, void *data) { void debInit(void) { debTryAdd(&g_DebDebugData, "deb_c_debug"); - faultInit(); + crashInit(); } void debTryAdd(void* data, const char *name) { diff --git a/src/deb_print.c b/src/deb_print.c deleted file mode 100644 index 2fd1fb75..00000000 --- a/src/deb_print.c +++ /dev/null @@ -1,348 +0,0 @@ - -#include -#include "deb_print.h" -#include -#include "fr.h" -#include - -/** - * EU .data, offset from start of data_seg : 0x2540 -*/ - -// Padding -u32 D_80023300 = 0; - -//The following regDesc's are similar to PR/Tools/Gload/Server.c -/* - * Cause Register - */ -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, ""}, -}; - -/* - * Status register - */ -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"}, - - /* - * 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, ""} -}; - -/* - * floating-point status register - */ -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, ""} -}; - -void *g_StackPtrs1[STACK_POINTER_COUNT] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; - -#ifndef VERSION_EU -void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug}; -#else -// no sp_debug -void *g_StackPtrs2[STACK_POINTER_COUNT] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &cfb_16}; -#endif - -void *g_StackPtrs3[STACK_POINTER_COUNT] = {&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}; - -/** - * DebConTextPos - * Sets the position where text will be displayed inside console window - * (Does not draw - see print_to_vidbuff1) - * @param x: column in which to display text (0-71) - * @param y: line in which to display text (0-31) - * @param c: Character to Print - */ -void deboutWriteCharAtPos(s32 x, s32 y, unsigned char c) -{ - // replace tabs and line feeds with nothing - if ((c == '\t') || (c == '\n')) - { - c = '\0'; - } - // is printable char? if not replace with "?" - if ((c > '\0') && (c < ' ') || (c > '~')) - { - c = '?'; - } - if (((x >= 0) && (x <= 71)) && ((y >= 0) && (y <= 31))) - { - // Debug Window is 71 chars wide 32 rows high - //! BUG 71 is accepted as xpos but will overflow the buffer - g_DebugOutputTextBuffer[y][x] = c; - } -} - -/** - * deboutWriteChar - * Parse Character and save to On-Screen Buffer - * @param c: Character to parse - */ -void deboutWriteChar(unsigned char c) -{ - if (c != '\0') - { - if (c == '\t') - { - do - { - deboutWriteChar(' '); // fill with blanks - } 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++; - } - } - } -} - -/** - * Scroll Buffer up by a number of lines - * @param LinesToScroll: Number of Lines to scroll upward - */ -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]; - } - } - } -} -/** - * Print 4x8 1bit Glyph to stderr screen at position (x,y) - * @param x: Pixels from left within the stderr box - * @param y: Pixels from top within the stderr box - * @param c: the character to display - */ -void deboutDrawChar(s32 x, s32 y, unsigned char c) -{ - s32 bitmap_x; - s32 bitmap_y; - u32 bitmap; - s16 screen_w = viGetX(); - u16 *Vidbufp; - if (c == '\0') - { - c = ' '; //replace nul with space - } - if ((c >= ' ') && (c <= '~')) //if valid char - { - Vidbufp = (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)) - { - *Vidbufp = GPACK_RGBA5551(255, 255, 255, 1); - } - else - { - *Vidbufp = GPACK_RGBA5551(0, 0, 0, 1); - } - Vidbufp++; - bitmap <<= 1; // - } - Vidbufp += screen_w; - Vidbufp -= 4; - } - } -} - -/** - * Set pointers to video buffers 1 & 2. - * Converts values to uncached addresses - * @param cfba | A0000000 -> 8002417C - * @param cfbb | A0000000 -> 80024180 - */ -void deboutSetBuffers(u16 *buffer1, u16 *buffer2) -{ - g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer1); - g_DebugOutputVideoBuffer2 = (void *)K0_TO_K1(buffer2); -} - -/** - * Set up the 2 16bit CFBs to Direct mapped, uncached memory - */ -void deboutInitBuffers(void) -{ - deboutSetBuffers(&cfb_16[0], &cfb_16[1]); -} - -/** - * deboutDrawToBuffer - * write stderr to video buffer - * @param buffer: video buffer to render output - */ -void deboutDrawToBuffer(u16 *buffer) -{ - s32 screen_w; - s32 screen_h; - s32 output_w; - s32 output_h; - s32 x; - s32 y; - deboutInitBuffers(); - g_DebugOutputVideoBuffer1 = (void *)K0_TO_K1(buffer); // overwrite cfba - 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]); - } - } -} diff --git a/src/debugmenu.c b/src/debugmenu.c index 3db0e3a0..350118ea 100644 --- a/src/debugmenu.c +++ b/src/debugmenu.c @@ -215,25 +215,29 @@ void debmenu7000AF84(s32 x1, s32 y1, s32 x2, s32 y2) { #endif #ifdef NONMATCHING -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); +#ifndef LEFTOVERDEBUG +void debmenu7000AF98(s32 height) +{ + s32 x; s32 y; + + for (y = 33, height = height + 33; y != 0; y--, height--) + { + if ((height >= 0) && (height < 35)) { + for ( x = 0; x != 80; x++) + { + debmenu7000AF84(x, height, x, y); } - } else { - for (x = 0; x < 80; x++) { - debmenuWriteCharAtPos(x, y, '\0'); + + } else { + for (x = 0; x != 80; x++) + { + debmenuWriteCharAtPos(x, y, 0); } + } - ret = y; } - return ret; } +#endif #else #ifndef LEFTOVERDEBUG s32 debmenu7000AF98(s32 height) { diff --git a/src/debugmenu.h b/src/debugmenu.h index 1d2d0c6b..e87d2b46 100644 --- a/src/debugmenu.h +++ b/src/debugmenu.h @@ -11,10 +11,17 @@ typedef struct { void debmenu7000ADA8(void); void debmenuInit(void); void debmenuReset(void); +#ifdef LEFTOVERDEBUG +void debmenu7000AF84(s32 x1, s32 y1, s32 x2, s32 y2); +#endif void debmenuSetPos(s32 x, s32 y); void debmenuSetFgColour(s32 r, s32 g, s32 b, s32 a); void debmenuSetEnvColor(s32 r, s32 g, s32 b, s32 a); void debmenuPrintString(const unsigned char *str); Gfx *debmenuDraw(Gfx *gdl); +#ifdef LEFTOVERDEBUG +void debmenuWriteCharAtPos(s32 x, s32 y, unsigned char c); +#endif + #endif diff --git a/src/fault.h b/src/fault.h deleted file mode 100644 index 74538405..00000000 --- a/src/fault.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _TLB_PAGING_H_ -#define _TLB_PAGING_H_ - -#include - -void faultInit(void); -void faultMain(void* arg0); - -#endif diff --git a/src/fr.c b/src/fr.c index 0f7aba25..1d126c10 100644 --- a/src/fr.c +++ b/src/fr.c @@ -11,6 +11,9 @@ #include "game/bondview.h" #include "game/viewport.h" #include "game/dyn.h" +#ifdef ENABLE_USB +#include "usb.h" +#endif /** * EU .data, offset from start of data_seg : 0x2484 @@ -1933,7 +1936,8 @@ Gfx *viSetFillColor(Gfx *gdl, s32 r, s32 g, s32 b) */ void indyGrabJpg16bit(void) { - #ifdef LEFTOVERDEBUG +#ifdef LEFTOVERDEBUG + #ifndef ENABLE_USB s32 *pgrabnum = &g_indyJpg16BitGrabnum; char buffer[250]; s32 filesize; @@ -1966,7 +1970,11 @@ void indyGrabJpg16bit(void) sprintf(buffer, "imgview grab.%d.jpeg", *pgrabnum); indycommHostSendCmd((u8*)&buffer); + #else + //msg.msgtype +usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY() * 2)); #endif +#endif } /** @@ -1975,7 +1983,8 @@ void indyGrabJpg16bit(void) */ void indyGrabJpg32bit(void) { - #ifdef LEFTOVERDEBUG + #if defined(LEFTOVERDEBUG) + #if !defined(ENABLE_USB) s32 *pgrabnum = &g_indyJpg32BitGrabnum; char buffer[250]; s32 filesize; @@ -2008,6 +2017,9 @@ void indyGrabJpg32bit(void) sprintf(buffer, "imgview grab.%d.jpeg", *pgrabnum); indycommHostSendCmd((u8*)&buffer); + #else +usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4)); + #endif #endif } @@ -2017,7 +2029,8 @@ void indyGrabJpg32bit(void) */ void indyGrabRgb16bit(void) { - #ifdef LEFTOVERDEBUG + #if defined(LEFTOVERDEBUG) + #if !defined(ENABLE_USB) s32 *pgrabnum = &g_indyRgb16BitGrabnum; char buffer[250]; s32 filesize; @@ -2047,6 +2060,10 @@ void indyGrabRgb16bit(void) sprintf(buffer, "imgview grab.%d.rgb", *pgrabnum); indycommHostSendCmd((u8*)&buffer); + #else + //msg.msgtype +usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY() * 2)); + #endif #endif } @@ -2056,7 +2073,8 @@ void indyGrabRgb16bit(void) */ void indyGrabRgb32bit(void) { - #ifdef LEFTOVERDEBUG + #if defined(LEFTOVERDEBUG) + #if !defined(ENABLE_USB) s32 *pgrabnum = &g_indyRgb32BitGrabnum; char buffer[250]; s32 filesize; @@ -2086,5 +2104,9 @@ void indyGrabRgb32bit(void) sprintf(buffer, "imgview grab.%d.rgb", *pgrabnum); indycommHostSendCmd((u8*)&buffer); + #else + //msg.msgtype +usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4)); + #endif #endif } diff --git a/src/game/alloc_window_pieces.c b/src/game/alloc_window_pieces.c index f5272efd..e0451da9 100644 --- a/src/game/alloc_window_pieces.c +++ b/src/game/alloc_window_pieces.c @@ -19,7 +19,7 @@ void alloc_shattered_window_pieces(void) ptr_shattered_window_pieces = mempAllocBytesInBank(((SHATTERED_WINDOW_PIECES_BUFFER_LEN * 0x68) + 0xF) & ~0xF, 4U); for(i=0; imin.x; + dword_CODE_bss_8007FFA0[i].bbox.min.y = screensize->min.y; + dword_CODE_bss_8007FFA0[i].bbox.max.x = screensize->max.x; + dword_CODE_bss_8007FFA0[i].bbox.max.y = screensize->max.y; + dword_CODE_bss_8007FFA0[i].next = next; + + return; + } + } + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].roomid = curroom; + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].unk1 = unk1; + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.min.x = screensize->min.x; + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.min.y = screensize->min.y; + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.max.x = screensize->max.x; + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].bbox.max.y = screensize->max.y; + dword_CODE_bss_8007FFA0[g_BgNumberOfRoomsDrawn].next = next; + } + return; } #else @@ -1121,188 +1175,34 @@ void bgZeroBitflags2ForRoom(s32 roomnum) -#ifdef NONMATCHING + s32 sub_GAME_7F0B3B20(void) { s32 i; - if (array_room_info[0].bitflags2) { - return 0; - } - if (array_room_info[1].bitflags2) { - return 1; - } - for (i=2;i<0x96;i+=4) + for (i=0;iunk8 == 0) +s32 sub_GAME_7F0B4084(s32 room) +{ + int i = room; + while (ptr_bgdata_room_fileposition_list[i].pSecMappingBin == 0) { - // Node 1 - phi_a0 = (ptr_bgdata_room_fileposition_list + (arg0 * 0x18)); - phi_v1_2 = arg0; -loop_2: - // Node 2 - temp_v1 = (phi_v1_2 + 1); - phi_a0 = (phi_a0 + 0x18); - phi_v1 = temp_v1; - phi_v1_2 = temp_v1; - if (phi_a0->unk20 == 0) - { - goto loop_2; - } + i++; } - // Node 3 - return phi_v1; + return i; } -#else -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B4084 -/* 0E8BB4 7F0B4084 3C028008 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) -/* 0E8BB8 7F0B4088 8C42FF8C */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) -/* 0E8BBC 7F0B408C 00047080 */ sll $t6, $a0, 2 -/* 0E8BC0 7F0B4090 01C47023 */ subu $t6, $t6, $a0 -/* 0E8BC4 7F0B4094 000E70C0 */ sll $t6, $t6, 3 -/* 0E8BC8 7F0B4098 004E7821 */ addu $t7, $v0, $t6 -/* 0E8BCC 7F0B409C 8DF80008 */ lw $t8, 8($t7) -/* 0E8BD0 7F0B40A0 0004C880 */ sll $t9, $a0, 2 -/* 0E8BD4 7F0B40A4 00801825 */ move $v1, $a0 -/* 0E8BD8 7F0B40A8 17000008 */ bnez $t8, .L7F0B40CC -/* 0E8BDC 7F0B40AC 0324C823 */ subu $t9, $t9, $a0 -/* 0E8BE0 7F0B40B0 0019C8C0 */ sll $t9, $t9, 3 -/* 0E8BE4 7F0B40B4 00592021 */ addu $a0, $v0, $t9 -/* 0E8BE8 7F0B40B8 8C880020 */ lw $t0, 0x20($a0) -.L7F0B40BC: -/* 0E8BEC 7F0B40BC 24630001 */ addiu $v1, $v1, 1 -/* 0E8BF0 7F0B40C0 24840018 */ addiu $a0, $a0, 0x18 -/* 0E8BF4 7F0B40C4 5100FFFD */ beql $t0, $zero, .L7F0B40BC -/* 0E8BF8 7F0B40C8 8C880020 */ lw $t0, 0x20($a0) -.L7F0B40CC: -/* 0E8BFC 7F0B40CC 03E00008 */ jr $ra -/* 0E8C00 7F0B40D0 00601025 */ move $v0, $v1 -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B4084 -/* 0E5DB0 7F0B33C0 3C028007 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) # $v0, 0x8007 -/* 0E5DB4 7F0B33C4 8C42B3D4 */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) -/* 0E5DB8 7F0B33C8 00047080 */ sll $t6, $a0, 2 -/* 0E5DBC 7F0B33CC 01C47023 */ subu $t6, $t6, $a0 -/* 0E5DC0 7F0B33D0 000E70C0 */ sll $t6, $t6, 3 -/* 0E5DC4 7F0B33D4 004E7821 */ addu $t7, $v0, $t6 -/* 0E5DC8 7F0B33D8 8DF80008 */ lw $t8, 8($t7) -/* 0E5DCC 7F0B33DC 0004C880 */ sll $t9, $a0, 2 -/* 0E5DD0 7F0B33E0 00801825 */ move $v1, $a0 -/* 0E5DD4 7F0B33E4 17000008 */ bnez $t8, .L7F0B3408 -/* 0E5DD8 7F0B33E8 0324C823 */ subu $t9, $t9, $a0 -/* 0E5DDC 7F0B33EC 0019C8C0 */ sll $t9, $t9, 3 -/* 0E5DE0 7F0B33F0 00592021 */ addu $a0, $v0, $t9 -/* 0E5DE4 7F0B33F4 8C880020 */ lw $t0, 0x20($a0) -.L7F0B33F8: -/* 0E5DE8 7F0B33F8 24630001 */ addiu $v1, $v1, 1 -/* 0E5DEC 7F0B33FC 24840018 */ addiu $a0, $a0, 0x18 -/* 0E5DF0 7F0B3400 5100FFFD */ beql $t0, $zero, .L7F0B33F8 -/* 0E5DF4 7F0B3404 8C880020 */ lw $t0, 0x20($a0) -.L7F0B3408: -/* 0E5DF8 7F0B3408 03E00008 */ jr $ra -/* 0E5DFC 7F0B340C 00601025 */ move $v0, $v1 -) -#endif -#endif - - - -#ifdef NONMATCHING -s32 sub_GAME_7F0B40D4(s32 arg0) { - s32 temp_v1; - void *phi_a0; - s32 phi_v1; - s32 phi_v1_2; - - // Node 0 - phi_v1 = arg0; - if (*(ptr_bgdata_room_fileposition_list + (arg0 * 0x18)) == 0) +s32 sub_GAME_7F0B40D4(s32 room) +{ + int i = room; + while (ptr_bgdata_room_fileposition_list[i].pPointTableBin == 0) { - // Node 1 - phi_a0 = (ptr_bgdata_room_fileposition_list + (arg0 * 0x18)); - phi_v1_2 = arg0; -loop_2: - // Node 2 - temp_v1 = (phi_v1_2 + 1); - phi_a0 = (phi_a0 + 0x18); - phi_v1 = temp_v1; - phi_v1_2 = temp_v1; - if (phi_a0->unk18 == 0) - { - goto loop_2; - } + i++; } - // Node 3 - return phi_v1; + return i; } -#else -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B40D4 -/* 0E8C04 7F0B40D4 3C028008 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) -/* 0E8C08 7F0B40D8 8C42FF8C */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) -/* 0E8C0C 7F0B40DC 00047080 */ sll $t6, $a0, 2 -/* 0E8C10 7F0B40E0 01C47023 */ subu $t6, $t6, $a0 -/* 0E8C14 7F0B40E4 000E70C0 */ sll $t6, $t6, 3 -/* 0E8C18 7F0B40E8 004E7821 */ addu $t7, $v0, $t6 -/* 0E8C1C 7F0B40EC 8DF80000 */ lw $t8, ($t7) -/* 0E8C20 7F0B40F0 0004C880 */ sll $t9, $a0, 2 -/* 0E8C24 7F0B40F4 00801825 */ move $v1, $a0 -/* 0E8C28 7F0B40F8 17000008 */ bnez $t8, .L7F0B411C -/* 0E8C2C 7F0B40FC 0324C823 */ subu $t9, $t9, $a0 -/* 0E8C30 7F0B4100 0019C8C0 */ sll $t9, $t9, 3 -/* 0E8C34 7F0B4104 00592021 */ addu $a0, $v0, $t9 -/* 0E8C38 7F0B4108 8C880018 */ lw $t0, 0x18($a0) -.L7F0B410C: -/* 0E8C3C 7F0B410C 24630001 */ addiu $v1, $v1, 1 -/* 0E8C40 7F0B4110 24840018 */ addiu $a0, $a0, 0x18 -/* 0E8C44 7F0B4114 5100FFFD */ beql $t0, $zero, .L7F0B410C -/* 0E8C48 7F0B4118 8C880018 */ lw $t0, 0x18($a0) -.L7F0B411C: -/* 0E8C4C 7F0B411C 03E00008 */ jr $ra -/* 0E8C50 7F0B4120 00601025 */ move $v0, $v1 -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B40D4 -/* 0E5E00 7F0B3410 3C028007 */ lui $v0, %hi(ptr_bgdata_room_fileposition_list) # $v0, 0x8007 -/* 0E5E04 7F0B3414 8C42B3D4 */ lw $v0, %lo(ptr_bgdata_room_fileposition_list)($v0) -/* 0E5E08 7F0B3418 00047080 */ sll $t6, $a0, 2 -/* 0E5E0C 7F0B341C 01C47023 */ subu $t6, $t6, $a0 -/* 0E5E10 7F0B3420 000E70C0 */ sll $t6, $t6, 3 -/* 0E5E14 7F0B3424 004E7821 */ addu $t7, $v0, $t6 -/* 0E5E18 7F0B3428 8DF80000 */ lw $t8, ($t7) -/* 0E5E1C 7F0B342C 0004C880 */ sll $t9, $a0, 2 -/* 0E5E20 7F0B3430 00801825 */ move $v1, $a0 -/* 0E5E24 7F0B3434 17000008 */ bnez $t8, .L7F0B3458 -/* 0E5E28 7F0B3438 0324C823 */ subu $t9, $t9, $a0 -/* 0E5E2C 7F0B343C 0019C8C0 */ sll $t9, $t9, 3 -/* 0E5E30 7F0B3440 00592021 */ addu $a0, $v0, $t9 -/* 0E5E34 7F0B3444 8C880018 */ lw $t0, 0x18($a0) -.L7F0B3448: -/* 0E5E38 7F0B3448 24630001 */ addiu $v1, $v1, 1 -/* 0E5E3C 7F0B344C 24840018 */ addiu $a0, $a0, 0x18 -/* 0E5E40 7F0B3450 5100FFFD */ beql $t0, $zero, .L7F0B3448 -/* 0E5E44 7F0B3454 8C880018 */ lw $t0, 0x18($a0) -.L7F0B3458: -/* 0E5E48 7F0B3458 03E00008 */ jr $ra -/* 0E5E4C 7F0B345C 00601025 */ move $v0, $v1 -) -#endif -#endif @@ -3328,37 +2995,10 @@ f32 get_room_data_float1(void){ } - - - - -#ifdef NONMATCHING -f32 sub_GAME_7F0B4848(void) { - void *temp_v0; - - temp_v0 = ((levelentry_index * 0x18) + &levelinfotable); - return (temp_v0->unk14 / temp_v0->unkC); +f32 sub_GAME_7F0B4848(void) +{ + return levelinfotable[levelentry_index].unknownfloat / levelinfotable[levelentry_index].levelscale; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B4848 -/* 0E9378 7F0B4848 3C0E8004 */ lui $t6, %hi(levelentry_index) -/* 0E937C 7F0B484C 8DCE1400 */ lw $t6, %lo(levelentry_index)($t6) -/* 0E9380 7F0B4850 3C188004 */ lui $t8, %hi(levelinfotable) -/* 0E9384 7F0B4854 2718448C */ addiu $t8, %lo(levelinfotable) # addiu $t8, $t8, 0x448c -/* 0E9388 7F0B4858 000E7880 */ sll $t7, $t6, 2 -/* 0E938C 7F0B485C 01EE7823 */ subu $t7, $t7, $t6 -/* 0E9390 7F0B4860 000F78C0 */ sll $t7, $t7, 3 -/* 0E9394 7F0B4864 01F81021 */ addu $v0, $t7, $t8 -/* 0E9398 7F0B4868 C4440014 */ lwc1 $f4, 0x14($v0) -/* 0E939C 7F0B486C C446000C */ lwc1 $f6, 0xc($v0) -/* 0E93A0 7F0B4870 03E00008 */ jr $ra -/* 0E93A4 7F0B4874 46062003 */ div.s $f0, $f4, $f6 -) -#endif - - //sub_GAME_7F0B4878 @@ -3817,7 +3457,7 @@ Gfx *bgLevelRender(Gfx *arg0) { gSPSetLights1(arg0++, GlobalLight); gSPLookAt(arg0++, sub_GAME_7F078474()); - gSPSegment(arg0++, 0x0F, ptr_bg_data); + gSPSegment(arg0++, SPSEGMENT_BG_DL, ptr_bg_data); if (dword_CODE_bss_8007FF88 == 1) { @@ -3837,22 +3477,11 @@ Gfx *bgLevelRender(Gfx *arg0) -#ifdef NONMATCHING -s32 sub_GAME_7F0B4F9C(u8 arg0) { - return (dword_CODE_bss_8007FF94 + (arg0 * 4))->unk4; +f32 sub_GAME_7F0B4F9C(s32 arg0) +{ + return dword_CODE_bss_8007FF94[arg0 + 1]; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B4F9C -/* 0E9ACC 7F0B4F9C 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_8007FF94) -/* 0E9AD0 7F0B4FA0 8DCEFF94 */ lw $t6, %lo(dword_CODE_bss_8007FF94)($t6) -/* 0E9AD4 7F0B4FA4 00047880 */ sll $t7, $a0, 2 -/* 0E9AD8 7F0B4FA8 01CFC021 */ addu $t8, $t6, $t7 -/* 0E9ADC 7F0B4FAC 03E00008 */ jr $ra -/* 0E9AE0 7F0B4FB0 C7000004 */ lwc1 $f0, 4($t8) -) -#endif + @@ -3940,72 +3569,15 @@ Gfx *bgScissorCurrentPlayerView(Gfx *arg0, s32 left, s32 top, s32 width, s32 hei -#ifdef NONMATCHING -s32 sub_GAME_7F0B5168(void) { - void *temp_v1; - void *phi_v1; - // Node 0 - phi_v1 = &table_for_portals; -loop_1: - // Node 1 - temp_v1 = (phi_v1 + 0x50); - temp_v1->unk-3C = -1; - temp_v1->unk-28 = -1; - temp_v1->unk-14 = -1; - temp_v1->unk-50 = -1; - phi_v1 = temp_v1; - if (temp_v1 != &table_for_portals+0xFA0) - { - goto loop_1; +void sub_GAME_7F0B5168(void) { + s32 i; + + for (i = 0; i < 200; i++) { + table_for_portals[i].unk0 = -1; } - // Node 2 - return -1; } -#else -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B5168 -/* 0E9C98 7F0B5168 3C038008 */ lui $v1, %hi(table_for_portals) -/* 0E9C9C 7F0B516C 3C048008 */ lui $a0, %hi(table_for_portals+0xFA0) -/* 0E9CA0 7F0B5170 248425B8 */ addiu $a0, %lo(table_for_portals+0xFA0) # addiu $a0, $a0, 0x25b8 -/* 0E9CA4 7F0B5174 24631618 */ addiu $v1, %lo(table_for_portals) # addiu $v1, $v1, 0x1618 -/* 0E9CA8 7F0B5178 2402FFFF */ li $v0, -1 -.L7F0B517C: -/* 0E9CAC 7F0B517C 24630050 */ addiu $v1, $v1, 0x50 -/* 0E9CB0 7F0B5180 AC62FFC4 */ sw $v0, -0x3c($v1) -/* 0E9CB4 7F0B5184 AC62FFD8 */ sw $v0, -0x28($v1) -/* 0E9CB8 7F0B5188 AC62FFEC */ sw $v0, -0x14($v1) -/* 0E9CBC 7F0B518C 1464FFFB */ bne $v1, $a0, .L7F0B517C -/* 0E9CC0 7F0B5190 AC62FFB0 */ sw $v0, -0x50($v1) -/* 0E9CC4 7F0B5194 03E00008 */ jr $ra -/* 0E9CC8 7F0B5198 00000000 */ nop -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B5168 -/* 0E6E94 7F0B44A4 3C038007 */ lui $v1, %hi(table_for_portals) # $v1, 0x8007 -/* 0E6E98 7F0B44A8 3C048007 */ lui $a0, %hi(table_for_portals+0xFA0) # $a0, 0x8007 -/* 0E6E9C 7F0B44AC 2484CF60 */ addiu $a0, %lo(table_for_portals+0xFA0) # addiu $a0, $a0, -0x30a0 -/* 0E6EA0 7F0B44B0 2463BFC0 */ addiu $v1, %lo(table_for_portals) # addiu $v1, $v1, -0x4040 -/* 0E6EA4 7F0B44B4 2402FFFF */ li $v0, -1 -.L7F0B44B8: -/* 0E6EA8 7F0B44B8 24630050 */ addiu $v1, $v1, 0x50 -/* 0E6EAC 7F0B44BC AC62FFC4 */ sw $v0, -0x3c($v1) -/* 0E6EB0 7F0B44C0 AC62FFD8 */ sw $v0, -0x28($v1) -/* 0E6EB4 7F0B44C4 AC62FFEC */ sw $v0, -0x14($v1) -/* 0E6EB8 7F0B44C8 1464FFFB */ bne $v1, $a0, .L7F0B44B8 -/* 0E6EBC 7F0B44CC AC62FFB0 */ sw $v0, -0x50($v1) -/* 0E6EC0 7F0B44D0 03E00008 */ jr $ra -/* 0E6EC4 7F0B44D4 00000000 */ nop -) -#endif -#endif @@ -4430,74 +4002,28 @@ glabel sub_GAME_7F0B5208 #endif +s32 sub_GAME_7F0B5488(coord3d* arg0, coord3d* arg1) +{ + Mtxf* temp_a0; + s32 var_v0; + temp_a0 = currentPlayerGetMatrix10CC(); + arg1->x = arg0->x * room_data_float2; + arg1->y = arg0->y * room_data_float2; + arg1->z = arg0->z * room_data_float2; + matrix_4x4_transform_vector_in_place(temp_a0, arg1->f); - -#ifdef NONMATCHING -void sub_GAME_7F0B5488(void *arg0, void *arg1) { - // Node 0 - *arg1 = (f32) (*arg0 * room_data_float2); - arg1->unk4 = (f32) (arg0->unk4 * room_data_float2); - arg1->unk8 = (f32) (arg0->unk8 * room_data_float2); - matrix_4x4_transform_vector_in_place(currentPlayerGetMatrix10CC(), arg1, arg0); sub_GAME_7F078060(arg1, arg1); - if (0.0f < arg1->unk8) + + if (arg1->z > 0.0f) { - // Node 1 + return 0; + } + else + { + return 1; } - // Node 2 - return 1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B5488 -/* 0E9FB8 7F0B5488 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0E9FBC 7F0B548C AFBF001C */ sw $ra, 0x1c($sp) -/* 0E9FC0 7F0B5490 AFB00018 */ sw $s0, 0x18($sp) -/* 0E9FC4 7F0B5494 00A08025 */ move $s0, $a1 -/* 0E9FC8 7F0B5498 0FC1E0F1 */ jal currentPlayerGetMatrix10CC -/* 0E9FCC 7F0B549C AFA40020 */ sw $a0, 0x20($sp) -/* 0E9FD0 7F0B54A0 8FA60020 */ lw $a2, 0x20($sp) -/* 0E9FD4 7F0B54A4 3C038004 */ lui $v1, %hi(room_data_float2) -/* 0E9FD8 7F0B54A8 246313F8 */ addiu $v1, %lo(room_data_float2) # addiu $v1, $v1, 0x13f8 -/* 0E9FDC 7F0B54AC C4660000 */ lwc1 $f6, ($v1) -/* 0E9FE0 7F0B54B0 C4C40000 */ lwc1 $f4, ($a2) -/* 0E9FE4 7F0B54B4 00402025 */ move $a0, $v0 -/* 0E9FE8 7F0B54B8 02002825 */ move $a1, $s0 -/* 0E9FEC 7F0B54BC 46062202 */ mul.s $f8, $f4, $f6 -/* 0E9FF0 7F0B54C0 E6080000 */ swc1 $f8, ($s0) -/* 0E9FF4 7F0B54C4 C4700000 */ lwc1 $f16, ($v1) -/* 0E9FF8 7F0B54C8 C4CA0004 */ lwc1 $f10, 4($a2) -/* 0E9FFC 7F0B54CC 46105482 */ mul.s $f18, $f10, $f16 -/* 0EA000 7F0B54D0 E6120004 */ swc1 $f18, 4($s0) -/* 0EA004 7F0B54D4 C4660000 */ lwc1 $f6, ($v1) -/* 0EA008 7F0B54D8 C4C40008 */ lwc1 $f4, 8($a2) -/* 0EA00C 7F0B54DC 46062202 */ mul.s $f8, $f4, $f6 -/* 0EA010 7F0B54E0 0FC1611D */ jal matrix_4x4_transform_vector_in_place -/* 0EA014 7F0B54E4 E6080008 */ swc1 $f8, 8($s0) -/* 0EA018 7F0B54E8 02002025 */ move $a0, $s0 -/* 0EA01C 7F0B54EC 0FC1E018 */ jal sub_GAME_7F078060 -/* 0EA020 7F0B54F0 02002825 */ move $a1, $s0 -/* 0EA024 7F0B54F4 44805000 */ mtc1 $zero, $f10 -/* 0EA028 7F0B54F8 C6100008 */ lwc1 $f16, 8($s0) -/* 0EA02C 7F0B54FC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0EA030 7F0B5500 24020001 */ li $v0, 1 -/* 0EA034 7F0B5504 4610503C */ c.lt.s $f10, $f16 -/* 0EA038 7F0B5508 00000000 */ nop -/* 0EA03C 7F0B550C 45000003 */ bc1f .L7F0B551C -/* 0EA040 7F0B5510 00000000 */ nop -/* 0EA044 7F0B5514 10000001 */ b .L7F0B551C -/* 0EA048 7F0B5518 00001025 */ move $v0, $zero -.L7F0B551C: -/* 0EA04C 7F0B551C 8FB00018 */ lw $s0, 0x18($sp) -/* 0EA050 7F0B5520 03E00008 */ jr $ra -/* 0EA054 7F0B5524 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - #ifdef NONMATCHING @@ -5790,7 +5316,7 @@ u32 * sub_GAME_7F0B609C(int roomID, int *data, u32 size) dest = bgDecompress(source,data); puVar1 = (size - dest) + data; sub_GAME_7F0CE794(data,puVar1,dest); - sub_GAME_7F0BC4C4(roomID); + clear_light_fixturetable_in_room(roomID); puVar1 = process_microcode_sort_display_modes_expand_image_calls(puVar1,dest,data,NULL); if (dest < puVar1) { dest = puVar1; @@ -5868,7 +5394,7 @@ glabel sub_GAME_7F0B609C /* 0EACB4 7F0B6184 AFA50028 */ sw $a1, 0x28($sp) /* 0EACB8 7F0B6188 0FC339E5 */ jal sub_GAME_7F0CE794 /* 0EACBC 7F0B618C 00403025 */ move $a2, $v0 -/* 0EACC0 7F0B6190 0FC2F131 */ jal sub_GAME_7F0BC4C4 +/* 0EACC0 7F0B6190 0FC2F131 */ jal clear_light_fixturetable_in_room /* 0EACC4 7F0B6194 8FA40038 */ lw $a0, 0x38($sp) /* 0EACC8 7F0B6198 8FA40028 */ lw $a0, 0x28($sp) /* 0EACCC 7F0B619C 02202825 */ move $a1, $s1 @@ -5958,7 +5484,7 @@ glabel sub_GAME_7F0B609C /* 0EACB4 7F0B6184 AFA50028 */ sw $a1, 0x28($sp) /* 0EACB8 7F0B6188 0FC339E5 */ jal sub_GAME_7F0CE794 /* 0EACBC 7F0B618C 00403025 */ move $a2, $v0 -/* 0EACC0 7F0B6190 0FC2F131 */ jal sub_GAME_7F0BC4C4 +/* 0EACC0 7F0B6190 0FC2F131 */ jal clear_light_fixturetable_in_room /* 0EACC4 7F0B6194 8FA40038 */ lw $a0, 0x38($sp) /* 0EACC8 7F0B6198 8FA40028 */ lw $a0, 0x28($sp) /* 0EACCC 7F0B619C 02202825 */ move $a1, $s1 @@ -6285,7 +5811,7 @@ void sub_GAME_7F0B6368(s32 rooms) { // Node 9 sp1C = temp_v1_2; sp28 = temp_ret_2; - sub_GAME_7F0BB978(rooms, sp28); + redarken_lights_in_room(rooms, sp28); } } else @@ -6448,7 +5974,7 @@ glabel sub_GAME_7F0B6368 /* 0EAF74 7F0B6444 8FA70028 */ lw $a3, 0x28($sp) /* 0EAF78 7F0B6448 8FA40030 */ lw $a0, 0x30($sp) /* 0EAF7C 7F0B644C AFA3001C */ sw $v1, 0x1c($sp) -/* 0EAF80 7F0B6450 0FC2EE5E */ jal sub_GAME_7F0BB978 +/* 0EAF80 7F0B6450 0FC2EE5E */ jal redarken_lights_in_room /* 0EAF84 7F0B6454 AFA20028 */ sw $v0, 0x28($sp) /* 0EAF88 7F0B6458 8FA3001C */ lw $v1, 0x1c($sp) /* 0EAF8C 7F0B645C 10000003 */ b .L7F0B646C @@ -6618,7 +6144,7 @@ glabel sub_GAME_7F0B6368 /* 0E8170 7F0B5780 8FA70028 */ lw $a3, 0x28($sp) /* 0E8174 7F0B5784 8FA40030 */ lw $a0, 0x30($sp) /* 0E8178 7F0B5788 AFA3001C */ sw $v1, 0x1c($sp) -/* 0E817C 7F0B578C 0FC2EB5E */ jal sub_GAME_7F0BB978 +/* 0E817C 7F0B578C 0FC2EB5E */ jal redarken_lights_in_room /* 0E8180 7F0B5790 AFA20028 */ sw $v0, 0x28($sp) /* 0E8184 7F0B5794 8FA3001C */ lw $v1, 0x1c($sp) /* 0E8188 7F0B5798 10000003 */ b .L7F0B57A8 @@ -6884,7 +6410,7 @@ Gfx *sub_GAME_7F0B677C(Gfx *arg0, s32 room_index) { arg0 = sub_GAME_7F0BC9C4(arg0, room_index); - gSPSegment(arg0++, 0x0E, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_point_index)); + gSPSegment(arg0++, SPSEGMENT_BG_VTX, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_point_index)); gSPDisplayList(arg0++, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_expanded_mapping_info)); array_room_info[room_index].model_bin_loaded = 1; @@ -6916,7 +6442,7 @@ Gfx *sub_GAME_7F0B6898(Gfx *arg0, s32 room_index) { arg0 = sub_GAME_7F0BC9C4(arg0, room_index); - gSPSegment(arg0++, 0x0E, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_point_index)); + gSPSegment(arg0++, SPSEGMENT_BG_VTX, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_point_index)); gSPDisplayList(arg0++, OS_K0_TO_PHYSICAL(array_room_info[room_index].ptr_secondary_expanded_mapping_info)); array_room_info[room_index].model_bin_loaded = 1; @@ -13679,84 +13205,20 @@ glabel sub_GAME_7F0B9F14 #endif +bool bgIsBboxOverlapping(coord3d *portalbbmin, coord3d *portalbbmax, coord3d *propbbmin, coord3d *propbbmax) +{ + s32 i; - - -#ifdef NONMATCHING -void sub_GAME_7F0BA26C(s32 arg0, void *arg1, void *arg2, s32 arg3) { - s32 temp_v1; - void *phi_t0; - void *phi_t1; - s32 phi_v1; - - // Node 0 - phi_t0 = arg1; - phi_t1 = arg2; - phi_v1 = 0; -loop_1: - // Node 1 - temp_v1 = (phi_v1 + 4); - if (*phi_t0 < *phi_t1) + for (i = 0; i < 3; i++) { - // Node 3 - return 0; + if (propbbmin->f[i] > portalbbmax->f[i] || propbbmax->f[i] < portalbbmin->f[i]) + { + return FALSE; + } } - // Node 2 - if (*(arg3 + phi_v1) < *(arg0 + phi_v1)) - { - // Node 3 - return 0; - } - // Node 4 - phi_t0 = (phi_t0 + 4); - phi_t1 = (phi_t1 + 4); - phi_v1 = temp_v1; - if (temp_v1 != 0xc) - { - goto loop_1; - } - // Node 5 - return 1; + + return TRUE; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BA26C -/* 0EED9C 7F0BA26C 00001825 */ move $v1, $zero -/* 0EEDA0 7F0BA270 00A04025 */ move $t0, $a1 -/* 0EEDA4 7F0BA274 00C04825 */ move $t1, $a2 -/* 0EEDA8 7F0BA278 2402000C */ li $v0, 12 -.L7F0BA27C: -/* 0EEDAC 7F0BA27C C5040000 */ lwc1 $f4, ($t0) -/* 0EEDB0 7F0BA280 C5260000 */ lwc1 $f6, ($t1) -/* 0EEDB4 7F0BA284 00E37021 */ addu $t6, $a3, $v1 -/* 0EEDB8 7F0BA288 00837821 */ addu $t7, $a0, $v1 -/* 0EEDBC 7F0BA28C 4606203C */ c.lt.s $f4, $f6 -/* 0EEDC0 7F0BA290 24630004 */ addiu $v1, $v1, 4 -/* 0EEDC4 7F0BA294 25080004 */ addiu $t0, $t0, 4 -/* 0EEDC8 7F0BA298 45010007 */ bc1t .L7F0BA2B8 -/* 0EEDCC 7F0BA29C 00000000 */ nop -/* 0EEDD0 7F0BA2A0 C5C80000 */ lwc1 $f8, ($t6) -/* 0EEDD4 7F0BA2A4 C5EA0000 */ lwc1 $f10, ($t7) -/* 0EEDD8 7F0BA2A8 460A403C */ c.lt.s $f8, $f10 -/* 0EEDDC 7F0BA2AC 00000000 */ nop -/* 0EEDE0 7F0BA2B0 45000003 */ bc1f .L7F0BA2C0 -/* 0EEDE4 7F0BA2B4 00000000 */ nop -.L7F0BA2B8: -/* 0EEDE8 7F0BA2B8 03E00008 */ jr $ra -/* 0EEDEC 7F0BA2BC 00001025 */ move $v0, $zero - -.L7F0BA2C0: -/* 0EEDF0 7F0BA2C0 1462FFEE */ bne $v1, $v0, .L7F0BA27C -/* 0EEDF4 7F0BA2C4 25290004 */ addiu $t1, $t1, 4 -/* 0EEDF8 7F0BA2C8 24020001 */ li $v0, 1 -/* 0EEDFC 7F0BA2CC 03E00008 */ jr $ra -/* 0EEE00 7F0BA2D0 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -13894,7 +13356,7 @@ glabel sub_GAME_7F0BA2D4 /* 0EEFD0 7F0BA4A0 02C02025 */ move $a0, $s6 /* 0EEFD4 7F0BA4A4 02E02825 */ move $a1, $s7 /* 0EEFD8 7F0BA4A8 27A600A0 */ addiu $a2, $sp, 0xa0 -/* 0EEFDC 7F0BA4AC 0FC2E89B */ jal sub_GAME_7F0BA26C +/* 0EEFDC 7F0BA4AC 0FC2E89B */ jal bgIsBboxOverlapping /* 0EEFE0 7F0BA4B0 27A70094 */ addiu $a3, $sp, 0x94 /* 0EEFE4 7F0BA4B4 1040001F */ beqz $v0, .L7F0BA534 /* 0EEFE8 7F0BA4B8 3C0E8008 */ lui $t6, %hi(ptr_bgdata_portals) diff --git a/src/game/bg.h b/src/game/bg.h index 11d9374a..6bc1d93f 100644 --- a/src/game/bg.h +++ b/src/game/bg.h @@ -20,7 +20,7 @@ typedef struct s_room_info { u8 bitflags1; u8 model_bin_loaded; u8 bitflags2; - void * ptr_point_index; + Vtx * ptr_point_index; void * ptr_expanded_mapping_info; void * ptr_secondary_expanded_mapping_info; s32 csize_point_index_binary; @@ -35,12 +35,8 @@ typedef struct s_room_info { u8 room_loaded_mask; u8 field_35; s16 field_36; - f32 minxbounds; - f32 minybounds; - f32 minzbounds; - f32 maxxbounds; - f32 maxybounds; - f32 maxzbounds; + coord3d minbounds; + coord3d maxbounds; } s_room_info; typedef struct s_bound_info @@ -90,6 +86,22 @@ typedef struct bg_room_data coord3d pos; } bg_room_data; +typedef struct s_specialportal +{ + u8 levelid; + u8 portallist[]; +} s_specialportal; + +typedef struct unk_portalstruct +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; +} unk_portalstruct; + +extern struct unk_portalstruct table_for_portals[200]; extern s32 MaxNumRooms; extern f32 room_data_float2; @@ -102,7 +114,7 @@ void bgInitDebugNoticeList(void); // sub_GAME_7F033B38 requres arg be s32 s32 sub_GAME_7F0B8FD0(s32 roomA, u8 roomB); -s32 sub_GAME_7F0B4F9C(u8 room); // u8 not s32 for sub_GAME_7F0B2FE0 +//f32 sub_GAME_7F0B4F9C(s32 room); // u8 not s32 for sub_GAME_7F0B2FE0 u32 bgDecompress(u8* source, u8 *target); void sub_GAME_7F0B65C4(s32 roomID); void load_bg_file(LEVEL_INDEX stagenum); @@ -126,5 +138,8 @@ f32 get_room_data_float1(void); u8 getROOMID_Bitflags(int roomID); s32 bgGet2dBboxByRoomId(s32 room_id, struct bbox2d *result); f32 bgGetLevelVisibilityScale(void); +void sub_GAME_7F0B5CC0(struct bbox2d *a, struct bbox2d *b); +f32 get_room_data_float2(void); + #endif diff --git a/src/game/blood_animation.c b/src/game/blood_animation.c index f51d7ac0..5e9cabfe 100644 --- a/src/game/blood_animation.c +++ b/src/game/blood_animation.c @@ -191,7 +191,7 @@ u8 die_blood_image_1[] = { 0xE5, 0xE5, 0xE5, 0xE5 }; -u8 D_8002C50C = 0; +u8 die_blood_image_end = 0; Gfx *insert_imageDL(Gfx *gdl) { gDPSetCycleType(gdl++, G_CYC_FILL); @@ -218,26 +218,26 @@ s32 die_blood_image_routine(s32 arg0) { u8* temp_v0_2; if (arg0 == 0) { - g_CurrentPlayer->field_11A8 = die_blood_image_1; + g_CurrentPlayer->bloodImgCur = die_blood_image_1; } else if (arg0 == 1) { - if (g_CurrentPlayer->field_11AC < &D_8002C50C) { - g_CurrentPlayer->field_11A8 = g_CurrentPlayer->field_11AC; + if (g_CurrentPlayer->bloodImgNxt < &die_blood_image_end) { + g_CurrentPlayer->bloodImgCur = g_CurrentPlayer->bloodImgNxt; } } - g_CurrentPlayer->field_11B8 = (1 - g_CurrentPlayer->field_11B8); - g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8] = dynAllocate(0x1E00); + g_CurrentPlayer->bloodImgIdx = (1 - g_CurrentPlayer->bloodImgIdx); + g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx] = dynAllocate(0x1E00); temp_v0_2 = dynAllocate(0x1E00); - g_CurrentPlayer->field_11AC = decrypt_bleeding_animation_data(g_CurrentPlayer->field_11A8, 0x50, 0x60, temp_v0_2, &sp37); - sub_GAME_7F01D16C(temp_v0_2, 0x50, 0x60, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]); - sub_GAME_7F01D02C(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8], 0x50, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]); - sub_GAME_7F01CEEC(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8], 0x50, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]); - sub_GAME_7F01CC94(g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8], 0x1E00, g_CurrentPlayer->field_11B0[g_CurrentPlayer->field_11B8]); + g_CurrentPlayer->bloodImgNxt = decrypt_bleeding_animation_data(g_CurrentPlayer->bloodImgCur, 0x50, 0x60, temp_v0_2, &sp37); + sub_GAME_7F01D16C(temp_v0_2, 0x50, 0x60, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]); + sub_GAME_7F01D02C(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx], 0x50, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]); + sub_GAME_7F01CEEC(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx], 0x50, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]); + sub_GAME_7F01CC94(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx], 0x1E00, g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]); - return (g_CurrentPlayer->field_11AC >= &D_8002C50C); + return (g_CurrentPlayer->bloodImgNxt >= &die_blood_image_end); } -Gfx *sub_GAME_7F01C400(Gfx *gdl) { +Gfx *gunbarrelBloodOverlayDL(Gfx *gdl) { gDPSetTextureLUT(gdl++, G_TT_NONE); gDPSetTextureFilter(gdl++, G_TF_BILERP); @@ -249,13 +249,13 @@ Gfx *sub_GAME_7F01C400(Gfx *gdl) { 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(g_CurrentPlayer->field_11B0[g_CurrentPlayer->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); + gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]), 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; } -Gfx *sub_GAME_7F01C670(Gfx *gdl) { +Gfx *gameplayBloodOverlayDL(Gfx *gdl) { gDPSetTextureLUT(gdl++, G_TT_NONE); gDPSetTextureFilter(gdl++, G_TF_BILERP); gDPSetCycleType(gdl++, G_CYC_1CYCLE); @@ -266,7 +266,7 @@ Gfx *sub_GAME_7F01C670(Gfx *gdl) { 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(g_CurrentPlayer->field_11B0[g_CurrentPlayer->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); + gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(g_CurrentPlayer->bloodImgBufPtrArray[g_CurrentPlayer->bloodImgIdx]), 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); diff --git a/src/game/blood_animation.h b/src/game/blood_animation.h index f0eeaaae..d80c5acc 100644 --- a/src/game/blood_animation.h +++ b/src/game/blood_animation.h @@ -6,7 +6,7 @@ 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 *gunbarrelBloodOverlayDL(Gfx *gdl); Gfx *sub_GAME_7F01CA18(Gfx *gdl); #endif diff --git a/src/game/bondhead.c b/src/game/bondhead.c index fc3f8332..e6616dcd 100644 --- a/src/game/bondhead.c +++ b/src/game/bondhead.c @@ -232,7 +232,7 @@ void bheadUpdate(f32 arg0, f32 arg1) matrix_4x4_set_identity(&sp40); sp80.unk_matrix = &sp40; - sp80.mtxlist = &g_CurrentPlayer->field_6D0; + sp80.mtxlist = &g_CurrentPlayer->bondheadmatrices[0]; subcalcmatrices(&sp80, &g_CurrentPlayer->model); @@ -242,35 +242,35 @@ void bheadUpdate(f32 arg0, f32 arg1) getsuboffset(&g_CurrentPlayer->model, (struct float3 *) &sp34); - sp34.f[0] -= g_CurrentPlayer->field_700; - sp34.f[2] -= g_CurrentPlayer->field_708; + sp34.f[0] -= g_CurrentPlayer->bondheadmatrices[0].m[3][0]; + sp34.f[2] -= g_CurrentPlayer->bondheadmatrices[0].m[3][2]; setsuboffset(&g_CurrentPlayer->model, (coord3d *) &sp34); if (spC0 > 0.0f) { - g_CurrentPlayer->field_700 += arg1; - g_CurrentPlayer->field_708 *= arg0; + g_CurrentPlayer->bondheadmatrices[0].m[3][0] += arg1; + g_CurrentPlayer->bondheadmatrices[0].m[3][2] *= arg0; if (g_ClockTimer > 0) { - g_CurrentPlayer->field_700 /= g_GlobalTimerDelta; - g_CurrentPlayer->field_708 /= g_GlobalTimerDelta; + g_CurrentPlayer->bondheadmatrices[0].m[3][0] /= g_GlobalTimerDelta; + g_CurrentPlayer->bondheadmatrices[0].m[3][2] /= g_GlobalTimerDelta; } - headpos.f[0] = g_CurrentPlayer->field_700 * g_CurrentPlayer->headamplitude; - headpos.f[1] = ((g_CurrentPlayer->field_704 - g_CurrentPlayer->standheight) * g_CurrentPlayer->headamplitude) + g_CurrentPlayer->standheight; - headpos.f[2] = g_CurrentPlayer->field_708 * g_CurrentPlayer->headamplitude; + headpos.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[3][0] * g_CurrentPlayer->headamplitude; + headpos.f[1] = ((g_CurrentPlayer->bondheadmatrices[0].m[3][1] - g_CurrentPlayer->standheight) * g_CurrentPlayer->headamplitude) + g_CurrentPlayer->standheight; + headpos.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[3][2] * g_CurrentPlayer->headamplitude; if (g_CurrentPlayer->headanim >= 0) { - lookvel.f[0] = g_CurrentPlayer->field_6F0 * g_CurrentPlayer->sideamplitude; - lookvel.f[1] = g_CurrentPlayer->field_6F4 * g_CurrentPlayer->headamplitude; - lookvel.f[2] = ((g_CurrentPlayer->field_6F8 - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f; + lookvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[2][0] * g_CurrentPlayer->sideamplitude; + lookvel.f[1] = g_CurrentPlayer->bondheadmatrices[0].m[2][1] * g_CurrentPlayer->headamplitude; + lookvel.f[2] = ((g_CurrentPlayer->bondheadmatrices[0].m[2][2] - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f; - upvel.f[0] = g_CurrentPlayer->field_6E0 * g_CurrentPlayer->headamplitude; - upvel.f[1] = ((g_CurrentPlayer->field_6E4 - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f; - upvel.f[2] = g_CurrentPlayer->field_6E8 * g_CurrentPlayer->headamplitude; + upvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[1][0] * g_CurrentPlayer->headamplitude; + upvel.f[1] = ((g_CurrentPlayer->bondheadmatrices[0].m[1][1] - 1.0f) * g_CurrentPlayer->headamplitude) + 1.0f; + upvel.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[1][2] * g_CurrentPlayer->headamplitude; g_CurrentPlayer->headwalkingtime60 += g_ClockTimer; @@ -296,13 +296,13 @@ void bheadUpdate(f32 arg0, f32 arg1) } else { - lookvel.f[0] = g_CurrentPlayer->field_6F0; - lookvel.f[1] = g_CurrentPlayer->field_6F4; - lookvel.f[2] = g_CurrentPlayer->field_6F8; + lookvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[2][0]; + lookvel.f[1] = g_CurrentPlayer->bondheadmatrices[0].m[2][1]; + lookvel.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[2][2]; - upvel.f[0] = g_CurrentPlayer->field_6E0; - upvel.f[1] = g_CurrentPlayer->field_6E4; - upvel.f[2] = g_CurrentPlayer->field_6E8; + upvel.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[1][0]; + upvel.f[1] = g_CurrentPlayer->bondheadmatrices[0].m[1][1]; + upvel.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[1][2]; bheadSetdamp(0.85f); } @@ -376,10 +376,10 @@ void bheadAdjustAnimation(f32 speed) if (g_CurrentPlayer->headanim >= 0) { - startframe = (g_CurrentPlayer->field_5C0 - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk04) - / (g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk08 - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk04); + startframe = (g_CurrentPlayer->field_5C0 - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe) + / (g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].endframe - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe); - startframe = g_BondMoveAnimationSetup[i].unk04 + ((g_BondMoveAnimationSetup[i].unk08 - g_BondMoveAnimationSetup[i].unk04) * startframe); + startframe = g_BondMoveAnimationSetup[i].loopframe + ((g_BondMoveAnimationSetup[i].endframe - g_BondMoveAnimationSetup[i].loopframe) * startframe); } modelSetAnimation( @@ -391,8 +391,8 @@ void bheadAdjustAnimation(f32 speed) 0.5f, 12.0f); - modelSetAnimLooping(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].unk04, 0.0f); - modelSetAnimEndFrame(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].unk08); + modelSetAnimLooping(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].loopframe, 0.0f); + modelSetAnimEndFrame(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[i].endframe); modelSetAnimFlipFunction(&g_CurrentPlayer->model, bheadFlipAnimation); g_CurrentPlayer->headanim = i; } @@ -432,84 +432,25 @@ void bheadSetSpeed(f32 speed) } +f32 bheadGetBreathingValue(void) +{ + if (g_CurrentPlayer->headanim >= 0) { + f32 a = bondviewGetBondBreathing() * 0.012500001f + 0.004166667f; + f32 b = modelGetAbsAnimSpeed(&g_CurrentPlayer->model); + if (b > 0) { + f32 c = b / (g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].endframe - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe); -#ifdef NONMATCHING -f32 bheadGetBreathingValue(void) { + if (c < a) { + c = a; + } + return c; + } + + return a; + } + + return 0; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80055338 -.word 0x3c4cccce /*0.012500001*/ -glabel D_8005533C -.word 0x3b888889 /*0.0041666669*/ -.text -glabel bheadGetBreathingValue -/* 0C3628 7F08EAF8 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 0C362C 7F08EAFC 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 0C3630 7F08EB00 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0C3634 7F08EB04 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C3638 7F08EB08 8DCF04E8 */ lw $t7, 0x4e8($t6) -/* 0C363C 7F08EB0C 05E2002B */ bltzl $t7, .L7F08EBBC -/* 0C3640 7F08EB10 44800000 */ mtc1 $zero, $f0 -/* 0C3644 7F08EB14 0FC227B5 */ jal bondviewGetBondBreathing -/* 0C3648 7F08EB18 00000000 */ nop -/* 0C364C 7F08EB1C 3C018005 */ lui $at, %hi(D_80055338) -/* 0C3650 7F08EB20 C4245338 */ lwc1 $f4, %lo(D_80055338)($at) -/* 0C3654 7F08EB24 3C018005 */ lui $at, %hi(D_8005533C) -/* 0C3658 7F08EB28 C428533C */ lwc1 $f8, %lo(D_8005533C)($at) -/* 0C365C 7F08EB2C 46040182 */ mul.s $f6, $f0, $f4 -/* 0C3660 7F08EB30 3C048008 */ lui $a0, %hi(g_CurrentPlayer) -/* 0C3664 7F08EB34 8C84A0B0 */ lw $a0, %lo(g_CurrentPlayer)($a0) -/* 0C3668 7F08EB38 24840598 */ addiu $a0, $a0, 0x598 -/* 0C366C 7F08EB3C 46083080 */ add.s $f2, $f6, $f8 -/* 0C3670 7F08EB40 0FC1BD86 */ jal modelGetAbsAnimSpeed -/* 0C3674 7F08EB44 E7A2001C */ swc1 $f2, 0x1c($sp) -/* 0C3678 7F08EB48 44805000 */ mtc1 $zero, $f10 -/* 0C367C 7F08EB4C C7A2001C */ lwc1 $f2, 0x1c($sp) -/* 0C3680 7F08EB50 3C188008 */ lui $t8, %hi(g_CurrentPlayer) -/* 0C3684 7F08EB54 4600503C */ c.lt.s $f10, $f0 -/* 0C3688 7F08EB58 00000000 */ nop -/* 0C368C 7F08EB5C 45000014 */ bc1f .L7F08EBB0 -/* 0C3690 7F08EB60 00000000 */ nop -/* 0C3694 7F08EB64 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($t8) -/* 0C3698 7F08EB68 3C098003 */ lui $t1, %hi(g_BondMoveAnimationSetup) -/* 0C369C 7F08EB6C 25296AD0 */ addiu $t1, %lo(g_BondMoveAnimationSetup) # addiu $t1, $t1, 0x6ad0 -/* 0C36A0 7F08EB70 8F1904E8 */ lw $t9, 0x4e8($t8) -/* 0C36A4 7F08EB74 00194080 */ sll $t0, $t9, 2 -/* 0C36A8 7F08EB78 01194023 */ subu $t0, $t0, $t9 -/* 0C36AC 7F08EB7C 000840C0 */ sll $t0, $t0, 3 -/* 0C36B0 7F08EB80 01091021 */ addu $v0, $t0, $t1 -/* 0C36B4 7F08EB84 C4500008 */ lwc1 $f16, 8($v0) -/* 0C36B8 7F08EB88 C4520004 */ lwc1 $f18, 4($v0) -/* 0C36BC 7F08EB8C 46128101 */ sub.s $f4, $f16, $f18 -/* 0C36C0 7F08EB90 46040303 */ div.s $f12, $f0, $f4 -/* 0C36C4 7F08EB94 4602603C */ c.lt.s $f12, $f2 -/* 0C36C8 7F08EB98 00000000 */ nop -/* 0C36CC 7F08EB9C 45000002 */ bc1f .L7F08EBA8 -/* 0C36D0 7F08EBA0 00000000 */ nop -/* 0C36D4 7F08EBA4 46001306 */ mov.s $f12, $f2 -.L7F08EBA8: -/* 0C36D8 7F08EBA8 10000005 */ b .L7F08EBC0 -/* 0C36DC 7F08EBAC 46006006 */ mov.s $f0, $f12 -.L7F08EBB0: -/* 0C36E0 7F08EBB0 10000003 */ b .L7F08EBC0 -/* 0C36E4 7F08EBB4 46001006 */ mov.s $f0, $f2 -/* 0C36E8 7F08EBB8 44800000 */ mtc1 $zero, $f0 -.L7F08EBBC: -/* 0C36EC 7F08EBBC 00000000 */ nop -.L7F08EBC0: -/* 0C36F0 7F08EBC0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C36F4 7F08EBC4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0C36F8 7F08EBC8 03E00008 */ jr $ra -/* 0C36FC 7F08EBCC 00000000 */ nop -) -#endif - - - - - diff --git a/src/game/bondhead.h b/src/game/bondhead.h index e28c1fc8..5d5b86fa 100644 --- a/src/game/bondhead.h +++ b/src/game/bondhead.h @@ -6,8 +6,8 @@ struct init_bond_anim_unk { u32 anim_id; - f32 unk04; - f32 unk08; + f32 loopframe; + f32 endframe; f32 unk0C; f32 unk10; diff --git a/src/game/bondinv.h b/src/game/bondinv.h index dee8442f..3fe8dea9 100644 --- a/src/game/bondinv.h +++ b/src/game/bondinv.h @@ -23,4 +23,6 @@ void bondinvSetAllGunsFlag(s32 all_guns); bool bondinvHasPropInInv(PropRecord *prop); WeaponObjRecord *bondinvRemovePropWeaponByID(ITEM_IDS weaponnum); void bondinvRemoveItemByID(ITEM_IDS weaponnum); +s32 bondinvGetWeaponOfChoice(s32 *weapon1, s32 *weapon2); + #endif diff --git a/src/game/bondview.c b/src/game/bondview.c index a4932439..819367c5 100644 --- a/src/game/bondview.c +++ b/src/game/bondview.c @@ -24,6 +24,7 @@ #include "initanitable.h" #include "loadobjectmodel.h" #include "lvl.h" +#include "lvl_text.h" #include "math_atan2f.h" #include "matrixmath.h" #include "mp_music.h" @@ -64,6 +65,30 @@ #endif +#define BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH 0x97 +#define BONDVIEW_HUD_MSG_BOTTOM_BUFFER_LENGTH 0x65 + + +#if defined(VERSION_US) +#define BONDVIEW_2ND_FONTTABLE(_param) copy_2ndfonttable +#define BONDVIEW_1ST_FONTTABLE(_param) copy_1stfonttable +#elif defined(VERSION_JP) || defined(VERSION_EU) +#define BONDVIEW_2ND_FONTTABLE(_param) dword_CODE_bss_jp80079CEC[_param] +#define BONDVIEW_1ST_FONTTABLE(_param) dword_CODE_bss_jp80079Cd8[_param] +#endif + + +#if defined(VERSION_US) || defined(VERSION_JP) +#define BONDVIEW_VIEW_TOP_OFFSET_1 0x0C +#define BONDVIEW_VIEW_TOP_OFFSET_2 0x28 +#define BONDVIEW_VIEW_TOP_OFFSET_3 0x10 +#elif defined(VERSION_EU) +#define BONDVIEW_VIEW_TOP_OFFSET_1 0x16 +#define BONDVIEW_VIEW_TOP_OFFSET_2 0x32 +#define BONDVIEW_VIEW_TOP_OFFSET_3 0x14 +#endif + + // bss coord3d flt_CODE_bss_80079940; f32 flt_CODE_bss_8007994C; @@ -185,12 +210,13 @@ s32 watch_time_0; * Address 80079A28 * EU .bss 80068508 */ -char stringbuffer_lowerleft[0x200]; +char stringbuffer_lowerleft[0x5][BONDVIEW_HUD_MSG_BOTTOM_BUFFER_LENGTH]; +char dword_CODE_bss_80079c21[0x04]; #if defined(BUGFIX_R1) //CODE.bss:80079Cd8 -char dword_CODE_bss_jp80079Cd8[0x14]; -char dword_CODE_bss_jp80079CEC[0x14]; +s32 dword_CODE_bss_jp80079Cd8[0x05]; +s32 dword_CODE_bss_jp80079CEC[0x05]; #endif /** @@ -207,7 +233,8 @@ s32 dword_CODE_bss_80079C6C; #if defined LEFTOVERDEBUG //CODE.bss:80079C70 /***/ -char stringbuffer_top[0x130]; +char stringbuffer_top[0x2][BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH]; +u16 dword_CODE_bss_80079d9E; #endif //CODE.bss:80079DA0 @@ -225,7 +252,8 @@ s32 dword_CODE_bss_80079DA8[BSS_80079DA8_LENGTH]; //CODE.bss:80079DC8 char dword_CODE_bss_80079DC8[0x3C]; #else -char dword_CODE_bss_80079DC8[0x16C]; +char dword_CODE_bss_80079DC8[0x2][BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH]; +char dword_CODE_bss_80079EF6[0x3C]; #endif //CODE.bss:80079E04 @@ -443,76 +471,47 @@ u32 dummy_08_pp7_obj[] = { }; //D:80036630 u32 D_80036630 = 0; -#ifdef BUGFIX_R1 + + //D:80036634 -u32 D_80036634[] = { - 0x0, 0x41200000, 0x42700000, 0x3F19999A, - 0x0, 0x40A00000, 0x42200000, 0x3F800000, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x42700000, 0x3F19999A, - 0x0, 0x40A00000, 0x42200000, 0x3F800000, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x42480000, 0x3F19999A, - 0x0, 0x40A00000, 0x41F00000, 0x3F4CCCCD, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x42200000, 0x3F19999A, - 0x0, 0x40A00000, 0x41C80000, 0x3F19999A, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x420C0000, 0x3F19999A, - 0x0, 0x40A00000, 0x41B00000, 0x3F0CCCCD, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x41F00000, 0x3F19999A, - 0x0, 0x40A00000, 0x41980000, 0x3F000000, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x41F00000, 0x3F19999A, - 0x0, 0x40A00000, 0x41880000, 0x3EE66666, - 0xFF, 0xFF, 0xFF, - 0x0, 0x41200000, 0x41F00000, 0x3F19999A, - 0x0, 0x40A00000, 0x41700000, 0x3ECCCCCD, - 0xFF, 0xFF, 0xFF +bondstruct_unk_80036634 D_80036634[] = { + { 0x0, 10.0, 60.0, 0.600000023842, + 0x0, 5.0, 40.0, 1.0, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 60.0, 0.600000023842, + 0x0, 5.0, 40.0, 1.0, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 50.0, 0.600000023842, + 0x0, 5.0, 30.0, 0.800000011921, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 40.0, 0.600000023842, + 0x0, 5.0, 25.0, 0.600000023842, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 35.0, 0.600000023842, + 0x0, 5.0, 22.0, 0.550000011921, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 30.0, 0.600000023842, + 0x0, 5.0, 19.0, 0.5, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 30.0, 0.600000023842, + 0x0, 5.0, 17.0, 0.449999988079, + 0xFF, 0xFF, 0xFF}, + { 0x0, 10.0, 30.0, 0.600000023842, + 0x0, 5.0, 15.0, 0.40000000596, + 0xFF, 0xFF, 0xFF} }; -#else -//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 -u32 D_80036798 = 0x00000028; - -u32 D_8003679C[] = { - 0x00000064, 0x00000000, 0x0000001E, 0x00000050, - 0x00000000, 0x00000014, 0x0000003C, 0x00000000, - 0x00000014, 0x0000003C, 0x00000000, 0x00000014, - 0x0000003C, 0x00000000, 0x00000014, 0x00000032, - 0x00000000, 0x00000014, 0x00000032, 0x00000000, - 0x00000014, 0x00000032 +bondstruct_unk_80036794 D_80036794[8] = { + { 0x00000000, 0x00000028, 0x00000064 }, + { 0x00000000, 0x0000001E, 0x00000050 }, + { 0x00000000, 0x00000014, 0x0000003C }, + { 0x00000000, 0x00000014, 0x0000003C }, + { 0x00000000, 0x00000014, 0x0000003C }, + { 0x00000000, 0x00000014, 0x00000032 }, + { 0x00000000, 0x00000014, 0x00000032 }, + { 0x00000000, 0x00000014, 0x00000032 } }; // //D:800367F4 @@ -578,7 +577,7 @@ s32 D_80036894 = 0; s32 status_bar_text_buffer_index = 0; //D:8003689C s32 display_statusbar = 0; -#ifdef VERSION_US +#ifdef BUGFIX_R0 //D:800368A0 s32 copy_1stfonttable = 0; //D:800368A4 @@ -982,36 +981,58 @@ f32 getPlayer_c_perspnear(void) // Regalloc mostly void sub_GAME_7F0785DC() { - f32 temp_f14; - f32 temp_f20_2; - f32 temp_f14_2; - f32 test2; - f32 temp_f2 = g_CurrentPlayer->c_halfheight * g_CurrentPlayer->c_scaley; - f32 temp_f20 = 1.0f / sqrtf((temp_f2 * temp_f2) + 1.0f); - f32 temp_f2_2 = temp_f2 * temp_f20; - f32 test = -temp_f20; - flt_CODE_bss_80079940.x = (-test * g_CurrentPlayer->field_10D4->m[1][0]) + (temp_f2_2 * g_CurrentPlayer->field_10D4->m[2][0]); - flt_CODE_bss_80079940.y = (-test * g_CurrentPlayer->field_10D4->m[1][1]) + (temp_f2_2 * g_CurrentPlayer->field_10D4->m[2][1]); - flt_CODE_bss_80079940.z = (-test * g_CurrentPlayer->field_10D4->m[1][2]) + (temp_f2_2 * g_CurrentPlayer->field_10D4->m[2][2]); - flt_CODE_bss_8007994C = (flt_CODE_bss_80079940.x * g_CurrentPlayer->field_10D4->m[3][0]) + (flt_CODE_bss_80079940.y * g_CurrentPlayer->field_10D4->m[3][1]) + (flt_CODE_bss_80079940.z * g_CurrentPlayer->field_10D4->m[3][2]); - flt_CODE_bss_80079950.x = (test * g_CurrentPlayer->field_10D4->m[1][0]) + (temp_f2_2 * g_CurrentPlayer->field_10D4->m[2][0]); - flt_CODE_bss_80079950.y = (test * g_CurrentPlayer->field_10D4->m[1][1]) + (temp_f2_2 * g_CurrentPlayer->field_10D4->m[2][1]); - flt_CODE_bss_80079950.z = (test * g_CurrentPlayer->field_10D4->m[1][2]) + (temp_f2_2 * g_CurrentPlayer->field_10D4->m[2][2]); - flt_CODE_bss_8007995C = (flt_CODE_bss_80079950.x * g_CurrentPlayer->field_10D4->m[3][0]) + (flt_CODE_bss_80079950.y * g_CurrentPlayer->field_10D4->m[3][1]) + (flt_CODE_bss_80079950.z * g_CurrentPlayer->field_10D4->m[3][2]); - temp_f14 = -g_CurrentPlayer->c_halfwidth * g_CurrentPlayer->c_scalex; - temp_f20_2 = 1.0f / sqrtf((temp_f14 * temp_f14) + 1.0f); - temp_f14_2 = temp_f14 * temp_f20_2; - test2 = -temp_f20_2; - flt_CODE_bss_80079960.x = (test2 * g_CurrentPlayer->field_10D4->m[0][0]) - (temp_f14_2 * g_CurrentPlayer->field_10D4->m[2][0]); - flt_CODE_bss_80079960.y = (test2 * g_CurrentPlayer->field_10D4->m[0][1]) - (temp_f14_2 * g_CurrentPlayer->field_10D4->m[2][1]); - flt_CODE_bss_80079960.z = (test2 * g_CurrentPlayer->field_10D4->m[0][2]) - (temp_f14_2 * g_CurrentPlayer->field_10D4->m[2][2]); - flt_CODE_bss_8007996C = (flt_CODE_bss_80079960.x * g_CurrentPlayer->field_10D4->m[3][0]) + (flt_CODE_bss_80079960.y * g_CurrentPlayer->field_10D4->m[3][1]) + (flt_CODE_bss_80079960.z * g_CurrentPlayer->field_10D4->m[3][2]); - flt_CODE_bss_80079970.x = (-test2 * g_CurrentPlayer->field_10D4->m[0][0]) - (temp_f14_2 * g_CurrentPlayer->field_10D4->m[2][0]); - flt_CODE_bss_80079970.y = (-test2 * g_CurrentPlayer->field_10D4->m[0][1]) - (temp_f14_2 * g_CurrentPlayer->field_10D4->m[2][1]); - flt_CODE_bss_80079970.z = (-test2 * g_CurrentPlayer->field_10D4->m[0][2]) - (temp_f14_2 * g_CurrentPlayer->field_10D4->m[2][2]); - flt_CODE_bss_8007997C = (flt_CODE_bss_80079970.x * g_CurrentPlayer->field_10D4->m[3][0]) + (flt_CODE_bss_80079970.y * g_CurrentPlayer->field_10D4->m[3][1]) + (flt_CODE_bss_80079970.z * g_CurrentPlayer->field_10D4->m[3][2]); - flt_CODE_bss_80079980 = (g_CurrentPlayer->field_10D4->m[2][0] * g_CurrentPlayer->field_10D4->m[3][0]) + (g_CurrentPlayer->field_10D4->m[2][1] * g_CurrentPlayer->field_10D4->m[3][1]) + (g_CurrentPlayer->field_10D4->m[2][2] * g_CurrentPlayer->field_10D4->m[3][2]); + f32 unused1; + f32 unused2; + f32 h_mul; + f32 h_div; + f32 h; + + h = g_CurrentPlayer->c_halfheight * g_CurrentPlayer->c_scaley; + h_div = 1.0f / sqrtf((h * h) + 1.0f); + h_mul = h * h_div; + + flt_CODE_bss_80079940.x = (h_div * g_CurrentPlayer->field_10D4->m[1][0]) + (h_mul * g_CurrentPlayer->field_10D4->m[2][0]); + flt_CODE_bss_80079940.y = (h_div * g_CurrentPlayer->field_10D4->m[1][1]) + (h_mul * g_CurrentPlayer->field_10D4->m[2][1]); + flt_CODE_bss_80079940.z = (h_div * g_CurrentPlayer->field_10D4->m[1][2]) + (h_mul * g_CurrentPlayer->field_10D4->m[2][2]); + + flt_CODE_bss_8007994C = (flt_CODE_bss_80079940.x * g_CurrentPlayer->field_10D4->m[3][0]) + + (flt_CODE_bss_80079940.y * g_CurrentPlayer->field_10D4->m[3][1]) + + (flt_CODE_bss_80079940.z * g_CurrentPlayer->field_10D4->m[3][2]); + + flt_CODE_bss_80079950.x = (-h_div * g_CurrentPlayer->field_10D4->m[1][0]) + (h_mul * g_CurrentPlayer->field_10D4->m[2][0]); + flt_CODE_bss_80079950.y = (-h_div * g_CurrentPlayer->field_10D4->m[1][1]) + (h_mul * g_CurrentPlayer->field_10D4->m[2][1]); + flt_CODE_bss_80079950.z = (-h_div * g_CurrentPlayer->field_10D4->m[1][2]) + (h_mul * g_CurrentPlayer->field_10D4->m[2][2]); + + flt_CODE_bss_8007995C = (flt_CODE_bss_80079950.x * g_CurrentPlayer->field_10D4->m[3][0]) + + (flt_CODE_bss_80079950.y * g_CurrentPlayer->field_10D4->m[3][1]) + + (flt_CODE_bss_80079950.z * g_CurrentPlayer->field_10D4->m[3][2]); + + h = (-g_CurrentPlayer->c_halfwidth) * g_CurrentPlayer->c_scalex; + h_div = 1.0f / sqrtf((h * h) + 1.0f); + h_mul = h * h_div; + + flt_CODE_bss_80079960.x = (-h_div * g_CurrentPlayer->field_10D4->m[0][0]) - (h_mul * g_CurrentPlayer->field_10D4->m[2][0]); + flt_CODE_bss_80079960.y = (-h_div * g_CurrentPlayer->field_10D4->m[0][1]) - (h_mul * g_CurrentPlayer->field_10D4->m[2][1]); + flt_CODE_bss_80079960.z = (-h_div * g_CurrentPlayer->field_10D4->m[0][2]) - (h_mul * g_CurrentPlayer->field_10D4->m[2][2]); + + flt_CODE_bss_8007996C = (flt_CODE_bss_80079960.x * g_CurrentPlayer->field_10D4->m[3][0]) + + (flt_CODE_bss_80079960.y * g_CurrentPlayer->field_10D4->m[3][1]) + + (flt_CODE_bss_80079960.z * g_CurrentPlayer->field_10D4->m[3][2]); + + flt_CODE_bss_80079970.x = (h_div * g_CurrentPlayer->field_10D4->m[0][0]) - (h_mul * g_CurrentPlayer->field_10D4->m[2][0]); + flt_CODE_bss_80079970.y = (h_div * g_CurrentPlayer->field_10D4->m[0][1]) - (h_mul * g_CurrentPlayer->field_10D4->m[2][1]); + flt_CODE_bss_80079970.z = (h_div * g_CurrentPlayer->field_10D4->m[0][2]) - (h_mul * g_CurrentPlayer->field_10D4->m[2][2]); + + flt_CODE_bss_8007997C = (flt_CODE_bss_80079970.x * g_CurrentPlayer->field_10D4->m[3][0]) + + (flt_CODE_bss_80079970.y * g_CurrentPlayer->field_10D4->m[3][1]) + + (flt_CODE_bss_80079970.z * g_CurrentPlayer->field_10D4->m[3][2]); + + flt_CODE_bss_80079980 = (g_CurrentPlayer->field_10D4->m[2][0] * g_CurrentPlayer->field_10D4->m[3][0]) + + (g_CurrentPlayer->field_10D4->m[2][1] * g_CurrentPlayer->field_10D4->m[3][1]) + + (g_CurrentPlayer->field_10D4->m[2][2] * g_CurrentPlayer->field_10D4->m[3][2]); } + + #else #if defined(LEFTOVERDEBUG) @@ -1549,1347 +1570,187 @@ s32 sub_GAME_7F078A58(coord3d *vec_scale, f32 norm_scale) } - -#ifdef NONMATCHING -s32 sub_GAME_7F078BF4(coord3d *arg0, f32 arg1, f32 *arg2) +bool camIsPosInScreenBox(coord3d *pos, f32 arg1, bbox2d *arg2) { - f32 temp_f2; - f32 temp_f12; - f32 temp_f2_2; - f32 temp_f14; - f32 temp_f10; - f32 temp_f4; - f32 temp_f18; - f32 temp_f2_3; - f32 temp_f12_2; - f32 temp_f2_4; - f32 temp_f6; - f32 temp_f8; - f32 temp_f4_2; - f32 temp_f2_5; - f32 temp_f12_3; - f32 temp_f2_6; - f32 temp_f8_2; - f32 temp_f18_2; - f32 temp_f4_3; - f32 temp_f2_7; - f32 temp_f12_4; - f32 temp_f2_8; - f32 temp_f14_4; - f32 temp_f6_2; - f32 temp_f10_2; - f32 temp_f18_3; - if ((flt_CODE_bss_80079980 + arg1) < ((g_CurrentPlayer->field_10D4->m[2][0] * arg0->x) + (g_CurrentPlayer->field_10D4->m[2][1] * arg0->y) + (g_CurrentPlayer->field_10D4->m[2][2] * arg0->z))) + coord3d sp74; + f32 sp70; + coord3d sp64; + f32 sp60; + coord3d sp54; + f32 sp50; + coord3d sp44; + f32 sp40; + f32 sp3c; + f32 sp38; + f32 sp34; + f32 sp30; + f32 sp2c; + f32 sp28; + f32 sp24; + f32 sp20; + f32 sp1c; + f32 sp18; + + if (flt_CODE_bss_80079980 + arg1 < g_CurrentPlayer->field_10D4->m[2][0] * pos->f[0] + g_CurrentPlayer->field_10D4->m[2][1] * pos->f[1] + g_CurrentPlayer->field_10D4->m[2][2] * pos->f[2]) { - return 0; + return FALSE; } - temp_f2 = (((arg2[0] - g_CurrentPlayer->c_screenleft) - g_CurrentPlayer->c_halfwidth) * g_CurrentPlayer->c_scalex); - temp_f12 = (1.0f / sqrtf(((temp_f2 * temp_f2) + 1.0f))); - temp_f2_2 = (temp_f2 * temp_f12); - temp_f14 = -temp_f12; - temp_f10 = ((temp_f14 * g_CurrentPlayer->field_10D4->m[0][0]) - (g_CurrentPlayer->field_10D4->m[2][0] * temp_f2_2)); - temp_f4 = ((temp_f14 * g_CurrentPlayer->field_10D4->m[0][1]) - (g_CurrentPlayer->field_10D4->m[2][1] * temp_f2_2)); - temp_f18 = ((temp_f14 * g_CurrentPlayer->field_10D4->m[0][2]) - (g_CurrentPlayer->field_10D4->m[2][2] * temp_f2_2)); - if ((((temp_f10 * g_CurrentPlayer->field_10D4->m[3][0]) + (temp_f4 * g_CurrentPlayer->field_10D4->m[3][1]) + (temp_f18 * g_CurrentPlayer->field_10D4->m[3][2])) + arg1) < ((temp_f10 * arg0->x) + (temp_f4 * arg0->y) + (temp_f18 * arg0->z))) + + sp38 = (arg2->min.x - g_CurrentPlayer->c_screenleft - g_CurrentPlayer->c_halfwidth) * g_CurrentPlayer->c_scalex; + + sp3c = 1.0f / sqrtf(sp38 * sp38 + 1.0f); + sp38 *= sp3c; + sp24 = -sp3c; + + sp54.f[0] = sp24 * g_CurrentPlayer->field_10D4->m[0][0] - sp38 * g_CurrentPlayer->field_10D4->m[2][0]; + sp54.f[1] = sp24 * g_CurrentPlayer->field_10D4->m[0][1] - sp38 * g_CurrentPlayer->field_10D4->m[2][1]; + sp54.f[2] = sp24 * g_CurrentPlayer->field_10D4->m[0][2] - sp38 * g_CurrentPlayer->field_10D4->m[2][2]; + + sp50 = sp54.f[0] * g_CurrentPlayer->field_10D4->m[3][0] + sp54.f[1] * g_CurrentPlayer->field_10D4->m[3][1] + sp54.f[2] * g_CurrentPlayer->field_10D4->m[3][2]; + + if (sp50 + arg1 < sp54.f[0] * pos->f[0] + sp54.f[1] * pos->f[1] + sp54.f[2] * pos->f[2]) { - return 0; + return FALSE; } - temp_f2_3 = (-((arg2[2] - g_CurrentPlayer->c_screenleft) - g_CurrentPlayer->c_halfwidth) * g_CurrentPlayer->c_scalex); - temp_f12_2 = (1.0f / sqrtf(((temp_f2_3 * temp_f2_3) + 1.0f))); - temp_f2_4 = (temp_f2_3 * temp_f12_2); - temp_f6 = ((temp_f12_2 * g_CurrentPlayer->field_10D4->m[0][0]) - (g_CurrentPlayer->field_10D4->m[2][0] * temp_f2_4)); - temp_f8 = ((temp_f12_2 * g_CurrentPlayer->field_10D4->m[0][1]) - (g_CurrentPlayer->field_10D4->m[2][1] * temp_f2_4)); - temp_f4_2 = ((temp_f12_2 * g_CurrentPlayer->field_10D4->m[0][2]) - (g_CurrentPlayer->field_10D4->m[2][2] * temp_f2_4)); - if ((((temp_f6 * g_CurrentPlayer->field_10D4->m[3][0]) + (temp_f8 * g_CurrentPlayer->field_10D4->m[3][1]) + (temp_f4_2 * g_CurrentPlayer->field_10D4->m[3][2])) + arg1) < ((temp_f6 * arg0->x) + (temp_f8 * arg0->y) + (temp_f4_2 * arg0->z))) + + sp38 = -(arg2->max.x - g_CurrentPlayer->c_screenleft - g_CurrentPlayer->c_halfwidth) * g_CurrentPlayer->c_scalex; + sp30 = 1.0f / sqrtf(sp38 * sp38 + 1.0f); + sp38 *= sp30; + sp20 = -sp30; + + sp44.f[0] = -sp20 * g_CurrentPlayer->field_10D4->m[0][0] - sp38 * g_CurrentPlayer->field_10D4->m[2][0]; + sp44.f[1] = -sp20 * g_CurrentPlayer->field_10D4->m[0][1] - sp38 * g_CurrentPlayer->field_10D4->m[2][1]; + sp44.f[2] = -sp20 * g_CurrentPlayer->field_10D4->m[0][2] - sp38 * g_CurrentPlayer->field_10D4->m[2][2]; + + sp40 = sp44.f[0] * g_CurrentPlayer->field_10D4->m[3][0] + sp44.f[1] * g_CurrentPlayer->field_10D4->m[3][1] + sp44.f[2] * g_CurrentPlayer->field_10D4->m[3][2]; + + if (sp40 + arg1 < sp44.f[0] * pos->f[0] + sp44.f[1] * pos->f[1] + sp44.f[2] * pos->f[2]) { - return 0; + return FALSE; } - temp_f2_5 = ((g_CurrentPlayer->c_halfheight - (arg2[1] - g_CurrentPlayer->c_screentop)) * g_CurrentPlayer->c_scaley); - temp_f12_3 = (1.0f / sqrtf(((temp_f2_5 * temp_f2_5) + 1.0f))); - temp_f2_6 = (temp_f2_5 * temp_f12_3); - temp_f8_2 = ((g_CurrentPlayer->field_10D4->m[2][0] * temp_f2_6) + (temp_f12_3 * g_CurrentPlayer->field_10D4->m[1][0])); - temp_f18_2 = ((g_CurrentPlayer->field_10D4->m[2][1] * temp_f2_6) + (temp_f12_3 * g_CurrentPlayer->field_10D4->m[1][1])); - temp_f4_3 = ((g_CurrentPlayer->field_10D4->m[2][2] * temp_f2_6) + (temp_f12_3 * g_CurrentPlayer->field_10D4->m[1][2])); - if ((((temp_f8_2 * g_CurrentPlayer->field_10D4->m[3][0]) + (temp_f18_2 * g_CurrentPlayer->field_10D4->m[3][1]) + (temp_f4_3 * g_CurrentPlayer->field_10D4->m[3][2])) + arg1) < ((temp_f8_2 * arg0->x) + (temp_f18_2 * arg0->y) + (temp_f4_3 * arg0->z))) + + sp34 = (g_CurrentPlayer->c_halfheight - (arg2->min.y - g_CurrentPlayer->c_screentop)) * g_CurrentPlayer->c_scaley; + sp2c = 1.0f / sqrtf(sp34 * sp34 + 1.0f); + sp34 *= sp2c; + sp1c = -sp2c; + + sp74.f[0] = -sp1c * g_CurrentPlayer->field_10D4->m[1][0] + sp34 * g_CurrentPlayer->field_10D4->m[2][0]; + sp74.f[1] = -sp1c * g_CurrentPlayer->field_10D4->m[1][1] + sp34 * g_CurrentPlayer->field_10D4->m[2][1]; + sp74.f[2] = -sp1c * g_CurrentPlayer->field_10D4->m[1][2] + sp34 * g_CurrentPlayer->field_10D4->m[2][2]; + + sp70 = sp74.f[0] * g_CurrentPlayer->field_10D4->m[3][0] + sp74.f[1] * g_CurrentPlayer->field_10D4->m[3][1] + sp74.f[2] * g_CurrentPlayer->field_10D4->m[3][2]; + + if (sp70 + arg1 < sp74.f[0] * pos->f[0] + sp74.f[1] * pos->f[1] + sp74.f[2] * pos->f[2]) { - return 0; + return FALSE; } - temp_f2_7 = (-(g_CurrentPlayer->c_halfheight - (arg2[3] - g_CurrentPlayer->c_screentop)) * g_CurrentPlayer->c_scaley); - temp_f12_4 = (1.0f / sqrtf(((temp_f2_7 * temp_f2_7) + 1.0f))); - temp_f2_8 = (temp_f2_7 * temp_f12_4); - temp_f14_4 = -temp_f12_4; - temp_f6_2 = ((g_CurrentPlayer->field_10D4->m[2][0] * temp_f2_8) + (temp_f14_4 * g_CurrentPlayer->field_10D4->m[1][0])); - temp_f10_2 = ((g_CurrentPlayer->field_10D4->m[2][1] * temp_f2_8) + (temp_f14_4 * g_CurrentPlayer->field_10D4->m[1][1])); - temp_f18_3 = ((g_CurrentPlayer->field_10D4->m[2][2] * temp_f2_8) + (temp_f14_4 * g_CurrentPlayer->field_10D4->m[1][2])); - if ((((temp_f6_2 * g_CurrentPlayer->field_10D4->m[3][0]) + (temp_f10_2 * g_CurrentPlayer->field_10D4->m[3][1]) + (temp_f18_3 * g_CurrentPlayer->field_10D4->m[3][2])) + arg1) < ((temp_f6_2 * arg0->x) + (temp_f10_2 * arg0->y) + (temp_f18_3 * arg0->z))) + + sp34 = -(g_CurrentPlayer->c_halfheight - (arg2->max.y - g_CurrentPlayer->c_screentop)) * g_CurrentPlayer->c_scaley; + sp28 = 1.0f / sqrtf(sp34 * sp34 + 1.0f); + sp34 *= sp28; + sp18 = -sp28; + + sp64.f[0] = sp18 * g_CurrentPlayer->field_10D4->m[1][0] + sp34 * g_CurrentPlayer->field_10D4->m[2][0]; + sp64.f[1] = sp18 * g_CurrentPlayer->field_10D4->m[1][1] + sp34 * g_CurrentPlayer->field_10D4->m[2][1]; + sp64.f[2] = sp18 * g_CurrentPlayer->field_10D4->m[1][2] + sp34 * g_CurrentPlayer->field_10D4->m[2][2]; + + sp60 = sp64.f[0] * g_CurrentPlayer->field_10D4->m[3][0] + sp64.f[1] * g_CurrentPlayer->field_10D4->m[3][1] + sp64.f[2] * g_CurrentPlayer->field_10D4->m[3][2]; + + if (sp60 + arg1 < sp64.f[0] * pos->f[0] + sp64.f[1] * pos->f[1] + sp64.f[2] * pos->f[2]) { - return 0; + return FALSE; } - return 1; + + return TRUE; } -#else - -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F078BF4 -/* 0AD724 7F078BF4 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 0AD728 7F078BF8 AFB00028 */ sw $s0, 0x28($sp) -/* 0AD72C 7F078BFC 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 0AD730 7F078C00 8E10A0B0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AD734 7F078C04 AFBF002C */ sw $ra, 0x2c($sp) -/* 0AD738 7F078C08 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0AD73C 7F078C0C F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0AD740 7F078C10 AFA60088 */ sw $a2, 0x88($sp) -/* 0AD744 7F078C14 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD748 7F078C18 3C018008 */ lui $at, %hi(flt_CODE_bss_80079980) -/* 0AD74C 7F078C1C 4485B000 */ mtc1 $a1, $f22 -/* 0AD750 7F078C20 C4249980 */ lwc1 $f4, %lo(flt_CODE_bss_80079980)($at) -/* 0AD754 7F078C24 C48A0000 */ lwc1 $f10, ($a0) -/* 0AD758 7F078C28 C4480020 */ lwc1 $f8, 0x20($v0) -/* 0AD75C 7F078C2C 46162180 */ add.s $f6, $f4, $f22 -/* 0AD760 7F078C30 C4440024 */ lwc1 $f4, 0x24($v0) -/* 0AD764 7F078C34 460A4482 */ mul.s $f18, $f8, $f10 -/* 0AD768 7F078C38 C4880004 */ lwc1 $f8, 4($a0) -/* 0AD76C 7F078C3C 8FAE0088 */ lw $t6, 0x88($sp) -/* 0AD770 7F078C40 46082282 */ mul.s $f10, $f4, $f8 -/* 0AD774 7F078C44 C4880008 */ lwc1 $f8, 8($a0) -/* 0AD778 7F078C48 460A9100 */ add.s $f4, $f18, $f10 -/* 0AD77C 7F078C4C C4520028 */ lwc1 $f18, 0x28($v0) -/* 0AD780 7F078C50 46124282 */ mul.s $f10, $f8, $f18 -/* 0AD784 7F078C54 46045200 */ add.s $f8, $f10, $f4 -/* 0AD788 7F078C58 4608303C */ c.lt.s $f6, $f8 -/* 0AD78C 7F078C5C 00000000 */ nop -/* 0AD790 7F078C60 45020004 */ bc1fl .L7F078C74 -/* 0AD794 7F078C64 C5D20000 */ lwc1 $f18, ($t6) -/* 0AD798 7F078C68 1000011B */ b .L7F0790D8 -/* 0AD79C 7F078C6C 00001025 */ move $v0, $zero -/* 0AD7A0 7F078C70 C5D20000 */ lwc1 $f18, ($t6) -.L7F078C74: -/* 0AD7A4 7F078C74 C60A1098 */ lwc1 $f10, 0x1098($s0) -/* 0AD7A8 7F078C78 C60610AC */ lwc1 $f6, 0x10ac($s0) -/* 0AD7AC 7F078C7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AD7B0 7F078C80 460A9101 */ sub.s $f4, $f18, $f10 -/* 0AD7B4 7F078C84 C61210B4 */ lwc1 $f18, 0x10b4($s0) -/* 0AD7B8 7F078C88 4481A000 */ mtc1 $at, $f20 -/* 0AD7BC 7F078C8C AFA40080 */ sw $a0, 0x80($sp) -/* 0AD7C0 7F078C90 46062201 */ sub.s $f8, $f4, $f6 -/* 0AD7C4 7F078C94 46124082 */ mul.s $f2, $f8, $f18 -/* 0AD7C8 7F078C98 00000000 */ nop -/* 0AD7CC 7F078C9C 46021282 */ mul.s $f10, $f2, $f2 -/* 0AD7D0 7F078CA0 E7A20038 */ swc1 $f2, 0x38($sp) -/* 0AD7D4 7F078CA4 0C007DF8 */ jal sqrtf -/* 0AD7D8 7F078CA8 46145300 */ add.s $f12, $f10, $f20 -/* 0AD7DC 7F078CAC 4600A303 */ div.s $f12, $f20, $f0 -/* 0AD7E0 7F078CB0 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 0AD7E4 7F078CB4 8E10A0B0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AD7E8 7F078CB8 C7A20038 */ lwc1 $f2, 0x38($sp) -/* 0AD7EC 7F078CBC 8FA40080 */ lw $a0, 0x80($sp) -/* 0AD7F0 7F078CC0 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD7F4 7F078CC4 8FAF0088 */ lw $t7, 0x88($sp) -/* 0AD7F8 7F078CC8 C4440000 */ lwc1 $f4, ($v0) -/* 0AD7FC 7F078CCC C4480020 */ lwc1 $f8, 0x20($v0) -/* 0AD800 7F078CD0 460C1082 */ mul.s $f2, $f2, $f12 -/* 0AD804 7F078CD4 46006387 */ neg.s $f14, $f12 -/* 0AD808 7F078CD8 46047182 */ mul.s $f6, $f14, $f4 -/* 0AD80C 7F078CDC 00000000 */ nop -/* 0AD810 7F078CE0 46024482 */ mul.s $f18, $f8, $f2 -/* 0AD814 7F078CE4 46123281 */ sub.s $f10, $f6, $f18 -/* 0AD818 7F078CE8 E7AA0054 */ swc1 $f10, 0x54($sp) -/* 0AD81C 7F078CEC 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD820 7F078CF0 C4440004 */ lwc1 $f4, 4($v0) -/* 0AD824 7F078CF4 C4460024 */ lwc1 $f6, 0x24($v0) -/* 0AD828 7F078CF8 46047202 */ mul.s $f8, $f14, $f4 -/* 0AD82C 7F078CFC 00000000 */ nop -/* 0AD830 7F078D00 46023482 */ mul.s $f18, $f6, $f2 -/* 0AD834 7F078D04 46124101 */ sub.s $f4, $f8, $f18 -/* 0AD838 7F078D08 E7A40058 */ swc1 $f4, 0x58($sp) -/* 0AD83C 7F078D0C 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD840 7F078D10 C4460008 */ lwc1 $f6, 8($v0) -/* 0AD844 7F078D14 C4520028 */ lwc1 $f18, 0x28($v0) -/* 0AD848 7F078D18 46067202 */ mul.s $f8, $f14, $f6 -/* 0AD84C 7F078D1C 00000000 */ nop -/* 0AD850 7F078D20 46029182 */ mul.s $f6, $f18, $f2 -/* 0AD854 7F078D24 46064481 */ sub.s $f18, $f8, $f6 -/* 0AD858 7F078D28 E7B2005C */ swc1 $f18, 0x5c($sp) -/* 0AD85C 7F078D2C 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD860 7F078D30 C4480030 */ lwc1 $f8, 0x30($v0) -/* 0AD864 7F078D34 46085182 */ mul.s $f6, $f10, $f8 -/* 0AD868 7F078D38 C4480034 */ lwc1 $f8, 0x34($v0) -/* 0AD86C 7F078D3C 46082202 */ mul.s $f8, $f4, $f8 -/* 0AD870 7F078D40 46083180 */ add.s $f6, $f6, $f8 -/* 0AD874 7F078D44 C4480038 */ lwc1 $f8, 0x38($v0) -/* 0AD878 7F078D48 46124202 */ mul.s $f8, $f8, $f18 -/* 0AD87C 7F078D4C 46064400 */ add.s $f16, $f8, $f6 -/* 0AD880 7F078D50 C4860000 */ lwc1 $f6, ($a0) -/* 0AD884 7F078D54 46065282 */ mul.s $f10, $f10, $f6 -/* 0AD888 7F078D58 C4860004 */ lwc1 $f6, 4($a0) -/* 0AD88C 7F078D5C 46168200 */ add.s $f8, $f16, $f22 -/* 0AD890 7F078D60 46062102 */ mul.s $f4, $f4, $f6 -/* 0AD894 7F078D64 46045180 */ add.s $f6, $f10, $f4 -/* 0AD898 7F078D68 C48A0008 */ lwc1 $f10, 8($a0) -/* 0AD89C 7F078D6C 46125102 */ mul.s $f4, $f10, $f18 -/* 0AD8A0 7F078D70 46062280 */ add.s $f10, $f4, $f6 -/* 0AD8A4 7F078D74 460A403C */ c.lt.s $f8, $f10 -/* 0AD8A8 7F078D78 00000000 */ nop -/* 0AD8AC 7F078D7C 45000003 */ bc1f .L7F078D8C -/* 0AD8B0 7F078D80 00000000 */ nop -/* 0AD8B4 7F078D84 100000D4 */ b .L7F0790D8 -/* 0AD8B8 7F078D88 00001025 */ move $v0, $zero -.L7F078D8C: -/* 0AD8BC 7F078D8C C5F20008 */ lwc1 $f18, 8($t7) -/* 0AD8C0 7F078D90 C6041098 */ lwc1 $f4, 0x1098($s0) -/* 0AD8C4 7F078D94 C60810AC */ lwc1 $f8, 0x10ac($s0) -/* 0AD8C8 7F078D98 46049181 */ sub.s $f6, $f18, $f4 -/* 0AD8CC 7F078D9C C60410B4 */ lwc1 $f4, 0x10b4($s0) -/* 0AD8D0 7F078DA0 AFA40080 */ sw $a0, 0x80($sp) -/* 0AD8D4 7F078DA4 46083281 */ sub.s $f10, $f6, $f8 -/* 0AD8D8 7F078DA8 46005487 */ neg.s $f18, $f10 -/* 0AD8DC 7F078DAC 46049082 */ mul.s $f2, $f18, $f4 -/* 0AD8E0 7F078DB0 00000000 */ nop -/* 0AD8E4 7F078DB4 46021182 */ mul.s $f6, $f2, $f2 -/* 0AD8E8 7F078DB8 E7A20038 */ swc1 $f2, 0x38($sp) -/* 0AD8EC 7F078DBC 0C007DF8 */ jal sqrtf -/* 0AD8F0 7F078DC0 46143300 */ add.s $f12, $f6, $f20 -/* 0AD8F4 7F078DC4 4600A303 */ div.s $f12, $f20, $f0 -/* 0AD8F8 7F078DC8 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 0AD8FC 7F078DCC 8E10A0B0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AD900 7F078DD0 C7A20038 */ lwc1 $f2, 0x38($sp) -/* 0AD904 7F078DD4 8FA40080 */ lw $a0, 0x80($sp) -/* 0AD908 7F078DD8 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD90C 7F078DDC 8FB80088 */ lw $t8, 0x88($sp) -/* 0AD910 7F078DE0 C4480000 */ lwc1 $f8, ($v0) -/* 0AD914 7F078DE4 C4520020 */ lwc1 $f18, 0x20($v0) -/* 0AD918 7F078DE8 460C1082 */ mul.s $f2, $f2, $f12 -/* 0AD91C 7F078DEC 46006387 */ neg.s $f14, $f12 -/* 0AD920 7F078DF0 46007387 */ neg.s $f14, $f14 -/* 0AD924 7F078DF4 46087282 */ mul.s $f10, $f14, $f8 -/* 0AD928 7F078DF8 00000000 */ nop -/* 0AD92C 7F078DFC 46029102 */ mul.s $f4, $f18, $f2 -/* 0AD930 7F078E00 46045181 */ sub.s $f6, $f10, $f4 -/* 0AD934 7F078E04 E7A60044 */ swc1 $f6, 0x44($sp) -/* 0AD938 7F078E08 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD93C 7F078E0C C4480004 */ lwc1 $f8, 4($v0) -/* 0AD940 7F078E10 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 0AD944 7F078E14 46087482 */ mul.s $f18, $f14, $f8 -/* 0AD948 7F078E18 00000000 */ nop -/* 0AD94C 7F078E1C 46025102 */ mul.s $f4, $f10, $f2 -/* 0AD950 7F078E20 46049201 */ sub.s $f8, $f18, $f4 -/* 0AD954 7F078E24 E7A80048 */ swc1 $f8, 0x48($sp) -/* 0AD958 7F078E28 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD95C 7F078E2C C44A0008 */ lwc1 $f10, 8($v0) -/* 0AD960 7F078E30 C4440028 */ lwc1 $f4, 0x28($v0) -/* 0AD964 7F078E34 460A7482 */ mul.s $f18, $f14, $f10 -/* 0AD968 7F078E38 00000000 */ nop -/* 0AD96C 7F078E3C 46022282 */ mul.s $f10, $f4, $f2 -/* 0AD970 7F078E40 460A9101 */ sub.s $f4, $f18, $f10 -/* 0AD974 7F078E44 E7A4004C */ swc1 $f4, 0x4c($sp) -/* 0AD978 7F078E48 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0AD97C 7F078E4C C4520030 */ lwc1 $f18, 0x30($v0) -/* 0AD980 7F078E50 46123282 */ mul.s $f10, $f6, $f18 -/* 0AD984 7F078E54 C4520034 */ lwc1 $f18, 0x34($v0) -/* 0AD988 7F078E58 46124482 */ mul.s $f18, $f8, $f18 -/* 0AD98C 7F078E5C 46125280 */ add.s $f10, $f10, $f18 -/* 0AD990 7F078E60 C4520038 */ lwc1 $f18, 0x38($v0) -/* 0AD994 7F078E64 46049482 */ mul.s $f18, $f18, $f4 -/* 0AD998 7F078E68 460A9400 */ add.s $f16, $f18, $f10 -/* 0AD99C 7F078E6C C48A0000 */ lwc1 $f10, ($a0) -/* 0AD9A0 7F078E70 460A3182 */ mul.s $f6, $f6, $f10 -/* 0AD9A4 7F078E74 C48A0004 */ lwc1 $f10, 4($a0) -/* 0AD9A8 7F078E78 46168480 */ add.s $f18, $f16, $f22 -/* 0AD9AC 7F078E7C 460A4202 */ mul.s $f8, $f8, $f10 -/* 0AD9B0 7F078E80 46083280 */ add.s $f10, $f6, $f8 -/* 0AD9B4 7F078E84 C4860008 */ lwc1 $f6, 8($a0) -/* 0AD9B8 7F078E88 46043202 */ mul.s $f8, $f6, $f4 -/* 0AD9BC 7F078E8C 460A4180 */ add.s $f6, $f8, $f10 -/* 0AD9C0 7F078E90 4606903C */ c.lt.s $f18, $f6 -/* 0AD9C4 7F078E94 00000000 */ nop -/* 0AD9C8 7F078E98 45000003 */ bc1f .L7F078EA8 -/* 0AD9CC 7F078E9C 00000000 */ nop -/* 0AD9D0 7F078EA0 1000008D */ b .L7F0790D8 -/* 0AD9D4 7F078EA4 00001025 */ move $v0, $zero -.L7F078EA8: -/* 0AD9D8 7F078EA8 C7040004 */ lwc1 $f4, 4($t8) -/* 0AD9DC 7F078EAC C608109C */ lwc1 $f8, 0x109c($s0) -/* 0AD9E0 7F078EB0 C61210B0 */ lwc1 $f18, 0x10b0($s0) -/* 0AD9E4 7F078EB4 46082281 */ sub.s $f10, $f4, $f8 -/* 0AD9E8 7F078EB8 C60410B8 */ lwc1 $f4, 0x10b8($s0) -/* 0AD9EC 7F078EBC AFA40080 */ sw $a0, 0x80($sp) -/* 0AD9F0 7F078EC0 460A9181 */ sub.s $f6, $f18, $f10 -/* 0AD9F4 7F078EC4 46043082 */ mul.s $f2, $f6, $f4 -/* 0AD9F8 7F078EC8 00000000 */ nop -/* 0AD9FC 7F078ECC 46021202 */ mul.s $f8, $f2, $f2 -/* 0ADA00 7F078ED0 E7A20034 */ swc1 $f2, 0x34($sp) -/* 0ADA04 7F078ED4 0C007DF8 */ jal sqrtf -/* 0ADA08 7F078ED8 46144300 */ add.s $f12, $f8, $f20 -/* 0ADA0C 7F078EDC 4600A303 */ div.s $f12, $f20, $f0 -/* 0ADA10 7F078EE0 C7A20034 */ lwc1 $f2, 0x34($sp) -/* 0ADA14 7F078EE4 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 0ADA18 7F078EE8 8E10A0B0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0ADA1C 7F078EEC 8FA40080 */ lw $a0, 0x80($sp) -/* 0ADA20 7F078EF0 8FB90088 */ lw $t9, 0x88($sp) -/* 0ADA24 7F078EF4 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADA28 7F078EF8 C4520020 */ lwc1 $f18, 0x20($v0) -/* 0ADA2C 7F078EFC C4460010 */ lwc1 $f6, 0x10($v0) -/* 0ADA30 7F078F00 460C1082 */ mul.s $f2, $f2, $f12 -/* 0ADA34 7F078F04 46006387 */ neg.s $f14, $f12 -/* 0ADA38 7F078F08 46007387 */ neg.s $f14, $f14 -/* 0ADA3C 7F078F0C 46029282 */ mul.s $f10, $f18, $f2 -/* 0ADA40 7F078F10 00000000 */ nop -/* 0ADA44 7F078F14 46067102 */ mul.s $f4, $f14, $f6 -/* 0ADA48 7F078F18 46045200 */ add.s $f8, $f10, $f4 -/* 0ADA4C 7F078F1C E7A80074 */ swc1 $f8, 0x74($sp) -/* 0ADA50 7F078F20 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADA54 7F078F24 C4520024 */ lwc1 $f18, 0x24($v0) -/* 0ADA58 7F078F28 C44A0014 */ lwc1 $f10, 0x14($v0) -/* 0ADA5C 7F078F2C 46029182 */ mul.s $f6, $f18, $f2 -/* 0ADA60 7F078F30 00000000 */ nop -/* 0ADA64 7F078F34 460A7102 */ mul.s $f4, $f14, $f10 -/* 0ADA68 7F078F38 46043480 */ add.s $f18, $f6, $f4 -/* 0ADA6C 7F078F3C E7B20078 */ swc1 $f18, 0x78($sp) -/* 0ADA70 7F078F40 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADA74 7F078F44 C44A0028 */ lwc1 $f10, 0x28($v0) -/* 0ADA78 7F078F48 C4440018 */ lwc1 $f4, 0x18($v0) -/* 0ADA7C 7F078F4C 46025182 */ mul.s $f6, $f10, $f2 -/* 0ADA80 7F078F50 00000000 */ nop -/* 0ADA84 7F078F54 46047282 */ mul.s $f10, $f14, $f4 -/* 0ADA88 7F078F58 460A3100 */ add.s $f4, $f6, $f10 -/* 0ADA8C 7F078F5C E7A4007C */ swc1 $f4, 0x7c($sp) -/* 0ADA90 7F078F60 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADA94 7F078F64 C4460030 */ lwc1 $f6, 0x30($v0) -/* 0ADA98 7F078F68 46064282 */ mul.s $f10, $f8, $f6 -/* 0ADA9C 7F078F6C C4460034 */ lwc1 $f6, 0x34($v0) -/* 0ADAA0 7F078F70 46069182 */ mul.s $f6, $f18, $f6 -/* 0ADAA4 7F078F74 46065280 */ add.s $f10, $f10, $f6 -/* 0ADAA8 7F078F78 C4460038 */ lwc1 $f6, 0x38($v0) -/* 0ADAAC 7F078F7C 46043182 */ mul.s $f6, $f6, $f4 -/* 0ADAB0 7F078F80 460A3400 */ add.s $f16, $f6, $f10 -/* 0ADAB4 7F078F84 C48A0000 */ lwc1 $f10, ($a0) -/* 0ADAB8 7F078F88 460A4202 */ mul.s $f8, $f8, $f10 -/* 0ADABC 7F078F8C C48A0004 */ lwc1 $f10, 4($a0) -/* 0ADAC0 7F078F90 46168180 */ add.s $f6, $f16, $f22 -/* 0ADAC4 7F078F94 460A9482 */ mul.s $f18, $f18, $f10 -/* 0ADAC8 7F078F98 46124280 */ add.s $f10, $f8, $f18 -/* 0ADACC 7F078F9C C4880008 */ lwc1 $f8, 8($a0) -/* 0ADAD0 7F078FA0 46044482 */ mul.s $f18, $f8, $f4 -/* 0ADAD4 7F078FA4 460A9200 */ add.s $f8, $f18, $f10 -/* 0ADAD8 7F078FA8 4608303C */ c.lt.s $f6, $f8 -/* 0ADADC 7F078FAC 00000000 */ nop -/* 0ADAE0 7F078FB0 45000003 */ bc1f .L7F078FC0 -/* 0ADAE4 7F078FB4 00000000 */ nop -/* 0ADAE8 7F078FB8 10000047 */ b .L7F0790D8 -/* 0ADAEC 7F078FBC 00001025 */ move $v0, $zero -.L7F078FC0: -/* 0ADAF0 7F078FC0 C724000C */ lwc1 $f4, 0xc($t9) -/* 0ADAF4 7F078FC4 C612109C */ lwc1 $f18, 0x109c($s0) -/* 0ADAF8 7F078FC8 C60610B0 */ lwc1 $f6, 0x10b0($s0) -/* 0ADAFC 7F078FCC 46122281 */ sub.s $f10, $f4, $f18 -/* 0ADB00 7F078FD0 C61210B8 */ lwc1 $f18, 0x10b8($s0) -/* 0ADB04 7F078FD4 AFA40080 */ sw $a0, 0x80($sp) -/* 0ADB08 7F078FD8 460A3201 */ sub.s $f8, $f6, $f10 -/* 0ADB0C 7F078FDC 46004107 */ neg.s $f4, $f8 -/* 0ADB10 7F078FE0 46122082 */ mul.s $f2, $f4, $f18 -/* 0ADB14 7F078FE4 00000000 */ nop -/* 0ADB18 7F078FE8 46021182 */ mul.s $f6, $f2, $f2 -/* 0ADB1C 7F078FEC E7A20034 */ swc1 $f2, 0x34($sp) -/* 0ADB20 7F078FF0 0C007DF8 */ jal sqrtf -/* 0ADB24 7F078FF4 46143300 */ add.s $f12, $f6, $f20 -/* 0ADB28 7F078FF8 4600A303 */ div.s $f12, $f20, $f0 -/* 0ADB2C 7F078FFC C7A20034 */ lwc1 $f2, 0x34($sp) -/* 0ADB30 7F079000 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 0ADB34 7F079004 8E10A0B0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0ADB38 7F079008 8FA40080 */ lw $a0, 0x80($sp) -/* 0ADB3C 7F07900C 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADB40 7F079010 C44A0020 */ lwc1 $f10, 0x20($v0) -/* 0ADB44 7F079014 C4440010 */ lwc1 $f4, 0x10($v0) -/* 0ADB48 7F079018 460C1082 */ mul.s $f2, $f2, $f12 -/* 0ADB4C 7F07901C 46006387 */ neg.s $f14, $f12 -/* 0ADB50 7F079020 46025202 */ mul.s $f8, $f10, $f2 -/* 0ADB54 7F079024 00000000 */ nop -/* 0ADB58 7F079028 46047482 */ mul.s $f18, $f14, $f4 -/* 0ADB5C 7F07902C 46124180 */ add.s $f6, $f8, $f18 -/* 0ADB60 7F079030 E7A60064 */ swc1 $f6, 0x64($sp) -/* 0ADB64 7F079034 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADB68 7F079038 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 0ADB6C 7F07903C C4480014 */ lwc1 $f8, 0x14($v0) -/* 0ADB70 7F079040 46025102 */ mul.s $f4, $f10, $f2 -/* 0ADB74 7F079044 00000000 */ nop -/* 0ADB78 7F079048 46087482 */ mul.s $f18, $f14, $f8 -/* 0ADB7C 7F07904C 46122280 */ add.s $f10, $f4, $f18 -/* 0ADB80 7F079050 E7AA0068 */ swc1 $f10, 0x68($sp) -/* 0ADB84 7F079054 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADB88 7F079058 C4480028 */ lwc1 $f8, 0x28($v0) -/* 0ADB8C 7F07905C C4520018 */ lwc1 $f18, 0x18($v0) -/* 0ADB90 7F079060 46024102 */ mul.s $f4, $f8, $f2 -/* 0ADB94 7F079064 00000000 */ nop -/* 0ADB98 7F079068 46127202 */ mul.s $f8, $f14, $f18 -/* 0ADB9C 7F07906C 46082480 */ add.s $f18, $f4, $f8 -/* 0ADBA0 7F079070 E7B2006C */ swc1 $f18, 0x6c($sp) -/* 0ADBA4 7F079074 8E0210D4 */ lw $v0, 0x10d4($s0) -/* 0ADBA8 7F079078 C4440030 */ lwc1 $f4, 0x30($v0) -/* 0ADBAC 7F07907C 46043202 */ mul.s $f8, $f6, $f4 -/* 0ADBB0 7F079080 C4440034 */ lwc1 $f4, 0x34($v0) -/* 0ADBB4 7F079084 46045102 */ mul.s $f4, $f10, $f4 -/* 0ADBB8 7F079088 46044200 */ add.s $f8, $f8, $f4 -/* 0ADBBC 7F07908C C4440038 */ lwc1 $f4, 0x38($v0) -/* 0ADBC0 7F079090 24020001 */ li $v0, 1 -/* 0ADBC4 7F079094 46122102 */ mul.s $f4, $f4, $f18 -/* 0ADBC8 7F079098 46082400 */ add.s $f16, $f4, $f8 -/* 0ADBCC 7F07909C C4880000 */ lwc1 $f8, ($a0) -/* 0ADBD0 7F0790A0 46083182 */ mul.s $f6, $f6, $f8 -/* 0ADBD4 7F0790A4 C4880004 */ lwc1 $f8, 4($a0) -/* 0ADBD8 7F0790A8 46168100 */ add.s $f4, $f16, $f22 -/* 0ADBDC 7F0790AC 46085282 */ mul.s $f10, $f10, $f8 -/* 0ADBE0 7F0790B0 460A3200 */ add.s $f8, $f6, $f10 -/* 0ADBE4 7F0790B4 C4860008 */ lwc1 $f6, 8($a0) -/* 0ADBE8 7F0790B8 46123282 */ mul.s $f10, $f6, $f18 -/* 0ADBEC 7F0790BC 46085180 */ add.s $f6, $f10, $f8 -/* 0ADBF0 7F0790C0 4606203C */ c.lt.s $f4, $f6 -/* 0ADBF4 7F0790C4 00000000 */ nop -/* 0ADBF8 7F0790C8 45000003 */ bc1f .L7F0790D8 -/* 0ADBFC 7F0790CC 00000000 */ nop -/* 0ADC00 7F0790D0 10000001 */ b .L7F0790D8 -/* 0ADC04 7F0790D4 00001025 */ move $v0, $zero -.L7F0790D8: -/* 0ADC08 7F0790D8 8FBF002C */ lw $ra, 0x2c($sp) -/* 0ADC0C 7F0790DC D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0ADC10 7F0790E0 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0ADC14 7F0790E4 8FB00028 */ lw $s0, 0x28($sp) -/* 0ADC18 7F0790E8 03E00008 */ jr $ra -/* 0ADC1C 7F0790EC 27BD0080 */ addiu $sp, $sp, 0x80 -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F078BF4 -/* 0AB664 7F078C74 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 0AB668 7F078C78 AFB00028 */ sw $s0, 0x28($sp) -/* 0AB66C 7F078C7C 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 0AB670 7F078C80 8E108BC0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AB674 7F078C84 AFBF002C */ sw $ra, 0x2c($sp) -/* 0AB678 7F078C88 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0AB67C 7F078C8C F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0AB680 7F078C90 AFA60088 */ sw $a2, 0x88($sp) -/* 0AB684 7F078C94 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB688 7F078C98 3C018007 */ lui $at, %hi(flt_CODE_bss_80079980) # $at, 0x8007 -/* 0AB68C 7F078C9C 4485B000 */ mtc1 $a1, $f22 -/* 0AB690 7F078CA0 C4248460 */ lwc1 $f4, %lo(flt_CODE_bss_80079980)($at) -/* 0AB694 7F078CA4 C48A0000 */ lwc1 $f10, ($a0) -/* 0AB698 7F078CA8 C4480020 */ lwc1 $f8, 0x20($v0) -/* 0AB69C 7F078CAC 46162180 */ add.s $f6, $f4, $f22 -/* 0AB6A0 7F078CB0 C4440024 */ lwc1 $f4, 0x24($v0) -/* 0AB6A4 7F078CB4 460A4482 */ mul.s $f18, $f8, $f10 -/* 0AB6A8 7F078CB8 C4880004 */ lwc1 $f8, 4($a0) -/* 0AB6AC 7F078CBC 8FAE0088 */ lw $t6, 0x88($sp) -/* 0AB6B0 7F078CC0 46082282 */ mul.s $f10, $f4, $f8 -/* 0AB6B4 7F078CC4 C4880008 */ lwc1 $f8, 8($a0) -/* 0AB6B8 7F078CC8 460A9100 */ add.s $f4, $f18, $f10 -/* 0AB6BC 7F078CCC C4520028 */ lwc1 $f18, 0x28($v0) -/* 0AB6C0 7F078CD0 46124282 */ mul.s $f10, $f8, $f18 -/* 0AB6C4 7F078CD4 46045200 */ add.s $f8, $f10, $f4 -/* 0AB6C8 7F078CD8 4608303C */ c.lt.s $f6, $f8 -/* 0AB6CC 7F078CDC 00000000 */ nop -/* 0AB6D0 7F078CE0 45020004 */ bc1fl .L7F078CF4 -/* 0AB6D4 7F078CE4 C5D20000 */ lwc1 $f18, ($t6) -/* 0AB6D8 7F078CE8 1000011B */ b .L7F079158 -/* 0AB6DC 7F078CEC 00001025 */ move $v0, $zero -/* 0AB6E0 7F078CF0 C5D20000 */ lwc1 $f18, ($t6) -.L7F078CF4: -/* 0AB6E4 7F078CF4 C60A1090 */ lwc1 $f10, 0x1090($s0) -/* 0AB6E8 7F078CF8 C60610A4 */ lwc1 $f6, 0x10a4($s0) -/* 0AB6EC 7F078CFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AB6F0 7F078D00 460A9101 */ sub.s $f4, $f18, $f10 -/* 0AB6F4 7F078D04 C61210AC */ lwc1 $f18, 0x10ac($s0) -/* 0AB6F8 7F078D08 4481A000 */ mtc1 $at, $f20 -/* 0AB6FC 7F078D0C AFA40080 */ sw $a0, 0x80($sp) -/* 0AB700 7F078D10 46062201 */ sub.s $f8, $f4, $f6 -/* 0AB704 7F078D14 46124082 */ mul.s $f2, $f8, $f18 -/* 0AB708 7F078D18 00000000 */ nop -/* 0AB70C 7F078D1C 46021282 */ mul.s $f10, $f2, $f2 -/* 0AB710 7F078D20 E7A20038 */ swc1 $f2, 0x38($sp) -/* 0AB714 7F078D24 0C007614 */ jal sqrtf -/* 0AB718 7F078D28 46145300 */ add.s $f12, $f10, $f20 -/* 0AB71C 7F078D2C 4600A303 */ div.s $f12, $f20, $f0 -/* 0AB720 7F078D30 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 0AB724 7F078D34 8E108BC0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AB728 7F078D38 C7A20038 */ lwc1 $f2, 0x38($sp) -/* 0AB72C 7F078D3C 8FA40080 */ lw $a0, 0x80($sp) -/* 0AB730 7F078D40 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB734 7F078D44 8FAF0088 */ lw $t7, 0x88($sp) -/* 0AB738 7F078D48 C4440000 */ lwc1 $f4, ($v0) -/* 0AB73C 7F078D4C C4480020 */ lwc1 $f8, 0x20($v0) -/* 0AB740 7F078D50 460C1082 */ mul.s $f2, $f2, $f12 -/* 0AB744 7F078D54 46006387 */ neg.s $f14, $f12 -/* 0AB748 7F078D58 46047182 */ mul.s $f6, $f14, $f4 -/* 0AB74C 7F078D5C 00000000 */ nop -/* 0AB750 7F078D60 46024482 */ mul.s $f18, $f8, $f2 -/* 0AB754 7F078D64 46123281 */ sub.s $f10, $f6, $f18 -/* 0AB758 7F078D68 E7AA0054 */ swc1 $f10, 0x54($sp) -/* 0AB75C 7F078D6C 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB760 7F078D70 C4440004 */ lwc1 $f4, 4($v0) -/* 0AB764 7F078D74 C4460024 */ lwc1 $f6, 0x24($v0) -/* 0AB768 7F078D78 46047202 */ mul.s $f8, $f14, $f4 -/* 0AB76C 7F078D7C 00000000 */ nop -/* 0AB770 7F078D80 46023482 */ mul.s $f18, $f6, $f2 -/* 0AB774 7F078D84 46124101 */ sub.s $f4, $f8, $f18 -/* 0AB778 7F078D88 E7A40058 */ swc1 $f4, 0x58($sp) -/* 0AB77C 7F078D8C 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB780 7F078D90 C4460008 */ lwc1 $f6, 8($v0) -/* 0AB784 7F078D94 C4520028 */ lwc1 $f18, 0x28($v0) -/* 0AB788 7F078D98 46067202 */ mul.s $f8, $f14, $f6 -/* 0AB78C 7F078D9C 00000000 */ nop -/* 0AB790 7F078DA0 46029182 */ mul.s $f6, $f18, $f2 -/* 0AB794 7F078DA4 46064481 */ sub.s $f18, $f8, $f6 -/* 0AB798 7F078DA8 E7B2005C */ swc1 $f18, 0x5c($sp) -/* 0AB79C 7F078DAC 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB7A0 7F078DB0 C4480030 */ lwc1 $f8, 0x30($v0) -/* 0AB7A4 7F078DB4 46085182 */ mul.s $f6, $f10, $f8 -/* 0AB7A8 7F078DB8 C4480034 */ lwc1 $f8, 0x34($v0) -/* 0AB7AC 7F078DBC 46082202 */ mul.s $f8, $f4, $f8 -/* 0AB7B0 7F078DC0 46083180 */ add.s $f6, $f6, $f8 -/* 0AB7B4 7F078DC4 C4480038 */ lwc1 $f8, 0x38($v0) -/* 0AB7B8 7F078DC8 46124202 */ mul.s $f8, $f8, $f18 -/* 0AB7BC 7F078DCC 46064400 */ add.s $f16, $f8, $f6 -/* 0AB7C0 7F078DD0 C4860000 */ lwc1 $f6, ($a0) -/* 0AB7C4 7F078DD4 46065282 */ mul.s $f10, $f10, $f6 -/* 0AB7C8 7F078DD8 C4860004 */ lwc1 $f6, 4($a0) -/* 0AB7CC 7F078DDC 46168200 */ add.s $f8, $f16, $f22 -/* 0AB7D0 7F078DE0 46062102 */ mul.s $f4, $f4, $f6 -/* 0AB7D4 7F078DE4 46045180 */ add.s $f6, $f10, $f4 -/* 0AB7D8 7F078DE8 C48A0008 */ lwc1 $f10, 8($a0) -/* 0AB7DC 7F078DEC 46125102 */ mul.s $f4, $f10, $f18 -/* 0AB7E0 7F078DF0 46062280 */ add.s $f10, $f4, $f6 -/* 0AB7E4 7F078DF4 460A403C */ c.lt.s $f8, $f10 -/* 0AB7E8 7F078DF8 00000000 */ nop -/* 0AB7EC 7F078DFC 45000003 */ bc1f .L7F078E0C -/* 0AB7F0 7F078E00 00000000 */ nop -/* 0AB7F4 7F078E04 100000D4 */ b .L7F079158 -/* 0AB7F8 7F078E08 00001025 */ move $v0, $zero -.L7F078E0C: -/* 0AB7FC 7F078E0C C5F20008 */ lwc1 $f18, 8($t7) -/* 0AB800 7F078E10 C6041090 */ lwc1 $f4, 0x1090($s0) -/* 0AB804 7F078E14 C60810A4 */ lwc1 $f8, 0x10a4($s0) -/* 0AB808 7F078E18 46049181 */ sub.s $f6, $f18, $f4 -/* 0AB80C 7F078E1C C60410AC */ lwc1 $f4, 0x10ac($s0) -/* 0AB810 7F078E20 AFA40080 */ sw $a0, 0x80($sp) -/* 0AB814 7F078E24 46083281 */ sub.s $f10, $f6, $f8 -/* 0AB818 7F078E28 46005487 */ neg.s $f18, $f10 -/* 0AB81C 7F078E2C 46049082 */ mul.s $f2, $f18, $f4 -/* 0AB820 7F078E30 00000000 */ nop -/* 0AB824 7F078E34 46021182 */ mul.s $f6, $f2, $f2 -/* 0AB828 7F078E38 E7A20038 */ swc1 $f2, 0x38($sp) -/* 0AB82C 7F078E3C 0C007614 */ jal sqrtf -/* 0AB830 7F078E40 46143300 */ add.s $f12, $f6, $f20 -/* 0AB834 7F078E44 4600A303 */ div.s $f12, $f20, $f0 -/* 0AB838 7F078E48 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 0AB83C 7F078E4C 8E108BC0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AB840 7F078E50 C7A20038 */ lwc1 $f2, 0x38($sp) -/* 0AB844 7F078E54 8FA40080 */ lw $a0, 0x80($sp) -/* 0AB848 7F078E58 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB84C 7F078E5C 8FB80088 */ lw $t8, 0x88($sp) -/* 0AB850 7F078E60 C4480000 */ lwc1 $f8, ($v0) -/* 0AB854 7F078E64 C4520020 */ lwc1 $f18, 0x20($v0) -/* 0AB858 7F078E68 460C1082 */ mul.s $f2, $f2, $f12 -/* 0AB85C 7F078E6C 46006387 */ neg.s $f14, $f12 -/* 0AB860 7F078E70 46007387 */ neg.s $f14, $f14 -/* 0AB864 7F078E74 46087282 */ mul.s $f10, $f14, $f8 -/* 0AB868 7F078E78 00000000 */ nop -/* 0AB86C 7F078E7C 46029102 */ mul.s $f4, $f18, $f2 -/* 0AB870 7F078E80 46045181 */ sub.s $f6, $f10, $f4 -/* 0AB874 7F078E84 E7A60044 */ swc1 $f6, 0x44($sp) -/* 0AB878 7F078E88 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB87C 7F078E8C C4480004 */ lwc1 $f8, 4($v0) -/* 0AB880 7F078E90 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 0AB884 7F078E94 46087482 */ mul.s $f18, $f14, $f8 -/* 0AB888 7F078E98 00000000 */ nop -/* 0AB88C 7F078E9C 46025102 */ mul.s $f4, $f10, $f2 -/* 0AB890 7F078EA0 46049201 */ sub.s $f8, $f18, $f4 -/* 0AB894 7F078EA4 E7A80048 */ swc1 $f8, 0x48($sp) -/* 0AB898 7F078EA8 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB89C 7F078EAC C44A0008 */ lwc1 $f10, 8($v0) -/* 0AB8A0 7F078EB0 C4440028 */ lwc1 $f4, 0x28($v0) -/* 0AB8A4 7F078EB4 460A7482 */ mul.s $f18, $f14, $f10 -/* 0AB8A8 7F078EB8 00000000 */ nop -/* 0AB8AC 7F078EBC 46022282 */ mul.s $f10, $f4, $f2 -/* 0AB8B0 7F078EC0 460A9101 */ sub.s $f4, $f18, $f10 -/* 0AB8B4 7F078EC4 E7A4004C */ swc1 $f4, 0x4c($sp) -/* 0AB8B8 7F078EC8 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB8BC 7F078ECC C4520030 */ lwc1 $f18, 0x30($v0) -/* 0AB8C0 7F078ED0 46123282 */ mul.s $f10, $f6, $f18 -/* 0AB8C4 7F078ED4 C4520034 */ lwc1 $f18, 0x34($v0) -/* 0AB8C8 7F078ED8 46124482 */ mul.s $f18, $f8, $f18 -/* 0AB8CC 7F078EDC 46125280 */ add.s $f10, $f10, $f18 -/* 0AB8D0 7F078EE0 C4520038 */ lwc1 $f18, 0x38($v0) -/* 0AB8D4 7F078EE4 46049482 */ mul.s $f18, $f18, $f4 -/* 0AB8D8 7F078EE8 460A9400 */ add.s $f16, $f18, $f10 -/* 0AB8DC 7F078EEC C48A0000 */ lwc1 $f10, ($a0) -/* 0AB8E0 7F078EF0 460A3182 */ mul.s $f6, $f6, $f10 -/* 0AB8E4 7F078EF4 C48A0004 */ lwc1 $f10, 4($a0) -/* 0AB8E8 7F078EF8 46168480 */ add.s $f18, $f16, $f22 -/* 0AB8EC 7F078EFC 460A4202 */ mul.s $f8, $f8, $f10 -/* 0AB8F0 7F078F00 46083280 */ add.s $f10, $f6, $f8 -/* 0AB8F4 7F078F04 C4860008 */ lwc1 $f6, 8($a0) -/* 0AB8F8 7F078F08 46043202 */ mul.s $f8, $f6, $f4 -/* 0AB8FC 7F078F0C 460A4180 */ add.s $f6, $f8, $f10 -/* 0AB900 7F078F10 4606903C */ c.lt.s $f18, $f6 -/* 0AB904 7F078F14 00000000 */ nop -/* 0AB908 7F078F18 45000003 */ bc1f .L7F078F28 -/* 0AB90C 7F078F1C 00000000 */ nop -/* 0AB910 7F078F20 1000008D */ b .L7F079158 -/* 0AB914 7F078F24 00001025 */ move $v0, $zero -.L7F078F28: -/* 0AB918 7F078F28 C7040004 */ lwc1 $f4, 4($t8) -/* 0AB91C 7F078F2C C6081094 */ lwc1 $f8, 0x1094($s0) -/* 0AB920 7F078F30 C61210A8 */ lwc1 $f18, 0x10a8($s0) -/* 0AB924 7F078F34 46082281 */ sub.s $f10, $f4, $f8 -/* 0AB928 7F078F38 C60410B0 */ lwc1 $f4, 0x10b0($s0) -/* 0AB92C 7F078F3C AFA40080 */ sw $a0, 0x80($sp) -/* 0AB930 7F078F40 460A9181 */ sub.s $f6, $f18, $f10 -/* 0AB934 7F078F44 46043082 */ mul.s $f2, $f6, $f4 -/* 0AB938 7F078F48 00000000 */ nop -/* 0AB93C 7F078F4C 46021202 */ mul.s $f8, $f2, $f2 -/* 0AB940 7F078F50 E7A20034 */ swc1 $f2, 0x34($sp) -/* 0AB944 7F078F54 0C007614 */ jal sqrtf -/* 0AB948 7F078F58 46144300 */ add.s $f12, $f8, $f20 -/* 0AB94C 7F078F5C 4600A303 */ div.s $f12, $f20, $f0 -/* 0AB950 7F078F60 C7A20034 */ lwc1 $f2, 0x34($sp) -/* 0AB954 7F078F64 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 0AB958 7F078F68 8E108BC0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0AB95C 7F078F6C 8FA40080 */ lw $a0, 0x80($sp) -/* 0AB960 7F078F70 8FB90088 */ lw $t9, 0x88($sp) -/* 0AB964 7F078F74 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB968 7F078F78 C4520020 */ lwc1 $f18, 0x20($v0) -/* 0AB96C 7F078F7C C4460010 */ lwc1 $f6, 0x10($v0) -/* 0AB970 7F078F80 460C1082 */ mul.s $f2, $f2, $f12 -/* 0AB974 7F078F84 46006387 */ neg.s $f14, $f12 -/* 0AB978 7F078F88 46007387 */ neg.s $f14, $f14 -/* 0AB97C 7F078F8C 46029282 */ mul.s $f10, $f18, $f2 -/* 0AB980 7F078F90 00000000 */ nop -/* 0AB984 7F078F94 46067102 */ mul.s $f4, $f14, $f6 -/* 0AB988 7F078F98 46045200 */ add.s $f8, $f10, $f4 -/* 0AB98C 7F078F9C E7A80074 */ swc1 $f8, 0x74($sp) -/* 0AB990 7F078FA0 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB994 7F078FA4 C4520024 */ lwc1 $f18, 0x24($v0) -/* 0AB998 7F078FA8 C44A0014 */ lwc1 $f10, 0x14($v0) -/* 0AB99C 7F078FAC 46029182 */ mul.s $f6, $f18, $f2 -/* 0AB9A0 7F078FB0 00000000 */ nop -/* 0AB9A4 7F078FB4 460A7102 */ mul.s $f4, $f14, $f10 -/* 0AB9A8 7F078FB8 46043480 */ add.s $f18, $f6, $f4 -/* 0AB9AC 7F078FBC E7B20078 */ swc1 $f18, 0x78($sp) -/* 0AB9B0 7F078FC0 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB9B4 7F078FC4 C44A0028 */ lwc1 $f10, 0x28($v0) -/* 0AB9B8 7F078FC8 C4440018 */ lwc1 $f4, 0x18($v0) -/* 0AB9BC 7F078FCC 46025182 */ mul.s $f6, $f10, $f2 -/* 0AB9C0 7F078FD0 00000000 */ nop -/* 0AB9C4 7F078FD4 46047282 */ mul.s $f10, $f14, $f4 -/* 0AB9C8 7F078FD8 460A3100 */ add.s $f4, $f6, $f10 -/* 0AB9CC 7F078FDC E7A4007C */ swc1 $f4, 0x7c($sp) -/* 0AB9D0 7F078FE0 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0AB9D4 7F078FE4 C4460030 */ lwc1 $f6, 0x30($v0) -/* 0AB9D8 7F078FE8 46064282 */ mul.s $f10, $f8, $f6 -/* 0AB9DC 7F078FEC C4460034 */ lwc1 $f6, 0x34($v0) -/* 0AB9E0 7F078FF0 46069182 */ mul.s $f6, $f18, $f6 -/* 0AB9E4 7F078FF4 46065280 */ add.s $f10, $f10, $f6 -/* 0AB9E8 7F078FF8 C4460038 */ lwc1 $f6, 0x38($v0) -/* 0AB9EC 7F078FFC 46043182 */ mul.s $f6, $f6, $f4 -/* 0AB9F0 7F079000 460A3400 */ add.s $f16, $f6, $f10 -/* 0AB9F4 7F079004 C48A0000 */ lwc1 $f10, ($a0) -/* 0AB9F8 7F079008 460A4202 */ mul.s $f8, $f8, $f10 -/* 0AB9FC 7F07900C C48A0004 */ lwc1 $f10, 4($a0) -/* 0ABA00 7F079010 46168180 */ add.s $f6, $f16, $f22 -/* 0ABA04 7F079014 460A9482 */ mul.s $f18, $f18, $f10 -/* 0ABA08 7F079018 46124280 */ add.s $f10, $f8, $f18 -/* 0ABA0C 7F07901C C4880008 */ lwc1 $f8, 8($a0) -/* 0ABA10 7F079020 46044482 */ mul.s $f18, $f8, $f4 -/* 0ABA14 7F079024 460A9200 */ add.s $f8, $f18, $f10 -/* 0ABA18 7F079028 4608303C */ c.lt.s $f6, $f8 -/* 0ABA1C 7F07902C 00000000 */ nop -/* 0ABA20 7F079030 45000003 */ bc1f .L7F079040 -/* 0ABA24 7F079034 00000000 */ nop -/* 0ABA28 7F079038 10000047 */ b .L7F079158 -/* 0ABA2C 7F07903C 00001025 */ move $v0, $zero -.L7F079040: -/* 0ABA30 7F079040 C724000C */ lwc1 $f4, 0xc($t9) -/* 0ABA34 7F079044 C6121094 */ lwc1 $f18, 0x1094($s0) -/* 0ABA38 7F079048 C60610A8 */ lwc1 $f6, 0x10a8($s0) -/* 0ABA3C 7F07904C 46122281 */ sub.s $f10, $f4, $f18 -/* 0ABA40 7F079050 C61210B0 */ lwc1 $f18, 0x10b0($s0) -/* 0ABA44 7F079054 AFA40080 */ sw $a0, 0x80($sp) -/* 0ABA48 7F079058 460A3201 */ sub.s $f8, $f6, $f10 -/* 0ABA4C 7F07905C 46004107 */ neg.s $f4, $f8 -/* 0ABA50 7F079060 46122082 */ mul.s $f2, $f4, $f18 -/* 0ABA54 7F079064 00000000 */ nop -/* 0ABA58 7F079068 46021182 */ mul.s $f6, $f2, $f2 -/* 0ABA5C 7F07906C E7A20034 */ swc1 $f2, 0x34($sp) -/* 0ABA60 7F079070 0C007614 */ jal sqrtf -/* 0ABA64 7F079074 46143300 */ add.s $f12, $f6, $f20 -/* 0ABA68 7F079078 4600A303 */ div.s $f12, $f20, $f0 -/* 0ABA6C 7F07907C C7A20034 */ lwc1 $f2, 0x34($sp) -/* 0ABA70 7F079080 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 0ABA74 7F079084 8E108BC0 */ lw $s0, %lo(g_CurrentPlayer)($s0) -/* 0ABA78 7F079088 8FA40080 */ lw $a0, 0x80($sp) -/* 0ABA7C 7F07908C 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0ABA80 7F079090 C44A0020 */ lwc1 $f10, 0x20($v0) -/* 0ABA84 7F079094 C4440010 */ lwc1 $f4, 0x10($v0) -/* 0ABA88 7F079098 460C1082 */ mul.s $f2, $f2, $f12 -/* 0ABA8C 7F07909C 46006387 */ neg.s $f14, $f12 -/* 0ABA90 7F0790A0 46025202 */ mul.s $f8, $f10, $f2 -/* 0ABA94 7F0790A4 00000000 */ nop -/* 0ABA98 7F0790A8 46047482 */ mul.s $f18, $f14, $f4 -/* 0ABA9C 7F0790AC 46124180 */ add.s $f6, $f8, $f18 -/* 0ABAA0 7F0790B0 E7A60064 */ swc1 $f6, 0x64($sp) -/* 0ABAA4 7F0790B4 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0ABAA8 7F0790B8 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 0ABAAC 7F0790BC C4480014 */ lwc1 $f8, 0x14($v0) -/* 0ABAB0 7F0790C0 46025102 */ mul.s $f4, $f10, $f2 -/* 0ABAB4 7F0790C4 00000000 */ nop -/* 0ABAB8 7F0790C8 46087482 */ mul.s $f18, $f14, $f8 -/* 0ABABC 7F0790CC 46122280 */ add.s $f10, $f4, $f18 -/* 0ABAC0 7F0790D0 E7AA0068 */ swc1 $f10, 0x68($sp) -/* 0ABAC4 7F0790D4 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0ABAC8 7F0790D8 C4480028 */ lwc1 $f8, 0x28($v0) -/* 0ABACC 7F0790DC C4520018 */ lwc1 $f18, 0x18($v0) -/* 0ABAD0 7F0790E0 46024102 */ mul.s $f4, $f8, $f2 -/* 0ABAD4 7F0790E4 00000000 */ nop -/* 0ABAD8 7F0790E8 46127202 */ mul.s $f8, $f14, $f18 -/* 0ABADC 7F0790EC 46082480 */ add.s $f18, $f4, $f8 -/* 0ABAE0 7F0790F0 E7B2006C */ swc1 $f18, 0x6c($sp) -/* 0ABAE4 7F0790F4 8E0210CC */ lw $v0, 0x10cc($s0) -/* 0ABAE8 7F0790F8 C4440030 */ lwc1 $f4, 0x30($v0) -/* 0ABAEC 7F0790FC 46043202 */ mul.s $f8, $f6, $f4 -/* 0ABAF0 7F079100 C4440034 */ lwc1 $f4, 0x34($v0) -/* 0ABAF4 7F079104 46045102 */ mul.s $f4, $f10, $f4 -/* 0ABAF8 7F079108 46044200 */ add.s $f8, $f8, $f4 -/* 0ABAFC 7F07910C C4440038 */ lwc1 $f4, 0x38($v0) -/* 0ABB00 7F079110 24020001 */ li $v0, 1 -/* 0ABB04 7F079114 46122102 */ mul.s $f4, $f4, $f18 -/* 0ABB08 7F079118 46082400 */ add.s $f16, $f4, $f8 -/* 0ABB0C 7F07911C C4880000 */ lwc1 $f8, ($a0) -/* 0ABB10 7F079120 46083182 */ mul.s $f6, $f6, $f8 -/* 0ABB14 7F079124 C4880004 */ lwc1 $f8, 4($a0) -/* 0ABB18 7F079128 46168100 */ add.s $f4, $f16, $f22 -/* 0ABB1C 7F07912C 46085282 */ mul.s $f10, $f10, $f8 -/* 0ABB20 7F079130 460A3200 */ add.s $f8, $f6, $f10 -/* 0ABB24 7F079134 C4860008 */ lwc1 $f6, 8($a0) -/* 0ABB28 7F079138 46123282 */ mul.s $f10, $f6, $f18 -/* 0ABB2C 7F07913C 46085180 */ add.s $f6, $f10, $f8 -/* 0ABB30 7F079140 4606203C */ c.lt.s $f4, $f6 -/* 0ABB34 7F079144 00000000 */ nop -/* 0ABB38 7F079148 45000003 */ bc1f .L7F079158 -/* 0ABB3C 7F07914C 00000000 */ nop -/* 0ABB40 7F079150 10000001 */ b .L7F079158 -/* 0ABB44 7F079154 00001025 */ move $v0, $zero -.L7F079158: -/* 0ABB48 7F079158 8FBF002C */ lw $ra, 0x2c($sp) -/* 0ABB4C 7F07915C D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0ABB50 7F079160 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0ABB54 7F079164 8FB00028 */ lw $s0, 0x28($sp) -/* 0ABB58 7F079168 03E00008 */ jr $ra -/* 0ABB5C 7F07916C 27BD0080 */ addiu $sp, $sp, 0x80 -) -#endif -#endif - - - -#ifdef NONMATCHING -u32 bondviewGetRandomSpawnPadIndex(void) +s32 bondviewGetRandomSpawnPadIndex(void) { - s32 temp_s6; - s32 temp_s2; - s32 temp_s7; - void *temp_t3; - void *temp_t6; - f32 temp_f0; - f32 temp_f2; - s32 temp_s0; - s32 temp_s7_2; - s32 temp_hi; - void *temp_t5; - void *temp_t8; - f32 temp_f0_2; - f32 temp_f2_2; - s32 temp_s0_2; - s32 phi_s0; - s32 phi_s1; - s32 phi_s7; - s32 phi_s1_2; - s32 phi_s7_2; - s32 phi_s0_2; - s32 phi_s1_3; - s32 phi_s7_3; - s32 phi_s1_4; - u32 phi_s3; - s32 phi_s1_5; - s32 phi_s1_6; - s32 phi_s1_7; - s32 phi_s1_8; + PadRecord *pad; + PropRecord *player_prop; + s32 player_count; + f32 diff_x; + s32 pad_index; + s32 player_num; + s32 player_index; + s32 enemy_nearby; + s32 attempt_num; + f32 dist; + f32 diff_z; - temp_s6 = get_cur_playernum(); - temp_s2 = getPlayerCount(); - phi_s1_2 = 1; - phi_s7_2 = 0; - //sprintf("choosing a start pad for player %d\n",__format); - if (startpadcount > 0) + // set up initial values + player_num = get_cur_playernum(); + player_count = getPlayerCount(); + enemy_nearby = TRUE; + + // loop pads until no enemy is within 1000 units + for (attempt_num = 0; enemy_nearby && (attempt_num < startpadcount);) { - phi_s7 = 0; -block_2: - temp_s7 = (phi_s7 + 1); - subroutine_arg0->unk29E0 = (s32) (subroutine_arg0->unk29E0 + 1); - phi_s0 = 0; - phi_s1 = 0; - phi_s1_7 = 0; - //sprintf("testing pad %d\n",local_28); - if (temp_s2 > 0) + attempt_num++; + enemy_nearby = FALSE; + g_CurrentPlayer->field_29E0++; + pad_index = ( g_CurrentPlayer->field_29E0) % (startpadcount); + + for (player_index = 0; player_index < player_count; player_index++) { -block_3: - phi_s1_5 = phi_s1_7; - if (phi_s0 != temp_s6) - { - temp_t3 = (&g_playerPointers + (phi_s0 * 4)); - phi_s1_5 = phi_s1_7; - if ((*temp_t3)->unkA8 != 0) - { - temp_t6 = (&g_Startpad + (((s32) subroutine_arg0->unk29E0 % (s32) startpadcount) * 4)); - temp_f0 = ((*temp_t3)->unkA8->unk8 - **temp_t6); - temp_f2 = ((*temp_t3)->unkA8->unk10 - (*temp_t6)->unk8); - phi_s1_5 = phi_s1_7; - //sprintf("Distance from player %d (%f, %f)->(%f, %f)= %f\n",local_2c, - // *(&g_Startpad)[local_28],*((&g_Startpad)[local_28] + 8), - // *(g_playerPointers[local_2c]->position_data_pointer + 0xc), - // *(g_playerPointers[local_2c]->position_data_pointer + 0x14),dVar7); - if (sqrtf(((temp_f0 * temp_f0) + (temp_f2 * temp_f2))) < 1000.0f) - { - //sprintf("Too close to player %d (closer than 10m)\n",local_2c); - phi_s1_5 = 1; - } - } - } - temp_s0 = (phi_s0 + 1); - phi_s0 = temp_s0; - phi_s1 = phi_s1_5; - phi_s1_7 = phi_s1_5; - if (temp_s0 != temp_s2) - { - goto block_3; - } - } - phi_s1_2 = phi_s1; - phi_s7_2 = temp_s7; - if (phi_s1 != 0) - { - phi_s7 = temp_s7; - if (temp_s7 < startpadcount) - { - goto block_2; - } - phi_s1_2 = phi_s1; - phi_s7_2 = temp_s7; + // don't consider yourself as an enemy + if (player_index == player_num) { continue; } + + // make sure the player prop is valid + player_prop = g_playerPointers[player_index]->prop; + if (player_prop == 0) { continue; } + + // find distance between enemy and this pad + pad = g_Startpad[pad_index]; + diff_x = player_prop->pos.x - pad->pos.x; + diff_z = player_prop->pos.z - pad->pos.z; + dist = sqrtf((diff_x * diff_x) + (diff_z * diff_z)); + + // if pad is within 1000, don't pick it + if (dist < 1000) { enemy_nearby = TRUE; } } } - phi_s1_4 = phi_s1_2; - phi_s3 = sp4C; - if (phi_s1_2 != 0) + + do { } while(0); // leftover debug code? + + // loop pads until no enemy is within 100 units + for (; enemy_nearby && (attempt_num < startpadcount);) { - phi_s1_4 = phi_s1_2; - phi_s3 = sp4C; - if (phi_s7_2 < startpadcount) + attempt_num++; + enemy_nearby = FALSE; + g_CurrentPlayer->field_29E0++; + pad_index = ((s32) g_CurrentPlayer->field_29E0) % ((s32) startpadcount); + + for (player_index = 0; player_index < player_count; player_index++) { - phi_s7_3 = phi_s7_2; -block_14: - temp_s7_2 = (phi_s7_3 + 1); - subroutine_arg0->unk29E0 = (s32) (subroutine_arg0->unk29E0 + 1); - temp_hi = ((s32) subroutine_arg0->unk29E0 % (s32) startpadcount); - //sprintf("testing pad %d (second try)\n",local_28); - phi_s0_2 = 0; - phi_s1_3 = 0; - phi_s1_8 = 0; - if (temp_s2 > 0) - { -block_15: - phi_s1_6 = phi_s1_8; - if (phi_s0_2 != temp_s6) - { - temp_t5 = (&g_playerPointers + (phi_s0_2 * 4)); - phi_s1_6 = phi_s1_8; - if ((*temp_t5)->unkA8 != 0) - { - temp_t8 = (&g_Startpad + (temp_hi * 4)); - temp_f0_2 = ((*temp_t5)->unkA8->unk8 - **temp_t8); - temp_f2_2 = ((*temp_t5)->unkA8->unk10 - (*temp_t8)->unk8); - phi_s1_6 = phi_s1_8; - //sprintf("Distance from player %d (%f, %f)->(%f, %f)= %f\n",local_2c,*(&g_Startpad)[local_28],*((&g_Startpad)[local_28] + 8),*(g_playerPointers[local_2c]->position_data_pointer + 0xc),*(g_playerPointers[local_2c]->position_data_pointer + 0x14),dVar7); - if (sqrtf(((temp_f0_2 * temp_f0_2) + (temp_f2_2 * temp_f2_2))) < 100.0f) - { - //sprintf("Too close to player %d (closer than 1m)\n",local_2c); - phi_s1_6 = 1; - } - } - } - temp_s0_2 = (phi_s0_2 + 1); - phi_s0_2 = temp_s0_2; - phi_s1_3 = phi_s1_6; - phi_s1_8 = phi_s1_6; - if (temp_s0_2 != temp_s2) - { - goto block_15; - } - } - phi_s1_4 = phi_s1_3; - phi_s3 = temp_hi; - if (phi_s1_3 != 0) - { - phi_s7_3 = temp_s7_2; - phi_s1_4 = phi_s1_3; - phi_s3 = temp_hi; - if (temp_s7_2 < startpadcount) - { - goto block_14; - } - } + // don't consider yourself as an enemy + if (player_index == player_num) { continue; } + + // make sure the player prop is valid + player_prop = g_playerPointers[player_index]->prop; + if (player_prop == 0) { continue; } + + // find distance between enemy and this pad + pad = g_Startpad[pad_index]; + diff_x = player_prop->pos.x - pad->pos.x; + diff_z = player_prop->pos.z - pad->pos.z; + dist = sqrtf((diff_x * diff_x) + (diff_z * diff_z)); + + // if pad is within 100, don't pick it + if (dist < 100.f) { enemy_nearby = TRUE; } } } - if (phi_s1_4 != 0) + + // if we searched through all pads and failed to find a safe one, just pick one at random + if (enemy_nearby) { - // sprintf("**** No decent start pad found for player %d - picking a random one ****\n", __format + 1); - phi_s3 = (randomGetNext() % (u32) startpadcount); + pad_index = (randomGetNext() % (startpadcount)); } - return phi_s3; + + return pad_index; } -#else -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel bondviewGetRandomSpawnPadIndex -/* 0ADC20 7F0790F0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0ADC24 7F0790F4 AFBF0044 */ sw $ra, 0x44($sp) -/* 0ADC28 7F0790F8 AFBE0040 */ sw $fp, 0x40($sp) -/* 0ADC2C 7F0790FC AFB7003C */ sw $s7, 0x3c($sp) -/* 0ADC30 7F079100 AFB60038 */ sw $s6, 0x38($sp) -/* 0ADC34 7F079104 AFB50034 */ sw $s5, 0x34($sp) -/* 0ADC38 7F079108 AFB40030 */ sw $s4, 0x30($sp) -/* 0ADC3C 7F07910C AFB3002C */ sw $s3, 0x2c($sp) -/* 0ADC40 7F079110 AFB20028 */ sw $s2, 0x28($sp) -/* 0ADC44 7F079114 AFB10024 */ sw $s1, 0x24($sp) -/* 0ADC48 7F079118 AFB00020 */ sw $s0, 0x20($sp) -/* 0ADC4C 7F07911C 0FC26C54 */ jal get_cur_playernum -/* 0ADC50 7F079120 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0ADC54 7F079124 0FC26919 */ jal getPlayerCount -/* 0ADC58 7F079128 0040B025 */ move $s6, $v0 -/* 0ADC5C 7F07912C 3C0E8008 */ lui $t6, %hi(startpadcount) -/* 0ADC60 7F079130 8DCE9C68 */ lw $t6, %lo(startpadcount)($t6) -/* 0ADC64 7F079134 00409025 */ move $s2, $v0 -/* 0ADC68 7F079138 24110001 */ li $s1, 1 -/* 0ADC6C 7F07913C 19C00047 */ blez $t6, .L7F07925C -/* 0ADC70 7F079140 0000B825 */ move $s7, $zero -/* 0ADC74 7F079144 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 0ADC78 7F079148 3C1E8008 */ lui $fp, %hi(g_CurrentPlayer) -/* 0ADC7C 7F07914C 3C158008 */ lui $s5, %hi(g_Startpad) -/* 0ADC80 7F079150 3C148008 */ lui $s4, %hi(g_playerPointers) -/* 0ADC84 7F079154 4481A000 */ mtc1 $at, $f20 -/* 0ADC88 7F079158 26949EE0 */ addiu $s4, %lo(g_playerPointers) # addiu $s4, $s4, -0x6120 -/* 0ADC8C 7F07915C 26B59C28 */ addiu $s5, %lo(g_Startpad) # addiu $s5, $s5, -0x63d8 -/* 0ADC90 7F079160 27DEA0B0 */ addiu $fp, %lo(g_CurrentPlayer) # addiu $fp, $fp, -0x5f50 -/* 0ADC94 7F079164 8FC20000 */ lw $v0, ($fp) -.L7F079168: -/* 0ADC98 7F079168 3C098008 */ lui $t1, %hi(startpadcount) -/* 0ADC9C 7F07916C 26F70001 */ addiu $s7, $s7, 1 -/* 0ADCA0 7F079170 8C4F29E0 */ lw $t7, 0x29e0($v0) -/* 0ADCA4 7F079174 00008825 */ move $s1, $zero -/* 0ADCA8 7F079178 00008025 */ move $s0, $zero -/* 0ADCAC 7F07917C 25F80001 */ addiu $t8, $t7, 1 -/* 0ADCB0 7F079180 AC5829E0 */ sw $t8, 0x29e0($v0) -/* 0ADCB4 7F079184 8FD90000 */ lw $t9, ($fp) -/* 0ADCB8 7F079188 8D299C68 */ lw $t1, %lo(startpadcount)($t1) -/* 0ADCBC 7F07918C 8F2829E0 */ lw $t0, 0x29e0($t9) -/* 0ADCC0 7F079190 0109001A */ div $zero, $t0, $t1 -/* 0ADCC4 7F079194 00009810 */ mfhi $s3 -/* 0ADCC8 7F079198 15200002 */ bnez $t1, .L7F0791A4 -/* 0ADCCC 7F07919C 00000000 */ nop -/* 0ADCD0 7F0791A0 0007000D */ break 7 -.L7F0791A4: -/* 0ADCD4 7F0791A4 2401FFFF */ li $at, -1 -/* 0ADCD8 7F0791A8 15210004 */ bne $t1, $at, .L7F0791BC -/* 0ADCDC 7F0791AC 3C018000 */ lui $at, 0x8000 -/* 0ADCE0 7F0791B0 15010002 */ bne $t0, $at, .L7F0791BC -/* 0ADCE4 7F0791B4 00000000 */ nop -/* 0ADCE8 7F0791B8 0006000D */ break 6 -.L7F0791BC: -/* 0ADCEC 7F0791BC 1A40001F */ blez $s2, .L7F07923C -/* 0ADCF0 7F0791C0 00000000 */ nop -.L7F0791C4: -/* 0ADCF4 7F0791C4 5216001B */ beql $s0, $s6, .L7F079234 -/* 0ADCF8 7F0791C8 26100001 */ addiu $s0, $s0, 1 -/* 0ADCFC 7F0791CC 00105080 */ sll $t2, $s0, 2 -/* 0ADD00 7F0791D0 028A5821 */ addu $t3, $s4, $t2 -/* 0ADD04 7F0791D4 8D6C0000 */ lw $t4, ($t3) -/* 0ADD08 7F0791D8 8D8200A8 */ lw $v0, 0xa8($t4) -/* 0ADD0C 7F0791DC 50400015 */ beql $v0, $zero, .L7F079234 -/* 0ADD10 7F0791E0 26100001 */ addiu $s0, $s0, 1 -/* 0ADD14 7F0791E4 00136880 */ sll $t5, $s3, 2 -/* 0ADD18 7F0791E8 02AD7021 */ addu $t6, $s5, $t5 -/* 0ADD1C 7F0791EC 8DC30000 */ lw $v1, ($t6) -/* 0ADD20 7F0791F0 C4440008 */ lwc1 $f4, 8($v0) -/* 0ADD24 7F0791F4 C4480010 */ lwc1 $f8, 0x10($v0) -/* 0ADD28 7F0791F8 C4660000 */ lwc1 $f6, ($v1) -/* 0ADD2C 7F0791FC C46A0008 */ lwc1 $f10, 8($v1) -/* 0ADD30 7F079200 46062001 */ sub.s $f0, $f4, $f6 -/* 0ADD34 7F079204 460A4081 */ sub.s $f2, $f8, $f10 -/* 0ADD38 7F079208 46000402 */ mul.s $f16, $f0, $f0 -/* 0ADD3C 7F07920C 00000000 */ nop -/* 0ADD40 7F079210 46021482 */ mul.s $f18, $f2, $f2 -/* 0ADD44 7F079214 0C007DF8 */ jal sqrtf -/* 0ADD48 7F079218 46128300 */ add.s $f12, $f16, $f18 -/* 0ADD4C 7F07921C 4614003C */ c.lt.s $f0, $f20 -/* 0ADD50 7F079220 00000000 */ nop -/* 0ADD54 7F079224 45020003 */ bc1fl .L7F079234 -/* 0ADD58 7F079228 26100001 */ addiu $s0, $s0, 1 -/* 0ADD5C 7F07922C 24110001 */ li $s1, 1 -/* 0ADD60 7F079230 26100001 */ addiu $s0, $s0, 1 -.L7F079234: -/* 0ADD64 7F079234 1612FFE3 */ bne $s0, $s2, .L7F0791C4 -/* 0ADD68 7F079238 00000000 */ nop -.L7F07923C: -/* 0ADD6C 7F07923C 12200007 */ beqz $s1, .L7F07925C -/* 0ADD70 7F079240 AFB3004C */ sw $s3, 0x4c($sp) -/* 0ADD74 7F079244 3C0F8008 */ lui $t7, %hi(startpadcount) -/* 0ADD78 7F079248 8DEF9C68 */ lw $t7, %lo(startpadcount)($t7) -/* 0ADD7C 7F07924C 02EF082A */ slt $at, $s7, $t7 -/* 0ADD80 7F079250 5420FFC5 */ bnezl $at, .L7F079168 -/* 0ADD84 7F079254 8FC20000 */ lw $v0, ($fp) -/* 0ADD88 7F079258 AFB3004C */ sw $s3, 0x4c($sp) -.L7F07925C: -/* 0ADD8C 7F07925C 3C148008 */ lui $s4, %hi(g_playerPointers) -/* 0ADD90 7F079260 3C158008 */ lui $s5, %hi(g_Startpad) -/* 0ADD94 7F079264 3C1E8008 */ lui $fp, %hi(g_CurrentPlayer) -/* 0ADD98 7F079268 27DEA0B0 */ addiu $fp, %lo(g_CurrentPlayer) # addiu $fp, $fp, -0x5f50 -/* 0ADD9C 7F07926C 26B59C28 */ addiu $s5, %lo(g_Startpad) # addiu $s5, $s5, -0x63d8 -/* 0ADDA0 7F079270 26949EE0 */ addiu $s4, %lo(g_playerPointers) # addiu $s4, $s4, -0x6120 -/* 0ADDA4 7F079274 12200044 */ beqz $s1, .L7F079388 -/* 0ADDA8 7F079278 8FB3004C */ lw $s3, 0x4c($sp) -/* 0ADDAC 7F07927C 3C188008 */ lui $t8, %hi(startpadcount) -/* 0ADDB0 7F079280 8F189C68 */ lw $t8, %lo(startpadcount)($t8) -/* 0ADDB4 7F079284 02F8082A */ slt $at, $s7, $t8 -/* 0ADDB8 7F079288 1020003F */ beqz $at, .L7F079388 -/* 0ADDBC 7F07928C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0ADDC0 7F079290 4481A000 */ mtc1 $at, $f20 -/* 0ADDC4 7F079294 00000000 */ nop -/* 0ADDC8 7F079298 8FC20000 */ lw $v0, ($fp) -.L7F07929C: -/* 0ADDCC 7F07929C 3C0B8008 */ lui $t3, %hi(startpadcount) -/* 0ADDD0 7F0792A0 26F70001 */ addiu $s7, $s7, 1 -/* 0ADDD4 7F0792A4 8C5929E0 */ lw $t9, 0x29e0($v0) -/* 0ADDD8 7F0792A8 00008825 */ move $s1, $zero -/* 0ADDDC 7F0792AC 00008025 */ move $s0, $zero -/* 0ADDE0 7F0792B0 27280001 */ addiu $t0, $t9, 1 -/* 0ADDE4 7F0792B4 AC4829E0 */ sw $t0, 0x29e0($v0) -/* 0ADDE8 7F0792B8 8FC90000 */ lw $t1, ($fp) -/* 0ADDEC 7F0792BC 8D6B9C68 */ lw $t3, %lo(startpadcount)($t3) -/* 0ADDF0 7F0792C0 8D2A29E0 */ lw $t2, 0x29e0($t1) -/* 0ADDF4 7F0792C4 014B001A */ div $zero, $t2, $t3 -/* 0ADDF8 7F0792C8 00009810 */ mfhi $s3 -/* 0ADDFC 7F0792CC 15600002 */ bnez $t3, .L7F0792D8 -/* 0ADE00 7F0792D0 00000000 */ nop -/* 0ADE04 7F0792D4 0007000D */ break 7 -.L7F0792D8: -/* 0ADE08 7F0792D8 2401FFFF */ li $at, -1 -/* 0ADE0C 7F0792DC 15610004 */ bne $t3, $at, .L7F0792F0 -/* 0ADE10 7F0792E0 3C018000 */ lui $at, 0x8000 -/* 0ADE14 7F0792E4 15410002 */ bne $t2, $at, .L7F0792F0 -/* 0ADE18 7F0792E8 00000000 */ nop -/* 0ADE1C 7F0792EC 0006000D */ break 6 -.L7F0792F0: -/* 0ADE20 7F0792F0 1A40001F */ blez $s2, .L7F079370 -/* 0ADE24 7F0792F4 00000000 */ nop -.L7F0792F8: -/* 0ADE28 7F0792F8 5216001B */ beql $s0, $s6, .L7F079368 -/* 0ADE2C 7F0792FC 26100001 */ addiu $s0, $s0, 1 -/* 0ADE30 7F079300 00106080 */ sll $t4, $s0, 2 -/* 0ADE34 7F079304 028C6821 */ addu $t5, $s4, $t4 -/* 0ADE38 7F079308 8DAE0000 */ lw $t6, ($t5) -/* 0ADE3C 7F07930C 8DC200A8 */ lw $v0, 0xa8($t6) -/* 0ADE40 7F079310 50400015 */ beql $v0, $zero, .L7F079368 -/* 0ADE44 7F079314 26100001 */ addiu $s0, $s0, 1 -/* 0ADE48 7F079318 00137880 */ sll $t7, $s3, 2 -/* 0ADE4C 7F07931C 02AFC021 */ addu $t8, $s5, $t7 -/* 0ADE50 7F079320 8F030000 */ lw $v1, ($t8) -/* 0ADE54 7F079324 C4440008 */ lwc1 $f4, 8($v0) -/* 0ADE58 7F079328 C4480010 */ lwc1 $f8, 0x10($v0) -/* 0ADE5C 7F07932C C4660000 */ lwc1 $f6, ($v1) -/* 0ADE60 7F079330 C46A0008 */ lwc1 $f10, 8($v1) -/* 0ADE64 7F079334 46062001 */ sub.s $f0, $f4, $f6 -/* 0ADE68 7F079338 460A4081 */ sub.s $f2, $f8, $f10 -/* 0ADE6C 7F07933C 46000402 */ mul.s $f16, $f0, $f0 -/* 0ADE70 7F079340 00000000 */ nop -/* 0ADE74 7F079344 46021482 */ mul.s $f18, $f2, $f2 -/* 0ADE78 7F079348 0C007DF8 */ jal sqrtf -/* 0ADE7C 7F07934C 46128300 */ add.s $f12, $f16, $f18 -/* 0ADE80 7F079350 4614003C */ c.lt.s $f0, $f20 -/* 0ADE84 7F079354 00000000 */ nop -/* 0ADE88 7F079358 45020003 */ bc1fl .L7F079368 -/* 0ADE8C 7F07935C 26100001 */ addiu $s0, $s0, 1 -/* 0ADE90 7F079360 24110001 */ li $s1, 1 -/* 0ADE94 7F079364 26100001 */ addiu $s0, $s0, 1 -.L7F079368: -/* 0ADE98 7F079368 1612FFE3 */ bne $s0, $s2, .L7F0792F8 -/* 0ADE9C 7F07936C 00000000 */ nop -.L7F079370: -/* 0ADEA0 7F079370 12200005 */ beqz $s1, .L7F079388 -/* 0ADEA4 7F079374 3C198008 */ lui $t9, %hi(startpadcount) -/* 0ADEA8 7F079378 8F399C68 */ lw $t9, %lo(startpadcount)($t9) -/* 0ADEAC 7F07937C 02F9082A */ slt $at, $s7, $t9 -/* 0ADEB0 7F079380 5420FFC6 */ bnezl $at, .L7F07929C -/* 0ADEB4 7F079384 8FC20000 */ lw $v0, ($fp) -.L7F079388: -/* 0ADEB8 7F079388 5220000B */ beql $s1, $zero, .L7F0793B8 -/* 0ADEBC 7F07938C 8FBF0044 */ lw $ra, 0x44($sp) -/* 0ADEC0 7F079390 0C002914 */ jal randomGetNext -/* 0ADEC4 7F079394 00000000 */ nop -/* 0ADEC8 7F079398 3C088008 */ lui $t0, %hi(startpadcount) -/* 0ADECC 7F07939C 8D089C68 */ lw $t0, %lo(startpadcount)($t0) -/* 0ADED0 7F0793A0 0048001B */ divu $zero, $v0, $t0 -/* 0ADED4 7F0793A4 00009810 */ mfhi $s3 -/* 0ADED8 7F0793A8 15000002 */ bnez $t0, .L7F0793B4 -/* 0ADEDC 7F0793AC 00000000 */ nop -/* 0ADEE0 7F0793B0 0007000D */ break 7 -.L7F0793B4: -/* 0ADEE4 7F0793B4 8FBF0044 */ lw $ra, 0x44($sp) -.L7F0793B8: -/* 0ADEE8 7F0793B8 02601025 */ move $v0, $s3 -/* 0ADEEC 7F0793BC 8FB3002C */ lw $s3, 0x2c($sp) -/* 0ADEF0 7F0793C0 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0ADEF4 7F0793C4 8FB00020 */ lw $s0, 0x20($sp) -/* 0ADEF8 7F0793C8 8FB10024 */ lw $s1, 0x24($sp) -/* 0ADEFC 7F0793CC 8FB20028 */ lw $s2, 0x28($sp) -/* 0ADF00 7F0793D0 8FB40030 */ lw $s4, 0x30($sp) -/* 0ADF04 7F0793D4 8FB50034 */ lw $s5, 0x34($sp) -/* 0ADF08 7F0793D8 8FB60038 */ lw $s6, 0x38($sp) -/* 0ADF0C 7F0793DC 8FB7003C */ lw $s7, 0x3c($sp) -/* 0ADF10 7F0793E0 8FBE0040 */ lw $fp, 0x40($sp) -/* 0ADF14 7F0793E4 03E00008 */ jr $ra -/* 0ADF18 7F0793E8 27BD0060 */ addiu $sp, $sp, 0x60 -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel bondviewGetRandomSpawnPadIndex -/* 0ABB60 7F079170 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0ABB64 7F079174 AFBF0044 */ sw $ra, 0x44($sp) -/* 0ABB68 7F079178 AFBE0040 */ sw $fp, 0x40($sp) -/* 0ABB6C 7F07917C AFB7003C */ sw $s7, 0x3c($sp) -/* 0ABB70 7F079180 AFB60038 */ sw $s6, 0x38($sp) -/* 0ABB74 7F079184 AFB50034 */ sw $s5, 0x34($sp) -/* 0ABB78 7F079188 AFB40030 */ sw $s4, 0x30($sp) -/* 0ABB7C 7F07918C AFB3002C */ sw $s3, 0x2c($sp) -/* 0ABB80 7F079190 AFB20028 */ sw $s2, 0x28($sp) -/* 0ABB84 7F079194 AFB10024 */ sw $s1, 0x24($sp) -/* 0ABB88 7F079198 AFB00020 */ sw $s0, 0x20($sp) -/* 0ABB8C 7F07919C 0FC269A4 */ jal get_cur_playernum -/* 0ABB90 7F0791A0 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0ABB94 7F0791A4 0FC26669 */ jal getPlayerCount -/* 0ABB98 7F0791A8 0040B025 */ move $s6, $v0 -/* 0ABB9C 7F0791AC 3C0E8007 */ lui $t6, %hi(startpadcount) # $t6, 0x8007 -/* 0ABBA0 7F0791B0 8DCE8778 */ lw $t6, %lo(startpadcount)($t6) -/* 0ABBA4 7F0791B4 00409025 */ move $s2, $v0 -/* 0ABBA8 7F0791B8 24110001 */ li $s1, 1 -/* 0ABBAC 7F0791BC 19C00047 */ blez $t6, .L7F0792DC -/* 0ABBB0 7F0791C0 0000B825 */ move $s7, $zero -/* 0ABBB4 7F0791C4 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 0ABBB8 7F0791C8 3C1E8007 */ lui $fp, %hi(g_CurrentPlayer) # $fp, 0x8007 -/* 0ABBBC 7F0791CC 3C158007 */ lui $s5, %hi(g_Startpad) # $s5, 0x8007 -/* 0ABBC0 7F0791D0 3C148007 */ lui $s4, %hi(g_playerPointers) # $s4, 0x8007 -/* 0ABBC4 7F0791D4 4481A000 */ mtc1 $at, $f20 -/* 0ABBC8 7F0791D8 269489F0 */ addiu $s4, %lo(g_playerPointers) # addiu $s4, $s4, -0x7610 -/* 0ABBCC 7F0791DC 26B58738 */ addiu $s5, %lo(g_Startpad) # addiu $s5, $s5, -0x78c8 -/* 0ABBD0 7F0791E0 27DE8BC0 */ addiu $fp, %lo(g_CurrentPlayer) # addiu $fp, $fp, -0x7440 -/* 0ABBD4 7F0791E4 8FC20000 */ lw $v0, ($fp) -.L7F0791E8: -/* 0ABBD8 7F0791E8 3C098007 */ lui $t1, %hi(startpadcount) # $t1, 0x8007 -/* 0ABBDC 7F0791EC 26F70001 */ addiu $s7, $s7, 1 -/* 0ABBE0 7F0791F0 8C4F29D8 */ lw $t7, 0x29d8($v0) -/* 0ABBE4 7F0791F4 00008825 */ move $s1, $zero -/* 0ABBE8 7F0791F8 00008025 */ move $s0, $zero -/* 0ABBEC 7F0791FC 25F80001 */ addiu $t8, $t7, 1 -/* 0ABBF0 7F079200 AC5829D8 */ sw $t8, 0x29d8($v0) -/* 0ABBF4 7F079204 8FD90000 */ lw $t9, ($fp) -/* 0ABBF8 7F079208 8D298778 */ lw $t1, %lo(startpadcount)($t1) -/* 0ABBFC 7F07920C 8F2829D8 */ lw $t0, 0x29d8($t9) -/* 0ABC00 7F079210 0109001A */ div $zero, $t0, $t1 -/* 0ABC04 7F079214 00009810 */ mfhi $s3 -/* 0ABC08 7F079218 15200002 */ bnez $t1, .L7F079224 -/* 0ABC0C 7F07921C 00000000 */ nop -/* 0ABC10 7F079220 0007000D */ break 7 -.L7F079224: -/* 0ABC14 7F079224 2401FFFF */ li $at, -1 -/* 0ABC18 7F079228 15210004 */ bne $t1, $at, .L7F07923C -/* 0ABC1C 7F07922C 3C018000 */ lui $at, 0x8000 -/* 0ABC20 7F079230 15010002 */ bne $t0, $at, .L7F07923C -/* 0ABC24 7F079234 00000000 */ nop -/* 0ABC28 7F079238 0006000D */ break 6 -.L7F07923C: -/* 0ABC2C 7F07923C 1A40001F */ blez $s2, .L7F0792BC -/* 0ABC30 7F079240 00000000 */ nop -.L7F079244: -/* 0ABC34 7F079244 5216001B */ beql $s0, $s6, .L7F0792B4 -/* 0ABC38 7F079248 26100001 */ addiu $s0, $s0, 1 -/* 0ABC3C 7F07924C 00105080 */ sll $t2, $s0, 2 -/* 0ABC40 7F079250 028A5821 */ addu $t3, $s4, $t2 -/* 0ABC44 7F079254 8D6C0000 */ lw $t4, ($t3) -/* 0ABC48 7F079258 8D8200A8 */ lw $v0, 0xa8($t4) -/* 0ABC4C 7F07925C 50400015 */ beql $v0, $zero, .L7F0792B4 -/* 0ABC50 7F079260 26100001 */ addiu $s0, $s0, 1 -/* 0ABC54 7F079264 00136880 */ sll $t5, $s3, 2 -/* 0ABC58 7F079268 02AD7021 */ addu $t6, $s5, $t5 -/* 0ABC5C 7F07926C 8DC30000 */ lw $v1, ($t6) -/* 0ABC60 7F079270 C4440008 */ lwc1 $f4, 8($v0) -/* 0ABC64 7F079274 C4480010 */ lwc1 $f8, 0x10($v0) -/* 0ABC68 7F079278 C4660000 */ lwc1 $f6, ($v1) -/* 0ABC6C 7F07927C C46A0008 */ lwc1 $f10, 8($v1) -/* 0ABC70 7F079280 46062001 */ sub.s $f0, $f4, $f6 -/* 0ABC74 7F079284 460A4081 */ sub.s $f2, $f8, $f10 -/* 0ABC78 7F079288 46000402 */ mul.s $f16, $f0, $f0 -/* 0ABC7C 7F07928C 00000000 */ nop -/* 0ABC80 7F079290 46021482 */ mul.s $f18, $f2, $f2 -/* 0ABC84 7F079294 0C007614 */ jal sqrtf -/* 0ABC88 7F079298 46128300 */ add.s $f12, $f16, $f18 -/* 0ABC8C 7F07929C 4614003C */ c.lt.s $f0, $f20 -/* 0ABC90 7F0792A0 00000000 */ nop -/* 0ABC94 7F0792A4 45020003 */ bc1fl .L7F0792B4 -/* 0ABC98 7F0792A8 26100001 */ addiu $s0, $s0, 1 -/* 0ABC9C 7F0792AC 24110001 */ li $s1, 1 -/* 0ABCA0 7F0792B0 26100001 */ addiu $s0, $s0, 1 -.L7F0792B4: -/* 0ABCA4 7F0792B4 1612FFE3 */ bne $s0, $s2, .L7F079244 -/* 0ABCA8 7F0792B8 00000000 */ nop -.L7F0792BC: -/* 0ABCAC 7F0792BC 12200007 */ beqz $s1, .L7F0792DC -/* 0ABCB0 7F0792C0 AFB3004C */ sw $s3, 0x4c($sp) -/* 0ABCB4 7F0792C4 3C0F8007 */ lui $t7, %hi(startpadcount) # $t7, 0x8007 -/* 0ABCB8 7F0792C8 8DEF8778 */ lw $t7, %lo(startpadcount)($t7) -/* 0ABCBC 7F0792CC 02EF082A */ slt $at, $s7, $t7 -/* 0ABCC0 7F0792D0 5420FFC5 */ bnezl $at, .L7F0791E8 -/* 0ABCC4 7F0792D4 8FC20000 */ lw $v0, ($fp) -/* 0ABCC8 7F0792D8 AFB3004C */ sw $s3, 0x4c($sp) -.L7F0792DC: -/* 0ABCCC 7F0792DC 3C148007 */ lui $s4, %hi(g_playerPointers) # $s4, 0x8007 -/* 0ABCD0 7F0792E0 3C158007 */ lui $s5, %hi(g_Startpad) # $s5, 0x8007 -/* 0ABCD4 7F0792E4 3C1E8007 */ lui $fp, %hi(g_CurrentPlayer) # $fp, 0x8007 -/* 0ABCD8 7F0792E8 27DE8BC0 */ addiu $fp, %lo(g_CurrentPlayer) # addiu $fp, $fp, -0x7440 -/* 0ABCDC 7F0792EC 26B58738 */ addiu $s5, %lo(g_Startpad) # addiu $s5, $s5, -0x78c8 -/* 0ABCE0 7F0792F0 269489F0 */ addiu $s4, %lo(g_playerPointers) # addiu $s4, $s4, -0x7610 -/* 0ABCE4 7F0792F4 12200044 */ beqz $s1, .L7F079408 -/* 0ABCE8 7F0792F8 8FB3004C */ lw $s3, 0x4c($sp) -/* 0ABCEC 7F0792FC 3C188007 */ lui $t8, %hi(startpadcount) # $t8, 0x8007 -/* 0ABCF0 7F079300 8F188778 */ lw $t8, %lo(startpadcount)($t8) -/* 0ABCF4 7F079304 02F8082A */ slt $at, $s7, $t8 -/* 0ABCF8 7F079308 1020003F */ beqz $at, .L7F079408 -/* 0ABCFC 7F07930C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0ABD00 7F079310 4481A000 */ mtc1 $at, $f20 -/* 0ABD04 7F079314 00000000 */ nop -/* 0ABD08 7F079318 8FC20000 */ lw $v0, ($fp) -.L7F07931C: -/* 0ABD0C 7F07931C 3C0B8007 */ lui $t3, %hi(startpadcount) # $t3, 0x8007 -/* 0ABD10 7F079320 26F70001 */ addiu $s7, $s7, 1 -/* 0ABD14 7F079324 8C5929D8 */ lw $t9, 0x29d8($v0) -/* 0ABD18 7F079328 00008825 */ move $s1, $zero -/* 0ABD1C 7F07932C 00008025 */ move $s0, $zero -/* 0ABD20 7F079330 27280001 */ addiu $t0, $t9, 1 -/* 0ABD24 7F079334 AC4829D8 */ sw $t0, 0x29d8($v0) -/* 0ABD28 7F079338 8FC90000 */ lw $t1, ($fp) -/* 0ABD2C 7F07933C 8D6B8778 */ lw $t3, %lo(startpadcount)($t3) -/* 0ABD30 7F079340 8D2A29D8 */ lw $t2, 0x29d8($t1) -/* 0ABD34 7F079344 014B001A */ div $zero, $t2, $t3 -/* 0ABD38 7F079348 00009810 */ mfhi $s3 -/* 0ABD3C 7F07934C 15600002 */ bnez $t3, .L7F079358 -/* 0ABD40 7F079350 00000000 */ nop -/* 0ABD44 7F079354 0007000D */ break 7 -.L7F079358: -/* 0ABD48 7F079358 2401FFFF */ li $at, -1 -/* 0ABD4C 7F07935C 15610004 */ bne $t3, $at, .L7F079370 -/* 0ABD50 7F079360 3C018000 */ lui $at, 0x8000 -/* 0ABD54 7F079364 15410002 */ bne $t2, $at, .L7F079370 -/* 0ABD58 7F079368 00000000 */ nop -/* 0ABD5C 7F07936C 0006000D */ break 6 -.L7F079370: -/* 0ABD60 7F079370 1A40001F */ blez $s2, .L7F0793F0 -/* 0ABD64 7F079374 00000000 */ nop -.L7F079378: -/* 0ABD68 7F079378 5216001B */ beql $s0, $s6, .L7F0793E8 -/* 0ABD6C 7F07937C 26100001 */ addiu $s0, $s0, 1 -/* 0ABD70 7F079380 00106080 */ sll $t4, $s0, 2 -/* 0ABD74 7F079384 028C6821 */ addu $t5, $s4, $t4 -/* 0ABD78 7F079388 8DAE0000 */ lw $t6, ($t5) -/* 0ABD7C 7F07938C 8DC200A8 */ lw $v0, 0xa8($t6) -/* 0ABD80 7F079390 50400015 */ beql $v0, $zero, .L7F0793E8 -/* 0ABD84 7F079394 26100001 */ addiu $s0, $s0, 1 -/* 0ABD88 7F079398 00137880 */ sll $t7, $s3, 2 -/* 0ABD8C 7F07939C 02AFC021 */ addu $t8, $s5, $t7 -/* 0ABD90 7F0793A0 8F030000 */ lw $v1, ($t8) -/* 0ABD94 7F0793A4 C4440008 */ lwc1 $f4, 8($v0) -/* 0ABD98 7F0793A8 C4480010 */ lwc1 $f8, 0x10($v0) -/* 0ABD9C 7F0793AC C4660000 */ lwc1 $f6, ($v1) -/* 0ABDA0 7F0793B0 C46A0008 */ lwc1 $f10, 8($v1) -/* 0ABDA4 7F0793B4 46062001 */ sub.s $f0, $f4, $f6 -/* 0ABDA8 7F0793B8 460A4081 */ sub.s $f2, $f8, $f10 -/* 0ABDAC 7F0793BC 46000402 */ mul.s $f16, $f0, $f0 -/* 0ABDB0 7F0793C0 00000000 */ nop -/* 0ABDB4 7F0793C4 46021482 */ mul.s $f18, $f2, $f2 -/* 0ABDB8 7F0793C8 0C007614 */ jal sqrtf -/* 0ABDBC 7F0793CC 46128300 */ add.s $f12, $f16, $f18 -/* 0ABDC0 7F0793D0 4614003C */ c.lt.s $f0, $f20 -/* 0ABDC4 7F0793D4 00000000 */ nop -/* 0ABDC8 7F0793D8 45020003 */ bc1fl .L7F0793E8 -/* 0ABDCC 7F0793DC 26100001 */ addiu $s0, $s0, 1 -/* 0ABDD0 7F0793E0 24110001 */ li $s1, 1 -/* 0ABDD4 7F0793E4 26100001 */ addiu $s0, $s0, 1 -.L7F0793E8: -/* 0ABDD8 7F0793E8 1612FFE3 */ bne $s0, $s2, .L7F079378 -/* 0ABDDC 7F0793EC 00000000 */ nop -.L7F0793F0: -/* 0ABDE0 7F0793F0 12200005 */ beqz $s1, .L7F079408 -/* 0ABDE4 7F0793F4 3C198007 */ lui $t9, %hi(startpadcount) # $t9, 0x8007 -/* 0ABDE8 7F0793F8 8F398778 */ lw $t9, %lo(startpadcount)($t9) -/* 0ABDEC 7F0793FC 02F9082A */ slt $at, $s7, $t9 -/* 0ABDF0 7F079400 5420FFC6 */ bnezl $at, .L7F07931C -/* 0ABDF4 7F079404 8FC20000 */ lw $v0, ($fp) -.L7F079408: -/* 0ABDF8 7F079408 5220000B */ beql $s1, $zero, .L7F079438 -/* 0ABDFC 7F07940C 8FBF0044 */ lw $ra, 0x44($sp) -/* 0ABE00 7F079410 0C00262C */ jal randomGetNext -/* 0ABE04 7F079414 00000000 */ nop -/* 0ABE08 7F079418 3C088007 */ lui $t0, %hi(startpadcount) # $t0, 0x8007 -/* 0ABE0C 7F07941C 8D088778 */ lw $t0, %lo(startpadcount)($t0) -/* 0ABE10 7F079420 0048001B */ divu $zero, $v0, $t0 -/* 0ABE14 7F079424 00009810 */ mfhi $s3 -/* 0ABE18 7F079428 15000002 */ bnez $t0, .L7F079434 -/* 0ABE1C 7F07942C 00000000 */ nop -/* 0ABE20 7F079430 0007000D */ break 7 -.L7F079434: -/* 0ABE24 7F079434 8FBF0044 */ lw $ra, 0x44($sp) -.L7F079438: -/* 0ABE28 7F079438 02601025 */ move $v0, $s3 -/* 0ABE2C 7F07943C 8FB3002C */ lw $s3, 0x2c($sp) -/* 0ABE30 7F079440 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0ABE34 7F079444 8FB00020 */ lw $s0, 0x20($sp) -/* 0ABE38 7F079448 8FB10024 */ lw $s1, 0x24($sp) -/* 0ABE3C 7F07944C 8FB20028 */ lw $s2, 0x28($sp) -/* 0ABE40 7F079450 8FB40030 */ lw $s4, 0x30($sp) -/* 0ABE44 7F079454 8FB50034 */ lw $s5, 0x34($sp) -/* 0ABE48 7F079458 8FB60038 */ lw $s6, 0x38($sp) -/* 0ABE4C 7F07945C 8FB7003C */ lw $s7, 0x3c($sp) -/* 0ABE50 7F079460 8FBE0040 */ lw $fp, 0x40($sp) -/* 0ABE54 7F079464 03E00008 */ jr $ra -/* 0ABE58 7F079468 27BD0060 */ addiu $sp, $sp, 0x60 -) -#endif -#endif //file split per pd void init_player_BONDdata(void) @@ -3446,7 +2307,7 @@ variable_body_head: /* 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 +/* 0AEAFC 7F079FCC 0FC32EBD */ jal texInitPool /* 0AEB00 7F079FD0 8FA600E0 */ lw $a2, 0xe0($sp) /* 0AEB04 7F079FD4 0FC173C6 */ jal get_ptr_itemheader_in_hand /* 0AEB08 7F079FD8 00002025 */ move $a0, $zero @@ -4038,7 +2899,7 @@ variable_body_head: /* 0AF120 7F07A5B0 00002025 */ move $a0, $zero /* 0AF124 7F07A5B4 27A40100 */ addiu $a0, $sp, 0x100 /* 0AF128 7F07A5B8 8FA500EC */ lw $a1, 0xec($sp) -/* 0AF12C 7F07A5BC 0FC331F5 */ jal sub_GAME_7F0CBAF4 +/* 0AF12C 7F07A5BC 0FC331F5 */ jal texInitPool /* 0AF130 7F07A5C0 8FA600E0 */ lw $a2, 0xe0($sp) /* 0AF134 7F07A5C4 0FC1750E */ jal get_ptr_itemheader_in_hand /* 0AF138 7F07A5C8 00002025 */ move $a0, $zero @@ -4645,7 +3506,7 @@ variable_body_head: /* 0ACA30 7F07A040 00002025 */ move $a0, $zero /* 0ACA34 7F07A044 27A40100 */ addiu $a0, $sp, 0x100 /* 0ACA38 7F07A048 8FA500EC */ lw $a1, 0xec($sp) -/* 0ACA3C 7F07A04C 0FC32C05 */ jal sub_GAME_7F0CBAF4 +/* 0ACA3C 7F07A04C 0FC32C05 */ jal texInitPool /* 0ACA40 7F07A050 8FA600E0 */ lw $a2, 0xe0($sp) /* 0ACA44 7F07A054 0FC174F2 */ jal get_ptr_itemheader_in_hand /* 0ACA48 7F07A058 00002025 */ move $a0, $zero @@ -6628,11 +5489,11 @@ glabel sub_GAME_7F07B56C /* 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(g_chraiCurrentSetup+0x18) +/* 0B0330 7F07B800 3C198007 */ lui $t9, %hi(g_CurrentSetup+0x18) /* 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(g_chraiCurrentSetup+0x18)($t9) +/* 0B0340 7F07B810 8F395D18 */ lw $t9, %lo(g_CurrentSetup+0x18)($t9) /* 0B0344 7F07B814 8FAD0054 */ lw $t5, 0x54($sp) /* 0B0348 7F07B818 8F0E0018 */ lw $t6, 0x18($t8) /* 0B034C 7F07B81C 000E7880 */ sll $t7, $t6, 2 @@ -7023,11 +5884,11 @@ glabel sub_GAME_7F07B56C /* 0B08F0 7F07BDC0 03387021 */ addu $t6, $t9, $t8 /* 0B08F4 7F07BDC4 8DC4001C */ lw $a0, 0x1c($t6) /* 0B08F8 7F07BDC8 2529A0B0 */ addiu $t1, %lo(g_CurrentPlayer) # addiu $t1, $t1, -0x5f50 -/* 0B08FC 7F07BDCC 3C0C8007 */ lui $t4, %hi(g_chraiCurrentSetup+0x18) +/* 0B08FC 7F07BDCC 3C0C8007 */ lui $t4, %hi(g_CurrentSetup+0x18) /* 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(g_chraiCurrentSetup+0x18)($t4) +/* 0B090C 7F07BDDC 8D8C5D18 */ lw $t4, %lo(g_CurrentSetup+0x18)($t4) /* 0B0910 7F07BDE0 000F7880 */ sll $t7, $t7, 2 /* 0B0914 7F07BDE4 01E47823 */ subu $t7, $t7, $a0 /* 0B0918 7F07BDE8 000F7880 */ sll $t7, $t7, 2 @@ -7279,7 +6140,7 @@ glabel sub_GAME_7F07B56C /* 0B0CB8 7F07C188 10800063 */ beqz $a0, .L7F07C318 /* 0B0CBC 7F07C18C 00000000 */ nop /* 0B0CC0 7F07C190 8C830018 */ lw $v1, 0x18($a0) -/* 0B0CC4 7F07C194 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0x1C) +/* 0B0CC4 7F07C194 3C0D8007 */ lui $t5, %hi(g_CurrentSetup+0x1C) /* 0B0CC8 7F07C198 8FB90048 */ lw $t9, 0x48($sp) /* 0B0CCC 7F07C19C 28612710 */ slti $at, $v1, 0x2710 /* 0B0CD0 7F07C1A0 1020000A */ beqz $at, .L7F07C1CC @@ -7287,14 +6148,14 @@ glabel sub_GAME_7F07B56C /* 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(g_chraiCurrentSetup+0x18) -/* 0B0CE8 7F07C1B8 8DEF5D18 */ lw $t7, %lo(g_chraiCurrentSetup+0x18)($t7) +/* 0B0CE4 7F07C1B4 3C0F8007 */ lui $t7, %hi(g_CurrentSetup+0x18) +/* 0B0CE8 7F07C1B8 8DEF5D18 */ lw $t7, %lo(g_CurrentSetup+0x18)($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(g_chraiCurrentSetup+0x1C)($t5) +/* 0B0CFC 7F07C1CC 8DAD5D1C */ lw $t5, %lo(g_CurrentSetup+0x1C)($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 @@ -7382,7 +6243,7 @@ glabel sub_GAME_7F07B56C .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(g_chraiCurrentSetup+0x1C) +/* 0B0E50 7F07C320 3C0E8007 */ lui $t6, %hi(g_CurrentSetup+0x1C) /* 0B0E54 7F07C324 8FAF0054 */ lw $t7, 0x54($sp) /* 0B0E58 7F07C328 28412710 */ slti $at, $v0, 0x2710 /* 0B0E5C 7F07C32C 1020000A */ beqz $at, .L7F07C358 @@ -7390,14 +6251,14 @@ glabel sub_GAME_7F07B56C /* 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(g_chraiCurrentSetup+0x18) -/* 0B0E74 7F07C344 8F185D18 */ lw $t8, %lo(g_chraiCurrentSetup+0x18)($t8) +/* 0B0E70 7F07C340 3C188007 */ lui $t8, %hi(g_CurrentSetup+0x18) +/* 0B0E74 7F07C344 8F185D18 */ lw $t8, %lo(g_CurrentSetup+0x18)($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(g_chraiCurrentSetup+0x1C)($t6) +/* 0B0E88 7F07C358 8DCE5D1C */ lw $t6, %lo(g_CurrentSetup+0x1C)($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 @@ -7720,11 +6581,11 @@ glabel sub_GAME_7F07B56C /* 0B0988 7F07BE18 C58A0008 */ lwc1 $f10, 8($t4) /* 0B098C 7F07BE1C 8FA30058 */ lw $v1, 0x58($sp) /* 0B0990 7F07BE20 3C188003 */ lui $t8, %hi(ptr_random06cam_entry) # $t8, 0x8003 -/* 0B0994 7F07BE24 3C198007 */ lui $t9, %hi(g_chraiCurrentSetup+0x18) # $t9, 0x8007 +/* 0B0994 7F07BE24 3C198007 */ lui $t9, %hi(g_CurrentSetup+0x18) # $t9, 0x8007 /* 0B0998 7F07BE28 46065201 */ sub.s $f8, $f10, $f6 /* 0B099C 7F07BE2C E5A80008 */ swc1 $f8, 8($t5) /* 0B09A0 7F07BE30 8F186500 */ lw $t8, %lo(ptr_random06cam_entry)($t8) -/* 0B09A4 7F07BE34 8F395D58 */ lw $t9, %lo(g_chraiCurrentSetup+0x18)($t9) +/* 0B09A4 7F07BE34 8F395D58 */ lw $t9, %lo(g_CurrentSetup+0x18)($t9) /* 0B09A8 7F07BE38 8FAD0054 */ lw $t5, 0x54($sp) /* 0B09AC 7F07BE3C 8F0E0018 */ lw $t6, 0x18($t8) /* 0B09B0 7F07BE40 000E7880 */ sll $t7, $t6, 2 @@ -8115,11 +6976,11 @@ glabel sub_GAME_7F07B56C /* 0B0F54 7F07C3E4 03387021 */ addu $t6, $t9, $t8 /* 0B0F58 7F07C3E8 8DC4001C */ lw $a0, 0x1c($t6) /* 0B0F5C 7F07C3EC 2529A120 */ addiu $t1, %lo(g_CurrentPlayer) # addiu $t1, $t1, -0x5ee0 -/* 0B0F60 7F07C3F0 3C0C8007 */ lui $t4, %hi(g_chraiCurrentSetup+0x18) # $t4, 0x8007 +/* 0B0F60 7F07C3F0 3C0C8007 */ lui $t4, %hi(g_CurrentSetup+0x18) # $t4, 0x8007 /* 0B0F64 7F07C3F4 04800012 */ bltz $a0, .Ljp7F07C440 /* 0B0F68 7F07C3F8 00047880 */ sll $t7, $a0, 2 /* 0B0F6C 7F07C3FC 01E47823 */ subu $t7, $t7, $a0 -/* 0B0F70 7F07C400 8D8C5D58 */ lw $t4, %lo(g_chraiCurrentSetup+0x18)($t4) +/* 0B0F70 7F07C400 8D8C5D58 */ lw $t4, %lo(g_CurrentSetup+0x18)($t4) /* 0B0F74 7F07C404 000F7880 */ sll $t7, $t7, 2 /* 0B0F78 7F07C408 01E47823 */ subu $t7, $t7, $a0 /* 0B0F7C 7F07C40C 000F7880 */ sll $t7, $t7, 2 @@ -8371,7 +7232,7 @@ glabel sub_GAME_7F07B56C /* 0B131C 7F07C7AC 10800063 */ beqz $a0, .Ljp7F07C93C /* 0B1320 7F07C7B0 00000000 */ nop /* 0B1324 7F07C7B4 8C830018 */ lw $v1, 0x18($a0) -/* 0B1328 7F07C7B8 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0x1C) # $t5, 0x8007 +/* 0B1328 7F07C7B8 3C0D8007 */ lui $t5, %hi(g_CurrentSetup+0x1C) # $t5, 0x8007 /* 0B132C 7F07C7BC 8FB90048 */ lw $t9, 0x48($sp) /* 0B1330 7F07C7C0 28612710 */ slti $at, $v1, 0x2710 /* 0B1334 7F07C7C4 1020000A */ beqz $at, .Ljp7F07C7F0 @@ -8379,14 +7240,14 @@ glabel sub_GAME_7F07B56C /* 0B133C 7F07C7CC 00036080 */ sll $t4, $v1, 2 /* 0B1340 7F07C7D0 01836023 */ subu $t4, $t4, $v1 /* 0B1344 7F07C7D4 000C6080 */ sll $t4, $t4, 2 -/* 0B1348 7F07C7D8 3C0F8007 */ lui $t7, %hi(g_chraiCurrentSetup+0x18) # $t7, 0x8007 -/* 0B134C 7F07C7DC 8DEF5D58 */ lw $t7, %lo(g_chraiCurrentSetup+0x18)($t7) +/* 0B1348 7F07C7D8 3C0F8007 */ lui $t7, %hi(g_CurrentSetup+0x18) # $t7, 0x8007 +/* 0B134C 7F07C7DC 8DEF5D58 */ lw $t7, %lo(g_CurrentSetup+0x18)($t7) /* 0B1350 7F07C7E0 01836023 */ subu $t4, $t4, $v1 /* 0B1354 7F07C7E4 000C6080 */ sll $t4, $t4, 2 /* 0B1358 7F07C7E8 10000008 */ b .Ljp7F07C80C /* 0B135C 7F07C7EC 018F1021 */ addu $v0, $t4, $t7 .Ljp7F07C7F0: -/* 0B1360 7F07C7F0 8DAD5D5C */ lw $t5, %lo(g_chraiCurrentSetup+0x1C)($t5) +/* 0B1360 7F07C7F0 8DAD5D5C */ lw $t5, %lo(g_CurrentSetup+0x1C)($t5) /* 0B1364 7F07C7F4 0303C021 */ addu $t8, $t8, $v1 /* 0B1368 7F07C7F8 0018C080 */ sll $t8, $t8, 2 /* 0B136C 7F07C7FC 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -8474,7 +7335,7 @@ glabel sub_GAME_7F07B56C .Ljp7F07C93C: /* 0B14AC 7F07C93C 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079A14) # $v0, 0x8008 /* 0B14B0 7F07C940 8C429A54 */ lw $v0, %lo(dword_CODE_bss_80079A14)($v0) -/* 0B14B4 7F07C944 3C0E8007 */ lui $t6, %hi(g_chraiCurrentSetup+0x1C) # $t6, 0x8007 +/* 0B14B4 7F07C944 3C0E8007 */ lui $t6, %hi(g_CurrentSetup+0x1C) # $t6, 0x8007 /* 0B14B8 7F07C948 8FAF0054 */ lw $t7, 0x54($sp) /* 0B14BC 7F07C94C 28412710 */ slti $at, $v0, 0x2710 /* 0B14C0 7F07C950 1020000A */ beqz $at, .Ljp7F07C97C @@ -8482,14 +7343,14 @@ glabel sub_GAME_7F07B56C /* 0B14C8 7F07C958 00026080 */ sll $t4, $v0, 2 /* 0B14CC 7F07C95C 01826023 */ subu $t4, $t4, $v0 /* 0B14D0 7F07C960 000C6080 */ sll $t4, $t4, 2 -/* 0B14D4 7F07C964 3C188007 */ lui $t8, %hi(g_chraiCurrentSetup+0x18) # $t8, 0x8007 -/* 0B14D8 7F07C968 8F185D58 */ lw $t8, %lo(g_chraiCurrentSetup+0x18)($t8) +/* 0B14D4 7F07C964 3C188007 */ lui $t8, %hi(g_CurrentSetup+0x18) # $t8, 0x8007 +/* 0B14D8 7F07C968 8F185D58 */ lw $t8, %lo(g_CurrentSetup+0x18)($t8) /* 0B14DC 7F07C96C 01826023 */ subu $t4, $t4, $v0 /* 0B14E0 7F07C970 000C6080 */ sll $t4, $t4, 2 /* 0B14E4 7F07C974 10000008 */ b .Ljp7F07C998 /* 0B14E8 7F07C978 01982021 */ addu $a0, $t4, $t8 .Ljp7F07C97C: -/* 0B14EC 7F07C97C 8DCE5D5C */ lw $t6, %lo(g_chraiCurrentSetup+0x1C)($t6) +/* 0B14EC 7F07C97C 8DCE5D5C */ lw $t6, %lo(g_CurrentSetup+0x1C)($t6) /* 0B14F0 7F07C980 01A26821 */ addu $t5, $t5, $v0 /* 0B14F4 7F07C984 000D6880 */ sll $t5, $t5, 2 /* 0B14F8 7F07C988 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -8811,11 +7672,11 @@ glabel sub_GAME_7F07B56C /* 0AE27C 7F07B88C C5AA0008 */ lwc1 $f10, 8($t5) /* 0AE280 7F07B890 8FA40058 */ lw $a0, 0x58($sp) /* 0AE284 7F07B894 3C0C8003 */ lui $t4, %hi(ptr_random06cam_entry) # $t4, 0x8003 -/* 0AE288 7F07B898 3C188006 */ lui $t8, %hi(g_chraiCurrentSetup+0x18) # $t8, 0x8006 +/* 0AE288 7F07B898 3C188006 */ lui $t8, %hi(g_CurrentSetup+0x18) # $t8, 0x8006 /* 0AE28C 7F07B89C 46065201 */ sub.s $f8, $f10, $f6 /* 0AE290 7F07B8A0 E5C80008 */ swc1 $f8, 8($t6) /* 0AE294 7F07B8A4 8D8C1A10 */ lw $t4, %lo(ptr_random06cam_entry)($t4) -/* 0AE298 7F07B8A8 8F184C58 */ lw $t8, %lo(g_chraiCurrentSetup+0x18)($t8) +/* 0AE298 7F07B8A8 8F184C58 */ lw $t8, %lo(g_CurrentSetup+0x18)($t8) /* 0AE29C 7F07B8AC 8FAE0054 */ lw $t6, 0x54($sp) /* 0AE2A0 7F07B8B0 8D8F0018 */ lw $t7, 0x18($t4) /* 0AE2A4 7F07B8B4 000FC880 */ sll $t9, $t7, 2 @@ -9219,11 +8080,11 @@ glabel sub_GAME_7F07B56C /* 0AE87C 7F07BE8C 030E6021 */ addu $t4, $t8, $t6 /* 0AE880 7F07BE90 8D83001C */ lw $v1, 0x1c($t4) /* 0AE884 7F07BE94 25298BC0 */ addiu $t1, %lo(g_CurrentPlayer) # addiu $t1, $t1, -0x7440 -/* 0AE888 7F07BE98 3C0F8006 */ lui $t7, %hi(g_chraiCurrentSetup+0x18) # $t7, 0x8006 +/* 0AE888 7F07BE98 3C0F8006 */ lui $t7, %hi(g_CurrentSetup+0x18) # $t7, 0x8006 /* 0AE88C 7F07BE9C 04600012 */ bltz $v1, .L7F07BEE8 /* 0AE890 7F07BEA0 0003C880 */ sll $t9, $v1, 2 /* 0AE894 7F07BEA4 0323C823 */ subu $t9, $t9, $v1 -/* 0AE898 7F07BEA8 8DEF4C58 */ lw $t7, %lo(g_chraiCurrentSetup+0x18)($t7) +/* 0AE898 7F07BEA8 8DEF4C58 */ lw $t7, %lo(g_CurrentSetup+0x18)($t7) /* 0AE89C 7F07BEAC 0019C880 */ sll $t9, $t9, 2 /* 0AE8A0 7F07BEB0 0323C823 */ subu $t9, $t9, $v1 /* 0AE8A4 7F07BEB4 0019C880 */ sll $t9, $t9, 2 @@ -9476,7 +8337,7 @@ glabel sub_GAME_7F07B56C /* 0AEC48 7F07C258 10600064 */ beqz $v1, .L7F07C3EC /* 0AEC4C 7F07C25C 00000000 */ nop /* 0AEC50 7F07C260 8C640018 */ lw $a0, 0x18($v1) -/* 0AEC54 7F07C264 3C188006 */ lui $t8, %hi(g_chraiCurrentSetup+0x1C) # $t8, 0x8006 +/* 0AEC54 7F07C264 3C188006 */ lui $t8, %hi(g_CurrentSetup+0x1C) # $t8, 0x8006 /* 0AEC58 7F07C268 8FAE0048 */ lw $t6, 0x48($sp) /* 0AEC5C 7F07C26C 28812710 */ slti $at, $a0, 0x2710 /* 0AEC60 7F07C270 1020000A */ beqz $at, .L7F07C29C @@ -9484,14 +8345,14 @@ glabel sub_GAME_7F07B56C /* 0AEC68 7F07C278 00046880 */ sll $t5, $a0, 2 /* 0AEC6C 7F07C27C 01A46823 */ subu $t5, $t5, $a0 /* 0AEC70 7F07C280 000D6880 */ sll $t5, $t5, 2 -/* 0AEC74 7F07C284 3C0F8006 */ lui $t7, %hi(g_chraiCurrentSetup+0x18) # $t7, 0x8006 -/* 0AEC78 7F07C288 8DEF4C58 */ lw $t7, %lo(g_chraiCurrentSetup+0x18)($t7) +/* 0AEC74 7F07C284 3C0F8006 */ lui $t7, %hi(g_CurrentSetup+0x18) # $t7, 0x8006 +/* 0AEC78 7F07C288 8DEF4C58 */ lw $t7, %lo(g_CurrentSetup+0x18)($t7) /* 0AEC7C 7F07C28C 01A46823 */ subu $t5, $t5, $a0 /* 0AEC80 7F07C290 000D6880 */ sll $t5, $t5, 2 /* 0AEC84 7F07C294 10000008 */ b .L7F07C2B8 /* 0AEC88 7F07C298 01AF1021 */ addu $v0, $t5, $t7 .L7F07C29C: -/* 0AEC8C 7F07C29C 8F184C5C */ lw $t8, %lo(g_chraiCurrentSetup+0x1C)($t8) +/* 0AEC8C 7F07C29C 8F184C5C */ lw $t8, %lo(g_CurrentSetup+0x1C)($t8) /* 0AEC90 7F07C2A0 01846021 */ addu $t4, $t4, $a0 /* 0AEC94 7F07C2A4 000C6080 */ sll $t4, $t4, 2 /* 0AEC98 7F07C2A8 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -9580,7 +8441,7 @@ glabel sub_GAME_7F07B56C .L7F07C3EC: /* 0AEDDC 7F07C3EC 3C028007 */ lui $v0, %hi(dword_CODE_bss_80079A14) # $v0, 0x8007 /* 0AEDE0 7F07C3F0 8C4284F4 */ lw $v0, %lo(dword_CODE_bss_80079A14)($v0) -/* 0AEDE4 7F07C3F4 3C198006 */ lui $t9, %hi(g_chraiCurrentSetup+0x1C) # $t9, 0x8006 +/* 0AEDE4 7F07C3F4 3C198006 */ lui $t9, %hi(g_CurrentSetup+0x1C) # $t9, 0x8006 /* 0AEDE8 7F07C3F8 8FAF0054 */ lw $t7, 0x54($sp) /* 0AEDEC 7F07C3FC 28412710 */ slti $at, $v0, 0x2710 /* 0AEDF0 7F07C400 1020000A */ beqz $at, .L7F07C42C @@ -9588,14 +8449,14 @@ glabel sub_GAME_7F07B56C /* 0AEDF8 7F07C408 00026880 */ sll $t5, $v0, 2 /* 0AEDFC 7F07C40C 01A26823 */ subu $t5, $t5, $v0 /* 0AEE00 7F07C410 000D6880 */ sll $t5, $t5, 2 -/* 0AEE04 7F07C414 3C0C8006 */ lui $t4, %hi(g_chraiCurrentSetup+0x18) # $t4, 0x8006 -/* 0AEE08 7F07C418 8D8C4C58 */ lw $t4, %lo(g_chraiCurrentSetup+0x18)($t4) +/* 0AEE04 7F07C414 3C0C8006 */ lui $t4, %hi(g_CurrentSetup+0x18) # $t4, 0x8006 +/* 0AEE08 7F07C418 8D8C4C58 */ lw $t4, %lo(g_CurrentSetup+0x18)($t4) /* 0AEE0C 7F07C41C 01A26823 */ subu $t5, $t5, $v0 /* 0AEE10 7F07C420 000D6880 */ sll $t5, $t5, 2 /* 0AEE14 7F07C424 10000008 */ b .L7F07C448 /* 0AEE18 7F07C428 01AC1821 */ addu $v1, $t5, $t4 .L7F07C42C: -/* 0AEE1C 7F07C42C 8F394C5C */ lw $t9, %lo(g_chraiCurrentSetup+0x1C)($t9) +/* 0AEE1C 7F07C42C 8F394C5C */ lw $t9, %lo(g_CurrentSetup+0x1C)($t9) /* 0AEE20 7F07C430 0302C021 */ addu $t8, $t8, $v0 /* 0AEE24 7F07C434 0018C080 */ sll $t8, $t8, 2 /* 0AEE28 7F07C438 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -9885,77 +8746,38 @@ void bondviewUpdateXAutoAimTime(s32 auto_aim_time, f32 auto_aim_x) } - - - -#ifdef NONMATCHING -f32 change_player_pos_to_target(void *arg0, void *arg1, ?32 arg2) { - // Node 0 - arg0->unk4 = (f32) *arg1; - arg0->unk8 = (f32) arg1->unk4; - arg0->unkC = (f32) arg1->unk8; - *arg0 = arg2; - arg0->unk50 = arg2; - arg0->unk3C = 0.0f; - arg0->unk40 = 0.0f; - arg0->unk44 = 0.0f; - arg0->unk4C = 0.0f; - arg0->unk10 = 0.0f; - arg0->unk14 = 0.0f; - arg0->unk2C = (f32) arg0->unk4; - arg0->unk1C = (f32) arg0->unk4; - arg0->unk38 = 1.0f; - arg0->unk48 = 1.0f; - arg0->unk18 = 1.0f; - arg0->unk30 = (f32) arg0->unk8; - arg0->unk20 = (f32) arg0->unk8; - arg0->unk34 = (f32) arg0->unkC; - arg0->unk24 = (f32) arg0->unkC; - arg0->unk28 = 30.0f; - return arg0->unk4; +void change_player_pos_to_target(struct collision434 *col, coord3d *pos, StandTile *stan) +{ + f32 store_x; + f32 store_x2; + f32 store_z; + f32 store_y; + col->collision_position.x = pos->x; + store_x = col->collision_position.x; + col->collision_position.y = pos->y; + store_y = col->collision_position.y; + col->collision_position.z = pos->z; + store_z = col->collision_position.z; + store_x2 = pos->x; + col->current_tile_ptr = stan; + col->current_tile_ptr_for_portals = stan; + col->applied_view.y = 0.0f; + col->applied_view.z = 0.0f; + col->applied_view2.x = 0.0f; + col->applied_view2.z = store_x2 * 0.0f; + col->field_10.x = 0.0f; + col->field_10.y = 0.0f; + col->pos.x = store_x; + col->pos3.x = store_x; + col->applied_view.x = 1.0f; + col->applied_view2.y = 1.0f; + col->field_10.z = 1.0f; + col->pos.y = store_y; + col->pos3.y = store_y; + col->pos.z = store_z; + col->pos3.z = store_z; + col->collision_radius = 30; } -#else -GLOBAL_ASM( -.text -glabel change_player_pos_to_target -/* 0B1260 7F07C730 C4A40000 */ lwc1 $f4, ($a1) -/* 0B1264 7F07C734 44808000 */ mtc1 $zero, $f16 -/* 0B1268 7F07C738 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0B126C 7F07C73C E4840004 */ swc1 $f4, 4($a0) -/* 0B1270 7F07C740 C4A60004 */ lwc1 $f6, 4($a1) -/* 0B1274 7F07C744 44817000 */ mtc1 $at, $f14 -/* 0B1278 7F07C748 C4800004 */ lwc1 $f0, 4($a0) -/* 0B127C 7F07C74C E4860008 */ swc1 $f6, 8($a0) -/* 0B1280 7F07C750 C4A80008 */ lwc1 $f8, 8($a1) -/* 0B1284 7F07C754 C4820008 */ lwc1 $f2, 8($a0) -/* 0B1288 7F07C758 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 0B128C 7F07C75C E488000C */ swc1 $f8, 0xc($a0) -/* 0B1290 7F07C760 C48C000C */ lwc1 $f12, 0xc($a0) -/* 0B1294 7F07C764 44815000 */ mtc1 $at, $f10 -/* 0B1298 7F07C768 AC860000 */ sw $a2, ($a0) -/* 0B129C 7F07C76C AC860050 */ sw $a2, 0x50($a0) -/* 0B12A0 7F07C770 E490003C */ swc1 $f16, 0x3c($a0) -/* 0B12A4 7F07C774 E4900040 */ swc1 $f16, 0x40($a0) -/* 0B12A8 7F07C778 E4900044 */ swc1 $f16, 0x44($a0) -/* 0B12AC 7F07C77C E490004C */ swc1 $f16, 0x4c($a0) -/* 0B12B0 7F07C780 E4900010 */ swc1 $f16, 0x10($a0) -/* 0B12B4 7F07C784 E4900014 */ swc1 $f16, 0x14($a0) -/* 0B12B8 7F07C788 E480002C */ swc1 $f0, 0x2c($a0) -/* 0B12BC 7F07C78C E480001C */ swc1 $f0, 0x1c($a0) -/* 0B12C0 7F07C790 E48E0038 */ swc1 $f14, 0x38($a0) -/* 0B12C4 7F07C794 E48E0048 */ swc1 $f14, 0x48($a0) -/* 0B12C8 7F07C798 E48E0018 */ swc1 $f14, 0x18($a0) -/* 0B12CC 7F07C79C E4820030 */ swc1 $f2, 0x30($a0) -/* 0B12D0 7F07C7A0 E4820020 */ swc1 $f2, 0x20($a0) -/* 0B12D4 7F07C7A4 E48C0034 */ swc1 $f12, 0x34($a0) -/* 0B12D8 7F07C7A8 E48C0024 */ swc1 $f12, 0x24($a0) -/* 0B12DC 7F07C7AC 03E00008 */ jr $ra -/* 0B12E0 7F07C7B0 E48A0028 */ swc1 $f10, 0x28($a0) -) -#endif - - - #ifdef NONMATCHING @@ -10176,17 +8998,17 @@ s32 bondviewTankCollisionStatus(struct coord3d *arg0, StandTile *arg1, f32 arg2, temp_f0 = arg2 + g_TankTurretOrientationAngleRad; - if (temp_f0 >= 6.2831855f) + if (temp_f0 >= M_TAU_F) { - temp_f0 -= 6.2831855f; + temp_f0 -= M_TAU_F; } if (temp_f0 < 0.0f) { - temp_f0 += 6.2831855f; + temp_f0 += M_TAU_F; } - matrix_4x4_set_rotation_around_y(6.2831855f - temp_f0, &sp34); + matrix_4x4_set_rotation_around_y(M_TAU_F - temp_f0, &sp34); matrix_4x4_rotate_vector_in_place(&sp34, (f32*)&sp74); sp74.f[0] *= sp8C->scale; @@ -10496,14 +9318,14 @@ void bondviewSet3dCoord7F07CEB0(coord3d *arg0) f = g_TankOrientationAngle + g_TankTurretOrientationAngleRad; - if (f >= 6.2831855f) + if (f >= M_TAU_F) { - f = f - 6.2831855f; + f = f - M_TAU_F; } if (f < 0.0f) { - f = f + 6.2831855f; + f = f + M_TAU_F; } arg0->f[0] = -sinf(f) * cosf(g_TankTurretVerticalAngle); @@ -20086,13 +18908,13 @@ glabel controller_gameplay_interaction /* 0B77F8 7F082CC8 00002025 */ move $a0, $zero /* 0B77FC 7F082CCC 1040000A */ beqz $v0, .L7F082CF8 /* 0B7800 7F082CD0 00000000 */ nop -/* 0B7804 7F082CD4 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B7804 7F082CD4 0FC19C5D */ jal getCurrentPlayerNoise /* 0B7808 7F082CD8 00002025 */ move $a0, $zero /* 0B780C 7F082CDC 4600A03C */ c.lt.s $f20, $f0 /* 0B7810 7F082CE0 00000000 */ nop /* 0B7814 7F082CE4 45000004 */ bc1f .L7F082CF8 /* 0B7818 7F082CE8 00000000 */ nop -/* 0B781C 7F082CEC 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B781C 7F082CEC 0FC19C5D */ jal getCurrentPlayerNoise /* 0B7820 7F082CF0 00002025 */ move $a0, $zero /* 0B7824 7F082CF4 E7A000E4 */ swc1 $f0, 0xe4($sp) .L7F082CF8: @@ -20100,14 +18922,14 @@ glabel controller_gameplay_interaction /* 0B782C 7F082CFC 24040001 */ li $a0, 1 /* 0B7830 7F082D00 1040000B */ beqz $v0, .L7F082D30 /* 0B7834 7F082D04 00000000 */ nop -/* 0B7838 7F082D08 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B7838 7F082D08 0FC19C5D */ jal getCurrentPlayerNoise /* 0B783C 7F082D0C 24040001 */ li $a0, 1 /* 0B7840 7F082D10 C7AA00E4 */ lwc1 $f10, 0xe4($sp) /* 0B7844 7F082D14 4600503C */ c.lt.s $f10, $f0 /* 0B7848 7F082D18 00000000 */ nop /* 0B784C 7F082D1C 45000004 */ bc1f .L7F082D30 /* 0B7850 7F082D20 00000000 */ nop -/* 0B7854 7F082D24 0FC19C5D */ jal sub_GAME_7F067174 +/* 0B7854 7F082D24 0FC19C5D */ jal getCurrentPlayerNoise /* 0B7858 7F082D28 24040001 */ li $a0, 1 /* 0B785C 7F082D2C E7A000E4 */ swc1 $f0, 0xe4($sp) .L7F082D30: @@ -22822,13 +21644,13 @@ glabel controller_gameplay_interaction /* 0B575C 7F082D6C 00002025 */ move $a0, $zero /* 0B5760 7F082D70 1040000A */ beqz $v0, .L7F082D9C /* 0B5764 7F082D74 00000000 */ nop -/* 0B5768 7F082D78 0FC19E47 */ jal sub_GAME_7F067174 +/* 0B5768 7F082D78 0FC19E47 */ jal getCurrentPlayerNoise /* 0B576C 7F082D7C 00002025 */ move $a0, $zero /* 0B5770 7F082D80 4600A03C */ c.lt.s $f20, $f0 /* 0B5774 7F082D84 00000000 */ nop /* 0B5778 7F082D88 45000004 */ bc1f .L7F082D9C /* 0B577C 7F082D8C 00000000 */ nop -/* 0B5780 7F082D90 0FC19E47 */ jal sub_GAME_7F067174 +/* 0B5780 7F082D90 0FC19E47 */ jal getCurrentPlayerNoise /* 0B5784 7F082D94 00002025 */ move $a0, $zero /* 0B5788 7F082D98 E7A000E4 */ swc1 $f0, 0xe4($sp) .L7F082D9C: @@ -22836,14 +21658,14 @@ glabel controller_gameplay_interaction /* 0B5790 7F082DA0 24040001 */ li $a0, 1 /* 0B5794 7F082DA4 1040000B */ beqz $v0, .L7F082DD4 /* 0B5798 7F082DA8 00000000 */ nop -/* 0B579C 7F082DAC 0FC19E47 */ jal sub_GAME_7F067174 +/* 0B579C 7F082DAC 0FC19E47 */ jal getCurrentPlayerNoise /* 0B57A0 7F082DB0 24040001 */ li $a0, 1 /* 0B57A4 7F082DB4 C7AA00E4 */ lwc1 $f10, 0xe4($sp) /* 0B57A8 7F082DB8 4600503C */ c.lt.s $f10, $f0 /* 0B57AC 7F082DBC 00000000 */ nop /* 0B57B0 7F082DC0 45000004 */ bc1f .L7F082DD4 /* 0B57B4 7F082DC4 00000000 */ nop -/* 0B57B8 7F082DC8 0FC19E47 */ jal sub_GAME_7F067174 +/* 0B57B8 7F082DC8 0FC19E47 */ jal getCurrentPlayerNoise /* 0B57BC 7F082DCC 24040001 */ li $a0, 1 /* 0B57C0 7F082DD0 E7A000E4 */ swc1 $f0, 0xe4($sp) .L7F082DD4: @@ -24163,266 +22985,134 @@ glabel controller_gameplay_interaction -#ifdef NONMATCHING -void sub_GAME_7F083FC8(void) { - -} -#else - #ifdef VERSION_US -GLOBAL_ASM( -.text -glabel sub_GAME_7F083FC8 -/* 0B8AF8 7F083FC8 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8AFC 7F083FCC 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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 hudmsgsSetOff -/* 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 countdownTimerSetVisible -/* 0B8B48 7F084018 00002825 */ move $a1, $zero -/* 0B8B4C 7F08401C 0FC228BB */ jal bondviewGetCurrentPlayerHealth -/* 0B8B50 7F084020 00000000 */ nop -/* 0B8B54 7F084024 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0B8B58 7F084028 44812000 */ mtc1 $at, $f4 -/* 0B8B5C 7F08402C 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 0B8B60 7F084030 2463A0B0 */ addiu $v1, %lo(g_CurrentPlayer) # 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(g_CurrentPlayer) -/* 0B8C8C 7F08415C 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0B8C90 7F084160 8C4300F4 */ lw $v1, 0xf4($v0) -/* 0B8C94 7F084164 8C4901C8 */ lw $t1, 0x1c8($v0) -.L7F084168: -/* 0B8C98 7F084168 3C0A8005 */ lui $t2, %hi(g_ClockTimer) -/* 0B8C9C 7F08416C 3C0C8005 */ lui $t4, %hi(speedgraphframes) -/* 0B8CA0 7F084170 15200005 */ bnez $t1, .L7F084188 -/* 0B8CA4 7F084174 00000000 */ nop -/* 0B8CA8 7F084178 8D4A8374 */ lw $t2, %lo(g_ClockTimer)($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(speedgraphframes)($t4) -/* 0B8CBC 7F08418C 006C6821 */ addu $t5, $v1, $t4 -/* 0B8CC0 7F084190 AC4D00F4 */ sw $t5, 0xf4($v0) -.L7F084194: -/* 0B8CC4 7F084194 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8CC8 7F084198 10000019 */ b .L7F084200 -/* 0B8CCC 7F08419C 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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(g_CurrentPlayer) -/* 0B8CE4 7F0841B4 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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 hudmsgsSetOn -/* 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 countdownTimerSetVisible -/* 0B8D24 7F0841F4 24050001 */ li $a1, 1 -/* 0B8D28 7F0841F8 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8D2C 7F0841FC 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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 bondviewGetCurrentPlayerHealth -/* 0B8D48 7F084218 00000000 */ nop -/* 0B8D4C 7F08421C 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0B8D50 7F084220 44815000 */ mtc1 $at, $f10 -/* 0B8D54 7F084224 3C098008 */ lui $t1, %hi(g_CurrentPlayer) -/* 0B8D58 7F084228 8D29A0B0 */ lw $t1, %lo(g_CurrentPlayer)($t1) -/* 0B8D5C 7F08422C 460A0402 */ mul.s $f16, $f0, $f10 -/* 0B8D60 7F084230 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 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(g_CurrentPlayer)($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(g_CurrentPlayer) -/* 0B8D94 7F084264 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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(g_ClockTimer) -/* 0B8DF0 7F0842C0 E44400EC */ swc1 $f4, 0xec($v0) -/* 0B8DF4 7F0842C4 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8DF8 7F0842C8 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0B8DFC 7F0842CC C44600E8 */ lwc1 $f6, 0xe8($v0) -/* 0B8E00 7F0842D0 E44600F0 */ swc1 $f6, 0xf0($v0) -/* 0B8E04 7F0842D4 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8E08 7F0842D8 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0B8E0C 7F0842DC 8D298374 */ lw $t1, %lo(g_ClockTimer)($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(g_ClockTimer) -/* 0B8E44 7F084314 E44800EC */ swc1 $f8, 0xec($v0) -/* 0B8E48 7F084318 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8E4C 7F08431C 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0B8E50 7F084320 C44A00E0 */ lwc1 $f10, 0xe0($v0) -/* 0B8E54 7F084324 E44A00F0 */ swc1 $f10, 0xf0($v0) -/* 0B8E58 7F084328 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0B8E5C 7F08432C 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0B8E60 7F084330 8DAD8374 */ lw $t5, %lo(g_ClockTimer)($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 -) + +void sub_GAME_7F083FC8(void) +{ + f32 frac; + s32 unk_field10; + s32 unk_field14; + s32 unk_field14_2; + s32 dmg_time_diff; + s32 unk_field18; + s32 unk_field_diff; + bondstruct_unk_80036794 * timerelated; + bondstruct_unk_80036634 * unknown; + + // update damage showtime + if (g_CurrentPlayer->damageshowtime >= 0) + { + if (g_CurrentPlayer->damageshowtime == 0) + { + set_unset_ammo_on_screen_setting(8, 0); + set_unset_bitflags(0x10, 0); + hudmsgsSetOff(4); + sub_GAME_7F08A944(PLAYERFLAG_NOTIMER); + countdownTimerSetVisible(8, 0); + + g_CurrentPlayer->damagetype = (s32)(bondviewGetCurrentPlayerHealth() * 8.0f); + if (g_CurrentPlayer->damagetype >= 8) + { + g_CurrentPlayer->damagetype = 7; + } + } + + unknown = &D_80036634[g_CurrentPlayer->damagetype]; + if ((unknown->field_0x8 >= g_CurrentPlayer->damageshowtime) || (unknown->field_0x18 >= g_CurrentPlayer->damageshowtime)) + { + if (!g_CurrentPlayer->bonddead) + { + unk_field10 = unknown->field_0x10; + if (g_CurrentPlayer->damageshowtime >= unk_field10) + { + unk_field18 = unknown->field_0x18; + if (unk_field18 >= g_CurrentPlayer->damageshowtime) + { + unk_field14 = unknown->field_0x14; + dmg_time_diff = g_CurrentPlayer->damageshowtime; + dmg_time_diff = dmg_time_diff - unk_field10; + unk_field_diff = unk_field18 - unk_field10; + unk_field18 = dmg_time_diff; + + if (unk_field18 < unk_field14) + { + frac = (unknown->field_0x1c * ((f32) dmg_time_diff)) / ((f32) unk_field14); + } + else + { + frac = (unknown->field_0x1c * ((f32)(unk_field_diff - unk_field18))) / ((f32)(unk_field_diff - unk_field14)); + } + + currentPlayerSetFadeColour(unknown->field_0x20, unknown->field_0x24, unknown->field_0x28, frac); + } + } + } + + if (g_CurrentPlayer->watch_animation_state == 0) + { + g_CurrentPlayer->damageshowtime += g_ClockTimer; + } + else + { + g_CurrentPlayer->damageshowtime += speedgraphframes; + } + + } + else /* (damage showtime is over) */ + { + g_CurrentPlayer->damageshowtime = -1; + currentPlayerSetFadeColour(0xFF, 0xFF, 0xFF, 0.0f); + if (!g_CurrentPlayer->bonddead) + { + set_unset_ammo_on_screen_setting(8, 1); + set_unset_bitflags(0x10, 1); + hudmsgsSetOn(4); + sub_GAME_7F08A928(4); + countdownTimerSetVisible(8, 1); + } + } + } + + // update health showtime + if (g_CurrentPlayer->healthshowtime >= 0) + { + if (g_CurrentPlayer->healthshowtime == 0) + { + g_CurrentPlayer->field_29B8 = (s32)(bondviewGetCurrentPlayerHealth() * 8.0f); + if (g_CurrentPlayer->field_29B8 >= 8) + { + g_CurrentPlayer->field_29B8 = 7; + } + } + + if (!g_CurrentPlayer->bonddead) + { + timerelated = &D_80036794[g_CurrentPlayer->field_29B8]; + unk_field14_2 = timerelated->unk0; + if ((g_CurrentPlayer->healthshowtime >= unk_field14_2) && (timerelated->unk4 >= g_CurrentPlayer->healthshowtime)) + { + g_CurrentPlayer->apparenthealth = g_CurrentPlayer->oldhealth; + g_CurrentPlayer->apparentarmour = g_CurrentPlayer->oldarmour; + g_CurrentPlayer->healthshowtime += g_ClockTimer; + return; + } + if ((g_CurrentPlayer->healthshowtime >= unk_field14_2) && (timerelated->unk8 >= g_CurrentPlayer->healthshowtime)) + { + g_CurrentPlayer->apparenthealth = g_CurrentPlayer->bondhealth; + g_CurrentPlayer->apparentarmour = g_CurrentPlayer->bondarmour; + g_CurrentPlayer->healthshowtime += g_ClockTimer; + return; + } + g_CurrentPlayer->healthshowtime = -1; + return; + } + g_CurrentPlayer->healthshowtime = -1; + } +} #endif #ifdef VERSION_JP +/* looks a lot like the EU version */ GLOBAL_ASM( .text glabel sub_GAME_7F083FC8 @@ -24719,6 +23409,136 @@ glabel sub_GAME_7F083FC8 #endif #ifdef VERSION_EU +#ifdef NONMATCHING +/* mostly regalloc failures */ +void sub_GAME_7F083FC8(void) +{ + f32 frac; + f32 unk_field10; + f32 unk_field14; + s32 unk_field14_2; + f32 dmg_time_diff; + f32 unk_field18; + f32 unk_field_diff; + bondstruct_unk_80036794 * timerelated; + bondstruct_unk_80036634 * unknown; + + // update damage showtime + if (g_CurrentPlayer->damageshowtime >= 0) + { + if (g_CurrentPlayer->damageshowtime == 0) + { + set_unset_ammo_on_screen_setting(8, 0); + set_unset_bitflags(0x10, 0); + hudmsgsSetOff(4); + sub_GAME_7F08A944(PLAYERFLAG_NOTIMER); + countdownTimerSetVisible(8, 0); + + g_CurrentPlayer->damagetype = (s32)(bondviewGetCurrentPlayerHealth() * 8.0f); + if (g_CurrentPlayer->damagetype >= 8) + { + g_CurrentPlayer->damagetype = 7; + } + if (g_CurrentPlayer->damagetype < 0) { + g_CurrentPlayer->damagetype = 0; + } + } + + if ((!g_CurrentPlayer->bonddead) && ((D_80036634[g_CurrentPlayer->damagetype].field_0x8 >= g_CurrentPlayer->damageshowtime) || (D_80036634[g_CurrentPlayer->damagetype].field_0x18 >= g_CurrentPlayer->damageshowtime))) + { + unknown = &D_80036634[g_CurrentPlayer->damagetype]; + unk_field10 = unknown->field_0x10; + if (g_CurrentPlayer->damageshowtime >= unk_field10) + { + unk_field18 = unknown->field_0x18; + if (unk_field18 >= g_CurrentPlayer->damageshowtime) + { + unk_field14 = unknown->field_0x14; + dmg_time_diff = g_CurrentPlayer->damageshowtime; + dmg_time_diff = dmg_time_diff - unk_field10; + unk_field_diff = unk_field18 - unk_field10; + unk_field18 = dmg_time_diff; + + if (unk_field18 < unk_field14) + { + frac = (unknown->field_0x1c * ((f32) dmg_time_diff)) / ((f32) unk_field14); + } + else + { + frac = (unknown->field_0x1c * ((f32)(unk_field_diff - unk_field18))) / ((f32)(unk_field_diff - unk_field14)); + } + + currentPlayerSetFadeColour(unknown->field_0x20, unknown->field_0x24, unknown->field_0x28, frac); + } + } + + if (g_CurrentPlayer->watch_animation_state == 0) + { + g_CurrentPlayer->damageshowtime += g_GlobalTimerDelta; + } + else + { + g_CurrentPlayer->damageshowtime += jpD_800484D0; + } + + } + else // (damage showtime is over) + { + g_CurrentPlayer->damageshowtime = -1; + currentPlayerSetFadeColour(0xFF, 0xFF, 0xFF, 0.0f); + if (!g_CurrentPlayer->bonddead) + { + set_unset_ammo_on_screen_setting(8, 1); + set_unset_bitflags(0x10, 1); + hudmsgsSetOn(4); + sub_GAME_7F08A928(4); + countdownTimerSetVisible(8, 1); + } + } + } + + // update health showtime + if (g_CurrentPlayer->healthshowtime >= 0) + { + if (g_CurrentPlayer->healthshowtime == 0) + { + g_CurrentPlayer->field_29B8 = (s32)(bondviewGetCurrentPlayerHealth() * 8.0f); + if (g_CurrentPlayer->field_29B8 >= 8) + { + g_CurrentPlayer->field_29B8 = 7; + } + if (g_CurrentPlayer->field_29B8 < 0) + { + g_CurrentPlayer->field_29B8 = 0; + } + } + + if (!g_CurrentPlayer->bonddead) + { + timerelated = &D_80036794[g_CurrentPlayer->field_29B8]; + unk_field14_2 = timerelated->unk0; + if ((g_CurrentPlayer->healthshowtime >= unk_field14_2) && (timerelated->unk4 >= g_CurrentPlayer->healthshowtime)) + { + g_CurrentPlayer->apparenthealth = g_CurrentPlayer->oldhealth; + g_CurrentPlayer->apparentarmour = g_CurrentPlayer->oldarmour; + g_CurrentPlayer->healthshowtime += g_GlobalTimerDelta; + return; + } + if ((g_CurrentPlayer->healthshowtime >= unk_field14_2) && (timerelated->unk8 >= g_CurrentPlayer->healthshowtime)) + { + g_CurrentPlayer->apparenthealth = g_CurrentPlayer->bondhealth; + g_CurrentPlayer->apparentarmour = g_CurrentPlayer->bondarmour; + g_CurrentPlayer->healthshowtime += g_GlobalTimerDelta; + return; + } + g_CurrentPlayer->healthshowtime = -1; + return; + } + g_CurrentPlayer->healthshowtime = -1; + } +} + +#else GLOBAL_ASM( .text glabel sub_GAME_7F083FC8 @@ -25013,8 +23833,6 @@ glabel sub_GAME_7F083FC8 /* 0B6E90 7F0844A0 00000000 */ nop ) #endif - - #endif @@ -25575,7 +24393,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) f32 stack_padding_10; struct ObjectRecord *sp138_tank_as_ObjectRecord; s32 i_2; - struct ModelNode_BoundingBoxRecord *sp130; + struct ModelRoData_BoundingBoxRecord *sp130; Mtxf spF0; struct coord3d spE4; s32 i_3; @@ -25706,14 +24524,14 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) sp358 = g_CurrentPlayer->speedtheta * g_GlobalTimerDelta * 0.017453292f * 3.5f; sp35C = g_TankOrientationAngle + sp358; - if (sp35C >= 6.2831855f) + if (sp35C >= M_TAU_F) { - sp35C -= 6.2831855f; + sp35C -= M_TAU_F; } if (sp35C < 0.0f) { - sp35C += 6.2831855f; + sp35C += M_TAU_F; } if (bondviewTankCollisionStatus( @@ -25836,35 +24654,35 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) sp354 = g_TankTurretOrientationAngleRad; g_TankTurretAngle += g_TankTurretTurn; - if (g_TankTurretAngle >= 6.2831855f) + if (g_TankTurretAngle >= M_TAU_F) { - g_TankTurretAngle -= 6.2831855f; + g_TankTurretAngle -= M_TAU_F; } if (g_TankTurretAngle < 0.0f) { - g_TankTurretAngle += 6.2831855f; + g_TankTurretAngle += M_TAU_F; } tank_tick_increment = (g_CurrentPlayer->speedtheta * 3.5f * 0.017453292f * 4.0f) + g_TankTurretAngle; if (tank_tick_increment < 0.0f) { - tank_tick_increment += 6.2831855f; + tank_tick_increment += M_TAU_F; } - if (tank_tick_increment >= 6.2831855f) + if (tank_tick_increment >= M_TAU_F) { - tank_tick_increment -= 6.2831855f; + tank_tick_increment -= M_TAU_F; } if ((tank_tick_increment - g_TankTurretOrientationAngleRad) >= 3.1415927f) { - tank_tick_increment -= 6.2831855f; + tank_tick_increment -= M_TAU_F; } else if ((tank_tick_increment - g_TankTurretOrientationAngleRad) < -3.1415927f) { - tank_tick_increment += 6.2831855f; + tank_tick_increment += M_TAU_F; } do @@ -25879,15 +24697,15 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) g_TankTurretOrientationAngleRad = D_80036478 * 0.07999998f; - if (g_TankTurretOrientationAngleRad >= 6.2831855f) + if (g_TankTurretOrientationAngleRad >= M_TAU_F) { - g_TankTurretOrientationAngleRad -= 6.2831855f; + g_TankTurretOrientationAngleRad -= M_TAU_F; D_80036478 = g_TankTurretOrientationAngleRad / 0.07999998f; } if (g_TankTurretOrientationAngleRad < 0.0f) { - g_TankTurretOrientationAngleRad += 6.2831855f; + g_TankTurretOrientationAngleRad += M_TAU_F; D_80036478 = g_TankTurretOrientationAngleRad / 0.07999998f; } @@ -25917,7 +24735,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) sp2F4.f[0] = flt_CODE_bss_800799A8.f[0] - sp2F4.f[0]; sp2F4.f[2] = flt_CODE_bss_800799A8.f[2] - sp2F4.f[2]; - matrix_4x4_set_rotation_around_y(6.2831855f - g_TankOrientationAngle, &sp2B4); + matrix_4x4_set_rotation_around_y(M_TAU_F - g_TankOrientationAngle, &sp2B4); matrix_scalar_multiply(temp_tank->model->scale, &sp2B4); matrix_4x4_rotate_vector_in_place(&sp2B4, &sp2F4); bondviewCalcUpdatePlayerCollision(&sp2F4, 1); @@ -25938,7 +24756,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) (ftemp3 * 4.0f )+ g_TankOrientationAngle + (ftemp2 * 4.0f) - ) * 360.0f / 6.2831855f; + ) * 360.0f / M_TAU_F; while (g_CurrentPlayer->vv_theta < 0.0f) { @@ -25999,7 +24817,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) if (ptr_playerstank != NULL) { tank_obj = ptr_playerstank->obj; - matrix_4x4_set_rotation_around_y(6.2831855f - g_TankOrientationAngle, &sp268); + matrix_4x4_set_rotation_around_y(M_TAU_F - g_TankOrientationAngle, &sp268); matrix_scalar_multiply(tank_obj->model->scale, &sp268); sp25C.f[0] = flt_CODE_bss_800799A8.f[0]; @@ -26011,7 +24829,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) sp25C.f[1] += tank_obj->runtime_pos.f[1]; sp25C.f[2] += tank_obj->runtime_pos.f[2]; - sp258 = ((g_TankOrientationAngle + g_TankTurretOrientationAngleRad) * 360.0f) / 6.2831855f; + sp258 = ((g_TankOrientationAngle + g_TankTurretOrientationAngleRad) * 360.0f) / M_TAU_F; sp254 = g_CurrentPlayer->vv_verta; if (sp254 < -20.0f) { @@ -26024,7 +24842,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) g_TankEnteringSitHeight = 1.0f; } - g_TankEnteringSitHeightRemain = (cosf(g_TankEnteringSitHeight * 6.2831855f * 0.5f) + 1.0f) * 0.5f; + g_TankEnteringSitHeightRemain = (cosf(g_TankEnteringSitHeight * M_TAU_F * 0.5f) + 1.0f) * 0.5f; // sp17C is unused extra assignment sp17C = g_CurrentPlayer->vv_verta = ( @@ -26205,8 +25023,8 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) bondviewMoveAnimationTick(0.0f, 0.0f, 0.0f); - sp3AC.f[0] += g_CurrentPlayer->speedforwards * sinf(6.2831855f - g_TankOrientationAngle) * g_GlobalTimerDelta; - sp3AC.f[2] += g_CurrentPlayer->speedforwards * cosf(6.2831855f - g_TankOrientationAngle) * g_GlobalTimerDelta; + sp3AC.f[0] += g_CurrentPlayer->speedforwards * sinf(M_TAU_F - g_TankOrientationAngle) * g_GlobalTimerDelta; + sp3AC.f[2] += g_CurrentPlayer->speedforwards * cosf(M_TAU_F - g_TankOrientationAngle) * g_GlobalTimerDelta; bondviewCalcUpdatePlayerCollision(&sp3AC, 1); @@ -26527,7 +25345,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) { sp140_tank_as_TankRecord = ((struct TankRecord *)ptr_playerstank->obj); sp138_tank_as_ObjectRecord = (struct ObjectRecord*)ptr_playerstank->obj; - sp130 = (struct ModelNode_BoundingBoxRecord *)((struct ModelNode *)sp138_tank_as_ObjectRecord->model->obj->Switches)->Child->Data; + sp130 = (struct ModelRoData_BoundingBoxRecord *)((struct ModelNode *)sp138_tank_as_ObjectRecord->model->obj->Switches)->Child->Data; sp140_tank_as_TankRecord->is_firing_tank = (getCurrentPlayerWeaponId(GUNRIGHT) == ITEM_TANKSHELLS) && get_hands_firing_status(GUNRIGHT); @@ -26536,7 +25354,7 @@ void MoveBond(s8 arg0, s8 arg1, u16 arg2, u16 arg3) sp140_tank_as_TankRecord->turret_orientation_angle = g_TankTurretOrientationAngleRad; sp140_tank_as_TankRecord->tank_orientation_angle = g_TankOrientationAngle; - matrix_4x4_set_rotation_around_y(6.2831855f - g_TankOrientationAngle, &spF0); + matrix_4x4_set_rotation_around_y(M_TAU_F - g_TankOrientationAngle, &spF0); matrix_scalar_multiply(sp138_tank_as_ObjectRecord->model->scale, &spF0); spE4.f[0] = -flt_CODE_bss_800799A8.f[0]; @@ -36294,7 +35112,7 @@ s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { if (*temp_a0 != 0) { // Node 1 - *extract_id_from_object_structure_microcode(arg0, *temp_a0, arg1->unk8, temp_a3) = (s32) ((u32) (g_CurrentPlayer->field_41C ^ 3) < 1U); + *modelGetNodeRwData(arg0, *temp_a0, arg1->unk8, temp_a3) = (s32) ((u32) (g_CurrentPlayer->field_41C ^ 3) < 1U); phi_a0 = (arg1->unk8 + sp1C); phi_a3 = sp1C; } @@ -36332,7 +35150,7 @@ s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { } } // Node 8 - *extract_id_from_object_structure_microcode(arg0, *(arg1->unk8 + ((arg2 + 1) * 4)), arg1->unk8, phi_a3) = (s32) phi_v1; + *modelGetNodeRwData(arg0, *(arg1->unk8 + ((arg2 + 1) * 4)), arg1->unk8, phi_a3) = (s32) phi_v1; phi_a0_2 = (arg1->unk8 + sp1C); phi_a2 = arg1->unk8; phi_v1_2 = arg2; @@ -36360,7 +35178,7 @@ s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { } } // Node 13 - *extract_id_from_object_structure_microcode(arg0, *(phi_a2 + ((phi_v1_2 + 2) * 4)), phi_a2, phi_a3_2) = (s32) phi_v1_3; + *modelGetNodeRwData(arg0, *(phi_a2 + ((phi_v1_2 + 2) * 4)), phi_a2, phi_a3_2) = (s32) phi_v1_3; phi_a0_3 = (arg1->unk8 + sp1C); phi_a2_2 = arg1->unk8; phi_v1_4 = arg2; @@ -36374,7 +35192,7 @@ s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { if (phi_a0_3->unkC != 0) { // Node 15 - *extract_id_from_object_structure_microcode(arg0, *(phi_a2_2 + ((phi_v1_4 + 3) * 4)), phi_a2_2, phi_a3_3) = (s32) ((u32) g_CurrentPlayer->field_41C < 1U); + *modelGetNodeRwData(arg0, *(phi_a2_2 + ((phi_v1_4 + 3) * 4)), phi_a2_2, phi_a3_3) = (s32) ((u32) g_CurrentPlayer->field_41C < 1U); phi_a0_4 = (arg1->unk8 + sp1C); phi_a2_3 = arg1->unk8; phi_v1_5 = arg2; @@ -36388,7 +35206,7 @@ s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { if (phi_a0_4->unk10 != 0) { // Node 17 - *extract_id_from_object_structure_microcode(arg0, *(phi_a2_3 + ((phi_v1_5 + 4) * 4)), phi_a2_3, phi_a3_4) = (s32) ((u32) (g_CurrentPlayer->field_41C ^ 2) < 1U); + *modelGetNodeRwData(arg0, *(phi_a2_3 + ((phi_v1_5 + 4) * 4)), phi_a2_3, phi_a3_4) = (s32) ((u32) (g_CurrentPlayer->field_41C ^ 2) < 1U); phi_a0_5 = (arg1->unk8 + sp1C); phi_a2_4 = arg1->unk8; phi_v1_6 = arg2; @@ -36400,7 +35218,7 @@ s32 seems_to_load_cuff_microcode(s32 arg0, void *arg1, s32 arg2) { if (phi_a0_5->unk14 != 0) { // Node 19 - temp_ret = extract_id_from_object_structure_microcode(arg0, *(phi_a2_4 + (temp_v0 * 4)), phi_a2_4, phi_a3_5); + temp_ret = modelGetNodeRwData(arg0, *(phi_a2_4 + (temp_v0 * 4)), phi_a2_4, phi_a3_5); *temp_ret = (s32) ((u32) (g_CurrentPlayer->field_41C ^ 4) < 1U); phi_return = temp_ret; } @@ -36427,7 +35245,7 @@ glabel seems_to_load_cuff_microcode /* 0BC778 7F087C48 50A00010 */ beql $a1, $zero, .L7F087C8C /* 0BC77C 7F087C4C 8C890004 */ lw $t1, 4($a0) /* 0BC780 7F087C50 8FA40048 */ lw $a0, 0x48($sp) -/* 0BC784 7F087C54 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC784 7F087C54 0FC1B1E7 */ jal modelGetNodeRwData /* 0BC788 7F087C58 AFA7001C */ sw $a3, 0x1c($sp) /* 0BC78C 7F087C5C 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) /* 0BC790 7F087C60 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) @@ -36448,7 +35266,7 @@ glabel seems_to_load_cuff_microcode /* 0BC7C8 7F087C98 00CA5821 */ addu $t3, $a2, $t2 /* 0BC7CC 7F087C9C 8D650000 */ lw $a1, ($t3) /* 0BC7D0 7F087CA0 AFA7001C */ sw $a3, 0x1c($sp) -/* 0BC7D4 7F087CA4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC7D4 7F087CA4 0FC1B1E7 */ jal modelGetNodeRwData /* 0BC7D8 7F087CA8 8FA40048 */ lw $a0, 0x48($sp) /* 0BC7DC 7F087CAC 3C0C8008 */ lui $t4, %hi(g_CurrentPlayer) /* 0BC7E0 7F087CB0 8D8CA0B0 */ lw $t4, %lo(g_CurrentPlayer)($t4) @@ -36487,7 +35305,7 @@ glabel seems_to_load_cuff_microcode /* 0BC85C 7F087D2C 00D8C821 */ addu $t9, $a2, $t8 /* 0BC860 7F087D30 8F250000 */ lw $a1, ($t9) /* 0BC864 7F087D34 AFA7001C */ sw $a3, 0x1c($sp) -/* 0BC868 7F087D38 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC868 7F087D38 0FC1B1E7 */ jal modelGetNodeRwData /* 0BC86C 7F087D3C 8FA40048 */ lw $a0, 0x48($sp) /* 0BC870 7F087D40 3C088008 */ lui $t0, %hi(g_CurrentPlayer) /* 0BC874 7F087D44 8D08A0B0 */ lw $t0, %lo(g_CurrentPlayer)($t0) @@ -36518,7 +35336,7 @@ glabel seems_to_load_cuff_microcode /* 0BC8D0 7F087DA0 00CC6821 */ addu $t5, $a2, $t4 /* 0BC8D4 7F087DA4 8DA50000 */ lw $a1, ($t5) /* 0BC8D8 7F087DA8 AFA7001C */ sw $a3, 0x1c($sp) -/* 0BC8DC 7F087DAC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC8DC 7F087DAC 0FC1B1E7 */ jal modelGetNodeRwData /* 0BC8E0 7F087DB0 8FA40048 */ lw $a0, 0x48($sp) /* 0BC8E4 7F087DB4 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) /* 0BC8E8 7F087DB8 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) @@ -36538,7 +35356,7 @@ glabel seems_to_load_cuff_microcode /* 0BC91C 7F087DEC 00C95021 */ addu $t2, $a2, $t1 /* 0BC920 7F087DF0 8D450000 */ lw $a1, ($t2) /* 0BC924 7F087DF4 AFA7001C */ sw $a3, 0x1c($sp) -/* 0BC928 7F087DF8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC928 7F087DF8 0FC1B1E7 */ jal modelGetNodeRwData /* 0BC92C 7F087DFC 8FA40048 */ lw $a0, 0x48($sp) /* 0BC930 7F087E00 3C0B8008 */ lui $t3, %hi(g_CurrentPlayer) /* 0BC934 7F087E04 8D6BA0B0 */ lw $t3, %lo(g_CurrentPlayer)($t3) @@ -36558,7 +35376,7 @@ glabel seems_to_load_cuff_microcode /* 0BC968 7F087E38 11E0000A */ beqz $t7, .L7F087E64 /* 0BC96C 7F087E3C 8FA40048 */ lw $a0, 0x48($sp) /* 0BC970 7F087E40 00D8C821 */ addu $t9, $a2, $t8 -/* 0BC974 7F087E44 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BC974 7F087E44 0FC1B1E7 */ jal modelGetNodeRwData /* 0BC978 7F087E48 8F250000 */ lw $a1, ($t9) /* 0BC97C 7F087E4C 3C088008 */ lui $t0, %hi(g_CurrentPlayer) /* 0BC980 7F087E50 8D08A0B0 */ lw $t0, %lo(g_CurrentPlayer)($t0) @@ -36634,7 +35452,7 @@ glabel sub_GAME_7F087E74 /* 0BCA3C 7F087F0C 8C4A0008 */ lw $t2, 8($v0) /* 0BCA40 7F087F10 8C84A0B0 */ lw $a0, %lo(g_CurrentPlayer)($a0) /* 0BCA44 7F087F14 8D45000C */ lw $a1, 0xc($t2) -/* 0BCA48 7F087F18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BCA48 7F087F18 0FC1B1E7 */ jal modelGetNodeRwData /* 0BCA4C 7F087F1C 24840230 */ addiu $a0, $a0, 0x230 /* 0BCA50 7F087F20 0FC2F5B8 */ jal dynAllocateMatrix /* 0BCA54 7F087F24 AFA20158 */ sw $v0, 0x158($sp) @@ -37155,7 +35973,7 @@ glabel sub_GAME_7F087E74 /* 0BD148 7F0885D8 8C4A0008 */ lw $t2, 8($v0) /* 0BD14C 7F0885DC 8C84A120 */ lw $a0, %lo(g_CurrentPlayer)($a0) /* 0BD150 7F0885E0 8D45000C */ lw $a1, 0xc($t2) -/* 0BD154 7F0885E4 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0BD154 7F0885E4 0FC1B363 */ jal modelGetNodeRwData /* 0BD158 7F0885E8 24840230 */ addiu $a0, $a0, 0x230 /* 0BD15C 7F0885EC 0FC2F8A4 */ jal dynAllocateMatrix /* 0BD160 7F0885F0 AFA20158 */ sw $v0, 0x158($sp) @@ -37678,7 +36496,7 @@ glabel sub_GAME_7F087E74 /* 0BAA5C 7F08806C 8C4A0008 */ lw $t2, 8($v0) /* 0BAA60 7F088070 8C848BC0 */ lw $a0, %lo(g_CurrentPlayer)($a0) /* 0BAA64 7F088074 8D45000C */ lw $a1, 0xc($t2) -/* 0BAA68 7F088078 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 0BAA68 7F088078 0FC1B3A3 */ jal modelGetNodeRwData /* 0BAA6C 7F08807C 24840230 */ addiu $a0, $a0, 0x230 /* 0BAA70 7F088080 0FC2F2A4 */ jal dynAllocateMatrix /* 0BAA74 7F088084 AFA20158 */ sw $v0, 0x158($sp) @@ -38644,11 +37462,11 @@ glabel mp_respawn_handler /* 0BD438 7F088908 8DE80004 */ lw $t0, 4($t7) /* 0BD43C 7F08890C ADC10000 */ sw $at, ($t6) /* 0BD440 7F088910 8DE10008 */ lw $at, 8($t7) -/* 0BD444 7F088914 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+8) +/* 0BD444 7F088914 3C108007 */ lui $s0, %hi(g_CurrentSetup+8) /* 0BD448 7F088918 ADC80004 */ sw $t0, 4($t6) /* 0BD44C 7F08891C ADC10008 */ sw $at, 8($t6) /* 0BD450 7F088920 0FC1E4FB */ jal init_player_BONDdata -/* 0BD454 7F088924 8E105D08 */ lw $s0, %lo(g_chraiCurrentSetup+8)($s0) +/* 0BD454 7F088924 8E105D08 */ lw $s0, %lo(g_CurrentSetup+8)($s0) /* 0BD458 7F088928 0FC1E62E */ jal bondviewPlayerSpawnRelated /* 0BD45C 7F08892C 00000000 */ nop /* 0BD460 7F088930 3C118008 */ lui $s1, %hi(g_CurrentPlayer) @@ -38943,11 +37761,11 @@ glabel mp_respawn_handler /* 0BB460 7F088A70 8DE80004 */ lw $t0, 4($t7) /* 0BB464 7F088A74 ADC10000 */ sw $at, ($t6) /* 0BB468 7F088A78 8DE10008 */ lw $at, 8($t7) -/* 0BB46C 7F088A7C 3C108006 */ lui $s0, %hi(g_chraiCurrentSetup+8) # $s0, 0x8006 +/* 0BB46C 7F088A7C 3C108006 */ lui $s0, %hi(g_CurrentSetup+8) # $s0, 0x8006 /* 0BB470 7F088A80 ADC80004 */ sw $t0, 4($t6) /* 0BB474 7F088A84 ADC10008 */ sw $at, 8($t6) /* 0BB478 7F088A88 0FC1E51B */ jal init_player_BONDdata -/* 0BB47C 7F088A8C 8E104C48 */ lw $s0, %lo(g_chraiCurrentSetup+8)($s0) +/* 0BB47C 7F088A8C 8E104C48 */ lw $s0, %lo(g_CurrentSetup+8)($s0) /* 0BB480 7F088A90 0FC1E64E */ jal bondviewPlayerSpawnRelated /* 0BB484 7F088A94 00000000 */ nop /* 0BB488 7F088A98 3C118007 */ lui $s1, %hi(g_CurrentPlayer) # $s1, 0x8007 @@ -39794,7 +38612,7 @@ glabel maybe_mp_interface /* 0BE014 7F0894E4 240D0001 */ li $t5, 1 /* 0BE018 7F0894E8 ADCD0424 */ sw $t5, 0x424($t6) .L7F0894EC: -/* 0BE01C 7F0894EC 0FC0719C */ jal sub_GAME_7F01C670 +/* 0BE01C 7F0894EC 0FC0719C */ jal gameplayBloodOverlayDL /* 0BE020 7F0894F0 8FA40058 */ lw $a0, 0x58($sp) /* 0BE024 7F0894F4 3C038008 */ lui $v1, %hi(g_CurrentPlayer) /* 0BE028 7F0894F8 8C63A0B0 */ lw $v1, %lo(g_CurrentPlayer)($v1) @@ -40124,7 +38942,7 @@ glabel maybe_mp_interface /* 0BC03C 7F08964C 240D0001 */ li $t5, 1 /* 0BC040 7F089650 ADCD0424 */ sw $t5, 0x424($t6) .L7F089654: -/* 0BC044 7F089654 0FC07134 */ jal sub_GAME_7F01C670 +/* 0BC044 7F089654 0FC07134 */ jal gameplayBloodOverlayDL /* 0BC048 7F089658 8FA40058 */ lw $a0, 0x58($sp) /* 0BC04C 7F08965C 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 /* 0BC050 7F089660 8C638BC0 */ lw $v1, %lo(g_CurrentPlayer)($v1) @@ -40276,52 +39094,20 @@ Gfx *write_stan_tiles_in_yellow(Gfx *gdl) } +void sub_GAME_7F089718(f32 arg0) +{ + f32 scalar; + struct collision434* col; + scalar = D_800364D0 / arg0; + col = &g_CurrentPlayer->field_488; + col->collision_position.x *= scalar; + col->collision_position.z *= scalar; - -#ifdef NONMATCHING -void *sub_GAME_7F089718(f32 arg0) { - f32 temp_f0; - void *temp_v0; - - // Node 0 - temp_f0 = (D_800364D0 / arg0); - temp_v0 = (g_CurrentPlayer + 0x488); - temp_v0->unk4 = (f32) (g_CurrentPlayer->field_48C * temp_f0); - temp_v0->unkC = (f32) (g_CurrentPlayer->field_494 * temp_f0); D_800364D0 = arg0; - D_800364D4 = (f32) (1.0f / arg0); - return temp_v0; + D_800364D4 = 1.0f / arg0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F089718 -/* 0BE248 7F089718 3C038003 */ lui $v1, %hi(D_800364D0) -/* 0BE24C 7F08971C 246364D0 */ addiu $v1, %lo(D_800364D0) # addiu $v1, $v1, 0x64d0 -/* 0BE250 7F089720 C4640000 */ lwc1 $f4, ($v1) -/* 0BE254 7F089724 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BE258 7F089728 44819000 */ mtc1 $at, $f18 -/* 0BE25C 7F08972C 460C2003 */ div.s $f0, $f4, $f12 -/* 0BE260 7F089730 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0BE264 7F089734 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0BE268 7F089738 3C018003 */ lui $at, %hi(D_800364D4) -/* 0BE26C 7F08973C C446048C */ lwc1 $f6, 0x48c($v0) -/* 0BE270 7F089740 C44A0494 */ lwc1 $f10, 0x494($v0) -/* 0BE274 7F089744 24420488 */ addiu $v0, $v0, 0x488 -/* 0BE278 7F089748 460C9103 */ div.s $f4, $f18, $f12 -/* 0BE27C 7F08974C 46003202 */ mul.s $f8, $f6, $f0 -/* 0BE280 7F089750 00000000 */ nop -/* 0BE284 7F089754 46005402 */ mul.s $f16, $f10, $f0 -/* 0BE288 7F089758 E4480004 */ swc1 $f8, 4($v0) -/* 0BE28C 7F08975C E450000C */ swc1 $f16, 0xc($v0) -/* 0BE290 7F089760 E46C0000 */ swc1 $f12, ($v1) -/* 0BE294 7F089764 03E00008 */ jr $ra -/* 0BE298 7F089768 E42464D4 */ swc1 $f4, %lo(D_800364D4)($at) -) -#endif - void sub_GAME_7F08976C(f32 param_1) { @@ -41881,8 +40667,6 @@ void hudmsgsSetOff(s32 flags) } - - #ifdef VERSION_US void setFontTables(s32 arg0, s32 arg1) { @@ -41892,322 +40676,69 @@ void setFontTables(s32 arg0, s32 arg1) #endif - - -#ifdef NONMATCHING -void hudmsgBottomShow(s8 *string) +#ifdef BUGFIX_R1 +void hudmsgBottomShow(char *string, s32 arg1, s32 arg2) { - s32 temp_v0; - char *cc; - - if (getPlayerCount() == 1 && display_statusbar < 5) + s32 abs_index; + s32 index; + if (getPlayerCount() == 1) { - temp_v0 = ((status_bar_text_buffer_index + display_statusbar) % 5); - - cc = &stringbuffer_lowerleft[temp_v0 * 0x65]; - strncpy(cc, string, 0x64U); - stringbuffer_lowerleft[0x64 + (temp_v0 * 0x65)] = '\0'; - - display_statusbar += 1; + if (display_statusbar < 5) + { + abs_index = status_bar_text_buffer_index + display_statusbar; + index = abs_index % 5; + abs_index = index; + strncpy(stringbuffer_lowerleft[abs_index], string, (BONDVIEW_HUD_MSG_BOTTOM_BUFFER_LENGTH-1)); + stringbuffer_lowerleft[abs_index][(BONDVIEW_HUD_MSG_BOTTOM_BUFFER_LENGTH-1)] = 0; + dword_CODE_bss_jp80079CEC[abs_index] = arg1; + dword_CODE_bss_jp80079Cd8[abs_index] = arg2; + display_statusbar++; + } } else { - temp_v0 = get_cur_playernum(); + index = get_cur_playernum(); + strncpy(stringbuffer_lowerleft[index], string, (BONDVIEW_HUD_MSG_BOTTOM_BUFFER_LENGTH-1)); + stringbuffer_lowerleft[index][(BONDVIEW_HUD_MSG_BOTTOM_BUFFER_LENGTH-1)] = 0; + dword_CODE_bss_jp80079CEC[index] = arg1; + dword_CODE_bss_jp80079Cd8[index] = arg2; +#if defined(VERSION_EU) + g_CurrentPlayer->bondmesscnt = 0x64; +#elif defined(VERSION_JP) + g_CurrentPlayer->bondmesscnt = 0x78; +#endif + } +} - cc = &stringbuffer_lowerleft[temp_v0 * 0x65]; - strncpy(cc, string, 0x64U); - stringbuffer_lowerleft[0x64 + (temp_v0 * 0x65)] = '\0'; +#else +void hudmsgBottomShow(char *string) +{ + s32 abs_index; + s32 index; + if (getPlayerCount() == 1) + { + if (display_statusbar < 5) + { + abs_index = status_bar_text_buffer_index + display_statusbar; + index = abs_index % 5; + strncpy(stringbuffer_lowerleft[index], string, 0x64U); + display_statusbar++; + stringbuffer_lowerleft[index][0x64] = 0; + } + } + else + { + index = get_cur_playernum(); + strncpy(stringbuffer_lowerleft[index], string, 0x64U); + stringbuffer_lowerleft[index][0x64] = 0; g_CurrentPlayer->bondmesscnt = 0x78; } } -#else -#ifdef VERSION_US -GLOBAL_ASM( -.text -glabel hudmsgBottomShow -/* 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(stringbuffer_lowerleft) -/* 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(stringbuffer_lowerleft) # 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(stringbuffer_lowerleft) -/* 0BEFB0 7F08A480 256B9A28 */ addiu $t3, %lo(stringbuffer_lowerleft) # 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(g_CurrentPlayer) -/* 0BEFD4 7F08A4A4 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($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(stringbuffer_lowerleft+100) -/* 0BEFF0 7F08A4C0 01AC6821 */ addu $t5, $t5, $t4 -/* 0BEFF4 7F08A4C4 002D0821 */ addu $at, $at, $t5 -/* 0BEFF8 7F08A4C8 A0209A8C */ sb $zero, %lo(stringbuffer_lowerleft+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 - -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel hudmsgBottomShow -/* 0BF63C 7F08AACC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0BF640 7F08AAD0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0BF644 7F08AAD4 AFA40028 */ sw $a0, 0x28($sp) -/* 0BF648 7F08AAD8 AFA5002C */ sw $a1, 0x2c($sp) -/* 0BF64C 7F08AADC 0FC26C01 */ jal getPlayerCount -/* 0BF650 7F08AAE0 AFA60030 */ sw $a2, 0x30($sp) -/* 0BF654 7F08AAE4 24010001 */ li $at, 1 -/* 0BF658 7F08AAE8 1441002B */ bne $v0, $at, .L7F08AB98 -/* 0BF65C 7F08AAEC 3C088003 */ lui $t0, %hi(display_statusbar) # $t0, 0x8003 -/* 0BF660 7F08AAF0 250868DC */ addiu $t0, %lo(display_statusbar) # addiu $t0, $t0, 0x68dc -/* 0BF664 7F08AAF4 8D020000 */ lw $v0, ($t0) -/* 0BF668 7F08AAF8 3C198008 */ lui $t9, %hi(stringbuffer_lowerleft) # $t9, 0x8008 -/* 0BF66C 7F08AAFC 3C0E8003 */ lui $t6, %hi(status_bar_text_buffer_index) # $t6, 0x8003 -/* 0BF670 7F08AB00 28410005 */ slti $at, $v0, 5 -/* 0BF674 7F08AB04 1020004A */ beqz $at, .L7F08AC30 -/* 0BF678 7F08AB08 27399A68 */ addiu $t9, %lo(stringbuffer_lowerleft) # addiu $t9, $t9, -0x6598 -/* 0BF67C 7F08AB0C 8DCE68D8 */ lw $t6, %lo(status_bar_text_buffer_index)($t6) -/* 0BF680 7F08AB10 24010005 */ li $at, 5 -/* 0BF684 7F08AB14 8FA50028 */ lw $a1, 0x28($sp) -/* 0BF688 7F08AB18 01C23821 */ addu $a3, $t6, $v0 -/* 0BF68C 7F08AB1C 00E1001A */ div $zero, $a3, $at -/* 0BF690 7F08AB20 00007810 */ mfhi $t7 -/* 0BF694 7F08AB24 000FC080 */ sll $t8, $t7, 2 -/* 0BF698 7F08AB28 030FC023 */ subu $t8, $t8, $t7 -/* 0BF69C 7F08AB2C 0018C0C0 */ sll $t8, $t8, 3 -/* 0BF6A0 7F08AB30 030FC021 */ addu $t8, $t8, $t7 -/* 0BF6A4 7F08AB34 0018C080 */ sll $t8, $t8, 2 -/* 0BF6A8 7F08AB38 030FC021 */ addu $t8, $t8, $t7 -/* 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 strncpy -/* 0BF6BC 7F08AB4C 24060064 */ li $a2, 100 -/* 0BF6C0 7F08AB50 8FA70024 */ lw $a3, 0x24($sp) -/* 0BF6C4 7F08AB54 8FA40018 */ lw $a0, 0x18($sp) -/* 0BF6C8 7F08AB58 8FA9002C */ lw $t1, 0x2c($sp) -/* 0BF6CC 7F08AB5C 3C018008 */ lui $at, %hi(dword_CODE_bss_jp80079CEC) -/* 0BF6D0 7F08AB60 00071880 */ sll $v1, $a3, 2 -/* 0BF6D4 7F08AB64 00230821 */ addu $at, $at, $v1 -/* 0BF6D8 7F08AB68 A0800064 */ sb $zero, 0x64($a0) -/* 0BF6DC 7F08AB6C 8FAA0030 */ lw $t2, 0x30($sp) -/* 0BF6E0 7F08AB70 AC299C80 */ sw $t1, %lo(dword_CODE_bss_jp80079CEC)($at) -/* 0BF6E4 7F08AB74 3C018008 */ lui $at, %hi(dword_CODE_bss_jp80079Cd8) -/* 0BF6E8 7F08AB78 3C088003 */ lui $t0, %hi(display_statusbar) # $t0, 0x8003 -/* 0BF6EC 7F08AB7C 00230821 */ addu $at, $at, $v1 -/* 0BF6F0 7F08AB80 250868DC */ addiu $t0, %lo(display_statusbar) # addiu $t0, $t0, 0x68dc -/* 0BF6F4 7F08AB84 AC2A9C68 */ sw $t2, %lo(dword_CODE_bss_jp80079Cd8)($at) -/* 0BF6F8 7F08AB88 8D0B0000 */ lw $t3, ($t0) -/* 0BF6FC 7F08AB8C 256C0001 */ addiu $t4, $t3, 1 -/* 0BF700 7F08AB90 10000027 */ b .L7F08AC30 -/* 0BF704 7F08AB94 AD0C0000 */ sw $t4, ($t0) -.L7F08AB98: -/* 0BF708 7F08AB98 0FC26F3C */ jal get_cur_playernum -/* 0BF70C 7F08AB9C 00000000 */ nop -/* 0BF710 7F08ABA0 00026880 */ sll $t5, $v0, 2 -/* 0BF714 7F08ABA4 01A26823 */ subu $t5, $t5, $v0 -/* 0BF718 7F08ABA8 000D68C0 */ sll $t5, $t5, 3 -/* 0BF71C 7F08ABAC 01A26821 */ addu $t5, $t5, $v0 -/* 0BF720 7F08ABB0 000D6880 */ sll $t5, $t5, 2 -/* 0BF724 7F08ABB4 3C0E8008 */ lui $t6, %hi(stringbuffer_lowerleft) # $t6, 0x8008 -/* 0BF728 7F08ABB8 25CE9A68 */ addiu $t6, %lo(stringbuffer_lowerleft) # addiu $t6, $t6, -0x6598 -/* 0BF72C 7F08ABBC 01A26821 */ addu $t5, $t5, $v0 -/* 0BF730 7F08ABC0 01AE2021 */ addu $a0, $t5, $t6 -/* 0BF734 7F08ABC4 8FA50028 */ lw $a1, 0x28($sp) -/* 0BF738 7F08ABC8 24060064 */ li $a2, 100 -/* 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(stringbuffer_lowerleft+0x64) #stringbuffer_lowerleft -/* 0BF74C 7F08ABDC 8FB8002C */ lw $t8, 0x2c($sp) -/* 0BF750 7F08ABE0 00077880 */ sll $t7, $a3, 2 -/* 0BF754 7F08ABE4 01E77823 */ subu $t7, $t7, $a3 -/* 0BF758 7F08ABE8 000F78C0 */ sll $t7, $t7, 3 -/* 0BF75C 7F08ABEC 01E77821 */ addu $t7, $t7, $a3 -/* 0BF760 7F08ABF0 000F7880 */ sll $t7, $t7, 2 -/* 0BF764 7F08ABF4 01E77821 */ addu $t7, $t7, $a3 -/* 0BF768 7F08ABF8 002F0821 */ addu $at, $at, $t7 -/* 0BF76C 7F08ABFC A0209ACC */ sb $zero, %lo(stringbuffer_lowerleft+0x64)($at) -/* 0BF770 7F08AC00 3C018008 */ lui $at, %hi(dword_CODE_bss_jp80079CEC) -/* 0BF774 7F08AC04 00071880 */ sll $v1, $a3, 2 -/* 0BF778 7F08AC08 00230821 */ addu $at, $at, $v1 -/* 0BF77C 7F08AC0C 8FB90030 */ lw $t9, 0x30($sp) -/* 0BF780 7F08AC10 3C0A8008 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8008 -/* 0BF784 7F08AC14 AC389C80 */ sw $t8, %lo(dword_CODE_bss_jp80079CEC)($at) -/* 0BF788 7F08AC18 8D4AA120 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 0BF78C 7F08AC1C 3C018008 */ lui $at, %hi(dword_CODE_bss_jp80079Cd8) -/* 0BF790 7F08AC20 00230821 */ addu $at, $at, $v1 -/* 0BF794 7F08AC24 24090078 */ li $t1, 120 -/* 0BF798 7F08AC28 AC399C68 */ sw $t9, %lo(dword_CODE_bss_jp80079Cd8)($at) -/* 0BF79C 7F08AC2C AD4911DC */ sw $t1, 0x11dc($t2) -.L7F08AC30: -/* 0BF7A0 7F08AC30 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BF7A4 7F08AC34 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0BF7A8 7F08AC38 03E00008 */ jr $ra -/* 0BF7AC 7F08AC3C 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel hudmsgBottomShow -/* 0BCF50 7F08A560 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0BCF54 7F08A564 AFBF0014 */ sw $ra, 0x14($sp) -/* 0BCF58 7F08A568 AFA40028 */ sw $a0, 0x28($sp) -/* 0BCF5C 7F08A56C AFA5002C */ sw $a1, 0x2c($sp) -/* 0BCF60 7F08A570 0FC26669 */ jal getPlayerCount -/* 0BCF64 7F08A574 AFA60030 */ sw $a2, 0x30($sp) -/* 0BCF68 7F08A578 24010001 */ li $at, 1 -/* 0BCF6C 7F08A57C 1441002B */ bne $v0, $at, .L7F08A62C -/* 0BCF70 7F08A580 3C088003 */ lui $t0, %hi(display_statusbar) # $t0, 0x8003 -/* 0BCF74 7F08A584 25081DEC */ addiu $t0, %lo(display_statusbar) # addiu $t0, $t0, 0x1dec -/* 0BCF78 7F08A588 8D020000 */ lw $v0, ($t0) -/* 0BCF7C 7F08A58C 3C198007 */ lui $t9, %hi(stringbuffer_lowerleft) # $t9, 0x8007 -/* 0BCF80 7F08A590 3C0E8003 */ lui $t6, %hi(status_bar_text_buffer_index) # $t6, 0x8003 -/* 0BCF84 7F08A594 28410005 */ slti $at, $v0, 5 -/* 0BCF88 7F08A598 1020004A */ beqz $at, .L7F08A6C4 -/* 0BCF8C 7F08A59C 27398508 */ addiu $t9, %lo(stringbuffer_lowerleft) # addiu $t9, $t9, -0x7af8 -/* 0BCF90 7F08A5A0 8DCE1DE8 */ lw $t6, %lo(status_bar_text_buffer_index)($t6) -/* 0BCF94 7F08A5A4 24010005 */ li $at, 5 -/* 0BCF98 7F08A5A8 8FA50028 */ lw $a1, 0x28($sp) -/* 0BCF9C 7F08A5AC 01C23821 */ addu $a3, $t6, $v0 -/* 0BCFA0 7F08A5B0 00E1001A */ div $zero, $a3, $at -/* 0BCFA4 7F08A5B4 00007810 */ mfhi $t7 -/* 0BCFA8 7F08A5B8 000FC080 */ sll $t8, $t7, 2 -/* 0BCFAC 7F08A5BC 030FC023 */ subu $t8, $t8, $t7 -/* 0BCFB0 7F08A5C0 0018C0C0 */ sll $t8, $t8, 3 -/* 0BCFB4 7F08A5C4 030FC021 */ addu $t8, $t8, $t7 -/* 0BCFB8 7F08A5C8 0018C080 */ sll $t8, $t8, 2 -/* 0BCFBC 7F08A5CC 030FC021 */ addu $t8, $t8, $t7 -/* 0BCFC0 7F08A5D0 03192021 */ addu $a0, $t8, $t9 -/* 0BCFC4 7F08A5D4 AFA40018 */ sw $a0, 0x18($sp) -/* 0BCFC8 7F08A5D8 AFAF0024 */ sw $t7, 0x24($sp) -/* 0BCFCC 7F08A5DC 0C002700 */ jal strncpy -/* 0BCFD0 7F08A5E0 24060064 */ li $a2, 100 -/* 0BCFD4 7F08A5E4 8FA70024 */ lw $a3, 0x24($sp) -/* 0BCFD8 7F08A5E8 8FA40018 */ lw $a0, 0x18($sp) -/* 0BCFDC 7F08A5EC 8FA9002C */ lw $t1, 0x2c($sp) -/* 0BCFE0 7F08A5F0 3C018007 */ lui $at, %hi(dword_CODE_bss_jp80079CEC) -/* 0BCFE4 7F08A5F4 00071880 */ sll $v1, $a3, 2 -/* 0BCFE8 7F08A5F8 00230821 */ addu $at, $at, $v1 -/* 0BCFEC 7F08A5FC A0800064 */ sb $zero, 0x64($a0) -/* 0BCFF0 7F08A600 8FAA0030 */ lw $t2, 0x30($sp) -/* 0BCFF4 7F08A604 AC298720 */ sw $t1, %lo(dword_CODE_bss_jp80079CEC)($at) -/* 0BCFF8 7F08A608 3C018007 */ lui $at, %hi(dword_CODE_bss_jp80079Cd8) -/* 0BCFFC 7F08A60C 3C088003 */ lui $t0, %hi(display_statusbar) # $t0, 0x8003 -/* 0BD000 7F08A610 00230821 */ addu $at, $at, $v1 -/* 0BD004 7F08A614 25081DEC */ addiu $t0, %lo(display_statusbar) # addiu $t0, $t0, 0x1dec -/* 0BD008 7F08A618 AC2A8708 */ sw $t2, %lo(dword_CODE_bss_jp80079Cd8)($at) -/* 0BD00C 7F08A61C 8D0B0000 */ lw $t3, ($t0) -/* 0BD010 7F08A620 256C0001 */ addiu $t4, $t3, 1 -/* 0BD014 7F08A624 10000027 */ b .L7F08A6C4 -/* 0BD018 7F08A628 AD0C0000 */ sw $t4, ($t0) -.L7F08A62C: -/* 0BD01C 7F08A62C 0FC269A4 */ jal get_cur_playernum -/* 0BD020 7F08A630 00000000 */ nop -/* 0BD024 7F08A634 00026880 */ sll $t5, $v0, 2 -/* 0BD028 7F08A638 01A26823 */ subu $t5, $t5, $v0 -/* 0BD02C 7F08A63C 000D68C0 */ sll $t5, $t5, 3 -/* 0BD030 7F08A640 01A26821 */ addu $t5, $t5, $v0 -/* 0BD034 7F08A644 000D6880 */ sll $t5, $t5, 2 -/* 0BD038 7F08A648 3C0E8007 */ lui $t6, %hi(stringbuffer_lowerleft) # $t6, 0x8007 -/* 0BD03C 7F08A64C 25CE8508 */ addiu $t6, %lo(stringbuffer_lowerleft) # addiu $t6, $t6, -0x7af8 -/* 0BD040 7F08A650 01A26821 */ addu $t5, $t5, $v0 -/* 0BD044 7F08A654 01AE2021 */ addu $a0, $t5, $t6 -/* 0BD048 7F08A658 8FA50028 */ lw $a1, 0x28($sp) -/* 0BD04C 7F08A65C 24060064 */ li $a2, 100 -/* 0BD050 7F08A660 0C002700 */ jal strncpy -/* 0BD054 7F08A664 AFA20020 */ sw $v0, 0x20($sp) -/* 0BD058 7F08A668 8FA70020 */ lw $a3, 0x20($sp) -/* 0BD05C 7F08A66C 3C018007 */ lui $at, %hi(stringbuffer_lowerleft+0x64) #stringbuffer_lowerleft -/* 0BD060 7F08A670 8FB8002C */ lw $t8, 0x2c($sp) -/* 0BD064 7F08A674 00077880 */ sll $t7, $a3, 2 -/* 0BD068 7F08A678 01E77823 */ subu $t7, $t7, $a3 -/* 0BD06C 7F08A67C 000F78C0 */ sll $t7, $t7, 3 -/* 0BD070 7F08A680 01E77821 */ addu $t7, $t7, $a3 -/* 0BD074 7F08A684 000F7880 */ sll $t7, $t7, 2 -/* 0BD078 7F08A688 01E77821 */ addu $t7, $t7, $a3 -/* 0BD07C 7F08A68C 002F0821 */ addu $at, $at, $t7 -/* 0BD080 7F08A690 A020856C */ sb $zero, %lo(stringbuffer_lowerleft+0x64)($at) -/* 0BD084 7F08A694 3C018007 */ lui $at, %hi(dword_CODE_bss_jp80079CEC) -/* 0BD088 7F08A698 00071880 */ sll $v1, $a3, 2 -/* 0BD08C 7F08A69C 00230821 */ addu $at, $at, $v1 -/* 0BD090 7F08A6A0 8FB90030 */ lw $t9, 0x30($sp) -/* 0BD094 7F08A6A4 3C0A8007 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8007 -/* 0BD098 7F08A6A8 AC388720 */ sw $t8, %lo(dword_CODE_bss_jp80079CEC)($at) -/* 0BD09C 7F08A6AC 8D4A8BC0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 0BD0A0 7F08A6B0 3C018007 */ lui $at, %hi(dword_CODE_bss_jp80079Cd8) -/* 0BD0A4 7F08A6B4 00230821 */ addu $at, $at, $v1 -/* 0BD0A8 7F08A6B8 24090064 */ li $t1, 100 -/* 0BD0AC 7F08A6BC AC398708 */ sw $t9, %lo(dword_CODE_bss_jp80079Cd8)($at) -/* 0BD0B0 7F08A6C0 AD4911D4 */ sw $t1, 0x11d4($t2) -.L7F08A6C4: -/* 0BD0B4 7F08A6C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BD0B8 7F08A6C8 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0BD0BC 7F08A6CC 03E00008 */ jr $ra -/* 0BD0C0 7F08A6D0 00000000 */ nop -) -#endif #endif + #if defined(BUGFIX_R1) void jp_hudmsgBottomShow(char *string) { @@ -42255,683 +40786,88 @@ void bondviewIntroCameraTextTick(void) } } +Gfx* sub_GAME_7F08A5FC(Gfx* arg0) +{ + s32 var_v1; + s32 view_left; + s32 view_vert; + s32 view_horiz; + s32 view_top; + s32 view_top_offset; + s32 view_left_offset; + if ((g_CurrentPlayer->hudmessoff == 0) && (g_CurrentPlayer->bondmesscnt >= 0) && (g_CurrentPlayer->mpmenuon == 0)) + { + var_v1 = 0; + if (getPlayerCount() == 1) + { + if ((u8) *stringbuffer_lowerleft[status_bar_text_buffer_index] != 0) + { + var_v1 = 1; + } + } + else if (g_CurrentPlayer->bondmesscnt >= 0) + { + status_bar_text_buffer_index = get_cur_playernum(); + var_v1 = 1; + } + if (var_v1 != 0) + { + arg0 = microcode_constructor(arg0); + view_left_offset = 0; + view_top_offset = 0; + sub_GAME_7F0AE98C(&view_top_offset, &view_left_offset ,(u8* ) stringbuffer_lowerleft[status_bar_text_buffer_index], BONDVIEW_2ND_FONTTABLE(status_bar_text_buffer_index), BONDVIEW_1ST_FONTTABLE(status_bar_text_buffer_index), 0); + if (getPlayerCount() < 3) + { + view_left = viGetViewLeft() + 0x1E; + } + else if (get_cur_playernum() & 1) + { + view_left = viGetViewLeft() + 0xA; + } + else + { + view_left = viGetViewLeft() + 0x1E; + } -#ifdef NONMATCHING -void sub_GAME_7F08A5FC(void) { + view_horiz = view_left + view_left_offset; + if (getPlayerCount() < 3) + { + if ((get_ammo_type_for_weapon(getCurrentPlayerWeaponId(GUNLEFT)) == 0) && (is_clock_drawn_onscreen() == 0)) + { + view_top = (viGetViewTop() + viGetViewHeight()) - BONDVIEW_VIEW_TOP_OFFSET_1; + } + else + { + view_top = (viGetViewTop() + viGetViewHeight()) - BONDVIEW_VIEW_TOP_OFFSET_2; + } +#if !defined(VERSION_EU) + if (get_cur_playernum() == 1) + { + view_top -= 8; + } +#endif + } + else + { + view_top = viGetViewTop() +#if defined(VERSION_JP) || defined(VERSION_EU) + + (((j_text_trigger != 0) && (get_cur_playernum() < 2)) ? 8 : 0) +#endif + + BONDVIEW_VIEW_TOP_OFFSET_3; + } + + view_vert = view_top - view_top_offset; + arg0 = draw_blackbox_to_screen(arg0, (s32) &view_left, (s32) &view_vert, (s32) &view_horiz, (s32) &view_top); + arg0 = combiner_bayer_lod_perspective(jp_text_write_stuff(arg0, &view_left, &view_vert, stringbuffer_lowerleft[status_bar_text_buffer_index], BONDVIEW_2ND_FONTTABLE(status_bar_text_buffer_index), BONDVIEW_1ST_FONTTABLE(status_bar_text_buffer_index), -1, 0x646464FFU, (s16) (s32) viGetX(), (s16) viGetY(), 0, 0)); + } + } + + return arg0; } -#else -#ifdef VERSION_US -GLOBAL_ASM( -.text -glabel sub_GAME_7F08A5FC -/* 0BF12C 7F08A5FC 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 0BF130 7F08A600 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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(stringbuffer_lowerleft) -/* 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(stringbuffer_lowerleft)($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(g_CurrentPlayer) -/* 0BF1B8 7F08A688 8D4AA0B0 */ lw $t2, %lo(g_CurrentPlayer)($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(stringbuffer_lowerleft) -/* 0BF214 7F08A6E4 25CE9A28 */ addiu $t6, %lo(stringbuffer_lowerleft) # 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 getCurrentPlayerWeaponId -/* 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(stringbuffer_lowerleft) -/* 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(stringbuffer_lowerleft) # 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 - -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel sub_GAME_7F08A5FC -/* 0BF8F4 7F08AD84 3C028008 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8008 -/* 0BF8F8 7F08AD88 8C42A120 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0BF8FC 7F08AD8C 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0BF900 7F08AD90 AFBF0034 */ sw $ra, 0x34($sp) -/* 0BF904 7F08AD94 AFA40060 */ sw $a0, 0x60($sp) -/* 0BF908 7F08AD98 8C4E11D8 */ lw $t6, 0x11d8($v0) -/* 0BF90C 7F08AD9C 55C000CB */ bnezl $t6, .Ljp7F08B0CC -/* 0BF910 7F08ADA0 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BF914 7F08ADA4 8C4F11DC */ lw $t7, 0x11dc($v0) -/* 0BF918 7F08ADA8 05E200C8 */ bltzl $t7, .Ljp7F08B0CC -/* 0BF91C 7F08ADAC 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BF920 7F08ADB0 8C5829C4 */ lw $t8, 0x29c4($v0) -/* 0BF924 7F08ADB4 570000C5 */ bnezl $t8, .Ljp7F08B0CC -/* 0BF928 7F08ADB8 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BF92C 7F08ADBC 0FC26C01 */ jal getPlayerCount -/* 0BF930 7F08ADC0 AFA0005C */ sw $zero, 0x5c($sp) -/* 0BF934 7F08ADC4 24010001 */ li $at, 1 -/* 0BF938 7F08ADC8 14410010 */ bne $v0, $at, .Ljp7F08AE0C -/* 0BF93C 7F08ADCC 8FA3005C */ lw $v1, 0x5c($sp) -/* 0BF940 7F08ADD0 3C198003 */ lui $t9, %hi(status_bar_text_buffer_index) # $t9, 0x8003 -/* 0BF944 7F08ADD4 8F3968D8 */ lw $t9, %lo(status_bar_text_buffer_index)($t9) -/* 0BF948 7F08ADD8 3C0A8008 */ lui $t2, %hi(stringbuffer_lowerleft) -/* 0BF94C 7F08ADDC 00194880 */ sll $t1, $t9, 2 -/* 0BF950 7F08ADE0 01394823 */ subu $t1, $t1, $t9 -/* 0BF954 7F08ADE4 000948C0 */ sll $t1, $t1, 3 -/* 0BF958 7F08ADE8 01394821 */ addu $t1, $t1, $t9 -/* 0BF95C 7F08ADEC 00094880 */ sll $t1, $t1, 2 -/* 0BF960 7F08ADF0 01394821 */ addu $t1, $t1, $t9 -/* 0BF964 7F08ADF4 01495021 */ addu $t2, $t2, $t1 -/* 0BF968 7F08ADF8 914A9A68 */ lbu $t2, %lo(stringbuffer_lowerleft)($t2) -/* 0BF96C 7F08ADFC 1140000D */ beqz $t2, .Ljp7F08AE34 -/* 0BF970 7F08AE00 00000000 */ nop -/* 0BF974 7F08AE04 1000000B */ b .Ljp7F08AE34 -/* 0BF978 7F08AE08 24030001 */ li $v1, 1 -.Ljp7F08AE0C: -/* 0BF97C 7F08AE0C 3C0B8008 */ lui $t3, %hi(g_CurrentPlayer) # $t3, 0x8008 -/* 0BF980 7F08AE10 8D6BA120 */ lw $t3, %lo(g_CurrentPlayer)($t3) -/* 0BF984 7F08AE14 8D6C11DC */ lw $t4, 0x11dc($t3) -/* 0BF988 7F08AE18 05800006 */ bltz $t4, .Ljp7F08AE34 -/* 0BF98C 7F08AE1C 00000000 */ nop -/* 0BF990 7F08AE20 0FC26F3C */ jal get_cur_playernum -/* 0BF994 7F08AE24 00000000 */ nop -/* 0BF998 7F08AE28 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) # $at, 0x8003 -/* 0BF99C 7F08AE2C AC2268D8 */ sw $v0, %lo(status_bar_text_buffer_index)($at) -/* 0BF9A0 7F08AE30 24030001 */ li $v1, 1 -.Ljp7F08AE34: -/* 0BF9A4 7F08AE34 506000A5 */ beql $v1, $zero, .Ljp7F08B0CC -/* 0BF9A8 7F08AE38 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BF9AC 7F08AE3C 0FC2B652 */ jal microcode_constructor -/* 0BF9B0 7F08AE40 8FA40060 */ lw $a0, 0x60($sp) -/* 0BF9B4 7F08AE44 3C038003 */ lui $v1, %hi(status_bar_text_buffer_index) # $v1, 0x8003 -/* 0BF9B8 7F08AE48 8C6368D8 */ lw $v1, %lo(status_bar_text_buffer_index)($v1) -/* 0BF9BC 7F08AE4C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_jp80079Cd8) -/* 0BF9C0 7F08AE50 3C0E8008 */ lui $t6, %hi(stringbuffer_lowerleft) # $t6, 0x8008 -/* 0BF9C4 7F08AE54 00036880 */ sll $t5, $v1, 2 -/* 0BF9C8 7F08AE58 01A36823 */ subu $t5, $t5, $v1 -/* 0BF9CC 7F08AE5C 000D68C0 */ sll $t5, $t5, 3 -/* 0BF9D0 7F08AE60 00034080 */ sll $t0, $v1, 2 -/* 0BF9D4 7F08AE64 01E87821 */ addu $t7, $t7, $t0 -/* 0BF9D8 7F08AE68 01A36821 */ addu $t5, $t5, $v1 -/* 0BF9DC 7F08AE6C 8DEF9C68 */ lw $t7, %lo(dword_CODE_bss_jp80079Cd8) ($t7) -/* 0BF9E0 7F08AE70 000D6880 */ sll $t5, $t5, 2 -/* 0BF9E4 7F08AE74 3C078008 */ lui $a3, %hi(dword_CODE_bss_jp80079Cd8+0x18) -/* 0BF9E8 7F08AE78 00E83821 */ addu $a3, $a3, $t0 -/* 0BF9EC 7F08AE7C 25CE9A68 */ addiu $t6, %lo(stringbuffer_lowerleft) # addiu $t6, $t6, -0x6598 -/* 0BF9F0 7F08AE80 01A36821 */ addu $t5, $t5, $v1 -/* 0BF9F4 7F08AE84 AFA20060 */ sw $v0, 0x60($sp) -/* 0BF9F8 7F08AE88 AFA00044 */ sw $zero, 0x44($sp) -/* 0BF9FC 7F08AE8C AFA00048 */ sw $zero, 0x48($sp) -/* 0BFA00 7F08AE90 01AE3021 */ addu $a2, $t5, $t6 -/* 0BFA04 7F08AE94 8CE79C80 */ lw $a3, %lo(dword_CODE_bss_jp80079Cd8+0x18)($a3) -/* 0BFA08 7F08AE98 27A40048 */ addiu $a0, $sp, 0x48 -/* 0BFA0C 7F08AE9C 27A50044 */ addiu $a1, $sp, 0x44 -/* 0BFA10 7F08AEA0 AFA00014 */ sw $zero, 0x14($sp) -/* 0BFA14 7F08AEA4 0FC2BD4F */ jal sub_GAME_7F0AE98C -/* 0BFA18 7F08AEA8 AFAF0010 */ sw $t7, 0x10($sp) -/* 0BFA1C 7F08AEAC 0FC26C01 */ jal getPlayerCount -/* 0BFA20 7F08AEB0 00000000 */ nop -/* 0BFA24 7F08AEB4 28410003 */ slti $at, $v0, 3 -/* 0BFA28 7F08AEB8 10200005 */ beqz $at, .Ljp7F08AED0 -/* 0BFA2C 7F08AEBC 00000000 */ nop -/* 0BFA30 7F08AEC0 0C001145 */ jal viGetViewLeft -/* 0BFA34 7F08AEC4 00000000 */ nop -/* 0BFA38 7F08AEC8 1000000D */ b .Ljp7F08AF00 -/* 0BFA3C 7F08AECC 2443001E */ addiu $v1, $v0, 0x1e -.Ljp7F08AED0: -/* 0BFA40 7F08AED0 0FC26F3C */ jal get_cur_playernum -/* 0BFA44 7F08AED4 00000000 */ nop -/* 0BFA48 7F08AED8 30580001 */ andi $t8, $v0, 1 -/* 0BFA4C 7F08AEDC 13000005 */ beqz $t8, .Ljp7F08AEF4 -/* 0BFA50 7F08AEE0 00000000 */ nop -/* 0BFA54 7F08AEE4 0C001145 */ jal viGetViewLeft -/* 0BFA58 7F08AEE8 00000000 */ nop -/* 0BFA5C 7F08AEEC 10000004 */ b .Ljp7F08AF00 -/* 0BFA60 7F08AEF0 2443000A */ addiu $v1, $v0, 0xa -.Ljp7F08AEF4: -/* 0BFA64 7F08AEF4 0C001145 */ jal viGetViewLeft -/* 0BFA68 7F08AEF8 00000000 */ nop -/* 0BFA6C 7F08AEFC 2443001E */ addiu $v1, $v0, 0x1e -.Ljp7F08AF00: -/* 0BFA70 7F08AF00 8FB90044 */ lw $t9, 0x44($sp) -/* 0BFA74 7F08AF04 AFA30058 */ sw $v1, 0x58($sp) -/* 0BFA78 7F08AF08 00794821 */ addu $t1, $v1, $t9 -/* 0BFA7C 7F08AF0C 0FC26C01 */ jal getPlayerCount -/* 0BFA80 7F08AF10 AFA90050 */ sw $t1, 0x50($sp) -/* 0BFA84 7F08AF14 28410003 */ slti $at, $v0, 3 -/* 0BFA88 7F08AF18 10200024 */ beqz $at, .Ljp7F08AFAC -/* 0BFA8C 7F08AF1C 00000000 */ nop -/* 0BFA90 7F08AF20 0FC177BC */ jal getCurrentPlayerWeaponId -/* 0BFA94 7F08AF24 24040001 */ li $a0, 1 -/* 0BFA98 7F08AF28 0FC1A686 */ jal get_ammo_type_for_weapon -/* 0BFA9C 7F08AF2C 00402025 */ move $a0, $v0 -/* 0BFAA0 7F08AF30 1440000E */ bnez $v0, .Ljp7F08AF6C -/* 0BFAA4 7F08AF34 00000000 */ nop -/* 0BFAA8 7F08AF38 0FC159A6 */ jal is_clock_drawn_onscreen -/* 0BFAAC 7F08AF3C 00000000 */ nop -/* 0BFAB0 7F08AF40 1440000A */ bnez $v0, .Ljp7F08AF6C -/* 0BFAB4 7F08AF44 00000000 */ nop -/* 0BFAB8 7F08AF48 0C001149 */ jal viGetViewTop -/* 0BFABC 7F08AF4C 00000000 */ nop -/* 0BFAC0 7F08AF50 0C00112B */ jal viGetViewHeight -/* 0BFAC4 7F08AF54 A7A2003E */ sh $v0, 0x3e($sp) -/* 0BFAC8 7F08AF58 87A3003E */ lh $v1, 0x3e($sp) -/* 0BFACC 7F08AF5C 00435821 */ addu $t3, $v0, $v1 -/* 0BFAD0 7F08AF60 256CFFF4 */ addiu $t4, $t3, -0xc -/* 0BFAD4 7F08AF64 10000009 */ b .Ljp7F08AF8C -/* 0BFAD8 7F08AF68 AFAC004C */ sw $t4, 0x4c($sp) -.Ljp7F08AF6C: -/* 0BFADC 7F08AF6C 0C001149 */ jal viGetViewTop -/* 0BFAE0 7F08AF70 00000000 */ nop -/* 0BFAE4 7F08AF74 0C00112B */ jal viGetViewHeight -/* 0BFAE8 7F08AF78 A7A2003E */ sh $v0, 0x3e($sp) -/* 0BFAEC 7F08AF7C 87A3003E */ lh $v1, 0x3e($sp) -/* 0BFAF0 7F08AF80 00437021 */ addu $t6, $v0, $v1 -/* 0BFAF4 7F08AF84 25CFFFD8 */ addiu $t7, $t6, -0x28 -/* 0BFAF8 7F08AF88 AFAF004C */ sw $t7, 0x4c($sp) -.Ljp7F08AF8C: -/* 0BFAFC 7F08AF8C 0FC26F3C */ jal get_cur_playernum -/* 0BFB00 7F08AF90 00000000 */ nop -/* 0BFB04 7F08AF94 24010001 */ li $at, 1 -/* 0BFB08 7F08AF98 14410017 */ bne $v0, $at, .Ljp7F08AFF8 -/* 0BFB0C 7F08AF9C 8FB8004C */ lw $t8, 0x4c($sp) -/* 0BFB10 7F08AFA0 2719FFF8 */ addiu $t9, $t8, -8 -/* 0BFB14 7F08AFA4 10000014 */ b .Ljp7F08AFF8 -/* 0BFB18 7F08AFA8 AFB9004C */ sw $t9, 0x4c($sp) -.Ljp7F08AFAC: -/* 0BFB1C 7F08AFAC 0C001149 */ jal viGetViewTop -/* 0BFB20 7F08AFB0 00000000 */ nop -/* 0BFB24 7F08AFB4 3C0A8005 */ lui $t2, %hi(j_text_trigger) # $t2, 0x8005 -/* 0BFB28 7F08AFB8 8D4A8500 */ lw $t2, %lo(j_text_trigger)($t2) -/* 0BFB2C 7F08AFBC 00021C00 */ sll $v1, $v0, 0x10 -/* 0BFB30 7F08AFC0 00034C03 */ sra $t1, $v1, 0x10 -/* 0BFB34 7F08AFC4 11400008 */ beqz $t2, .Ljp7F08AFE8 -/* 0BFB38 7F08AFC8 01201825 */ move $v1, $t1 -/* 0BFB3C 7F08AFCC 0FC26F3C */ jal get_cur_playernum -/* 0BFB40 7F08AFD0 A7A9003E */ sh $t1, 0x3e($sp) -/* 0BFB44 7F08AFD4 28410002 */ slti $at, $v0, 2 -/* 0BFB48 7F08AFD8 10200003 */ beqz $at, .Ljp7F08AFE8 -/* 0BFB4C 7F08AFDC 87A3003E */ lh $v1, 0x3e($sp) -/* 0BFB50 7F08AFE0 10000002 */ b .Ljp7F08AFEC -/* 0BFB54 7F08AFE4 24020008 */ li $v0, 8 -.Ljp7F08AFE8: -/* 0BFB58 7F08AFE8 00001025 */ move $v0, $zero -.Ljp7F08AFEC: -/* 0BFB5C 7F08AFEC 00435821 */ addu $t3, $v0, $v1 -/* 0BFB60 7F08AFF0 256C0010 */ addiu $t4, $t3, 0x10 -/* 0BFB64 7F08AFF4 AFAC004C */ sw $t4, 0x4c($sp) -.Ljp7F08AFF8: -/* 0BFB68 7F08AFF8 8FAD004C */ lw $t5, 0x4c($sp) -/* 0BFB6C 7F08AFFC 8FAE0048 */ lw $t6, 0x48($sp) -/* 0BFB70 7F08B000 27B8004C */ addiu $t8, $sp, 0x4c -/* 0BFB74 7F08B004 AFB80010 */ sw $t8, 0x10($sp) -/* 0BFB78 7F08B008 01AE7823 */ subu $t7, $t5, $t6 -/* 0BFB7C 7F08B00C AFAF0054 */ sw $t7, 0x54($sp) -/* 0BFB80 7F08B010 8FA40060 */ lw $a0, 0x60($sp) -/* 0BFB84 7F08B014 27A50058 */ addiu $a1, $sp, 0x58 -/* 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 viGetX -/* 0BFB98 7F08B028 AFA20060 */ sw $v0, 0x60($sp) -/* 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) -/* 0BFBAC 7F08B03C 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_jp80079Cd8+0x18) -/* 0BFBB0 7F08B040 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_jp80079Cd8) -/* 0BFBB4 7F08B044 0003C880 */ sll $t9, $v1, 2 -/* 0BFBB8 7F08B048 0323C823 */ subu $t9, $t9, $v1 -/* 0BFBBC 7F08B04C 00034080 */ sll $t0, $v1, 2 -/* 0BFBC0 7F08B050 0019C8C0 */ sll $t9, $t9, 3 -/* 0BFBC4 7F08B054 01485021 */ addu $t2, $t2, $t0 -/* 0BFBC8 7F08B058 01685821 */ addu $t3, $t3, $t0 -/* 0BFBCC 7F08B05C 0323C821 */ addu $t9, $t9, $v1 -/* 0BFBD0 7F08B060 8D6B9C68 */ lw $t3, %lo(dword_CODE_bss_jp80079Cd8) ($t3) -/* 0BFBD4 7F08B064 8D4A9C80 */ lw $t2, %lo(dword_CODE_bss_jp80079Cd8+0x18)($t2) -/* 0BFBD8 7F08B068 87AE003C */ lh $t6, 0x3c($sp) -/* 0BFBDC 7F08B06C 0019C880 */ sll $t9, $t9, 2 -/* 0BFBE0 7F08B070 3C098008 */ lui $t1, %hi(stringbuffer_lowerleft) # $t1, 0x8008 -/* 0BFBE4 7F08B074 3C0D6464 */ lui $t5, (0x646464FF >> 16) # lui $t5, 0x6464 -/* 0BFBE8 7F08B078 35AD64FF */ ori $t5, (0x646464FF & 0xFFFF) # ori $t5, $t5, 0x64ff -/* 0BFBEC 7F08B07C 25299A68 */ addiu $t1, %lo(stringbuffer_lowerleft) # addiu $t1, $t1, -0x6598 -/* 0BFBF0 7F08B080 240CFFFF */ li $t4, -1 -/* 0BFBF4 7F08B084 0323C821 */ addu $t9, $t9, $v1 -/* 0BFBF8 7F08B088 03293821 */ addu $a3, $t9, $t1 -/* 0BFBFC 7F08B08C AFAC0018 */ sw $t4, 0x18($sp) -/* 0BFC00 7F08B090 AFAD001C */ sw $t5, 0x1c($sp) -/* 0BFC04 7F08B094 8FA40060 */ lw $a0, 0x60($sp) -/* 0BFC08 7F08B098 27A50058 */ addiu $a1, $sp, 0x58 -/* 0BFC0C 7F08B09C 27A60054 */ addiu $a2, $sp, 0x54 -/* 0BFC10 7F08B0A0 AFA20024 */ sw $v0, 0x24($sp) -/* 0BFC14 7F08B0A4 AFA00028 */ sw $zero, 0x28($sp) -/* 0BFC18 7F08B0A8 AFA0002C */ sw $zero, 0x2c($sp) -/* 0BFC1C 7F08B0AC AFAB0014 */ sw $t3, 0x14($sp) -/* 0BFC20 7F08B0B0 AFAA0010 */ sw $t2, 0x10($sp) -/* 0BFC24 7F08B0B4 0FC2BCA7 */ jal jp_text_write_stuff -/* 0BFC28 7F08B0B8 AFAE0020 */ sw $t6, 0x20($sp) -/* 0BFC2C 7F08B0BC 0FC2B6A8 */ jal combiner_bayer_lod_perspective -/* 0BFC30 7F08B0C0 00402025 */ move $a0, $v0 -/* 0BFC34 7F08B0C4 AFA20060 */ sw $v0, 0x60($sp) -/* 0BFC38 7F08B0C8 8FBF0034 */ lw $ra, 0x34($sp) -.Ljp7F08B0CC: -/* 0BFC3C 7F08B0CC 8FA20060 */ lw $v0, 0x60($sp) -/* 0BFC40 7F08B0D0 27BD0060 */ addiu $sp, $sp, 0x60 -/* 0BFC44 7F08B0D4 03E00008 */ jr $ra -/* 0BFC48 7F08B0D8 00000000 */ nop -) -#endif - -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel sub_GAME_7F08A5FC -/* 0BD208 7F08A818 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 0BD20C 7F08A81C 8C428BC0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 0BD210 7F08A820 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 0BD214 7F08A824 AFBF0034 */ sw $ra, 0x34($sp) -/* 0BD218 7F08A828 AFA40060 */ sw $a0, 0x60($sp) -/* 0BD21C 7F08A82C 8C4E11D0 */ lw $t6, 0x11d0($v0) -/* 0BD220 7F08A830 55C000C1 */ bnezl $t6, .L7F08AB38 -/* 0BD224 7F08A834 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BD228 7F08A838 8C4F11D4 */ lw $t7, 0x11d4($v0) -/* 0BD22C 7F08A83C 05E200BE */ bltzl $t7, .L7F08AB38 -/* 0BD230 7F08A840 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BD234 7F08A844 8C5829BC */ lw $t8, 0x29bc($v0) -/* 0BD238 7F08A848 570000BB */ bnezl $t8, .L7F08AB38 -/* 0BD23C 7F08A84C 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BD240 7F08A850 0FC26669 */ jal getPlayerCount -/* 0BD244 7F08A854 AFA0005C */ sw $zero, 0x5c($sp) -/* 0BD248 7F08A858 24010001 */ li $at, 1 -/* 0BD24C 7F08A85C 14410010 */ bne $v0, $at, .L7F08A8A0 -/* 0BD250 7F08A860 8FA3005C */ lw $v1, 0x5c($sp) -/* 0BD254 7F08A864 3C198003 */ lui $t9, %hi(status_bar_text_buffer_index) # $t9, 0x8003 -/* 0BD258 7F08A868 8F391DE8 */ lw $t9, %lo(status_bar_text_buffer_index)($t9) -/* 0BD25C 7F08A86C 3C0A8007 */ lui $t2, %hi(stringbuffer_lowerleft) -/* 0BD260 7F08A870 00194880 */ sll $t1, $t9, 2 -/* 0BD264 7F08A874 01394823 */ subu $t1, $t1, $t9 -/* 0BD268 7F08A878 000948C0 */ sll $t1, $t1, 3 -/* 0BD26C 7F08A87C 01394821 */ addu $t1, $t1, $t9 -/* 0BD270 7F08A880 00094880 */ sll $t1, $t1, 2 -/* 0BD274 7F08A884 01394821 */ addu $t1, $t1, $t9 -/* 0BD278 7F08A888 01495021 */ addu $t2, $t2, $t1 -/* 0BD27C 7F08A88C 914A8508 */ lbu $t2, %lo(stringbuffer_lowerleft)($t2) -/* 0BD280 7F08A890 1140000D */ beqz $t2, .L7F08A8C8 -/* 0BD284 7F08A894 00000000 */ nop -/* 0BD288 7F08A898 1000000B */ b .L7F08A8C8 -/* 0BD28C 7F08A89C 24030001 */ li $v1, 1 -.L7F08A8A0: -/* 0BD290 7F08A8A0 3C0B8007 */ lui $t3, %hi(g_CurrentPlayer) # $t3, 0x8007 -/* 0BD294 7F08A8A4 8D6B8BC0 */ lw $t3, %lo(g_CurrentPlayer)($t3) -/* 0BD298 7F08A8A8 8D6C11D4 */ lw $t4, 0x11d4($t3) -/* 0BD29C 7F08A8AC 05800006 */ bltz $t4, .L7F08A8C8 -/* 0BD2A0 7F08A8B0 00000000 */ nop -/* 0BD2A4 7F08A8B4 0FC269A4 */ jal get_cur_playernum -/* 0BD2A8 7F08A8B8 00000000 */ nop -/* 0BD2AC 7F08A8BC 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) # $at, 0x8003 -/* 0BD2B0 7F08A8C0 AC221DE8 */ sw $v0, %lo(status_bar_text_buffer_index)($at) -/* 0BD2B4 7F08A8C4 24030001 */ li $v1, 1 -.L7F08A8C8: -/* 0BD2B8 7F08A8C8 5060009B */ beql $v1, $zero, .L7F08AB38 -/* 0BD2BC 7F08A8CC 8FBF0034 */ lw $ra, 0x34($sp) -/* 0BD2C0 7F08A8D0 0FC2B016 */ jal microcode_constructor -/* 0BD2C4 7F08A8D4 8FA40060 */ lw $a0, 0x60($sp) -/* 0BD2C8 7F08A8D8 3C038003 */ lui $v1, %hi(status_bar_text_buffer_index) # $v1, 0x8003 -/* 0BD2CC 7F08A8DC 8C631DE8 */ lw $v1, %lo(status_bar_text_buffer_index)($v1) -/* 0BD2D0 7F08A8E0 3C0F8007 */ lui $t7, 0x8007 -/* 0BD2D4 7F08A8E4 3C0E8007 */ lui $t6, %hi(stringbuffer_lowerleft) # $t6, 0x8007 -/* 0BD2D8 7F08A8E8 00036880 */ sll $t5, $v1, 2 -/* 0BD2DC 7F08A8EC 01A36823 */ subu $t5, $t5, $v1 -/* 0BD2E0 7F08A8F0 000D68C0 */ sll $t5, $t5, 3 -/* 0BD2E4 7F08A8F4 00034080 */ sll $t0, $v1, 2 -/* 0BD2E8 7F08A8F8 01E87821 */ addu $t7, $t7, $t0 -/* 0BD2EC 7F08A8FC 01A36821 */ addu $t5, $t5, $v1 -/* 0BD2F0 7F08A900 8DEF8708 */ lw $t7, -0x78f8($t7) -/* 0BD2F4 7F08A904 000D6880 */ sll $t5, $t5, 2 -/* 0BD2F8 7F08A908 3C078007 */ lui $a3, 0x8007 -/* 0BD2FC 7F08A90C 00E83821 */ addu $a3, $a3, $t0 -/* 0BD300 7F08A910 25CE8508 */ addiu $t6, %lo(stringbuffer_lowerleft) # addiu $t6, $t6, -0x7af8 -/* 0BD304 7F08A914 01A36821 */ addu $t5, $t5, $v1 -/* 0BD308 7F08A918 AFA20060 */ sw $v0, 0x60($sp) -/* 0BD30C 7F08A91C AFA00044 */ sw $zero, 0x44($sp) -/* 0BD310 7F08A920 AFA00048 */ sw $zero, 0x48($sp) -/* 0BD314 7F08A924 01AE3021 */ addu $a2, $t5, $t6 -/* 0BD318 7F08A928 8CE78720 */ lw $a3, -0x78e0($a3) -/* 0BD31C 7F08A92C 27A40048 */ addiu $a0, $sp, 0x48 -/* 0BD320 7F08A930 27A50044 */ addiu $a1, $sp, 0x44 -/* 0BD324 7F08A934 AFA00014 */ sw $zero, 0x14($sp) -/* 0BD328 7F08A938 0FC2B713 */ jal sub_GAME_7F0AE98C -/* 0BD32C 7F08A93C AFAF0010 */ sw $t7, 0x10($sp) -/* 0BD330 7F08A940 0FC26669 */ jal getPlayerCount -/* 0BD334 7F08A944 00000000 */ nop -/* 0BD338 7F08A948 28410003 */ slti $at, $v0, 3 -/* 0BD33C 7F08A94C 10200005 */ beqz $at, .L7F08A964 -/* 0BD340 7F08A950 00000000 */ nop -/* 0BD344 7F08A954 0C000FD9 */ jal viGetViewLeft -/* 0BD348 7F08A958 00000000 */ nop -/* 0BD34C 7F08A95C 1000000D */ b .L7F08A994 -/* 0BD350 7F08A960 2443001E */ addiu $v1, $v0, 0x1e -.L7F08A964: -/* 0BD354 7F08A964 0FC269A4 */ jal get_cur_playernum -/* 0BD358 7F08A968 00000000 */ nop -/* 0BD35C 7F08A96C 30580001 */ andi $t8, $v0, 1 -/* 0BD360 7F08A970 13000005 */ beqz $t8, .L7F08A988 -/* 0BD364 7F08A974 00000000 */ nop -/* 0BD368 7F08A978 0C000FD9 */ jal viGetViewLeft -/* 0BD36C 7F08A97C 00000000 */ nop -/* 0BD370 7F08A980 10000004 */ b .L7F08A994 -/* 0BD374 7F08A984 2443000A */ addiu $v1, $v0, 0xa -.L7F08A988: -/* 0BD378 7F08A988 0C000FD9 */ jal viGetViewLeft -/* 0BD37C 7F08A98C 00000000 */ nop -/* 0BD380 7F08A990 2443001E */ addiu $v1, $v0, 0x1e -.L7F08A994: -/* 0BD384 7F08A994 8FB90044 */ lw $t9, 0x44($sp) -/* 0BD388 7F08A998 AFA30058 */ sw $v1, 0x58($sp) -/* 0BD38C 7F08A99C 00794821 */ addu $t1, $v1, $t9 -/* 0BD390 7F08A9A0 0FC26669 */ jal getPlayerCount -/* 0BD394 7F08A9A4 AFA90050 */ sw $t1, 0x50($sp) -/* 0BD398 7F08A9A8 28410003 */ slti $at, $v0, 3 -/* 0BD39C 7F08A9AC 1020001B */ beqz $at, .L7F08AA1C -/* 0BD3A0 7F08A9B0 00000000 */ nop -/* 0BD3A4 7F08A9B4 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 0BD3A8 7F08A9B8 24040001 */ li $a0, 1 -/* 0BD3AC 7F08A9BC 0FC1A6F0 */ jal get_ammo_type_for_weapon -/* 0BD3B0 7F08A9C0 00402025 */ move $a0, $v0 -/* 0BD3B4 7F08A9C4 1440000D */ bnez $v0, .L7F08A9FC -/* 0BD3B8 7F08A9C8 00000000 */ nop -/* 0BD3BC 7F08A9CC 0FC1591F */ jal is_clock_drawn_onscreen -/* 0BD3C0 7F08A9D0 00000000 */ nop -/* 0BD3C4 7F08A9D4 14400009 */ bnez $v0, .L7F08A9FC -/* 0BD3C8 7F08A9D8 00000000 */ nop -/* 0BD3CC 7F08A9DC 0C000FDD */ jal viGetViewTop -/* 0BD3D0 7F08A9E0 00000000 */ nop -/* 0BD3D4 7F08A9E4 0C000FBF */ jal viGetViewHeight -/* 0BD3D8 7F08A9E8 A7A2003E */ sh $v0, 0x3e($sp) -/* 0BD3DC 7F08A9EC 87A3003E */ lh $v1, 0x3e($sp) -/* 0BD3E0 7F08A9F0 00434021 */ addu $t0, $v0, $v1 -/* 0BD3E4 7F08A9F4 1000001B */ b .L7F08AA64 -/* 0BD3E8 7F08A9F8 2508FFEA */ addiu $t0, $t0, -0x16 -.L7F08A9FC: -/* 0BD3EC 7F08A9FC 0C000FDD */ jal viGetViewTop -/* 0BD3F0 7F08AA00 00000000 */ nop -/* 0BD3F4 7F08AA04 0C000FBF */ jal viGetViewHeight -/* 0BD3F8 7F08AA08 A7A2003E */ sh $v0, 0x3e($sp) -/* 0BD3FC 7F08AA0C 87A3003E */ lh $v1, 0x3e($sp) -/* 0BD400 7F08AA10 00434021 */ addu $t0, $v0, $v1 -/* 0BD404 7F08AA14 10000013 */ b .L7F08AA64 -/* 0BD408 7F08AA18 2508FFCE */ addiu $t0, $t0, -0x32 -.L7F08AA1C: -/* 0BD40C 7F08AA1C 0C000FDD */ jal viGetViewTop -/* 0BD410 7F08AA20 00000000 */ nop -/* 0BD414 7F08AA24 3C0D8004 */ lui $t5, %hi(j_text_trigger) # $t5, 0x8004 -/* 0BD418 7F08AA28 8DAD1150 */ lw $t5, %lo(j_text_trigger)($t5) -/* 0BD41C 7F08AA2C 00021C00 */ sll $v1, $v0, 0x10 -/* 0BD420 7F08AA30 00036403 */ sra $t4, $v1, 0x10 -/* 0BD424 7F08AA34 11A00008 */ beqz $t5, .L7F08AA58 -/* 0BD428 7F08AA38 01801825 */ move $v1, $t4 -/* 0BD42C 7F08AA3C 0FC269A4 */ jal get_cur_playernum -/* 0BD430 7F08AA40 A7AC003E */ sh $t4, 0x3e($sp) -/* 0BD434 7F08AA44 28410002 */ slti $at, $v0, 2 -/* 0BD438 7F08AA48 10200003 */ beqz $at, .L7F08AA58 -/* 0BD43C 7F08AA4C 87A3003E */ lh $v1, 0x3e($sp) -/* 0BD440 7F08AA50 10000002 */ b .L7F08AA5C -/* 0BD444 7F08AA54 24020008 */ li $v0, 8 -.L7F08AA58: -/* 0BD448 7F08AA58 00001025 */ move $v0, $zero -.L7F08AA5C: -/* 0BD44C 7F08AA5C 00434021 */ addu $t0, $v0, $v1 -/* 0BD450 7F08AA60 25080014 */ addiu $t0, $t0, 0x14 -.L7F08AA64: -/* 0BD454 7F08AA64 8FAE0048 */ lw $t6, 0x48($sp) -/* 0BD458 7F08AA68 27B8004C */ addiu $t8, $sp, 0x4c -/* 0BD45C 7F08AA6C AFB80010 */ sw $t8, 0x10($sp) -/* 0BD460 7F08AA70 010E7823 */ subu $t7, $t0, $t6 -/* 0BD464 7F08AA74 AFAF0054 */ sw $t7, 0x54($sp) -/* 0BD468 7F08AA78 8FA40060 */ lw $a0, 0x60($sp) -/* 0BD46C 7F08AA7C 27A50058 */ addiu $a1, $sp, 0x58 -/* 0BD470 7F08AA80 27A60054 */ addiu $a2, $sp, 0x54 -/* 0BD474 7F08AA84 27A70050 */ addiu $a3, $sp, 0x50 -/* 0BD478 7F08AA88 0FC2B083 */ jal draw_blackbox_to_screen -/* 0BD47C 7F08AA8C AFA8004C */ sw $t0, 0x4c($sp) -/* 0BD480 7F08AA90 0C000F9B */ jal viGetX -/* 0BD484 7F08AA94 AFA20060 */ sw $v0, 0x60($sp) -/* 0BD488 7F08AA98 0C000F9F */ jal viGetY -/* 0BD48C 7F08AA9C A7A2003C */ sh $v0, 0x3c($sp) -/* 0BD490 7F08AAA0 3C038003 */ lui $v1, %hi(status_bar_text_buffer_index) # $v1, 0x8003 -/* 0BD494 7F08AAA4 8C631DE8 */ lw $v1, %lo(status_bar_text_buffer_index)($v1) -/* 0BD498 7F08AAA8 3C0A8007 */ lui $t2, 0x8007 -/* 0BD49C 7F08AAAC 3C0B8007 */ lui $t3, 0x8007 -/* 0BD4A0 7F08AAB0 0003C880 */ sll $t9, $v1, 2 -/* 0BD4A4 7F08AAB4 0323C823 */ subu $t9, $t9, $v1 -/* 0BD4A8 7F08AAB8 00034080 */ sll $t0, $v1, 2 -/* 0BD4AC 7F08AABC 0019C8C0 */ sll $t9, $t9, 3 -/* 0BD4B0 7F08AAC0 01485021 */ addu $t2, $t2, $t0 -/* 0BD4B4 7F08AAC4 01685821 */ addu $t3, $t3, $t0 -/* 0BD4B8 7F08AAC8 0323C821 */ addu $t9, $t9, $v1 -/* 0BD4BC 7F08AACC 8D6B8708 */ lw $t3, -0x78f8($t3) -/* 0BD4C0 7F08AAD0 8D4A8720 */ lw $t2, -0x78e0($t2) -/* 0BD4C4 7F08AAD4 87AE003C */ lh $t6, 0x3c($sp) -/* 0BD4C8 7F08AAD8 0019C880 */ sll $t9, $t9, 2 -/* 0BD4CC 7F08AADC 3C098007 */ lui $t1, %hi(stringbuffer_lowerleft) # $t1, 0x8007 -/* 0BD4D0 7F08AAE0 3C0D6464 */ lui $t5, (0x646464FF >> 16) # lui $t5, 0x6464 -/* 0BD4D4 7F08AAE4 35AD64FF */ ori $t5, (0x646464FF & 0xFFFF) # ori $t5, $t5, 0x64ff -/* 0BD4D8 7F08AAE8 25298508 */ addiu $t1, %lo(stringbuffer_lowerleft) # addiu $t1, $t1, -0x7af8 -/* 0BD4DC 7F08AAEC 240CFFFF */ li $t4, -1 -/* 0BD4E0 7F08AAF0 0323C821 */ addu $t9, $t9, $v1 -/* 0BD4E4 7F08AAF4 03293821 */ addu $a3, $t9, $t1 -/* 0BD4E8 7F08AAF8 AFAC0018 */ sw $t4, 0x18($sp) -/* 0BD4EC 7F08AAFC AFAD001C */ sw $t5, 0x1c($sp) -/* 0BD4F0 7F08AB00 8FA40060 */ lw $a0, 0x60($sp) -/* 0BD4F4 7F08AB04 27A50058 */ addiu $a1, $sp, 0x58 -/* 0BD4F8 7F08AB08 27A60054 */ addiu $a2, $sp, 0x54 -/* 0BD4FC 7F08AB0C AFA20024 */ sw $v0, 0x24($sp) -/* 0BD500 7F08AB10 AFA00028 */ sw $zero, 0x28($sp) -/* 0BD504 7F08AB14 AFA0002C */ sw $zero, 0x2c($sp) -/* 0BD508 7F08AB18 AFAB0014 */ sw $t3, 0x14($sp) -/* 0BD50C 7F08AB1C AFAA0010 */ sw $t2, 0x10($sp) -/* 0BD510 7F08AB20 0FC2B66B */ jal jp_text_write_stuff -/* 0BD514 7F08AB24 AFAE0020 */ sw $t6, 0x20($sp) -/* 0BD518 7F08AB28 0FC2B06C */ jal combiner_bayer_lod_perspective -/* 0BD51C 7F08AB2C 00402025 */ move $a0, $v0 -/* 0BD520 7F08AB30 AFA20060 */ sw $v0, 0x60($sp) -/* 0BD524 7F08AB34 8FBF0034 */ lw $ra, 0x34($sp) -.L7F08AB38: -/* 0BD528 7F08AB38 8FA20060 */ lw $v0, 0x60($sp) -/* 0BD52C 7F08AB3C 27BD0060 */ addiu $sp, $sp, 0x60 -/* 0BD530 7F08AB40 03E00008 */ jr $ra -/* 0BD534 7F08AB44 00000000 */ nop -) -#endif - - -#endif - void sub_GAME_7F08A900(void) @@ -42956,125 +40892,24 @@ void sub_GAME_7F08A944(PLAYERFLAG flag) D_800368B4 |= flag; } -#ifdef NONMATCHING -/** - * Address 0x7F08A95C. - */ -void hudmsgTopShow(s8 *string) + +void hudmsgTopShow(char* string) { - char *cc; s32 index; - if (display_upper_text_window < 2) - { - index = ((upper_text_buffer_index + display_upper_text_window) % 2) * 0x97; - cc = &stringbuffer_top[index]; - strncpy(cc, string, 0x96U); - display_upper_text_window += 1; - cc[0x96] = '\0'; - } -} -#else + if (display_upper_text_window >= 2) { return; } + index = (upper_text_buffer_index + display_upper_text_window) % 2; #if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel hudmsgTopShow -/* 0BF48C 7F08A95C 3C078003 */ lui $a3, %hi(display_upper_text_window) -/* 0BF490 7F08A960 24E768AC */ addiu $a3, %lo(display_upper_text_window) # addiu $a3, $a3, 0x68ac -/* 0BF494 7F08A964 8CE30000 */ lw $v1, ($a3) -/* 0BF498 7F08A968 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0BF49C 7F08A96C AFBF0014 */ sw $ra, 0x14($sp) -/* 0BF4A0 7F08A970 28610002 */ slti $at, $v1, 2 -/* 0BF4A4 7F08A974 1020001C */ beqz $at, .L7F08A9E8 -/* 0BF4A8 7F08A978 00802825 */ move $a1, $a0 -/* 0BF4AC 7F08A97C 3C0E8003 */ lui $t6, %hi(upper_text_buffer_index) -/* 0BF4B0 7F08A980 8DCE68A8 */ lw $t6, %lo(upper_text_buffer_index)($t6) -/* 0BF4B4 7F08A984 3C198008 */ lui $t9, %hi(stringbuffer_top) -/* 0BF4B8 7F08A988 27399C70 */ addiu $t9, %lo(stringbuffer_top) # addiu $t9, $t9, -0x6390 -/* 0BF4BC 7F08A98C 01C31021 */ addu $v0, $t6, $v1 -/* 0BF4C0 7F08A990 04410004 */ bgez $v0, .L7F08A9A4 -/* 0BF4C4 7F08A994 304F0001 */ andi $t7, $v0, 1 -/* 0BF4C8 7F08A998 11E00002 */ beqz $t7, .L7F08A9A4 -/* 0BF4CC 7F08A99C 00000000 */ nop -/* 0BF4D0 7F08A9A0 25EFFFFE */ addiu $t7, $t7, -2 -.L7F08A9A4: -/* 0BF4D4 7F08A9A4 000FC080 */ sll $t8, $t7, 2 -/* 0BF4D8 7F08A9A8 030FC021 */ addu $t8, $t8, $t7 -/* 0BF4DC 7F08A9AC 0018C080 */ sll $t8, $t8, 2 -/* 0BF4E0 7F08A9B0 030FC023 */ subu $t8, $t8, $t7 -/* 0BF4E4 7F08A9B4 0018C0C0 */ sll $t8, $t8, 3 -/* 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 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 -/* 0BF504 7F08A9D4 8CE80000 */ lw $t0, ($a3) -/* 0BF508 7F08A9D8 8FA4001C */ lw $a0, 0x1c($sp) -/* 0BF50C 7F08A9DC 25090001 */ addiu $t1, $t0, 1 -/* 0BF510 7F08A9E0 ACE90000 */ sw $t1, ($a3) -/* 0BF514 7F08A9E4 A0800096 */ sb $zero, 0x96($a0) -.L7F08A9E8: -/* 0BF518 7F08A9E8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BF51C 7F08A9EC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0BF520 7F08A9F0 03E00008 */ jr $ra -/* 0BF524 7F08A9F4 00000000 */ nop -) + strncpy(stringbuffer_top[index], string, (BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH-1)); + display_upper_text_window += 1; + stringbuffer_top[index][(BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH-1)] = 0; +#else + strncpy(dword_CODE_bss_80079DC8[index], string, (BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH-1)); + display_upper_text_window += 1; + dword_CODE_bss_80079DC8[index][(BONDVIEW_HUD_MSG_TOP_BUFFER_LENGTH-1)] = 0; #endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel hudmsgTopShow -/* 0BD594 7F08ABA4 3C078003 */ lui $a3, %hi(display_upper_text_window) # $a3, 0x8003 -/* 0BD598 7F08ABA8 24E71DF4 */ addiu $a3, %lo(display_upper_text_window) # addiu $a3, $a3, 0x1df4 -/* 0BD59C 7F08ABAC 8CE30000 */ lw $v1, ($a3) -/* 0BD5A0 7F08ABB0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0BD5A4 7F08ABB4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0BD5A8 7F08ABB8 28610002 */ slti $at, $v1, 2 -/* 0BD5AC 7F08ABBC 1020001C */ beqz $at, .Leu7F08AC30 -/* 0BD5B0 7F08ABC0 00802825 */ move $a1, $a0 -/* 0BD5B4 7F08ABC4 3C0E8003 */ lui $t6, %hi(upper_text_buffer_index) # $t6, 0x8003 -/* 0BD5B8 7F08ABC8 8DCE1DF0 */ lw $t6, %lo(upper_text_buffer_index)($t6) -/* 0BD5BC 7F08ABCC 3C198007 */ lui $t9, %hi(dword_CODE_bss_80079DC8) # $t9, 0x8007 -/* 0BD5C0 7F08ABD0 273987A8 */ addiu $t9, %lo(dword_CODE_bss_80079DC8) # addiu $t9, $t9, -0x7858 -/* 0BD5C4 7F08ABD4 01C31021 */ addu $v0, $t6, $v1 -/* 0BD5C8 7F08ABD8 04410004 */ bgez $v0, .L7F08ABEC -/* 0BD5CC 7F08ABDC 304F0001 */ andi $t7, $v0, 1 -/* 0BD5D0 7F08ABE0 11E00002 */ beqz $t7, .L7F08ABEC -/* 0BD5D4 7F08ABE4 00000000 */ nop -/* 0BD5D8 7F08ABE8 25EFFFFE */ addiu $t7, $t7, -2 -.L7F08ABEC: -/* 0BD5DC 7F08ABEC 000FC080 */ sll $t8, $t7, 2 -/* 0BD5E0 7F08ABF0 030FC021 */ addu $t8, $t8, $t7 -/* 0BD5E4 7F08ABF4 0018C080 */ sll $t8, $t8, 2 -/* 0BD5E8 7F08ABF8 030FC023 */ subu $t8, $t8, $t7 -/* 0BD5EC 7F08ABFC 0018C0C0 */ sll $t8, $t8, 3 -/* 0BD5F0 7F08AC00 030FC023 */ subu $t8, $t8, $t7 -/* 0BD5F4 7F08AC04 03192021 */ addu $a0, $t8, $t9 -/* 0BD5F8 7F08AC08 AFA4001C */ sw $a0, 0x1c($sp) -/* 0BD5FC 7F08AC0C 0C002700 */ jal strncpy -/* 0BD600 7F08AC10 24060096 */ li $a2, 150 -/* 0BD604 7F08AC14 3C078003 */ lui $a3, %hi(display_upper_text_window) # $a3, 0x8003 -/* 0BD608 7F08AC18 24E71DF4 */ addiu $a3, %lo(display_upper_text_window) # addiu $a3, $a3, 0x1df4 -/* 0BD60C 7F08AC1C 8CE80000 */ lw $t0, ($a3) -/* 0BD610 7F08AC20 8FA4001C */ lw $a0, 0x1c($sp) -/* 0BD614 7F08AC24 25090001 */ addiu $t1, $t0, 1 -/* 0BD618 7F08AC28 ACE90000 */ sw $t1, ($a3) -/* 0BD61C 7F08AC2C A0800096 */ sb $zero, 0x96($a0) -.Leu7F08AC30: -/* 0BD620 7F08AC30 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BD624 7F08AC34 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0BD628 7F08AC38 03E00008 */ jr $ra -/* 0BD62C 7F08AC3C 00000000 */ nop -) -#endif -#endif - - - +} /** @@ -46176,74 +44011,31 @@ void bondviewTransformPosToViewMatrix(RenderPosView *arg0) - - -#ifdef NONMATCHING /** * Address 0x7F08BD48. * - * decomp status: - * - compiles: yes - * - stack resize: ok - * - identical instructions: fail - * - identical registers: fail + * Notes: Similar to sub_GAME_7F08BE2C. * - * notes: two swapped instructions at start, then just regalloc. */ -void bondviewTransformManyPosToViewMatrix(RenderPosView *arg0, s32 arg1) +void bondviewTransformManyPosToViewMatrix(RenderPosView * arg0, s32 arg1) { - Mtxf sp38; + Mtxf mtx; + RenderPosView* rpv_entry; s32 i; - Mtxf *phi_s1; - for (i=0, phi_s1=&arg0[i].pos; ipos, &mtx); + matrix_4x4_f32_to_s32(&mtx, &arg0[i].pos); + i++; + rpv_entry++; + } while (i != arg1); } -#else -GLOBAL_ASM( -.text -glabel bondviewTransformManyPosToViewMatrix -/* 0C0878 7F08BD48 27BDFF88 */ addiu $sp, $sp, -0x78 -/* 0C087C 7F08BD4C AFB40028 */ sw $s4, 0x28($sp) -/* 0C0880 7F08BD50 AFB30024 */ sw $s3, 0x24($sp) -/* 0C0884 7F08BD54 AFB00018 */ sw $s0, 0x18($sp) -/* 0C0888 7F08BD58 00A09825 */ move $s3, $a1 -/* 0C088C 7F08BD5C 0080A025 */ move $s4, $a0 -/* 0C0890 7F08BD60 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C0894 7F08BD64 AFB20020 */ sw $s2, 0x20($sp) -/* 0C0898 7F08BD68 AFB1001C */ sw $s1, 0x1c($sp) -/* 0C089C 7F08BD6C 18A0000D */ blez $a1, .L7F08BDA4 -/* 0C08A0 7F08BD70 00008025 */ move $s0, $zero -/* 0C08A4 7F08BD74 00808825 */ move $s1, $a0 -/* 0C08A8 7F08BD78 27B20038 */ addiu $s2, $sp, 0x38 -.L7F08BD7C: -/* 0C08AC 7F08BD7C 02202025 */ move $a0, $s1 -/* 0C08B0 7F08BD80 0FC16008 */ jal matrix_4x4_copy -/* 0C08B4 7F08BD84 02402825 */ move $a1, $s2 -/* 0C08B8 7F08BD88 00107180 */ sll $t6, $s0, 6 -/* 0C08BC 7F08BD8C 01D42821 */ addu $a1, $t6, $s4 -/* 0C08C0 7F08BD90 0FC16327 */ jal matrix_4x4_f32_to_s32 -/* 0C08C4 7F08BD94 02402025 */ move $a0, $s2 -/* 0C08C8 7F08BD98 26100001 */ addiu $s0, $s0, 1 -/* 0C08CC 7F08BD9C 1613FFF7 */ bne $s0, $s3, .L7F08BD7C -/* 0C08D0 7F08BDA0 26310040 */ addiu $s1, $s1, 0x40 -.L7F08BDA4: -/* 0C08D4 7F08BDA4 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C08D8 7F08BDA8 8FB00018 */ lw $s0, 0x18($sp) -/* 0C08DC 7F08BDAC 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C08E0 7F08BDB0 8FB20020 */ lw $s2, 0x20($sp) -/* 0C08E4 7F08BDB4 8FB30024 */ lw $s3, 0x24($sp) -/* 0C08E8 7F08BDB8 8FB40028 */ lw $s4, 0x28($sp) -/* 0C08EC 7F08BDBC 03E00008 */ jr $ra -/* 0C08F0 7F08BDC0 27BD0078 */ addiu $sp, $sp, 0x78 -) -#endif - - @@ -46265,18 +44057,42 @@ void sub_GAME_7F08BDC4(Mtxf *arg0) - - #ifdef NONMATCHING /** * Unreferenced. * * Address 0x7F08BE2C. + * + * decomp status: + * - compiles: yes + * - stack resize: ok + * - identical instructions: two swapped instructions that don't affect each other + * - identical registers: ok + * */ -void sub_GAME_7F08BE2C(Mtxf *arg0, s32 arg1) +void sub_GAME_7F08BE2C(Mtxf * arg0, s32 arg1) { - // combination of sub_GAME_7F08BDC4 and bondviewTransformManyPosToViewMatrix + Mtxf sp38; + s32 var_s0; + Mtxf* var_s1; + + var_s0 = 0; + + if (arg1 <= 0) { return; } + + var_s1 = arg0; + do + { + matrix_4x4_copy(var_s1, &sp38); + sp38.m[3][0] -= g_CurrentPlayer->previous_model_pos.f[0]; + sp38.m[3][1] -= g_CurrentPlayer->previous_model_pos.f[1]; + sp38.m[3][2] -= g_CurrentPlayer->previous_model_pos.f[2]; + matrix_4x4_f32_to_s32(&sp38, &arg0[var_s0]); + var_s0++; + var_s1++; + } while (var_s0 != arg1); } + #else GLOBAL_ASM( .text @@ -46335,99 +44151,23 @@ glabel sub_GAME_7F08BE2C #endif - - - -#ifdef NONMATCHING -/** - * Address 0x7F08BEEC. - * - * decomp status: - * - compiles: yes - * - stack resize: ok - * - identical instructions: fail - * - identical registers: fail - * - * notes: two swapped instructions at start, then just regalloc. - */ -void sub_GAME_7F08BEEC(Mtxf *arg0, s32 arg1) +void sub_GAME_7F08BEEC(Mtxf *matrices, s32 count) { - Mtxf sp38; + Mtxf sp40; s32 i; - Mtxf *phi_s1; + s32 j; - for (i=0, phi_s1=arg0; iprevious_model_pos.f[0]; - sp38.m[3][1] -= g_CurrentPlayer->previous_model_pos.f[1]; - sp38.m[3][2] -= g_CurrentPlayer->previous_model_pos.f[2]; - matrix_4x4_f32_to_s32((Mtxf *) &sp38, &arg0[i]); + matrix_4x4_multiply_homogeneous(currentPlayerGetMatrix10D4(), (Mtxf *)((u32)matrices + j), &sp40); + + sp40.m[3][0] -= g_CurrentPlayer->current_model_pos.f[0]; + sp40.m[3][1] -= g_CurrentPlayer->current_model_pos.f[1]; + sp40.m[3][2] -= g_CurrentPlayer->current_model_pos.f[2]; + + matrix_4x4_f32_to_s32(&sp40, matrices + i); } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08BEEC -/* 0C0A1C 7F08BEEC 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 0C0A20 7F08BEF0 AFB50028 */ sw $s5, 0x28($sp) -/* 0C0A24 7F08BEF4 AFB40024 */ sw $s4, 0x24($sp) -/* 0C0A28 7F08BEF8 AFB10018 */ sw $s1, 0x18($sp) -/* 0C0A2C 7F08BEFC 00A0A025 */ move $s4, $a1 -/* 0C0A30 7F08BF00 0080A825 */ move $s5, $a0 -/* 0C0A34 7F08BF04 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C0A38 7F08BF08 AFB30020 */ sw $s3, 0x20($sp) -/* 0C0A3C 7F08BF0C AFB2001C */ sw $s2, 0x1c($sp) -/* 0C0A40 7F08BF10 AFB00014 */ sw $s0, 0x14($sp) -/* 0C0A44 7F08BF14 18A0001F */ blez $a1, .L7F08BF94 -/* 0C0A48 7F08BF18 00008825 */ move $s1, $zero -/* 0C0A4C 7F08BF1C 3C138008 */ lui $s3, %hi(g_CurrentPlayer) -/* 0C0A50 7F08BF20 2673A0B0 */ addiu $s3, %lo(g_CurrentPlayer) # addiu $s3, $s3, -0x5f50 -/* 0C0A54 7F08BF24 00808025 */ move $s0, $a0 -/* 0C0A58 7F08BF28 27B20040 */ addiu $s2, $sp, 0x40 -.L7F08BF2C: -/* 0C0A5C 7F08BF2C 0FC1E111 */ jal currentPlayerGetMatrix10D4 -/* 0C0A60 7F08BF30 00000000 */ nop -/* 0C0A64 7F08BF34 00402025 */ move $a0, $v0 -/* 0C0A68 7F08BF38 02002825 */ move $a1, $s0 -/* 0C0A6C 7F08BF3C 0FC16063 */ jal matrix_4x4_multiply_homogeneous -/* 0C0A70 7F08BF40 02403025 */ move $a2, $s2 -/* 0C0A74 7F08BF44 8E620000 */ lw $v0, ($s3) -/* 0C0A78 7F08BF48 C7A40070 */ lwc1 $f4, 0x70($sp) -/* 0C0A7C 7F08BF4C C7AA0074 */ lwc1 $f10, 0x74($sp) -/* 0C0A80 7F08BF50 C4460038 */ lwc1 $f6, 0x38($v0) -/* 0C0A84 7F08BF54 00117180 */ sll $t6, $s1, 6 -/* 0C0A88 7F08BF58 01D52821 */ addu $a1, $t6, $s5 -/* 0C0A8C 7F08BF5C 46062201 */ sub.s $f8, $f4, $f6 -/* 0C0A90 7F08BF60 C7A40078 */ lwc1 $f4, 0x78($sp) -/* 0C0A94 7F08BF64 02402025 */ move $a0, $s2 -/* 0C0A98 7F08BF68 E7A80070 */ swc1 $f8, 0x70($sp) -/* 0C0A9C 7F08BF6C C450003C */ lwc1 $f16, 0x3c($v0) -/* 0C0AA0 7F08BF70 46105481 */ sub.s $f18, $f10, $f16 -/* 0C0AA4 7F08BF74 E7B20074 */ swc1 $f18, 0x74($sp) -/* 0C0AA8 7F08BF78 C4460040 */ lwc1 $f6, 0x40($v0) -/* 0C0AAC 7F08BF7C 46062201 */ sub.s $f8, $f4, $f6 -/* 0C0AB0 7F08BF80 0FC16327 */ jal matrix_4x4_f32_to_s32 -/* 0C0AB4 7F08BF84 E7A80078 */ swc1 $f8, 0x78($sp) -/* 0C0AB8 7F08BF88 26310001 */ addiu $s1, $s1, 1 -/* 0C0ABC 7F08BF8C 1634FFE7 */ bne $s1, $s4, .L7F08BF2C -/* 0C0AC0 7F08BF90 26100040 */ addiu $s0, $s0, 0x40 -.L7F08BF94: -/* 0C0AC4 7F08BF94 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C0AC8 7F08BF98 8FB00014 */ lw $s0, 0x14($sp) -/* 0C0ACC 7F08BF9C 8FB10018 */ lw $s1, 0x18($sp) -/* 0C0AD0 7F08BFA0 8FB2001C */ lw $s2, 0x1c($sp) -/* 0C0AD4 7F08BFA4 8FB30020 */ lw $s3, 0x20($sp) -/* 0C0AD8 7F08BFA8 8FB40024 */ lw $s4, 0x24($sp) -/* 0C0ADC 7F08BFAC 8FB50028 */ lw $s5, 0x28($sp) -/* 0C0AE0 7F08BFB0 03E00008 */ jr $ra -/* 0C0AE4 7F08BFB4 27BD0080 */ addiu $sp, $sp, 0x80 -) -#endif - - - - s32 getMissiontimer(void) { diff --git a/src/game/bondview.h b/src/game/bondview.h index 926cda31..e3e57b26 100644 --- a/src/game/bondview.h +++ b/src/game/bondview.h @@ -6,6 +6,7 @@ #include "chr.h" #include "matrixmath.h" #include "watch.h" +#include "image.h" typedef struct invitem_weap { @@ -88,9 +89,10 @@ struct collision434 { */ struct hand { - s32 weaponnum; - s32 weaponnum_watchmenu; - s32 previous_weapon; + ITEM_IDS weaponnum; + ITEM_IDS weaponnum_watchmenu; + ITEM_IDS previous_weapon; + s8 weapon_firing_status; s8 field_87D; @@ -127,22 +129,7 @@ struct hand s32 field_8E0; s32 field_8E4; s32 field_8E8; - s32 field_8EC; - s32 field_8F0; - s32 field_8F4; - s32 field_8F8; - s32 field_8FC; - s32 field_900; - s32 field_904; - s32 field_908; - s32 field_90C; - s32 field_910; - s32 field_914; - s32 field_918; - s32 field_91C; - s32 field_920; - s32 field_924; - s32 field_928; + Mtxf field_8EC; s32 field_92C; s32 field_930; s32 field_934; @@ -162,47 +149,14 @@ struct hand s32 field_96C; s32 field_970; s32 field_974; - s32 field_978; - s32 field_97C; - s32 field_980; - s32 field_984; - s32 field_988; - s32 field_98C; - s32 field_990; - s32 field_994; - s32 field_998; - s32 field_99C; - s32 field_9A0; - s32 field_9A4; - s32 field_9A8; - s32 field_9AC; - s32 field_9B0; - s32 field_9B4; - s32 field_9B8; - s32 field_9BC; - s32 field_9C0; - s32 field_9C4; - s32 field_9C8; - s32 field_9CC; - s32 field_9D0; - s32 field_9D4; - s32 field_9D8; - s32 field_9DC; - s32 field_9E0; - s32 field_9E4; - s32 field_9E8; - s32 field_9EC; - s32 field_9F0; - s32 field_9F4; - s32 field_9F8; - s32 field_9FC; - s32 field_A00; - s32 field_A04; - s32 field_A08; - f32 field_A0C; - s32 field_A10; - s32 field_A14; - s32 field_A18; // sway state? + coord3d blendpos[4]; + coord3d blendlook[4]; + coord3d blendup[4]; + s32 curblendpos; + f32 dampt; + f32 blendscale; + f32 blendscale1; + s32 sideflag; f32 weapon_theta_displacement; f32 weapon_verta_displacement; s32 field_A24; @@ -217,22 +171,12 @@ struct hand s32 field_A48; s32 field_A4C; s32 field_A50; - s32 field_A54; - s32 field_A58; - s32 field_A5C; - s32 field_A60; - s32 field_A64; - s32 field_A68; - s32 field_A6C; - s32 field_A70; - s32 field_A74; - s32 field_A78; - s32 field_A7C; - s32 noise; - s32 field_A84; - s32 field_A88; + ChrRecord_f180 field_A54; + f32 noise; + f32 field_A84; + f32 field_A88; s32 field_A8C; - s32 field_A90; + ObjectRecord* field_A90; s32 field_A94; s32 field_A98; s32 field_A9C; @@ -270,10 +214,8 @@ struct hand s32 field_B4C; s32 field_B50; s32 field_B54; - s32 field_B58; - s32 field_B5C; - s32 field_B60; - s32 field_B64; + coord3d field_B58; + f32 field_B64; s32 field_B68; s32 field_B6C; s32 field_B70; @@ -315,9 +257,7 @@ struct hand s32 field_C00; s32 field_C04; s32 field_C08; - s32 item_related1; - s32 item_related2; - s32 item_related3; + coord3d item_related; }; typedef struct InvItem { @@ -601,15 +541,15 @@ struct player */ s32 outside_watch_menu; s32 open_close_solo_watch_menu; - s32 field_1D4; - s32 field_1D8; - s32 pause_watch_position; - s32 field_1E0; - s32 field_1E4; - s32 field_1E8; - s32 field_1EC; - s32 field_1F0; - s32 field_1F4; + f32 field_1D4; + f32 field_1D8; + f32 pause_watch_position; + f32 field_1E0; + f32 field_1E4; + f32 field_1E8; + f32 field_1EC; + f32 field_1F0; + f32 field_1F4; s32 field_1F8; s32 field_1FC; /** @@ -803,9 +743,9 @@ struct player struct collision434 previous_collision_info; struct collision434 field_488; - u32 resetheadpos; // bool - u32 resetheadrot; // bool - u32 resetheadtick; // bool 0x4e4 + s32 resetheadpos; // bool + s32 resetheadrot; // bool + s32 resetheadtick; // bool 0x4e4 s32 headanim; // index into array of pointers. Pointers are for animations. @@ -924,81 +864,8 @@ struct player s32 field_6C8; s32 field_6CC; - // struct? this gets pointed to. Pointer called "mtxlist" takes address of this property. - // bondheadmatrices 0 - 3 - s32 field_6D0; - s32 field_6D4; - s32 field_6D8; - s32 field_6DC; - - f32 field_6E0; - f32 field_6E4; - f32 field_6E8; + Mtxf bondheadmatrices[4]; - s32 field_6EC; - - f32 field_6F0; - f32 field_6F4; - f32 field_6F8; - - s32 field_6FC; - - - f32 field_700; - f32 field_704; // related to standheight - f32 field_708; - - s32 field_70C; - s32 field_710; - s32 field_714; - s32 field_718; - s32 field_71C; - s32 field_720; - s32 field_724; - s32 field_728; - s32 field_72C; - s32 field_730; - s32 field_734; - s32 field_738; - s32 field_73C; - s32 field_740; - - f32 field_744; - f32 field_748; - - s32 field_74C; - s32 field_750; - s32 field_754; - s32 field_758; - s32 field_75C; - s32 field_760; - s32 field_764; - s32 field_768; - s32 field_76C; - s32 field_770; - s32 field_774; - s32 field_778; - s32 field_77C; - s32 field_780; - s32 field_784; - s32 field_788; - s32 field_78C; - s32 field_790; - s32 field_794; - s32 field_798; - s32 field_79C; - s32 field_7A0; - s32 field_7A4; - s32 field_7A8; - s32 field_7AC; - s32 field_7B0; - s32 field_7B4; - s32 field_7B8; - s32 field_7BC; - s32 field_7C0; - s32 field_7C4; - s32 field_7C8; - s32 field_7CC; Vp viewports[2]; /** @@ -1021,35 +888,16 @@ struct player */ s16 viewtop; - s32 hand_invisible[2]; - s32 hand_item[2]; - u8 *ptr_hand_weapon_buffer[2]; + s32 hand_invisible[2]; /* 0x7f8*/ + ITEM_IDS hand_item[2]; /* 0x800 */ + u8 *ptr_hand_weapon_buffer[2]; /* 0x808 */ /** * Offset 0x810. */ ModelFileHeader copy_of_body_obj_header[2]; - s32 field_850; - s32 field_854; - s32 field_858; - s32 field_85C; - s32 field_860; - - /** - * Offset 0x864. - */ - s32 right_item_related1; - - /** - * Offset 0x868. - */ - s32 right_item_related2; - - /** - * Offset 0x86c. - */ - s32 right_item_related3; + struct texpool item_related[2]; /* 0x850 */ /** * Offset 0x870. @@ -1086,38 +934,20 @@ struct player f32 crosshair_x_pos; f32 crosshair_y_pos; f32 guncrossdamp; - f32 field_FFC; - f32 field_1000; + coord2d field_FFC; f32 gun_azimuth_angle; f32 gun_azimuth_turning; f32 gunaimdamp; - f32 field_1010; - f32 holds_neg_pi; - f32 field_1018; - s32 field_101C; - s32 field_1020; - s32 field_1024; - s32 field_1028; - s32 field_102C; - s32 field_1030; - s32 field_1034; - s32 field_1038; - s32 field_103C; - s32 field_1040; - s32 field_1044; - s32 field_1048; - s32 field_104C; - s32 field_1050; - s32 field_1054; - s32 field_1058; + coord3d field_1010; + Mtxf field_101C; s32 last_z_trigger_timer; s32 copiedgoldeneye; s32 ammodispflags; s32 field_1068; - f32 field_106C; - f32 field_1070; - f32 field_1074; - s32 field_1078; + f32 gunsync; + f32 syncchange; + f32 synccount; + s32 syncoffset; f32 field_107C; f32 field_1080; f32 sniper_zoom; @@ -1236,10 +1066,10 @@ struct player s32 gunsightmode; s32 field_112C; s32 ammoheldarr[30]; - u8 *field_11A8; - u8 *field_11AC; - u8 *field_11B0[2]; - s32 field_11B8; + u8 *bloodImgCur; + u8 *bloodImgNxt; + u8 *bloodImgBufPtrArray[2]; + s32 bloodImgIdx; f32 zoomintime; f32 zoomintimemax; f32 zoominfovy; @@ -1260,9 +1090,9 @@ struct player f32 swaytarget; f32 field_1278; f32 field_127C; - s32 field_1280; + f32 field_1280; s32 players_cur_animation; - s32 field_1288; + f32 field_1288; /** * This buffers button presses. @@ -2679,7 +2509,7 @@ struct player s32 field_29B4; // Alt field_29C0 ?? Used in EU. - f32 field_29B8; + s32 field_29B8; /** * Related to player perspective. @@ -2696,10 +2526,7 @@ struct player s32 deathcount; s32 num_suicides; s32 field_29E0; - s32 last_kill_time; - s32 field_29E8; - s32 field_29EC; - s32 field_29F0; + s32 last_kill_time[4]; /** * Holds mission offset timer value. @@ -2721,18 +2548,13 @@ struct player f32 field_2A0C; s32 ptr_text_first_mp_award; s32 ptr_text_second_mp_award; - s32 field_2A18; - s32 field_2A1C; - s32 field_2A20; - s32 field_2A24; - s32 field_2A28; - s32 field_2A2C; + coord3d field_2A18[2]; s32 field_2A30; s32 field_2A34; s32 cur_item_weapon_getname; f32 actual_health; f32 actual_armor; - s32 field_2A44[2]; + ITEM_IDS field_2A44[2]; f32 field_2A4C; s32 lock_hand_model[2]; s32 cur_player_control_type_0; @@ -2773,6 +2595,52 @@ struct struct_4 { float anonymous_3; }; +#ifdef BUGFIX_R0 +typedef struct bondstruct_unk_80036634 +{ + u32 field_0x0; + u32 field_0x4; + s32 field_0x8; + f32 field_0xC; + u32 field_0x10; + u32 field_0x14; + s32 field_0x18; + f32 field_0x1c; + u32 field_0x20; + u32 field_0x24; + u32 field_0x28; +} bondstruct_unk_80036634; +#else +typedef struct bondstruct_unk_80036634 +{ + f32 field_0x0; + f32 field_0x4; + f32 field_0x8; + f32 field_0xC; + f32 field_0x10; + f32 field_0x14; + f32 field_0x18; + f32 field_0x1c; + u32 field_0x20; + u32 field_0x24; + u32 field_0x28; +} bondstruct_unk_80036634; +#endif + +typedef struct bondstruct_unk_80036794 { // time related idk + s32 unk0; + s32 unk4; + s32 unk8; +} bondstruct_unk_80036794; + +typedef struct bondstruct_unk_80035904 { + u32 unk00; + coord3d unk04; + coord3d unk10; + f32 unk1C; + f32 unk20; +} bondstruct_unk_80035904; + //D:80036424 extern s32 g_bondviewForceDisarm; //D:80036428 @@ -2910,7 +2778,7 @@ D:80036624 .word 0xFFFFFF00, 0xFFFFFF00, 0x4FFFFFF //D:80036630 extern u32 D_80036630; //D:80036634 -extern u32 D_80036634[]; +extern bondstruct_unk_80036634 D_80036634[]; /* D:80036638 .byte 0 D:80036639 .byte 0, 0, 0xA @@ -3096,12 +2964,6 @@ extern StandTilePoint *dword_CODE_bss_80079DA4; #define BSS_80079DA8_LENGTH 8 extern s32 dword_CODE_bss_80079DA8[]; -#ifndef VERSION_EU -extern char dword_CODE_bss_80079DC8[]; -#else -extern char dword_CODE_bss_80079DC8[]; -#endif - u32 get_camera_mode(void); @@ -3192,7 +3054,7 @@ Mtxf *currentPlayerGetMatrix10EC(void); f32 get_curplay_horizontal_rotation_in_degrees(void); Mtxf *currentPlayerGetMatrix10CC(void); void sub_GAME_7F077EEC(struct coord2d *in, coord3d *out, f32 value); -s32 sub_GAME_7F078BF4(coord3d *, f32, struct bbox2d *); +s32 camIsPosInScreenBox(coord3d *, f32, struct bbox2d *); void bondviewTransformManyPosToViewMatrix(RenderPosView *arg0, s32 arg1); s32 sub_GAME_7F078474(void); @@ -3206,7 +3068,7 @@ void sub_GAME_7F08A928(int param_1); void sub_GAME_7F08A944(PLAYERFLAG flag); void set_camera_mode(s32 arg0); bool isBondInTank(void); -void hudmsgTopShow(s8 *string); +void hudmsgTopShow(char* string); void SurroundWithExplosions(int delay); s32 check_watch_page_transistion_running(void); f32 bondviewWatchAnimationRelated(void); @@ -3216,4 +3078,8 @@ s32 bondviewGetRandomSpawnPadIndex(void); void change_player_pos_to_target(struct collision434* arg0, struct coord3d *arg1, struct StandTile *arg2); void sub_GAME_7F089718(f32); void sub_GAME_7F08A900(void); +Mtxf *currentPlayerGetProjectionMatrixF(void); +int redirect_get_BONDdata_autoaim_x(void); +void sub_GAME_7F077FF4(coord3d *in, coord3d *out); + #endif diff --git a/src/game/bondview_r.c b/src/game/bondview_r.c index a12dc9f3..f91c6b6b 100644 --- a/src/game/bondview_r.c +++ b/src/game/bondview_r.c @@ -109,7 +109,7 @@ void bondviewLoadSetupIntroSection(void) start_pos = D_8002A780; - intro_record = (struct SetupIntroEmpty *)g_chraiCurrentSetup.intro; + intro_record = (struct SetupIntroEmpty *)g_CurrentSetup.intro; g_isBondKIA = 0; g_bondviewForceDisarm = 0; resolution = 0; @@ -179,10 +179,10 @@ void bondviewLoadSetupIntroSection(void) { case INTROTYPE_SPAWN: { - if (g_chraiCurrentSetup.pads != NULL + if (g_CurrentSetup.pads != NULL && (check_ramrom_flags() == ((struct SetupIntroSpawn*)intro_record)->is_demo_playback)) { - g_Startpad[startpadcount] = &g_chraiCurrentSetup.pads[((struct SetupIntroSpawn*)intro_record)->index]; + g_Startpad[startpadcount] = &g_CurrentSetup.pads[((struct SetupIntroSpawn*)intro_record)->index]; startpadcount++; } @@ -247,11 +247,11 @@ void bondviewLoadSetupIntroSection(void) g_IntroSwirl = intro_swirl; } - intro_swirl->unk08.fval = intro_swirl->unk08.ival / 65536.0f; - intro_swirl->unk0C.fval = intro_swirl->unk0C.ival / 65536.0f; - intro_swirl->unk10.fval = intro_swirl->unk10.ival / 65536.0f; - intro_swirl->unk14.fval = intro_swirl->unk14.ival / 65536.0f; - intro_swirl->unk18.fval = intro_swirl->unk18.ival / 65536.0f; + intro_swirl->unk08.fval = intro_swirl->unk08.ival / M_U16_MAX_VALUE_F; + intro_swirl->unk0C.fval = intro_swirl->unk0C.ival / M_U16_MAX_VALUE_F; + intro_swirl->unk10.fval = intro_swirl->unk10.ival / M_U16_MAX_VALUE_F; + intro_swirl->unk14.fval = intro_swirl->unk14.ival / M_U16_MAX_VALUE_F; + intro_swirl->unk18.fval = intro_swirl->unk18.ival / M_U16_MAX_VALUE_F; intro_record = (struct SetupIntroEmpty*)((s32)intro_record + sizeof(struct SetupIntroSwirl)); } @@ -284,8 +284,8 @@ void bondviewLoadSetupIntroSection(void) ((struct SetupIntroCamera*)intro_record)->unk04.fval = ((struct SetupIntroCamera*)intro_record)->unk04.ival / 100.0f; ((struct SetupIntroCamera*)intro_record)->unk08.fval = ((struct SetupIntroCamera*)intro_record)->unk08.ival / 100.0f; ((struct SetupIntroCamera*)intro_record)->unk0C.fval = ((struct SetupIntroCamera*)intro_record)->unk0C.ival / 100.0f; - ((struct SetupIntroCamera*)intro_record)->unk10.fval = ((struct SetupIntroCamera*)intro_record)->unk10.ival / 65536.0f; - ((struct SetupIntroCamera*)intro_record)->unk14.fval = ((struct SetupIntroCamera*)intro_record)->unk14.ival / 65536.0f; + ((struct SetupIntroCamera*)intro_record)->unk10.fval = ((struct SetupIntroCamera*)intro_record)->unk10.ival / M_U16_MAX_VALUE_F; + ((struct SetupIntroCamera*)intro_record)->unk14.fval = ((struct SetupIntroCamera*)intro_record)->unk14.ival / M_U16_MAX_VALUE_F; ((struct SetupIntroCamera*)intro_record)->lang1c.lang_ptr = langGet(((struct SetupIntroCamera*)intro_record)->lang1c.lang_index[1]); @@ -326,7 +326,7 @@ void bondviewLoadSetupIntroSection(void) intro_credits = (struct SetupIntroCredits*)intro_record; // hack: bad address math - credits = (CreditsEntry*)((s32)dword_CODE_bss_80075D28 + (s32)intro_credits->unk04); + credits = (CreditsEntry*)((s32)g_ptrStageSetupFile + (s32)intro_credits->unk04); D_80036440 = credits; // what is the point of this? @@ -398,7 +398,7 @@ void bondviewLoadSetupIntroSection(void) stan_height = bondviewYPositionRelated(start_stan, start_pos.f[0], start_pos.f[2]); start_pos.f[1] = g_CurrentPlayer->field_29BC + stan_height; g_CurrentPlayer->field_70 = stan_height; - start_look_angle = 6.2831855f - atan2f(g_Startpad[rand_pad_index]->look.f[0], g_Startpad[rand_pad_index]->look.f[2]); + start_look_angle = M_TAU_F - atan2f(g_Startpad[rand_pad_index]->look.f[0], g_Startpad[rand_pad_index]->look.f[2]); } else { @@ -408,7 +408,7 @@ void bondviewLoadSetupIntroSection(void) g_CurrentPlayer->field_70 = stan_height; } - g_CurrentPlayer->vv_theta = (start_look_angle * 360.0f) / 6.2831855f; + g_CurrentPlayer->vv_theta = (start_look_angle * 360.0f) / M_TAU_F; g_CurrentPlayer->stanHeight = stan_height; g_CurrentPlayer->field_6C = stan_height / FIELD_6C_FACTOR; change_player_pos_to_target(&g_CurrentPlayer->field_488, &start_pos, start_stan); diff --git a/src/game/bondwalk2.c b/src/game/bondwalk2.c index 59cc8662..d988fcc4 100644 --- a/src/game/bondwalk2.c +++ b/src/game/bondwalk2.c @@ -1,611 +1,120 @@ #include - - -#ifdef NONMATCHING -f32 sub_GAME_7F06ABB0(void *arg0, void *arg1, void *arg2, s32 arg3, s32 arg4, s3 2 arg5, s32 arg6, s32 arg7) { - void *sp0; - void *spC; - void *temp_v0; - s32 temp_f18; - s32 temp_f8; - s32 temp_f4; - s32 temp_f10; - void *temp_v0_2; - void *temp_v0_4; - void *temp_v0_3; - void *temp_v0_5; - void *temp_v1; - s32 phi_a1; - s32 phi_a2; - s32 phi_a3; - s32 phi_t0; - s32 phi_v1; - s32 phi_a0; - void *phi_v0; - s32 phi_a3_2; - s32 phi_t0_2; - s32 phi_v1_2; - s32 phi_a0_2; - s32 phi_a3_3; - s32 phi_t0_3; - - // Node 0 - if (0.0f < *arg2) +void sub_GAME_7F06ABB0(Gfx **gdlptr, f32 *arg1, f32 *arg2, s32 width, s32 height, s32 arg5, s32 arg6, s32 arg7) +{ + if (arg2[0] > 0.0f && arg2[1] > 0.0f) { - // Node 1 - if (0.0f < arg2->unk4) + Gfx *gdl = *gdlptr; + s32 xl; + s32 yl; + s32 xh; + s32 yh; + s32 s = 0; + s32 t = 0; + s32 dsdx; + s32 dtdy; + + gDPSetTexturePersp(gdl++, G_TP_NONE); + + xl = (arg1[0] - arg2[0]) * 4.0f; + yl = (arg1[1] - arg2[1]) * 4.0f; + xh = (arg1[0] + arg2[0]) * 4.0f; + yh = (arg1[1] + arg2[1]) * 4.0f; + + if (xh >= 0 && yh >= 0) { - // Node 2 - **arg0 = 0xba001301; - *arg0->unk4 = 0; - temp_v0 = (*arg0 + 8); - temp_f18 = (s32) ((*arg1 - *arg2) * 4.0f); - temp_f8 = (s32) ((arg1->unk4 - arg2->unk4) * 4.0f); - temp_f4 = (s32) ((*arg2 + *arg1) * 4.0f); - temp_f10 = (s32) ((arg2->unk4 + arg1->unk4) * 4.0f); - phi_v0 = temp_v0; - if (temp_f4 >= 0) + if (xl < 0) { - // Node 3 - phi_v0 = temp_v0; - if (temp_f10 >= 0) + if (arg5) { - // Node 4 - phi_a1 = temp_f18; - phi_a3_3 = 0; - phi_t0_3 = 0; - if (temp_f18 < 0) - { - // Node 5 - if (arg5 != 0) - { - // Node 6 - phi_a1 = 0; - phi_a3_3 = 0; - phi_t0_3 = ((s32) ((-temp_f18 * arg4) << 5) / (s32) (temp_f4 - temp_f18)); - } - else - { - // Node 7 - phi_a1 = 0; - phi_a3_3 = ((s32) ((-temp_f18 * arg3) << 5) / (s32) (temp_f4 - temp_f18)); - phi_t0_3 = 0; - } - } - // Node 8 - phi_a2 = temp_f8; - phi_a3_2 = phi_a3_3; - phi_t0_2 = phi_t0_3; - if (temp_f8 < 0) - { - // Node 9 - if (arg5 != 0) - { - // Node 10 - phi_a2 = 0; - phi_a3_2 = (phi_a3_3 + ((s32) ((-temp_f8 * arg3) << 5) / (s32) (temp_f10 - temp_f8))); - phi_t0_2 = phi_t0_3; - } - else - { - // Node 11 - phi_a2 = 0; - phi_a3_2 = phi_a3_3; - phi_t0_2 = (phi_t0_3 + ((s32) ((-temp_f8 * arg4) << 5) / (s32) (temp_f10 - temp_f8))); - } - } - // Node 12 - if (arg5 != 0) - { - // Node 13 - phi_v1_2 = (s32) (((f32) arg3 / (arg2->unk4 + arg2->unk4 )) * 1024.0f); - phi_a0_2 = (s32) (((f32) arg4 / (*arg2 + *arg2)) * 1024. 0f); - } - else - { - // Node 14 - phi_v1_2 = (s32) (((f32) arg3 / (*arg2 + *arg2)) * 1024. 0f); - phi_a0_2 = (s32) (((f32) arg4 / (arg2->unk4 + arg2->unk4 )) * 1024.0f); - } - // Node 15 - phi_a3 = phi_a3_2; - phi_v1 = phi_v1_2; - if (arg6 != 0) - { - // Node 16 - phi_a3 = (((arg3 + -1) << 5) - phi_a3_2); - phi_v1 = (0x10000 - phi_v1_2); - } - // Node 17 - phi_t0 = phi_t0_2; - phi_a0 = phi_a0_2; - if (arg7 != 0) - { - // Node 18 - phi_t0 = (((arg4 + -1) << 5) - phi_t0_2); - phi_a0 = (0x10000 - phi_a0_2); - } - // Node 19 - if (arg5 != 0) - { - // Node 20 - *temp_v0 = (s32) ((((temp_f4 & 0xfff) << 0xc) | 0xe50000 00) | (temp_f10 & 0xfff)); - temp_v0->unk4 = (s32) (((phi_a1 & 0xfff) << 0xc) | (phi_ a2 & 0xfff)); - temp_v0_2 = (temp_v0 + 8); - *temp_v0_2 = 0xb4000000; - temp_v0_2->unk4 = (s32) ((phi_a3 << 0x10) | (phi_t0 & 0x ffff)); - temp_v0_4 = (temp_v0_2 + 8); - spC = temp_v0_4; - *spC = 0xb3000000; - spC->unk4 = (s32) ((phi_v1 << 0x10) | (phi_a0 & 0xffff)) ; - phi_v0 = (temp_v0_4 + 8); - } - else - { - // Node 21 - *temp_v0 = (s32) ((((temp_f4 & 0xfff) << 0xc) | 0xe40000 00) | (temp_f10 & 0xfff)); - temp_v0->unk4 = (s32) (((phi_a1 & 0xfff) << 0xc) | (phi_ a2 & 0xfff)); - temp_v0_3 = (temp_v0 + 8); - *temp_v0_3 = 0xb4000000; - temp_v0_3->unk4 = (s32) ((phi_a3 << 0x10) | (phi_t0 & 0x ffff)); - temp_v0_5 = (temp_v0_3 + 8); - sp0 = temp_v0_5; - *sp0 = 0xb3000000; - sp0->unk4 = (s32) ((phi_v1 << 0x10) | (phi_a0 & 0xffff)) ; - phi_v0 = (temp_v0_5 + 8); - } - } - } - // Node 22 - temp_v1 = phi_v0; - temp_v1->unk4 = 0x80000; - *temp_v1 = 0xba001301; - *arg0 = (void *) (phi_v0 + 8); - } - } - // Node 23 - return 0.0f; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06ABB0 -/* 09F6E0 7F06ABB0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 09F6E4 7F06ABB4 AFA40040 */ sw $a0, 0x40($sp) -/* 09F6E8 7F06ABB8 AFA50044 */ sw $a1, 0x44($sp) -/* 09F6EC 7F06ABBC AFA60048 */ sw $a2, 0x48($sp) -/* 09F6F0 7F06ABC0 AFA7004C */ sw $a3, 0x4c($sp) -/* 09F6F4 7F06ABC4 44800000 */ mtc1 $zero, $f0 -/* 09F6F8 7F06ABC8 C4C40000 */ lwc1 $f4, ($a2) -/* 09F6FC 7F06ABCC 4604003C */ c.lt.s $f0, $f4 -/* 09F700 7F06ABD0 00000000 */ nop -/* 09F704 7F06ABD4 45000102 */ bc1f .L7F06AFE0 -/* 09F708 7F06ABD8 00000000 */ nop -/* 09F70C 7F06ABDC C4C60004 */ lwc1 $f6, 4($a2) -/* 09F710 7F06ABE0 3C0BBA00 */ lui $t3, (0xBA001301 >> 16) # lui $t3, 0xba00 -/* 09F714 7F06ABE4 4606003C */ c.lt.s $f0, $f6 -/* 09F718 7F06ABE8 00000000 */ nop -/* 09F71C 7F06ABEC 450000FC */ bc1f .L7F06AFE0 -/* 09F720 7F06ABF0 00000000 */ nop -/* 09F724 7F06ABF4 8C820000 */ lw $v0, ($a0) -/* 09F728 7F06ABF8 356B1301 */ ori $t3, (0xBA001301 & 0xFFFF) # ori $t3, $t3, 0x1301 -/* 09F72C 7F06ABFC 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 09F730 7F06AC00 00401825 */ move $v1, $v0 -/* 09F734 7F06AC04 AC6B0000 */ sw $t3, ($v1) -/* 09F738 7F06AC08 AC600004 */ sw $zero, 4($v1) -/* 09F73C 7F06AC0C 8FB90048 */ lw $t9, 0x48($sp) -/* 09F740 7F06AC10 8FB80044 */ lw $t8, 0x44($sp) -/* 09F744 7F06AC14 44818000 */ mtc1 $at, $f16 -/* 09F748 7F06AC18 C7200000 */ lwc1 $f0, ($t9) -/* 09F74C 7F06AC1C C70C0000 */ lwc1 $f12, ($t8) -/* 09F750 7F06AC20 C7220004 */ lwc1 $f2, 4($t9) -/* 09F754 7F06AC24 C70E0004 */ lwc1 $f14, 4($t8) -/* 09F758 7F06AC28 46006201 */ sub.s $f8, $f12, $f0 -/* 09F75C 7F06AC2C 00003825 */ move $a3, $zero -/* 09F760 7F06AC30 00004025 */ move $t0, $zero -/* 09F764 7F06AC34 46027101 */ sub.s $f4, $f14, $f2 -/* 09F768 7F06AC38 46104282 */ mul.s $f10, $f8, $f16 -/* 09F76C 7F06AC3C 24420008 */ addiu $v0, $v0, 8 -/* 09F770 7F06AC40 46102182 */ mul.s $f6, $f4, $f16 -/* 09F774 7F06AC44 4600548D */ trunc.w.s $f18, $f10 -/* 09F778 7F06AC48 460C0280 */ add.s $f10, $f0, $f12 -/* 09F77C 7F06AC4C 44059000 */ mfc1 $a1, $f18 -/* 09F780 7F06AC50 4600320D */ trunc.w.s $f8, $f6 -/* 09F784 7F06AC54 46105482 */ mul.s $f18, $f10, $f16 -/* 09F788 7F06AC58 460E1180 */ add.s $f6, $f2, $f14 -/* 09F78C 7F06AC5C 44064000 */ mfc1 $a2, $f8 -/* 09F790 7F06AC60 46103202 */ mul.s $f8, $f6, $f16 -/* 09F794 7F06AC64 4600910D */ trunc.w.s $f4, $f18 -/* 09F798 7F06AC68 44092000 */ mfc1 $t1, $f4 -/* 09F79C 7F06AC6C 4600428D */ trunc.w.s $f10, $f8 -/* 09F7A0 7F06AC70 440A5000 */ mfc1 $t2, $f10 -/* 09F7A4 7F06AC74 052200D4 */ bltzl $t1, .L7F06AFC8 -/* 09F7A8 7F06AC78 00401825 */ move $v1, $v0 -/* 09F7AC 7F06AC7C 054200D2 */ bltzl $t2, .L7F06AFC8 -/* 09F7B0 7F06AC80 00401825 */ move $v1, $v0 -/* 09F7B4 7F06AC84 04A1002A */ bgez $a1, .L7F06AD30 -/* 09F7B8 7F06AC88 8FAC0054 */ lw $t4, 0x54($sp) -/* 09F7BC 7F06AC8C 11800015 */ beqz $t4, .L7F06ACE4 -/* 09F7C0 7F06AC90 8FAF004C */ lw $t7, 0x4c($sp) -/* 09F7C4 7F06AC94 8FAD0050 */ lw $t5, 0x50($sp) -/* 09F7C8 7F06AC98 0005C823 */ negu $t9, $a1 -/* 09F7CC 7F06AC9C 0125C023 */ subu $t8, $t1, $a1 -/* 09F7D0 7F06ACA0 032D0019 */ multu $t9, $t5 -/* 09F7D4 7F06ACA4 00007812 */ mflo $t7 -/* 09F7D8 7F06ACA8 000F7140 */ sll $t6, $t7, 5 -/* 09F7DC 7F06ACAC 00000000 */ nop -/* 09F7E0 7F06ACB0 01D8001A */ div $zero, $t6, $t8 -/* 09F7E4 7F06ACB4 00004012 */ mflo $t0 -/* 09F7E8 7F06ACB8 17000002 */ bnez $t8, .L7F06ACC4 -/* 09F7EC 7F06ACBC 00000000 */ nop -/* 09F7F0 7F06ACC0 0007000D */ break 7 -.L7F06ACC4: -/* 09F7F4 7F06ACC4 2401FFFF */ li $at, -1 -/* 09F7F8 7F06ACC8 17010004 */ bne $t8, $at, .L7F06ACDC -/* 09F7FC 7F06ACCC 3C018000 */ lui $at, 0x8000 -/* 09F800 7F06ACD0 15C10002 */ bne $t6, $at, .L7F06ACDC -/* 09F804 7F06ACD4 00000000 */ nop -/* 09F808 7F06ACD8 0006000D */ break 6 -.L7F06ACDC: -/* 09F80C 7F06ACDC 10000014 */ b .L7F06AD30 -/* 09F810 7F06ACE0 00002825 */ move $a1, $zero -.L7F06ACE4: -/* 09F814 7F06ACE4 0005C823 */ negu $t9, $a1 -/* 09F818 7F06ACE8 032F0019 */ multu $t9, $t7 -/* 09F81C 7F06ACEC 0125C823 */ subu $t9, $t1, $a1 -/* 09F820 7F06ACF0 8FAD0050 */ lw $t5, 0x50($sp) -/* 09F824 7F06ACF4 00007012 */ mflo $t6 -/* 09F828 7F06ACF8 000EC140 */ sll $t8, $t6, 5 -/* 09F82C 7F06ACFC 00000000 */ nop -/* 09F830 7F06AD00 0319001A */ div $zero, $t8, $t9 -/* 09F834 7F06AD04 00003812 */ mflo $a3 -/* 09F838 7F06AD08 17200002 */ bnez $t9, .L7F06AD14 -/* 09F83C 7F06AD0C 00000000 */ nop -/* 09F840 7F06AD10 0007000D */ break 7 -.L7F06AD14: -/* 09F844 7F06AD14 2401FFFF */ li $at, -1 -/* 09F848 7F06AD18 17210004 */ bne $t9, $at, .L7F06AD2C -/* 09F84C 7F06AD1C 3C018000 */ lui $at, 0x8000 -/* 09F850 7F06AD20 17010002 */ bne $t8, $at, .L7F06AD2C -/* 09F854 7F06AD24 00000000 */ nop -/* 09F858 7F06AD28 0006000D */ break 6 -.L7F06AD2C: -/* 09F85C 7F06AD2C 00002825 */ move $a1, $zero -.L7F06AD30: -/* 09F860 7F06AD30 8FAC0054 */ lw $t4, 0x54($sp) -/* 09F864 7F06AD34 04C1002A */ bgez $a2, .L7F06ADE0 -/* 09F868 7F06AD38 8FAD0050 */ lw $t5, 0x50($sp) -/* 09F86C 7F06AD3C 11800016 */ beqz $t4, .L7F06AD98 -/* 09F870 7F06AD40 0006C023 */ negu $t8, $a2 -/* 09F874 7F06AD44 8FAE004C */ lw $t6, 0x4c($sp) -/* 09F878 7F06AD48 00067823 */ negu $t7, $a2 -/* 09F87C 7F06AD4C 01EE0019 */ multu $t7, $t6 -/* 09F880 7F06AD50 01467823 */ subu $t7, $t2, $a2 -/* 09F884 7F06AD54 0000C012 */ mflo $t8 -/* 09F888 7F06AD58 0018C940 */ sll $t9, $t8, 5 -/* 09F88C 7F06AD5C 00000000 */ nop -/* 09F890 7F06AD60 032F001A */ div $zero, $t9, $t7 -/* 09F894 7F06AD64 00007012 */ mflo $t6 -/* 09F898 7F06AD68 00EE3821 */ addu $a3, $a3, $t6 -/* 09F89C 7F06AD6C 15E00002 */ bnez $t7, .L7F06AD78 -/* 09F8A0 7F06AD70 00000000 */ nop -/* 09F8A4 7F06AD74 0007000D */ break 7 -.L7F06AD78: -/* 09F8A8 7F06AD78 2401FFFF */ li $at, -1 -/* 09F8AC 7F06AD7C 15E10004 */ bne $t7, $at, .L7F06AD90 -/* 09F8B0 7F06AD80 3C018000 */ lui $at, 0x8000 -/* 09F8B4 7F06AD84 17210002 */ bne $t9, $at, .L7F06AD90 -/* 09F8B8 7F06AD88 00000000 */ nop -/* 09F8BC 7F06AD8C 0006000D */ break 6 -.L7F06AD90: -/* 09F8C0 7F06AD90 10000013 */ b .L7F06ADE0 -/* 09F8C4 7F06AD94 00003025 */ move $a2, $zero -.L7F06AD98: -/* 09F8C8 7F06AD98 030D0019 */ multu $t8, $t5 -/* 09F8CC 7F06AD9C 01467023 */ subu $t6, $t2, $a2 -/* 09F8D0 7F06ADA0 0000C812 */ mflo $t9 -/* 09F8D4 7F06ADA4 00197940 */ sll $t7, $t9, 5 -/* 09F8D8 7F06ADA8 00000000 */ nop -/* 09F8DC 7F06ADAC 01EE001A */ div $zero, $t7, $t6 -/* 09F8E0 7F06ADB0 0000C012 */ mflo $t8 -/* 09F8E4 7F06ADB4 01184021 */ addu $t0, $t0, $t8 -/* 09F8E8 7F06ADB8 15C00002 */ bnez $t6, .L7F06ADC4 -/* 09F8EC 7F06ADBC 00000000 */ nop -/* 09F8F0 7F06ADC0 0007000D */ break 7 -.L7F06ADC4: -/* 09F8F4 7F06ADC4 2401FFFF */ li $at, -1 -/* 09F8F8 7F06ADC8 15C10004 */ bne $t6, $at, .L7F06ADDC -/* 09F8FC 7F06ADCC 3C018000 */ lui $at, 0x8000 -/* 09F900 7F06ADD0 15E10002 */ bne $t7, $at, .L7F06ADDC -/* 09F904 7F06ADD4 00000000 */ nop -/* 09F908 7F06ADD8 0006000D */ break 6 -.L7F06ADDC: -/* 09F90C 7F06ADDC 00003025 */ move $a2, $zero -.L7F06ADE0: -/* 09F910 7F06ADE0 11800015 */ beqz $t4, .L7F06AE38 -/* 09F914 7F06ADE4 8FAE0058 */ lw $t6, 0x58($sp) -/* 09F918 7F06ADE8 8FB9004C */ lw $t9, 0x4c($sp) -/* 09F91C 7F06ADEC 46021180 */ add.s $f6, $f2, $f2 -/* 09F920 7F06ADF0 3C014480 */ li $at, 0x44800000 # 1024.000000 -/* 09F924 7F06ADF4 44999000 */ mtc1 $t9, $f18 -/* 09F928 7F06ADF8 44816000 */ mtc1 $at, $f12 -/* 09F92C 7F06ADFC 46809120 */ cvt.s.w $f4, $f18 -/* 09F930 7F06AE00 46062203 */ div.s $f8, $f4, $f6 -/* 09F934 7F06AE04 448D2000 */ mtc1 $t5, $f4 -/* 09F938 7F06AE08 00000000 */ nop -/* 09F93C 7F06AE0C 468021A0 */ cvt.s.w $f6, $f4 -/* 09F940 7F06AE10 460C4282 */ mul.s $f10, $f8, $f12 -/* 09F944 7F06AE14 46000200 */ add.s $f8, $f0, $f0 -/* 09F948 7F06AE18 4600548D */ trunc.w.s $f18, $f10 -/* 09F94C 7F06AE1C 46083283 */ div.s $f10, $f6, $f8 -/* 09F950 7F06AE20 44039000 */ mfc1 $v1, $f18 -/* 09F954 7F06AE24 460C5482 */ mul.s $f18, $f10, $f12 -/* 09F958 7F06AE28 4600910D */ trunc.w.s $f4, $f18 -/* 09F95C 7F06AE2C 44042000 */ mfc1 $a0, $f4 -/* 09F960 7F06AE30 10000014 */ b .L7F06AE84 -/* 09F964 7F06AE34 00000000 */ nop -.L7F06AE38: -/* 09F968 7F06AE38 8FB8004C */ lw $t8, 0x4c($sp) -/* 09F96C 7F06AE3C 46000280 */ add.s $f10, $f0, $f0 -/* 09F970 7F06AE40 3C014480 */ li $at, 0x44800000 # 1024.000000 -/* 09F974 7F06AE44 44983000 */ mtc1 $t8, $f6 -/* 09F978 7F06AE48 44816000 */ mtc1 $at, $f12 -/* 09F97C 7F06AE4C 46803220 */ cvt.s.w $f8, $f6 -/* 09F980 7F06AE50 460A4483 */ div.s $f18, $f8, $f10 -/* 09F984 7F06AE54 448D4000 */ mtc1 $t5, $f8 -/* 09F988 7F06AE58 00000000 */ nop -/* 09F98C 7F06AE5C 468042A0 */ cvt.s.w $f10, $f8 -/* 09F990 7F06AE60 460C9102 */ mul.s $f4, $f18, $f12 -/* 09F994 7F06AE64 46021480 */ add.s $f18, $f2, $f2 -/* 09F998 7F06AE68 4600218D */ trunc.w.s $f6, $f4 -/* 09F99C 7F06AE6C 46125103 */ div.s $f4, $f10, $f18 -/* 09F9A0 7F06AE70 44033000 */ mfc1 $v1, $f6 -/* 09F9A4 7F06AE74 460C2182 */ mul.s $f6, $f4, $f12 -/* 09F9A8 7F06AE78 4600320D */ trunc.w.s $f8, $f6 -/* 09F9AC 7F06AE7C 44044000 */ mfc1 $a0, $f8 -/* 09F9B0 7F06AE80 00000000 */ nop -.L7F06AE84: -/* 09F9B4 7F06AE84 11C00006 */ beqz $t6, .L7F06AEA0 -/* 09F9B8 7F06AE88 8FB9004C */ lw $t9, 0x4c($sp) -/* 09F9BC 7F06AE8C 272FFFFF */ addiu $t7, $t9, -1 -/* 09F9C0 7F06AE90 3C180001 */ lui $t8, 1 -/* 09F9C4 7F06AE94 000F7140 */ sll $t6, $t7, 5 -/* 09F9C8 7F06AE98 03031823 */ subu $v1, $t8, $v1 -/* 09F9CC 7F06AE9C 01C73823 */ subu $a3, $t6, $a3 -.L7F06AEA0: -/* 09F9D0 7F06AEA0 8FB8005C */ lw $t8, 0x5c($sp) -/* 09F9D4 7F06AEA4 25AFFFFF */ addiu $t7, $t5, -1 -/* 09F9D8 7F06AEA8 3C190001 */ lui $t9, 1 -/* 09F9DC 7F06AEAC 13000003 */ beqz $t8, .L7F06AEBC -/* 09F9E0 7F06AEB0 000F7140 */ sll $t6, $t7, 5 -/* 09F9E4 7F06AEB4 03242023 */ subu $a0, $t9, $a0 -/* 09F9E8 7F06AEB8 01C84023 */ subu $t0, $t6, $t0 -.L7F06AEBC: -/* 09F9EC 7F06AEBC 11800022 */ beqz $t4, .L7F06AF48 -/* 09F9F0 7F06AEC0 31390FFF */ andi $t9, $t1, 0xfff -/* 09F9F4 7F06AEC4 31380FFF */ andi $t8, $t1, 0xfff -/* 09F9F8 7F06AEC8 0018CB00 */ sll $t9, $t8, 0xc -/* 09F9FC 7F06AECC 3C01E500 */ lui $at, 0xe500 -/* 09FA00 7F06AED0 03217825 */ or $t7, $t9, $at -/* 09FA04 7F06AED4 314E0FFF */ andi $t6, $t2, 0xfff -/* 09FA08 7F06AED8 01EEC025 */ or $t8, $t7, $t6 -/* 09FA0C 7F06AEDC 30B90FFF */ andi $t9, $a1, 0xfff -/* 09FA10 7F06AEE0 00406025 */ move $t4, $v0 -/* 09FA14 7F06AEE4 AD980000 */ sw $t8, ($t4) -/* 09FA18 7F06AEE8 00197B00 */ sll $t7, $t9, 0xc -/* 09FA1C 7F06AEEC 30CE0FFF */ andi $t6, $a2, 0xfff -/* 09FA20 7F06AEF0 01EEC025 */ or $t8, $t7, $t6 -/* 09FA24 7F06AEF4 AD980004 */ sw $t8, 4($t4) -/* 09FA28 7F06AEF8 24420008 */ addiu $v0, $v0, 8 -/* 09FA2C 7F06AEFC 00406825 */ move $t5, $v0 -/* 09FA30 7F06AF00 3C19B400 */ lui $t9, 0xb400 -/* 09FA34 7F06AF04 ADB90000 */ sw $t9, ($t5) -/* 09FA38 7F06AF08 3118FFFF */ andi $t8, $t0, 0xffff -/* 09FA3C 7F06AF0C 00077400 */ sll $t6, $a3, 0x10 -/* 09FA40 7F06AF10 01D8C825 */ or $t9, $t6, $t8 -/* 09FA44 7F06AF14 ADB90004 */ sw $t9, 4($t5) -/* 09FA48 7F06AF18 24420008 */ addiu $v0, $v0, 8 -/* 09FA4C 7F06AF1C AFA2000C */ sw $v0, 0xc($sp) -/* 09FA50 7F06AF20 8FAE000C */ lw $t6, 0xc($sp) -/* 09FA54 7F06AF24 3C0FB300 */ lui $t7, 0xb300 -/* 09FA58 7F06AF28 0003CC00 */ sll $t9, $v1, 0x10 -/* 09FA5C 7F06AF2C ADCF0000 */ sw $t7, ($t6) -/* 09FA60 7F06AF30 8FB8000C */ lw $t8, 0xc($sp) -/* 09FA64 7F06AF34 308FFFFF */ andi $t7, $a0, 0xffff -/* 09FA68 7F06AF38 032F7025 */ or $t6, $t9, $t7 -/* 09FA6C 7F06AF3C 24420008 */ addiu $v0, $v0, 8 -/* 09FA70 7F06AF40 10000020 */ b .L7F06AFC4 -/* 09FA74 7F06AF44 AF0E0004 */ sw $t6, 4($t8) -.L7F06AF48: -/* 09FA78 7F06AF48 00197B00 */ sll $t7, $t9, 0xc -/* 09FA7C 7F06AF4C 3C01E400 */ lui $at, 0xe400 -/* 09FA80 7F06AF50 01E17025 */ or $t6, $t7, $at -/* 09FA84 7F06AF54 31580FFF */ andi $t8, $t2, 0xfff -/* 09FA88 7F06AF58 01D8C825 */ or $t9, $t6, $t8 -/* 09FA8C 7F06AF5C 30AF0FFF */ andi $t7, $a1, 0xfff -/* 09FA90 7F06AF60 00406025 */ move $t4, $v0 -/* 09FA94 7F06AF64 AD990000 */ sw $t9, ($t4) -/* 09FA98 7F06AF68 000F7300 */ sll $t6, $t7, 0xc -/* 09FA9C 7F06AF6C 30D80FFF */ andi $t8, $a2, 0xfff -/* 09FAA0 7F06AF70 01D8C825 */ or $t9, $t6, $t8 -/* 09FAA4 7F06AF74 AD990004 */ sw $t9, 4($t4) -/* 09FAA8 7F06AF78 24420008 */ addiu $v0, $v0, 8 -/* 09FAAC 7F06AF7C 00406825 */ move $t5, $v0 -/* 09FAB0 7F06AF80 3C0FB400 */ lui $t7, 0xb400 -/* 09FAB4 7F06AF84 ADAF0000 */ sw $t7, ($t5) -/* 09FAB8 7F06AF88 3119FFFF */ andi $t9, $t0, 0xffff -/* 09FABC 7F06AF8C 0007C400 */ sll $t8, $a3, 0x10 -/* 09FAC0 7F06AF90 03197825 */ or $t7, $t8, $t9 -/* 09FAC4 7F06AF94 ADAF0004 */ sw $t7, 4($t5) -/* 09FAC8 7F06AF98 24420008 */ addiu $v0, $v0, 8 -/* 09FACC 7F06AF9C AFA20000 */ sw $v0, ($sp) -/* 09FAD0 7F06AFA0 8FB80000 */ lw $t8, ($sp) -/* 09FAD4 7F06AFA4 3C0EB300 */ lui $t6, 0xb300 -/* 09FAD8 7F06AFA8 00037C00 */ sll $t7, $v1, 0x10 -/* 09FADC 7F06AFAC AF0E0000 */ sw $t6, ($t8) -/* 09FAE0 7F06AFB0 8FB90000 */ lw $t9, ($sp) -/* 09FAE4 7F06AFB4 308EFFFF */ andi $t6, $a0, 0xffff -/* 09FAE8 7F06AFB8 01EEC025 */ or $t8, $t7, $t6 -/* 09FAEC 7F06AFBC 24420008 */ addiu $v0, $v0, 8 -/* 09FAF0 7F06AFC0 AF380004 */ sw $t8, 4($t9) -.L7F06AFC4: -/* 09FAF4 7F06AFC4 00401825 */ move $v1, $v0 -.L7F06AFC8: -/* 09FAF8 7F06AFC8 3C0F0008 */ lui $t7, 8 -/* 09FAFC 7F06AFCC AC6F0004 */ sw $t7, 4($v1) -/* 09FB00 7F06AFD0 AC6B0000 */ sw $t3, ($v1) -/* 09FB04 7F06AFD4 8FAE0040 */ lw $t6, 0x40($sp) -/* 09FB08 7F06AFD8 24420008 */ addiu $v0, $v0, 8 -/* 09FB0C 7F06AFDC ADC20000 */ sw $v0, ($t6) -.L7F06AFE0: -/* 09FB10 7F06AFE0 03E00008 */ jr $ra -/* 09FB14 7F06AFE4 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif - - - - - -#ifdef NONMATCHING -f32 display_image_at_on_screen_coord(void *arg0, void *arg2, ?32 arg4, ?32 arg5, ?32 arg6, ?32 arg7, s32 arg8, s32 arg9, s32 argA, s32 argB, s32 argC, s32 argD) { - void *temp_v0; - void *phi_v0; - f32 phi_return_reg; - - // Node 0 - phi_return_reg = 0.0f; - if (0.0f < *arg2) - { - // Node 1 - phi_return_reg = 0.0f; - if (0.0f < arg2->unk4) - { - // Node 2 - **arg0 = 0xfb000000; - *arg0->unk4 = (s32) ((((arg8 << 0x18) | ((arg9 & 0xff) << 0x10)) | ((argA & 0xff) << 8)) | (argB & 0xff)); - temp_v0 = (*arg0 + 8); - if (argC != 0) - { - // Node 3 - *temp_v0 = 0xfc26a005; - temp_v0->unk4 = 0x1f1493ff; - phi_v0 = (temp_v0 + 8); - } - else - { - // Node 4 - if (argD != 0) - { - // Node 5 - temp_v0->unk4 = -0x1c8; - *temp_v0 = 0xfc129bff; - phi_v0 = (temp_v0 + 8); + t += ((-xl * height) << 5) / (xh - xl); } else { - // Node 6 - *temp_v0 = 0xfc129a25; - temp_v0->unk4 = 0xff37ffff; - phi_v0 = (temp_v0 + 8); + s += ((-xl * width) << 5) / (xh - xl); } + + xl = 0; + } + + if (yl < 0) + { + if (arg5) + { + s += ((-yl * width) << 5) / (yh - yl); + } + else + { + t += ((-yl * height) << 5) / (yh - yl); + } + + yl = 0; + } + + if (arg5) + { + dsdx = width / (2.0f * arg2[1]) * 1024.0f; + dtdy = height / (2.0f * arg2[0]) * 1024.0f; + } + else + { + dsdx = width / (2.0f * arg2[0]) * 1024.0f; + dtdy = height / (2.0f * arg2[1]) * 1024.0f; + } + + if (arg6) + { + dsdx = 0x10000 - dsdx; + s = ((width - 1) << 5) - s; + } + + if (arg7) + { + dtdy = 0x10000 - dtdy; + t = ((height - 1) << 5) - t; + } + + if (arg5) + { + gSPTextureRectangleFlip(gdl++, xl, yl, xh, yh, G_TX_RENDERTILE, s, t, dsdx, dtdy); + } + else + { + gSPTextureRectangle(gdl++, xl, yl, xh, yh, G_TX_RENDERTILE, s, t, dsdx, dtdy); } - // Node 7 - *arg0 = (void *) phi_v0; - phi_return_reg = sub_GAME_7F06ABB0(arg4, arg5, arg6, arg7); } + + gDPSetTexturePersp(gdl++, G_TP_PERSP); + + *gdlptr = gdl; } - // Node 8 - return phi_return_reg; } -#else -GLOBAL_ASM( -.text -glabel display_image_at_on_screen_coord -/* 09FB18 7F06AFE8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09FB1C 7F06AFEC AFBF0024 */ sw $ra, 0x24($sp) -/* 09FB20 7F06AFF0 44800000 */ mtc1 $zero, $f0 -/* 09FB24 7F06AFF4 C4C40000 */ lwc1 $f4, ($a2) -/* 09FB28 7F06AFF8 4604003C */ c.lt.s $f0, $f4 -/* 09FB2C 7F06AFFC 00000000 */ nop -/* 09FB30 7F06B000 45020041 */ bc1fl .L7F06B108 -/* 09FB34 7F06B004 8FBF0024 */ lw $ra, 0x24($sp) -/* 09FB38 7F06B008 C4C60004 */ lwc1 $f6, 4($a2) -/* 09FB3C 7F06B00C 4606003C */ c.lt.s $f0, $f6 -/* 09FB40 7F06B010 00000000 */ nop -/* 09FB44 7F06B014 4502003C */ bc1fl .L7F06B108 -/* 09FB48 7F06B018 8FBF0024 */ lw $ra, 0x24($sp) -/* 09FB4C 7F06B01C 8C820000 */ lw $v0, ($a0) -/* 09FB50 7F06B020 3C0EFB00 */ lui $t6, 0xfb00 -/* 09FB54 7F06B024 00401825 */ move $v1, $v0 -/* 09FB58 7F06B028 AC6E0000 */ sw $t6, ($v1) -/* 09FB5C 7F06B02C 8FB80048 */ lw $t8, 0x48($sp) -/* 09FB60 7F06B030 8FA8004C */ lw $t0, 0x4c($sp) -/* 09FB64 7F06B034 8FAC0050 */ lw $t4, 0x50($sp) -/* 09FB68 7F06B038 0018CE00 */ sll $t9, $t8, 0x18 -/* 09FB6C 7F06B03C 8FB80054 */ lw $t8, 0x54($sp) -/* 09FB70 7F06B040 310900FF */ andi $t1, $t0, 0xff -/* 09FB74 7F06B044 00095400 */ sll $t2, $t1, 0x10 -/* 09FB78 7F06B048 318D00FF */ andi $t5, $t4, 0xff -/* 09FB7C 7F06B04C 000D7200 */ sll $t6, $t5, 8 -/* 09FB80 7F06B050 032A5825 */ or $t3, $t9, $t2 -/* 09FB84 7F06B054 016E7825 */ or $t7, $t3, $t6 -/* 09FB88 7F06B058 330800FF */ andi $t0, $t8, 0xff -/* 09FB8C 7F06B05C 01E84825 */ or $t1, $t7, $t0 -/* 09FB90 7F06B060 AC690004 */ sw $t1, 4($v1) -/* 09FB94 7F06B064 8FB90058 */ lw $t9, 0x58($sp) -/* 09FB98 7F06B068 24420008 */ addiu $v0, $v0, 8 -/* 09FB9C 7F06B06C 00401825 */ move $v1, $v0 -/* 09FBA0 7F06B070 13200009 */ beqz $t9, .L7F06B098 -/* 09FBA4 7F06B074 8FAD005C */ lw $t5, 0x5c($sp) -/* 09FBA8 7F06B078 3C0AFC26 */ lui $t2, (0xFC26A005 >> 16) # lui $t2, 0xfc26 -/* 09FBAC 7F06B07C 3C0C1F14 */ lui $t4, (0x1F1493FF >> 16) # lui $t4, 0x1f14 -/* 09FBB0 7F06B080 358C93FF */ ori $t4, (0x1F1493FF & 0xFFFF) # ori $t4, $t4, 0x93ff -/* 09FBB4 7F06B084 354AA005 */ ori $t2, (0xFC26A005 & 0xFFFF) # ori $t2, $t2, 0xa005 -/* 09FBB8 7F06B088 AC6A0000 */ sw $t2, ($v1) -/* 09FBBC 7F06B08C AC6C0004 */ sw $t4, 4($v1) -/* 09FBC0 7F06B090 10000012 */ b .L7F06B0DC -/* 09FBC4 7F06B094 24420008 */ addiu $v0, $v0, 8 -.L7F06B098: -/* 09FBC8 7F06B098 11A00009 */ beqz $t5, .L7F06B0C0 -/* 09FBCC 7F06B09C 00401825 */ move $v1, $v0 -/* 09FBD0 7F06B0A0 00401825 */ move $v1, $v0 -/* 09FBD4 7F06B0A4 3C0BFC12 */ lui $t3, (0xFC129BFF >> 16) # lui $t3, 0xfc12 -/* 09FBD8 7F06B0A8 356B9BFF */ ori $t3, (0xFC129BFF & 0xFFFF) # ori $t3, $t3, 0x9bff -/* 09FBDC 7F06B0AC 240EFE38 */ li $t6, -456 -/* 09FBE0 7F06B0B0 AC6E0004 */ sw $t6, 4($v1) -/* 09FBE4 7F06B0B4 AC6B0000 */ sw $t3, ($v1) -/* 09FBE8 7F06B0B8 10000008 */ b .L7F06B0DC -/* 09FBEC 7F06B0BC 24420008 */ addiu $v0, $v0, 8 -.L7F06B0C0: -/* 09FBF0 7F06B0C0 3C18FC12 */ lui $t8, (0xFC129A25 >> 16) # lui $t8, 0xfc12 -/* 09FBF4 7F06B0C4 3C0FFF37 */ lui $t7, (0xFF37FFFF >> 16) # lui $t7, 0xff37 -/* 09FBF8 7F06B0C8 35EFFFFF */ ori $t7, (0xFF37FFFF & 0xFFFF) # ori $t7, $t7, 0xffff -/* 09FBFC 7F06B0CC 37189A25 */ ori $t8, (0xFC129A25 & 0xFFFF) # ori $t8, $t8, 0x9a25 -/* 09FC00 7F06B0D0 AC780000 */ sw $t8, ($v1) -/* 09FC04 7F06B0D4 AC6F0004 */ sw $t7, 4($v1) -/* 09FC08 7F06B0D8 24420008 */ addiu $v0, $v0, 8 -.L7F06B0DC: -/* 09FC0C 7F06B0DC AC820000 */ sw $v0, ($a0) -/* 09FC10 7F06B0E0 8FAA0044 */ lw $t2, 0x44($sp) -/* 09FC14 7F06B0E4 8FB90040 */ lw $t9, 0x40($sp) -/* 09FC18 7F06B0E8 8FA9003C */ lw $t1, 0x3c($sp) -/* 09FC1C 7F06B0EC 8FA80038 */ lw $t0, 0x38($sp) -/* 09FC20 7F06B0F0 AFAA001C */ sw $t2, 0x1c($sp) -/* 09FC24 7F06B0F4 AFB90018 */ sw $t9, 0x18($sp) -/* 09FC28 7F06B0F8 AFA90014 */ sw $t1, 0x14($sp) -/* 09FC2C 7F06B0FC 0FC1AAEC */ jal sub_GAME_7F06ABB0 -/* 09FC30 7F06B100 AFA80010 */ sw $t0, 0x10($sp) -/* 09FC34 7F06B104 8FBF0024 */ lw $ra, 0x24($sp) -.L7F06B108: -/* 09FC38 7F06B108 27BD0028 */ addiu $sp, $sp, 0x28 -/* 09FC3C 7F06B10C 03E00008 */ jr $ra -/* 09FC40 7F06B110 00000000 */ nop -) -#endif +void display_image_at_on_screen_coord(Gfx **gdlptr, f32 *arg1, f32 *arg2, s32 twidth, u32 theight, u32 arg5, u32 arg6, u32 arg7, u32 r, u32 g, u32 b, u32 alpha, u32 arg12, u32 arg13) +{ + if (arg2[0] > 0.0f && arg2[1] > 0.0f) + { + Gfx *gdl = *gdlptr; + gDPSetEnvColor(gdl++, r, g, b, alpha); + if (arg12) + { + gDPSetCombineLERP(gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, ENVIRONMENT, 0, COMBINED, 0, ENVIRONMENT, 0); + } + else if (arg13) + { + gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED); + } + else + { + gDPSetCombineLERP(gdl++, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, ENVIRONMENT, 0); + } + + *gdlptr = gdl; + + sub_GAME_7F06ABB0(gdlptr, arg1, arg2, twidth, theight, arg5, arg6, arg7); + } +} diff --git a/src/game/cheat_buttons.c b/src/game/cheat_buttons.c index ed307548..ae13555a 100644 --- a/src/game/cheat_buttons.c +++ b/src/game/cheat_buttons.c @@ -1242,19 +1242,19 @@ void cheatButtonHandleCheatsTurnedOn(CHEAT_ID cheat_id) return; case CHEAT_FAST_ANIMATION: - if (get_animation_rate() < 4.0f) + if (getAnimationRate() < 4.0f) { HUDMESSAGEBOTTOM((char *)langGet(TEXT(LMISC, 0x34))); - animation_speed_related(4.0f); + setAnimationRate(4.0f); return; } return; case CHEAT_SLOW_ANIMATION: - if (get_animation_rate() > 0.25f) + if (getAnimationRate() > 0.25f) { HUDMESSAGEBOTTOM((char *)langGet(TEXT(LMISC, 0x32))); - animation_speed_related(0.25); + setAnimationRate(0.25); return; } return; diff --git a/src/game/chr.c b/src/game/chr.c index e135e0be..5613c2ad 100644 --- a/src/game/chr.c +++ b/src/game/chr.c @@ -151,352 +151,352 @@ f32 g_AiReactionSpeed = 1.0f; s32 g_SeenBondRecentlyGuardCount = 0; struct struck_animation_table D_8002CE54[] = { - {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0}, {0, 0, 0.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002CEE0[] = { - {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0}, {0, 0, 0.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002CF6C[] = { - {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, - {0x540C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, 0.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D014[] = { - {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0}, {0, 0, 0.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D0A0[] = { - {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0}, {0, 0, 0.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D12C[] = { - {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, - {0x540C, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, 0.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D1D4[] = { - {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, - {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, - {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, - {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, - {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, - {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, - {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, - {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, - {0x282C, 0, -1.0, 0.5, 0, 79.0, 415.0}, - {0x282C, 1, -1.0, 0.5, 0, 79.0, 415.0}, + {PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_genitalia, 0, -1.0, 0.5, 0, 79.0, 415.0}, + {PTR_ANIM_death_genitalia, 1, -1.0, 0.5, 0, 79.0, 415.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D3B0[] = { - {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, - {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, - {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, - {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, - {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, - {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, - {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, - {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, - {0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0}, - {0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0}, - {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, - {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, - {0x2E64, 0, -1.0, 0.5, 0, 87.0, 203.0}, - {0x2E64, 1, -1.0, 0.5, 0, 87.0, 203.0}, - {0x51C4, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x51C4, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, -1.0, 0.5, 0, 94.0, 66.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, -1.0, 0.5, 0, 94.0, 66.0}, + {PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_neck, 0, -1.0, 0.5, 0, 87.0, 203.0}, + {PTR_ANIM_death_neck, 1, -1.0, 0.5, 0, 87.0, 203.0}, + {PTR_ANIM_death_head, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_head, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D6DC[] = { - {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D768[] = { - {0x35C8, 0, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 0, 26.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 0, 23.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D7F4[] = { - {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D880[] = { - {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D90C[] = { - {0x33AC, 0, -1.0, 0.5, 0, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 0, 23.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 0, 27.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 0, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 0, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 0, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 0, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 0, 26.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002D998[] = { - {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002DA24[] = { - {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, - {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, - {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, - {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, - {0x33AC, 0, -1.0, 0.5, 1, 25.0, -1.0}, - {0x33AC, 1, -1.0, 0.5, 1, 25.0, -1.0}, - {0x34D4, 0, -1.0, 0.5, 1, 23.0, -1.0}, - {0x34D4, 1, -1.0, 0.5, 1, 23.0, -1.0}, - {0x35C8, 0, -1.0, 0.5, 1, 27.0, -1.0}, - {0x35C8, 1, -1.0, 0.5, 1, 27.0, -1.0}, - {0x36D8, 0, -1.0, 0.5, 1, 26.0, -1.0}, - {0x36D8, 1, -1.0, 0.5, 1, 26.0, -1.0}, - {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, - {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, - {0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0}, - {0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0}, - {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, - {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 0, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_right, 1, -1.0, 0.5, 1, 25.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 0, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_right, 1, -1.0, 0.5, 1, 23.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 0, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_down_left, 1, -1.0, 0.5, 1, 27.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 0, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_backward_spin_face_up_left, 1, -1.0, 0.5, 1, 26.0, -1.0}, + {PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, -1.0, 0.5, 0, 94.0, 66.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, -1.0, 0.5, 0, 94.0, 66.0}, + {PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002DCE0[] = { - {0x30B8, 0, -1.0, 0.5, 0, 55.0, 39.0}, - {0x30B8, 1, -1.0, 0.5, 0, 55.0, 39.0}, - {0x31DC, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x31DC, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x32C8, 0, -1.0, 0.5, 1, 29.0, -1.0}, - {0x32C8, 1, -1.0, 0.5, 1, 29.0, -1.0}, - {0x384C, 0, -1.0, 0.5, 0, 97.0, 64.0}, - {0x384C, 1, -1.0, 0.5, 0, 97.0, 64.0}, - {0x39C0, 0, -1.0, 0.5, 0, 94.0, 66.0}, - {0x39C0, 1, -1.0, 0.5, 0, 94.0, 66.0}, - {0x3AF0, 0, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3AF0, 1, -1.0, 0.5, 0, 31.0, -1.0}, - {0x3C10, 0, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3C10, 1, -1.0, 0.5, 0, 36.0, -1.0}, - {0x3D04, 0, -1.0, 0.5, 0, 28.0, -1.0}, - {0x3D04, 1, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_face_down, 1, -1.0, 0.5, 0, 55.0, 39.0}, + {PTR_ANIM_death_forward_spin_face_up, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_forward_spin_face_up, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 0, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up1, 1, -1.0, 0.5, 1, 29.0, -1.0}, + {PTR_ANIM_death_forward_face_down_hard, 0, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_hard, 1, -1.0, 0.5, 0, 97.0, 64.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, -1.0, 0.5, 0, 94.0, 66.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, -1.0, 0.5, 0, 94.0, 66.0}, + {PTR_ANIM_death_fetal_position_right, 0, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_right, 1, -1.0, 0.5, 0, 31.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 0, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_fetal_position_left, 1, -1.0, 0.5, 0, 36.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 0, -1.0, 0.5, 0, 28.0, -1.0}, + {PTR_ANIM_death_backward_fall_face_up2, 1, -1.0, 0.5, 0, 28.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002DEBC[] = { - {0x2F94, 0, -1.0, 0.5, 0, 67.0, 54.0}, - {0x2F94, 1, -1.0, 0.5, 0, 67.0, 54.0}, + {PTR_ANIM_death_stagger_back_to_wall, 0, -1.0, 0.5, 0, 67.0, 54.0}, + {PTR_ANIM_death_stagger_back_to_wall, 1, -1.0, 0.5, 0, 67.0, 54.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002DF10[] = { - {0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002DF64[] = { - {0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002DFB8[] = { - {0x1F84, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x2134, 1, -1.0, 0.5, 0, -1.0, -1.0}, - {0x540C, 1, 20.0, 0.40000001, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_left_leg, 1, 20.0, 0.40000001, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E028[] = { - {0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E07C[] = { - {0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E0D0[] = { - {0x2134, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1F84, 1, -1.0, 0.5, 0, -1.0, -1.0}, - {0x540C, 0, 20.0, 0.40000001, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_leg, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_leg, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_left_leg, 0, 20.0, 0.40000001, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E140[] = { - {0x282C, 0, 20.0, 0.5, 0, -1.0, -1.0}, - {0x282C, 1, 30.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, - {0x3AF0, 0, 10.0, 0.25, 0, -1.0, -1.0}, - {0x3AF0, 1, 10.0, 0.25, 0, -1.0, -1.0}, + {PTR_ANIM_death_genitalia, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_genitalia, 1, 30.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_fetal_position_right, 0, 10.0, 0.25, 0, -1.0, -1.0}, + {PTR_ANIM_death_fetal_position_right, 1, 10.0, 0.25, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E23C[] = { - {0x2E64, 0, 15.0, 0.5, 0, 87.0, 203.0}, - {0x2E64, 1, 15.0, 0.5, 0, 87.0, 203.0}, - {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_neck, 0, 15.0, 0.5, 0, 87.0, 203.0}, + {PTR_ANIM_death_neck, 1, 15.0, 0.5, 0, 87.0, 203.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E300[] = { - {0x1C9C, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1E40, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_hand, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_hand, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E354[] = { - {0x1A6C, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1B54, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_arm, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_arm, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E3A8[] = { - {0x186C, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1984, 1, -1.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_shoulder, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_shoulder, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E418[] = { - {0x1E40, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1C9C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_hand, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_hand, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E46C[] = { - {0x1B54, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x1A6C, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_arm, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_arm, 1, -1.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E4C0[] = { - {0x1984, 0, -1.0, 0.5, 0, -1.0, -1.0}, - {0x186C, 1, -1.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_right_shoulder, 0, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_hit_left_shoulder, 1, -1.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E530[] = { - {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct struck_animation_table D_8002E5BC[] = { - {0x39C0, 0, 20.0, 0.5, 0, -1.0, -1.0}, - {0x39C0, 1, 20.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 0, 15.0, 0.5, 0, -1.0, -1.0}, - {0x30B8, 1, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 0, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down_soft, 1, 20.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 0, 15.0, 0.5, 0, -1.0, -1.0}, + {PTR_ANIM_death_forward_face_down, 1, 15.0, 0.5, 0, -1.0, -1.0}, {0, 0, -1.0, 0.5, 0, -1.0, -1.0} }; struct explosion_death_animation D_8002E648[] = { - {0x98C8, 0, 0.5, 9.0, 18.0, 29.0, -1.0}, - {0x98C8, 1, 0.5, 9.0, 18.0, 29.0, -1.0}, - {0xA1B8, 0, 0.5, 11.0, 19.0, 31.0, -1.0}, - {0xA1B8, 1, 0.5, 11.0, 19.0, 31.0, -1.0}, - {0xA094, 0, 0.5, 6.0, 20.0, 27.0, -1.0}, - {0xA094, 1, 0.5, 6.0, 20.0, 27.0, -1.0}, - {0xA424, 0, 0.5, 29.0, 36.0, 48.0, -1.0}, - {0xA424, 1, 0.5, 29.0, 36.0, 48.0, -1.0}, - {0xA538, 0, 0.5, 29.0, 38.0, 49.0, -1.0}, - {0xA538, 1, 0.5, 29.0, 38.0, 49.0, -1.0}, - {0xA650, 0, 0.5, 19.0, 30.0, 42.0, -1.0}, - {0xA650, 1, 0.5, 19.0, 30.0, 42.0, -1.0}, - {0x9A2C, 0, 0.5, 9.0, 21.0, 29.0, 55.0}, - {0x9A2C, 1, 0.5, 9.0, 21.0, 29.0, 55.0}, - {0x9D5C, 0, 0.5, 6.0, 18.0, 27.0, -1.0}, - {0x9D5C, 1, 0.5, 6.0, 18.0, 27.0, -1.0}, - {0x9E44, 0, 0.5, 6.0, 19.0, 29.0, -1.0}, - {0x9E44, 1, 0.5, 6.0, 19.0, 29.0, -1.0}, - {0x9B48, 0, 0.5, 8.0, 14.0, 25.0, -1.0}, - {0x9B48, 1, 0.5, 8.0, 14.0, 25.0, -1.0}, - {0x9C4C, 0, 0.5, 8.0, 19.0, 25.0, -1.0}, - {0x9C4C, 1, 0.5, 8.0, 19.0, 25.0, -1.0}, - {0x9F48, 0, 0.5, 12.0, 21.0, 29.0, -1.0}, - {0x9F48, 1, 0.5, 12.0, 21.0, 29.0, -1.0}, - {0xA2F8, 0, 0.5, 22.0, 30.0, 41.0, -1.0}, - {0xA2F8, 1, 0.5, 22.0, 30.0, 41.0, -1.0}, + {PTR_ANIM_death_explosion_forward, 0, 0.5, 9.0, 18.0, 29.0, -1.0}, + {PTR_ANIM_death_explosion_forward, 1, 0.5, 9.0, 18.0, 29.0, -1.0}, + {PTR_ANIM_death_explosion_forward_face_down, 0, 0.5, 11.0, 19.0, 31.0, -1.0}, + {PTR_ANIM_death_explosion_forward_face_down, 1, 0.5, 11.0, 19.0, 31.0, -1.0}, + {PTR_ANIM_death_explosion_forward_roll, 0, 0.5, 6.0, 20.0, 27.0, -1.0}, + {PTR_ANIM_death_explosion_forward_roll, 1, 0.5, 6.0, 20.0, 27.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right2, 0, 0.5, 29.0, 36.0, 48.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right2, 1, 0.5, 29.0, 36.0, 48.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right2_alt, 0, 0.5, 29.0, 38.0, 49.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right2_alt, 1, 0.5, 29.0, 38.0, 49.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right3, 0, 0.5, 19.0, 30.0, 42.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right3, 1, 0.5, 19.0, 30.0, 42.0, -1.0}, + {PTR_ANIM_death_explosion_left1, 0, 0.5, 9.0, 21.0, 29.0, 55.0}, + {PTR_ANIM_death_explosion_left1, 1, 0.5, 9.0, 21.0, 29.0, 55.0}, + {PTR_ANIM_death_explosion_right, 0, 0.5, 6.0, 18.0, 27.0, -1.0}, + {PTR_ANIM_death_explosion_right, 1, 0.5, 6.0, 18.0, 27.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right1, 0, 0.5, 6.0, 19.0, 29.0, -1.0}, + {PTR_ANIM_death_explosion_forward_right1, 1, 0.5, 6.0, 19.0, 29.0, -1.0}, + {PTR_ANIM_death_explosion_back_left, 0, 0.5, 8.0, 14.0, 25.0, -1.0}, + {PTR_ANIM_death_explosion_back_left, 1, 0.5, 8.0, 14.0, 25.0, -1.0}, + {PTR_ANIM_death_explosion_back1, 0, 0.5, 8.0, 19.0, 25.0, -1.0}, + {PTR_ANIM_death_explosion_back1, 1, 0.5, 8.0, 19.0, 25.0, -1.0}, + {PTR_ANIM_death_explosion_back2, 0, 0.5, 12.0, 21.0, 29.0, -1.0}, + {PTR_ANIM_death_explosion_back2, 1, 0.5, 12.0, 21.0, 29.0, -1.0}, + {PTR_ANIM_death_explosion_left2, 0, 0.5, 22.0, 30.0, 41.0, -1.0}, + {PTR_ANIM_death_explosion_left2, 1, 0.5, 22.0, 30.0, 41.0, -1.0}, {0, 0, 0.5, 0.0, 0.0, 0.0, -1.0}, }; @@ -1791,7 +1791,7 @@ glabel sub_GAME_7F01FC10 /* 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 +/* 054900 7F01FDD0 0FC1B1E7 */ jal modelGetNodeRwData /* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) /* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) /* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) @@ -2114,7 +2114,7 @@ glabel sub_GAME_7F01FC10 /* 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 +/* 054900 7F01FDD0 0FC1B1E7 */ jal modelGetNodeRwData /* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) /* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) /* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) @@ -2382,7 +2382,7 @@ glabel sub_GAME_7F01FC10 /* 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 +/* 054900 7F01FDD0 0FC1B1E7 */ jal modelGetNodeRwData /* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) /* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) /* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) @@ -2634,7 +2634,7 @@ glabel init_GUARDdata_with_set_values /* 054CC4 7F020194 3C058003 */ lui $a1, %hi(animation_rate) /* 054CC8 7F020198 8CA5C900 */ lw $a1, %lo(animation_rate)($a1) /* 054CCC 7F02019C 4406A000 */ mfc1 $a2, $f20 -/* 054CD0 7F0201A0 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 054CD0 7F0201A0 0FC1BFC6 */ jal modelSetAnimRateForDuration /* 054CD4 7F0201A4 02402025 */ move $a0, $s2 /* 054CD8 7F0201A8 3C028003 */ lui $v0, %hi(player1_guardID) /* 054CDC 7F0201AC 2442CC60 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x33a0 @@ -2843,7 +2843,7 @@ glabel init_GUARDdata_with_set_values /* 0529F8 7F020008 46105482 */ mul.s $f18, $f10, $f16 /* 0529FC 7F02000C 4406A000 */ mfc1 $a2, $f20 /* 052A00 7F020010 44059000 */ mfc1 $a1, $f18 -/* 052A04 7F020014 0FC1C02E */ jal sub_GAME_7F06FF18 +/* 052A04 7F020014 0FC1C02E */ jal modelSetAnimRateForDuration /* 052A08 7F020018 00000000 */ nop /* 052A0C 7F02001C 3C028003 */ lui $v0, %hi(player1_guardID) # $v0, 0x8003 /* 052A10 7F020020 244281B0 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x7e50 @@ -3160,7 +3160,7 @@ glabel disable_sounds_attached_to_player_then_something * Address 0x7F020540 (VERSION_US, VERSION_JP). * Address 0x7F0203B4 (VERSION_EU). */ -void animation_speed_related(f32 arg0) +void setAnimationRate(f32 arg0) { s32 i; @@ -3172,9 +3172,9 @@ void animation_speed_related(f32 arg0) { #if defined(REFRESH_PAL) /* should reference D_80047E4C (1.2f) */ - sub_GAME_7F06FF18(ptr_guard_data[i].model, animation_rate * 1.2f, 600.0f); + modelSetAnimRateForDuration(ptr_guard_data[i].model, animation_rate * 1.2f, 600.0f); #else - sub_GAME_7F06FF18(ptr_guard_data[i].model, animation_rate, 600.0f); + modelSetAnimRateForDuration(ptr_guard_data[i].model, animation_rate, 600.0f); #endif } } @@ -3183,7 +3183,7 @@ void animation_speed_related(f32 arg0) -f32 get_animation_rate(void) +f32 getAnimationRate(void) { return animation_rate; } @@ -5040,7 +5040,7 @@ glabel sub_GAME_7F020EF0 /* 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 +/* 056514 7F0219E4 0FC1B1E7 */ jal modelGetNodeRwData /* 056518 7F0219E8 01A02025 */ move $a0, $t5 /* 05651C 7F0219EC 8C430000 */ lw $v1, ($v0) /* 056520 7F0219F0 10600009 */ beqz $v1, .L7F021A18 @@ -5049,7 +5049,7 @@ glabel sub_GAME_7F020EF0 /* 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 +/* 056538 7F021A08 0FC1B1E7 */ jal modelGetNodeRwData /* 05653C 7F021A0C 8FA40110 */ lw $a0, 0x110($sp) /* 056540 7F021A10 8FB90108 */ lw $t9, 0x108($sp) /* 056544 7F021A14 AC590000 */ sw $t9, ($v0) @@ -5912,7 +5912,7 @@ glabel sub_GAME_7F020EF0 /* 056830 7F021CC0 8DC50010 */ lw $a1, 0x10($t6) /* 056834 7F021CC4 10A0000E */ beqz $a1, .Ljp7F021D00 /* 056838 7F021CC8 00000000 */ nop -/* 05683C 7F021CCC 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 05683C 7F021CCC 0FC1B363 */ jal modelGetNodeRwData /* 056840 7F021CD0 03002025 */ move $a0, $t8 /* 056844 7F021CD4 8C430000 */ lw $v1, ($v0) /* 056848 7F021CD8 10600009 */ beqz $v1, .Ljp7F021D00 @@ -5921,7 +5921,7 @@ glabel sub_GAME_7F020EF0 /* 056854 7F021CE4 8D050004 */ lw $a1, 4($t0) /* 056858 7F021CE8 10A00005 */ beqz $a1, .Ljp7F021D00 /* 05685C 7F021CEC 00000000 */ nop -/* 056860 7F021CF0 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 056860 7F021CF0 0FC1B363 */ jal modelGetNodeRwData /* 056864 7F021CF4 8FA40110 */ lw $a0, 0x110($sp) /* 056868 7F021CF8 8FAF0108 */ lw $t7, 0x108($sp) /* 05686C 7F021CFC AC4F0000 */ sw $t7, ($v0) @@ -6838,7 +6838,7 @@ glabel sub_GAME_7F020EF0 /* 054390 7F0219A0 8DC50010 */ lw $a1, 0x10($t6) /* 054394 7F0219A4 10A0000E */ beqz $a1, .L7F0219E0 /* 054398 7F0219A8 00000000 */ nop -/* 05439C 7F0219AC 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 05439C 7F0219AC 0FC1B3A3 */ jal modelGetNodeRwData /* 0543A0 7F0219B0 03002025 */ move $a0, $t8 /* 0543A4 7F0219B4 8C430000 */ lw $v1, ($v0) /* 0543A8 7F0219B8 10600009 */ beqz $v1, .L7F0219E0 @@ -6847,7 +6847,7 @@ glabel sub_GAME_7F020EF0 /* 0543B4 7F0219C4 8D050004 */ lw $a1, 4($t0) /* 0543B8 7F0219C8 10A00005 */ beqz $a1, .L7F0219E0 /* 0543BC 7F0219CC 00000000 */ nop -/* 0543C0 7F0219D0 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 0543C0 7F0219D0 0FC1B3A3 */ jal modelGetNodeRwData /* 0543C4 7F0219D4 8FA40110 */ lw $a0, 0x110($sp) /* 0543C8 7F0219D8 8FAF0108 */ lw $t7, 0x108($sp) /* 0543CC 7F0219DC AC4F0000 */ sw $t7, ($v0) @@ -7435,7 +7435,7 @@ glabel sub_GAME_7F0221DC /* 056EF0 7F0223C0 12800097 */ beqz $s4, .L7F022620 /* 056EF4 7F0223C4 02C02025 */ move $a0, $s6 /* 056EF8 7F0223C8 8E900004 */ lw $s0, 4($s4) -/* 056EFC 7F0223CC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056EFC 7F0223CC 0FC1B1E7 */ jal modelGetNodeRwData /* 056F00 7F0223D0 02802825 */ move $a1, $s4 /* 056F04 7F0223D4 0040A025 */ move $s4, $v0 /* 056F08 7F0223D8 00008825 */ move $s1, $zero @@ -7466,7 +7466,7 @@ glabel sub_GAME_7F0221DC /* 056F64 7F022434 1040000A */ beqz $v0, .L7F022460 /* 056F68 7F022438 00402825 */ move $a1, $v0 /* 056F6C 7F02243C 8C510004 */ lw $s1, 4($v0) -/* 056F70 7F022440 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056F70 7F022440 0FC1B1E7 */ jal modelGetNodeRwData /* 056F74 7F022444 AFA8003C */ sw $t0, 0x3c($sp) /* 056F78 7F022448 8FA8003C */ lw $t0, 0x3c($sp) /* 056F7C 7F02244C 8E0B0010 */ lw $t3, 0x10($s0) @@ -7992,9 +7992,9 @@ glabel sub_GAME_7F022980 /* 0576DC 7F022BAC 10000008 */ b .L7F022BD0 /* 0576E0 7F022BB0 8EA30000 */ lw $v1, ($s5) .L7F022BB4: -/* 0576E4 7F022BB4 3C0C8005 */ lui $t4, %hi(image_entries) +/* 0576E4 7F022BB4 3C0C8005 */ lui $t4, %hi(g_Textures) /* 0576E8 7F022BB8 018B6021 */ addu $t4, $t4, $t3 -/* 0576EC 7F022BBC 918C9300 */ lbu $t4, %lo(image_entries)($t4) +/* 0576EC 7F022BBC 918C9300 */ lbu $t4, %lo(g_Textures)($t4) /* 0576F0 7F022BC0 318D000F */ andi $t5, $t4, 0xf /* 0576F4 7F022BC4 000D7080 */ sll $t6, $t5, 2 /* 0576F8 7F022BC8 02AE7821 */ addu $t7, $s5, $t6 @@ -8036,7 +8036,7 @@ glabel sub_GAME_7F022980 /* 057778 7F022C48 00003025 */ move $a2, $zero /* 05777C 7F022C4C 8622003A */ lh $v0, 0x3a($s1) /* 057780 7F022C50 3C158005 */ lui $s5, %hi(D_8004E86C) -/* 057784 7F022C54 3C0C8005 */ lui $t4, %hi(image_entries) +/* 057784 7F022C54 3C0C8005 */ lui $t4, %hi(g_Textures) /* 057788 7F022C58 04410004 */ bgez $v0, .L7F022C6C /* 05778C 7F022C5C 000258C0 */ sll $t3, $v0, 3 /* 057790 7F022C60 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794 @@ -8044,7 +8044,7 @@ glabel sub_GAME_7F022980 /* 057798 7F022C68 8EB00000 */ lw $s0, ($s5) .L7F022C6C: /* 05779C 7F022C6C 018B6021 */ addu $t4, $t4, $t3 -/* 0577A0 7F022C70 918C9300 */ lbu $t4, %lo(image_entries)($t4) +/* 0577A0 7F022C70 918C9300 */ lbu $t4, %lo(g_Textures)($t4) /* 0577A4 7F022C74 3C158005 */ lui $s5, %hi(D_8004E86C) /* 0577A8 7F022C78 26B5E86C */ addiu $s5, %lo(D_8004E86C) # addiu $s5, $s5, -0x1794 /* 0577AC 7F022C7C 318D000F */ andi $t5, $t4, 0xf diff --git a/src/game/chr.h b/src/game/chr.h index 73d33c51..743532fd 100644 --- a/src/game/chr.h +++ b/src/game/chr.h @@ -118,8 +118,7 @@ struct unk_joint_list { s32 unk08; Gfx *gdl; - // unknown type - void *mtxlist; + Mtxf * mtxlist; u32 unk14; u32 unk18; u32 unk1C; @@ -287,8 +286,8 @@ void setanimationdebugflag(s32 param_1); void disable_sounds_attached_to_player_then_something(PropRecord* prop); void chrPositionRelated7F020D94(ChrRecord *); void set_or_unset_GUARDdata_flag(ChrRecord *guard,s32 param_2); -f32 get_animation_rate(void); -void animation_speed_related(f32); +f32 getAnimationRate(void); +void setAnimationRate(f32); PropRecord *init_GUARDdata_with_set_values(PropRecord *, Model *, coord3d *, f32 arg2, StandTile * arg3, s32 arg4); PropRecord *replace_GUARDdata_with_actual_values(struct Model * arg0, coord3d * arg1, f32 arg2, StandTile * arg3, s32 arg4); void chrSetHiddenToRandom(ChrRecord *arg0); diff --git a/src/game/chr_b.c b/src/game/chr_b.c index c72221d3..4ebdff43 100644 --- a/src/game/chr_b.c +++ b/src/game/chr_b.c @@ -26,7 +26,7 @@ struct Model *makeonebody(s32 body, s32 head, struct ModelFileHeader *bodyHeader f32 scale; f32 pov; s32 opcode; - struct ModelNode_HeaderRecord *node; + struct ModelRoData_HeaderRecord *node; scale = c_item_entries[body].scale * 0.10000001f; opcode = 0; @@ -101,7 +101,7 @@ struct Model *makeonebody(s32 body, s32 head, struct ModelFileHeader *bodyHeader { if (headHeader->Switches[0] != 0) { - node = extract_id_from_object_structure_microcode(model, headHeader->Switches[0]); + node = modelGetNodeRwData(model, headHeader->Switches[0]); node->ModelType = 0; } } diff --git a/src/game/chrai.c b/src/game/chrai.c index 93936457..8995d5b0 100644 --- a/src/game/chrai.c +++ b/src/game/chrai.c @@ -166,10 +166,10 @@ void sub_GAME_7F0349BC(s32 slot) */ s32 chraiitemsize(u8 *AIList, s32 offset) { - //matches only as u8* despite text evidence of ai->val structs + //matches only as u8* despite text evidence of ai->val structs switch (AIList[offset]) { - //Cant Use CMD Builder due to different order... + //Cant Use CMD Builder due to different order... #if defined(USECMDBUILDER) # ifndef _SYNHILITE # define _AI_CMD(CMD) /* \ @@ -688,16 +688,16 @@ s32 chraiitemsize(u8 *AIList, s32 offset) case AI_ObjectRocketLaunch: return AI_ObjectRocketLaunch_LENGTH; case AI_PRINT: - { + { s32 pos = offset + 1; while (AIList[pos] != 0) { ++pos; } return (pos - offset) + 1; - } + } default: -# if defined(DEBUG) +# if defined(ENABLE_LOG) osSyncPrintf("chraiitemsize: unknown type %d!\n", *AIList); # endif return 1; @@ -714,14 +714,14 @@ s32 chraiGetAIListID(AIRecord *AIList, bool *isGlobalAIList) { s32 i; - if (g_chraiCurrentSetup.ailists) + if (g_CurrentSetup.ailists) { - for (i = 0; g_chraiCurrentSetup.ailists[i].ailist; i++) + for (i = 0; g_CurrentSetup.ailists[i].ailist; i++) { - if (g_chraiCurrentSetup.ailists[i].ailist == AIList) + if (g_CurrentSetup.ailists[i].ailist == AIList) { *isGlobalAIList = FALSE; - return g_chraiCurrentSetup.ailists[i].ID; + return g_CurrentSetup.ailists[i].ID; } } } @@ -795,13 +795,13 @@ AIRecord *ailistFindById(s32 ID) if (!isGlobalAIListID(ID)) { - if (g_chraiCurrentSetup.ailists) + if (g_CurrentSetup.ailists) { - for (i = 0; g_chraiCurrentSetup.ailists[i].ailist; i++) + for (i = 0; g_CurrentSetup.ailists[i].ailist; i++) { - if (g_chraiCurrentSetup.ailists[i].ID == ID) + if (g_CurrentSetup.ailists[i].ID == ID) { - return g_chraiCurrentSetup.ailists[i].ailist; + return g_CurrentSetup.ailists[i].ailist; } } } @@ -827,11 +827,11 @@ PathRecord *pathFindById(s32 ID) { int i; - for (i=0;g_chraiCurrentSetup.patrolpaths[i].waypoints;i++) + for (i=0;g_CurrentSetup.patrolpaths[i].waypoints;i++) { - if ( ID == g_chraiCurrentSetup.patrolpaths[i].ID ) + if ( ID == g_CurrentSetup.patrolpaths[i].ID ) { - return &g_chraiCurrentSetup.patrolpaths[i]; + return &g_CurrentSetup.patrolpaths[i]; } } @@ -955,8 +955,8 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord1 *ai = AiListp + Offset; Offset = chraiGoToLabel(AiListp, Offset, ai->val); -#ifdef DEBUG - osSyncPrintf(" (%d)\n", ai->val); +#ifdef ENABLE_LOG + osSyncPrintf("GOTO Next (%d)\n", ai->val); #endif break; } @@ -964,8 +964,8 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord1 *ai = AiListp + Offset; Offset = chraiGoToLabel(AiListp, 0, ai->val); -#ifdef DEBUG - osSyncPrintf(" (%d)\n", ai->val); +#ifdef ENABLE_LOG + osSyncPrintf("GOTO First (%d)\n", ai->val); #endif break; } @@ -2113,7 +2113,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) u16 pad_id = CharArrayTo16(ai->val,0); if (check_if_actor_is_at_preset(ChrEntityp, pad_id)) { -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("BOND IN ROOM\n"); #endif Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]); @@ -2285,17 +2285,18 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord *ai = AiListp + Offset; ObjectRecord *obj = objFindByTagId(ai->val[0]); -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("ai_destroyobj 1 : \n"); #endif if (obj && obj->prop) { if (!do_something_if_object_destroyed(obj)) { -#ifdef DEBUG + f32 damage = ((obj->damage - obj->maxdamage) + 1) / 250.0f; +#ifdef ENABLE_LOG osSyncPrintf("ai_destroyobj 3 : adddamageobj\n"); #endif - f32 damage = ((obj->damage - obj->maxdamage) + 1) / 250.0f; + maybe_detonate_object(obj, damage, &obj->runtime_pos, 29, -1); } } @@ -2395,14 +2396,14 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum]; + pad = &g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } -#ifdef DEBUG - osSyncPrintf("aiMoveObj: moving object to pad %d\n"); +#ifdef ENABLE_LOG + osSyncPrintf("aiMoveObj: moving object to pad %d\n", pad); #endif matrix_4x4_7F059908(&matrix, 0, 0, 0, -pad->look.x, -pad->look.y, -pad->look.z, pad->up.x, pad->up.y, pad->up.z); if (obj->model) @@ -2773,7 +2774,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) case AI_IFSystemPowerTimeLessThan: { AIRecord *ai = AiListp + Offset; - f32 target = CharArrayTo16(ai->val,0) * CHRLV_FRAMERATE_F; + f32 target = CharArrayTo16(ai->val,0) * CHRAI_TICKRATE_F; if (target > lvlGetCurrentMultiPlayerMin()) { Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]); @@ -2787,7 +2788,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) case AI_IFSystemPowerTimeGreaterThan: { AIRecord *ai = AiListp + Offset; - f32 target = CharArrayTo16(ai->val,0) * CHRLV_FRAMERATE_F; + f32 target = CharArrayTo16(ai->val,0) * CHRAI_TICKRATE_F; if (target < lvlGetCurrentMultiPlayerMin()) { Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]); @@ -2828,7 +2829,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord1 *ai = AiListp + Offset; ChrEntityp->morale = ai->val; -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("MORALE IS NOW %d \n",ChrEntityp->morale); #endif Offset += AI_SetMyMorale_LENGTH; @@ -2845,7 +2846,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { ChrEntityp->morale += ai->val; } -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("MORALE IS NOW %d \n",ChrEntityp->morale); #endif @@ -2863,7 +2864,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { ChrEntityp->morale -= ai->val; } -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("MORALE IS NOW %d \n", ChrEntityp->morale); #endif Offset += AI_SubtractFromMyMorale_LENGTH; @@ -2899,7 +2900,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord1 *ai = AiListp + Offset; ChrEntityp->alertness = ai->val; -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("AI_PRINT(void) Alertness = %d!\n", ChrEntityp->alertness); #endif Offset += AI_SetMyAlertness_LENGTH; @@ -3294,7 +3295,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) u16 pad_id = CharArrayTo16(ai->val,0); if (ChrEntityp) { -#ifdef DEBUG +#ifdef ENABLE_LOG if (pad_id == PAD_PRESET1 && ChrEntityp->padpreset1 == PAD_PRESET1) { osSyncPrintf("RUSS : Pad is bollox -> Num=%d (%d) - PAD_PRESET1=%d\n", pad_id, ChrEntityp->padpreset1, PAD_PRESET1); @@ -3319,7 +3320,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) } case AI_PRINT: { -#ifdef DEBUG +#ifdef ENABLE_LOG AIRecord *ai = AiListp + Offset; //PD = osSyncPrintf("AI_PRINT(void) [%d] %s\n", ai-val); osSyncPrintf("AI_PRINT: %s\n", ai->val); @@ -3367,7 +3368,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) case AI_IFMyTimerLessThanTicks: { AIRecord *ai = AiListp + Offset; - f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRLV_FRAMERATE_F; + f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRAI_TICKRATE_F; if (chrGetTimer(ChrEntityp) < valf) { @@ -3382,7 +3383,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) case AI_IFMyTimerGreaterThanTicks: { AIRecord *ai = AiListp + Offset; - f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRLV_FRAMERATE_F; + f32 valf = ((unsigned)CharArrayTo24(ai->val,0)) / CHRAI_TICKRATE_F; if (chrGetTimer(ChrEntityp) > valf) { Offset = chraiGoToLabel(AiListp, Offset, ai->val[3]); @@ -3409,7 +3410,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord *ai = AiListp + Offset; f32 seconds = CharArrayTo16(ai->val,0); - countdownTimerSetValue(seconds * CHRLV_FRAMERATE_F); + countdownTimerSetValue(seconds * CHRAI_TICKRATE_F); Offset += AI_HudCountdownSet_LENGTH; break; } @@ -3442,7 +3443,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord *ai = AiListp + Offset; f32 value = CharArrayTo16(ai->val,0); - if (countdownTimerGetValue() < value * CHRLV_FRAMERATE_F) + if (countdownTimerGetValue() < value * CHRAI_TICKRATE_F) { Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]); } @@ -3456,7 +3457,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord *ai = AiListp + Offset; f32 value = CharArrayTo16(ai->val,0); - if (countdownTimerGetValue() > value * CHRLV_FRAMERATE_F) + if (countdownTimerGetValue() > value * CHRAI_TICKRATE_F) { Offset = chraiGoToLabel(AiListp, Offset, ai->val[2]); } @@ -3473,7 +3474,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) CHRFLAG flags = CharArrayTo32(ai->val,6); u16 ailistid = CharArrayTo16(ai->val,4); AIRecord *ailist = ailistFindById(ailistid); -#ifdef DEBUG +#ifdef ENABLE_LOG if (flags & 32) { osSyncPrintf("ai_createchrheadthenjumpf : Flag set CHRSTART_FORCENOBLOOD\n"); @@ -3688,7 +3689,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { AIRecord *ai = AiListp + Offset; char *text = langGet(CharArrayTo16(ai->val,0)); -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("USING HUD MESSAGE Stringy = %d, ai->txt = %d\n", CharArrayTo16(ai->val,0), text); #endif #ifdef BUGFIX_R1 @@ -3704,7 +3705,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) AIRecord *ai = AiListp + Offset; char *text = langGet(CharArrayTo16(ai->val,0)); -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("ptop = %f \n", text); osSyncPrintf("USING HUD MESSAGE Stringy = %d, ai->txt = %d\n", CharArrayTo16(ai->val,0), text); @@ -3832,11 +3833,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) u16 sfxID = CharArrayTo16(ai->val,2); if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum]; + pad = &g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } if (ai->slotID >= 0 && ai->slotID < 8 && pad) { @@ -3969,12 +3970,10 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) } case AI_IFBondInTank: //canonical name { - /* -#ifdef DEBUG && PD - osSyncPrintf("ai_ifbondintank: tank code has been removed.\n"); -#endif - */ AIRecord *ai = AiListp + Offset; +#ifdef ENABLE_LOG + osSyncPrintf("ai_ifbondintank\n"); +#endif if (isBondInTank() == TRUE) { Offset = chraiGoToLabel(AiListp, Offset, ai->val[0]); @@ -4014,11 +4013,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) u16 padnum = CharArrayTo16(ai->val,0); if (isNotBoundPad(padnum)) { - dword_CODE_bss_800799F8 = &g_chraiCurrentSetup.pads[padnum]; + dword_CODE_bss_800799F8 = &g_CurrentSetup.pads[padnum]; } else { - dword_CODE_bss_800799F8 = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + dword_CODE_bss_800799F8 = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } set_camera_mode(CAMERAMODE_POSEND); Offset += AI_CameraLookAtBondFromPad_LENGTH; @@ -4035,7 +4034,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) { CutsceneRecord *cdef = setupGetPtrToCommandByIndex(tag->OffsetToObj + TagIndex); //get obj -#ifdef DEBUG +#ifdef ENABLE_LOG /*".\\ported\\chrai.c", 0xc2b, "Assertion failed: cdef->type==PROPDEF_CAMERAPOS") */ assert(cdef->type == PROPDEF_CAMERAPOS); #endif @@ -4086,7 +4085,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) } case AI_BondEnableControl: { -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("AI_BONDENABLECONTROL\n"); #endif set_unset_bitflags(4, TRUE); @@ -4114,11 +4113,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) padnum = chrResolvePadId(ChrEntityp, padnum); if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum]; + pad = &g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } FacingDirection = atan2f(pad->look.x, pad->look.z); @@ -4170,7 +4169,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) if (stop_time_flag != 2) { currentPlayerSetFadeColour(0, 0, 0, 0); - currentPlayerSetFadeFrac(CHRLV_FRAMERATE_F, 1); + currentPlayerSetFadeFrac(CHRAI_TICKRATE_F, 1); } Offset += AI_ScreenFadeToBlack_LENGTH; break; @@ -4180,7 +4179,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) if (stop_time_flag != 2) { currentPlayerSetFadeColour(0, 0, 0, 1); - currentPlayerSetFadeFrac(CHRLV_FRAMERATE_F, 0); + currentPlayerSetFadeFrac(CHRAI_TICKRATE_F, 0); } Offset += AI_ScreenFadeFromBlack_LENGTH; break; @@ -4234,7 +4233,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) door->openedTime = g_GlobalTimer; door->openstate = DOORSTATE_STATIONARY; sub_GAME_7F052B00(door); - sub_GAME_7F053598(door); // doorActivatePortal + doorActivatePortal(door); // doorActivatePortal sub_GAME_7F053B10(door); } Offset += AI_DoorOpenInstant_LENGTH; @@ -4321,11 +4320,11 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) if (isNotBoundPad(padnum)) { - pad = &g_chraiCurrentSetup.pads[padnum * 1]; //needs a mult by 1 to correct s0/v1 + pad = &g_CurrentSetup.pads[padnum * 1]; //needs a mult by 1 to correct s0/v1 } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } if (pad->stan && obj && obj->prop && (pad->stan->room == obj->prop->stan->room)) @@ -4471,7 +4470,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) AIRecord *ai = AiListp + Offset; Offset += AI_MusicPlaySlot_LENGTH; musicPlaySlot((s8)ai->val[0], ai->val[1], ai->val[2]); -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("ai: enery tune on (%d, %d, %d)\n", ai->val[0], ai->val[1], ai->val[2]); #endif break; @@ -4481,7 +4480,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) AIRecord *ai = AiListp + Offset; Offset += AI_MusicStopSlot_LENGTH; musicStopSlot((s8)ai->val[0]); -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("ai: enery tune off (%d)\n", ai->val[0]); #endif break; @@ -4550,7 +4549,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { - obj->unk6C->id |= 0x601; + obj->unk6C->flags |= 0x601; sub_GAME_7F03FE14(obj->prop); matrix_4x4_set_identity(&obj->unk6C->m); obj->unk6C->pos.x = 0; @@ -4582,7 +4581,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType) } // switch } // for } // Has ailist -#ifdef DEBUG +#ifdef ENABLE_LOG osSyncPrintf("SERIOUS AI ERROR!!!!!! Null ailist!\n"); #endif } //ai() diff --git a/src/game/chrai.h b/src/game/chrai.h index aa096e38..96658eac 100644 --- a/src/game/chrai.h +++ b/src/game/chrai.h @@ -4,7 +4,7 @@ #include - +#define CHRAI_TICKRATE_F 60.0f /* Stop Scolling: @@ -316,14 +316,14 @@ struct bss_80073370 { struct bss_80073DC0 { u32 unk00; - u32 unk04; - u32 unk08; - u32 unk0C; + f32 unk04; + f32 unk08; + f32 unk0C; - u32 unk10; - u32 unk14; - u32 unk18; - u32 unk1C; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; u32 unk20; u32 unk24; @@ -345,7 +345,7 @@ struct bss_80073DC0 { u32 unk58; u32 unk5C; - u32 unk60; + f32 unk60; u32 unk64; u32 unk68; u32 unk6C; @@ -358,10 +358,10 @@ struct bss_80073DC0 { u32 unk80; u32 unk84; u32 unk88; - u32 unk8C; + f32 unk8C; u32 unk90; - u32 unk94; + f32 unk94; u32 unk98; u32 unk9C; @@ -375,9 +375,9 @@ struct bss_80073DC0 { u32 unkB8; u32 unkBC; - u32 unkC0; - u32 unkC4; - u32 unkC8; + f32 unkC0; + f32 unkC4; + f32 unkC8; u32 unkCC; u32 unkD0; @@ -390,6 +390,7 @@ struct bss_80073DC0 { u32 unkE8; }; + struct bss_80075030 { s32 unk00; u32 unk04; @@ -449,11 +450,11 @@ extern u32 monAnim2DRandEffectFlash[]; extern u32 monAnim00Bond[]; extern u32 monAnim34[]; extern u32 monAnim35Taser[]; -extern u32 temp_mine_table[30]; +extern WeaponObjRecord* temp_mine_table[30]; extern f32 gas_damage_flag; extern u32 gas_cutoff_flag; extern f32 difficulty ; -extern stagesetup g_chraiCurrentSetup; +extern stagesetup g_CurrentSetup; extern s16 * ptr_list_object_lookup_indices; extern PropRecord pos_data_entry[]; @@ -478,7 +479,7 @@ extern struct object_animation_controller g_MonitorAnimController; extern struct object_animation_controller g_UnknownAnimController; extern struct object_animation_controller g_TaserAnimController; -extern CreditsEntry *dword_CODE_bss_80075D28; +extern stagesetup *g_ptrStageSetupFile; void alarmDeactivate(void); s32 chraiitemsize(u8 *AIList, s32 offset); @@ -498,7 +499,7 @@ void chrpropRegisterRooms(PropRecord *posData); void chrpropActivate(PropRecord *); void chrpropEnable(PropRecord *); -void chrpropActivateThisFrame(Model *); +void chrpropActivateThisFrame(PropRecord *); void chrpropReparent(PropRecord *newChild, PropRecord *host); AIRecord *ailistFindById(s32 ID); void chraiGetCollisionBounds(PropRecord *arg0, struct rect4f **arg1, s32 *arg2, f32 *arg3, f32 *arg4); @@ -512,10 +513,10 @@ PropRecord *get_ptr_obj_pos_list_current_entry(void); void chraiGetPropRoomIds(PropRecord *self, s32 *roomids); void chrpropFree(PropRecord *prop); void chrpropDisable(PropRecord *prop); -f32 chrpropBBOXGetXmin(ModelNode_BoundingBoxRecord *modelBoundingBox); -f32 chrpropBBOXGetYmin(ModelNode_BoundingBoxRecord *modelBoundingBox); -f32 chrpropBBOXGetYmax(ModelNode_BoundingBoxRecord *modelBoundingBox); -f32 chrpropBBOXGetZmin(ModelNode_BoundingBoxRecord *modelBoundingBox); +f32 chrpropBBOXGetXmin(ModelRoData_BoundingBoxRecord *modelBoundingBox); +f32 chrpropBBOXGetYmin(ModelRoData_BoundingBoxRecord *modelBoundingBox); +f32 chrpropBBOXGetYmax(ModelRoData_BoundingBoxRecord *modelBoundingBox); +f32 chrpropBBOXGetZmin(ModelRoData_BoundingBoxRecord *modelBoundingBox); ObjectRecord *sub_GAME_7F03FAB0(PadRecord *pad, s32 RoomID); void chraiGetCollisionBounds(PropRecord *arg0, struct rect4f **arg1, s32 *arg2, f32 *arg3, f32 *arg4); void chrpropGetCollisionBounds(PropRecord *arg0, f32 *arg1, f32 *arg2, f32 *arg3); diff --git a/src/game/chrlv.c b/src/game/chrlv.c index 74a48637..e045c014 100644 --- a/src/game/chrlv.c +++ b/src/game/chrlv.c @@ -30,39 +30,7 @@ #include "bondhead.h" #include "unk_0A1DA0.h" -#ifdef REFRESH_PAL -#define CHRLV_RECENT_TIME_CHECK 151 -#define CHRLV_TICK_DEAD_CHECK 75 -#define CHRLV_SEEN_RECENT_CHECK 100 -#define CHRLV_LASTMOVEOK60_CHECK 50 -#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x11 -#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1a -#define CHRLV_ATTACKWALK_TIMER40_A 0x4b -#define CHRLV_ATTACKWALK_TIMER40_B 0x10 -#define CHRLV_ATTACKWALK_TIMER40_C 0x96 -#define CHRLV_ATTACKWALK_TIMER40_D 0x21 -#define CHRLV_DEFAULT_TIMER 0x96 -#define CHRLV_10_SEC_TIMER 0x1f4 /* 500 */ -#define CHRLV_FRAMERATE_F 50.0f - -#else - -#define CHRLV_RECENT_TIME_CHECK 181 -#define CHRLV_TICK_DEAD_CHECK 90 -#define CHRLV_SEEN_RECENT_CHECK 120 -#define CHRLV_LASTMOVEOK60_CHECK 60 -#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x15 -#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1F -#define CHRLV_ATTACKWALK_TIMER40_A 0x5a -#define CHRLV_ATTACKWALK_TIMER40_B 0x14 -#define CHRLV_ATTACKWALK_TIMER40_C 0xb4 -#define CHRLV_ATTACKWALK_TIMER40_D 0x28 - -#define CHRLV_DEFAULT_TIMER 0xb4 -#define CHRLV_10_SEC_TIMER 0x258 /* 600 */ -#define CHRLV_FRAMERATE_F 60.0f -#endif // forward declarations @@ -299,7 +267,7 @@ void expand_09_characters(s32 stageid, GuardRecord *arg1, s32 arg2) s32 bodyid; s32 headid; - pad = &g_chraiCurrentSetup.pads[arg1->PadID]; + pad = &g_CurrentSetup.pads[arg1->PadID]; if (sub_GAME_7F056850(pad, pad->stan, 20.0f, (PadRecord *)&sp48, &sp54) != 0) { @@ -3000,11 +2968,11 @@ waypoint *get_ptrpreset_in_table_matching_tile(StandTile* stan) waypoint *waypoint; PadRecord *pad; - if (g_chraiCurrentSetup.pathwaypoints != NULL) + if (g_CurrentSetup.pathwaypoints != NULL) { - for (waypoint = g_chraiCurrentSetup.pathwaypoints; waypoint->padID >= 0; waypoint++) + for (waypoint = g_CurrentSetup.pathwaypoints; waypoint->padID >= 0; waypoint++) { - pad = &((PadRecord *)g_chraiCurrentSetup.pads)[waypoint->padID]; + pad = &((PadRecord *)g_CurrentSetup.pads)[waypoint->padID]; if (pad->stan == stan) { @@ -3019,18 +2987,18 @@ waypoint *get_ptrpreset_in_table_matching_tile(StandTile* stan) GLOBAL_ASM( .text glabel get_ptrpreset_in_table_matching_tile -/* 05C724 7F027BF4 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0) -/* 05C728 7F027BF8 8C425D00 */ lw $v0, %lo(g_chraiCurrentSetup+0)($v0) +/* 05C724 7F027BF4 3C028007 */ lui $v0, %hi(g_CurrentSetup+0) +/* 05C728 7F027BF8 8C425D00 */ lw $v0, %lo(g_CurrentSetup+0)($v0) /* 05C72C 7F027BFC 00803025 */ move $a2, $a0 /* 05C730 7F027C00 50400015 */ beql $v0, $zero, .L7F027C58 /* 05C734 7F027C04 00001025 */ move $v0, $zero /* 05C738 7F027C08 8C4E0000 */ lw $t6, ($v0) /* 05C73C 7F027C0C 00401825 */ move $v1, $v0 -/* 05C740 7F027C10 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0x18) +/* 05C740 7F027C10 3C058007 */ lui $a1, %hi(g_CurrentSetup+0x18) /* 05C744 7F027C14 05C0000F */ bltz $t6, .L7F027C54 /* 05C748 7F027C18 2407002C */ li $a3, 44 /* 05C74C 7F027C1C 8C440000 */ lw $a0, ($v0) -/* 05C750 7F027C20 8CA55D18 */ lw $a1, %lo(g_chraiCurrentSetup+0x18)($a1) +/* 05C750 7F027C20 8CA55D18 */ lw $a1, %lo(g_CurrentSetup+0x18)($a1) .L7F027C24: /* 05C754 7F027C24 00870019 */ multu $a0, $a3 /* 05C758 7F027C28 00007812 */ mflo $t7 @@ -3075,7 +3043,7 @@ f32 chrlvPadPresetRelated(coord3d *arg0, waypoint *arg1) f32 temp_f2; PadRecord *temp_v0; - temp_v0 = &g_chraiCurrentSetup.pads[arg1->padID]; + temp_v0 = &g_CurrentSetup.pads[arg1->padID]; temp_f2 = temp_v0->pos.f[0] - arg0->f[0]; temp_f12 = temp_v0->pos.f[2] - arg0->f[2]; return (temp_f2 * temp_f2) + (temp_f12 * temp_f12); @@ -3105,7 +3073,7 @@ waypoint *chrlvStanPathRelated(coord3d *arg0, StandTile *arg1) for (n = ret->neighbours; *n >= 0; n++) { - wayp = &g_chraiCurrentSetup.pathwaypoints[*n]; + wayp = &g_CurrentSetup.pathwaypoints[*n]; if (chrlvPadPresetRelated(arg0, wayp) < temp_f20) { @@ -3208,7 +3176,7 @@ void chrlvActGoposRelated(ChrRecord *self, coord3d *target_point, StandTile **ta if (temp_v0 != 0) { - temp_v1 = &g_chraiCurrentSetup.pads[temp_v0->padID]; + temp_v1 = &g_CurrentSetup.pads[temp_v0->padID]; target_point->f[0] = temp_v1->pos.f[0]; target_point->f[1] = temp_v1->pos.f[1]; @@ -3489,32 +3457,23 @@ s32 chrlvPatrolCalculateStep(ChrRecord *self, bool *forward, s32 numsteps) #ifdef NONMATCHING -// notes: struct SetupPtrs isn't (currently defined), it's theoretical update -// to struct stagesetup. Requires AI Branch merge first. - /** * Address 0x7F0283FC. */ -PadRecord * chrlvGetPatrolStepPad(ChrRecord *self, s32 arg1) +// notes: 99.33% match, only failing regalloc on a single line +PadRecord *chrlvGetPatrolStepPad(ChrRecord *self, s32 numsteps) { - //struct patrol_path *path; + s32 data; s32 forward; s32 step; - //s32 nextstep; + s32 * padnumptr; forward = self->act_patrol.forward; - - step = chrlvPatrolCalculateStep(self, &forward, arg1); - - //path = self->act_patrol.path; - - step = self->act_patrol.path->data[step]; - - return &((struct SetupPtrs *)&g_chraiCurrentSetup.pathwaypoints)->pads[ - ((struct SetupPtrs *)&g_chraiCurrentSetup.pathwaypoints)->pathwaypoints[step].padID - ]; + step = chrlvPatrolCalculateStep(self, &forward, numsteps); + data = self->act_patrol.path->data[step]; // <---- this line fails regalloc, swapping t0 and v1 + padnumptr = &g_CurrentSetup.pathwaypoints[data].padID; + return &g_CurrentSetup.pads[*padnumptr]; } - #else GLOBAL_ASM( .text @@ -3529,9 +3488,9 @@ glabel chrlvGetPatrolStepPad /* 05CF48 7F028418 AFAE0020 */ sw $t6, 0x20($sp) /* 05CF4C 7F02841C 8FA70028 */ lw $a3, 0x28($sp) /* 05CF50 7F028420 0002C880 */ sll $t9, $v0, 2 -/* 05CF54 7F028424 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) +/* 05CF54 7F028424 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) /* 05CF58 7F028428 8CEF002C */ lw $t7, 0x2c($a3) -/* 05CF5C 7F02842C 24A55D00 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d00 +/* 05CF5C 7F02842C 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d00 /* 05CF60 7F028430 8CAA0000 */ lw $t2, ($a1) /* 05CF64 7F028434 8DF80000 */ lw $t8, ($t7) /* 05CF68 7F028438 8FBF0014 */ lw $ra, 0x14($sp) @@ -3691,7 +3650,7 @@ void chrlvTravelTickMagic(ChrRecord *self, struct waydata *arg1, f32 arg2, coord if (curindex > 0) { pta = self->act_gopos.waypoints[curindex - 1]; - pad = &g_chraiCurrentSetup.pads[pta->padID]; + pad = &g_CurrentSetup.pads[pta->padID]; setsubroty( self->model, @@ -4043,10 +4002,10 @@ void set_actor_on_path(ChrRecord *self, struct patrol_path *path) { //s32 aa; - //aa = g_chraiCurrentSetup.pathwaypoints[index].id; - //pad = &g_chraiCurrentSetup.pads[aa]; - waypoint *pta = &g_chraiCurrentSetup.pathwaypoints[index]; - pad = &g_chraiCurrentSetup.pads[pta->padID]; + //aa = g_CurrentSetup.pathwaypoints[index].id; + //pad = &g_CurrentSetup.pads[aa]; + waypoint *pta = &g_CurrentSetup.pathwaypoints[index]; + pad = &g_CurrentSetup.pads[pta->padID]; if ((pad->stan != NULL) && (prop->stan == pad->stan)) { @@ -4111,12 +4070,12 @@ glabel set_actor_on_path /* 05DC48 7F029118 8C870018 */ lw $a3, 0x18($a0) /* 05DC4C 7F02911C 00003025 */ move $a2, $zero /* 05DC50 7F029120 05E0002C */ bltz $t7, .L7F0291D4 -/* 05DC54 7F029124 3C098007 */ lui $t1, %hi(g_chraiCurrentSetup+0) -/* 05DC58 7F029128 3C0A8007 */ lui $t2, %hi(g_chraiCurrentSetup+0x18) +/* 05DC54 7F029124 3C098007 */ lui $t1, %hi(g_CurrentSetup+0) +/* 05DC58 7F029128 3C0A8007 */ lui $t2, %hi(g_CurrentSetup+0x18) /* 05DC5C 7F02912C 3C018005 */ lui $at, %hi(D_80051DF8) /* 05DC60 7F029130 C42C1DF8 */ lwc1 $f12, %lo(D_80051DF8)($at) -/* 05DC64 7F029134 8D4A5D18 */ lw $t2, %lo(g_chraiCurrentSetup+0x18)($t2) -/* 05DC68 7F029138 8D295D00 */ lw $t1, %lo(g_chraiCurrentSetup+0)($t1) +/* 05DC64 7F029134 8D4A5D18 */ lw $t2, %lo(g_CurrentSetup+0x18)($t2) +/* 05DC68 7F029138 8D295D00 */ lw $t1, %lo(g_CurrentSetup+0)($t1) /* 05DC6C 7F02913C 240B002C */ li $t3, 44 /* 05DC70 7F029140 0006C080 */ sll $t8, $a2, 2 .L7F029144: @@ -5223,11 +5182,11 @@ bool chrGoToPad(ChrRecord *self, s32 padid, SPEED speed) padid = chrResolvePadId(self, padid); if (isNotBoundPad(padid)) { - pad = &g_chraiCurrentSetup.pads[padid]; + pad = &g_CurrentSetup.pads[padid]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)]; } stan = pad->stan; @@ -6527,7 +6486,7 @@ s32 chrlvUpdateAimendsideback(ChrRecord *self, struct weapon_firing_animation_ta calc_aimendsideback = t1 - subroty + M_TAU_F; } - temp_v0_4 = (struct modeldata_root*)extract_id_from_object_structure_microcode(self->model, self->model->obj->RootNode); + temp_v0_4 = (struct modeldata_root*)modelGetNodeRwData(self->model, self->model->obj->RootNode); if (temp_v0_4->unk5c > 0.0f) { @@ -7190,9 +7149,9 @@ void chrlvFireWeaponRelated(ChrRecord *self, s32 hand) if (sp208->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) { - sp208->unk6C->id |= 0x80; + sp208->unk6C->flags |= 0x80; sp208->timer = -1; - sp208->unk6C->id |= 0x20; + sp208->unk6C->flags |= 0x20; sp208->unk6C->unkb0 = sp208->runtime_pos.y; sp208->unk6C->unkb4 = sp208->unk6C->pos.f[1]; @@ -7646,7 +7605,7 @@ void chrlvTickAttackCommon(ChrRecord *self) if (self_model->gunhand != GUNRIGHT) { - fn40 = 6.2831855f - fn40; + fn40 = M_TAU_F - fn40; } self->act_attack.unk30 = chrlvSetSubroty( @@ -8535,7 +8494,7 @@ void chrlvTickAttackRoll(ChrRecord *self) if (self->act_attackroll.animfloats->anonymous_3 != 0.0f) { - temp_v0_2 = (struct modeldata_root *)extract_id_from_object_structure_microcode(temp_a0, temp_a0->obj->RootNode); + temp_v0_2 = (struct modeldata_root *)modelGetNodeRwData(temp_a0, temp_a0->obj->RootNode); temp_v0_2->unk5c = phi_f2_2; temp_v0_2->unk58 = (-self->act_attackroll.animfloats->anonymous_3 / phi_f2_2); @@ -10237,7 +10196,7 @@ void chrlvTickGoPos(ChrRecord *self) if (wp != NULL) { - if (chrlvIsArrivingLaterallyAtPos(&self->prevpos, &self_prop->pos, &g_chraiCurrentSetup.pads[wp->padID].pos, 30.0f) != 0) + if (chrlvIsArrivingLaterallyAtPos(&self->prevpos, &self_prop->pos, &g_CurrentSetup.pads[wp->padID].pos, 30.0f) != 0) { phi_v1 = 1; } @@ -10271,7 +10230,7 @@ void chrlvTickGoPos(ChrRecord *self) if (wp != NULL) { - pad = &g_chraiCurrentSetup.pads[wp->padID]; + pad = &g_CurrentSetup.pads[wp->padID]; wp_pos = &pad->pos; wp_stan = pad->stan; } @@ -10301,7 +10260,7 @@ void chrlvTickGoPos(ChrRecord *self) if (wp != NULL) { - pad = &g_chraiCurrentSetup.pads[wp->padID]; + pad = &g_CurrentSetup.pads[wp->padID]; wp_pos = &pad->pos; wp_stan = pad->stan; } @@ -10323,7 +10282,7 @@ void chrlvTickGoPos(ChrRecord *self) if (wp != NULL) { - pad = &g_chraiCurrentSetup.pads[wp->padID]; + pad = &g_CurrentSetup.pads[wp->padID]; wp_pos = &pad->pos; wp_stan = pad->stan; } @@ -10634,11 +10593,11 @@ coord3d *chrlvGetChrOrPresetLocation(ChrRecord *self, s32 flags, s32 lookup_id, if (isNotBoundPad(padid)) { - preset_pad = &g_chraiCurrentSetup.pads[padid]; + preset_pad = &g_CurrentSetup.pads[padid]; } else { - preset_pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)]; + preset_pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)]; } *stan = (StandTile *) preset_pad->stan; @@ -10707,11 +10666,11 @@ f32 chrGetDistanceToPad(ChrRecord *self, s32 padID) if (isNotBoundPad(padID)) { - pad = (PadRecord *)&g_chraiCurrentSetup.pads[padID]; + pad = (PadRecord *)&g_CurrentSetup.pads[padID]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padID)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padID)]; } return sqrtf( @@ -10734,11 +10693,11 @@ bool check_if_room_for_preset_loaded(ChrRecord *self, s32 padnum) if (isNotBoundPad(padnum)) { - pad = (PadRecord *)&g_chraiCurrentSetup.pads[padnum]; + pad = (PadRecord *)&g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } padstan = pad->stan; @@ -10870,11 +10829,11 @@ f32 chrGetDistanceFromBondToPad(ChrRecord *self, s32 padid) if (isNotBoundPad(padid)) { - pad = (PadRecord *)&g_chraiCurrentSetup.pads[padid]; + pad = (PadRecord *)&g_CurrentSetup.pads[padid]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)]; } return sqrtf( @@ -11327,7 +11286,7 @@ s32 sub_GAME_7F033780(waypoint *arg0, coord3d *arg1, f32 angle) f32 dz; f32 ff; - pad = &g_chraiCurrentSetup.pads[arg0->padID]; + pad = &g_CurrentSetup.pads[arg0->padID]; dx = pad->pos.f[0] - arg1->f[0]; dz = pad->pos.f[2] - arg1->f[2]; @@ -11413,9 +11372,9 @@ s32 chrlvFindPathNeighborRelated(coord3d *bondpos, StandTile *stan, f32 rot, u8 neighbor_index++, path_id = waypoint->neighbours[neighbor_index] ) { - if (sub_GAME_7F033780(&g_chraiCurrentSetup.pathwaypoints[path_id], bondpos, rot) != 0) + if (sub_GAME_7F033780(&g_CurrentSetup.pathwaypoints[path_id], bondpos, rot) != 0) { - return g_chraiCurrentSetup.pathwaypoints[path_id].padID; + return g_CurrentSetup.pathwaypoints[path_id].padID; } } } @@ -11673,7 +11632,7 @@ s32 sub_GAME_7F033EAC(coord3d *arg0, StandTile *arg1) { if (bgGet2dBboxByRoomId(getTileRoom(arg1), &sp1C)) { - pass = sub_GAME_7F078BF4(arg0, 200.0f, &sp1C) == 0; + pass = camIsPosInScreenBox(arg0, 200.0f, &sp1C) == 0; } else { @@ -11797,13 +11756,13 @@ PropRecord *chrSpawnAtPad(ChrRecord *self, s32 bodynum, s32 headnum, s32 padid, if (isNotBoundPad(padid)) { - pad = (PadRecord *)&g_chraiCurrentSetup.pads[padid]; + pad = (PadRecord *)&g_CurrentSetup.pads[padid]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padid)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padid)]; } - #ifdef DEBUG + #ifdef ENABLE_LOG osSyncPrintf("%s%s new char x = %f, y = %f, z = %f \n", "", "", pad->pos.x, pad->pos.y, pad->pos.z); #endif return actionblock_guard_constructor_BDBE(bodynum, headnum, &pad->pos, pad->stan, atan2f(pad->look.f[0], pad->look.f[2]), ailist, flags); @@ -11845,11 +11804,11 @@ bool chrIfInPadRoom(ChrRecord *self, s32 chrnum, s32 padnum) if (isNotBoundPad(padnum)) { - pad = (PadRecord *)&g_chraiCurrentSetup.pads[padnum]; + pad = (PadRecord *)&g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } if (pad->stan && chr) @@ -11877,11 +11836,11 @@ bool check_if_actor_is_at_preset(ChrRecord *self, s32 padnum) if (isNotBoundPad(padnum)) { - pad = (PadRecord *)&g_chraiCurrentSetup.pads[padnum]; + pad = (PadRecord *)&g_CurrentSetup.pads[padnum]; } else { - pad = (PadRecord *)&g_chraiCurrentSetup.boundpads[getBoundPadNum(padnum)]; + pad = (PadRecord *)&g_CurrentSetup.boundpads[getBoundPadNum(padnum)]; } if (pad->stan && (pad->stan->room == bondprop->stan->room)) diff --git a/src/game/chrlv.h b/src/game/chrlv.h index 9a656928..27ecda4b 100644 --- a/src/game/chrlv.h +++ b/src/game/chrlv.h @@ -6,17 +6,40 @@ // Value is 3, it just needs to be less than MAX_CHRWAYPOINTS #define PATH_FINDING_WP_LIMIT (MAX_CHRWAYPOINTS - 3) -# ifdef REFRESH_PAL -# define CHRLV_FRAMERATE_F 50.0f -#endif +#ifdef REFRESH_PAL +#define CHRLV_RECENT_TIME_CHECK 151 +#define CHRLV_TICK_DEAD_CHECK 75 +#define CHRLV_SEEN_RECENT_CHECK 100 +#define CHRLV_LASTMOVEOK60_CHECK 50 +#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x11 +#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1a +#define CHRLV_ATTACKWALK_TIMER40_A 0x4b +#define CHRLV_ATTACKWALK_TIMER40_B 0x10 +#define CHRLV_ATTACKWALK_TIMER40_C 0x96 +#define CHRLV_ATTACKWALK_TIMER40_D 0x21 +#define CHRLV_DEFAULT_TIMER 0x96 +#define CHRLV_10_SEC_TIMER 0x1f4 /* 500 */ +#define CHRLV_FRAMERATE_F 50.0f + +#else + +#define CHRLV_RECENT_TIME_CHECK 181 +#define CHRLV_TICK_DEAD_CHECK 90 +#define CHRLV_SEEN_RECENT_CHECK 120 +#define CHRLV_LASTMOVEOK60_CHECK 60 +#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MIN 0x15 +#define CHRLV_ATTACKWALK_CLOCK_TIMER30_MAX 0x1F +#define CHRLV_ATTACKWALK_TIMER40_A 0x5a +#define CHRLV_ATTACKWALK_TIMER40_B 0x14 +#define CHRLV_ATTACKWALK_TIMER40_C 0xb4 +#define CHRLV_ATTACKWALK_TIMER40_D 0x28 + +#define CHRLV_DEFAULT_TIMER 0xb4 +#define CHRLV_10_SEC_TIMER 0x258 /* 600 */ #define CHRLV_FRAMERATE_F 60.0f - - - - - +#endif diff --git a/src/game/chrobjdata.h b/src/game/chrobjdata.h index 8b497924..5177b274 100644 --- a/src/game/chrobjdata.h +++ b/src/game/chrobjdata.h @@ -41,10 +41,10 @@ extern struct ModelNode player_gait_hdr; extern struct ModelNode player_gait_pos_hdr_1; extern struct ModelNode player_gait_pos_hdr_2; extern struct ModelNode player_gait_pos_hdr_3; -extern struct ModelNode_HeaderRecord player_gait_obj; -extern struct ModelNode_GroupRecord player_gait_pos_1; -extern struct ModelNode_GroupRecord player_gait_pos_2; -extern struct ModelNode_GroupRecord player_gait_pos_3; +extern struct ModelRoData_HeaderRecord player_gait_obj; +extern struct ModelRoData_GroupRecord player_gait_pos_1; +extern struct ModelRoData_GroupRecord player_gait_pos_2; +extern struct ModelRoData_GroupRecord player_gait_pos_3; extern struct ModelFileHeader player_gait_object_header; diff --git a/src/game/chrobjhandler.c b/src/game/chrobjhandler.c index 014945fd..d955e6d8 100644 --- a/src/game/chrobjhandler.c +++ b/src/game/chrobjhandler.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "bg.h" #include "bondview.h" #include "bondinv.h" @@ -55,7 +56,7 @@ s32 clock_drawn_flag = 1; s32 clock_enable = 0; f32 clock_time = 0; s32 D_80030AF4 = 0; -s32 D_80030AF8 = 0; +s32 D_80030AF8 = 0; // numbers between 0 and 30 s32 D_80030AFC = 0; ObjectRecord *g_LevelLoadPropSwitch = NULL; ObjectRecord *g_LevelLoadPropLockDoor = NULL; @@ -950,8 +951,21 @@ s32 sub_GAME_7F044414(struct rect4f *arg0, s32 arg1, struct rect4f *arg2, s32 ar #ifdef NONMATCHING -void sub_GAME_7F03FB70(void) { +void sub_GAME_7F03FB70(void* arg0) { + s32 temp_a0; + s32 temp_a0_2; + if ((arg0->unk0 & 0x80) != 0) { + temp_a0 = arg0->unk98; + if ((temp_a0 != 0) && (sndGetPlayingState(temp_a0) != 0)) { + sndDeactivate(arg0->unk98); + } + temp_a0_2 = arg0->unk9C; + if ((temp_a0_2 != 0) && (sndGetPlayingState(temp_a0_2) != 0)) { + sndDeactivate(arg0->unk9C); + } + } + arg0->unk0 = (s32) (arg0->unk0 | 0x80000000); } #else GLOBAL_ASM( @@ -1002,9 +1016,36 @@ glabel sub_GAME_7F03FB70 #ifdef NONMATCHING -void sub_GAME_7F03FBFC(void) { - +/* matches according to decomp.me, I believe it doesn't build yet because the asm references label 'D_80052A48', which is defined elsewhere */ +void sub_GAME_7F03FBFC(struct bss_80073DC0 *arg0) +{ + arg0->unk00 = 0; + arg0->unk04 = 0.0f; + arg0->unk08 = 0.0f; + arg0->unk0C = 0.0f; + arg0->unk10 = 0.0f; + arg0->unk14 = 0.0f; + arg0->unk18 = 0.0f; + arg0->unk1C = 0.0f; + arg0->unk60 = 1.0f; + arg0->unk88 = 0; + arg0->unk8C = 0.05f; + arg0->unk90 = 0; + arg0->unk94 = 0.0f; + arg0->unkA0 = -1; + arg0->unkA4 = 0; + arg0->unkA8 = 0; + arg0->unkAC = -1; + arg0->unkB8 = 1; + arg0->unkBC = 0; + arg0->unkC0 = 1.0f; + arg0->unkC4 = 1.0f; + arg0->unkC8 = 1.0f; + arg0->unkE0 = 0; + arg0->unkE4 = 0; + arg0->unkE8 = 0; } + #else GLOBAL_ASM( @@ -1310,126 +1351,33 @@ void sub_GAME_7F03FE88(u32 *param_1) } +struct bss_80075030 *monitorthingGetNew(void) +{ + s32 i; + for (i = 0; i < BSS_80075030_DATA_LEN; i++) + { + if (dword_CODE_bss_80075030[i].unk00 & 1) + { + dword_CODE_bss_80075030[i].unk00 = 0; + dword_CODE_bss_80075030[i].unk44 = 0; + return &dword_CODE_bss_80075030[(u32)i]; + } + } - -#ifdef NONMATCHING -void monitorthingGetNew(void) { - + return NULL; } -#else -GLOBAL_ASM( -.text -glabel monitorthingGetNew -/* 0749C8 7F03FE98 3C048007 */ lui $a0, %hi(dword_CODE_bss_80075030) -/* 0749CC 7F03FE9C 3C028007 */ lui $v0, %hi(objinst) -/* 0749D0 7F03FEA0 24425B70 */ addiu $v0, %lo(objinst) # addiu $v0, $v0, 0x5b70 -/* 0749D4 7F03FEA4 24845030 */ addiu $a0, %lo(dword_CODE_bss_80075030) # addiu $a0, $a0, 0x5030 -/* 0749D8 7F03FEA8 00001825 */ move $v1, $zero -.L7F03FEAC: -/* 0749DC 7F03FEAC 8C8E0000 */ lw $t6, ($a0) -/* 0749E0 7F03FEB0 31CF0001 */ andi $t7, $t6, 1 -/* 0749E4 7F03FEB4 11E00006 */ beqz $t7, .L7F03FED0 -/* 0749E8 7F03FEB8 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075030) -/* 0749EC 7F03FEBC 27185030 */ addiu $t8, %lo(dword_CODE_bss_80075030) # addiu $t8, $t8, 0x5030 -/* 0749F0 7F03FEC0 AC800000 */ sw $zero, ($a0) -/* 0749F4 7F03FEC4 AC800044 */ sw $zero, 0x44($a0) -/* 0749F8 7F03FEC8 03E00008 */ jr $ra -/* 0749FC 7F03FECC 00781021 */ addu $v0, $v1, $t8 - -.L7F03FED0: -/* 074A00 7F03FED0 8C990048 */ lw $t9, 0x48($a0) -/* 074A04 7F03FED4 33280001 */ andi $t0, $t9, 1 -/* 074A08 7F03FED8 11000007 */ beqz $t0, .L7F03FEF8 -/* 074A0C 7F03FEDC 3C0A8007 */ lui $t2, %hi(dword_CODE_bss_80075030) -/* 074A10 7F03FEE0 254A5030 */ addiu $t2, %lo(dword_CODE_bss_80075030) # addiu $t2, $t2, 0x5030 -/* 074A14 7F03FEE4 24690048 */ addiu $t1, $v1, 0x48 -/* 074A18 7F03FEE8 012A1021 */ addu $v0, $t1, $t2 -/* 074A1C 7F03FEEC AC800048 */ sw $zero, 0x48($a0) -/* 074A20 7F03FEF0 03E00008 */ jr $ra -/* 074A24 7F03FEF4 AC80008C */ sw $zero, 0x8c($a0) - -.L7F03FEF8: -/* 074A28 7F03FEF8 8C8B0090 */ lw $t3, 0x90($a0) -/* 074A2C 7F03FEFC 316C0001 */ andi $t4, $t3, 1 -/* 074A30 7F03FF00 11800007 */ beqz $t4, .L7F03FF20 -/* 074A34 7F03FF04 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075030) -/* 074A38 7F03FF08 25CE5030 */ addiu $t6, %lo(dword_CODE_bss_80075030) # addiu $t6, $t6, 0x5030 -/* 074A3C 7F03FF0C 246D0090 */ addiu $t5, $v1, 0x90 -/* 074A40 7F03FF10 01AE1021 */ addu $v0, $t5, $t6 -/* 074A44 7F03FF14 AC800090 */ sw $zero, 0x90($a0) -/* 074A48 7F03FF18 03E00008 */ jr $ra -/* 074A4C 7F03FF1C AC8000D4 */ sw $zero, 0xd4($a0) - -.L7F03FF20: -/* 074A50 7F03FF20 8C8F00D8 */ lw $t7, 0xd8($a0) -/* 074A54 7F03FF24 31F80001 */ andi $t8, $t7, 1 -/* 074A58 7F03FF28 13000007 */ beqz $t8, .L7F03FF48 -/* 074A5C 7F03FF2C 3C088007 */ lui $t0, %hi(dword_CODE_bss_80075030) -/* 074A60 7F03FF30 25085030 */ addiu $t0, %lo(dword_CODE_bss_80075030) # addiu $t0, $t0, 0x5030 -/* 074A64 7F03FF34 247900D8 */ addiu $t9, $v1, 0xd8 -/* 074A68 7F03FF38 03281021 */ addu $v0, $t9, $t0 -/* 074A6C 7F03FF3C AC8000D8 */ sw $zero, 0xd8($a0) -/* 074A70 7F03FF40 03E00008 */ jr $ra -/* 074A74 7F03FF44 AC80011C */ sw $zero, 0x11c($a0) - -.L7F03FF48: -/* 074A78 7F03FF48 24840120 */ addiu $a0, $a0, 0x120 -/* 074A7C 7F03FF4C 1482FFD7 */ bne $a0, $v0, .L7F03FEAC -/* 074A80 7F03FF50 24630120 */ addiu $v1, $v1, 0x120 -/* 074A84 7F03FF54 00001025 */ move $v0, $zero -/* 074A88 7F03FF58 03E00008 */ jr $ra -/* 074A8C 7F03FF5C 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING s32 sub_GAME_7F03FF60(ObjectRecord *arg0) { if (!(arg0->state & PROPSTATE_DESTROYED)) { - return (s32) ((arg0->maxdamage * 3.0f) / (f32)(arg0->damage)); + return (arg0->maxdamage * 3.0f) / arg0->damage; } - return (s32) (arg0->maxdamage + 4.0f); + + return arg0->maxdamage + 4.0f; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03FF60 -/* 074A90 7F03FF60 908E0002 */ lbu $t6, 2($a0) -/* 074A94 7F03FF64 3C014080 */ lui $at, 0x4080 -/* 074A98 7F03FF68 31CF0080 */ andi $t7, $t6, 0x80 -/* 074A9C 7F03FF6C 55E0000C */ bnezl $t7, .L7F03FFA0 -/* 074AA0 7F03FF70 C4840070 */ lwc1 $f4, 0x70($a0) -/* 074AA4 7F03FF74 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 074AA8 7F03FF78 44813000 */ mtc1 $at, $f6 -/* 074AAC 7F03FF7C C4840070 */ lwc1 $f4, 0x70($a0) -/* 074AB0 7F03FF80 C48A0074 */ lwc1 $f10, 0x74($a0) -/* 074AB4 7F03FF84 46062202 */ mul.s $f8, $f4, $f6 -/* 074AB8 7F03FF88 460A4403 */ div.s $f16, $f8, $f10 -/* 074ABC 7F03FF8C 4600848D */ trunc.w.s $f18, $f16 -/* 074AC0 7F03FF90 44029000 */ mfc1 $v0, $f18 -/* 074AC4 7F03FF94 03E00008 */ jr $ra -/* 074AC8 7F03FF98 00000000 */ nop - -/* 074ACC 7F03FF9C C4840070 */ lwc1 $f4, 0x70($a0) -.L7F03FFA0: -/* 074AD0 7F03FFA0 44813000 */ mtc1 $at, $f6 -/* 074AD4 7F03FFA4 00000000 */ nop -/* 074AD8 7F03FFA8 46062200 */ add.s $f8, $f4, $f6 -/* 074ADC 7F03FFAC 4600428D */ trunc.w.s $f10, $f8 -/* 074AE0 7F03FFB0 44025000 */ mfc1 $v0, $f10 -/* 074AE4 7F03FFB4 00000000 */ nop -/* 074AE8 7F03FFB8 03E00008 */ jr $ra -/* 074AEC 7F03FFBC 00000000 */ nop -) -#endif - - /* @@ -1449,7 +1397,7 @@ s32 do_something_if_object_destroyed(ObjectRecord *obj) #ifndef NONMATCHING -ModelNode_BoundingBoxRecord *sub_GAME_7F03FFF8(ModelFileHeader *obj) +ModelRoData_BoundingBoxRecord *sub_GAME_7F03FFF8(ModelFileHeader *obj) { ModelNode *mdlnext; @@ -1697,173 +1645,47 @@ glabel set_color_shading_from_tile #endif +void sub_GAME_7F0402B4(PropRecord *prop, rgba_u8 *color) +{ + struct DoorRecord *door = prop->door; + if (door->flags & 0x400 ){ return; } - - -#ifdef NONMATCHING -void sub_GAME_7F0402B4(void) { - + set_color_shading_from_tile(prop, color); + color->r >>= 1; + color->g >>= 1; + color->b >>= 1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0402B4 -/* 074DE4 7F0402B4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 074DE8 7F0402B8 AFBF0014 */ sw $ra, 0x14($sp) -/* 074DEC 7F0402BC 8C820004 */ lw $v0, 4($a0) -/* 074DF0 7F0402C0 8C4E0008 */ lw $t6, 8($v0) -/* 074DF4 7F0402C4 31CF0400 */ andi $t7, $t6, 0x400 -/* 074DF8 7F0402C8 55E0000E */ bnezl $t7, .L7F040304 -/* 074DFC 7F0402CC 8FBF0014 */ lw $ra, 0x14($sp) -/* 074E00 7F0402D0 0FC10027 */ jal set_color_shading_from_tile -/* 074E04 7F0402D4 AFA5001C */ sw $a1, 0x1c($sp) -/* 074E08 7F0402D8 8FA5001C */ lw $a1, 0x1c($sp) -/* 074E0C 7F0402DC 90B80000 */ lbu $t8, ($a1) -/* 074E10 7F0402E0 90A80001 */ lbu $t0, 1($a1) -/* 074E14 7F0402E4 90AA0002 */ lbu $t2, 2($a1) -/* 074E18 7F0402E8 0018C842 */ srl $t9, $t8, 1 -/* 074E1C 7F0402EC 00084842 */ srl $t1, $t0, 1 -/* 074E20 7F0402F0 000A5842 */ srl $t3, $t2, 1 -/* 074E24 7F0402F4 A0B90000 */ sb $t9, ($a1) -/* 074E28 7F0402F8 A0A90001 */ sb $t1, 1($a1) -/* 074E2C 7F0402FC A0AB0002 */ sb $t3, 2($a1) -/* 074E30 7F040300 8FBF0014 */ lw $ra, 0x14($sp) -.L7F040304: -/* 074E34 7F040304 27BD0018 */ addiu $sp, $sp, 0x18 -/* 074E38 7F040308 03E00008 */ jr $ra -/* 074E3C 7F04030C 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void update_color_shading(void) { - +void update_color_shading(rgba_u8 *dest, rgba_u8 *src) +{ + s32 val_diff; + s32 val_new; + s32 i; + + for (i = 0; i < 4; i++) + { + val_diff = (src->rgba[i] - dest->rgba[i]); + val_new = dest->rgba[i] + ((val_diff + 7) >> 3); + dest->rgba[i] = val_new; + } } -#else -GLOBAL_ASM( -.text -glabel update_color_shading -/* 074E40 7F040310 90880000 */ lbu $t0, ($a0) -/* 074E44 7F040314 90AE0000 */ lbu $t6, ($a1) -/* 074E48 7F040318 90890001 */ lbu $t1, 1($a0) -/* 074E4C 7F04031C 908A0002 */ lbu $t2, 2($a0) -/* 074E50 7F040320 01C81023 */ subu $v0, $t6, $t0 -/* 074E54 7F040324 244F0007 */ addiu $t7, $v0, 7 -/* 074E58 7F040328 000FC0C3 */ sra $t8, $t7, 3 -/* 074E5C 7F04032C 01181821 */ addu $v1, $t0, $t8 -/* 074E60 7F040330 A0830000 */ sb $v1, ($a0) -/* 074E64 7F040334 90B90001 */ lbu $t9, 1($a1) -/* 074E68 7F040338 908B0003 */ lbu $t3, 3($a0) -/* 074E6C 7F04033C 03291023 */ subu $v0, $t9, $t1 -/* 074E70 7F040340 244C0007 */ addiu $t4, $v0, 7 -/* 074E74 7F040344 000C68C3 */ sra $t5, $t4, 3 -/* 074E78 7F040348 012D1821 */ addu $v1, $t1, $t5 -/* 074E7C 7F04034C A0830001 */ sb $v1, 1($a0) -/* 074E80 7F040350 90AE0002 */ lbu $t6, 2($a1) -/* 074E84 7F040354 01CA1023 */ subu $v0, $t6, $t2 -/* 074E88 7F040358 244F0007 */ addiu $t7, $v0, 7 -/* 074E8C 7F04035C 000FC0C3 */ sra $t8, $t7, 3 -/* 074E90 7F040360 01581821 */ addu $v1, $t2, $t8 -/* 074E94 7F040364 A0830002 */ sb $v1, 2($a0) -/* 074E98 7F040368 90B90003 */ lbu $t9, 3($a1) -/* 074E9C 7F04036C 032B1023 */ subu $v0, $t9, $t3 -/* 074EA0 7F040370 244C0007 */ addiu $t4, $v0, 7 -/* 074EA4 7F040374 000C68C3 */ sra $t5, $t4, 3 -/* 074EA8 7F040378 016D1821 */ addu $v1, $t3, $t5 -/* 074EAC 7F04037C 03E00008 */ jr $ra -/* 074EB0 7F040380 A0830003 */ sb $v1, 3($a0) -) -#endif +void sub_GAME_7F040384(rgba_s32* arg0, s32 arg1, rgba_f32* arg2) +{ + if (arg1 == 1) + { + arg2->r *= 255.0f; + arg2->g *= 255.0f; + arg2->b *= 255.0f; - - -#ifdef NONMATCHING -void sub_GAME_7F040384(void) { - + if (1) { arg0->r = (s32)((arg2->a * (arg2->r - arg0->r)) + arg0->r); } + if (1) { arg0->g = (s32)((arg2->a * (arg2->g - arg0->g)) + arg0->g); } + if (1) { arg0->b = (s32)((arg2->a * (arg2->b - arg0->b)) + arg0->b); } + arg0->a = (s32)((arg2->a * (255.0f - arg0->a)) + arg0->a); + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F040384 -/* 074EB4 7F040384 24010001 */ li $at, 1 -/* 074EB8 7F040388 14A1003C */ bne $a1, $at, .L7F04047C -/* 074EBC 7F04038C 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 074EC0 7F040390 44811000 */ mtc1 $at, $f2 -/* 074EC4 7F040394 C4C40000 */ lwc1 $f4, ($a2) -/* 074EC8 7F040398 C4C80004 */ lwc1 $f8, 4($a2) -/* 074ECC 7F04039C C4D00008 */ lwc1 $f16, 8($a2) -/* 074ED0 7F0403A0 46022182 */ mul.s $f6, $f4, $f2 -/* 074ED4 7F0403A4 00000000 */ nop -/* 074ED8 7F0403A8 46024282 */ mul.s $f10, $f8, $f2 -/* 074EDC 7F0403AC 00000000 */ nop -/* 074EE0 7F0403B0 46028482 */ mul.s $f18, $f16, $f2 -/* 074EE4 7F0403B4 E4C60000 */ swc1 $f6, ($a2) -/* 074EE8 7F0403B8 C4C80000 */ lwc1 $f8, ($a2) -/* 074EEC 7F0403BC C4C6000C */ lwc1 $f6, 0xc($a2) -/* 074EF0 7F0403C0 E4CA0004 */ swc1 $f10, 4($a2) -/* 074EF4 7F0403C4 E4D20008 */ swc1 $f18, 8($a2) -/* 074EF8 7F0403C8 8C8E0000 */ lw $t6, ($a0) -/* 074EFC 7F0403CC 8C990004 */ lw $t9, 4($a0) -/* 074F00 7F0403D0 8C8A0008 */ lw $t2, 8($a0) -/* 074F04 7F0403D4 448E2000 */ mtc1 $t6, $f4 -/* 074F08 7F0403D8 8C8D000C */ lw $t5, 0xc($a0) -/* 074F0C 7F0403DC 46802020 */ cvt.s.w $f0, $f4 -/* 074F10 7F0403E0 46004281 */ sub.s $f10, $f8, $f0 -/* 074F14 7F0403E4 44994000 */ mtc1 $t9, $f8 -/* 074F18 7F0403E8 460A3402 */ mul.s $f16, $f6, $f10 -/* 074F1C 7F0403EC 46008480 */ add.s $f18, $f16, $f0 -/* 074F20 7F0403F0 46804020 */ cvt.s.w $f0, $f8 -/* 074F24 7F0403F4 4600910D */ trunc.w.s $f4, $f18 -/* 074F28 7F0403F8 44182000 */ mfc1 $t8, $f4 -/* 074F2C 7F0403FC 00000000 */ nop -/* 074F30 7F040400 AC980000 */ sw $t8, ($a0) -/* 074F34 7F040404 C4CA0004 */ lwc1 $f10, 4($a2) -/* 074F38 7F040408 C4C6000C */ lwc1 $f6, 0xc($a2) -/* 074F3C 7F04040C 46005401 */ sub.s $f16, $f10, $f0 -/* 074F40 7F040410 448A5000 */ mtc1 $t2, $f10 -/* 074F44 7F040414 46103482 */ mul.s $f18, $f6, $f16 -/* 074F48 7F040418 46009100 */ add.s $f4, $f18, $f0 -/* 074F4C 7F04041C 46805020 */ cvt.s.w $f0, $f10 -/* 074F50 7F040420 4600220D */ trunc.w.s $f8, $f4 -/* 074F54 7F040424 44094000 */ mfc1 $t1, $f8 -/* 074F58 7F040428 00000000 */ nop -/* 074F5C 7F04042C AC890004 */ sw $t1, 4($a0) -/* 074F60 7F040430 C4D00008 */ lwc1 $f16, 8($a2) -/* 074F64 7F040434 C4C6000C */ lwc1 $f6, 0xc($a2) -/* 074F68 7F040438 46008481 */ sub.s $f18, $f16, $f0 -/* 074F6C 7F04043C 448D8000 */ mtc1 $t5, $f16 -/* 074F70 7F040440 46123102 */ mul.s $f4, $f6, $f18 -/* 074F74 7F040444 46002200 */ add.s $f8, $f4, $f0 -/* 074F78 7F040448 46808020 */ cvt.s.w $f0, $f16 -/* 074F7C 7F04044C 4600428D */ trunc.w.s $f10, $f8 -/* 074F80 7F040450 46001481 */ sub.s $f18, $f2, $f0 -/* 074F84 7F040454 440C5000 */ mfc1 $t4, $f10 -/* 074F88 7F040458 00000000 */ nop -/* 074F8C 7F04045C AC8C0008 */ sw $t4, 8($a0) -/* 074F90 7F040460 C4C6000C */ lwc1 $f6, 0xc($a2) -/* 074F94 7F040464 46123102 */ mul.s $f4, $f6, $f18 -/* 074F98 7F040468 46002200 */ add.s $f8, $f4, $f0 -/* 074F9C 7F04046C 4600428D */ trunc.w.s $f10, $f8 -/* 074FA0 7F040470 440F5000 */ mfc1 $t7, $f10 -/* 074FA4 7F040474 00000000 */ nop -/* 074FA8 7F040478 AC8F000C */ sw $t7, 0xc($a0) -.L7F04047C: -/* 074FAC 7F04047C 03E00008 */ jr $ra -/* 074FB0 7F040480 00000000 */ nop -) -#endif - - - - - - /** @@ -1892,177 +1714,99 @@ void chrobjCollisionRelated(ObjectRecord *arg0) } +PropRecord* init_standard_object(ObjectRecord* obj, ModelFileHeader* model_header, PropRecord* prop, Model* model) +{ + if (prop == NULL) + { + prop = chrpropAllocate(); + } + if (model == NULL) + { + if (obj->type == 0x28) + { + model = get_aircraft_obj_instance_controller(model_header); + } + else + { + model = get_obj_instance_controller_for_header(model_header); + } + } + if ((prop != NULL) && (model != NULL)) + { + obj->model = model; + obj->ptr_allocated_collisiondata_block = NULL; -#ifdef NONMATCHING -void init_standard_object(void) { + if (obj->flags & 0x100) + { + obj->ptr_allocated_collisiondata_block = mempAllocBytesInBank(0x50U, 4U); + obj->state = (u8) (obj->state | 8); + } + else + { + obj->state = (u8) (obj->state & 0xFFF7); + } + obj->prop = prop; + obj->unk6C = 0; + obj->field_78.r = 0; + obj->field_78.g = 0; + obj->field_78.b = 0; + obj->field_78.a = 0; + obj->field_7C = 0; + obj->field_7D = 0; + obj->field_7E = 0; + obj->field_7F = 0; + obj->maxdamage = 0.0f; + *((s16*)&obj->model->unk00) = -1; + obj->model->chr = NULL; + modelSetScale(obj->model, PitemZ_entries[obj->obj].scale); + prop->type = 1; + prop->obj = obj; + prop->pos.x = 0.0f; + obj->runtime_pos.x = 0.0f; + prop->pos.y = 0.0f; + obj->runtime_pos.y = 0.0f; + prop->pos.z = 0.0f; + obj->runtime_pos.z = 0.0f; + prop->stan = NULL; + } + else + { + if (model != NULL) + { + if (obj->type == 0x28) + { + set_aircraft_obj_inst_scale_to_zero(model); + } + else + { + clear_model_obj(model); + } + } + + if (prop != NULL) + { + chrpropFree(prop); + prop = NULL; + } + } + + return prop; } -#else -GLOBAL_ASM( -.text -glabel init_standard_object -/* 07507C 7F04054C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 075080 7F040550 AFB10018 */ sw $s1, 0x18($sp) -/* 075084 7F040554 AFB00014 */ sw $s0, 0x14($sp) -/* 075088 7F040558 00808025 */ move $s0, $a0 -/* 07508C 7F04055C 00C08825 */ move $s1, $a2 -/* 075090 7F040560 14C00007 */ bnez $a2, .L7F040580 -/* 075094 7F040564 AFBF001C */ sw $ra, 0x1c($sp) -/* 075098 7F040568 AFA50024 */ sw $a1, 0x24($sp) -/* 07509C 7F04056C 0FC0E90C */ jal chrpropAllocate -/* 0750A0 7F040570 AFA7002C */ sw $a3, 0x2c($sp) -/* 0750A4 7F040574 8FA50024 */ lw $a1, 0x24($sp) -/* 0750A8 7F040578 8FA7002C */ lw $a3, 0x2c($sp) -/* 0750AC 7F04057C 00408825 */ move $s1, $v0 -.L7F040580: -/* 0750B0 7F040580 14E0000C */ bnez $a3, .L7F0405B4 -/* 0750B4 7F040584 00000000 */ nop -/* 0750B8 7F040588 920E0003 */ lbu $t6, 3($s0) -/* 0750BC 7F04058C 24010028 */ li $at, 40 -/* 0750C0 7F040590 15C10005 */ bne $t6, $at, .L7F0405A8 -/* 0750C4 7F040594 00000000 */ nop -/* 0750C8 7F040598 0FC1B08F */ jal get_aircraft_obj_instance_controller -/* 0750CC 7F04059C 00A02025 */ move $a0, $a1 -/* 0750D0 7F0405A0 10000004 */ b .L7F0405B4 -/* 0750D4 7F0405A4 00403825 */ move $a3, $v0 -.L7F0405A8: -/* 0750D8 7F0405A8 0FC1B025 */ jal get_obj_instance_controller_for_header -/* 0750DC 7F0405AC 00A02025 */ move $a0, $a1 -/* 0750E0 7F0405B0 00403825 */ move $a3, $v0 -.L7F0405B4: -/* 0750E4 7F0405B4 12200039 */ beqz $s1, .L7F04069C -/* 0750E8 7F0405B8 00000000 */ nop -/* 0750EC 7F0405BC 10E00037 */ beqz $a3, .L7F04069C -/* 0750F0 7F0405C0 00000000 */ nop -/* 0750F4 7F0405C4 8E0F0008 */ lw $t7, 8($s0) -/* 0750F8 7F0405C8 AE070014 */ sw $a3, 0x14($s0) -/* 0750FC 7F0405CC AE000068 */ sw $zero, 0x68($s0) -/* 075100 7F0405D0 31F80100 */ andi $t8, $t7, 0x100 -/* 075104 7F0405D4 13000008 */ beqz $t8, .L7F0405F8 -/* 075108 7F0405D8 24040050 */ li $a0, 80 -/* 07510C 7F0405DC 0C0025C8 */ jal mempAllocBytesInBank -/* 075110 7F0405E0 24050004 */ li $a1, 4 -/* 075114 7F0405E4 92190002 */ lbu $t9, 2($s0) -/* 075118 7F0405E8 AE020068 */ sw $v0, 0x68($s0) -/* 07511C 7F0405EC 37280008 */ ori $t0, $t9, 8 -/* 075120 7F0405F0 10000004 */ b .L7F040604 -/* 075124 7F0405F4 A2080002 */ sb $t0, 2($s0) -.L7F0405F8: -/* 075128 7F0405F8 92090002 */ lbu $t1, 2($s0) -/* 07512C 7F0405FC 312AFFF7 */ andi $t2, $t1, 0xfff7 -/* 075130 7F040600 A20A0002 */ sb $t2, 2($s0) -.L7F040604: -/* 075134 7F040604 44800000 */ mtc1 $zero, $f0 -/* 075138 7F040608 8E0C0014 */ lw $t4, 0x14($s0) -/* 07513C 7F04060C AE110010 */ sw $s1, 0x10($s0) -/* 075140 7F040610 AE00006C */ sw $zero, 0x6c($s0) -/* 075144 7F040614 A2000078 */ sb $zero, 0x78($s0) -/* 075148 7F040618 A2000079 */ sb $zero, 0x79($s0) -/* 07514C 7F04061C A200007A */ sb $zero, 0x7a($s0) -/* 075150 7F040620 A200007B */ sb $zero, 0x7b($s0) -/* 075154 7F040624 A200007C */ sb $zero, 0x7c($s0) -/* 075158 7F040628 A200007D */ sb $zero, 0x7d($s0) -/* 07515C 7F04062C A200007E */ sb $zero, 0x7e($s0) -/* 075160 7F040630 A200007F */ sb $zero, 0x7f($s0) -/* 075164 7F040634 240BFFFF */ li $t3, -1 -/* 075168 7F040638 E6000070 */ swc1 $f0, 0x70($s0) -/* 07516C 7F04063C A58B0000 */ sh $t3, ($t4) -/* 075170 7F040640 8E0D0014 */ lw $t5, 0x14($s0) -/* 075174 7F040644 3C058004 */ lui $a1, %hi(PitemZ_entries+8) -/* 075178 7F040648 ADA00004 */ sw $zero, 4($t5) -/* 07517C 7F04064C 860E0004 */ lh $t6, 4($s0) -/* 075180 7F040650 8E040014 */ lw $a0, 0x14($s0) -/* 075184 7F040654 000E7880 */ sll $t7, $t6, 2 -/* 075188 7F040658 01EE7823 */ subu $t7, $t7, $t6 -/* 07518C 7F04065C 000F7880 */ sll $t7, $t7, 2 -/* 075190 7F040660 00AF2821 */ addu $a1, $a1, $t7 -/* 075194 7F040664 0FC1B39E */ jal modelSetScale -/* 075198 7F040668 8CA5A230 */ lw $a1, %lo(PitemZ_entries+8)($a1) -/* 07519C 7F04066C 44800000 */ mtc1 $zero, $f0 -/* 0751A0 7F040670 24180001 */ li $t8, 1 -/* 0751A4 7F040674 A2380000 */ sb $t8, ($s1) -/* 0751A8 7F040678 AE300004 */ sw $s0, 4($s1) -/* 0751AC 7F04067C E6200008 */ swc1 $f0, 8($s1) -/* 0751B0 7F040680 E6000058 */ swc1 $f0, 0x58($s0) -/* 0751B4 7F040684 E620000C */ swc1 $f0, 0xc($s1) -/* 0751B8 7F040688 E600005C */ swc1 $f0, 0x5c($s0) -/* 0751BC 7F04068C E6200010 */ swc1 $f0, 0x10($s1) -/* 0751C0 7F040690 E6000060 */ swc1 $f0, 0x60($s0) -/* 0751C4 7F040694 10000012 */ b .L7F0406E0 -/* 0751C8 7F040698 AE200014 */ sw $zero, 0x14($s1) -.L7F04069C: -/* 0751CC 7F04069C 10E0000B */ beqz $a3, .L7F0406CC -/* 0751D0 7F0406A0 00000000 */ nop -/* 0751D4 7F0406A4 92190003 */ lbu $t9, 3($s0) -/* 0751D8 7F0406A8 24010028 */ li $at, 40 -/* 0751DC 7F0406AC 17210005 */ bne $t9, $at, .L7F0406C4 -/* 0751E0 7F0406B0 00000000 */ nop -/* 0751E4 7F0406B4 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero -/* 0751E8 7F0406B8 00E02025 */ move $a0, $a3 -/* 0751EC 7F0406BC 10000003 */ b .L7F0406CC -/* 0751F0 7F0406C0 00000000 */ nop -.L7F0406C4: -/* 0751F4 7F0406C4 0FC1B08D */ jal set_obj_instance_scale_to_zero -/* 0751F8 7F0406C8 00E02025 */ move $a0, $a3 -.L7F0406CC: -/* 0751FC 7F0406CC 52200005 */ beql $s1, $zero, .L7F0406E4 -/* 075200 7F0406D0 8FBF001C */ lw $ra, 0x1c($sp) -/* 075204 7F0406D4 0FC0E921 */ jal chrpropFree -/* 075208 7F0406D8 02202025 */ move $a0, $s1 -/* 07520C 7F0406DC 00008825 */ move $s1, $zero -.L7F0406E0: -/* 075210 7F0406E0 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0406E4: -/* 075214 7F0406E4 02201025 */ move $v0, $s1 -/* 075218 7F0406E8 8FB10018 */ lw $s1, 0x18($sp) -/* 07521C 7F0406EC 8FB00014 */ lw $s0, 0x14($sp) -/* 075220 7F0406F0 03E00008 */ jr $ra -/* 075224 7F0406F4 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - - -PropRecord* sub_GAME_7F0406F8(s32* object, ModelFileHeader* header) { +PropRecord* sub_GAME_7F0406F8(ObjectRecord* object, ModelFileHeader* header) +{ return init_standard_object(object, header, 0, 0); } - - - -#ifdef NONMATCHING -void objInitWithAutoModel(void) { - +void objInitWithAutoModel(ObjectRecord* obj) +{ + sub_GAME_7F0406F8(obj, PitemZ_entries[obj->obj].header); } -#else -GLOBAL_ASM( -.text -glabel objInitWithAutoModel -/* 07524C 7F04071C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 075250 7F040720 AFBF0014 */ sw $ra, 0x14($sp) -/* 075254 7F040724 848E0004 */ lh $t6, 4($a0) -/* 075258 7F040728 3C058004 */ lui $a1, %hi(PitemZ_entries) -/* 07525C 7F04072C 000E7880 */ sll $t7, $t6, 2 -/* 075260 7F040730 01EE7823 */ subu $t7, $t7, $t6 -/* 075264 7F040734 000F7880 */ sll $t7, $t7, 2 -/* 075268 7F040738 00AF2821 */ addu $a1, $a1, $t7 -/* 07526C 7F04073C 0FC101BE */ jal sub_GAME_7F0406F8 -/* 075270 7F040740 8CA5A228 */ lw $a1, %lo(PitemZ_entries)($a1) -/* 075274 7F040744 8FBF0014 */ lw $ra, 0x14($sp) -/* 075278 7F040748 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07527C 7F04074C 03E00008 */ jr $ra -/* 075280 7F040750 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -2178,7 +1922,7 @@ glabel sub_GAME_7F0407F4 void sub_GAME_7F04088C(ObjectRecord *baseobj, PadRecord *pad, Mtxf *matrix, StandTile *stan, PadRecord *pad2) //#MATCH { int padd[1]; - ModelNode_BoundingBoxRecord *modelBoundingBox = sub_GAME_7F03FFF8(baseobj->model->obj); //GetBoundingBox //a0 yes + ModelRoData_BoundingBoxRecord *modelBoundingBox = sub_GAME_7F03FFF8(baseobj->model->obj); //GetBoundingBox //a0 yes f32 xmax = chrpropBBOXGetYmin(modelBoundingBox); //GetXMax//9c yes f32 ymin = chrpropBBOXGetYmax(modelBoundingBox); //GetYMin//98 yes coord3d newPos; //8c 90 94 yes @@ -2821,7 +2565,7 @@ glabel objFree /* 075B04 7F040FD4 10000004 */ b .L7F040FE8 /* 075B08 7F040FD8 8FB9002C */ lw $t9, 0x2c($sp) .L7F040FDC: -/* 075B0C 7F040FDC 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 075B0C 7F040FDC 0FC1B08D */ jal clear_model_obj /* 075B10 7F040FE0 8E440014 */ lw $a0, 0x14($s2) /* 075B14 7F040FE4 8FB9002C */ lw $t9, 0x2c($sp) .L7F040FE8: @@ -5780,125 +5524,71 @@ glabel sub_GAME_7F043650 #endif +void sub_GAME_7F043838(coord3d *arg0, Mtxf *arg1) +{ + f32 sp124; + f32 sp120; + f32 sp11c; + f32 sp118; + f32 sp114; + f32 f0; + f32 sp10c; + f32 sp108; + f32 sp104; + f32 a; + f32 b; + f32 stack; + f32 spf4; + f32 spf0; + Mtxf spb0; + Mtxf sp70; + Mtxf sp30; + coord3d sp24; + f0 = sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[1] * arg0->f[1] + arg0->f[2] * arg0->f[2]); + sp10c = arg0->x / f0; + sp108 = arg0->y / f0; + sp104 = arg0->z / f0; -#ifdef NONMATCHING -void sub_GAME_7F043838(void) { + if (sp10c == 0.0f && sp104 == 0.0f) + { + sp124 = 0.0f; + sp120 = 0.0f; + sp11c = sp108; + sp118 = 1.0f; + sp114 = 0.0f; + } + else + { + a = sqrtf(sp10c * sp10c + sp104 * sp104); + b = sp10c / a; + sp118 = sp104 / a; + sp114 = -b; + + sp124 = sp108 * b; + sp120 = -a; + sp11c = sp108 * sp118; + } + + spf4 = atan2f(sp118, sp114); + + matrix_4x4_set_rotation_around_y(-spf4, &spb0); + + sp24.x = sp124; + sp24.y = sp120; + sp24.z = sp11c; + + matrix_4x4_rotate_vector_in_place(&spb0, sp24.f); + + spf0 = atan2f(sp24.x, sp24.y); + + matrix_4x4_set_rotation_around_y(-1.5707964f + spf4, &sp70); + matrix_4x4_set_rotation_around_x(-1.5707964f - spf0, &sp30); + + matrix_4x4_multiply(&sp70, &sp30, arg1); } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80052A8C -.word 0xbfc90fdb /*-1.5707964*/ -glabel D_80052A90 -.word 0xbfc90fdb /*-1.5707964*/ -.text -glabel sub_GAME_7F043838 -/* 078368 7F043838 27BDFED8 */ addiu $sp, $sp, -0x128 -/* 07836C 7F04383C AFBF0014 */ sw $ra, 0x14($sp) -/* 078370 7F043840 AFA5012C */ sw $a1, 0x12c($sp) -/* 078374 7F043844 C4820000 */ lwc1 $f2, ($a0) -/* 078378 7F043848 C48E0004 */ lwc1 $f14, 4($a0) -/* 07837C 7F04384C C4800008 */ lwc1 $f0, 8($a0) -/* 078380 7F043850 46021102 */ mul.s $f4, $f2, $f2 -/* 078384 7F043854 AFA40128 */ sw $a0, 0x128($sp) -/* 078388 7F043858 460E7182 */ mul.s $f6, $f14, $f14 -/* 07838C 7F04385C 46062200 */ add.s $f8, $f4, $f6 -/* 078390 7F043860 46000282 */ mul.s $f10, $f0, $f0 -/* 078394 7F043864 0C007DF8 */ jal sqrtf -/* 078398 7F043868 46085300 */ add.s $f12, $f10, $f8 -/* 07839C 7F04386C 8FA40128 */ lw $a0, 0x128($sp) -/* 0783A0 7F043870 44801000 */ mtc1 $zero, $f2 -/* 0783A4 7F043874 C4840000 */ lwc1 $f4, ($a0) -/* 0783A8 7F043878 C4860004 */ lwc1 $f6, 4($a0) -/* 0783AC 7F04387C C48A0008 */ lwc1 $f10, 8($a0) -/* 0783B0 7F043880 46002383 */ div.s $f14, $f4, $f0 -/* 0783B4 7F043884 46003483 */ div.s $f18, $f6, $f0 -/* 0783B8 7F043888 46027032 */ c.eq.s $f14, $f2 -/* 0783BC 7F04388C 00000000 */ nop -/* 0783C0 7F043890 4500000C */ bc1f .L7F0438C4 -/* 0783C4 7F043894 46005403 */ div.s $f16, $f10, $f0 -/* 0783C8 7F043898 46028032 */ c.eq.s $f16, $f2 -/* 0783CC 7F04389C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0783D0 7F0438A0 45000008 */ bc1f .L7F0438C4 -/* 0783D4 7F0438A4 00000000 */ nop -/* 0783D8 7F0438A8 44814000 */ mtc1 $at, $f8 -/* 0783DC 7F0438AC E7A20124 */ swc1 $f2, 0x124($sp) -/* 0783E0 7F0438B0 E7A20120 */ swc1 $f2, 0x120($sp) -/* 0783E4 7F0438B4 E7B2011C */ swc1 $f18, 0x11c($sp) -/* 0783E8 7F0438B8 E7A20114 */ swc1 $f2, 0x114($sp) -/* 0783EC 7F0438BC 10000016 */ b .L7F043918 -/* 0783F0 7F0438C0 E7A80118 */ swc1 $f8, 0x118($sp) -.L7F0438C4: -/* 0783F4 7F0438C4 460E7102 */ mul.s $f4, $f14, $f14 -/* 0783F8 7F0438C8 E7AE010C */ swc1 $f14, 0x10c($sp) -/* 0783FC 7F0438CC E7B00104 */ swc1 $f16, 0x104($sp) -/* 078400 7F0438D0 46108182 */ mul.s $f6, $f16, $f16 -/* 078404 7F0438D4 E7B20108 */ swc1 $f18, 0x108($sp) -/* 078408 7F0438D8 0C007DF8 */ jal sqrtf -/* 07840C 7F0438DC 46062300 */ add.s $f12, $f4, $f6 -/* 078410 7F0438E0 C7AE010C */ lwc1 $f14, 0x10c($sp) -/* 078414 7F0438E4 C7B00104 */ lwc1 $f16, 0x104($sp) -/* 078418 7F0438E8 C7B20108 */ lwc1 $f18, 0x108($sp) -/* 07841C 7F0438EC 46007083 */ div.s $f2, $f14, $f0 -/* 078420 7F0438F0 46000107 */ neg.s $f4, $f0 -/* 078424 7F0438F4 E7A40120 */ swc1 $f4, 0x120($sp) -/* 078428 7F0438F8 46008303 */ div.s $f12, $f16, $f0 -/* 07842C 7F0438FC 46029202 */ mul.s $f8, $f18, $f2 -/* 078430 7F043900 46001287 */ neg.s $f10, $f2 -/* 078434 7F043904 E7AA0114 */ swc1 $f10, 0x114($sp) -/* 078438 7F043908 E7A80124 */ swc1 $f8, 0x124($sp) -/* 07843C 7F04390C 460C9182 */ mul.s $f6, $f18, $f12 -/* 078440 7F043910 E7AC0118 */ swc1 $f12, 0x118($sp) -/* 078444 7F043914 E7A6011C */ swc1 $f6, 0x11c($sp) -.L7F043918: -/* 078448 7F043918 C7AC0118 */ lwc1 $f12, 0x118($sp) -/* 07844C 7F04391C 0FC16A8C */ jal atan2f -/* 078450 7F043920 C7AE0114 */ lwc1 $f14, 0x114($sp) -/* 078454 7F043924 E7A000F4 */ swc1 $f0, 0xf4($sp) -/* 078458 7F043928 46000307 */ neg.s $f12, $f0 -/* 07845C 7F04392C 0FC1617F */ jal matrix_4x4_set_rotation_around_y -/* 078460 7F043930 27A500B0 */ addiu $a1, $sp, 0xb0 -/* 078464 7F043934 C7AA0124 */ lwc1 $f10, 0x124($sp) -/* 078468 7F043938 C7A80120 */ lwc1 $f8, 0x120($sp) -/* 07846C 7F04393C C7A4011C */ lwc1 $f4, 0x11c($sp) -/* 078470 7F043940 27A400B0 */ addiu $a0, $sp, 0xb0 -/* 078474 7F043944 27A50024 */ addiu $a1, $sp, 0x24 -/* 078478 7F043948 E7AA0024 */ swc1 $f10, 0x24($sp) -/* 07847C 7F04394C E7A80028 */ swc1 $f8, 0x28($sp) -/* 078480 7F043950 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place -/* 078484 7F043954 E7A4002C */ swc1 $f4, 0x2c($sp) -/* 078488 7F043958 C7AC0024 */ lwc1 $f12, 0x24($sp) -/* 07848C 7F04395C 0FC16A8C */ jal atan2f -/* 078490 7F043960 C7AE0028 */ lwc1 $f14, 0x28($sp) -/* 078494 7F043964 3C018005 */ lui $at, %hi(D_80052A8C) -/* 078498 7F043968 C4262A8C */ lwc1 $f6, %lo(D_80052A8C)($at) -/* 07849C 7F04396C C7AA00F4 */ lwc1 $f10, 0xf4($sp) -/* 0784A0 7F043970 E7A000F0 */ swc1 $f0, 0xf0($sp) -/* 0784A4 7F043974 27A50070 */ addiu $a1, $sp, 0x70 -/* 0784A8 7F043978 0FC1617F */ jal matrix_4x4_set_rotation_around_y -/* 0784AC 7F04397C 460A3300 */ add.s $f12, $f6, $f10 -/* 0784B0 7F043980 3C018005 */ lui $at, %hi(D_80052A90) -/* 0784B4 7F043984 C4282A90 */ lwc1 $f8, %lo(D_80052A90)($at) -/* 0784B8 7F043988 C7A400F0 */ lwc1 $f4, 0xf0($sp) -/* 0784BC 7F04398C 27A50030 */ addiu $a1, $sp, 0x30 -/* 0784C0 7F043990 0FC1615C */ jal matrix_4x4_set_rotation_around_x -/* 0784C4 7F043994 46044301 */ sub.s $f12, $f8, $f4 -/* 0784C8 7F043998 27A40070 */ addiu $a0, $sp, 0x70 -/* 0784CC 7F04399C 27A50030 */ addiu $a1, $sp, 0x30 -/* 0784D0 7F0439A0 0FC16032 */ jal matrix_4x4_multiply -/* 0784D4 7F0439A4 8FA6012C */ lw $a2, 0x12c($sp) -/* 0784D8 7F0439A8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0784DC 7F0439AC 27BD0128 */ addiu $sp, $sp, 0x128 -/* 0784E0 7F0439B0 03E00008 */ jr $ra -/* 0784E4 7F0439B4 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -6135,8 +5825,104 @@ void propExplode(PropRecord *prop, s32 arg1) #ifdef NONMATCHING -void handle_thrown_explosive_detonation(void) { +// still needs work +void handle_thrown_explosive_detonation(PropRecord* prop) { + PropRecord* player_prop; + WeaponObjRecord* weapon; + f32 diff_x; + f32 diff_z; + f32 diff_y; + s32 var_a1; + f32 dist_sqr; + weapon = prop->weapon; + + if (sub_GAME_7F09B4D8(get_cur_playernum()) != 0) { return; } + + if (weapon->type == 7) { + if (((s32)weapon->flags * 8) < 0) { + propExplode(prop, 0xC); + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + } + return; + } + + if (weapon->type == 8) { + if (((weapon->weaponnum == 0x1A) || (weapon->weaponnum == 0x57)) && (weapon->timer >= 0)) { + weapon->timer = (s16) (weapon->timer - g_ClockTimer); + if (weapon->timer < 0) { + var_a1 = (weapon->flags2 & 0x80000000) ? 0x11 : 0xD; + propExplode(prop, var_a1); + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + } + } else if (weapon->weaponnum == 0x56) { + if (weapon->timer == 0) { + var_a1 = (weapon->flags2 & 0x80000000) ? 0x11 : 0xD; + + propExplode(prop, var_a1); + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + } + } else if (weapon->weaponnum == 0x22) { + if (weapon->timer == 0) { + propExplode(prop, 0x11); + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + SurroundWithExplosions(0x78); + countdownTimerSetVisible(2, 0); + } + } else if (((weapon->weaponnum == 0x1B) || (weapon->weaponnum == 0x21)) && (weapon->timer >= 0)) { + weapon->timer = (s16) (weapon->timer - g_ClockTimer); + if (weapon->timer < 0) { + var_a1 = (weapon->flags2 & 0x80000000) ? 0x11 : 0xD; + propExplode(prop, var_a1); + weapon->timer = -1; + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + } + } else if (weapon->weaponnum == 0x1D) { + if ((D_80030AF4 != 0) && (D_80030AF4 & (1 << ((u32) (weapon->runtime_bitflags & 0x60000) >> 0x11)))) { + weapon->timer = 0; + } + if (weapon->timer >= 2) { + weapon->timer = (s16) (weapon->timer - g_ClockTimer); + if (weapon->timer < 2) { + weapon->timer = 1; + } + } else if (weapon->timer == 0) { + if (weapon->flags2 & 0x80000000) { + propExplode(prop, 0x11); + } else if (bossGetStageNum(prop, 0x11, weapon, weapon) == LEVELID_FACILITY) { + propExplode(prop, 0x13); + } else { + propExplode(prop, 0xD); + } + weapon->timer = -1; + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + } + } else if (weapon->weaponnum == 0x1C) { + if (weapon->timer >= 2) { + weapon->timer = (s16) (weapon->timer - g_ClockTimer); + if (weapon->timer < 2) { + weapon->timer = 1; + add_obj_to_temp_proxmine_table(weapon); + } + } else if (weapon->timer == 1) { + player_prop = get_curplayer_positiondata(); + diff_x = player_prop->pos.f[0] - prop->pos.f[0]; + diff_y = player_prop->pos.f[1] - prop->pos.f[1]; + diff_z = player_prop->pos.f[2] - prop->pos.f[2]; + dist_sqr = (diff_x * diff_x) + (diff_y * diff_y) + (diff_z * diff_z); + if (dist_sqr < 62500.0f) { + weapon->timer = 0; + } + } + if (weapon->timer == 0) { + var_a1 = (weapon->flags2 & 0x80000000) ? 0x11 : 0xD; + propExplode(prop, var_a1); + weapon->timer = -1; + weapon->runtime_bitflags = (s32) (weapon->runtime_bitflags | 4); + remove_obj_from_temp_proxmine_table(weapon); + } + } + } } #else @@ -9857,14 +9643,14 @@ glabel object_interaction .L7F04671C: /* 07B24C 7F04671C 50600004 */ beql $v1, $zero, .L7F046730 /* 07B250 7F046720 960D009A */ lhu $t5, 0x9a($s0) -/* 07B254 7F046724 0FC15229 */ jal sub_GAME_7F0548A4 +/* 07B254 7F046724 0FC15229 */ jal doorSetOpenState /* 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 +/* 07B26C 7F04673C 0FC15288 */ jal doorIsClosed /* 07B270 7F046740 02002025 */ move $a0, $s0 /* 07B274 7F046744 10400007 */ beqz $v0, .L7F046764 /* 07B278 7F046748 00000000 */ nop @@ -10947,12 +10733,12 @@ glabel object_interaction /* 07C1FC 7F0476CC 8E2400AC */ lw $a0, 0xac($s1) /* 07C200 7F0476D0 8E2400A4 */ lw $a0, 0xa4($s1) .L7F0476D4: -/* 07C204 7F0476D4 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) +/* 07C204 7F0476D4 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) /* 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(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d00 +/* 07C218 7F0476E8 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d00 /* 07C21C 7F0476EC 00184080 */ sll $t0, $t8, 2 /* 07C220 7F0476F0 01E81021 */ addu $v0, $t7, $t0 /* 07C224 7F0476F4 8C4B0000 */ lw $t3, ($v0) @@ -11553,8 +11339,8 @@ glabel object_interaction /* 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(g_chraiCurrentSetup+0) -/* 07CB1C 7F047FEC 24A55D00 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d00 +/* 07CB18 7F047FE8 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) +/* 07CB1C 7F047FEC 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # 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) @@ -11563,9 +11349,9 @@ glabel object_interaction /* 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(g_chraiCurrentSetup+0) +/* 07CB40 7F048010 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) /* 07CB44 7F048014 01A26823 */ subu $t5, $t5, $v0 -/* 07CB48 7F048018 24A55D00 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d00 +/* 07CB48 7F048018 24A55D00 */ addiu $a1, %lo(g_CurrentSetup+0) # 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 @@ -11799,7 +11585,7 @@ glabel object_interaction /* 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 +/* 07CE9C 7F04836C 0FC1B1E7 */ jal modelGetNodeRwData /* 07CEA0 7F048370 8DA50004 */ lw $a1, 4($t5) /* 07CEA4 7F048374 8C580000 */ lw $t8, ($v0) /* 07CEA8 7F048378 17000002 */ bnez $t8, .L7F048384 @@ -11808,12 +11594,12 @@ glabel object_interaction .L7F048384: /* 07CEB4 7F048384 12400005 */ beqz $s2, .L7F04839C /* 07CEB8 7F048388 00000000 */ nop -/* 07CEBC 7F04838C 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 07CEBC 7F04838C 0FC14D71 */ jal doorDeactivatePortal /* 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 +/* 07CECC 7F04839C 0FC14D66 */ jal doorActivatePortal /* 07CED0 7F0483A0 02002025 */ move $a0, $s0 .L7F0483A4: /* 07CED4 7F0483A4 922F0003 */ lbu $t7, 3($s1) @@ -12755,7 +12541,7 @@ glabel object_interaction /* 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 +/* 07DCC4 7F049194 0FC1B1E7 */ jal modelGetNodeRwData /* 07DCC8 7F049198 02802025 */ move $a0, $s4 /* 07DCCC 7F04919C 8E2800C4 */ lw $t0, 0xc4($s1) /* 07DCD0 7F0491A0 A4480000 */ sh $t0, ($v0) @@ -12765,7 +12551,7 @@ glabel object_interaction .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 +/* 07DCE8 7F0491B8 0FC1B1E7 */ jal modelGetNodeRwData /* 07DCEC 7F0491BC 02802025 */ move $a0, $s4 /* 07DCF0 7F0491C0 AC400000 */ sw $zero, ($v0) .L7F0491C4: @@ -13386,7 +13172,7 @@ glabel object_interaction /* 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 +/* 07E60C 7F049ADC 0FC1B1E7 */ jal modelGetNodeRwData /* 07E610 7F049AE0 02802025 */ move $a0, $s4 /* 07E614 7F049AE4 8FA8013C */ lw $t0, 0x13c($sp) /* 07E618 7F049AE8 A4480000 */ sh $t0, ($v0) @@ -13396,7 +13182,7 @@ glabel object_interaction .L7F049AF8: /* 07E628 7F049AF8 10A00005 */ beqz $a1, .L7F049B10 /* 07E62C 7F049AFC 00000000 */ nop -/* 07E630 7F049B00 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E630 7F049B00 0FC1B1E7 */ jal modelGetNodeRwData /* 07E634 7F049B04 02802025 */ move $a0, $s4 /* 07E638 7F049B08 8FAF0138 */ lw $t7, 0x138($sp) /* 07E63C 7F049B0C A44F0000 */ sh $t7, ($v0) @@ -14963,14 +14749,14 @@ glabel object_interaction .Ljp7F046B20: /* 07B690 7F046B20 50600004 */ beql $v1, $zero, .Ljp7F046B34 /* 07B694 7F046B24 960B009A */ lhu $t3, 0x9a($s0) -/* 07B698 7F046B28 0FC15368 */ jal sub_GAME_7F0548A4 +/* 07B698 7F046B28 0FC15368 */ jal doorSetOpenState /* 07B69C 7F046B2C 24050001 */ li $a1, 1 /* 07B6A0 7F046B30 960B009A */ lhu $t3, 0x9a($s0) .Ljp7F046B34: /* 07B6A4 7F046B34 24010008 */ li $at, 8 /* 07B6A8 7F046B38 1561000B */ bne $t3, $at, .Ljp7F046B68 /* 07B6AC 7F046B3C 00000000 */ nop -/* 07B6B0 7F046B40 0FC153C7 */ jal sub_GAME_7F054A20 +/* 07B6B0 7F046B40 0FC153C7 */ jal doorIsClosed /* 07B6B4 7F046B44 02002025 */ move $a0, $s0 /* 07B6B8 7F046B48 10400007 */ beqz $v0, .Ljp7F046B68 /* 07B6BC 7F046B4C 00000000 */ nop @@ -16053,12 +15839,12 @@ glabel object_interaction /* 07C640 7F047AD0 8E2400AC */ lw $a0, 0xac($s1) /* 07C644 7F047AD4 8E2400A4 */ lw $a0, 0xa4($s1) .Ljp7F047AD8: -/* 07C648 7F047AD8 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) # $a1, 0x8007 +/* 07C648 7F047AD8 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8007 /* 07C64C 7F047ADC 5080002A */ beql $a0, $zero, .Ljp7F047B88 /* 07C650 7F047AE0 8E2F0008 */ lw $t7, 8($s1) /* 07C654 7F047AE4 8E2E00A8 */ lw $t6, 0xa8($s1) /* 07C658 7F047AE8 8C8C0000 */ lw $t4, ($a0) -/* 07C65C 7F047AEC 24A55D40 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d40 +/* 07C65C 7F047AEC 24A55D40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d40 /* 07C660 7F047AF0 000E5080 */ sll $t2, $t6, 2 /* 07C664 7F047AF4 018A1021 */ addu $v0, $t4, $t2 /* 07C668 7F047AF8 8C4F0000 */ lw $t7, ($v0) @@ -16659,8 +16445,8 @@ glabel object_interaction /* 07CF50 7F0483E0 0FC1B462 */ jal getsuboffset /* 07CF54 7F0483E4 8FA50074 */ lw $a1, 0x74($sp) /* 07CF58 7F0483E8 C62A0058 */ lwc1 $f10, 0x58($s1) -/* 07CF5C 7F0483EC 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) # $a1, 0x8007 -/* 07CF60 7F0483F0 24A55D40 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d40 +/* 07CF5C 7F0483EC 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8007 +/* 07CF60 7F0483F0 24A55D40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d40 /* 07CF64 7F0483F4 E66A0008 */ swc1 $f10, 8($s3) /* 07CF68 7F0483F8 C6280060 */ lwc1 $f8, 0x60($s1) /* 07CF6C 7F0483FC E6680010 */ swc1 $f8, 0x10($s3) @@ -16669,9 +16455,9 @@ glabel object_interaction /* 07CF78 7F048408 1020000B */ beqz $at, .Ljp7F048438 /* 07CF7C 7F04840C 00026100 */ sll $t4, $v0, 4 /* 07CF80 7F048410 00025880 */ sll $t3, $v0, 2 -/* 07CF84 7F048414 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) # $a1, 0x8007 +/* 07CF84 7F048414 3C058007 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8007 /* 07CF88 7F048418 01625823 */ subu $t3, $t3, $v0 -/* 07CF8C 7F04841C 24A55D40 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x5d40 +/* 07CF8C 7F04841C 24A55D40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x5d40 /* 07CF90 7F048420 000B5880 */ sll $t3, $t3, 2 /* 07CF94 7F048424 8CAE0018 */ lw $t6, 0x18($a1) /* 07CF98 7F048428 01625823 */ subu $t3, $t3, $v0 @@ -16905,7 +16691,7 @@ glabel object_interaction /* 07D2D4 7F048764 00000000 */ nop /* 07D2D8 7F048768 8C4B0008 */ lw $t3, 8($v0) /* 07D2DC 7F04876C 02802025 */ move $a0, $s4 -/* 07D2E0 7F048770 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07D2E0 7F048770 0FC1B363 */ jal modelGetNodeRwData /* 07D2E4 7F048774 8D650004 */ lw $a1, 4($t3) /* 07D2E8 7F048778 8C4E0000 */ lw $t6, ($v0) /* 07D2EC 7F04877C 15C00002 */ bnez $t6, .Ljp7F048788 @@ -16914,12 +16700,12 @@ glabel object_interaction .Ljp7F048788: /* 07D2F8 7F048788 12400005 */ beqz $s2, .Ljp7F0487A0 /* 07D2FC 7F04878C 00000000 */ nop -/* 07D300 7F048790 0FC14EB0 */ jal sub_GAME_7F0535C4 +/* 07D300 7F048790 0FC14EB0 */ jal doorDeactivatePortal /* 07D304 7F048794 02002025 */ move $a0, $s0 /* 07D308 7F048798 10000004 */ b .Ljp7F0487AC /* 07D30C 7F04879C 922C0003 */ lbu $t4, 3($s1) .Ljp7F0487A0: -/* 07D310 7F0487A0 0FC14EA5 */ jal sub_GAME_7F053598 +/* 07D310 7F0487A0 0FC14EA5 */ jal doorActivatePortal /* 07D314 7F0487A4 02002025 */ move $a0, $s0 .Ljp7F0487A8: /* 07D318 7F0487A8 922C0003 */ lbu $t4, 3($s1) @@ -17861,7 +17647,7 @@ glabel object_interaction /* 07E0FC 7F04958C 8C65001C */ lw $a1, 0x1c($v1) /* 07E100 7F049590 50A00008 */ beql $a1, $zero, .Ljp7F0495B4 /* 07E104 7F049594 8C650020 */ lw $a1, 0x20($v1) -/* 07E108 7F049598 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07E108 7F049598 0FC1B363 */ jal modelGetNodeRwData /* 07E10C 7F04959C 02802025 */ move $a0, $s4 /* 07E110 7F0495A0 8E2A00C4 */ lw $t2, 0xc4($s1) /* 07E114 7F0495A4 A44A0000 */ sh $t2, ($v0) @@ -17871,7 +17657,7 @@ glabel object_interaction .Ljp7F0495B4: /* 07E124 7F0495B4 50A00005 */ beql $a1, $zero, .Ljp7F0495CC /* 07E128 7F0495B8 8E8C0008 */ lw $t4, 8($s4) -/* 07E12C 7F0495BC 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07E12C 7F0495BC 0FC1B363 */ jal modelGetNodeRwData /* 07E130 7F0495C0 02802025 */ move $a0, $s4 /* 07E134 7F0495C4 AC400000 */ sw $zero, ($v0) .Ljp7F0495C8: @@ -18492,7 +18278,7 @@ glabel object_interaction /* 07EA44 7F049ED4 8C650014 */ lw $a1, 0x14($v1) /* 07EA48 7F049ED8 50A00008 */ beql $a1, $zero, .Ljp7F049EFC /* 07EA4C 7F049EDC 8C65001C */ lw $a1, 0x1c($v1) -/* 07EA50 7F049EE0 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07EA50 7F049EE0 0FC1B363 */ jal modelGetNodeRwData /* 07EA54 7F049EE4 02802025 */ move $a0, $s4 /* 07EA58 7F049EE8 8FAA0140 */ lw $t2, 0x140($sp) /* 07EA5C 7F049EEC A44A0000 */ sh $t2, ($v0) @@ -18502,7 +18288,7 @@ glabel object_interaction .Ljp7F049EFC: /* 07EA6C 7F049EFC 10A00005 */ beqz $a1, .Ljp7F049F14 /* 07EA70 7F049F00 00000000 */ nop -/* 07EA74 7F049F04 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 07EA74 7F049F04 0FC1B363 */ jal modelGetNodeRwData /* 07EA78 7F049F08 02802025 */ move $a0, $s4 /* 07EA7C 7F049F0C 8FAC013C */ lw $t4, 0x13c($sp) /* 07EA80 7F049F10 A44C0000 */ sh $t4, ($v0) @@ -20076,14 +19862,14 @@ glabel object_interaction .L7F0468F8: /* 0792E8 7F0468F8 50600004 */ beql $v1, $zero, .L7F04690C /* 0792EC 7F0468FC 9609009A */ lhu $t1, 0x9a($s0) -/* 0792F0 7F046900 0FC152E1 */ jal sub_GAME_7F0548A4 +/* 0792F0 7F046900 0FC152E1 */ jal doorSetOpenState /* 0792F4 7F046904 24050001 */ li $a1, 1 /* 0792F8 7F046908 9609009A */ lhu $t1, 0x9a($s0) .L7F04690C: /* 0792FC 7F04690C 24010008 */ li $at, 8 /* 079300 7F046910 1521000B */ bne $t1, $at, .L7F046940 /* 079304 7F046914 00000000 */ nop -/* 079308 7F046918 0FC15340 */ jal sub_GAME_7F054A20 +/* 079308 7F046918 0FC15340 */ jal doorIsClosed /* 07930C 7F04691C 02002025 */ move $a0, $s0 /* 079310 7F046920 10400007 */ beqz $v0, .L7F046940 /* 079314 7F046924 00000000 */ nop @@ -21166,12 +20952,12 @@ glabel object_interaction /* 07A298 7F0478A8 8E2400AC */ lw $a0, 0xac($s1) /* 07A29C 7F0478AC 8E2400A4 */ lw $a0, 0xa4($s1) .L7F0478B0: -/* 07A2A0 7F0478B0 3C058006 */ lui $a1, %hi(g_chraiCurrentSetup+0) # $a1, 0x8006 +/* 07A2A0 7F0478B0 3C058006 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8006 /* 07A2A4 7F0478B4 5080002A */ beql $a0, $zero, .L7F047960 /* 07A2A8 7F0478B8 8E2C0008 */ lw $t4, 8($s1) /* 07A2AC 7F0478BC 8E2800A8 */ lw $t0, 0xa8($s1) /* 07A2B0 7F0478C0 8C8A0000 */ lw $t2, ($a0) -/* 07A2B4 7F0478C4 24A54C40 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x4c40 +/* 07A2B4 7F0478C4 24A54C40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x4c40 /* 07A2B8 7F0478C8 00085880 */ sll $t3, $t0, 2 /* 07A2BC 7F0478CC 014B1021 */ addu $v0, $t2, $t3 /* 07A2C0 7F0478D0 8C4C0000 */ lw $t4, ($v0) @@ -21706,7 +21492,7 @@ glabel object_interaction /* 07AAB0 7F0480C0 3C053F99 */ lui $a1, (0x3F99999A >> 16) # lui $a1, 0x3f99 /* 07AAB4 7F0480C4 4406B000 */ mfc1 $a2, $f22 /* 07AAB8 7F0480C8 34A5999A */ ori $a1, (0x3F99999A & 0xFFFF) # ori $a1, $a1, 0x999a -/* 07AABC 7F0480CC 0FC1C02E */ jal sub_GAME_7F06FF18 +/* 07AABC 7F0480CC 0FC1C02E */ jal modelSetAnimRateForDuration /* 07AAC0 7F0480D0 8E240014 */ lw $a0, 0x14($s1) /* 07AAC4 7F0480D4 8E240014 */ lw $a0, 0x14($s1) /* 07AAC8 7F0480D8 3C188002 */ lui $t8, %hi(animation_table_ptrs2+4) # $t8, 0x8002 @@ -21773,8 +21559,8 @@ glabel object_interaction /* 07ABAC 7F0481BC 0FC1B476 */ jal getsuboffset /* 07ABB0 7F0481C0 02002825 */ move $a1, $s0 /* 07ABB4 7F0481C4 C62A0058 */ lwc1 $f10, 0x58($s1) -/* 07ABB8 7F0481C8 3C058006 */ lui $a1, %hi(g_chraiCurrentSetup+0) # $a1, 0x8006 -/* 07ABBC 7F0481CC 24A54C40 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x4c40 +/* 07ABB8 7F0481C8 3C058006 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8006 +/* 07ABBC 7F0481CC 24A54C40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x4c40 /* 07ABC0 7F0481D0 E66A0008 */ swc1 $f10, 8($s3) /* 07ABC4 7F0481D4 C6280060 */ lwc1 $f8, 0x60($s1) /* 07ABC8 7F0481D8 E6680010 */ swc1 $f8, 0x10($s3) @@ -21783,9 +21569,9 @@ glabel object_interaction /* 07ABD4 7F0481E4 1020000B */ beqz $at, .L7F048214 /* 07ABD8 7F0481E8 00024900 */ sll $t1, $v0, 4 /* 07ABDC 7F0481EC 00027880 */ sll $t7, $v0, 2 -/* 07ABE0 7F0481F0 3C058006 */ lui $a1, %hi(g_chraiCurrentSetup+0) # $a1, 0x8006 +/* 07ABE0 7F0481F0 3C058006 */ lui $a1, %hi(g_CurrentSetup+0) # $a1, 0x8006 /* 07ABE4 7F0481F4 01E27823 */ subu $t7, $t7, $v0 -/* 07ABE8 7F0481F8 24A54C40 */ addiu $a1, %lo(g_chraiCurrentSetup+0) # addiu $a1, $a1, 0x4c40 +/* 07ABE8 7F0481F8 24A54C40 */ addiu $a1, %lo(g_CurrentSetup+0) # addiu $a1, $a1, 0x4c40 /* 07ABEC 7F0481FC 000F7880 */ sll $t7, $t7, 2 /* 07ABF0 7F048200 8CB90018 */ lw $t9, 0x18($a1) /* 07ABF4 7F048204 01E27823 */ subu $t7, $t7, $v0 @@ -22019,7 +21805,7 @@ glabel object_interaction /* 07AF30 7F048540 00000000 */ nop /* 07AF34 7F048544 8C4F0008 */ lw $t7, 8($v0) /* 07AF38 7F048548 02802025 */ move $a0, $s4 -/* 07AF3C 7F04854C 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 07AF3C 7F04854C 0FC1B3A3 */ jal modelGetNodeRwData /* 07AF40 7F048550 8DE50004 */ lw $a1, 4($t7) /* 07AF44 7F048554 8C590000 */ lw $t9, ($v0) /* 07AF48 7F048558 17200002 */ bnez $t9, .L7F048564 @@ -22028,12 +21814,12 @@ glabel object_interaction .L7F048564: /* 07AF54 7F048564 12400005 */ beqz $s2, .L7F04857C /* 07AF58 7F048568 00000000 */ nop -/* 07AF5C 7F04856C 0FC14E29 */ jal sub_GAME_7F0535C4 +/* 07AF5C 7F04856C 0FC14E29 */ jal doorDeactivatePortal /* 07AF60 7F048570 02002025 */ move $a0, $s0 /* 07AF64 7F048574 10000004 */ b .L7F048588 /* 07AF68 7F048578 92290003 */ lbu $t1, 3($s1) .L7F04857C: -/* 07AF6C 7F04857C 0FC14E1E */ jal sub_GAME_7F053598 +/* 07AF6C 7F04857C 0FC14E1E */ jal doorActivatePortal /* 07AF70 7F048580 02002025 */ move $a0, $s0 .L7F048584: /* 07AF74 7F048584 92290003 */ lbu $t1, 3($s1) @@ -22974,7 +22760,7 @@ glabel object_interaction /* 07BD54 7F049364 8C65001C */ lw $a1, 0x1c($v1) /* 07BD58 7F049368 50A00008 */ beql $a1, $zero, .L7F04938C /* 07BD5C 7F04936C 8C650020 */ lw $a1, 0x20($v1) -/* 07BD60 7F049370 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 07BD60 7F049370 0FC1B3A3 */ jal modelGetNodeRwData /* 07BD64 7F049374 02802025 */ move $a0, $s4 /* 07BD68 7F049378 8E3900C4 */ lw $t9, 0xc4($s1) /* 07BD6C 7F04937C A4590000 */ sh $t9, ($v0) @@ -22984,7 +22770,7 @@ glabel object_interaction .L7F04938C: /* 07BD7C 7F04938C 50A00005 */ beql $a1, $zero, .L7F0493A4 /* 07BD80 7F049390 8E8F0008 */ lw $t7, 8($s4) -/* 07BD84 7F049394 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 07BD84 7F049394 0FC1B3A3 */ jal modelGetNodeRwData /* 07BD88 7F049398 02802025 */ move $a0, $s4 /* 07BD8C 7F04939C AC400000 */ sw $zero, ($v0) .L7F0493A0: @@ -23605,7 +23391,7 @@ glabel object_interaction /* 07C69C 7F049CAC 8C650014 */ lw $a1, 0x14($v1) /* 07C6A0 7F049CB0 50A00008 */ beql $a1, $zero, .L7F049CD4 /* 07C6A4 7F049CB4 8C65001C */ lw $a1, 0x1c($v1) -/* 07C6A8 7F049CB8 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 07C6A8 7F049CB8 0FC1B3A3 */ jal modelGetNodeRwData /* 07C6AC 7F049CBC 02802025 */ move $a0, $s4 /* 07C6B0 7F049CC0 8FB90140 */ lw $t9, 0x140($sp) /* 07C6B4 7F049CC4 A4590000 */ sh $t9, ($v0) @@ -23615,7 +23401,7 @@ glabel object_interaction .L7F049CD4: /* 07C6C4 7F049CD4 10A00005 */ beqz $a1, .L7F049CEC /* 07C6C8 7F049CD8 00000000 */ nop -/* 07C6CC 7F049CDC 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 07C6CC 7F049CDC 0FC1B3A3 */ jal modelGetNodeRwData /* 07C6D0 7F049CE0 02802025 */ move $a0, $s4 /* 07C6D4 7F049CE4 8FAF013C */ lw $t7, 0x13c($sp) /* 07C6D8 7F049CE8 A44F0000 */ sh $t7, ($v0) @@ -24045,9 +23831,9 @@ void *process_monitor_animation_microcode(Model *arg0, ModelNode *arg1, MonitorR arg3 = temp_t8 + 8; spA8 = temp_t8; spA4 = arg1->Data; - spA0 = extract_id_from_object_structure_microcode(arg0, arg1); - phi_f2 = 65536.0f; - phi_f2 = 65536.0f; + spA0 = modelGetNodeRwData(arg0, arg1); + phi_f2 = M_U16_MAX_VALUE_F; + phi_f2 = M_U16_MAX_VALUE_F; phi_s1 = 0; do { @@ -24213,18 +23999,18 @@ void *process_monitor_animation_microcode(Model *arg0, ModelNode *arg1, MonitorR break; case 14: arg2->offset = temp_v0 + 2; - arg2->rot = (temp_v1->unk4 * 6.2831855f) / phi_f2; + arg2->rot = (temp_v1->unk4 * M_TAU_F) / phi_f2; break; case 15: - arg2->rot += (g_GlobalTimerDelta * temp_v1->unk4 * 6.2831855f) / phi_f2; + arg2->rot += (g_GlobalTimerDelta * temp_v1->unk4 * M_TAU_F) / phi_f2; temp_f12 = arg2->rot; - if (temp_f12 >= 6.2831855f) + if (temp_f12 >= M_TAU_F) { - arg2->rot = temp_f12 - 6.2831855f; + arg2->rot = temp_f12 - M_TAU_F; } if (arg2->rot < 0.0f) { - arg2->rot += 6.2831855f; + arg2->rot += M_TAU_F; } arg2->offset += 2; break; @@ -24561,7 +24347,7 @@ glabel process_monitor_animation_microcode /* 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 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal modelGetNodeRwData /* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) /* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) /* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) @@ -25482,7 +25268,7 @@ glabel process_monitor_animation_microcode /* 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 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal modelGetNodeRwData /* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) /* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) /* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) @@ -26403,7 +26189,7 @@ glabel process_monitor_animation_microcode /* 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 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal modelGetNodeRwData /* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) /* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) /* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) @@ -32609,7 +32395,7 @@ glabel sub_GAME_7F04D9B0 loc_CODE_7F04DA48: /* 082578 7F04DA48 8E110004 */ lw $s1, 4($s0) /* 08257C 7F04DA4C 02C02025 */ move $a0, $s6 -/* 082580 7F04DA50 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 082580 7F04DA50 0FC1B1E7 */ jal modelGetNodeRwData /* 082584 7F04DA54 02002825 */ move $a1, $s0 /* 082588 7F04DA58 8C430004 */ lw $v1, 4($v0) /* 08258C 7F04DA5C 1060002B */ beqz $v1, .L7F04DB0C @@ -32895,7 +32681,7 @@ glabel sub_GAME_7F04DD68 /* 082920 7F04DDF0 8FA40078 */ lw $a0, 0x78($sp) /* 082924 7F04DDF4 8C880008 */ lw $t0, 8($a0) /* 082928 7F04DDF8 8D090008 */ lw $t1, 8($t0) -/* 08292C 7F04DDFC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 08292C 7F04DDFC 0FC1B1E7 */ jal modelGetNodeRwData /* 082930 7F04DE00 8D250004 */ lw $a1, 4($t1) /* 082934 7F04DE04 AC400000 */ sw $zero, ($v0) /* 082938 7F04DE08 8FBF002C */ lw $ra, 0x2c($sp) @@ -32966,7 +32752,7 @@ glabel sub_GAME_7F04DE18 /* 082A00 7F04DED0 8E0A0008 */ lw $t2, 8($s0) /* 082A04 7F04DED4 02002025 */ move $a0, $s0 /* 082A08 7F04DED8 8D4B0008 */ lw $t3, 8($t2) -/* 082A0C 7F04DEDC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 082A0C 7F04DEDC 0FC1B1E7 */ jal modelGetNodeRwData /* 082A10 7F04DEE0 8D65000C */ lw $a1, 0xc($t3) /* 082A14 7F04DEE4 AC400000 */ sw $zero, ($v0) /* 082A18 7F04DEE8 8FBF0034 */ lw $ra, 0x34($sp) @@ -34300,7 +34086,7 @@ glabel sub_GAME_7F04EA68 /* 0837C4 7F04EC94 8602003A */ lh $v0, 0x3a($s0) .L7F04EC98: /* 0837C8 7F04EC98 00004825 */ move $t1, $zero -/* 0837CC 7F04EC9C 3C0F8005 */ lui $t7, %hi(image_entries) +/* 0837CC 7F04EC9C 3C0F8005 */ lui $t7, %hi(g_Textures) /* 0837D0 7F04ECA0 04410004 */ bgez $v0, .L7F04ECB4 /* 0837D4 7F04ECA4 0002C8C0 */ sll $t9, $v0, 3 /* 0837D8 7F04ECA8 3C088005 */ lui $t0, %hi(D_8004E86C) @@ -34308,7 +34094,7 @@ glabel sub_GAME_7F04EA68 /* 0837E0 7F04ECB0 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) .L7F04ECB4: /* 0837E4 7F04ECB4 01F97821 */ addu $t7, $t7, $t9 -/* 0837E8 7F04ECB8 91EF9300 */ lbu $t7, %lo(image_entries)($t7) +/* 0837E8 7F04ECB8 91EF9300 */ lbu $t7, %lo(g_Textures)($t7) /* 0837EC 7F04ECBC 3C088005 */ lui $t0, %hi(D_8004E86C) /* 0837F0 7F04ECC0 31EB000F */ andi $t3, $t7, 0xf /* 0837F4 7F04ECC4 000B6080 */ sll $t4, $t3, 2 @@ -34699,90 +34485,37 @@ INV_ITEM_TYPE propobjInteract(PropRecord *prop) //#MATCH } +void sub_GAME_7F04F218(PropRecord* prop, s32 arg1) { + ChrRecord* chr; + chr = prop->chr; - - -#ifdef NONMATCHING -void sub_GAME_7F04F218(void *arg0, s32 arg1) -{ - void *temp_v0; - - temp_v0 = arg0->unk4; if (arg1 != 0) { - temp_v0->unk2 = (u8) (temp_v0->unk2 & 0xFFDF); + chr->accuracyrating = (u8) chr->accuracyrating & 0xFFDF; + } + else + { + chr->accuracyrating = (u8) chr->accuracyrating | 0x20; + } +} + + +void sub_GAME_7F04F244(PropRecord* prop, rect4f** arg1, s32* arg2, f32* arg3, f32* arg4) +{ + ObjectRecord* obj; + obj = prop->obj; + + if ((obj->ptr_allocated_collisiondata_block != NULL) && (obj->flags & PROPFLAG_00000100) && !(obj->state & PROPSTATE_20)) + { + *arg2 = obj->ptr_allocated_collisiondata_block->unk00; + *arg1 = &obj->ptr_allocated_collisiondata_block->unk04; + *arg4 = obj->ptr_allocated_collisiondata_block->unk48; + *arg3 = obj->ptr_allocated_collisiondata_block->unk44; return; } - temp_v0->unk2 = (u8) (temp_v0->unk2 | 0x20); + + *arg2 = 0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F04F218 -/* 083D48 7F04F218 10A00005 */ beqz $a1, .L7F04F230 -/* 083D4C 7F04F21C 8C820004 */ lw $v0, 4($a0) -/* 083D50 7F04F220 904E0002 */ lbu $t6, 2($v0) -/* 083D54 7F04F224 31CFFFDF */ andi $t7, $t6, 0xffdf -/* 083D58 7F04F228 03E00008 */ jr $ra -/* 083D5C 7F04F22C A04F0002 */ sb $t7, 2($v0) - -.L7F04F230: -/* 083D60 7F04F230 90580002 */ lbu $t8, 2($v0) -/* 083D64 7F04F234 37190020 */ ori $t9, $t8, 0x20 -/* 083D68 7F04F238 A0590002 */ sb $t9, 2($v0) -/* 083D6C 7F04F23C 03E00008 */ jr $ra -/* 083D70 7F04F240 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F04F244(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F04F244 -/* 083D74 7F04F244 8C820004 */ lw $v0, 4($a0) -/* 083D78 7F04F248 8C430068 */ lw $v1, 0x68($v0) -/* 083D7C 7F04F24C 50600017 */ beql $v1, $zero, .L7F04F2AC -/* 083D80 7F04F250 ACC00000 */ sw $zero, ($a2) -/* 083D84 7F04F254 8C4E0008 */ lw $t6, 8($v0) -/* 083D88 7F04F258 31CF0100 */ andi $t7, $t6, 0x100 -/* 083D8C 7F04F25C 51E00013 */ beql $t7, $zero, .L7F04F2AC -/* 083D90 7F04F260 ACC00000 */ sw $zero, ($a2) -/* 083D94 7F04F264 90580002 */ lbu $t8, 2($v0) -/* 083D98 7F04F268 33190020 */ andi $t9, $t8, 0x20 -/* 083D9C 7F04F26C 5720000F */ bnezl $t9, .L7F04F2AC -/* 083DA0 7F04F270 ACC00000 */ sw $zero, ($a2) -/* 083DA4 7F04F274 8C680000 */ lw $t0, ($v1) -/* 083DA8 7F04F278 ACC80000 */ sw $t0, ($a2) -/* 083DAC 7F04F27C 8C490068 */ lw $t1, 0x68($v0) -/* 083DB0 7F04F280 252A0004 */ addiu $t2, $t1, 4 -/* 083DB4 7F04F284 ACAA0000 */ sw $t2, ($a1) -/* 083DB8 7F04F288 8C4B0068 */ lw $t3, 0x68($v0) -/* 083DBC 7F04F28C 8FAC0010 */ lw $t4, 0x10($sp) -/* 083DC0 7F04F290 C5640048 */ lwc1 $f4, 0x48($t3) -/* 083DC4 7F04F294 E5840000 */ swc1 $f4, ($t4) -/* 083DC8 7F04F298 8C4D0068 */ lw $t5, 0x68($v0) -/* 083DCC 7F04F29C C5A60044 */ lwc1 $f6, 0x44($t5) -/* 083DD0 7F04F2A0 03E00008 */ jr $ra -/* 083DD4 7F04F2A4 E4E60000 */ swc1 $f6, ($a3) - -/* 083DD8 7F04F2A8 ACC00000 */ sw $zero, ($a2) -.L7F04F2AC: -/* 083DDC 7F04F2AC 03E00008 */ jr $ra -/* 083DE0 7F04F2B0 00000000 */ nop -) -#endif - - - - void append_text_picked_up(u8 *buffer,u8 * param2,u8 * param3) @@ -38095,10 +37828,6 @@ 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 @@ -38562,10 +38291,6 @@ 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 /* 085650 7F050AE0 27BDFF70 */ addiu $sp, $sp, -0x90 @@ -39102,10 +38827,6 @@ 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 /* 085650 7F050AE0 27BDFF70 */ addiu $sp, $sp, -0x90 @@ -39635,66 +39356,35 @@ glabel object_collectability_routines #endif -#ifdef NONMATCHING -void sub_GAME_7F050D30(void) { +bool sub_GAME_7F050D30(PropRecord *prop, coord3d *arg1, f32 *arg2, f32 *arg3) +{ + if (prop->flags & PROPFLAG_ONSCREEN) + { + ObjectRecord *obj = prop->obj; + Mtxf *matrix = getsubmatrix(obj->model); + + arg1->z = matrix->m[3][2]; + + if (arg1->z < 0) + { + arg1->x = matrix->m[3][0]; + arg1->y = matrix->m[3][1]; + + arg3[0] = 0; + arg3[1] = 0; + + arg2[0] = 0; + arg2[1] = 0; + + sub_GAME_7F03F90C(obj->model, &arg2[1], &arg2[0], &arg3[1], &arg3[0]); + + return TRUE; + } + } + + return FALSE; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F050D30 -/* 085860 7F050D30 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 085864 7F050D34 AFBF001C */ sw $ra, 0x1c($sp) -/* 085868 7F050D38 AFA40028 */ sw $a0, 0x28($sp) -/* 08586C 7F050D3C AFA5002C */ sw $a1, 0x2c($sp) -/* 085870 7F050D40 AFA70034 */ sw $a3, 0x34($sp) -/* 085874 7F050D44 908F0001 */ lbu $t7, 1($a0) -/* 085878 7F050D48 31F80002 */ andi $t8, $t7, 2 -/* 08587C 7F050D4C 53000022 */ beql $t8, $zero, .L7F050DD8 -/* 085880 7F050D50 00001025 */ move $v0, $zero -/* 085884 7F050D54 8C830004 */ lw $v1, 4($a0) -/* 085888 7F050D58 8C640014 */ lw $a0, 0x14($v1) -/* 08588C 7F050D5C AFA60030 */ sw $a2, 0x30($sp) -/* 085890 7F050D60 0FC1B1A8 */ jal getsubmatrix -/* 085894 7F050D64 AFA30024 */ sw $v1, 0x24($sp) -/* 085898 7F050D68 8FA9002C */ lw $t1, 0x2c($sp) -/* 08589C 7F050D6C C4440038 */ lwc1 $f4, 0x38($v0) -/* 0858A0 7F050D70 8FA30024 */ lw $v1, 0x24($sp) -/* 0858A4 7F050D74 8FA60030 */ lw $a2, 0x30($sp) -/* 0858A8 7F050D78 8FAA0034 */ lw $t2, 0x34($sp) -/* 0858AC 7F050D7C E5240008 */ swc1 $f4, 8($t1) -/* 0858B0 7F050D80 44800000 */ mtc1 $zero, $f0 -/* 0858B4 7F050D84 C5260008 */ lwc1 $f6, 8($t1) -/* 0858B8 7F050D88 4600303C */ c.lt.s $f6, $f0 -/* 0858BC 7F050D8C 00000000 */ nop -/* 0858C0 7F050D90 45020011 */ bc1fl .L7F050DD8 -/* 0858C4 7F050D94 00001025 */ move $v0, $zero -/* 0858C8 7F050D98 C4480030 */ lwc1 $f8, 0x30($v0) -/* 0858CC 7F050D9C 24C50004 */ addiu $a1, $a2, 4 -/* 0858D0 7F050DA0 25470004 */ addiu $a3, $t2, 4 -/* 0858D4 7F050DA4 E5280000 */ swc1 $f8, ($t1) -/* 0858D8 7F050DA8 C44A0034 */ lwc1 $f10, 0x34($v0) -/* 0858DC 7F050DAC E52A0004 */ swc1 $f10, 4($t1) -/* 0858E0 7F050DB0 E5400000 */ swc1 $f0, ($t2) -/* 0858E4 7F050DB4 E5400004 */ swc1 $f0, 4($t2) -/* 0858E8 7F050DB8 E4C00000 */ swc1 $f0, ($a2) -/* 0858EC 7F050DBC E4C00004 */ swc1 $f0, 4($a2) -/* 0858F0 7F050DC0 8C640014 */ lw $a0, 0x14($v1) -/* 0858F4 7F050DC4 0FC0FE43 */ jal sub_GAME_7F03F90C -/* 0858F8 7F050DC8 AFAA0010 */ sw $t2, 0x10($sp) -/* 0858FC 7F050DCC 10000002 */ b .L7F050DD8 -/* 085900 7F050DD0 24020001 */ li $v0, 1 -/* 085904 7F050DD4 00001025 */ move $v0, $zero -.L7F050DD8: -/* 085908 7F050DD8 8FBF001C */ lw $ra, 0x1c($sp) -/* 08590C 7F050DDC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 085910 7F050DE0 03E00008 */ jr $ra -/* 085914 7F050DE4 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -39740,7 +39430,7 @@ glabel sub_GAME_7F050DE8 /* 085994 7F050E64 8E020014 */ lw $v0, 0x14($s0) .L7F050E68: /* 085998 7F050E68 8E120004 */ lw $s2, 4($s0) -/* 08599C 7F050E6C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 08599C 7F050E6C 0FC1B1E7 */ jal modelGetNodeRwData /* 0859A0 7F050E70 02002825 */ move $a1, $s0 /* 0859A4 7F050E74 8E4F0008 */ lw $t7, 8($s2) /* 0859A8 7F050E78 8C580000 */ lw $t8, ($v0) @@ -39811,147 +39501,41 @@ glabel sub_GAME_7F050DE8 #endif +PropRecord *sub_GAME_7F050F50(WeaponObjRecord *weapon, ChrRecord *chr, ModelFileHeader *filedata, PropRecord *prop, Model *model) +{ + prop = init_standard_object((ObjectRecord*)weapon, filedata, prop, model); + if (prop && weapon->model) + { + f32 scale = weapon->extrascale * (1.0f / 256.0f); + modelSetScale(weapon->model, weapon->model->scale * scale); + weapon->model->attachedto = chr->model; + weapon->model->attachedto_objinst = chr->model->obj->Switches[6]; -#ifdef NONMATCHING -void sub_GAME_7F050F50(void) { + chrpropReparent(prop, chr->prop); + chr->handle_positiondata_hat = prop; + } + return prop; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F050F50 -/* 085A80 7F050F50 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 085A84 7F050F54 AFA50024 */ sw $a1, 0x24($sp) -/* 085A88 7F050F58 AFA60028 */ sw $a2, 0x28($sp) -/* 085A8C 7F050F5C 00C02825 */ move $a1, $a2 -/* 085A90 7F050F60 AFBF001C */ sw $ra, 0x1c($sp) -/* 085A94 7F050F64 AFB00014 */ sw $s0, 0x14($sp) -/* 085A98 7F050F68 00E03025 */ move $a2, $a3 -/* 085A9C 7F050F6C 00808025 */ move $s0, $a0 -/* 085AA0 7F050F70 AFB10018 */ sw $s1, 0x18($sp) -/* 085AA4 7F050F74 0FC10153 */ jal init_standard_object -/* 085AA8 7F050F78 8FA70030 */ lw $a3, 0x30($sp) -/* 085AAC 7F050F7C 10400024 */ beqz $v0, .L7F051010 -/* 085AB0 7F050F80 00408825 */ move $s1, $v0 -/* 085AB4 7F050F84 8E040014 */ lw $a0, 0x14($s0) -/* 085AB8 7F050F88 50800022 */ beql $a0, $zero, .L7F051014 -/* 085ABC 7F050F8C 8FBF001C */ lw $ra, 0x1c($sp) -/* 085AC0 7F050F90 960E0000 */ lhu $t6, ($s0) -/* 085AC4 7F050F94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 085AC8 7F050F98 448E2000 */ mtc1 $t6, $f4 -/* 085ACC 7F050F9C 05C10004 */ bgez $t6, .L7F050FB0 -/* 085AD0 7F050FA0 468021A0 */ cvt.s.w $f6, $f4 -/* 085AD4 7F050FA4 44814000 */ mtc1 $at, $f8 -/* 085AD8 7F050FA8 00000000 */ nop -/* 085ADC 7F050FAC 46083180 */ add.s $f6, $f6, $f8 -.L7F050FB0: -/* 085AE0 7F050FB0 3C013B80 */ li $at, 0x3B800000 # 0.003906 -/* 085AE4 7F050FB4 44815000 */ mtc1 $at, $f10 -/* 085AE8 7F050FB8 C4900014 */ lwc1 $f16, 0x14($a0) -/* 085AEC 7F050FBC 460A3002 */ mul.s $f0, $f6, $f10 -/* 085AF0 7F050FC0 00000000 */ nop -/* 085AF4 7F050FC4 46008482 */ mul.s $f18, $f16, $f0 -/* 085AF8 7F050FC8 44059000 */ mfc1 $a1, $f18 -/* 085AFC 7F050FCC 0FC1B39E */ jal modelSetScale -/* 085B00 7F050FD0 00000000 */ nop -/* 085B04 7F050FD4 8FA20024 */ lw $v0, 0x24($sp) -/* 085B08 7F050FD8 8E180014 */ lw $t8, 0x14($s0) -/* 085B0C 7F050FDC 02202025 */ move $a0, $s1 -/* 085B10 7F050FE0 8C4F001C */ lw $t7, 0x1c($v0) -/* 085B14 7F050FE4 AF0F0018 */ sw $t7, 0x18($t8) -/* 085B18 7F050FE8 8C59001C */ lw $t9, 0x1c($v0) -/* 085B1C 7F050FEC 8E0B0014 */ lw $t3, 0x14($s0) -/* 085B20 7F050FF0 8F280008 */ lw $t0, 8($t9) -/* 085B24 7F050FF4 8D090008 */ lw $t1, 8($t0) -/* 085B28 7F050FF8 8D2A0018 */ lw $t2, 0x18($t1) -/* 085B2C 7F050FFC AD6A001C */ sw $t2, 0x1c($t3) -/* 085B30 7F051000 0FC0E969 */ jal chrpropReparent -/* 085B34 7F051004 8C450018 */ lw $a1, 0x18($v0) -/* 085B38 7F051008 8FAC0024 */ lw $t4, 0x24($sp) -/* 085B3C 7F05100C AD9101D8 */ sw $s1, 0x1d8($t4) -.L7F051010: -/* 085B40 7F051010 8FBF001C */ lw $ra, 0x1c($sp) -.L7F051014: -/* 085B44 7F051014 02201025 */ move $v0, $s1 -/* 085B48 7F051018 8FB10018 */ lw $s1, 0x18($sp) -/* 085B4C 7F05101C 8FB00014 */ lw $s0, 0x14($sp) -/* 085B50 7F051020 03E00008 */ jr $ra -/* 085B54 7F051024 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F051028(void) { - +void sub_GAME_7F051028(ObjectRecord *arg0, PropRecord *arg1) +{ + s32 unused; + s32 obj_idx; + obj_idx = (u32) arg0->obj; + modelLoad(obj_idx); + sub_GAME_7F050F50(arg0, arg1, PitemZ_entries[obj_idx].header, NULL, 0); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F051028 -/* 085B58 7F051028 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 085B5C 7F05102C AFBF001C */ sw $ra, 0x1c($sp) -/* 085B60 7F051030 AFA40028 */ sw $a0, 0x28($sp) -/* 085B64 7F051034 AFA5002C */ sw $a1, 0x2c($sp) -/* 085B68 7F051038 84840004 */ lh $a0, 4($a0) -/* 085B6C 7F05103C 0FC15B0E */ jal modelLoad -/* 085B70 7F051040 AFA40020 */ sw $a0, 0x20($sp) -/* 085B74 7F051044 8FAF0020 */ lw $t7, 0x20($sp) -/* 085B78 7F051048 3C068004 */ lui $a2, %hi(PitemZ_entries) -/* 085B7C 7F05104C 8FA40028 */ lw $a0, 0x28($sp) -/* 085B80 7F051050 000FC080 */ sll $t8, $t7, 2 -/* 085B84 7F051054 030FC023 */ subu $t8, $t8, $t7 -/* 085B88 7F051058 0018C080 */ sll $t8, $t8, 2 -/* 085B8C 7F05105C 00D83021 */ addu $a2, $a2, $t8 -/* 085B90 7F051060 8CC6A228 */ lw $a2, %lo(PitemZ_entries)($a2) -/* 085B94 7F051064 8FA5002C */ lw $a1, 0x2c($sp) -/* 085B98 7F051068 00003825 */ move $a3, $zero -/* 085B9C 7F05106C 0FC143D4 */ jal sub_GAME_7F050F50 -/* 085BA0 7F051070 AFA00010 */ sw $zero, 0x10($sp) -/* 085BA4 7F051074 8FBF001C */ lw $ra, 0x1c($sp) -/* 085BA8 7F051078 27BD0028 */ addiu $sp, $sp, 0x28 -/* 085BAC 7F05107C 03E00008 */ jr $ra -/* 085BB0 7F051080 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void hatAssignToChr(void) { - +void hatAssignToChr(ObjectRecord* hat, ChrRecord* chr) +{ + hat->damage = (*(s32*)&hat->damage / M_U16_MAX_VALUE_F); + sub_GAME_7F051028(hat, chr); } -#else -GLOBAL_ASM( -.text -glabel hatAssignToChr -/* 085BB4 7F051084 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 085BB8 7F051088 AFBF0014 */ sw $ra, 0x14($sp) -/* 085BBC 7F05108C 8C8E0074 */ lw $t6, 0x74($a0) -/* 085BC0 7F051090 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 085BC4 7F051094 44814000 */ mtc1 $at, $f8 -/* 085BC8 7F051098 448E2000 */ mtc1 $t6, $f4 -/* 085BCC 7F05109C 00000000 */ nop -/* 085BD0 7F0510A0 468021A0 */ cvt.s.w $f6, $f4 -/* 085BD4 7F0510A4 46083283 */ div.s $f10, $f6, $f8 -/* 085BD8 7F0510A8 0FC1440A */ jal sub_GAME_7F051028 -/* 085BDC 7F0510AC E48A0074 */ swc1 $f10, 0x74($a0) -/* 085BE0 7F0510B0 8FBF0014 */ lw $ra, 0x14($sp) -/* 085BE4 7F0510B4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 085BE8 7F0510B8 03E00008 */ jr $ra -/* 085BEC 7F0510BC 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -40002,7 +39586,7 @@ PropRecord *chrTryEquipHat(ChrRecord *self, s32 index, s32 flags) { if (prop != 0) { - set_obj_instance_scale_to_zero(prop); + clear_model_obj(prop); } if (lastprop != 0) { @@ -40114,7 +39698,7 @@ glabel chrTryEquipHat .L7F05122C: /* 085D5C 7F05122C 12200003 */ beqz $s1, .L7F05123C /* 085D60 7F051230 00000000 */ nop -/* 085D64 7F051234 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 085D64 7F051234 0FC1B08D */ jal clear_model_obj /* 085D68 7F051238 02202025 */ move $a0, $s1 .L7F05123C: /* 085D6C 7F05123C 52000005 */ beql $s0, $zero, .L7F051254 @@ -40220,7 +39804,7 @@ glabel sub_GAME_7F05126C /* 085EA4 7F051374 8E040014 */ lw $a0, 0x14($s0) /* 085EA8 7F051378 AFA70054 */ sw $a3, 0x54($sp) /* 085EAC 7F05137C AFA80040 */ sw $t0, 0x40($sp) -/* 085EB0 7F051380 0FC1B018 */ jal sub_GAME_7F06C060 +/* 085EB0 7F051380 0FC1B018 */ jal modelmgrCanSlotFitRwdata /* 085EB4 7F051384 AFA9003C */ sw $t1, 0x3c($sp) /* 085EB8 7F051388 3C0B8007 */ lui $t3, %hi(ProjectileData_start_address) /* 085EBC 7F05138C 256B1E80 */ addiu $t3, %lo(ProjectileData_start_address) # addiu $t3, $t3, 0x1e80 @@ -40455,7 +40039,7 @@ glabel hatCreate /* 086190 7F051660 8E040014 */ lw $a0, 0x14($s0) /* 086194 7F051664 8FA50070 */ lw $a1, 0x70($sp) /* 086198 7F051668 AFA30064 */ sw $v1, 0x64($sp) -/* 08619C 7F05166C 0FC1B018 */ jal sub_GAME_7F06C060 +/* 08619C 7F05166C 0FC1B018 */ jal modelmgrCanSlotFitRwdata /* 0861A0 7F051670 AFA70068 */ sw $a3, 0x68($sp) /* 0861A4 7F051674 8FA30064 */ lw $v1, 0x64($sp) /* 0861A8 7F051678 1040000C */ beqz $v0, .L7F0516AC @@ -40803,12 +40387,12 @@ ObjectRecord *weaponFindThrown(s32 ID) //MATCH -void add_obj_to_temp_proxmine_table(s32 arg) { +void add_obj_to_temp_proxmine_table(WeaponObjRecord* proxy) { s32 i = 0; while (1) { - if (temp_mine_table[i] == 0) { - temp_mine_table[i] = arg; + if (temp_mine_table[i] == NULL) { + temp_mine_table[i] = proxy; return; } i++; @@ -40823,12 +40407,12 @@ void add_obj_to_temp_proxmine_table(s32 arg) { -void remove_obj_from_temp_proxmine_table(s32 arg) { +void remove_obj_from_temp_proxmine_table(WeaponObjRecord* proxy) { s32 i = 0; while (1) { - if (temp_mine_table[i] == arg) { - temp_mine_table[i] = 0; + if (temp_mine_table[i] == proxy) { + temp_mine_table[i] = NULL; return; } i++; @@ -40838,150 +40422,52 @@ void remove_obj_from_temp_proxmine_table(s32 arg) { } } +void detonate_proxmine_In_range(coord3d* pos) +{ + s32 i; + for (i = 0; i < 30; i++) + { + WeaponObjRecord* obj = temp_mine_table[i]; + if (obj && (obj->timer == 1)) + { + f32 diff_x; + f32 diff_z; + f32 diff_y; + f32 dist_sqr; + diff_x = pos->x - obj->runtime_pos.x; + diff_y = pos->y - obj->runtime_pos.y; + diff_z = pos->z - obj->runtime_pos.z; + dist_sqr = (diff_x * diff_x) + (diff_y * diff_y) + (diff_z * diff_z); - - -#ifdef NONMATCHING -void detonate_proxmine_In_range(void) { - + if (dist_sqr < 62500.0f) + { + obj->timer = 0; + } + } + } } -#else -GLOBAL_ASM( -.text -glabel detonate_proxmine_In_range -/* 0866FC 7F051BCC 3C038007 */ lui $v1, %hi(temp_mine_table) -/* 086700 7F051BD0 3C018005 */ lui $at, %hi(D_800532EC) -/* 086704 7F051BD4 3C078007 */ lui $a3, %hi(gas_damage_flag) -/* 086708 7F051BD8 00802825 */ move $a1, $a0 -/* 08670C 7F051BDC 24E71E78 */ addiu $a3, %lo(gas_damage_flag) # addiu $a3, $a3, 0x1e78 -/* 086710 7F051BE0 C42E32EC */ lwc1 $f14, %lo(D_800532EC)($at) -/* 086714 7F051BE4 24631E00 */ addiu $v1, %lo(temp_mine_table) # addiu $v1, $v1, 0x1e00 -/* 086718 7F051BE8 24060001 */ li $a2, 1 -/* 08671C 7F051BEC 8C640000 */ lw $a0, ($v1) -.L7F051BF0: -/* 086720 7F051BF0 50800018 */ beql $a0, $zero, .L7F051C54 -/* 086724 7F051BF4 8C620004 */ lw $v0, 4($v1) -/* 086728 7F051BF8 848E0082 */ lh $t6, 0x82($a0) -/* 08672C 7F051BFC 54CE0015 */ bnel $a2, $t6, .L7F051C54 -/* 086730 7F051C00 8C620004 */ lw $v0, 4($v1) -/* 086734 7F051C04 C4A40000 */ lwc1 $f4, ($a1) -/* 086738 7F051C08 C4860058 */ lwc1 $f6, 0x58($a0) -/* 08673C 7F051C0C C4A80004 */ lwc1 $f8, 4($a1) -/* 086740 7F051C10 C48A005C */ lwc1 $f10, 0x5c($a0) -/* 086744 7F051C14 46062001 */ sub.s $f0, $f4, $f6 -/* 086748 7F051C18 C4B00008 */ lwc1 $f16, 8($a1) -/* 08674C 7F051C1C C4920060 */ lwc1 $f18, 0x60($a0) -/* 086750 7F051C20 460A4081 */ sub.s $f2, $f8, $f10 -/* 086754 7F051C24 46000102 */ mul.s $f4, $f0, $f0 -/* 086758 7F051C28 46128301 */ sub.s $f12, $f16, $f18 -/* 08675C 7F051C2C 46021182 */ mul.s $f6, $f2, $f2 -/* 086760 7F051C30 46062200 */ add.s $f8, $f4, $f6 -/* 086764 7F051C34 460C6282 */ mul.s $f10, $f12, $f12 -/* 086768 7F051C38 460A4400 */ add.s $f16, $f8, $f10 -/* 08676C 7F051C3C 460E803C */ c.lt.s $f16, $f14 -/* 086770 7F051C40 00000000 */ nop -/* 086774 7F051C44 45020003 */ bc1fl .L7F051C54 -/* 086778 7F051C48 8C620004 */ lw $v0, 4($v1) -/* 08677C 7F051C4C A4800082 */ sh $zero, 0x82($a0) -/* 086780 7F051C50 8C620004 */ lw $v0, 4($v1) -.L7F051C54: -/* 086784 7F051C54 24630008 */ addiu $v1, $v1, 8 -/* 086788 7F051C58 10400017 */ beqz $v0, .L7F051CB8 -/* 08678C 7F051C5C 00000000 */ nop -/* 086790 7F051C60 844F0082 */ lh $t7, 0x82($v0) -/* 086794 7F051C64 14CF0014 */ bne $a2, $t7, .L7F051CB8 -/* 086798 7F051C68 00000000 */ nop -/* 08679C 7F051C6C C4B20000 */ lwc1 $f18, ($a1) -/* 0867A0 7F051C70 C4440058 */ lwc1 $f4, 0x58($v0) -/* 0867A4 7F051C74 C4A60004 */ lwc1 $f6, 4($a1) -/* 0867A8 7F051C78 C448005C */ lwc1 $f8, 0x5c($v0) -/* 0867AC 7F051C7C 46049001 */ sub.s $f0, $f18, $f4 -/* 0867B0 7F051C80 C4AA0008 */ lwc1 $f10, 8($a1) -/* 0867B4 7F051C84 C4500060 */ lwc1 $f16, 0x60($v0) -/* 0867B8 7F051C88 46083081 */ sub.s $f2, $f6, $f8 -/* 0867BC 7F051C8C 46000482 */ mul.s $f18, $f0, $f0 -/* 0867C0 7F051C90 46105301 */ sub.s $f12, $f10, $f16 -/* 0867C4 7F051C94 46021102 */ mul.s $f4, $f2, $f2 -/* 0867C8 7F051C98 46049180 */ add.s $f6, $f18, $f4 -/* 0867CC 7F051C9C 460C6202 */ mul.s $f8, $f12, $f12 -/* 0867D0 7F051CA0 46083280 */ add.s $f10, $f6, $f8 -/* 0867D4 7F051CA4 460E503C */ c.lt.s $f10, $f14 -/* 0867D8 7F051CA8 00000000 */ nop -/* 0867DC 7F051CAC 45000002 */ bc1f .L7F051CB8 -/* 0867E0 7F051CB0 00000000 */ nop -/* 0867E4 7F051CB4 A4400082 */ sh $zero, 0x82($v0) -.L7F051CB8: -/* 0867E8 7F051CB8 5467FFCD */ bnel $v1, $a3, .L7F051BF0 -/* 0867EC 7F051CBC 8C640000 */ lw $a0, ($v1) -/* 0867F0 7F051CC0 03E00008 */ jr $ra -/* 0867F4 7F051CC4 00000000 */ nop -) -#endif +void check_guard_detonate_proxmine(void) +{ + ChrRecord* guard; + s32 num_guards; + s32 i; + num_guards = get_numguards(); - -#ifdef NONMATCHING -void check_guard_detonate_proxmine(void) { - + for (i = 0; i < num_guards; i++) + { + guard = &ptr_guard_data[i]; + if ((guard->model != NULL) && (guard->hidden & 0x200)) + { + coord3d pos; + chrlvGetPatrolPercentOrPosition(guard, &pos); + detonate_proxmine_In_range(&pos); + } + } } -#else -GLOBAL_ASM( -.text -glabel check_guard_detonate_proxmine -/* 0867F8 7F051CC8 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0867FC 7F051CCC AFBF002C */ sw $ra, 0x2c($sp) -/* 086800 7F051CD0 AFB40028 */ sw $s4, 0x28($sp) -/* 086804 7F051CD4 AFB30024 */ sw $s3, 0x24($sp) -/* 086808 7F051CD8 AFB20020 */ sw $s2, 0x20($sp) -/* 08680C 7F051CDC AFB1001C */ sw $s1, 0x1c($sp) -/* 086810 7F051CE0 0FC07D4C */ jal get_numguards -/* 086814 7F051CE4 AFB00018 */ sw $s0, 0x18($sp) -/* 086818 7F051CE8 1840001A */ blez $v0, .L7F051D54 -/* 08681C 7F051CEC 00008025 */ move $s0, $zero -/* 086820 7F051CF0 00029900 */ sll $s3, $v0, 4 -/* 086824 7F051CF4 02629823 */ subu $s3, $s3, $v0 -/* 086828 7F051CF8 001398C0 */ sll $s3, $s3, 3 -/* 08682C 7F051CFC 02629823 */ subu $s3, $s3, $v0 -/* 086830 7F051D00 3C148003 */ lui $s4, %hi(ptr_guard_data) -/* 086834 7F051D04 2694CC64 */ addiu $s4, %lo(ptr_guard_data) # addiu $s4, $s4, -0x339c -/* 086838 7F051D08 00139880 */ sll $s3, $s3, 2 -/* 08683C 7F051D0C 27B10038 */ addiu $s1, $sp, 0x38 -/* 086840 7F051D10 8E8E0000 */ lw $t6, ($s4) -.L7F051D14: -/* 086844 7F051D14 020E2021 */ addu $a0, $s0, $t6 -/* 086848 7F051D18 8C8F001C */ lw $t7, 0x1c($a0) -/* 08684C 7F051D1C 51E0000A */ beql $t7, $zero, .L7F051D48 -/* 086850 7F051D20 261001DC */ addiu $s0, $s0, 0x1dc -/* 086854 7F051D24 94980012 */ lhu $t8, 0x12($a0) -/* 086858 7F051D28 33190200 */ andi $t9, $t8, 0x200 -/* 08685C 7F051D2C 53200006 */ beql $t9, $zero, .L7F051D48 -/* 086860 7F051D30 261001DC */ addiu $s0, $s0, 0x1dc -/* 086864 7F051D34 0FC0A225 */ jal chrlvGetPatrolPercentOrPosition -/* 086868 7F051D38 02202825 */ move $a1, $s1 -/* 08686C 7F051D3C 0FC146F3 */ jal detonate_proxmine_In_range -/* 086870 7F051D40 02202025 */ move $a0, $s1 -/* 086874 7F051D44 261001DC */ addiu $s0, $s0, 0x1dc -.L7F051D48: -/* 086878 7F051D48 0213082A */ slt $at, $s0, $s3 -/* 08687C 7F051D4C 5420FFF1 */ bnezl $at, .L7F051D14 -/* 086880 7F051D50 8E8E0000 */ lw $t6, ($s4) -.L7F051D54: -/* 086884 7F051D54 8FBF002C */ lw $ra, 0x2c($sp) -/* 086888 7F051D58 8FB00018 */ lw $s0, 0x18($sp) -/* 08688C 7F051D5C 8FB1001C */ lw $s1, 0x1c($sp) -/* 086890 7F051D60 8FB20020 */ lw $s2, 0x20($sp) -/* 086894 7F051D64 8FB30024 */ lw $s3, 0x24($sp) -/* 086898 7F051D68 8FB40028 */ lw $s4, 0x28($sp) -/* 08689C 7F051D6C 03E00008 */ jr $ra -/* 0868A0 7F051D70 27BD0050 */ addiu $sp, $sp, 0x50 -) -#endif - - - void propweaponSetDual(WeaponObjRecord *leftweapon, WeaponObjRecord *rightweapon) //#MATCH @@ -40993,73 +40479,31 @@ void propweaponSetDual(WeaponObjRecord *leftweapon, WeaponObjRecord *rightweapon } +PropRecord* complete_object_data_block_return_position_entry(ObjectRecord* obj, ModelFileHeader* model_header, PropRecord* prop, Model* model) +{ + prop = init_standard_object(obj, model_header, prop, model); + if (prop != NULL) + { + prop->type = 4; + sub_GAME_7F052574(prop, 0); + } - -#ifdef NONMATCHING -void complete_object_data_block_return_position_entry(void) { - + return prop; } -#else -GLOBAL_ASM( -.text -glabel complete_object_data_block_return_position_entry -/* 0868C0 7F051D90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0868C4 7F051D94 AFBF0014 */ sw $ra, 0x14($sp) -/* 0868C8 7F051D98 0FC10153 */ jal init_standard_object -/* 0868CC 7F051D9C 00000000 */ nop -/* 0868D0 7F051DA0 10400008 */ beqz $v0, .L7F051DC4 -/* 0868D4 7F051DA4 00403025 */ move $a2, $v0 -/* 0868D8 7F051DA8 240E0004 */ li $t6, 4 -/* 0868DC 7F051DAC A04E0000 */ sb $t6, ($v0) -/* 0868E0 7F051DB0 AFA20020 */ sw $v0, 0x20($sp) -/* 0868E4 7F051DB4 00402025 */ move $a0, $v0 -/* 0868E8 7F051DB8 0FC1495D */ jal sub_GAME_7F052574 -/* 0868EC 7F051DBC 00002825 */ move $a1, $zero -/* 0868F0 7F051DC0 8FA60020 */ lw $a2, 0x20($sp) -.L7F051DC4: -/* 0868F4 7F051DC4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0868F8 7F051DC8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0868FC 7F051DCC 00C01025 */ move $v0, $a2 -/* 086900 7F051DD0 03E00008 */ jr $ra -/* 086904 7F051DD4 00000000 */ nop -) -#endif +PropRecord* sub_GAME_7F051DD8(s32* arg0, ModelFileHeader* arg1) +{ + PropRecord* prop; - - -#ifdef NONMATCHING -void sub_GAME_7F051DD8(void) { - + prop = sub_GAME_7F0406F8(arg0, arg1); + if (prop != NULL) + { + prop->type = PROP_TYPE_WEAPON; + sub_GAME_7F052574(prop, 0); + } + return prop; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F051DD8 -/* 086908 7F051DD8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08690C 7F051DDC AFBF0014 */ sw $ra, 0x14($sp) -/* 086910 7F051DE0 0FC101BE */ jal sub_GAME_7F0406F8 -/* 086914 7F051DE4 00000000 */ nop -/* 086918 7F051DE8 10400007 */ beqz $v0, .L7F051E08 -/* 08691C 7F051DEC 00402025 */ move $a0, $v0 -/* 086920 7F051DF0 240E0004 */ li $t6, 4 -/* 086924 7F051DF4 A04E0000 */ sb $t6, ($v0) -/* 086928 7F051DF8 AFA2001C */ sw $v0, 0x1c($sp) -/* 08692C 7F051DFC 0FC1495D */ jal sub_GAME_7F052574 -/* 086930 7F051E00 00002825 */ move $a1, $zero -/* 086934 7F051E04 8FA4001C */ lw $a0, 0x1c($sp) -.L7F051E08: -/* 086938 7F051E08 8FBF0014 */ lw $ra, 0x14($sp) -/* 08693C 7F051E0C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 086940 7F051E10 00801025 */ move $v0, $a0 -/* 086944 7F051E14 03E00008 */ jr $ra -/* 086948 7F051E18 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -41414,7 +40858,7 @@ WeaponObjRecord *create_new_item_instance_of_model(s32 modelnum, ITEM_IDS weapon NewGun = NULL; if (ObjInst != 0) { - set_obj_instance_scale_to_zero(ObjInst); + clear_model_obj(ObjInst); } if (lastObj != 0) { @@ -41519,7 +40963,7 @@ glabel create_new_item_instance_of_model .L7F0521B0: /* 086CE0 7F0521B0 10E00003 */ beqz $a3, .L7F0521C0 /* 086CE4 7F0521B4 00008825 */ move $s1, $zero -/* 086CE8 7F0521B8 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 086CE8 7F0521B8 0FC1B08D */ jal clear_model_obj /* 086CEC 7F0521BC 00E02025 */ move $a0, $a3 .L7F0521C0: /* 086CF0 7F0521C0 52000004 */ beql $s0, $zero, .L7F0521D4 @@ -41595,7 +41039,7 @@ PropRecord *something_with_generating_object(ChrRecord *self, s32 PropID, ITEM_I { if (objinst) { - set_obj_instance_scale_to_zero(objinst); + clear_model_obj(objinst); } if (lastobjentry) { @@ -41715,7 +41159,7 @@ glabel something_with_generating_object .L7F052394: /* 086EC4 7F052394 12400003 */ beqz $s2, .L7F0523A4 /* 086EC8 7F052398 00000000 */ nop -/* 086ECC 7F05239C 0FC1B08D */ jal set_obj_instance_scale_to_zero +/* 086ECC 7F05239C 0FC1B08D */ jal clear_model_obj /* 086ED0 7F0523A0 02402025 */ move $a0, $s2 .L7F0523A4: /* 086ED4 7F0523A4 52200005 */ beql $s1, $zero, .L7F0523BC @@ -41756,6 +41200,9 @@ void sub_GAME_7F0523F8(void) { } #else GLOBAL_ASM( +.late_rodata +glabel D_800532F0 +.word 0x40490fdb /*3.1415927*/ .text glabel sub_GAME_7F0523F8 /* 086F28 7F0523F8 27BDFF48 */ addiu $sp, $sp, -0xb8 @@ -41892,7 +41339,7 @@ glabel sub_GAME_7F052574 /* 0870E0 7F0525B0 8C650000 */ lw $a1, ($v1) /* 0870E4 7F0525B4 50A00009 */ beql $a1, $zero, .L7F0525DC /* 0870E8 7F0525B8 8C650008 */ lw $a1, 8($v1) -/* 0870EC 7F0525BC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0870EC 7F0525BC 0FC1B1E7 */ jal modelGetNodeRwData /* 0870F0 7F0525C0 AFA60018 */ sw $a2, 0x18($sp) /* 0870F4 7F0525C4 8FB80024 */ lw $t8, 0x24($sp) /* 0870F8 7F0525C8 8FA60018 */ lw $a2, 0x18($sp) @@ -41903,7 +41350,7 @@ glabel sub_GAME_7F052574 .L7F0525DC: /* 08710C 7F0525DC 50A00006 */ beql $a1, $zero, .L7F0525F8 /* 087110 7F0525E0 8FBF0014 */ lw $ra, 0x14($sp) -/* 087114 7F0525E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087114 7F0525E4 0FC1B1E7 */ jal modelGetNodeRwData /* 087118 7F0525E8 00C02025 */ move $a0, $a2 /* 08711C 7F0525EC 8FA80024 */ lw $t0, 0x24($sp) /* 087120 7F0525F0 AC480000 */ sw $t0, ($v0) @@ -41943,7 +41390,7 @@ glabel sub_GAME_7F052604 /* 087168 7F052638 8C650000 */ lw $a1, ($v1) /* 08716C 7F05263C 50A00006 */ beql $a1, $zero, .L7F052658 /* 087170 7F052640 8C650008 */ lw $a1, 8($v1) -/* 087174 7F052644 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087174 7F052644 0FC1B1E7 */ jal modelGetNodeRwData /* 087178 7F052648 00C02025 */ move $a0, $a2 /* 08717C 7F05264C 10000009 */ b .L7F052674 /* 087180 7F052650 84420000 */ lh $v0, ($v0) @@ -41951,7 +41398,7 @@ glabel sub_GAME_7F052604 .L7F052658: /* 087188 7F052658 50A00006 */ beql $a1, $zero, .L7F052674 /* 08718C 7F05265C 00001025 */ move $v0, $zero -/* 087190 7F052660 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087190 7F052660 0FC1B1E7 */ jal modelGetNodeRwData /* 087194 7F052664 00C02025 */ move $a0, $a2 /* 087198 7F052668 10000002 */ b .L7F052674 /* 08719C 7F05266C 8C420000 */ lw $v0, ($v0) @@ -42032,7 +41479,7 @@ void sub_GAME_7F0526EC(DoorRecord *door, Mtxf *rhs) if ((door->doorType == 5) || (door->doorType == 9)) { - temp_v0_2 = &g_chraiCurrentSetup.boundpads[door->pad]; + temp_v0_2 = &g_CurrentSetup.boundpads[door->pad]; sp38.x = (temp_v0_2->up.y * temp_v0_2->look.z) - (temp_v0_2->look.y * temp_v0_2->up.z); // cross product sp38.y = (temp_v0_2->up.z * temp_v0_2->look.x) - (temp_v0_2->look.z * temp_v0_2->up.x); // cross product sp38.z = (temp_v0_2->up.x * temp_v0_2->look.y) - (temp_v0_2->look.x * temp_v0_2->up.y); // cross product @@ -42071,20 +41518,20 @@ void sub_GAME_7F0526EC(DoorRecord *door, Mtxf *rhs) { if (door->flags & PROPFLAG_NO_AI_INTERACTION) { - matrix_4x4_set_rotation_around_z(6.2831855f - ((door->openPosition * 6.2831855f) / 360.0f), &lhs); + matrix_4x4_set_rotation_around_z(M_TAU_F - ((door->openPosition * M_TAU_F) / 360.0f), &lhs); } else { - matrix_4x4_set_rotation_around_z((door->openPosition * 6.2831855f) / 360.0f, &lhs); + matrix_4x4_set_rotation_around_z((door->openPosition * M_TAU_F) / 360.0f, &lhs); } } else if (door->flags & PROPFLAG_NO_AI_INTERACTION) { - matrix_4x4_set_rotation_around_y(6.2831855f - ((door->openPosition * 6.2831855f) / 360.0f), &lhs); + matrix_4x4_set_rotation_around_y(M_TAU_F - ((door->openPosition * M_TAU_F) / 360.0f), &lhs); } else { - matrix_4x4_set_rotation_around_y((door->openPosition * 6.2831855f) / 360.0f, &lhs); + matrix_4x4_set_rotation_around_y((door->openPosition * M_TAU_F) / 360.0f, &lhs); } matrix_4x4_multiply_in_place(&lhs, &rhs); @@ -42148,8 +41595,8 @@ glabel sub_GAME_7F0526EC /* 087244 7F052714 24010006 */ li $at, 6 .L7F052718: /* 087248 7F052718 86190006 */ lh $t9, 6($s0) -/* 08724C 7F05271C 3C098007 */ lui $t1, %hi(g_chraiCurrentSetup+0x1C) -/* 087250 7F052720 8D295D1C */ lw $t1, %lo(g_chraiCurrentSetup+0x1C)($t1) +/* 08724C 7F05271C 3C098007 */ lui $t1, %hi(g_CurrentSetup+0x1C) +/* 087250 7F052720 8D295D1C */ lw $t1, %lo(g_CurrentSetup+0x1C)($t1) /* 087254 7F052724 00194100 */ sll $t0, $t9, 4 /* 087258 7F052728 01194021 */ addu $t0, $t0, $t9 /* 08725C 7F05272C 00084080 */ sll $t0, $t0, 2 @@ -42718,7 +42165,7 @@ glabel sub_GAME_7F052D8C /* 087904 7F052DD4 8F190000 */ lw $t9, ($t8) /* 087908 7F052DD8 8F2E0014 */ lw $t6, 0x14($t9) /* 08790C 7F052DDC 8DC50014 */ lw $a1, 0x14($t6) -/* 087910 7F052DE0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 087910 7F052DE0 0FC1B1E7 */ jal modelGetNodeRwData /* 087914 7F052DE4 8CB50004 */ lw $s5, 4($a1) /* 087918 7F052DE8 96CF009A */ lhu $t7, 0x9a($s6) /* 08791C 7F052DEC 24140004 */ li $s4, 4 @@ -43258,14 +42705,12 @@ glabel sub_GAME_7F052D8C #endif - - /** * objToggleDoorPortal / doorActivatePortal * Toggles (Open/Closed) the portal linked with door * @param door: Door to toggle portal on */ -void sub_GAME_7F053598(DoorRecord *door) +void doorActivatePortal(DoorRecord *door) { if (door->portalNumber >= 0) { @@ -43274,13 +42719,12 @@ void sub_GAME_7F053598(DoorRecord *door) } - /** * objToggleDoorPortal / doorDeactivatePortal * Toggles (Open/Closed) the portal linked with door * @param door: Door to toggle portal on */ -void sub_GAME_7F0535C4(DoorRecord *door) { +void doorDeactivatePortal(DoorRecord *door) { if (door->portalNumber >= 0) { bgToggleDataPortalsContrlBytes1Bit1(door->portalNumber, FALSE); @@ -43288,9 +42732,6 @@ void sub_GAME_7F0535C4(DoorRecord *door) { } - - - #ifdef NONMATCHING void initialize_door(void) { @@ -43693,96 +43134,48 @@ void sub_GAME_7F053A10(ALSoundState *state, coord3d *pos) } +void sub_GAME_7F053A3C(DoorRecord* arg0) +{ + s32 open_playing; + s32 close_playing; + s32 sp1C; + open_playing = (arg0->openSoundState != NULL) && (sndGetPlayingState(arg0->openSoundState) != 0); + close_playing = (arg0->closeSoundState != NULL) && (sndGetPlayingState(arg0->closeSoundState) != 0); + if ((open_playing != 0) || (close_playing != 0)) + { -#ifdef NONMATCHING -void sub_GAME_7F053A3C(void) { + sp1C = sub_GAME_7F0539E4(&arg0->prop->pos); + if (lvlGetControlsLockedFlag() != 0) + { + sp1C = 0; + } + + if (open_playing != 0) + { + sndCreatePostEvent(arg0->openSoundState, 8, sp1C); + } + + if (close_playing != 0) + { + sndCreatePostEvent(arg0->closeSoundState, 8, sp1C); + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F053A3C -/* 08856C 7F053A3C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 088570 7F053A40 AFBF0014 */ sw $ra, 0x14($sp) -/* 088574 7F053A44 AFA40028 */ sw $a0, 0x28($sp) -/* 088578 7F053A48 8C8500F4 */ lw $a1, 0xf4($a0) -/* 08857C 7F053A4C 0005182B */ sltu $v1, $zero, $a1 -/* 088580 7F053A50 50600005 */ beql $v1, $zero, .L7F053A68 -/* 088584 7F053A54 8FAF0028 */ lw $t7, 0x28($sp) -/* 088588 7F053A58 0C00237C */ jal sndGetPlayingState -/* 08858C 7F053A5C 00A02025 */ move $a0, $a1 -/* 088590 7F053A60 0002182B */ sltu $v1, $zero, $v0 -/* 088594 7F053A64 8FAF0028 */ lw $t7, 0x28($sp) -.L7F053A68: -/* 088598 7F053A68 AFA30024 */ sw $v1, 0x24($sp) -/* 08859C 7F053A6C 8DE400F8 */ lw $a0, 0xf8($t7) -/* 0885A0 7F053A70 0004182B */ sltu $v1, $zero, $a0 -/* 0885A4 7F053A74 50600005 */ beql $v1, $zero, .L7F053A8C -/* 0885A8 7F053A78 8FB80024 */ lw $t8, 0x24($sp) -/* 0885AC 7F053A7C 0C00237C */ jal sndGetPlayingState -/* 0885B0 7F053A80 00000000 */ nop -/* 0885B4 7F053A84 0002182B */ sltu $v1, $zero, $v0 -/* 0885B8 7F053A88 8FB80024 */ lw $t8, 0x24($sp) -.L7F053A8C: -/* 0885BC 7F053A8C 8FB90028 */ lw $t9, 0x28($sp) -/* 0885C0 7F053A90 57000004 */ bnezl $t8, .L7F053AA4 -/* 0885C4 7F053A94 8F240010 */ lw $a0, 0x10($t9) -/* 0885C8 7F053A98 5060001A */ beql $v1, $zero, .L7F053B04 -/* 0885CC 7F053A9C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0885D0 7F053AA0 8F240010 */ lw $a0, 0x10($t9) -.L7F053AA4: -/* 0885D4 7F053AA4 AFA30018 */ sw $v1, 0x18($sp) -/* 0885D8 7F053AA8 0FC14E79 */ jal sub_GAME_7F0539E4 -/* 0885DC 7F053AAC 24840008 */ addiu $a0, $a0, 8 -/* 0885E0 7F053AB0 0FC2FF01 */ jal lvlGetControlsLockedFlag -/* 0885E4 7F053AB4 AFA2001C */ sw $v0, 0x1c($sp) -/* 0885E8 7F053AB8 10400002 */ beqz $v0, .L7F053AC4 -/* 0885EC 7F053ABC 8FA30018 */ lw $v1, 0x18($sp) -/* 0885F0 7F053AC0 AFA0001C */ sw $zero, 0x1c($sp) -.L7F053AC4: -/* 0885F4 7F053AC4 8FA80024 */ lw $t0, 0x24($sp) -/* 0885F8 7F053AC8 8FA90028 */ lw $t1, 0x28($sp) -/* 0885FC 7F053ACC 24050008 */ li $a1, 8 -/* 088600 7F053AD0 11000005 */ beqz $t0, .L7F053AE8 -/* 088604 7F053AD4 8FA6001C */ lw $a2, 0x1c($sp) -/* 088608 7F053AD8 8D2400F4 */ lw $a0, 0xf4($t1) -/* 08860C 7F053ADC 0C002461 */ jal sndCreatePostEvent -/* 088610 7F053AE0 AFA30018 */ sw $v1, 0x18($sp) -/* 088614 7F053AE4 8FA30018 */ lw $v1, 0x18($sp) -.L7F053AE8: -/* 088618 7F053AE8 10600005 */ beqz $v1, .L7F053B00 -/* 08861C 7F053AEC 8FAA0028 */ lw $t2, 0x28($sp) -/* 088620 7F053AF0 8D4400F8 */ lw $a0, 0xf8($t2) -/* 088624 7F053AF4 24050008 */ li $a1, 8 -/* 088628 7F053AF8 0C002461 */ jal sndCreatePostEvent -/* 08862C 7F053AFC 8FA6001C */ lw $a2, 0x1c($sp) -.L7F053B00: -/* 088630 7F053B00 8FBF0014 */ lw $ra, 0x14($sp) -.L7F053B04: -/* 088634 7F053B04 27BD0028 */ addiu $sp, $sp, 0x28 -/* 088638 7F053B08 03E00008 */ jr $ra -/* 08863C 7F053B0C 00000000 */ nop -) -#endif - - - - -#include void sub_GAME_7F053B10(DoorRecord *door) //#MATCH { - if (door->unkf4 && sndGetPlayingState(door->unkf4)) + if (door->openSoundState && sndGetPlayingState(door->openSoundState)) { - sndDeactivate(door->unkf4); + sndDeactivate(door->openSoundState); } - if (door->unkf8 && sndGetPlayingState(door->unkf8)) + if (door->closeSoundState && sndGetPlayingState(door->closeSoundState)) { - sndDeactivate(door->unkf8); + sndDeactivate(door->closeSoundState); } } @@ -43795,13 +43188,13 @@ void play_door_opening_soundeffect_0(DoorRecord *door) { sub_GAME_7F053B10(door); - if (door->unkf4 == NULL) + if (door->openSoundState == NULL) { - pendingState = &door->unkf4; + pendingState = &door->openSoundState; } - else if (door->unkf8 == NULL) + else if (door->closeSoundState == NULL) { - pendingState = &door->unkf8; + pendingState = &door->closeSoundState; } switch (door->doorOpenSound) @@ -43924,13 +43317,13 @@ void play_door_opening_soundeffect_1(DoorRecord *door) { sub_GAME_7F053B10(door); - if (door->unkf4 == NULL) + if (door->openSoundState == NULL) { - pendingState = &door->unkf4; + pendingState = &door->openSoundState; } - else if (door->unkf8 == NULL) + else if (door->closeSoundState == NULL) { - pendingState = &door->unkf8; + pendingState = &door->closeSoundState; } switch (door->doorOpenSound) @@ -44161,203 +43554,99 @@ void play_door_closing_soundeffect_1(DoorRecord *door) } +/** + * Play the door open sound and activate the door's portal, + */ +void doorStartOpen(DoorRecord *door) +{ + door->flags &= ~DOORFLAG_KEEPOPEN; + door->runtime_bitflags |= RUNTIMEBITFLAG_BEENOPENED; + play_door_opening_soundeffect_0(door); + doorActivatePortal(door); + if (door->doorType == 8) + { + struct collision_data *col = door->ptr_allocated_collisiondata_block; + door->flags |= DOORFLAG_CANNOT_ACTIVATE; + door->perimFrac = 0; -#ifdef NONMATCHING -void sub_GAME_7F05474C(void) { - + if (col) { col->unk00 = 0; } + door->flags &= ~DOORFLAG_100; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05474C -/* 08927C 7F05474C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 089280 7F054750 AFBF0014 */ sw $ra, 0x14($sp) -/* 089284 7F054754 8C8E0008 */ lw $t6, 8($a0) -/* 089288 7F054758 8C980064 */ lw $t8, 0x64($a0) -/* 08928C 7F05475C 3C017FFF */ lui $at, (0x7FFFFFFF >> 16) # lui $at, 0x7fff -/* 089290 7F054760 3421FFFF */ ori $at, (0x7FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 089294 7F054764 01C17824 */ and $t7, $t6, $at -/* 089298 7F054768 37190200 */ ori $t9, $t8, 0x200 -/* 08929C 7F05476C AC8F0008 */ sw $t7, 8($a0) -/* 0892A0 7F054770 AC990064 */ sw $t9, 0x64($a0) -/* 0892A4 7F054774 0FC14EDE */ jal play_door_opening_soundeffect_0 -/* 0892A8 7F054778 AFA40018 */ sw $a0, 0x18($sp) -/* 0892AC 7F05477C 0FC14D66 */ jal sub_GAME_7F053598 -/* 0892B0 7F054780 8FA40018 */ lw $a0, 0x18($sp) -/* 0892B4 7F054784 8FA40018 */ lw $a0, 0x18($sp) -/* 0892B8 7F054788 24010008 */ li $at, 8 -/* 0892BC 7F05478C 9488009A */ lhu $t0, 0x9a($a0) -/* 0892C0 7F054790 5501000F */ bnel $t0, $at, .L7F0547D0 -/* 0892C4 7F054794 8FBF0014 */ lw $ra, 0x14($sp) -/* 0892C8 7F054798 8C890008 */ lw $t1, 8($a0) -/* 0892CC 7F05479C 8C820068 */ lw $v0, 0x68($a0) -/* 0892D0 7F0547A0 44802000 */ mtc1 $zero, $f4 -/* 0892D4 7F0547A4 3C010200 */ lui $at, 0x200 -/* 0892D8 7F0547A8 01215025 */ or $t2, $t1, $at -/* 0892DC 7F0547AC AC8A0008 */ sw $t2, 8($a0) -/* 0892E0 7F0547B0 10400002 */ beqz $v0, .L7F0547BC -/* 0892E4 7F0547B4 E4840088 */ swc1 $f4, 0x88($a0) -/* 0892E8 7F0547B8 AC400000 */ sw $zero, ($v0) -.L7F0547BC: -/* 0892EC 7F0547BC 8C8B0008 */ lw $t3, 8($a0) -/* 0892F0 7F0547C0 2401FEFF */ li $at, -257 -/* 0892F4 7F0547C4 01616024 */ and $t4, $t3, $at -/* 0892F8 7F0547C8 AC8C0008 */ sw $t4, 8($a0) -/* 0892FC 7F0547CC 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0547D0: -/* 089300 7F0547D0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 089304 7F0547D4 03E00008 */ jr $ra -/* 089308 7F0547D8 00000000 */ nop -) -#endif - - - -void sub_GAME_7F0547DC(DoorRecord *door) { - door->flags &= 0x7FFFFFFF; +/** + * Play the door close sound + */ +void doorStartClose(DoorRecord *door) +{ + door->flags &= ~DOORFLAG_KEEPOPEN; play_door_opening_soundeffect_1(door); } +void doorFinishOpen(DoorRecord *door) +{ + play_door_closing_soundeffect_0(door); + if (door->doorType == 8) + { + sub_GAME_7F03FDA8(door->prop); - -#ifdef NONMATCHING -void sub_GAME_7F05480C(void) { - + if (door->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) + { + door->unk6C->flags |= 1; + matrix_4x4_set_identity(&door->unk6C->m); + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05480C -/* 08933C 7F05480C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 089340 7F054810 AFBF0014 */ sw $ra, 0x14($sp) -/* 089344 7F054814 0FC150B1 */ jal play_door_closing_soundeffect_0 -/* 089348 7F054818 AFA40018 */ sw $a0, 0x18($sp) -/* 08934C 7F05481C 8FA50018 */ lw $a1, 0x18($sp) -/* 089350 7F054820 24010008 */ li $at, 8 -/* 089354 7F054824 94AE009A */ lhu $t6, 0x9a($a1) -/* 089358 7F054828 55C10011 */ bnel $t6, $at, .L7F054870 -/* 08935C 7F05482C 8FBF0014 */ lw $ra, 0x14($sp) -/* 089360 7F054830 8CA40010 */ lw $a0, 0x10($a1) -/* 089364 7F054834 0FC0FF6A */ jal sub_GAME_7F03FDA8 -/* 089368 7F054838 AFA50018 */ sw $a1, 0x18($sp) -/* 08936C 7F05483C 8FA50018 */ lw $a1, 0x18($sp) -/* 089370 7F054840 8CAF0064 */ lw $t7, 0x64($a1) -/* 089374 7F054844 31F80080 */ andi $t8, $t7, 0x80 -/* 089378 7F054848 53000009 */ beql $t8, $zero, .L7F054870 -/* 08937C 7F05484C 8FBF0014 */ lw $ra, 0x14($sp) -/* 089380 7F054850 8CA2006C */ lw $v0, 0x6c($a1) -/* 089384 7F054854 8C590000 */ lw $t9, ($v0) -/* 089388 7F054858 37280001 */ ori $t0, $t9, 1 -/* 08938C 7F05485C AC480000 */ sw $t0, ($v0) -/* 089390 7F054860 8CA4006C */ lw $a0, 0x6c($a1) -/* 089394 7F054864 0FC15FF4 */ jal matrix_4x4_set_identity -/* 089398 7F054868 24840020 */ addiu $a0, $a0, 0x20 -/* 08939C 7F05486C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F054870: -/* 0893A0 7F054870 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0893A4 7F054874 03E00008 */ jr $ra -/* 0893A8 7F054878 00000000 */ nop -) -#endif - - - -void sub_GAME_7F05487C(s32 arg0) { +void doorFinishClose(s32 arg0) { play_door_closing_soundeffect_1(arg0); - sub_GAME_7F0535C4(arg0); + doorDeactivatePortal(arg0); } +/** + * Apply the given state to an individual door (not its siblings). + * + * Handles playing door open/close sounds and activating the portal if opening. + */ +void doorSetOpenState(DoorRecord *door, s32 newstate) +{ + if (newstate == DOORSTATE_OPENING) + { + if (door->openstate == DOORSTATE_STATIONARY || door->openstate == DOORSTATE_WAITING) + { + doorStartOpen(door); + } + door->openstate = newstate; + } + else if (newstate == DOORSTATE_CLOSING) + { + if (door->openstate == DOORSTATE_STATIONARY && door->openPosition > 0) + { + doorStartClose(door); + } - -#ifdef NONMATCHING -void sub_GAME_7F0548A4(void) { - + if ((door->openstate != DOORSTATE_STATIONARY && door->openstate != DOORSTATE_WAITING) || door->openPosition > 0) + { + door->openstate = newstate; + } + else if (door->openstate == DOORSTATE_WAITING) + { + door->openstate = DOORSTATE_STATIONARY; + } + } + else + { + door->openstate = newstate; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0548A4 -/* 0893D4 7F0548A4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0893D8 7F0548A8 24010001 */ li $at, 1 -/* 0893DC 7F0548AC 14A1000E */ bne $a1, $at, .L7F0548E8 -/* 0893E0 7F0548B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0893E4 7F0548B4 808200BC */ lb $v0, 0xbc($a0) -/* 0893E8 7F0548B8 24010003 */ li $at, 3 -/* 0893EC 7F0548BC 50400004 */ beql $v0, $zero, .L7F0548D0 -/* 0893F0 7F0548C0 AFA40018 */ sw $a0, 0x18($sp) -/* 0893F4 7F0548C4 14410006 */ bne $v0, $at, .L7F0548E0 -/* 0893F8 7F0548C8 00000000 */ nop -/* 0893FC 7F0548CC AFA40018 */ sw $a0, 0x18($sp) -.L7F0548D0: -/* 089400 7F0548D0 0FC151D3 */ jal sub_GAME_7F05474C -/* 089404 7F0548D4 AFA5001C */ sw $a1, 0x1c($sp) -/* 089408 7F0548D8 8FA40018 */ lw $a0, 0x18($sp) -/* 08940C 7F0548DC 8FA5001C */ lw $a1, 0x1c($sp) -.L7F0548E0: -/* 089410 7F0548E0 10000025 */ b .L7F054978 -/* 089414 7F0548E4 A08500BC */ sb $a1, 0xbc($a0) -.L7F0548E8: -/* 089418 7F0548E8 24010002 */ li $at, 2 -/* 08941C 7F0548EC 54A10022 */ bnel $a1, $at, .L7F054978 -/* 089420 7F0548F0 A08500BC */ sb $a1, 0xbc($a0) -/* 089424 7F0548F4 808200BC */ lb $v0, 0xbc($a0) -/* 089428 7F0548F8 1440000D */ bnez $v0, .L7F054930 -/* 08942C 7F0548FC 00000000 */ nop -/* 089430 7F054900 44802000 */ mtc1 $zero, $f4 -/* 089434 7F054904 C48600B4 */ lwc1 $f6, 0xb4($a0) -/* 089438 7F054908 4606203C */ c.lt.s $f4, $f6 -/* 08943C 7F05490C 00000000 */ nop -/* 089440 7F054910 45000007 */ bc1f .L7F054930 -/* 089444 7F054914 00000000 */ nop -/* 089448 7F054918 AFA40018 */ sw $a0, 0x18($sp) -/* 08944C 7F05491C 0FC151F7 */ jal sub_GAME_7F0547DC -/* 089450 7F054920 AFA5001C */ sw $a1, 0x1c($sp) -/* 089454 7F054924 8FA40018 */ lw $a0, 0x18($sp) -/* 089458 7F054928 8FA5001C */ lw $a1, 0x1c($sp) -/* 08945C 7F05492C 808200BC */ lb $v0, 0xbc($a0) -.L7F054930: -/* 089460 7F054930 10400003 */ beqz $v0, .L7F054940 -/* 089464 7F054934 24010003 */ li $at, 3 -/* 089468 7F054938 14410008 */ bne $v0, $at, .L7F05495C -/* 08946C 7F05493C 00000000 */ nop -.L7F054940: -/* 089470 7F054940 44804000 */ mtc1 $zero, $f8 -/* 089474 7F054944 C48A00B4 */ lwc1 $f10, 0xb4($a0) -/* 089478 7F054948 24010003 */ li $at, 3 -/* 08947C 7F05494C 460A403C */ c.lt.s $f8, $f10 -/* 089480 7F054950 00000000 */ nop -/* 089484 7F054954 45000003 */ bc1f .L7F054964 -/* 089488 7F054958 00000000 */ nop -.L7F05495C: -/* 08948C 7F05495C 10000006 */ b .L7F054978 -/* 089490 7F054960 A08500BC */ sb $a1, 0xbc($a0) -.L7F054964: -/* 089494 7F054964 54410005 */ bnel $v0, $at, .L7F05497C -/* 089498 7F054968 8FBF0014 */ lw $ra, 0x14($sp) -/* 08949C 7F05496C 10000002 */ b .L7F054978 -/* 0894A0 7F054970 A08000BC */ sb $zero, 0xbc($a0) -/* 0894A4 7F054974 A08500BC */ sb $a1, 0xbc($a0) -.L7F054978: -/* 0894A8 7F054978 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05497C: -/* 0894AC 7F05497C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0894B0 7F054980 03E00008 */ jr $ra -/* 0894B4 7F054984 00000000 */ nop -) -#endif - - - void doorActivate(DoorRecord *door, DOORSTATE State) //#MATCH @@ -44377,146 +43666,74 @@ void doorActivate(DoorRecord *door, DOORSTATE State) //#MATCH } } - sub_GAME_7F0548A4(door, State); + doorSetOpenState(door, State); linkeddoor = door->linkedDoor; while (linkeddoor && linkeddoor != door) { - sub_GAME_7F0548A4(linkeddoor, LinkedState); + doorSetOpenState(linkeddoor, LinkedState); linkeddoor = linkeddoor->linkedDoor; }; } - - - -#ifdef NONMATCHING -void sub_GAME_7F054A20(void) { - +bool doorIsClosed(DoorRecord *door) +{ + return ((door->openstate == DOORSTATE_STATIONARY) || (door->openstate == DOORSTATE_WAITING)) && (door->openPosition <= 0.0f); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F054A20 -/* 089550 7F054A20 808300BC */ lb $v1, 0xbc($a0) -/* 089554 7F054A24 2C620001 */ sltiu $v0, $v1, 1 -/* 089558 7F054A28 14400004 */ bnez $v0, .L7F054A3C -/* 08955C 7F054A2C 38620003 */ xori $v0, $v1, 3 -/* 089560 7F054A30 2C420001 */ sltiu $v0, $v0, 1 -/* 089564 7F054A34 10400009 */ beqz $v0, .L7F054A5C -/* 089568 7F054A38 00000000 */ nop -.L7F054A3C: -/* 08956C 7F054A3C 44802000 */ mtc1 $zero, $f4 -/* 089570 7F054A40 C48600B4 */ lwc1 $f6, 0xb4($a0) -/* 089574 7F054A44 00001025 */ move $v0, $zero -/* 089578 7F054A48 4604303E */ c.le.s $f6, $f4 -/* 08957C 7F054A4C 00000000 */ nop -/* 089580 7F054A50 45000002 */ bc1f .L7F054A5C -/* 089584 7F054A54 00000000 */ nop -/* 089588 7F054A58 24020001 */ li $v0, 1 -.L7F054A5C: -/* 08958C 7F054A5C 03E00008 */ jr $ra -/* 089590 7F054A60 00000000 */ nop -) -#endif +s32 sub_GAME_7F054A64(PropRecord *prop, bbox2d *bbox) +{ + s32 room_ids[8]; + s32 *rooms; + bool result = FALSE; + s32 room_id; + bbox2d bbox2; + chraiGetPropRoomIds(prop, room_ids); + rooms = room_ids; + room_id = *rooms; + while (room_id >= 0) + { + if (bgGet2dBboxByRoomId(room_id, &bbox2)) + { + if (result) + { + if (bbox->min.x > bbox2.min.x) + { + bbox->min.x = bbox2.min.x; + } + if (bbox->min.y > bbox2.min.y) + { + bbox->min.y = bbox2.min.y; + } + if (bbox->max.x < bbox2.max.x) + { + bbox->max.x = bbox2.max.x; + } + if (bbox->max.y < bbox2.max.y) + { + bbox->max.y = bbox2.max.y; + } + } + else + { + bbox->min.x = bbox2.min.x; + bbox->min.y = bbox2.min.y; + bbox->max.x = bbox2.max.x; + bbox->max.y = bbox2.max.y; + } + result = TRUE; + } + rooms++; + room_id = *rooms; + } -#ifdef NONMATCHING -void sub_GAME_7F054A64(void) { - + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F054A64 -/* 089594 7F054A64 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 089598 7F054A68 AFB30020 */ sw $s3, 0x20($sp) -/* 08959C 7F054A6C AFB00014 */ sw $s0, 0x14($sp) -/* 0895A0 7F054A70 00A08025 */ move $s0, $a1 -/* 0895A4 7F054A74 27B30048 */ addiu $s3, $sp, 0x48 -/* 0895A8 7F054A78 AFBF0024 */ sw $ra, 0x24($sp) -/* 0895AC 7F054A7C AFB2001C */ sw $s2, 0x1c($sp) -/* 0895B0 7F054A80 AFB10018 */ sw $s1, 0x18($sp) -/* 0895B4 7F054A84 00009025 */ move $s2, $zero -/* 0895B8 7F054A88 0FC0F2E3 */ jal chraiGetPropRoomIds -/* 0895BC 7F054A8C 02602825 */ move $a1, $s3 -/* 0895C0 7F054A90 8FA40048 */ lw $a0, 0x48($sp) -/* 0895C4 7F054A94 02608825 */ move $s1, $s3 -/* 0895C8 7F054A98 27B3002C */ addiu $s3, $sp, 0x2c -/* 0895CC 7F054A9C 04820031 */ bltzl $a0, .L7F054B64 -/* 0895D0 7F054AA0 8FBF0024 */ lw $ra, 0x24($sp) -.L7F054AA4: -/* 0895D4 7F054AA4 0FC2CF03 */ jal bgGet2dBboxByRoomId -/* 0895D8 7F054AA8 02602825 */ move $a1, $s3 -/* 0895DC 7F054AAC 10400028 */ beqz $v0, .L7F054B50 -/* 0895E0 7F054AB0 0012102B */ sltu $v0, $zero, $s2 -/* 0895E4 7F054AB4 1040001E */ beqz $v0, .L7F054B30 -/* 0895E8 7F054AB8 24120001 */ li $s2, 1 -/* 0895EC 7F054ABC C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 0895F0 7F054AC0 C6060000 */ lwc1 $f6, ($s0) -/* 0895F4 7F054AC4 4606203C */ c.lt.s $f4, $f6 -/* 0895F8 7F054AC8 00000000 */ nop -/* 0895FC 7F054ACC 45020003 */ bc1fl .L7F054ADC -/* 089600 7F054AD0 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 089604 7F054AD4 E6040000 */ swc1 $f4, ($s0) -/* 089608 7F054AD8 C7A80030 */ lwc1 $f8, 0x30($sp) -.L7F054ADC: -/* 08960C 7F054ADC C60A0004 */ lwc1 $f10, 4($s0) -/* 089610 7F054AE0 460A403C */ c.lt.s $f8, $f10 -/* 089614 7F054AE4 00000000 */ nop -/* 089618 7F054AE8 45020003 */ bc1fl .L7F054AF8 -/* 08961C 7F054AEC C6100008 */ lwc1 $f16, 8($s0) -/* 089620 7F054AF0 E6080004 */ swc1 $f8, 4($s0) -/* 089624 7F054AF4 C6100008 */ lwc1 $f16, 8($s0) -.L7F054AF8: -/* 089628 7F054AF8 C7B20034 */ lwc1 $f18, 0x34($sp) -/* 08962C 7F054AFC 4612803C */ c.lt.s $f16, $f18 -/* 089630 7F054B00 00000000 */ nop -/* 089634 7F054B04 45020003 */ bc1fl .L7F054B14 -/* 089638 7F054B08 C606000C */ lwc1 $f6, 0xc($s0) -/* 08963C 7F054B0C E6120008 */ swc1 $f18, 8($s0) -/* 089640 7F054B10 C606000C */ lwc1 $f6, 0xc($s0) -.L7F054B14: -/* 089644 7F054B14 C7A40038 */ lwc1 $f4, 0x38($sp) -/* 089648 7F054B18 4604303C */ c.lt.s $f6, $f4 -/* 08964C 7F054B1C 00000000 */ nop -/* 089650 7F054B20 4502000C */ bc1fl .L7F054B54 -/* 089654 7F054B24 8E240004 */ lw $a0, 4($s1) -/* 089658 7F054B28 10000009 */ b .L7F054B50 -/* 08965C 7F054B2C E604000C */ swc1 $f4, 0xc($s0) -.L7F054B30: -/* 089660 7F054B30 C7AA002C */ lwc1 $f10, 0x2c($sp) -/* 089664 7F054B34 E60A0000 */ swc1 $f10, ($s0) -/* 089668 7F054B38 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 08966C 7F054B3C E6080004 */ swc1 $f8, 4($s0) -/* 089670 7F054B40 C7B00034 */ lwc1 $f16, 0x34($sp) -/* 089674 7F054B44 E6100008 */ swc1 $f16, 8($s0) -/* 089678 7F054B48 C7B20038 */ lwc1 $f18, 0x38($sp) -/* 08967C 7F054B4C E612000C */ swc1 $f18, 0xc($s0) -.L7F054B50: -/* 089680 7F054B50 8E240004 */ lw $a0, 4($s1) -.L7F054B54: -/* 089684 7F054B54 26310004 */ addiu $s1, $s1, 4 -/* 089688 7F054B58 0481FFD2 */ bgez $a0, .L7F054AA4 -/* 08968C 7F054B5C 00000000 */ nop -/* 089690 7F054B60 8FBF0024 */ lw $ra, 0x24($sp) -.L7F054B64: -/* 089694 7F054B64 02401025 */ move $v0, $s2 -/* 089698 7F054B68 8FB2001C */ lw $s2, 0x1c($sp) -/* 08969C 7F054B6C 8FB00014 */ lw $s0, 0x14($sp) -/* 0896A0 7F054B70 8FB10018 */ lw $s1, 0x18($sp) -/* 0896A4 7F054B74 8FB30020 */ lw $s3, 0x20($sp) -/* 0896A8 7F054B78 03E00008 */ jr $ra -/* 0896AC 7F054B7C 27BD0068 */ addiu $sp, $sp, 0x68 -) -#endif - - #if defined(LEFTOVERDEBUG) @@ -44778,7 +43995,7 @@ glabel sub_GAME_7F054D6C /* 089920 7F054DF0 02202025 */ move $a0, $s1 /* 089924 7F054DF4 02202025 */ move $a0, $s1 /* 089928 7F054DF8 8FA50078 */ lw $a1, 0x78($sp) -/* 08992C 7F054DFC 0FC1E2FD */ jal sub_GAME_7F078BF4 +/* 08992C 7F054DFC 0FC1E2FD */ jal camIsPosInScreenBox /* 089930 7F054E00 02003025 */ move $a2, $s0 /* 089934 7F054E04 10000004 */ b .L7F054E18 /* 089938 7F054E08 AFA20044 */ sw $v0, 0x44($sp) @@ -44967,7 +44184,7 @@ glabel sub_GAME_7F054FB4 /* 089BF4 7F0550C4 E63400B8 */ swc1 $f20, 0xb8($s1) /* 089BF8 7F0550C8 8E6E0000 */ lw $t6, ($s3) /* 089BFC 7F0550CC 02202025 */ move $a0, $s1 -/* 089C00 7F0550D0 0FC15203 */ jal sub_GAME_7F05480C +/* 089C00 7F0550D0 0FC15203 */ jal doorFinishOpen /* 089C04 7F0550D4 AE2E00EC */ sw $t6, 0xec($s1) /* 089C08 7F0550D8 1000000F */ b .L7F055118 /* 089C0C 7F0550DC 8E240010 */ lw $a0, 0x10($s1) @@ -44983,7 +44200,7 @@ glabel sub_GAME_7F054FB4 /* 089C30 7F055100 8E240010 */ lw $a0, 0x10($s1) /* 089C34 7F055104 A22000BC */ sb $zero, 0xbc($s1) /* 089C38 7F055108 E63400B8 */ swc1 $f20, 0xb8($s1) -/* 089C3C 7F05510C 0FC1521F */ jal sub_GAME_7F05487C +/* 089C3C 7F05510C 0FC1521F */ jal doorFinishClose /* 089C40 7F055110 AE2000EC */ sw $zero, 0xec($s1) /* 089C44 7F055114 8E240010 */ lw $a0, 0x10($s1) .L7F055118: @@ -45011,7 +44228,7 @@ glabel sub_GAME_7F054FB4 /* 089C90 7F055160 8F280000 */ lw $t0, ($t9) /* 089C94 7F055164 8D090014 */ lw $t1, 0x14($t0) /* 089C98 7F055168 8D250014 */ lw $a1, 0x14($t1) -/* 089C9C 7F05516C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 089C9C 7F05516C 0FC1B1E7 */ jal modelGetNodeRwData /* 089CA0 7F055170 8CB00004 */ lw $s0, 4($a1) /* 089CA4 7F055174 8E2300CC */ lw $v1, 0xcc($s1) /* 089CA8 7F055178 8C4A0000 */ lw $t2, ($v0) @@ -45086,8 +44303,8 @@ glabel sub_GAME_7F05522C /* 089D6C 7F05523C AFA60070 */ sw $a2, 0x70($sp) /* 089D70 7F055240 AFA70074 */ sw $a3, 0x74($sp) /* 089D74 7F055244 84990006 */ lh $t9, 6($a0) -/* 089D78 7F055248 3C098007 */ lui $t1, %hi(g_chraiCurrentSetup+0x1C) -/* 089D7C 7F05524C 8D295D1C */ lw $t1, %lo(g_chraiCurrentSetup+0x1C)($t1) +/* 089D78 7F055248 3C098007 */ lui $t1, %hi(g_CurrentSetup+0x1C) +/* 089D7C 7F05524C 8D295D1C */ lw $t1, %lo(g_CurrentSetup+0x1C)($t1) /* 089D80 7F055250 00194100 */ sll $t0, $t9, 4 /* 089D84 7F055254 01194021 */ addu $t0, $t0, $t9 /* 089D88 7F055258 00084080 */ sll $t0, $t0, 2 @@ -45571,9 +44788,9 @@ glabel sub_GAME_7F055804 /* 08A434 7F055904 0FC0F6DC */ jal sub_GAME_7F03DB70 /* 08A438 7F055908 27A50028 */ addiu $a1, $sp, 0x28 /* 08A43C 7F05590C 1040000E */ beqz $v0, .L7F055948 -/* 08A440 7F055910 3C0C8007 */ lui $t4, %hi(g_chraiCurrentSetup+0x1C) +/* 08A440 7F055910 3C0C8007 */ lui $t4, %hi(g_CurrentSetup+0x1C) /* 08A444 7F055914 860A0006 */ lh $t2, 6($s0) -/* 08A448 7F055918 8D8C5D1C */ lw $t4, %lo(g_chraiCurrentSetup+0x1C)($t4) +/* 08A448 7F055918 8D8C5D1C */ lw $t4, %lo(g_CurrentSetup+0x1C)($t4) /* 08A44C 7F05591C 8FA40078 */ lw $a0, 0x78($sp) /* 08A450 7F055920 000A5900 */ sll $t3, $t2, 4 /* 08A454 7F055924 016A5821 */ addu $t3, $t3, $t2 @@ -45656,8 +44873,8 @@ GLOBAL_ASM( .text glabel sub_GAME_7F055A70 /* 08A5A0 7F055A70 84AE0006 */ lh $t6, 6($a1) -/* 08A5A4 7F055A74 3C188007 */ lui $t8, %hi(g_chraiCurrentSetup+0x1C) -/* 08A5A8 7F055A78 8F185D1C */ lw $t8, %lo(g_chraiCurrentSetup+0x1C)($t8) +/* 08A5A4 7F055A74 3C188007 */ lui $t8, %hi(g_CurrentSetup+0x1C) +/* 08A5A8 7F055A78 8F185D1C */ lw $t8, %lo(g_CurrentSetup+0x1C)($t8) /* 08A5AC 7F055A7C 000E7900 */ sll $t7, $t6, 4 /* 08A5B0 7F055A80 01EE7821 */ addu $t7, $t7, $t6 /* 08A5B4 7F055A84 000F7880 */ sll $t7, $t7, 2 @@ -46230,358 +45447,62 @@ bool check_if_toxic_gas_activated() //#MATCH } - - -#ifdef NONMATCHING -extern s32 g_PlayerInvincible; void handle_gas_damage(void) { - if (activate_gas_sound_timer) + if (activate_gas_sound_timer != 0) { - toxic_gas_sound_timer = toxic_gas_sound_timer + g_GlobalTimerDelta; + toxic_gas_sound_timer += g_GlobalTimerDelta; if (gas_damage_flag <= toxic_gas_sound_timer) { - toxic_gas_sound_timer = (f32) gas_damage_flag; + toxic_gas_sound_timer = gas_damage_flag; activate_gas_sound_timer = 0; } } - if (0.0f < toxic_gas_sound_timer) + + if (toxic_gas_sound_timer > 0.0f && g_PlayerInvincible == 0) { - if (g_PlayerInvincible == 0) + fogSwitchToSolosky2(toxic_gas_sound_timer / gas_damage_flag); + + if (gas_cutoff_flag == 0) { return; } + +#ifdef VERSION_EU + if (D_80030ADC < (g_GlobalTimer - 0xBB)) +#else + if (D_80030ADC < (g_GlobalTimer - 0xE1)) +#endif { - fogSwitchToSolosky2(toxic_gas_sound_timer / gas_damage_flag); - if (gas_cutoff_flag != 0) + D_80030ADC = g_GlobalTimer; + if (toxic_gas_sound_timer >= 600.0f) { - if (D_80030ADC < (g_GlobalTimer - 0xe1)) - { - D_80030ADC = (s32) g_GlobalTimer; - if (600.0f <= toxic_gas_sound_timer) - { - sndPlaySfx(g_musicSfxBufferPtr, COUGH_SFX, 0); - } - if (1800.0f <= toxic_gas_sound_timer) - { - record_damage_kills(0x3e000000, 0, 0, -1, 0); - } - } - if (D_80030AE0 < gas_damage_flag) - { - D_80030AE0 = (f32) (D_80030AE0 + g_GlobalTimerDelta); - if (ptr_gas_sound == NULL) - { - if (lvlGetControlsLockedFlag(&ptr_gas_sound) == 0) - { - sndPlaySfx(g_musicSfxBufferPtr, GAS_HISS_SFX, &ptr_gas_sound); - } - } - if (ptr_gas_sound != NULL) - { - sub_GAME_7F053A10(ptr_gas_sound, &D_80030AD0); - return; - } - } - else - { - if (ptr_gas_sound != NULL) - { - if (sndGetPlayingState(ptr_gas_sound) != AL_STOPPED) - { - sndDeactivate(ptr_gas_sound); - } - } - } + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x62, NULL); + } + if (toxic_gas_sound_timer >= 1800.0f) + { + record_damage_kills(0.125f, 0.0f, 0.0f, -1, 0); + } + } + + if (D_80030AE0 < gas_damage_flag) + { + D_80030AE0 = D_80030AE0 + g_GlobalTimerDelta; + if ((ptr_gas_sound == NULL) && (lvlGetControlsLockedFlag() == 0)) + { + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x66, (ALSoundState* ) &ptr_gas_sound); + } + if (ptr_gas_sound != NULL) + { + sub_GAME_7F053A10(ptr_gas_sound, &D_80030AD0); + } + } + else + { + if ((ptr_gas_sound != NULL) && (sndGetPlayingState(ptr_gas_sound) != 0)) + { + sndDeactivate(ptr_gas_sound); } } } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel handle_gas_damage -/* 08AA94 7F055F64 3C028003 */ lui $v0, %hi(activate_gas_sound_timer) -/* 08AA98 7F055F68 24420ACC */ addiu $v0, %lo(activate_gas_sound_timer) # addiu $v0, $v0, 0xacc -/* 08AA9C 7F055F6C 8C4E0000 */ lw $t6, ($v0) -/* 08AAA0 7F055F70 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 08AAA4 7F055F74 44808000 */ mtc1 $zero, $f16 -/* 08AAA8 7F055F78 11C00011 */ beqz $t6, .L7F055FC0 -/* 08AAAC 7F055F7C AFBF001C */ sw $ra, 0x1c($sp) -/* 08AAB0 7F055F80 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) -/* 08AAB4 7F055F84 24630AC8 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, 0xac8 -/* 08AAB8 7F055F88 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 08AABC 7F055F8C C4268378 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) -/* 08AAC0 7F055F90 C4640000 */ lwc1 $f4, ($v1) -/* 08AAC4 7F055F94 3C018007 */ lui $at, %hi(gas_damage_flag) -/* 08AAC8 7F055F98 46062200 */ add.s $f8, $f4, $f6 -/* 08AACC 7F055F9C E4680000 */ swc1 $f8, ($v1) -/* 08AAD0 7F055FA0 C46A0000 */ lwc1 $f10, ($v1) -/* 08AAD4 7F055FA4 C4201E78 */ lwc1 $f0, %lo(gas_damage_flag)($at) -/* 08AAD8 7F055FA8 460A003E */ c.le.s $f0, $f10 -/* 08AADC 7F055FAC 00000000 */ nop -/* 08AAE0 7F055FB0 45000003 */ bc1f .L7F055FC0 -/* 08AAE4 7F055FB4 00000000 */ nop -/* 08AAE8 7F055FB8 E4600000 */ swc1 $f0, ($v1) -/* 08AAEC 7F055FBC AC400000 */ sw $zero, ($v0) -.L7F055FC0: -/* 08AAF0 7F055FC0 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) -/* 08AAF4 7F055FC4 24630AC8 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, 0xac8 -/* 08AAF8 7F055FC8 C4600000 */ lwc1 $f0, ($v1) -/* 08AAFC 7F055FCC 3C0F8003 */ lui $t7, %hi(g_PlayerInvincible) -/* 08AB00 7F055FD0 4600803C */ c.lt.s $f16, $f0 -/* 08AB04 7F055FD4 00000000 */ nop -/* 08AB08 7F055FD8 4502005E */ bc1fl .L7F056154 -/* 08AB0C 7F055FDC 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AB10 7F055FE0 8DEF64B4 */ lw $t7, %lo(g_PlayerInvincible)($t7) -/* 08AB14 7F055FE4 3C018007 */ lui $at, %hi(gas_damage_flag) -/* 08AB18 7F055FE8 55E0005A */ bnezl $t7, .L7F056154 -/* 08AB1C 7F055FEC 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AB20 7F055FF0 C4321E78 */ lwc1 $f18, %lo(gas_damage_flag)($at) -/* 08AB24 7F055FF4 0FC2EB2A */ jal fogSwitchToSolosky2 -/* 08AB28 7F055FF8 46120303 */ div.s $f12, $f0, $f18 -/* 08AB2C 7F055FFC 3C188007 */ lui $t8, %hi(gas_cutoff_flag) -/* 08AB30 7F056000 8F181E7C */ lw $t8, %lo(gas_cutoff_flag)($t8) -/* 08AB34 7F056004 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) -/* 08AB38 7F056008 24630AC8 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, 0xac8 -/* 08AB3C 7F05600C 13000050 */ beqz $t8, .L7F056150 -/* 08AB40 7F056010 3C048003 */ lui $a0, %hi(D_80030ADC) -/* 08AB44 7F056014 3C028005 */ lui $v0, %hi(g_GlobalTimer) -/* 08AB48 7F056018 8C42837C */ lw $v0, %lo(g_GlobalTimer)($v0) -/* 08AB4C 7F05601C 24840ADC */ addiu $a0, %lo(D_80030ADC) # addiu $a0, $a0, 0xadc -/* 08AB50 7F056020 8C990000 */ lw $t9, ($a0) -/* 08AB54 7F056024 2448FF1F */ addiu $t0, $v0, -0xe1 -/* 08AB58 7F056028 0328082A */ slt $at, $t9, $t0 -/* 08AB5C 7F05602C 1020001B */ beqz $at, .L7F05609C -/* 08AB60 7F056030 3C014416 */ li $at, 0x44160000 # 600.000000 -/* 08AB64 7F056034 44812000 */ mtc1 $at, $f4 -/* 08AB68 7F056038 C4600000 */ lwc1 $f0, ($v1) -/* 08AB6C 7F05603C AC820000 */ sw $v0, ($a0) -/* 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 sndPlaySfx -/* 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 -.L7F05606C: -/* 08AB9C 7F05606C 44813000 */ mtc1 $at, $f6 -/* 08ABA0 7F056070 3C013E00 */ li $at, 0x3E000000 # 0.125000 -/* 08ABA4 7F056074 4600303E */ c.le.s $f6, $f0 -/* 08ABA8 7F056078 00000000 */ nop -/* 08ABAC 7F05607C 45000007 */ bc1f .L7F05609C -/* 08ABB0 7F056080 00000000 */ nop -/* 08ABB4 7F056084 44807000 */ mtc1 $zero, $f14 -/* 08ABB8 7F056088 44816000 */ mtc1 $at, $f12 -/* 08ABBC 7F05608C 2407FFFF */ li $a3, -1 -/* 08ABC0 7F056090 44067000 */ mfc1 $a2, $f14 -/* 08ABC4 7F056094 0FC22647 */ jal record_damage_kills -/* 08ABC8 7F056098 AFA00010 */ sw $zero, 0x10($sp) -.L7F05609C: -/* 08ABCC 7F05609C 3C028003 */ lui $v0, %hi(D_80030AE0) -/* 08ABD0 7F0560A0 24420AE0 */ addiu $v0, %lo(D_80030AE0) # addiu $v0, $v0, 0xae0 -/* 08ABD4 7F0560A4 3C018007 */ lui $at, %hi(gas_damage_flag) -/* 08ABD8 7F0560A8 C4281E78 */ lwc1 $f8, %lo(gas_damage_flag)($at) -/* 08ABDC 7F0560AC C4400000 */ lwc1 $f0, ($v0) -/* 08ABE0 7F0560B0 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 08ABE4 7F0560B4 3C048003 */ lui $a0, %hi(ptr_gas_sound) -/* 08ABE8 7F0560B8 4608003C */ c.lt.s $f0, $f8 -/* 08ABEC 7F0560BC 00000000 */ nop -/* 08ABF0 7F0560C0 4500001A */ bc1f .L7F05612C -/* 08ABF4 7F0560C4 00000000 */ nop -/* 08ABF8 7F0560C8 C42A8378 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) -/* 08ABFC 7F0560CC 3C098003 */ lui $t1, %hi(ptr_gas_sound) -/* 08AC00 7F0560D0 460A0400 */ add.s $f16, $f0, $f10 -/* 08AC04 7F0560D4 E4500000 */ swc1 $f16, ($v0) -/* 08AC08 7F0560D8 8D290AE4 */ lw $t1, %lo(ptr_gas_sound)($t1) -/* 08AC0C 7F0560DC 1520000A */ bnez $t1, .L7F056108 -/* 08AC10 7F0560E0 00000000 */ nop -/* 08AC14 7F0560E4 0FC2FF01 */ jal lvlGetControlsLockedFlag -/* 08AC18 7F0560E8 00000000 */ nop -/* 08AC1C 7F0560EC 14400006 */ bnez $v0, .L7F056108 -/* 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(g_musicSfxBufferPtr)($a0) -/* 08AC30 7F056100 0C002382 */ jal sndPlaySfx -/* 08AC34 7F056104 24050066 */ li $a1, 102 -.L7F056108: -/* 08AC38 7F056108 3C048003 */ lui $a0, %hi(ptr_gas_sound) -/* 08AC3C 7F05610C 8C840AE4 */ lw $a0, %lo(ptr_gas_sound)($a0) -/* 08AC40 7F056110 3C058003 */ lui $a1, %hi(D_80030AD0) -/* 08AC44 7F056114 5080000F */ beql $a0, $zero, .L7F056154 -/* 08AC48 7F056118 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AC4C 7F05611C 0FC14E84 */ jal sub_GAME_7F053A10 -/* 08AC50 7F056120 24A50AD0 */ addiu $a1, %lo(D_80030AD0) # addiu $a1, $a1, 0xad0 -/* 08AC54 7F056124 1000000B */ b .L7F056154 -/* 08AC58 7F056128 8FBF001C */ lw $ra, 0x1c($sp) -.L7F05612C: -/* 08AC5C 7F05612C 8C840AE4 */ lw $a0, %lo(ptr_gas_sound)($a0) -/* 08AC60 7F056130 50800008 */ beql $a0, $zero, .L7F056154 -/* 08AC64 7F056134 8FBF001C */ lw $ra, 0x1c($sp) -/* 08AC68 7F056138 0C00237C */ jal sndGetPlayingState -/* 08AC6C 7F05613C 00000000 */ nop -/* 08AC70 7F056140 10400003 */ beqz $v0, .L7F056150 -/* 08AC74 7F056144 3C048003 */ lui $a0, %hi(ptr_gas_sound) -/* 08AC78 7F056148 0C002408 */ jal sndDeactivate -/* 08AC7C 7F05614C 8C840AE4 */ lw $a0, %lo(ptr_gas_sound)($a0) -.L7F056150: -/* 08AC80 7F056150 8FBF001C */ lw $ra, 0x1c($sp) -.L7F056154: -/* 08AC84 7F056154 27BD0020 */ addiu $sp, $sp, 0x20 -/* 08AC88 7F056158 03E00008 */ jr $ra -/* 08AC8C 7F05615C 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel handle_gas_damage -/* 088C34 7F056244 3C028003 */ lui $v0, %hi(activate_gas_sound_timer) # $v0, 0x8003 -/* 088C38 7F056248 2442C01C */ addiu $v0, %lo(activate_gas_sound_timer) # addiu $v0, $v0, -0x3fe4 -/* 088C3C 7F05624C 8C4E0000 */ lw $t6, ($v0) -/* 088C40 7F056250 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 088C44 7F056254 44808000 */ mtc1 $zero, $f16 -/* 088C48 7F056258 11C00011 */ beqz $t6, .L7F0562A0 -/* 088C4C 7F05625C AFBF001C */ sw $ra, 0x1c($sp) -/* 088C50 7F056260 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) # $v1, 0x8003 -/* 088C54 7F056264 2463C018 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, -0x3fe8 -/* 088C58 7F056268 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 088C5C 7F05626C C4261004 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) -/* 088C60 7F056270 C4640000 */ lwc1 $f4, ($v1) -/* 088C64 7F056274 3C018006 */ lui $at, %hi(gas_damage_flag) # $at, 0x8006 -/* 088C68 7F056278 46062200 */ add.s $f8, $f4, $f6 -/* 088C6C 7F05627C E4680000 */ swc1 $f8, ($v1) -/* 088C70 7F056280 C46A0000 */ lwc1 $f10, ($v1) -/* 088C74 7F056284 C4200DB8 */ lwc1 $f0, %lo(gas_damage_flag)($at) -/* 088C78 7F056288 460A003E */ c.le.s $f0, $f10 -/* 088C7C 7F05628C 00000000 */ nop -/* 088C80 7F056290 45000003 */ bc1f .L7F0562A0 -/* 088C84 7F056294 00000000 */ nop -/* 088C88 7F056298 E4600000 */ swc1 $f0, ($v1) -/* 088C8C 7F05629C AC400000 */ sw $zero, ($v0) -.L7F0562A0: -/* 088C90 7F0562A0 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) # $v1, 0x8003 -/* 088C94 7F0562A4 2463C018 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, -0x3fe8 -/* 088C98 7F0562A8 C4600000 */ lwc1 $f0, ($v1) -/* 088C9C 7F0562AC 3C0F8003 */ lui $t7, %hi(g_PlayerInvincible) # $t7, 0x8003 -/* 088CA0 7F0562B0 4600803C */ c.lt.s $f16, $f0 -/* 088CA4 7F0562B4 00000000 */ nop -/* 088CA8 7F0562B8 4502005E */ bc1fl .L7F056434 -/* 088CAC 7F0562BC 8FBF001C */ lw $ra, 0x1c($sp) -/* 088CB0 7F0562C0 8DEF1A04 */ lw $t7, %lo(g_PlayerInvincible)($t7) -/* 088CB4 7F0562C4 3C018006 */ lui $at, %hi(gas_damage_flag) # $at, 0x8006 -/* 088CB8 7F0562C8 55E0005A */ bnezl $t7, .L7F056434 -/* 088CBC 7F0562CC 8FBF001C */ lw $ra, 0x1c($sp) -/* 088CC0 7F0562D0 C4320DB8 */ lwc1 $f18, %lo(gas_damage_flag)($at) -/* 088CC4 7F0562D4 0FC2E81E */ jal fogSwitchToSolosky2 -/* 088CC8 7F0562D8 46120303 */ div.s $f12, $f0, $f18 -/* 088CCC 7F0562DC 3C188006 */ lui $t8, %hi(gas_cutoff_flag) # $t8, 0x8006 -/* 088CD0 7F0562E0 8F180DBC */ lw $t8, %lo(gas_cutoff_flag)($t8) -/* 088CD4 7F0562E4 3C038003 */ lui $v1, %hi(toxic_gas_sound_timer) # $v1, 0x8003 -/* 088CD8 7F0562E8 2463C018 */ addiu $v1, %lo(toxic_gas_sound_timer) # addiu $v1, $v1, -0x3fe8 -/* 088CDC 7F0562EC 13000050 */ beqz $t8, .L7F056430 -/* 088CE0 7F0562F0 3C048003 */ lui $a0, %hi(D_80030ADC) # $a0, 0x8003 -/* 088CE4 7F0562F4 3C028004 */ lui $v0, %hi(g_GlobalTimer) # $v0, 0x8004 -/* 088CE8 7F0562F8 8C420FFC */ lw $v0, %lo(g_GlobalTimer)($v0) -/* 088CEC 7F0562FC 2484C02C */ addiu $a0, %lo(D_80030ADC) # addiu $a0, $a0, -0x3fd4 -/* 088CF0 7F056300 8C990000 */ lw $t9, ($a0) -/* 088CF4 7F056304 2448FF45 */ addiu $t0, $v0, -0xbb -/* 088CF8 7F056308 0328082A */ slt $at, $t9, $t0 -/* 088CFC 7F05630C 1020001B */ beqz $at, .L7F05637C -/* 088D00 7F056310 3C014416 */ li $at, 0x44160000 # 600.000000 -/* 088D04 7F056314 44812000 */ mtc1 $at, $f4 -/* 088D08 7F056318 C4600000 */ lwc1 $f0, ($v1) -/* 088D0C 7F05631C AC820000 */ sw $v0, ($a0) -/* 088D10 7F056320 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 088D14 7F056324 4600203E */ c.le.s $f4, $f0 -/* 088D18 7F056328 24050062 */ li $a1, 98 -/* 088D1C 7F05632C 00003025 */ move $a2, $zero -/* 088D20 7F056330 45020006 */ bc1fl .L7F05634C -/* 088D24 7F056334 3C0144E1 */ lui $at, 0x44e1 -/* 088D28 7F056338 0C00209A */ jal sndPlaySfx -/* 088D2C 7F05633C 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 088D30 7F056340 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) # $at, 0x8003 -/* 088D34 7F056344 C420C018 */ lwc1 $f0, %lo(toxic_gas_sound_timer)($at) -/* 088D38 7F056348 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 -.L7F05634C: -/* 088D3C 7F05634C 44813000 */ mtc1 $at, $f6 -/* 088D40 7F056350 3C013E00 */ li $at, 0x3E000000 # 0.125000 -/* 088D44 7F056354 4600303E */ c.le.s $f6, $f0 -/* 088D48 7F056358 00000000 */ nop -/* 088D4C 7F05635C 45000007 */ bc1f .L7F05637C -/* 088D50 7F056360 00000000 */ nop -/* 088D54 7F056364 44807000 */ mtc1 $zero, $f14 -/* 088D58 7F056368 44816000 */ mtc1 $at, $f12 -/* 088D5C 7F05636C 2407FFFF */ li $a3, -1 -/* 088D60 7F056370 44067000 */ mfc1 $a2, $f14 -/* 088D64 7F056374 0FC226A1 */ jal record_damage_kills -/* 088D68 7F056378 AFA00010 */ sw $zero, 0x10($sp) -.L7F05637C: -/* 088D6C 7F05637C 3C028003 */ lui $v0, %hi(D_80030AE0) # $v0, 0x8003 -/* 088D70 7F056380 2442C030 */ addiu $v0, %lo(D_80030AE0) # addiu $v0, $v0, -0x3fd0 -/* 088D74 7F056384 3C018006 */ lui $at, %hi(gas_damage_flag) # $at, 0x8006 -/* 088D78 7F056388 C4280DB8 */ lwc1 $f8, %lo(gas_damage_flag)($at) -/* 088D7C 7F05638C C4400000 */ lwc1 $f0, ($v0) -/* 088D80 7F056390 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 088D84 7F056394 3C048003 */ lui $a0, %hi(ptr_gas_sound) -/* 088D88 7F056398 4608003C */ c.lt.s $f0, $f8 -/* 088D8C 7F05639C 00000000 */ nop -/* 088D90 7F0563A0 4500001A */ bc1f .L7F05640C -/* 088D94 7F0563A4 00000000 */ nop -/* 088D98 7F0563A8 C42A1004 */ lwc1 $f10, %lo(g_GlobalTimerDelta)($at) -/* 088D9C 7F0563AC 3C098003 */ lui $t1, %hi(ptr_gas_sound) # $t1, 0x8003 -/* 088DA0 7F0563B0 460A0400 */ add.s $f16, $f0, $f10 -/* 088DA4 7F0563B4 E4500000 */ swc1 $f16, ($v0) -/* 088DA8 7F0563B8 8D29C034 */ lw $t1, %lo(ptr_gas_sound)($t1) -/* 088DAC 7F0563BC 1520000A */ bnez $t1, .L7F0563E8 -/* 088DB0 7F0563C0 00000000 */ nop -/* 088DB4 7F0563C4 0FC2FC1E */ jal lvlGetControlsLockedFlag -/* 088DB8 7F0563C8 00000000 */ nop -/* 088DBC 7F0563CC 14400006 */ bnez $v0, .L7F0563E8 -/* 088DC0 7F0563D0 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 088DC4 7F0563D4 3C068003 */ lui $a2, %hi(ptr_gas_sound) # $a2, 0x8003 -/* 088DC8 7F0563D8 24C6C034 */ addiu $a2, %lo(ptr_gas_sound) # addiu $a2, $a2, -0x3fcc -/* 088DCC 7F0563DC 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 088DD0 7F0563E0 0C00209A */ jal sndPlaySfx -/* 088DD4 7F0563E4 24050066 */ li $a1, 102 -.L7F0563E8: -/* 088DD8 7F0563E8 3C048003 */ lui $a0, %hi(ptr_gas_sound) # $a0, 0x8003 -/* 088DDC 7F0563EC 8C84C034 */ lw $a0, %lo(ptr_gas_sound)($a0) -/* 088DE0 7F0563F0 3C058003 */ lui $a1, %hi(D_80030AD0) # $a1, 0x8003 -/* 088DE4 7F0563F4 5080000F */ beql $a0, $zero, .L7F056434 -/* 088DE8 7F0563F8 8FBF001C */ lw $ra, 0x1c($sp) -/* 088DEC 7F0563FC 0FC14F3C */ jal sub_GAME_7F053A10 -/* 088DF0 7F056400 24A5C020 */ addiu $a1, %lo(D_80030AD0) # addiu $a1, $a1, -0x3fe0 -/* 088DF4 7F056404 1000000B */ b .L7F056434 -/* 088DF8 7F056408 8FBF001C */ lw $ra, 0x1c($sp) -.L7F05640C: -/* 088DFC 7F05640C 8C84C034 */ lw $a0, %lo(ptr_gas_sound)($a0) -/* 088E00 7F056410 50800008 */ beql $a0, $zero, .L7F056434 -/* 088E04 7F056414 8FBF001C */ lw $ra, 0x1c($sp) -/* 088E08 7F056418 0C002094 */ jal sndGetPlayingState -/* 088E0C 7F05641C 00000000 */ nop -/* 088E10 7F056420 10400003 */ beqz $v0, .L7F056430 -/* 088E14 7F056424 3C048003 */ lui $a0, %hi(ptr_gas_sound) # $a0, 0x8003 -/* 088E18 7F056428 0C002120 */ jal sndDeactivate -/* 088E1C 7F05642C 8C84C034 */ lw $a0, %lo(ptr_gas_sound)($a0) -.L7F056430: -/* 088E20 7F056430 8FBF001C */ lw $ra, 0x1c($sp) -.L7F056434: -/* 088E24 7F056434 27BD0020 */ addiu $sp, $sp, 0x20 -/* 088E28 7F056438 03E00008 */ jr $ra -/* 088E2C 7F05643C 00000000 */ nop -) -#endif -#endif - - - - void countdownTimerSetVisible(int clocklockbits, bool unset) diff --git a/src/game/chrobjhandler.h b/src/game/chrobjhandler.h index 6ec9f5d8..bddc9aab 100644 --- a/src/game/chrobjhandler.h +++ b/src/game/chrobjhandler.h @@ -72,7 +72,7 @@ void sub_GAME_7F055B78(PropRecord *arg0, DoorRecord *arg1); Gfx *chrobjRenderProp(PropRecord *arg0, Gfx *arg1, s32 arg2); f32 chrobjFogVisRangeRelated(PropRecord *prop, f32 size); -s32 sub_GAME_7F054A64(PropRecord *, struct view4s32 *); +s32 sub_GAME_7F054A64(PropRecord *prop, bbox2d *bbox); // note: rgba to rgb void sub_GAME_7F040384(rgba_s32 *arg0, s32 arg1, rgba_f32 *arg2); @@ -84,7 +84,7 @@ bool alarmIsActive(); void init_trigger_toxic_gas_effect(coord3d *source); void chrSetWeaponFlag4(ChrRecord *chr, GUNHAND hand); void sub_GAME_7F053B10(DoorRecord *door); -void sub_GAME_7F053598(DoorRecord *door); +void doorActivatePortal(DoorRecord *door); void sub_GAME_7F052B00(DoorRecord *door); s32 sub_GAME_7F0539B8(f32 vol); void monitorSetImageByNum(MonitorRecord *mon, s32 monAnimID); diff --git a/src/game/chrprop.c b/src/game/chrprop.c index 1be8f916..84eaee0b 100644 --- a/src/game/chrprop.c +++ b/src/game/chrprop.c @@ -33,8 +33,10 @@ #include "loadobjectmodel.h" #include "cheat_buttons.h" #include "player.h" +#include "player_2.h" #include "file.h" #include "fog.h" +#include "stan.h" // bss @@ -80,7 +82,7 @@ u32 dword_CODE_bss_80071DF8; //CODE.bss:80071DFC u32 dword_CODE_bss_80071DFC; //CODE.bss:80071E00 -u32 temp_mine_table[30]; +WeaponObjRecord* temp_mine_table[30]; //CODE.bss:80071E78 f32 gas_damage_flag; @@ -169,10 +171,10 @@ s32 bss_80075CFC; //CODE.bss:80075D00 - 80075D24 -stagesetup g_chraiCurrentSetup; //Public Working Setup +stagesetup g_CurrentSetup; //Public Working Setup //CODE.bss:80075D28 -CreditsEntry *dword_CODE_bss_80075D28; +stagesetup *g_ptrStageSetupFile; PropRecord *ptr_obj_pos_list_current_entry = 0; PropRecord *ptr_obj_pos_list_first_entry = 0; @@ -281,62 +283,29 @@ PropRecord *get_ptr_obj_pos_list_current_entry(void) +PropRecord* chrpropAllocate(void) +{ + PropRecord* prop; - - -#ifdef NONMATCHING -//matches except uses a0 instead of a1 -PropRecord* chrpropAllocate(void) { - PropRecord* prop = ptr_obj_pos_list_final_entry; - if (prop) + if (ptr_obj_pos_list_final_entry) { + prop = ptr_obj_pos_list_final_entry; ptr_obj_pos_list_final_entry = prop->prev; + prop->prev = NULL; - prop->next = 0; - prop->parent = 0; - prop->child = 0; + prop->next = NULL; + prop->parent = NULL; + prop->child = NULL; prop->flags = 0; - prop->stan = 0; + prop->stan = NULL; prop->timetoregen = 0; - prop->rooms[0] = -1; + prop->rooms[0] = 0xFF; return prop; } + return NULL; } -#else -GLOBAL_ASM( -.text -glabel chrpropAllocate -/* 06EF60 7F03A430 3C058003 */ lui $a1, %hi(ptr_obj_pos_list_final_entry) -/* 06EF64 7F03A434 24A50AA8 */ addiu $a1, %lo(ptr_obj_pos_list_final_entry) # addiu $a1, $a1, 0xaa8 -/* 06EF68 7F03A438 8CA30000 */ lw $v1, ($a1) -/* 06EF6C 7F03A43C 5060000F */ beql $v1, $zero, .L7F03A47C -/* 06EF70 7F03A440 00001025 */ move $v0, $zero -/* 06EF74 7F03A444 8C6E0024 */ lw $t6, 0x24($v1) -/* 06EF78 7F03A448 240F00FF */ li $t7, 255 -/* 06EF7C 7F03A44C 00601025 */ move $v0, $v1 -/* 06EF80 7F03A450 ACAE0000 */ sw $t6, ($a1) -/* 06EF84 7F03A454 AC600024 */ sw $zero, 0x24($v1) -/* 06EF88 7F03A458 AC600028 */ sw $zero, 0x28($v1) -/* 06EF8C 7F03A45C AC60001C */ sw $zero, 0x1c($v1) -/* 06EF90 7F03A460 AC600020 */ sw $zero, 0x20($v1) -/* 06EF94 7F03A464 A0600001 */ sb $zero, 1($v1) -/* 06EF98 7F03A468 AC600014 */ sw $zero, 0x14($v1) -/* 06EF9C 7F03A46C A4600002 */ sh $zero, 2($v1) -/* 06EFA0 7F03A470 03E00008 */ jr $ra -/* 06EFA4 7F03A474 A06F002C */ sb $t7, 0x2c($v1) - -/* 06EFA8 7F03A478 00001025 */ move $v0, $zero -.L7F03A47C: -/* 06EFAC 7F03A47C 03E00008 */ jr $ra -/* 06EFB0 7F03A480 00000000 */ nop -) -#endif - - - - void chrpropFree(PropRecord *prop) @@ -348,92 +317,44 @@ void chrpropFree(PropRecord *prop) } +void chrpropActivate(PropRecord* prop) +{ + PropRecord* cur; - -#ifdef NONMATCHING -//functionally close, asm out of order -void chrpropActivate(PropRecord* prop) { - PropRecord* cur = ptr_obj_pos_list_current_entry; - if (cur) { - cur->next = prop; - prop->next = 0; - prop->prev = ptr_obj_pos_list_current_entry; - ptr_obj_pos_list_current_entry = prop; - - } - else + cur = ptr_obj_pos_list_current_entry; + if (cur != NULL) { - prop->prev = NULL; - prop->next = 0; - ptr_obj_pos_list_first_entry = prop; + cur->next = prop; + + prop->prev = ptr_obj_pos_list_current_entry; + prop->next = NULL; + ptr_obj_pos_list_current_entry = prop; + return; } + + prop->prev = NULL; + prop->next = NULL; + ptr_obj_pos_list_current_entry = ptr_obj_pos_list_first_entry = prop; } -#else -GLOBAL_ASM( -.text -glabel chrpropActivate -/* 06EFD4 7F03A4A4 3C038003 */ lui $v1, %hi(ptr_obj_pos_list_current_entry) -/* 06EFD8 7F03A4A8 24630AA0 */ addiu $v1, %lo(ptr_obj_pos_list_current_entry) # addiu $v1, $v1, 0xaa0 -/* 06EFDC 7F03A4AC 8C620000 */ lw $v0, ($v1) -/* 06EFE0 7F03A4B0 10400007 */ beqz $v0, .L7F03A4D0 -/* 06EFE4 7F03A4B4 00000000 */ nop -/* 06EFE8 7F03A4B8 AC440028 */ sw $a0, 0x28($v0) -/* 06EFEC 7F03A4BC 8C6E0000 */ lw $t6, ($v1) -/* 06EFF0 7F03A4C0 AC800028 */ sw $zero, 0x28($a0) -/* 06EFF4 7F03A4C4 AC8E0024 */ sw $t6, 0x24($a0) -/* 06EFF8 7F03A4C8 03E00008 */ jr $ra -/* 06EFFC 7F03A4CC AC640000 */ sw $a0, ($v1) - -.L7F03A4D0: -/* 06F000 7F03A4D0 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_first_entry) -/* 06F004 7F03A4D4 AC800024 */ sw $zero, 0x24($a0) -/* 06F008 7F03A4D8 AC800028 */ sw $zero, 0x28($a0) -/* 06F00C 7F03A4DC 24420AA4 */ addiu $v0, %lo(ptr_obj_pos_list_first_entry) # addiu $v0, $v0, 0xaa4 -/* 06F010 7F03A4E0 AC440000 */ sw $a0, ($v0) -/* 06F014 7F03A4E4 AC640000 */ sw $a0, ($v1) -/* 06F018 7F03A4E8 03E00008 */ jr $ra -/* 06F01C 7F03A4EC 00000000 */ nop -) -#endif +void chrpropActivateThisFrame(PropRecord* prop) { + PropRecord* first; - - -#ifdef NONMATCHING -void chrpropActivateThisFrame(void) { - + first = ptr_obj_pos_list_first_entry; + if (first != NULL) { + first->prev = prop; + prop->next = ptr_obj_pos_list_first_entry; + prop->prev = NULL; + ptr_obj_pos_list_first_entry = prop; + return; + } + prop->prev = NULL; + prop->next = NULL; + ptr_obj_pos_list_first_entry = prop; + ptr_obj_pos_list_current_entry = prop; } -#else -GLOBAL_ASM( -.text -glabel chrpropActivateThisFrame -/* 06F020 7F03A4F0 3C038003 */ lui $v1, %hi(ptr_obj_pos_list_first_entry) -/* 06F024 7F03A4F4 24630AA4 */ addiu $v1, %lo(ptr_obj_pos_list_first_entry) # addiu $v1, $v1, 0xaa4 -/* 06F028 7F03A4F8 8C620000 */ lw $v0, ($v1) -/* 06F02C 7F03A4FC 3C018003 */ lui $at, %hi(ptr_obj_pos_list_current_entry) -/* 06F030 7F03A500 50400008 */ beql $v0, $zero, .L7F03A524 -/* 06F034 7F03A504 AC800024 */ sw $zero, 0x24($a0) -/* 06F038 7F03A508 AC440024 */ sw $a0, 0x24($v0) -/* 06F03C 7F03A50C 8C6E0000 */ lw $t6, ($v1) -/* 06F040 7F03A510 AC800024 */ sw $zero, 0x24($a0) -/* 06F044 7F03A514 AC8E0028 */ sw $t6, 0x28($a0) -/* 06F048 7F03A518 03E00008 */ jr $ra -/* 06F04C 7F03A51C AC640000 */ sw $a0, ($v1) - -/* 06F050 7F03A520 AC800024 */ sw $zero, 0x24($a0) -.L7F03A524: -/* 06F054 7F03A524 AC800028 */ sw $zero, 0x28($a0) -/* 06F058 7F03A528 AC640000 */ sw $a0, ($v1) -/* 06F05C 7F03A52C AC240AA0 */ sw $a0, %lo(ptr_obj_pos_list_current_entry)($at) -/* 06F060 7F03A530 03E00008 */ jr $ra -/* 06F064 7F03A534 00000000 */ nop -) -#endif - - - void chrpropDelist(PropRecord *prop) @@ -485,45 +406,30 @@ void chrpropReparent(PropRecord *newChild, PropRecord *host) +void chrpropDetach(PropRecord* prop) { + PropRecord* parent; + PropRecord* prev; + PropRecord* next; - -#ifdef NONMATCHING -void chrpropDetach(void) { - + parent = prop->parent; + if (parent) { + if (prop == parent->child) { + parent->child = prop->prev; + } + prev = prop->prev; + if (prev) { + prev->next = prop->next; + } + next = prop->next; + if (next) { + next->prev = prop->prev; + } + prop->parent = NULL; + prop->prev = NULL; + prop->next = NULL; + } } -#else -GLOBAL_ASM( -.text -glabel chrpropDetach -/* 06F100 7F03A5D0 8C82001C */ lw $v0, 0x1c($a0) -/* 06F104 7F03A5D4 10400013 */ beqz $v0, .L7F03A624 -/* 06F108 7F03A5D8 00000000 */ nop -/* 06F10C 7F03A5DC 8C4E0020 */ lw $t6, 0x20($v0) -/* 06F110 7F03A5E0 548E0004 */ bnel $a0, $t6, .L7F03A5F4 -/* 06F114 7F03A5E4 8C820024 */ lw $v0, 0x24($a0) -/* 06F118 7F03A5E8 8C8F0024 */ lw $t7, 0x24($a0) -/* 06F11C 7F03A5EC AC4F0020 */ sw $t7, 0x20($v0) -/* 06F120 7F03A5F0 8C820024 */ lw $v0, 0x24($a0) -.L7F03A5F4: -/* 06F124 7F03A5F4 50400004 */ beql $v0, $zero, .L7F03A608 -/* 06F128 7F03A5F8 8C820028 */ lw $v0, 0x28($a0) -/* 06F12C 7F03A5FC 8C980028 */ lw $t8, 0x28($a0) -/* 06F130 7F03A600 AC580028 */ sw $t8, 0x28($v0) -/* 06F134 7F03A604 8C820028 */ lw $v0, 0x28($a0) -.L7F03A608: -/* 06F138 7F03A608 50400004 */ beql $v0, $zero, .L7F03A61C -/* 06F13C 7F03A60C AC80001C */ sw $zero, 0x1c($a0) -/* 06F140 7F03A610 8C990024 */ lw $t9, 0x24($a0) -/* 06F144 7F03A614 AC590024 */ sw $t9, 0x24($v0) -/* 06F148 7F03A618 AC80001C */ sw $zero, 0x1c($a0) -.L7F03A61C: -/* 06F14C 7F03A61C AC800024 */ sw $zero, 0x24($a0) -/* 06F150 7F03A620 AC800028 */ sw $zero, 0x28($a0) -.L7F03A624: -/* 06F154 7F03A624 03E00008 */ jr $ra -/* 06F158 7F03A628 00000000 */ nop -) -#endif + @@ -889,8 +795,28 @@ glabel chrpropsRenderPass #ifdef NONMATCHING -void sub_GAME_7F03A97C(void) { +s32 sub_GAME_7F03A97C(s32 index, coord3d* arg1, coord3d* arg2) { + s32 sp34; + s32 sp30; + s32 sp2C; + s32 sp28; + s32 sp24; + s32 sp20; + s_room_info* temp_v0; + temp_v0 = &array_room_info[index]; + if (temp_v0->ptr_unique_collision_points != NULL) { + sp20 = (s32) temp_v0->minbounds.f[0]; + sp24 = (s32) temp_v0->minbounds.f[1]; + sp28 = (s32) temp_v0->minbounds.f[2]; + sp2C = (s32) temp_v0->maxbounds.f[0]; + sp30 = (s32) temp_v0->maxbounds.f[1]; + sp34 = (s32) temp_v0->maxbounds.f[2]; + if (sub_GAME_7F0B6CEC(arg1, arg2, &sp20, &sp2C) != 0) { + return 1; + } + } + return 0; } #else GLOBAL_ASM( @@ -1945,9 +1871,9 @@ glabel chraiDefaultWeaponFireHandler /* 0702E4 7F03B7B4 8E10E86C */ lw $s0, %lo(D_8004E86C)($s0) .L7F03B7B8: /* 0702E8 7F03B7B8 000B60C0 */ sll $t4, $t3, 3 -/* 0702EC 7F03B7BC 3C0D8005 */ lui $t5, %hi(image_entries) +/* 0702EC 7F03B7BC 3C0D8005 */ lui $t5, %hi(g_Textures) /* 0702F0 7F03B7C0 01AC6821 */ addu $t5, $t5, $t4 -/* 0702F4 7F03B7C4 91AD9300 */ lbu $t5, %lo(image_entries)($t5) +/* 0702F4 7F03B7C4 91AD9300 */ lbu $t5, %lo(g_Textures)($t5) /* 0702F8 7F03B7C8 3C108005 */ lui $s0, %hi(D_8004E86C) /* 0702FC 7F03B7CC 31AE000F */ andi $t6, $t5, 0xf /* 070300 7F03B7D0 000E7880 */ sll $t7, $t6, 2 @@ -2023,11 +1949,11 @@ glabel chraiDefaultWeaponFireHandler /* 070400 7F03B8D0 0FC191DD */ jal recall_joy2_hits_edit_flag /* 070404 7F03B8D4 8FA60540 */ lw $a2, 0x540($sp) /* 070408 7F03B8D8 8FAD0540 */ lw $t5, 0x540($sp) -/* 07040C 7F03B8DC 3C028005 */ lui $v0, %hi(image_entries) +/* 07040C 7F03B8DC 3C028005 */ lui $v0, %hi(g_Textures) /* 070410 7F03B8E0 24010005 */ li $at, 5 /* 070414 7F03B8E4 000D70C0 */ sll $t6, $t5, 3 /* 070418 7F03B8E8 004E1021 */ addu $v0, $v0, $t6 -/* 07041C 7F03B8EC 90429300 */ lbu $v0, %lo(image_entries)($v0) +/* 07041C 7F03B8EC 90429300 */ lbu $v0, %lo(g_Textures)($v0) /* 070420 7F03B8F0 304F000F */ andi $t7, $v0, 0xf /* 070424 7F03B8F4 11E10011 */ beq $t7, $at, .L7F03B93C /* 070428 7F03B8F8 24010006 */ li $at, 6 @@ -2900,75 +2826,34 @@ def_7F03C52C: +/* Not quite sure what to name this, it returns true when the given prop isn't within 400 units of any player prop */ +s32 sub_GAME_7F03C574(PropRecord* prop) +{ + PropRecord* player_prop; + coord3d pos_diff; + s32 uninitialized; // needed for match + s32 rc; + s32 i; + s32 player_count; + player_count = getPlayerCount(); + rc = 1; -#ifdef NONMATCHING -void sub_GAME_7F03C574(void) { - + for (i = 0; i < player_count; i++) + { + player_prop = g_playerPointers[i]->prop; + pos_diff.x = player_prop->pos.x - prop->pos.x; + pos_diff.y = player_prop->pos.y - prop->pos.y; + pos_diff.z = player_prop->pos.z - prop->pos.z; + if (sqrtf((pos_diff.x * pos_diff.x) + (pos_diff.y * pos_diff.y) + (pos_diff.z * pos_diff.z)) < 400.0f) + { + rc = 0; + break; + } + } + + return rc; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03C574 -/* 0710A4 7F03C574 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0710A8 7F03C578 AFBF002C */ sw $ra, 0x2c($sp) -/* 0710AC 7F03C57C AFB20024 */ sw $s2, 0x24($sp) -/* 0710B0 7F03C580 00809025 */ move $s2, $a0 -/* 0710B4 7F03C584 AFB30028 */ sw $s3, 0x28($sp) -/* 0710B8 7F03C588 AFB10020 */ sw $s1, 0x20($sp) -/* 0710BC 7F03C58C AFB0001C */ sw $s0, 0x1c($sp) -/* 0710C0 7F03C590 0FC26919 */ jal getPlayerCount -/* 0710C4 7F03C594 F7B40010 */ sdc1 $f20, 0x10($sp) -/* 0710C8 7F03C598 240E0001 */ li $t6, 1 -/* 0710CC 7F03C59C 00409825 */ move $s3, $v0 -/* 0710D0 7F03C5A0 AFAE0030 */ sw $t6, 0x30($sp) -/* 0710D4 7F03C5A4 1840001F */ blez $v0, .L7F03C624 -/* 0710D8 7F03C5A8 00008025 */ move $s0, $zero -/* 0710DC 7F03C5AC 3C0143C8 */ li $at, 0x43C80000 # 400.000000 -/* 0710E0 7F03C5B0 3C118008 */ lui $s1, %hi(g_playerPointers) -/* 0710E4 7F03C5B4 4481A000 */ mtc1 $at, $f20 -/* 0710E8 7F03C5B8 26319EE0 */ addiu $s1, %lo(g_playerPointers) # addiu $s1, $s1, -0x6120 -.L7F03C5BC: -/* 0710EC 7F03C5BC 8E2F0000 */ lw $t7, ($s1) -/* 0710F0 7F03C5C0 C6460008 */ lwc1 $f6, 8($s2) -/* 0710F4 7F03C5C4 C64A000C */ lwc1 $f10, 0xc($s2) -/* 0710F8 7F03C5C8 8DE200A8 */ lw $v0, 0xa8($t7) -/* 0710FC 7F03C5CC C6520010 */ lwc1 $f18, 0x10($s2) -/* 071100 7F03C5D0 C4440008 */ lwc1 $f4, 8($v0) -/* 071104 7F03C5D4 C448000C */ lwc1 $f8, 0xc($v0) -/* 071108 7F03C5D8 C4500010 */ lwc1 $f16, 0x10($v0) -/* 07110C 7F03C5DC 46062001 */ sub.s $f0, $f4, $f6 -/* 071110 7F03C5E0 460A4081 */ sub.s $f2, $f8, $f10 -/* 071114 7F03C5E4 46000102 */ mul.s $f4, $f0, $f0 -/* 071118 7F03C5E8 46128381 */ sub.s $f14, $f16, $f18 -/* 07111C 7F03C5EC 46021182 */ mul.s $f6, $f2, $f2 -/* 071120 7F03C5F0 46062200 */ add.s $f8, $f4, $f6 -/* 071124 7F03C5F4 460E7282 */ mul.s $f10, $f14, $f14 -/* 071128 7F03C5F8 0C007DF8 */ jal sqrtf -/* 07112C 7F03C5FC 460A4300 */ add.s $f12, $f8, $f10 -/* 071130 7F03C600 4614003C */ c.lt.s $f0, $f20 -/* 071134 7F03C604 26100001 */ addiu $s0, $s0, 1 -/* 071138 7F03C608 0213082A */ slt $at, $s0, $s3 -/* 07113C 7F03C60C 45000003 */ bc1f .L7F03C61C -/* 071140 7F03C610 00000000 */ nop -/* 071144 7F03C614 10000003 */ b .L7F03C624 -/* 071148 7F03C618 AFA00030 */ sw $zero, 0x30($sp) -.L7F03C61C: -/* 07114C 7F03C61C 1420FFE7 */ bnez $at, .L7F03C5BC -/* 071150 7F03C620 26310004 */ addiu $s1, $s1, 4 -.L7F03C624: -/* 071154 7F03C624 8FBF002C */ lw $ra, 0x2c($sp) -/* 071158 7F03C628 8FA20030 */ lw $v0, 0x30($sp) -/* 07115C 7F03C62C D7B40010 */ ldc1 $f20, 0x10($sp) -/* 071160 7F03C630 8FB0001C */ lw $s0, 0x1c($sp) -/* 071164 7F03C634 8FB10020 */ lw $s1, 0x20($sp) -/* 071168 7F03C638 8FB20024 */ lw $s2, 0x24($sp) -/* 07116C 7F03C63C 8FB30028 */ lw $s3, 0x28($sp) -/* 071170 7F03C640 03E00008 */ jr $ra -/* 071174 7F03C644 27BD0048 */ addiu $sp, $sp, 0x48 -) -#endif - @@ -3992,430 +3877,143 @@ def_7F03D13C: #endif +f32 sub_GAME_7F03D188(PropRecord *prop, coord3d *arg1, f32 *arg2, f32 *arg3, f32 *arg4) +{ + f32 spa0[2]; + coord3d sp94; + f32 sp8c[2]; + f32 sp84[2]; + f32 sp7c[2]; + f32 sp74[2]; + f32 sp70; + f32 sp6c; + f32 top; + f32 bottom; + f32 left; + f32 right; + f32 result; + bool sp4c; + f32 sp48; + PropRecord *playerprop; + StandTile* stan; + f32 ducking_height_related; + top = getPlayer_c_screentop() + getPlayer_c_screenheight() * 0.175f; + bottom = getPlayer_c_screentop() + getPlayer_c_screenheight() * 0.825f; + left = getPlayer_c_screenleft() + getPlayer_c_screenwidth() * 0.25f; + right = getPlayer_c_screenleft() + getPlayer_c_screenwidth() * 0.75f; + result = -2; -#ifdef NONMATCHING -void sub_GAME_7F03D188(void) { + sub_GAME_7F077FF4(arg1, (coord3d*)spa0); + sp94.x = arg2[0]; + sp94.y = arg1->y; + sp94.z = arg1->z; + sub_GAME_7F077FF4(&sp94, (coord3d*)sp8c); + sp94.x = arg2[1]; + sp94.y = arg1->y; + sp94.z = arg1->z; + sub_GAME_7F077FF4(&sp94, (coord3d*)sp84); + sp94.x = arg1->x; + sp94.y = arg3[1]; + sp94.z = arg1->z; + sub_GAME_7F077FF4(&sp94, (coord3d*)sp7c); + sp94.x = arg1->x; + sp94.y = arg3[0]; + sp94.z = arg1->z; + sub_GAME_7F077FF4(&sp94, (coord3d*)sp74); + if (sp74[1] >= top && bottom >= sp7c[1]) + { + sp4c = FALSE; + get_bullet_angle(&sp70, &sp6c); + sp8c[0] = floorFloat(sp8c[0]); + sp84[0] = ceilFloat(sp84[0]); + + if (redirect_get_BONDdata_autoaim_x()) + { + if (sp8c[0] <= right && left <= sp84[0]) + { + sp48 = (sp84[0] - sp8c[0]) * 1.5f; + + if (getPlayerCount() == 1) + { + sp48 = sp48 * difficulty; + } + + sp4c = getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth() >= (sp8c[0] + sp84[0]) * 0.5f - sp48 + && getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth() <= (sp8c[0] + sp84[0]) * 0.5f + sp48 + && left <= spa0[0] + && right >= spa0[0]; + } + } + else + { + sp4c = sp8c[0] <= sp70 && sp70 <= sp84[0]; + } + + if (sp4c) + { + playerprop = get_curplayer_positiondata(); + stan = playerprop->stan; + ducking_height_related = bondviewGetPlayerDuckingHeightRelated(g_CurrentPlayer); + bondviewUpdateGuardTankFlagsRelated(playerprop, FALSE); + + if ((sub_GAME_7F0B0E24(&stan, playerprop->pos.f[0], playerprop->pos.f[2], prop->pos.f[0], prop->pos.f[2], 0x13, ducking_height_related, ducking_height_related, 0.0f, 1.0f) != 0)) + { + if (stan == prop->stan) + { + f32 value = spa0[1]; + + if (value < top) + { + value = top; + } + else if (value > bottom) + { + value = bottom; + } + + arg4[1] = value; + + if (redirect_get_BONDdata_autoaim_x()) + { + f32 value = spa0[0]; + + if (value < left) + { + value = left; + } + else if (value > right) + { + value = right; + } + + arg4[0] = value; + } + + if (getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth() >= sp8c[0] + && getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth() <= sp84[0]) + { + result = 1; + } + else if (getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth() >= sp8c[0]) + { + result = 1 - ((getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth()) - sp84[0]) / sp48; + } + else + { + result = 1 - (sp8c[0] - (getPlayer_c_screenleft() + 0.5f * getPlayer_c_screenwidth())) / sp48; + } + } + } + + bondviewUpdateGuardTankFlagsRelated(playerprop, TRUE); + } + } + + return result; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800529C0 -.word 0x3e333333 /*0.175*/ -glabel D_800529C4 -.word 0x3f533333 /*0.82499999*/ -.text -glabel sub_GAME_7F03D188 -/* 071CB8 7F03D188 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 071CBC 7F03D18C AFBF002C */ sw $ra, 0x2c($sp) -/* 071CC0 7F03D190 AFA400B0 */ sw $a0, 0xb0($sp) -/* 071CC4 7F03D194 AFA500B4 */ sw $a1, 0xb4($sp) -/* 071CC8 7F03D198 AFA600B8 */ sw $a2, 0xb8($sp) -/* 071CCC 7F03D19C 0FC1E135 */ jal getPlayer_c_screentop -/* 071CD0 7F03D1A0 AFA700BC */ sw $a3, 0xbc($sp) -/* 071CD4 7F03D1A4 0FC1E12D */ jal getPlayer_c_screenheight -/* 071CD8 7F03D1A8 E7A00040 */ swc1 $f0, 0x40($sp) -/* 071CDC 7F03D1AC 3C018005 */ lui $at, %hi(D_800529C0) -/* 071CE0 7F03D1B0 C42429C0 */ lwc1 $f4, %lo(D_800529C0)($at) -/* 071CE4 7F03D1B4 C7A80040 */ lwc1 $f8, 0x40($sp) -/* 071CE8 7F03D1B8 46040182 */ mul.s $f6, $f0, $f4 -/* 071CEC 7F03D1BC 46083280 */ add.s $f10, $f6, $f8 -/* 071CF0 7F03D1C0 0FC1E135 */ jal getPlayer_c_screentop -/* 071CF4 7F03D1C4 E7AA0070 */ swc1 $f10, 0x70($sp) -/* 071CF8 7F03D1C8 0FC1E12D */ jal getPlayer_c_screenheight -/* 071CFC 7F03D1CC E7A00040 */ swc1 $f0, 0x40($sp) -/* 071D00 7F03D1D0 3C018005 */ lui $at, %hi(D_800529C4) -/* 071D04 7F03D1D4 C43029C4 */ lwc1 $f16, %lo(D_800529C4)($at) -/* 071D08 7F03D1D8 C7A40040 */ lwc1 $f4, 0x40($sp) -/* 071D0C 7F03D1DC 46100482 */ mul.s $f18, $f0, $f16 -/* 071D10 7F03D1E0 46049180 */ add.s $f6, $f18, $f4 -/* 071D14 7F03D1E4 0FC1E131 */ jal getPlayer_c_screenleft -/* 071D18 7F03D1E8 E7A6006C */ swc1 $f6, 0x6c($sp) -/* 071D1C 7F03D1EC 0FC1E129 */ jal getPlayer_c_screenwidth -/* 071D20 7F03D1F0 E7A00040 */ swc1 $f0, 0x40($sp) -/* 071D24 7F03D1F4 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 071D28 7F03D1F8 44814000 */ mtc1 $at, $f8 -/* 071D2C 7F03D1FC C7B00040 */ lwc1 $f16, 0x40($sp) -/* 071D30 7F03D200 46080282 */ mul.s $f10, $f0, $f8 -/* 071D34 7F03D204 46105480 */ add.s $f18, $f10, $f16 -/* 071D38 7F03D208 0FC1E131 */ jal getPlayer_c_screenleft -/* 071D3C 7F03D20C E7B20068 */ swc1 $f18, 0x68($sp) -/* 071D40 7F03D210 0FC1E129 */ jal getPlayer_c_screenwidth -/* 071D44 7F03D214 E7A00040 */ swc1 $f0, 0x40($sp) -/* 071D48 7F03D218 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 071D4C 7F03D21C 44812000 */ mtc1 $at, $f4 -/* 071D50 7F03D220 C7A80040 */ lwc1 $f8, 0x40($sp) -/* 071D54 7F03D224 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 071D58 7F03D228 46040182 */ mul.s $f6, $f0, $f4 -/* 071D5C 7F03D22C 44818000 */ mtc1 $at, $f16 -/* 071D60 7F03D230 8FA400B4 */ lw $a0, 0xb4($sp) -/* 071D64 7F03D234 27A500A8 */ addiu $a1, $sp, 0xa8 -/* 071D68 7F03D238 E7B00060 */ swc1 $f16, 0x60($sp) -/* 071D6C 7F03D23C 46083280 */ add.s $f10, $f6, $f8 -/* 071D70 7F03D240 0FC1DFFD */ jal sub_GAME_7F077FF4 -/* 071D74 7F03D244 E7AA0064 */ swc1 $f10, 0x64($sp) -/* 071D78 7F03D248 8FAE00B8 */ lw $t6, 0xb8($sp) -/* 071D7C 7F03D24C 8FA200B4 */ lw $v0, 0xb4($sp) -/* 071D80 7F03D250 27A4009C */ addiu $a0, $sp, 0x9c -/* 071D84 7F03D254 C5D20000 */ lwc1 $f18, ($t6) -/* 071D88 7F03D258 27A50094 */ addiu $a1, $sp, 0x94 -/* 071D8C 7F03D25C E7B2009C */ swc1 $f18, 0x9c($sp) -/* 071D90 7F03D260 C4440004 */ lwc1 $f4, 4($v0) -/* 071D94 7F03D264 E7A400A0 */ swc1 $f4, 0xa0($sp) -/* 071D98 7F03D268 C4460008 */ lwc1 $f6, 8($v0) -/* 071D9C 7F03D26C 0FC1DFFD */ jal sub_GAME_7F077FF4 -/* 071DA0 7F03D270 E7A600A4 */ swc1 $f6, 0xa4($sp) -/* 071DA4 7F03D274 8FAF00B8 */ lw $t7, 0xb8($sp) -/* 071DA8 7F03D278 8FA200B4 */ lw $v0, 0xb4($sp) -/* 071DAC 7F03D27C 27A4009C */ addiu $a0, $sp, 0x9c -/* 071DB0 7F03D280 C5E80004 */ lwc1 $f8, 4($t7) -/* 071DB4 7F03D284 27A5008C */ addiu $a1, $sp, 0x8c -/* 071DB8 7F03D288 E7A8009C */ swc1 $f8, 0x9c($sp) -/* 071DBC 7F03D28C C44A0004 */ lwc1 $f10, 4($v0) -/* 071DC0 7F03D290 E7AA00A0 */ swc1 $f10, 0xa0($sp) -/* 071DC4 7F03D294 C4500008 */ lwc1 $f16, 8($v0) -/* 071DC8 7F03D298 0FC1DFFD */ jal sub_GAME_7F077FF4 -/* 071DCC 7F03D29C E7B000A4 */ swc1 $f16, 0xa4($sp) -/* 071DD0 7F03D2A0 8FA200B4 */ lw $v0, 0xb4($sp) -/* 071DD4 7F03D2A4 8FB800BC */ lw $t8, 0xbc($sp) -/* 071DD8 7F03D2A8 27A4009C */ addiu $a0, $sp, 0x9c -/* 071DDC 7F03D2AC C4520000 */ lwc1 $f18, ($v0) -/* 071DE0 7F03D2B0 27A50084 */ addiu $a1, $sp, 0x84 -/* 071DE4 7F03D2B4 E7B2009C */ swc1 $f18, 0x9c($sp) -/* 071DE8 7F03D2B8 C7040004 */ lwc1 $f4, 4($t8) -/* 071DEC 7F03D2BC E7A400A0 */ swc1 $f4, 0xa0($sp) -/* 071DF0 7F03D2C0 C4460008 */ lwc1 $f6, 8($v0) -/* 071DF4 7F03D2C4 0FC1DFFD */ jal sub_GAME_7F077FF4 -/* 071DF8 7F03D2C8 E7A600A4 */ swc1 $f6, 0xa4($sp) -/* 071DFC 7F03D2CC 8FB900B4 */ lw $t9, 0xb4($sp) -/* 071E00 7F03D2D0 8FA800BC */ lw $t0, 0xbc($sp) -/* 071E04 7F03D2D4 27A4009C */ addiu $a0, $sp, 0x9c -/* 071E08 7F03D2D8 C7280000 */ lwc1 $f8, ($t9) -/* 071E0C 7F03D2DC 27A5007C */ addiu $a1, $sp, 0x7c -/* 071E10 7F03D2E0 E7A8009C */ swc1 $f8, 0x9c($sp) -/* 071E14 7F03D2E4 C50A0000 */ lwc1 $f10, ($t0) -/* 071E18 7F03D2E8 E7AA00A0 */ swc1 $f10, 0xa0($sp) -/* 071E1C 7F03D2EC C7300008 */ lwc1 $f16, 8($t9) -/* 071E20 7F03D2F0 0FC1DFFD */ jal sub_GAME_7F077FF4 -/* 071E24 7F03D2F4 E7B000A4 */ swc1 $f16, 0xa4($sp) -/* 071E28 7F03D2F8 C7B20080 */ lwc1 $f18, 0x80($sp) -/* 071E2C 7F03D2FC C7A40070 */ lwc1 $f4, 0x70($sp) -/* 071E30 7F03D300 C7A6006C */ lwc1 $f6, 0x6c($sp) -/* 071E34 7F03D304 C7A80088 */ lwc1 $f8, 0x88($sp) -/* 071E38 7F03D308 4612203E */ c.le.s $f4, $f18 -/* 071E3C 7F03D30C 00000000 */ nop -/* 071E40 7F03D310 4502011A */ bc1fl .L7F03D77C -/* 071E44 7F03D314 8FBF002C */ lw $ra, 0x2c($sp) -/* 071E48 7F03D318 4606403E */ c.le.s $f8, $f6 -/* 071E4C 7F03D31C 27A40078 */ addiu $a0, $sp, 0x78 -/* 071E50 7F03D320 27A50074 */ addiu $a1, $sp, 0x74 -/* 071E54 7F03D324 45020115 */ bc1fl .L7F03D77C -/* 071E58 7F03D328 8FBF002C */ lw $ra, 0x2c($sp) -/* 071E5C 7F03D32C 0FC1A002 */ jal get_bullet_angle -/* 071E60 7F03D330 AFA0005C */ sw $zero, 0x5c($sp) -/* 071E64 7F03D334 0FC170D8 */ jal floorFloat -/* 071E68 7F03D338 C7AC0094 */ lwc1 $f12, 0x94($sp) -/* 071E6C 7F03D33C E7A00094 */ swc1 $f0, 0x94($sp) -/* 071E70 7F03D340 0FC17110 */ jal ceilFloat -/* 071E74 7F03D344 C7AC008C */ lwc1 $f12, 0x8c($sp) -/* 071E78 7F03D348 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x -/* 071E7C 7F03D34C E7A0008C */ swc1 $f0, 0x8c($sp) -/* 071E80 7F03D350 1040005C */ beqz $v0, .L7F03D4C4 -/* 071E84 7F03D354 C7A00078 */ lwc1 $f0, 0x78($sp) -/* 071E88 7F03D358 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* 071E8C 7F03D35C C7B00094 */ lwc1 $f16, 0x94($sp) -/* 071E90 7F03D360 C7B2008C */ lwc1 $f18, 0x8c($sp) -/* 071E94 7F03D364 C7A40068 */ lwc1 $f4, 0x68($sp) -/* 071E98 7F03D368 460A803E */ c.le.s $f16, $f10 -/* 071E9C 7F03D36C 00000000 */ nop -/* 071EA0 7F03D370 45020065 */ bc1fl .L7F03D508 -/* 071EA4 7F03D374 8FA9005C */ lw $t1, 0x5c($sp) -/* 071EA8 7F03D378 4612203E */ c.le.s $f4, $f18 -/* 071EAC 7F03D37C 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 071EB0 7F03D380 45020061 */ bc1fl .L7F03D508 -/* 071EB4 7F03D384 8FA9005C */ lw $t1, 0x5c($sp) -/* 071EB8 7F03D388 46109181 */ sub.s $f6, $f18, $f16 -/* 071EBC 7F03D38C 44814000 */ mtc1 $at, $f8 -/* 071EC0 7F03D390 00000000 */ nop -/* 071EC4 7F03D394 46083282 */ mul.s $f10, $f6, $f8 -/* 071EC8 7F03D398 0FC26919 */ jal getPlayerCount -/* 071ECC 7F03D39C E7AA0058 */ swc1 $f10, 0x58($sp) -/* 071ED0 7F03D3A0 24010001 */ li $at, 1 -/* 071ED4 7F03D3A4 14410005 */ bne $v0, $at, .L7F03D3BC -/* 071ED8 7F03D3A8 C7A40058 */ lwc1 $f4, 0x58($sp) -/* 071EDC 7F03D3AC 3C018003 */ lui $at, %hi(difficulty) -/* 071EE0 7F03D3B0 C4320AAC */ lwc1 $f18, %lo(difficulty)($at) -/* 071EE4 7F03D3B4 46122402 */ mul.s $f16, $f4, $f18 -/* 071EE8 7F03D3B8 E7B00058 */ swc1 $f16, 0x58($sp) -.L7F03D3BC: -/* 071EEC 7F03D3BC 0FC1E129 */ jal getPlayer_c_screenwidth -/* 071EF0 7F03D3C0 00000000 */ nop -/* 071EF4 7F03D3C4 0FC1E131 */ jal getPlayer_c_screenleft -/* 071EF8 7F03D3C8 E7A00038 */ swc1 $f0, 0x38($sp) -/* 071EFC 7F03D3CC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 071F00 7F03D3D0 44813000 */ mtc1 $at, $f6 -/* 071F04 7F03D3D4 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 071F08 7F03D3D8 C7B2008C */ lwc1 $f18, 0x8c($sp) -/* 071F0C 7F03D3DC C7B00094 */ lwc1 $f16, 0x94($sp) -/* 071F10 7F03D3E0 46083282 */ mul.s $f10, $f6, $f8 -/* 071F14 7F03D3E4 44814000 */ mtc1 $at, $f8 -/* 071F18 7F03D3E8 46109180 */ add.s $f6, $f18, $f16 -/* 071F1C 7F03D3EC C7B20058 */ lwc1 $f18, 0x58($sp) -/* 071F20 7F03D3F0 00001025 */ move $v0, $zero -/* 071F24 7F03D3F4 460A0100 */ add.s $f4, $f0, $f10 -/* 071F28 7F03D3F8 46083282 */ mul.s $f10, $f6, $f8 -/* 071F2C 7F03D3FC 46125401 */ sub.s $f16, $f10, $f18 -/* 071F30 7F03D400 4604803E */ c.le.s $f16, $f4 -/* 071F34 7F03D404 00000000 */ nop -/* 071F38 7F03D408 45000002 */ bc1f .L7F03D414 -/* 071F3C 7F03D40C 00000000 */ nop -/* 071F40 7F03D410 24020001 */ li $v0, 1 -.L7F03D414: -/* 071F44 7F03D414 10400029 */ beqz $v0, .L7F03D4BC -/* 071F48 7F03D418 00000000 */ nop -/* 071F4C 7F03D41C 0FC1E129 */ jal getPlayer_c_screenwidth -/* 071F50 7F03D420 00000000 */ nop -/* 071F54 7F03D424 0FC1E131 */ jal getPlayer_c_screenleft -/* 071F58 7F03D428 E7A00030 */ swc1 $f0, 0x30($sp) -/* 071F5C 7F03D42C C7A6008C */ lwc1 $f6, 0x8c($sp) -/* 071F60 7F03D430 C7A80094 */ lwc1 $f8, 0x94($sp) -/* 071F64 7F03D434 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 071F68 7F03D438 44816000 */ mtc1 $at, $f12 -/* 071F6C 7F03D43C 46083280 */ add.s $f10, $f6, $f8 -/* 071F70 7F03D440 C7A60030 */ lwc1 $f6, 0x30($sp) -/* 071F74 7F03D444 C7A40058 */ lwc1 $f4, 0x58($sp) -/* 071F78 7F03D448 00001025 */ move $v0, $zero -/* 071F7C 7F03D44C 460C5482 */ mul.s $f18, $f10, $f12 -/* 071F80 7F03D450 00000000 */ nop -/* 071F84 7F03D454 46066202 */ mul.s $f8, $f12, $f6 -/* 071F88 7F03D458 46049400 */ add.s $f16, $f18, $f4 -/* 071F8C 7F03D45C C7B20068 */ lwc1 $f18, 0x68($sp) -/* 071F90 7F03D460 46080280 */ add.s $f10, $f0, $f8 -/* 071F94 7F03D464 4610503E */ c.le.s $f10, $f16 -/* 071F98 7F03D468 00000000 */ nop -/* 071F9C 7F03D46C 45000002 */ bc1f .L7F03D478 -/* 071FA0 7F03D470 00000000 */ nop -/* 071FA4 7F03D474 24020001 */ li $v0, 1 -.L7F03D478: -/* 071FA8 7F03D478 10400010 */ beqz $v0, .L7F03D4BC -/* 071FAC 7F03D47C 00000000 */ nop -/* 071FB0 7F03D480 C7A200A8 */ lwc1 $f2, 0xa8($sp) -/* 071FB4 7F03D484 00001025 */ move $v0, $zero -/* 071FB8 7F03D488 C7A40064 */ lwc1 $f4, 0x64($sp) -/* 071FBC 7F03D48C 4602903E */ c.le.s $f18, $f2 -/* 071FC0 7F03D490 00000000 */ nop -/* 071FC4 7F03D494 45000002 */ bc1f .L7F03D4A0 -/* 071FC8 7F03D498 00000000 */ nop -/* 071FCC 7F03D49C 24020001 */ li $v0, 1 -.L7F03D4A0: -/* 071FD0 7F03D4A0 10400006 */ beqz $v0, .L7F03D4BC -/* 071FD4 7F03D4A4 00000000 */ nop -/* 071FD8 7F03D4A8 4604103E */ c.le.s $f2, $f4 -/* 071FDC 7F03D4AC 00001025 */ move $v0, $zero -/* 071FE0 7F03D4B0 45000002 */ bc1f .L7F03D4BC -/* 071FE4 7F03D4B4 00000000 */ nop -/* 071FE8 7F03D4B8 24020001 */ li $v0, 1 -.L7F03D4BC: -/* 071FEC 7F03D4BC 10000011 */ b .L7F03D504 -/* 071FF0 7F03D4C0 AFA2005C */ sw $v0, 0x5c($sp) -.L7F03D4C4: -/* 071FF4 7F03D4C4 C7A60094 */ lwc1 $f6, 0x94($sp) -/* 071FF8 7F03D4C8 00001025 */ move $v0, $zero -/* 071FFC 7F03D4CC C7A8008C */ lwc1 $f8, 0x8c($sp) -/* 072000 7F03D4D0 4600303E */ c.le.s $f6, $f0 -/* 072004 7F03D4D4 00000000 */ nop -/* 072008 7F03D4D8 45000002 */ bc1f .L7F03D4E4 -/* 07200C 7F03D4DC 00000000 */ nop -/* 072010 7F03D4E0 24020001 */ li $v0, 1 -.L7F03D4E4: -/* 072014 7F03D4E4 50400007 */ beql $v0, $zero, .L7F03D504 -/* 072018 7F03D4E8 AFA2005C */ sw $v0, 0x5c($sp) -/* 07201C 7F03D4EC 4608003E */ c.le.s $f0, $f8 -/* 072020 7F03D4F0 00001025 */ move $v0, $zero -/* 072024 7F03D4F4 45020003 */ bc1fl .L7F03D504 -/* 072028 7F03D4F8 AFA2005C */ sw $v0, 0x5c($sp) -/* 07202C 7F03D4FC 24020001 */ li $v0, 1 -/* 072030 7F03D500 AFA2005C */ sw $v0, 0x5c($sp) -.L7F03D504: -/* 072034 7F03D504 8FA9005C */ lw $t1, 0x5c($sp) -.L7F03D508: -/* 072038 7F03D508 5120009C */ beql $t1, $zero, .L7F03D77C -/* 07203C 7F03D50C 8FBF002C */ lw $ra, 0x2c($sp) -/* 072040 7F03D510 0FC225E6 */ jal get_curplayer_positiondata -/* 072044 7F03D514 00000000 */ nop -/* 072048 7F03D518 AFA20054 */ sw $v0, 0x54($sp) -/* 07204C 7F03D51C 8C4A0014 */ lw $t2, 0x14($v0) -/* 072050 7F03D520 3C048008 */ lui $a0, %hi(g_CurrentPlayer) -/* 072054 7F03D524 8C84A0B0 */ lw $a0, %lo(g_CurrentPlayer)($a0) -/* 072058 7F03D528 0FC225E0 */ jal bondviewGetPlayerDuckingHeightRelated -/* 07205C 7F03D52C AFAA0050 */ sw $t2, 0x50($sp) -/* 072060 7F03D530 8FA40054 */ lw $a0, 0x54($sp) -/* 072064 7F03D534 00002825 */ move $a1, $zero -/* 072068 7F03D538 0FC2280F */ jal bondviewUpdateGuardTankFlagsRelated -/* 07206C 7F03D53C E7A0004C */ swc1 $f0, 0x4c($sp) -/* 072070 7F03D540 8FA20054 */ lw $v0, 0x54($sp) -/* 072074 7F03D544 8FA300B0 */ lw $v1, 0xb0($sp) -/* 072078 7F03D548 C7A2004C */ lwc1 $f2, 0x4c($sp) -/* 07207C 7F03D54C 8C450008 */ lw $a1, 8($v0) -/* 072080 7F03D550 C4700010 */ lwc1 $f16, 0x10($v1) -/* 072084 7F03D554 8C460010 */ lw $a2, 0x10($v0) -/* 072088 7F03D558 8C670008 */ lw $a3, 8($v1) -/* 07208C 7F03D55C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 072090 7F03D560 44819000 */ mtc1 $at, $f18 -/* 072094 7F03D564 44805000 */ mtc1 $zero, $f10 -/* 072098 7F03D568 240B0013 */ li $t3, 19 -/* 07209C 7F03D56C AFAB0014 */ sw $t3, 0x14($sp) -/* 0720A0 7F03D570 27A40050 */ addiu $a0, $sp, 0x50 -/* 0720A4 7F03D574 E7A2001C */ swc1 $f2, 0x1c($sp) -/* 0720A8 7F03D578 E7A20018 */ swc1 $f2, 0x18($sp) -/* 0720AC 7F03D57C E7B00010 */ swc1 $f16, 0x10($sp) -/* 0720B0 7F03D580 E7B20024 */ swc1 $f18, 0x24($sp) -/* 0720B4 7F03D584 0FC2C389 */ jal sub_GAME_7F0B0E24 -/* 0720B8 7F03D588 E7AA0020 */ swc1 $f10, 0x20($sp) -/* 0720BC 7F03D58C 10400077 */ beqz $v0, .L7F03D76C -/* 0720C0 7F03D590 8FAD00B0 */ lw $t5, 0xb0($sp) -/* 0720C4 7F03D594 8FAC0050 */ lw $t4, 0x50($sp) -/* 0720C8 7F03D598 8DAE0014 */ lw $t6, 0x14($t5) -/* 0720CC 7F03D59C C7A200AC */ lwc1 $f2, 0xac($sp) -/* 0720D0 7F03D5A0 C7A40070 */ lwc1 $f4, 0x70($sp) -/* 0720D4 7F03D5A4 158E0071 */ bne $t4, $t6, .L7F03D76C -/* 0720D8 7F03D5A8 8FAF00C0 */ lw $t7, 0xc0($sp) -/* 0720DC 7F03D5AC 4604103C */ c.lt.s $f2, $f4 -/* 0720E0 7F03D5B0 46001006 */ mov.s $f0, $f2 -/* 0720E4 7F03D5B4 C7A6006C */ lwc1 $f6, 0x6c($sp) -/* 0720E8 7F03D5B8 45020004 */ bc1fl .L7F03D5CC -/* 0720EC 7F03D5BC 4602303C */ c.lt.s $f6, $f2 -/* 0720F0 7F03D5C0 10000006 */ b .L7F03D5DC -/* 0720F4 7F03D5C4 46002006 */ mov.s $f0, $f4 -/* 0720F8 7F03D5C8 4602303C */ c.lt.s $f6, $f2 -.L7F03D5CC: -/* 0720FC 7F03D5CC 00000000 */ nop -/* 072100 7F03D5D0 45000002 */ bc1f .L7F03D5DC -/* 072104 7F03D5D4 00000000 */ nop -/* 072108 7F03D5D8 46003006 */ mov.s $f0, $f6 -.L7F03D5DC: -/* 07210C 7F03D5DC 0FC1F1AA */ jal redirect_get_BONDdata_autoaim_x -/* 072110 7F03D5E0 E5E00004 */ swc1 $f0, 4($t7) -/* 072114 7F03D5E4 10400010 */ beqz $v0, .L7F03D628 -/* 072118 7F03D5E8 C7A200A8 */ lwc1 $f2, 0xa8($sp) -/* 07211C 7F03D5EC C7A80068 */ lwc1 $f8, 0x68($sp) -/* 072120 7F03D5F0 46001006 */ mov.s $f0, $f2 -/* 072124 7F03D5F4 C7B00064 */ lwc1 $f16, 0x64($sp) -/* 072128 7F03D5F8 4608103C */ c.lt.s $f2, $f8 -/* 07212C 7F03D5FC 8FB800C0 */ lw $t8, 0xc0($sp) -/* 072130 7F03D600 45020004 */ bc1fl .L7F03D614 -/* 072134 7F03D604 4602803C */ c.lt.s $f16, $f2 -/* 072138 7F03D608 10000006 */ b .L7F03D624 -/* 07213C 7F03D60C 46004006 */ mov.s $f0, $f8 -/* 072140 7F03D610 4602803C */ c.lt.s $f16, $f2 -.L7F03D614: -/* 072144 7F03D614 00000000 */ nop -/* 072148 7F03D618 45020003 */ bc1fl .L7F03D628 -/* 07214C 7F03D61C E7000000 */ swc1 $f0, ($t8) -/* 072150 7F03D620 46008006 */ mov.s $f0, $f16 -.L7F03D624: -/* 072154 7F03D624 E7000000 */ swc1 $f0, ($t8) -.L7F03D628: -/* 072158 7F03D628 0FC1E129 */ jal getPlayer_c_screenwidth -/* 07215C 7F03D62C 00000000 */ nop -/* 072160 7F03D630 0FC1E131 */ jal getPlayer_c_screenleft -/* 072164 7F03D634 E7A00038 */ swc1 $f0, 0x38($sp) -/* 072168 7F03D638 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 07216C 7F03D63C 44815000 */ mtc1 $at, $f10 -/* 072170 7F03D640 C7B20038 */ lwc1 $f18, 0x38($sp) -/* 072174 7F03D644 C7A80094 */ lwc1 $f8, 0x94($sp) -/* 072178 7F03D648 46125102 */ mul.s $f4, $f10, $f18 -/* 07217C 7F03D64C 46040180 */ add.s $f6, $f0, $f4 -/* 072180 7F03D650 4606403E */ c.le.s $f8, $f6 -/* 072184 7F03D654 00000000 */ nop -/* 072188 7F03D658 45000013 */ bc1f .L7F03D6A8 -/* 07218C 7F03D65C 00000000 */ nop -/* 072190 7F03D660 0FC1E129 */ jal getPlayer_c_screenwidth -/* 072194 7F03D664 00000000 */ nop -/* 072198 7F03D668 0FC1E131 */ jal getPlayer_c_screenleft -/* 07219C 7F03D66C E7A00030 */ swc1 $f0, 0x30($sp) -/* 0721A0 7F03D670 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0721A4 7F03D674 44815000 */ mtc1 $at, $f10 -/* 0721A8 7F03D678 C7B20030 */ lwc1 $f18, 0x30($sp) -/* 0721AC 7F03D67C C7B0008C */ lwc1 $f16, 0x8c($sp) -/* 0721B0 7F03D680 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0721B4 7F03D684 46125102 */ mul.s $f4, $f10, $f18 -/* 0721B8 7F03D688 46040180 */ add.s $f6, $f0, $f4 -/* 0721BC 7F03D68C 4610303E */ c.le.s $f6, $f16 -/* 0721C0 7F03D690 00000000 */ nop -/* 0721C4 7F03D694 45000004 */ bc1f .L7F03D6A8 -/* 0721C8 7F03D698 00000000 */ nop -/* 0721CC 7F03D69C 44814000 */ mtc1 $at, $f8 -/* 0721D0 7F03D6A0 10000032 */ b .L7F03D76C -/* 0721D4 7F03D6A4 E7A80060 */ swc1 $f8, 0x60($sp) -.L7F03D6A8: -/* 0721D8 7F03D6A8 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0721DC 7F03D6AC 00000000 */ nop -/* 0721E0 7F03D6B0 0FC1E131 */ jal getPlayer_c_screenleft -/* 0721E4 7F03D6B4 E7A00038 */ swc1 $f0, 0x38($sp) -/* 0721E8 7F03D6B8 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0721EC 7F03D6BC 44815000 */ mtc1 $at, $f10 -/* 0721F0 7F03D6C0 C7B20038 */ lwc1 $f18, 0x38($sp) -/* 0721F4 7F03D6C4 C7A60094 */ lwc1 $f6, 0x94($sp) -/* 0721F8 7F03D6C8 46125102 */ mul.s $f4, $f10, $f18 -/* 0721FC 7F03D6CC 46040400 */ add.s $f16, $f0, $f4 -/* 072200 7F03D6D0 4610303E */ c.le.s $f6, $f16 -/* 072204 7F03D6D4 00000000 */ nop -/* 072208 7F03D6D8 45000013 */ bc1f .L7F03D728 -/* 07220C 7F03D6DC 00000000 */ nop -/* 072210 7F03D6E0 0FC1E129 */ jal getPlayer_c_screenwidth -/* 072214 7F03D6E4 00000000 */ nop -/* 072218 7F03D6E8 0FC1E131 */ jal getPlayer_c_screenleft -/* 07221C 7F03D6EC E7A00038 */ swc1 $f0, 0x38($sp) -/* 072220 7F03D6F0 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 072224 7F03D6F4 44814000 */ mtc1 $at, $f8 -/* 072228 7F03D6F8 C7AA0038 */ lwc1 $f10, 0x38($sp) -/* 07222C 7F03D6FC C7B0008C */ lwc1 $f16, 0x8c($sp) -/* 072230 7F03D700 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 072234 7F03D704 460A4482 */ mul.s $f18, $f8, $f10 -/* 072238 7F03D708 C7A80058 */ lwc1 $f8, 0x58($sp) -/* 07223C 7F03D70C 46120100 */ add.s $f4, $f0, $f18 -/* 072240 7F03D710 44819000 */ mtc1 $at, $f18 -/* 072244 7F03D714 46102181 */ sub.s $f6, $f4, $f16 -/* 072248 7F03D718 46083283 */ div.s $f10, $f6, $f8 -/* 07224C 7F03D71C 460A9101 */ sub.s $f4, $f18, $f10 -/* 072250 7F03D720 10000012 */ b .L7F03D76C -/* 072254 7F03D724 E7A40060 */ swc1 $f4, 0x60($sp) -.L7F03D728: -/* 072258 7F03D728 0FC1E131 */ jal getPlayer_c_screenleft -/* 07225C 7F03D72C 00000000 */ nop -/* 072260 7F03D730 0FC1E129 */ jal getPlayer_c_screenwidth -/* 072264 7F03D734 E7A00040 */ swc1 $f0, 0x40($sp) -/* 072268 7F03D738 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 07226C 7F03D73C 44818000 */ mtc1 $at, $f16 -/* 072270 7F03D740 C7A80040 */ lwc1 $f8, 0x40($sp) -/* 072274 7F03D744 C7AA0094 */ lwc1 $f10, 0x94($sp) -/* 072278 7F03D748 46100182 */ mul.s $f6, $f0, $f16 -/* 07227C 7F03D74C C7B00058 */ lwc1 $f16, 0x58($sp) -/* 072280 7F03D750 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 072284 7F03D754 46083480 */ add.s $f18, $f6, $f8 -/* 072288 7F03D758 44814000 */ mtc1 $at, $f8 -/* 07228C 7F03D75C 46125101 */ sub.s $f4, $f10, $f18 -/* 072290 7F03D760 46102183 */ div.s $f6, $f4, $f16 -/* 072294 7F03D764 46064281 */ sub.s $f10, $f8, $f6 -/* 072298 7F03D768 E7AA0060 */ swc1 $f10, 0x60($sp) -.L7F03D76C: -/* 07229C 7F03D76C 8FA40054 */ lw $a0, 0x54($sp) -/* 0722A0 7F03D770 0FC2280F */ jal bondviewUpdateGuardTankFlagsRelated -/* 0722A4 7F03D774 24050001 */ li $a1, 1 -/* 0722A8 7F03D778 8FBF002C */ lw $ra, 0x2c($sp) -.L7F03D77C: -/* 0722AC 7F03D77C C7A00060 */ lwc1 $f0, 0x60($sp) -/* 0722B0 7F03D780 27BD00B0 */ addiu $sp, $sp, 0xb0 -/* 0722B4 7F03D784 03E00008 */ jr $ra -/* 0722B8 7F03D788 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -4589,50 +4187,28 @@ glabel sub_GAME_7F03D78C #endif +s32 sub_GAME_7F03D9EC(PropRecord* arg0) +{ + s32 var_v1; + if (arg0->door->openPosition <= 0.0f) + { + var_v1 = 0x1000; + } + else + { + var_v1 = (arg0->door->maxFrac <= arg0->door->openPosition) + ? 0x2000 + : 0x4000; + } + if (((s32)arg0->door->flags2 * 4) < 0) + { + var_v1 |= 0x8000; + } -#ifdef NONMATCHING -void sub_GAME_7F03D9EC(void) { - + return var_v1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03D9EC -/* 07251C 7F03D9EC 8C820004 */ lw $v0, 4($a0) -/* 072520 7F03D9F0 44802000 */ mtc1 $zero, $f4 -/* 072524 7F03D9F4 C44000B4 */ lwc1 $f0, 0xb4($v0) -/* 072528 7F03D9F8 4604003E */ c.le.s $f0, $f4 -/* 07252C 7F03D9FC 00000000 */ nop -/* 072530 7F03DA00 45020004 */ bc1fl .L7F03DA14 -/* 072534 7F03DA04 C4460084 */ lwc1 $f6, 0x84($v0) -/* 072538 7F03DA08 10000009 */ b .L7F03DA30 -/* 07253C 7F03DA0C 24031000 */ li $v1, 4096 -/* 072540 7F03DA10 C4460084 */ lwc1 $f6, 0x84($v0) -.L7F03DA14: -/* 072544 7F03DA14 24034000 */ li $v1, 16384 -/* 072548 7F03DA18 4600303E */ c.le.s $f6, $f0 -/* 07254C 7F03DA1C 00000000 */ nop -/* 072550 7F03DA20 45000003 */ bc1f .L7F03DA30 -/* 072554 7F03DA24 00000000 */ nop -/* 072558 7F03DA28 10000001 */ b .L7F03DA30 -/* 07255C 7F03DA2C 24032000 */ li $v1, 8192 -.L7F03DA30: -/* 072560 7F03DA30 8C4E000C */ lw $t6, 0xc($v0) -/* 072564 7F03DA34 34788000 */ ori $t8, $v1, 0x8000 -/* 072568 7F03DA38 000E7880 */ sll $t7, $t6, 2 -/* 07256C 7F03DA3C 05E10002 */ bgez $t7, .L7F03DA48 -/* 072570 7F03DA40 00000000 */ nop -/* 072574 7F03DA44 03001825 */ move $v1, $t8 -.L7F03DA48: -/* 072578 7F03DA48 03E00008 */ jr $ra -/* 07257C 7F03DA4C 00601025 */ move $v0, $v1 -) -#endif - - - #ifdef NONMATCHING @@ -4731,49 +4307,32 @@ glabel sub_GAME_7F03DA50 +/* I think the arguments are lists of roomids but I'm not certain. This function checks if any item in the two lists match */ +s32 sub_GAME_7F03DB70(s32* roomids1, s32* roomids2) +{ + s32* itr1; + s32* itr2; + s32 itr1_val; + s32 itr2_val; + itr1 = roomids1; + itr1_val = *itr1; + while (itr1_val >= 0) + { + itr2 = roomids2; + itr2_val = *itr2; + while(itr2_val >= 0) + { + if (itr1_val == itr2_val) { return 1; } + itr2++; + itr2_val = *itr2; + } + itr1++; + itr1_val = *itr1; + } -#ifdef NONMATCHING -void sub_GAME_7F03DB70(void) { - + return 0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03DB70 -/* 0726A0 7F03DB70 8C830000 */ lw $v1, ($a0) -/* 0726A4 7F03DB74 00801025 */ move $v0, $a0 -/* 0726A8 7F03DB78 04620012 */ bltzl $v1, .L7F03DBC4 -/* 0726AC 7F03DB7C 00001025 */ move $v0, $zero -/* 0726B0 7F03DB80 8CA70000 */ lw $a3, ($a1) -/* 0726B4 7F03DB84 00A02025 */ move $a0, $a1 -.L7F03DB88: -/* 0726B8 7F03DB88 04E00009 */ bltz $a3, .L7F03DBB0 -/* 0726BC 7F03DB8C 00E03025 */ move $a2, $a3 -.L7F03DB90: -/* 0726C0 7F03DB90 54660004 */ bnel $v1, $a2, .L7F03DBA4 -/* 0726C4 7F03DB94 8C860004 */ lw $a2, 4($a0) -/* 0726C8 7F03DB98 03E00008 */ jr $ra -/* 0726CC 7F03DB9C 24020001 */ li $v0, 1 - -/* 0726D0 7F03DBA0 8C860004 */ lw $a2, 4($a0) -.L7F03DBA4: -/* 0726D4 7F03DBA4 24840004 */ addiu $a0, $a0, 4 -/* 0726D8 7F03DBA8 04C1FFF9 */ bgez $a2, .L7F03DB90 -/* 0726DC 7F03DBAC 00000000 */ nop -.L7F03DBB0: -/* 0726E0 7F03DBB0 8C430004 */ lw $v1, 4($v0) -/* 0726E4 7F03DBB4 24420004 */ addiu $v0, $v0, 4 -/* 0726E8 7F03DBB8 0463FFF3 */ bgezl $v1, .L7F03DB88 -/* 0726EC 7F03DBBC 00A02025 */ move $a0, $a1 -/* 0726F0 7F03DBC0 00001025 */ move $v0, $zero -.L7F03DBC4: -/* 0726F4 7F03DBC4 03E00008 */ jr $ra -/* 0726F8 7F03DBC8 00000000 */ nop -) -#endif - - @@ -5448,45 +5007,13 @@ glabel chrpropDeregisterRoom - - -#ifdef NONMATCHING -void sub_GAME_7F03E134(void) { - +void sub_GAME_7F03E134(PropRecord* arg0) { + if (arg0->type == 3) { + chrPositionRelated7F020D94(arg0->chr); + } else if ((arg0->type == 1) || (arg0->type == 4)) { + setupUpdateObjectRoomPosition((ObjectRecord* ) arg0->chr); + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03E134 -/* 072C64 7F03E134 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 072C68 7F03E138 AFBF0014 */ sw $ra, 0x14($sp) -/* 072C6C 7F03E13C 90820000 */ lbu $v0, ($a0) -/* 072C70 7F03E140 24010003 */ li $at, 3 -/* 072C74 7F03E144 00802825 */ move $a1, $a0 -/* 072C78 7F03E148 54410006 */ bnel $v0, $at, .L7F03E164 -/* 072C7C 7F03E14C 24010001 */ li $at, 1 -/* 072C80 7F03E150 0FC08365 */ jal chrPositionRelated7F020D94 -/* 072C84 7F03E154 8C840004 */ lw $a0, 4($a0) -/* 072C88 7F03E158 10000009 */ b .L7F03E180 -/* 072C8C 7F03E15C 8FBF0014 */ lw $ra, 0x14($sp) -/* 072C90 7F03E160 24010001 */ li $at, 1 -.L7F03E164: -/* 072C94 7F03E164 10410003 */ beq $v0, $at, .L7F03E174 -/* 072C98 7F03E168 24010004 */ li $at, 4 -/* 072C9C 7F03E16C 54410004 */ bnel $v0, $at, .L7F03E180 -/* 072CA0 7F03E170 8FBF0014 */ lw $ra, 0x14($sp) -.L7F03E174: -/* 072CA4 7F03E174 0FC15B28 */ jal setupUpdateObjectRoomPosition -/* 072CA8 7F03E178 8CA40004 */ lw $a0, 4($a1) -/* 072CAC 7F03E17C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F03E180: -/* 072CB0 7F03E180 27BD0018 */ addiu $sp, $sp, 0x18 -/* 072CB4 7F03E184 03E00008 */ jr $ra -/* 072CB8 7F03E188 00000000 */ nop -) -#endif - - @@ -6041,52 +5568,27 @@ glabel sub_GAME_7F03E7AC ) #endif - - - - -#ifdef NONMATCHING -void sub_GAME_7F03E830(void) { - +void sub_GAME_7F03E830(ObjectRecord* arg0) +{ + PropRecord* prop = arg0->prop; + stanGetPositionYValue(prop->stan, prop->pos.x, prop->pos.z); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03E830 -/* 073360 7F03E830 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 073364 7F03E834 AFBF0014 */ sw $ra, 0x14($sp) -/* 073368 7F03E838 8C820010 */ lw $v0, 0x10($a0) -/* 07336C 7F03E83C 8C440014 */ lw $a0, 0x14($v0) -/* 073370 7F03E840 8C450008 */ lw $a1, 8($v0) -/* 073374 7F03E844 0FC2CA5C */ jal stanGetPositionYValue -/* 073378 7F03E848 8C460010 */ lw $a2, 0x10($v0) -/* 07337C 7F03E84C 8FBF0014 */ lw $ra, 0x14($sp) -/* 073380 7F03E850 27BD0018 */ addiu $sp, $sp, 0x18 -/* 073384 7F03E854 03E00008 */ jr $ra -/* 073388 7F03E858 00000000 */ nop -) -#endif - - - - - -f32 chrpropBBOXGetXmin(ModelNode_BoundingBoxRecord *modelBoundingBox) +f32 chrpropBBOXGetXmin(ModelRoData_BoundingBoxRecord *modelBoundingBox) { return modelBoundingBox->Bounds.xmin; } -f32 chrpropBBOXGetYmin(ModelNode_BoundingBoxRecord *modelBoundingBox) +f32 chrpropBBOXGetYmin(ModelRoData_BoundingBoxRecord *modelBoundingBox) { return modelBoundingBox->Bounds.ymin; } -f32 chrpropBBOXGetYmax(ModelNode_BoundingBoxRecord *modelBoundingBox) +f32 chrpropBBOXGetYmax(ModelRoData_BoundingBoxRecord *modelBoundingBox) { return modelBoundingBox->Bounds.ymax; } -f32 chrpropBBOXGetZmin(ModelNode_BoundingBoxRecord *modelBoundingBox) +f32 chrpropBBOXGetZmin(ModelRoData_BoundingBoxRecord *modelBoundingBox) { return modelBoundingBox->Bounds.zmin; } @@ -6385,10 +5887,12 @@ void sub_GAME_7F03EC3C(struct modeldata_unk_pos *arg0, Mtxf *arg1, struct coord3 #ifdef NONMATCHING -void sub_GAME_7F03ECC0(void) { +void sub_GAME_7F03ECC0(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, void* arg6, void* arg7, s32* arg8) { } #else +/* This forward declaration is required for sub_GAME_7F03F540() to link until sub_GAME_7F03ECC0() is properly decompiled */ +void sub_GAME_7F03ECC0(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, void* arg6, void* arg7, s32* arg8); GLOBAL_ASM( .text glabel sub_GAME_7F03ECC0 @@ -6974,43 +6478,10 @@ glabel sub_GAME_7F03ECC0 - - -#ifdef NONMATCHING -void sub_GAME_7F03F540(void) { - +void sub_GAME_7F03F540(struct modeldata_unk_pos* arg0, Mtxf* arg1, s32* arg2, struct collision_data* arg3) +{ + sub_GAME_7F03ECC0(arg0->p1[0], arg0->p1[1], arg0->p2[0], arg0->p2[1], arg0->p3[0], arg0->p3[1], arg1, arg2, arg3); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03F540 -/* 074070 7F03F540 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 074074 7F03F544 AFBF002C */ sw $ra, 0x2c($sp) -/* 074078 7F03F548 AFA60038 */ sw $a2, 0x38($sp) -/* 07407C 7F03F54C AFA7003C */ sw $a3, 0x3c($sp) -/* 074080 7F03F550 C4840014 */ lwc1 $f4, 0x14($a0) -/* 074084 7F03F554 8C870010 */ lw $a3, 0x10($a0) -/* 074088 7F03F558 8C86000C */ lw $a2, 0xc($a0) -/* 07408C 7F03F55C C48E0008 */ lwc1 $f14, 8($a0) -/* 074090 7F03F560 C48C0004 */ lwc1 $f12, 4($a0) -/* 074094 7F03F564 E7A40010 */ swc1 $f4, 0x10($sp) -/* 074098 7F03F568 C4860018 */ lwc1 $f6, 0x18($a0) -/* 07409C 7F03F56C 8FAF003C */ lw $t7, 0x3c($sp) -/* 0740A0 7F03F570 8FAE0038 */ lw $t6, 0x38($sp) -/* 0740A4 7F03F574 AFA50018 */ sw $a1, 0x18($sp) -/* 0740A8 7F03F578 E7A60014 */ swc1 $f6, 0x14($sp) -/* 0740AC 7F03F57C AFAF0020 */ sw $t7, 0x20($sp) -/* 0740B0 7F03F580 0FC0FB30 */ jal sub_GAME_7F03ECC0 -/* 0740B4 7F03F584 AFAE001C */ sw $t6, 0x1c($sp) -/* 0740B8 7F03F588 8FBF002C */ lw $ra, 0x2c($sp) -/* 0740BC 7F03F58C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0740C0 7F03F590 03E00008 */ jr $ra -/* 0740C4 7F03F594 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -7282,18 +6753,13 @@ glabel sub_GAME_7F03F748 #endif - - - -void sub_GAME_7F03F90C(struct model *model, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4) { +void sub_GAME_7F03F90C(Model *model, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4) +{ sub_GAME_7F03F748(model, arg1, arg2, 0); sub_GAME_7F03F748(model, arg3, arg4, 1); } - - - #ifdef NONMATCHING void sub_GAME_7F03F948(void) { @@ -7416,97 +6882,27 @@ glabel scan_position_data_table_for_normal_object_at_preset - - -#ifdef NONMATCHING -ObjectRecord* sub_GAME_7F03FAB0(PadRecord* pad, s32 RoomID) +ObjectRecord * sub_GAME_7F03FAB0(PadRecord * pad, s32 RoomID) { - s32 sp38; - s32 sp34; - PropRecord* temp_s0; - PropRecord* temp_v0; - PropRecord* phi_s0; + s32 unused; + rect4f * polygon; + s32 edges; + PropRecord * prop; - temp_v0 = get_ptr_obj_pos_list_current_entry(pad); - phi_s0 = temp_v0; - if (temp_v0 != 0) + prop = get_ptr_obj_pos_list_current_entry(); + while (prop != NULL) { -loop_2: - if ((phi_s0->type == 1) && (RoomID == phi_s0->stan->unk3) && (sub_GAME_7F03CCB0(phi_s0, &sp38, &sp34), (chrpropTestPointInPolygon(pad, sp38, sp34) != 0))) + if ((prop->type == 1) && (RoomID == prop->stan->room)) { - return phi_s0->chr; + chraiGetCollisionBoundsWithoutY(prop, &polygon, &edges); + if (chrpropTestPointInPolygon(&pad->pos, polygon, edges) != 0) + { + return (ObjectRecord *) prop->chr; + } } - temp_s0 = phi_s0->prev; - phi_s0 = temp_s0; - if (temp_s0 == 0) - { - goto block_7; - } - goto loop_2; + prop = prop->prev; } -block_7: + return NULL; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F03FAB0 -/* 0745E0 7F03FAB0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0745E4 7F03FAB4 AFBF002C */ sw $ra, 0x2c($sp) -/* 0745E8 7F03FAB8 AFB2001C */ sw $s2, 0x1c($sp) -/* 0745EC 7F03FABC AFB10018 */ sw $s1, 0x18($sp) -/* 0745F0 7F03FAC0 00A08825 */ move $s1, $a1 -/* 0745F4 7F03FAC4 00809025 */ move $s2, $a0 -/* 0745F8 7F03FAC8 AFB50028 */ sw $s5, 0x28($sp) -/* 0745FC 7F03FACC AFB40024 */ sw $s4, 0x24($sp) -/* 074600 7F03FAD0 AFB30020 */ sw $s3, 0x20($sp) -/* 074604 7F03FAD4 0FC0E909 */ jal get_ptr_obj_pos_list_current_entry -/* 074608 7F03FAD8 AFB00014 */ sw $s0, 0x14($sp) -/* 07460C 7F03FADC 1040001A */ beqz $v0, .L7F03FB48 -/* 074610 7F03FAE0 00408025 */ move $s0, $v0 -/* 074614 7F03FAE4 27B50034 */ addiu $s5, $sp, 0x34 -/* 074618 7F03FAE8 27B40038 */ addiu $s4, $sp, 0x38 -/* 07461C 7F03FAEC 24130001 */ li $s3, 1 -/* 074620 7F03FAF0 920E0000 */ lbu $t6, ($s0) -.L7F03FAF4: -/* 074624 7F03FAF4 566E0012 */ bnel $s3, $t6, .L7F03FB40 -/* 074628 7F03FAF8 8E100024 */ lw $s0, 0x24($s0) -/* 07462C 7F03FAFC 8E0F0014 */ lw $t7, 0x14($s0) -/* 074630 7F03FB00 02002025 */ move $a0, $s0 -/* 074634 7F03FB04 02802825 */ move $a1, $s4 -/* 074638 7F03FB08 91F80003 */ lbu $t8, 3($t7) -/* 07463C 7F03FB0C 5638000C */ bnel $s1, $t8, .L7F03FB40 -/* 074640 7F03FB10 8E100024 */ lw $s0, 0x24($s0) -/* 074644 7F03FB14 0FC0F32C */ jal chraiGetCollisionBoundsWithoutY -/* 074648 7F03FB18 02A03025 */ move $a2, $s5 -/* 07464C 7F03FB1C 02402025 */ move $a0, $s2 -/* 074650 7F03FB20 8FA50038 */ lw $a1, 0x38($sp) -/* 074654 7F03FB24 0FC0F336 */ jal chrpropTestPointInPolygon -/* 074658 7F03FB28 8FA60034 */ lw $a2, 0x34($sp) -/* 07465C 7F03FB2C 50400004 */ beql $v0, $zero, .L7F03FB40 -/* 074660 7F03FB30 8E100024 */ lw $s0, 0x24($s0) -/* 074664 7F03FB34 10000005 */ b .L7F03FB4C -/* 074668 7F03FB38 8E020004 */ lw $v0, 4($s0) -/* 07466C 7F03FB3C 8E100024 */ lw $s0, 0x24($s0) -.L7F03FB40: -/* 074670 7F03FB40 5600FFEC */ bnezl $s0, .L7F03FAF4 -/* 074674 7F03FB44 920E0000 */ lbu $t6, ($s0) -.L7F03FB48: -/* 074678 7F03FB48 00001025 */ move $v0, $zero -.L7F03FB4C: -/* 07467C 7F03FB4C 8FBF002C */ lw $ra, 0x2c($sp) -/* 074680 7F03FB50 8FB00014 */ lw $s0, 0x14($sp) -/* 074684 7F03FB54 8FB10018 */ lw $s1, 0x18($sp) -/* 074688 7F03FB58 8FB2001C */ lw $s2, 0x1c($sp) -/* 07468C 7F03FB5C 8FB30020 */ lw $s3, 0x20($sp) -/* 074690 7F03FB60 8FB40024 */ lw $s4, 0x24($sp) -/* 074694 7F03FB64 8FB50028 */ lw $s5, 0x28($sp) -/* 074698 7F03FB68 03E00008 */ jr $ra -/* 07469C 7F03FB6C 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif - - - - diff --git a/src/game/cleanup_objects.c b/src/game/cleanup_objects.c index 39e248ba..bf43b283 100644 --- a/src/game/cleanup_objects.c +++ b/src/game/cleanup_objects.c @@ -18,7 +18,7 @@ */ void cleanupObjects(s32 stage) { - object_standard *obj = g_chraiCurrentSetup.propDefs; + object_standard *obj = g_CurrentSetup.propDefs; if (obj != NULL) { @@ -111,8 +111,8 @@ glabel jpt_8004F210 glabel cleanupObjects /* 03C030 7F007500 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 03C034 7F007504 AFB00018 */ sw $s0, 0x18($sp) -/* 03C038 7F007508 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+0x0c) -/* 03C03C 7F00750C 8E105D0C */ lw $s0, %lo(g_chraiCurrentSetup+0x0c)($s0) +/* 03C038 7F007508 3C108007 */ lui $s0, %hi(g_CurrentSetup+0x0c) +/* 03C03C 7F00750C 8E105D0C */ lw $s0, %lo(g_CurrentSetup+0x0c)($s0) /* 03C040 7F007510 AFBF001C */ sw $ra, 0x1c($sp) /* 03C044 7F007514 AFA40020 */ sw $a0, 0x20($sp) /* 03C048 7F007518 52000019 */ beql $s0, $zero, .L7F007580 diff --git a/src/game/cleanwindowpieces.c b/src/game/cleanwindowpieces.c index 297bbc62..5f45361e 100644 --- a/src/game/cleanwindowpieces.c +++ b/src/game/cleanwindowpieces.c @@ -7,7 +7,7 @@ void cleanup_window_pieces(void) { s32 i; for (i = 0; i < SHATTERED_WINDOW_PIECES_BUFFER_LEN; i++) { - ptr_shattered_window_pieces[i].piece = NULL; + ptr_shattered_window_pieces[i].piece = 0; } } diff --git a/src/game/compiletime.c b/src/game/compiletime.c index a536a478..2060f6e4 100644 --- a/src/game/compiletime.c +++ b/src/game/compiletime.c @@ -1,18 +1,20 @@ #include #include "compiletime.h" -#ifdef VERSION_US -char *get_compile_time(void) { - return "Jun 29 1997 20:46:05"; -} -#elif VERSION_EU -char *get_compile_time(void) { - return "Jul 31 1997 14:53:03"; -} -#elif VERSION_JP -char *get_compile_time(void) { - return "Jul 10 1997 14:53:37"; -} +#ifdef BYTEMATCH + #ifdef VERSION_US + char *get_compile_time(void) { + return "Jun 29 1997 20:46:05"; + } + #elif VERSION_EU + char *get_compile_time(void) { + return "Jul 31 1997 14:53:03"; + } + #elif VERSION_JP + char *get_compile_time(void) { + return "Jul 10 1997 14:53:37"; + } + #endif #else char *get_compile_time(void) { return __DATE__" " __TIME__; diff --git a/src/game/deb_loadallmodels.c b/src/game/deb_loadallmodels.c index 46250a36..59301b96 100644 --- a/src/game/deb_loadallmodels.c +++ b/src/game/deb_loadallmodels.c @@ -4,25 +4,22 @@ #include "chr.h" #include "chr_b.h" #include "deb_loadallmodels.h" +#include "loadobjectmodel.h" +#include "aicommands2.h" +#include "dyn.h" +#include "memp.h" + //i belong in a header, probably to another file +ChrRecord global_action_block_temp_buffer = { 0 }; - - - - -u32 global_action_block_temp_buffer[119] = {0}; - -s32 weapon_models_for_weapon_load[] = { +WeaponProjectileModels weapon_models_for_weapon_load = { PROJECTILES_TYPE_KNIFE, PROJECTILES_TYPE_GRENADE, PROJECTILES_TYPE_REMOTE_MINE, PROJECTILES_TYPE_PROX_MINE, PROJECTILES_TYPE_TIMED_MINE, PROJECTILES_TYPE_ROCKET_ROUND, PROJECTILES_TYPE_GLAUNCH_ROUND, 0xFFFFFFFF }; - - - void init_obj_register_difficulty_vals(void) { objectiveregisters1 = 0; g_AiAccuracyModifier = 1.0f; @@ -33,359 +30,122 @@ void init_obj_register_difficulty_vals(void) { } +void alloc_false_GUARDdata_to_exec_global_action(void) +{ + s32 i; + s32 count; -#ifdef NONMATCHING -void alloc_false_GUARDdata_to_exec_global_action(void) { + g_ActiveChrs = NULL; + g_ActiveChrsCount = 0; + if (!g_CurrentSetup.ailists) { return; } + + count = 0; + + // Count the number of background AI lists + i = 0; + while (g_CurrentSetup.ailists[i].ailist) + { + if (g_CurrentSetup.ailists[i].ID >= 0x1000) + { + g_ActiveChrsCount++; + } + + i++; + } + + if (g_ActiveChrsCount > 0) + { + ChrRecord tmp; + + // Allocate BG chrs + g_ActiveChrs = mempAllocBytesInBank(ALIGN16_a(g_ActiveChrsCount * sizeof(ChrRecord)), MEMPOOL_STAGE); + + // Initialise BG chrs + i = 0; + while (g_CurrentSetup.ailists[i].ailist) + { + if (g_CurrentSetup.ailists[i].ID >= 0x1000) + { + tmp = global_action_block_temp_buffer; + + g_ActiveChrs[count] = tmp; + + g_ActiveChrs[count].chrnum = 0xFE; + g_ActiveChrs[count].ailist = g_CurrentSetup.ailists[i].ailist; + g_ActiveChrs[count].aioffset = 0; + g_ActiveChrs[count].aireturnlist = -1; + g_ActiveChrs[count].actiontype = ACT_NULL; + count++; + } + + i++; + } + } } -#else -GLOBAL_ASM( -.text -glabel alloc_false_GUARDdata_to_exec_global_action -/* 035B8C 7F00105C 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0) -/* 035B90 7F001060 25AD5D00 */ addiu $t5, %lo(g_chraiCurrentSetup+0) # addiu $t5, $t5, 0x5d00 -/* 035B94 7F001064 8DA50014 */ lw $a1, 0x14($t5) -/* 035B98 7F001068 3C028003 */ lui $v0, %hi(g_ActiveChrsCount) -/* 035B9C 7F00106C 3C068003 */ lui $a2, %hi(g_ActiveChrs) -/* 035BA0 7F001070 24C6097C */ addiu $a2, %lo(g_ActiveChrs) # addiu $a2, $a2, 0x97c -/* 035BA4 7F001074 24420980 */ addiu $v0, %lo(g_ActiveChrsCount) # addiu $v0, $v0, 0x980 -/* 035BA8 7F001078 27BDFDF8 */ addiu $sp, $sp, -0x208 -/* 035BAC 7F00107C AFBF0014 */ sw $ra, 0x14($sp) -/* 035BB0 7F001080 ACC00000 */ sw $zero, ($a2) -/* 035BB4 7F001084 10A00070 */ beqz $a1, .L7F001248 -/* 035BB8 7F001088 AC400000 */ sw $zero, ($v0) -/* 035BBC 7F00108C 8CAE0000 */ lw $t6, ($a1) -/* 035BC0 7F001090 00A01825 */ move $v1, $a1 -/* 035BC4 7F001094 00003825 */ move $a3, $zero -/* 035BC8 7F001098 11C0000C */ beqz $t6, .L7F0010CC -/* 035BCC 7F00109C 24050004 */ li $a1, 4 -/* 035BD0 7F0010A0 8C6F0004 */ lw $t7, 4($v1) -.L7F0010A4: -/* 035BD4 7F0010A4 29E11000 */ slti $at, $t7, 0x1000 -/* 035BD8 7F0010A8 54200005 */ bnezl $at, .L7F0010C0 -/* 035BDC 7F0010AC 8C6E0008 */ lw $t6, 8($v1) -/* 035BE0 7F0010B0 8C580000 */ lw $t8, ($v0) -/* 035BE4 7F0010B4 27190001 */ addiu $t9, $t8, 1 -/* 035BE8 7F0010B8 AC590000 */ sw $t9, ($v0) -/* 035BEC 7F0010BC 8C6E0008 */ lw $t6, 8($v1) -.L7F0010C0: -/* 035BF0 7F0010C0 24630008 */ addiu $v1, $v1, 8 -/* 035BF4 7F0010C4 55C0FFF7 */ bnezl $t6, .L7F0010A4 -/* 035BF8 7F0010C8 8C6F0004 */ lw $t7, 4($v1) -.L7F0010CC: -/* 035BFC 7F0010CC 8C430000 */ lw $v1, ($v0) -/* 035C00 7F0010D0 00004025 */ move $t0, $zero -/* 035C04 7F0010D4 1860005C */ blez $v1, .L7F001248 -/* 035C08 7F0010D8 00032100 */ sll $a0, $v1, 4 -/* 035C0C 7F0010DC 00832023 */ subu $a0, $a0, $v1 -/* 035C10 7F0010E0 000420C0 */ sll $a0, $a0, 3 -/* 035C14 7F0010E4 00832023 */ subu $a0, $a0, $v1 -/* 035C18 7F0010E8 00042080 */ sll $a0, $a0, 2 -/* 035C1C 7F0010EC 2484000F */ addiu $a0, $a0, 0xf -/* 035C20 7F0010F0 348F000F */ ori $t7, $a0, 0xf -/* 035C24 7F0010F4 39E4000F */ xori $a0, $t7, 0xf -/* 035C28 7F0010F8 0C0025C8 */ jal mempAllocBytesInBank -/* 035C2C 7F0010FC AFA70200 */ sw $a3, 0x200($sp) -/* 035C30 7F001100 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0) -/* 035C34 7F001104 25AD5D00 */ addiu $t5, %lo(g_chraiCurrentSetup+0) # addiu $t5, $t5, 0x5d00 -/* 035C38 7F001108 8DA50014 */ lw $a1, 0x14($t5) -/* 035C3C 7F00110C 3C068003 */ lui $a2, %hi(g_ActiveChrs) -/* 035C40 7F001110 24C6097C */ addiu $a2, %lo(g_ActiveChrs) # addiu $a2, $a2, 0x97c -/* 035C44 7F001114 ACC20000 */ sw $v0, ($a2) -/* 035C48 7F001118 8CB90000 */ lw $t9, ($a1) -/* 035C4C 7F00111C 8FA70200 */ lw $a3, 0x200($sp) -/* 035C50 7F001120 00002025 */ move $a0, $zero -/* 035C54 7F001124 13200048 */ beqz $t9, .L7F001248 -/* 035C58 7F001128 00A01825 */ move $v1, $a1 -/* 035C5C 7F00112C 3C088003 */ lui $t0, %hi(global_action_block_temp_buffer) -/* 035C60 7F001130 2508A060 */ addiu $t0, %lo(global_action_block_temp_buffer) # addiu $t0, $t0, -0x5fa0 -/* 035C64 7F001134 240C001A */ li $t4, 26 -/* 035C68 7F001138 240BFFFF */ li $t3, -1 -/* 035C6C 7F00113C 240A00FE */ li $t2, 254 -/* 035C70 7F001140 240901DC */ li $t1, 476 -/* 035C74 7F001144 27A50024 */ addiu $a1, $sp, 0x24 -/* 035C78 7F001148 8C6E0004 */ lw $t6, 4($v1) -.L7F00114C: -/* 035C7C 7F00114C 0100C825 */ move $t9, $t0 -/* 035C80 7F001150 251801D4 */ addiu $t8, $t0, 0x1d4 -/* 035C84 7F001154 29C11000 */ slti $at, $t6, 0x1000 -/* 035C88 7F001158 14200036 */ bnez $at, .L7F001234 -/* 035C8C 7F00115C 00A07025 */ move $t6, $a1 -.L7F001160: -/* 035C90 7F001160 8F210000 */ lw $at, ($t9) -/* 035C94 7F001164 2739000C */ addiu $t9, $t9, 0xc -/* 035C98 7F001168 25CE000C */ addiu $t6, $t6, 0xc -/* 035C9C 7F00116C ADC1FFF4 */ sw $at, -0xc($t6) -/* 035CA0 7F001170 8F21FFF8 */ lw $at, -8($t9) -/* 035CA4 7F001174 ADC1FFF8 */ sw $at, -8($t6) -/* 035CA8 7F001178 8F21FFFC */ lw $at, -4($t9) -/* 035CAC 7F00117C 1738FFF8 */ bne $t9, $t8, .L7F001160 -/* 035CB0 7F001180 ADC1FFFC */ sw $at, -4($t6) -/* 035CB4 7F001184 00E90019 */ multu $a3, $t1 -/* 035CB8 7F001188 8F210000 */ lw $at, ($t9) -/* 035CBC 7F00118C ADC10000 */ sw $at, ($t6) -/* 035CC0 7F001190 8F380004 */ lw $t8, 4($t9) -/* 035CC4 7F001194 ADD80004 */ sw $t8, 4($t6) -/* 035CC8 7F001198 8CCF0000 */ lw $t7, ($a2) -/* 035CCC 7F00119C 00001012 */ mflo $v0 -/* 035CD0 7F0011A0 24AE01D4 */ addiu $t6, $a1, 0x1d4 -/* 035CD4 7F0011A4 01E2C021 */ addu $t8, $t7, $v0 -/* 035CD8 7F0011A8 00A07825 */ move $t7, $a1 -.L7F0011AC: -/* 035CDC 7F0011AC 8DE10000 */ lw $at, ($t7) -/* 035CE0 7F0011B0 25EF000C */ addiu $t7, $t7, 0xc -/* 035CE4 7F0011B4 2718000C */ addiu $t8, $t8, 0xc -/* 035CE8 7F0011B8 AF01FFF4 */ sw $at, -0xc($t8) -/* 035CEC 7F0011BC 8DE1FFF8 */ lw $at, -8($t7) -/* 035CF0 7F0011C0 AF01FFF8 */ sw $at, -8($t8) -/* 035CF4 7F0011C4 8DE1FFFC */ lw $at, -4($t7) -/* 035CF8 7F0011C8 15EEFFF8 */ bne $t7, $t6, .L7F0011AC -/* 035CFC 7F0011CC AF01FFFC */ sw $at, -4($t8) -/* 035D00 7F0011D0 8DE10000 */ lw $at, ($t7) -/* 035D04 7F0011D4 24E70001 */ addiu $a3, $a3, 1 -/* 035D08 7F0011D8 AF010000 */ sw $at, ($t8) -/* 035D0C 7F0011DC 8DEE0004 */ lw $t6, 4($t7) -/* 035D10 7F0011E0 AF0E0004 */ sw $t6, 4($t8) -/* 035D14 7F0011E4 8CD90000 */ lw $t9, ($a2) -/* 035D18 7F0011E8 03227021 */ addu $t6, $t9, $v0 -/* 035D1C 7F0011EC A5CA0000 */ sh $t2, ($t6) -/* 035D20 7F0011F0 8DAF0014 */ lw $t7, 0x14($t5) -/* 035D24 7F0011F4 8CCE0000 */ lw $t6, ($a2) -/* 035D28 7F0011F8 01E4C021 */ addu $t8, $t7, $a0 -/* 035D2C 7F0011FC 8F190000 */ lw $t9, ($t8) -/* 035D30 7F001200 01C27821 */ addu $t7, $t6, $v0 -/* 035D34 7F001204 ADF90104 */ sw $t9, 0x104($t7) -/* 035D38 7F001208 8CD80000 */ lw $t8, ($a2) -/* 035D3C 7F00120C 03027021 */ addu $t6, $t8, $v0 -/* 035D40 7F001210 A5C00108 */ sh $zero, 0x108($t6) -/* 035D44 7F001214 8CD90000 */ lw $t9, ($a2) -/* 035D48 7F001218 03227821 */ addu $t7, $t9, $v0 -/* 035D4C 7F00121C A5EB010A */ sh $t3, 0x10a($t7) -/* 035D50 7F001220 8CD80000 */ lw $t8, ($a2) -/* 035D54 7F001224 03027021 */ addu $t6, $t8, $v0 -/* 035D58 7F001228 A1CC0007 */ sb $t4, 7($t6) -/* 035D5C 7F00122C 8DB90014 */ lw $t9, 0x14($t5) -/* 035D60 7F001230 03241821 */ addu $v1, $t9, $a0 -.L7F001234: -/* 035D64 7F001234 8C6F0008 */ lw $t7, 8($v1) -/* 035D68 7F001238 24840008 */ addiu $a0, $a0, 8 -/* 035D6C 7F00123C 24630008 */ addiu $v1, $v1, 8 -/* 035D70 7F001240 55E0FFC2 */ bnezl $t7, .L7F00114C -/* 035D74 7F001244 8C6E0004 */ lw $t6, 4($v1) -.L7F001248: -/* 035D78 7F001248 8FBF0014 */ lw $ra, 0x14($sp) -/* 035D7C 7F00124C 27BD0208 */ addiu $sp, $sp, 0x208 -/* 035D80 7F001250 03E00008 */ jr $ra -/* 035D84 7F001254 00000000 */ nop -) -#endif -#ifdef NONMATCHING + void debug_object_load_all_models(void) { - for i = 0 to sizeof(g_currentsetup.ailist)/4) - switch (g_currentSetup.ailist[i]) - case AI_DROPGUNTYPE: -# ifdef DEBUG - osSyncPrintf("loaded dropguntype obj = % d\n", obj); -# endif - case AI_CREATECHRHEADATCHR: -# ifdef DEBUG - osSyncPrintf("loaded createchrheadatchr obj=%d\n", obj); - osSyncPrintf("loaded createchrheadatchr obj=%d (head)\n", obj); -# endif - case AI_CREATECHRHEAD: -# ifdef DEBUG - osSyncPrintf("loaded createchrhead obj=%d (body)\n", obj); - osSyncPrintf("loaded createchrhead obj=%d (head)\n", obj); -# endif - case AI_CREATEWEAPONHELDCHR: -# ifdef DEBUG - osSyncPrintf("loaded createweaponheldchr obj=%d\n", obj); - osSyncPrintf("loaded createweaponheldchr obj=%d (ammo)\n", obj); -# endif - case AI_CREATEHATONCHR: -# ifdef DEBUG - osSyncPrintf("loaded createhatonchr obj=%d\n", obj); -# endif + u8 *cmd = &g_CurrentSetup.ailists[0].ailist->cmd; + s32 i = 0; + u16 id; + + if (!cmd) { return; } + + do + { + while (TRUE) + { + if (cmd[0] == AI_EndList) + { + break; + } + + switch (cmd[0]) + { + case AI_TRYDroppingItem: + id = cmd[2] | (cmd[1] << 8); + if (modelLoad(id)); + break; + + case AI_TRYSpawningChrAtPad: + load_body_head_if_not_loaded(cmd[1]); + if ((s8)cmd[2] >= 0 && load_body_head_if_not_loaded((s8)cmd[2])); + break; + + case AI_TRYSpawningChrNextToChr: + load_body_head_if_not_loaded(cmd[1]); + if ((s8)cmd[2] >= 0 && load_body_head_if_not_loaded((s8)cmd[2])); + break; + + case AI_TRYGiveMeItem: + modelLoad(cmd[2] | (cmd[1] << 8)); + if (weaponLoadProjectileModels(cmd[3])); + break; + + case AI_TRYGiveMeHat: + modelLoad(cmd[2] | (cmd[1] << 8)); + break; + } + + cmd += chraiitemsize(cmd, 0); + } + + i++; + cmd = &g_CurrentSetup.ailists[i].ailist->cmd; + } while (cmd); } -#else -GLOBAL_ASM( -.text -glabel debug_object_load_all_models -/* 035D88 7F001258 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 035D8C 7F00125C 3C0E8007 */ lui $t6, %hi(g_chraiCurrentSetup+0x14) -/* 035D90 7F001260 8DCE5D14 */ lw $t6, %lo(g_chraiCurrentSetup+0x14)($t6) -/* 035D94 7F001264 AFBF0034 */ sw $ra, 0x34($sp) -/* 035D98 7F001268 AFB70030 */ sw $s7, 0x30($sp) -/* 035D9C 7F00126C AFB6002C */ sw $s6, 0x2c($sp) -/* 035DA0 7F001270 AFB50028 */ sw $s5, 0x28($sp) -/* 035DA4 7F001274 AFB40024 */ sw $s4, 0x24($sp) -/* 035DA8 7F001278 AFB30020 */ sw $s3, 0x20($sp) -/* 035DAC 7F00127C AFB2001C */ sw $s2, 0x1c($sp) -/* 035DB0 7F001280 AFB10018 */ sw $s1, 0x18($sp) -/* 035DB4 7F001284 AFB00014 */ sw $s0, 0x14($sp) -/* 035DB8 7F001288 8DD00000 */ lw $s0, ($t6) -/* 035DBC 7F00128C 241500BF */ li $s5, 191 -/* 035DC0 7F001290 241600C0 */ li $s6, 192 -/* 035DC4 7F001294 12000052 */ beqz $s0, .L7F0013E0 -/* 035DC8 7F001298 0000B825 */ move $s7, $zero -/* 035DCC 7F00129C 241400BE */ li $s4, 190 -/* 035DD0 7F0012A0 241300BD */ li $s3, 189 -/* 035DD4 7F0012A4 2412001B */ li $s2, 27 -/* 035DD8 7F0012A8 24110004 */ li $s1, 4 -.L7F0012AC: -/* 035DDC 7F0012AC 92030000 */ lbu $v1, ($s0) -.L7F0012B0: -/* 035DE0 7F0012B0 3C0F8007 */ lui $t7, %hi(g_chraiCurrentSetup+0x14) -/* 035DE4 7F0012B4 16230004 */ bne $s1, $v1, .L7F0012C8 -/* 035DE8 7F0012B8 00000000 */ nop -/* 035DEC 7F0012BC 8DEF5D14 */ lw $t7, %lo(g_chraiCurrentSetup+0x14)($t7) -/* 035DF0 7F0012C0 10000042 */ b .L7F0013CC -/* 035DF4 7F0012C4 01F71021 */ addu $v0, $t7, $s7 -.L7F0012C8: -/* 035DF8 7F0012C8 5072000C */ beql $v1, $s2, .L7F0012FC -/* 035DFC 7F0012CC 92180001 */ lbu $t8, 1($s0) -/* 035E00 7F0012D0 10730013 */ beq $v1, $s3, .L7F001320 -/* 035E04 7F0012D4 00000000 */ nop -/* 035E08 7F0012D8 1074001C */ beq $v1, $s4, .L7F00134C -/* 035E0C 7F0012DC 00000000 */ nop -/* 035E10 7F0012E0 50750026 */ beql $v1, $s5, .L7F00137C -/* 035E14 7F0012E4 920A0001 */ lbu $t2, 1($s0) -/* 035E18 7F0012E8 5076002F */ beql $v1, $s6, .L7F0013A8 -/* 035E1C 7F0012EC 920D0001 */ lbu $t5, 1($s0) -/* 035E20 7F0012F0 10000032 */ b .L7F0013BC -/* 035E24 7F0012F4 02002025 */ move $a0, $s0 -/* 035E28 7F0012F8 92180001 */ lbu $t8, 1($s0) -.L7F0012FC: -/* 035E2C 7F0012FC 92080002 */ lbu $t0, 2($s0) -/* 035E30 7F001300 0018CA00 */ sll $t9, $t8, 8 -/* 035E34 7F001304 03281025 */ or $v0, $t9, $t0 -/* 035E38 7F001308 0FC15B0E */ jal modelLoad -/* 035E3C 7F00130C 3044FFFF */ andi $a0, $v0, 0xffff -/* 035E40 7F001310 5040002A */ beql $v0, $zero, .L7F0013BC -/* 035E44 7F001314 02002025 */ move $a0, $s0 -/* 035E48 7F001318 10000028 */ b .L7F0013BC -/* 035E4C 7F00131C 02002025 */ move $a0, $s0 -.L7F001320: -/* 035E50 7F001320 0FC08CA4 */ jal load_body_head_if_not_loaded -/* 035E54 7F001324 92040001 */ lbu $a0, 1($s0) -/* 035E58 7F001328 82040002 */ lb $a0, 2($s0) -/* 035E5C 7F00132C 04820023 */ bltzl $a0, .L7F0013BC -/* 035E60 7F001330 02002025 */ move $a0, $s0 -/* 035E64 7F001334 0FC08CA4 */ jal load_body_head_if_not_loaded -/* 035E68 7F001338 00000000 */ nop -/* 035E6C 7F00133C 5040001F */ beql $v0, $zero, .L7F0013BC -/* 035E70 7F001340 02002025 */ move $a0, $s0 -/* 035E74 7F001344 1000001D */ b .L7F0013BC -/* 035E78 7F001348 02002025 */ move $a0, $s0 -.L7F00134C: -/* 035E7C 7F00134C 0FC08CA4 */ jal load_body_head_if_not_loaded -/* 035E80 7F001350 92040001 */ lbu $a0, 1($s0) -/* 035E84 7F001354 82040002 */ lb $a0, 2($s0) -/* 035E88 7F001358 04820018 */ bltzl $a0, .L7F0013BC -/* 035E8C 7F00135C 02002025 */ move $a0, $s0 -/* 035E90 7F001360 0FC08CA4 */ jal load_body_head_if_not_loaded -/* 035E94 7F001364 00000000 */ nop -/* 035E98 7F001368 50400014 */ beql $v0, $zero, .L7F0013BC -/* 035E9C 7F00136C 02002025 */ move $a0, $s0 -/* 035EA0 7F001370 10000012 */ b .L7F0013BC -/* 035EA4 7F001374 02002025 */ move $a0, $s0 -/* 035EA8 7F001378 920A0001 */ lbu $t2, 1($s0) -.L7F00137C: -/* 035EAC 7F00137C 920C0002 */ lbu $t4, 2($s0) -/* 035EB0 7F001380 000A5A00 */ sll $t3, $t2, 8 -/* 035EB4 7F001384 0FC15B0E */ jal modelLoad -/* 035EB8 7F001388 016C2025 */ or $a0, $t3, $t4 -/* 035EBC 7F00138C 0FC015C4 */ jal weaponLoadProjectileModels -/* 035EC0 7F001390 92040003 */ lbu $a0, 3($s0) -/* 035EC4 7F001394 50400009 */ beql $v0, $zero, .L7F0013BC -/* 035EC8 7F001398 02002025 */ move $a0, $s0 -/* 035ECC 7F00139C 10000007 */ b .L7F0013BC -/* 035ED0 7F0013A0 02002025 */ move $a0, $s0 -/* 035ED4 7F0013A4 920D0001 */ lbu $t5, 1($s0) -.L7F0013A8: -/* 035ED8 7F0013A8 920F0002 */ lbu $t7, 2($s0) -/* 035EDC 7F0013AC 000D7200 */ sll $t6, $t5, 8 -/* 035EE0 7F0013B0 0FC15B0E */ jal modelLoad -/* 035EE4 7F0013B4 01CF2025 */ or $a0, $t6, $t7 -/* 035EE8 7F0013B8 02002025 */ move $a0, $s0 -.L7F0013BC: -/* 035EEC 7F0013BC 0FC0D27F */ jal chraiitemsize -/* 035EF0 7F0013C0 00002825 */ move $a1, $zero -/* 035EF4 7F0013C4 1000FFB9 */ b .L7F0012AC -/* 035EF8 7F0013C8 02028021 */ addu $s0, $s0, $v0 -.L7F0013CC: -/* 035EFC 7F0013CC 8C500008 */ lw $s0, 8($v0) -/* 035F00 7F0013D0 26F70008 */ addiu $s7, $s7, 8 -/* 035F04 7F0013D4 24420008 */ addiu $v0, $v0, 8 -/* 035F08 7F0013D8 5600FFB5 */ bnezl $s0, .L7F0012B0 -/* 035F0C 7F0013DC 92030000 */ lbu $v1, ($s0) -.L7F0013E0: -/* 035F10 7F0013E0 8FBF0034 */ lw $ra, 0x34($sp) -/* 035F14 7F0013E4 8FB00014 */ lw $s0, 0x14($sp) -/* 035F18 7F0013E8 8FB10018 */ lw $s1, 0x18($sp) -/* 035F1C 7F0013EC 8FB2001C */ lw $s2, 0x1c($sp) -/* 035F20 7F0013F0 8FB30020 */ lw $s3, 0x20($sp) -/* 035F24 7F0013F4 8FB40024 */ lw $s4, 0x24($sp) -/* 035F28 7F0013F8 8FB50028 */ lw $s5, 0x28($sp) -/* 035F2C 7F0013FC 8FB6002C */ lw $s6, 0x2c($sp) -/* 035F30 7F001400 8FB70030 */ lw $s7, 0x30($sp) -/* 035F34 7F001404 03E00008 */ jr $ra -/* 035F38 7F001408 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif -#ifdef NONMATCHING -void debug_weapon_load_table(void) { +void debug_weapon_load_table(void) +{ + WeaponProjectileModels tmp = weapon_models_for_weapon_load; + s32 i; + for (i = 0; tmp.array[i] >= 0; i++) + { + modelLoad(tmp.array[i]); + if (1); + } } -#else -GLOBAL_ASM( -.text -glabel debug_weapon_load_table -/* 035F3C 7F00140C 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 035F40 7F001410 3C0F8003 */ lui $t7, %hi(weapon_models_for_weapon_load) -/* 035F44 7F001414 AFBF001C */ sw $ra, 0x1c($sp) -/* 035F48 7F001418 AFB00018 */ sw $s0, 0x18($sp) -/* 035F4C 7F00141C 25EFA23C */ addiu $t7, %lo(weapon_models_for_weapon_load) # addiu $t7, $t7, -0x5dc4 -/* 035F50 7F001420 8DE10000 */ lw $at, ($t7) -/* 035F54 7F001424 8DE80004 */ lw $t0, 4($t7) -/* 035F58 7F001428 27AE0030 */ addiu $t6, $sp, 0x30 -/* 035F5C 7F00142C ADC10000 */ sw $at, ($t6) -/* 035F60 7F001430 ADC80004 */ sw $t0, 4($t6) -/* 035F64 7F001434 8DE8000C */ lw $t0, 0xc($t7) -/* 035F68 7F001438 8DE10008 */ lw $at, 8($t7) -/* 035F6C 7F00143C 27B00030 */ addiu $s0, $sp, 0x30 -/* 035F70 7F001440 ADC8000C */ sw $t0, 0xc($t6) -/* 035F74 7F001444 ADC10008 */ sw $at, 8($t6) -/* 035F78 7F001448 8DE10010 */ lw $at, 0x10($t7) -/* 035F7C 7F00144C 8DE80014 */ lw $t0, 0x14($t7) -/* 035F80 7F001450 ADC10010 */ sw $at, 0x10($t6) -/* 035F84 7F001454 ADC80014 */ sw $t0, 0x14($t6) -/* 035F88 7F001458 8DE8001C */ lw $t0, 0x1c($t7) -/* 035F8C 7F00145C 8DE10018 */ lw $at, 0x18($t7) -/* 035F90 7F001460 ADC8001C */ sw $t0, 0x1c($t6) -/* 035F94 7F001464 ADC10018 */ sw $at, 0x18($t6) -/* 035F98 7F001468 8FA90030 */ lw $t1, 0x30($sp) -/* 035F9C 7F00146C 05220009 */ bltzl $t1, .L7F001494 -/* 035FA0 7F001470 8FBF001C */ lw $ra, 0x1c($sp) -/* 035FA4 7F001474 8E040000 */ lw $a0, ($s0) -.L7F001478: -/* 035FA8 7F001478 0FC15B0E */ jal modelLoad -/* 035FAC 7F00147C 00000000 */ nop -/* 035FB0 7F001480 8E040004 */ lw $a0, 4($s0) -/* 035FB4 7F001484 26100004 */ addiu $s0, $s0, 4 -/* 035FB8 7F001488 0481FFFB */ bgez $a0, .L7F001478 -/* 035FBC 7F00148C 00000000 */ nop -/* 035FC0 7F001490 8FBF001C */ lw $ra, 0x1c($sp) -.L7F001494: -/* 035FC4 7F001494 8FB00018 */ lw $s0, 0x18($sp) -/* 035FC8 7F001498 27BD0050 */ addiu $sp, $sp, 0x50 -/* 035FCC 7F00149C 03E00008 */ jr $ra -/* 035FD0 7F0014A0 00000000 */ nop -) -#endif - - diff --git a/src/game/deb_loadallmodels.h b/src/game/deb_loadallmodels.h index 1876f3c1..9671c690 100644 --- a/src/game/deb_loadallmodels.h +++ b/src/game/deb_loadallmodels.h @@ -2,6 +2,22 @@ #define _DEB_LOADALLMODELS_H_ #include +typedef struct WeaponProjectileModels { + union { + struct { + s32 knife; + s32 grenade; + s32 remote; + s32 prox; + s32 timed; + s32 rocket; + s32 glaunch; + s32 none; + }; + s32 array[8]; + }; +} WeaponProjectileModels; + void init_obj_register_difficulty_vals(void); #endif diff --git a/src/game/debugmenu_handler.c b/src/game/debugmenu_handler.c index b30727b6..3707a9cd 100644 --- a/src/game/debugmenu_handler.c +++ b/src/game/debugmenu_handler.c @@ -644,7 +644,7 @@ s32 debug_menu_processor(s8 stick_h, s8 stick_v, u16 button_held, u16 button_pre player_pos_x.x = (f32) playerprop->position.x; player_pos_x.y = (f32) playerprop->position.y; player_pos_x.z = (f32) playerprop->position.z; - #ifdef DEBUG + #ifdef ENABLE_LOG osSyncPrintf("%s%sbond world pos=%f,%f,%f dist from prev=%f\n", "", "", diff --git a/src/game/decompress.c b/src/game/decompress.c index 5230aebd..72d73508 100644 --- a/src/game/decompress.c +++ b/src/game/decompress.c @@ -92,7 +92,7 @@ glabel decompressdata -s32 sub_GAME_7F0CE894(void) { +s32 rzipGetSomething(void) { return (rz_inbuf + rz_inptr); } diff --git a/src/game/decompress.h b/src/game/decompress.h index 8a35f596..6790d72f 100644 --- a/src/game/decompress.h +++ b/src/game/decompress.h @@ -5,6 +5,6 @@ u32 decompressdata(u8 *src, u8 *dst, struct huft *hlist); -s32 sub_GAME_7F0CE894(void); +s32 rzipGetSomething(void); #endif diff --git a/src/game/ejectedcartridges.c b/src/game/ejectedcartridges.c index 9479b043..6c38670e 100644 --- a/src/game/ejectedcartridges.c +++ b/src/game/ejectedcartridges.c @@ -1,58 +1,34 @@ #include #include "ejectedcartridges.h" +#include "bondtypes.h" +#include "gun.h" +// Copied from another file. Might need code reorganization to prevent the use of extra externs. +extern s32 dword_CODE_bss_80075DB0; +extern s32 dword_CODE_bss_80075DB4; +extern ALSoundState* dword_CODE_bss_80075DB8[4]; +extern u32 cartridges_eject; +extern u32 D_80034CA0; +extern CartridgeModelFileRecord ejected_cartridge[] ; +void init_ejected_cartridges(void) { + int i = 0; + dword_CODE_bss_80075DB0 = 0; + while (i < 4) + { + dword_CODE_bss_80075DB8[i] = NULL; + i++; + } -#ifdef NONMATCHING -void something_with_ejected_cartridges(void) { - -} -#else -GLOBAL_ASM( -.text -glabel something_with_ejected_cartridges -/* 039B70 7F005040 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 039B74 7F005044 3C018007 */ lui $at, %hi(dword_CODE_bss_80075DB0) -/* 039B78 7F005048 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DB8) -/* 039B7C 7F00504C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075DC8) -/* 039B80 7F005050 AFBF001C */ sw $ra, 0x1c($sp) -/* 039B84 7F005054 AFB10018 */ sw $s1, 0x18($sp) -/* 039B88 7F005058 AFB00014 */ sw $s0, 0x14($sp) -/* 039B8C 7F00505C AC205DB0 */ sw $zero, %lo(dword_CODE_bss_80075DB0)($at) -/* 039B90 7F005060 24635DC8 */ addiu $v1, %lo(dword_CODE_bss_80075DC8) # addiu $v1, $v1, 0x5dc8 -/* 039B94 7F005064 24425DB8 */ addiu $v0, %lo(dword_CODE_bss_80075DB8) # addiu $v0, $v0, 0x5db8 -.L7F005068: -/* 039B98 7F005068 24420004 */ addiu $v0, $v0, 4 -/* 039B9C 7F00506C 0043082B */ sltu $at, $v0, $v1 -/* 039BA0 7F005070 1420FFFD */ bnez $at, .L7F005068 -/* 039BA4 7F005074 AC40FFFC */ sw $zero, -4($v0) -/* 039BA8 7F005078 3C0E8003 */ lui $t6, %hi(ejected_cartridge) -/* 039BAC 7F00507C 8DCE246C */ lw $t6, %lo(ejected_cartridge)($t6) -/* 039BB0 7F005080 3C018003 */ lui $at, %hi(cartridges_eject) -/* 039BB4 7F005084 AC204C9C */ sw $zero, %lo(cartridges_eject)($at) -/* 039BB8 7F005088 3C018003 */ lui $at, %hi(D_80034CA0) -/* 039BBC 7F00508C 11C0000B */ beqz $t6, .L7F0050BC -/* 039BC0 7F005090 AC204CA0 */ sw $zero, %lo(D_80034CA0)($at) -/* 039BC4 7F005094 3C0F8003 */ lui $t7, %hi(ejected_cartridge) -/* 039BC8 7F005098 25F0246C */ addiu $s0, $t7, %lo(ejected_cartridge) -/* 039BCC 7F00509C 8E110000 */ lw $s1, ($s0) -/* 039BD0 7F0050A0 02202025 */ move $a0, $s1 -.L7F0050A4: -/* 039BD4 7F0050A4 0FC1D953 */ jal fileLoad -/* 039BD8 7F0050A8 8E050004 */ lw $a1, 4($s0) -/* 039BDC 7F0050AC 8E110008 */ lw $s1, 8($s0) -/* 039BE0 7F0050B0 26100008 */ addiu $s0, $s0, 8 -/* 039BE4 7F0050B4 5620FFFB */ bnezl $s1, .L7F0050A4 -/* 039BE8 7F0050B8 02202025 */ move $a0, $s1 -.L7F0050BC: -/* 039BEC 7F0050BC 8FBF001C */ lw $ra, 0x1c($sp) -/* 039BF0 7F0050C0 8FB00014 */ lw $s0, 0x14($sp) -/* 039BF4 7F0050C4 8FB10018 */ lw $s1, 0x18($sp) -/* 039BF8 7F0050C8 03E00008 */ jr $ra -/* 039BFC 7F0050CC 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif + i = 0; + cartridges_eject = 0; + D_80034CA0 = 0; + while (ejected_cartridge[i].header != 0) { + fileLoad(ejected_cartridge[i].header, ejected_cartridge[i].text); + i++; + } +} \ No newline at end of file diff --git a/src/game/ejectedcartridges.h b/src/game/ejectedcartridges.h index 5fe8c914..9e660797 100644 --- a/src/game/ejectedcartridges.h +++ b/src/game/ejectedcartridges.h @@ -2,6 +2,6 @@ #define _EJECTEDCARTRIDGES_H_ #include -void something_with_ejected_cartridges(void); +void init_ejected_cartridges(void); #endif diff --git a/src/game/explosions.c b/src/game/explosions.c index b45d2d2e..6f377653 100644 --- a/src/game/explosions.c +++ b/src/game/explosions.c @@ -4,11 +4,15 @@ #include #include #include +#include #include "bg.h" #include "image_bank.h" #include "othermodemicrocode.h" #include "explosions.h" #include "unk_0BC530.h" +#include "lvl.h" +#include "random.h" +#include "fr.h" #include // bss @@ -28,9 +32,9 @@ struct Smoke *ptr_smoke_buf; struct Explosion *ptr_explosion_buf; //CODE.bss:8007A148 -s32 max_casings; +s32 max_particles; //CODE.bss:8007A14C -struct EjectedCasing *ptr_ejected_casing_buf; +struct FlyingParticles *ptr_flying_particles_buf; /** * ptr_scorch_buf = mempAllocBytesInBank(0x6E0, 4); @@ -155,7 +159,7 @@ u32 array_explosion_dl_ptrs[] = { &globalDL_0x900, &globalDL_0x9a8 }; -s32 numCasingEntries = 0; +s32 numParticleEntries = 0; s32 numScorchEntries = 0; s32 numImpactEntries = 0; //D:8004080C @@ -484,7 +488,7 @@ glabel explosionCreate /* 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 +/* 0D1130 7F09C600 0FC27C95 */ jal init_gray_flying_particles /* 0D1134 7F09C604 E7A80010 */ swc1 $f8, 0x10($sp) /* 0D1138 7F09C608 8FB90044 */ lw $t9, 0x44($sp) /* 0D113C 7F09C60C 26100001 */ addiu $s0, $s0, 1 @@ -848,7 +852,7 @@ glabel explosionCreate /* 0D1CD0 7F09D160 8E260030 */ lw $a2, 0x30($s1) /* 0D1CD4 7F09D164 8E270034 */ lw $a3, 0x34($s1) /* 0D1CD8 7F09D168 02602025 */ move $a0, $s3 -/* 0D1CDC 7F09D16C 0FC27F7E */ jal sub_GAME_7F09F254 +/* 0D1CDC 7F09D16C 0FC27F7E */ jal init_gray_flying_particles /* 0D1CE0 7F09D170 E7A80010 */ swc1 $f8, 0x10($sp) /* 0D1CE4 7F09D174 8FB9004C */ lw $t9, 0x4c($sp) /* 0D1CE8 7F09D178 26100001 */ addiu $s0, $s0, 1 @@ -979,331 +983,75 @@ void setSixExplosionAndSmokeEntries(void) { } +void sub_GAME_7F09C7C4(coord3d* arg0, coord3d* arg1, coord3d* arg2) +{ + PropRecord* explosion_prop; + f32 angle; + f32 diff_x; + f32 diff_z; + f32 mag_scalar_x; + f32 mag_scalar_z; + f32 diff_y; + f32 explosion_mag; + s32 i; + f32 dist; + f32 dist2; + if (numExplosionEntries == 0) + { + viShake(0.0f); + return; + } -#ifdef NONMATCHING -void sub_GAME_7F09C7C4(void) { + angle = 0.8f; + mag_scalar_x = (cosf(angle) * arg1->x) - (sinf(angle) * arg1->f[2]); + mag_scalar_z = (sinf(angle) * arg1->x) + (cosf(angle) * arg1->f[2]); -} -#else -#ifdef VERSION_US -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(numExplosionEntries) -/* 0D12FC 7F09C7CC 8DCE0170 */ lw $t6, %lo(numExplosionEntries)($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 viShake -/* 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(array_explosion_types) -/* 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(array_explosion_types) # 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(numSmokeEntries) -/* 0D1450 7F09C920 24630174 */ addiu $v1, %lo(numSmokeEntries) # 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(numExplosionEntries) -/* 0D1478 7F09C948 24420170 */ addiu $v0, %lo(numExplosionEntries) # 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 viShake -/* 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 + explosion_mag = 0.0f; + for (i = 0; i < EXPLOSION_BUFFER_LEN; i++) + { + explosion_prop = ptr_explosion_buf[i].prop; + if (explosion_prop != NULL) + { + diff_x = explosion_prop->pos.x - arg0->x; + diff_y = explosion_prop->pos.y - arg0->y; + diff_z = explosion_prop->pos.z - arg0->z; #ifndef VERSION_US -GLOBAL_ASM( -.late_rodata -glabel D_800576B8 -.word 0x3f4ccccd /*0.80000001*/ -.word 0x38d1b717 -.text -glabel sub_GAME_7F09C7C4 -/* 0D1EA8 7F09D338 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0D1EAC 7F09D33C 3C0E8004 */ lui $t6, %hi(numExplosionEntries) # $t6, 0x8004 -/* 0D1EB0 7F09D340 8DCE01A0 */ lw $t6, %lo(numExplosionEntries)($t6) -/* 0D1EB4 7F09D344 AFB20040 */ sw $s2, 0x40($sp) -/* 0D1EB8 7F09D348 AFB1003C */ sw $s1, 0x3c($sp) -/* 0D1EBC 7F09D34C 00808825 */ move $s1, $a0 -/* 0D1EC0 7F09D350 00A09025 */ move $s2, $a1 -/* 0D1EC4 7F09D354 AFBF004C */ sw $ra, 0x4c($sp) -/* 0D1EC8 7F09D358 AFB40048 */ sw $s4, 0x48($sp) -/* 0D1ECC 7F09D35C AFB30044 */ sw $s3, 0x44($sp) -/* 0D1ED0 7F09D360 AFB00038 */ sw $s0, 0x38($sp) -/* 0D1ED4 7F09D364 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* 0D1ED8 7F09D368 F7B80028 */ sdc1 $f24, 0x28($sp) -/* 0D1EDC 7F09D36C F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0D1EE0 7F09D370 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0D1EE4 7F09D374 15C00006 */ bnez $t6, .Ljp7F09D390 -/* 0D1EE8 7F09D378 AFA60070 */ sw $a2, 0x70($sp) -/* 0D1EEC 7F09D37C 44806000 */ mtc1 $zero, $f12 -/* 0D1EF0 7F09D380 0C000EC1 */ jal viShake -/* 0D1EF4 7F09D384 00000000 */ nop -/* 0D1EF8 7F09D388 10000071 */ b .Ljp7F09D550 -/* 0D1EFC 7F09D38C 8FBF004C */ lw $ra, 0x4c($sp) -.Ljp7F09D390: -/* 0D1F00 7F09D390 3C018005 */ lui $at, %hi(D_800576B8) # $at, 0x8005 -/* 0D1F04 7F09D394 C43476E8 */ lwc1 $f20, %lo(D_800576B8)($at) -/* 0D1F08 7F09D398 0FC160F0 */ jal cosf -/* 0D1F0C 7F09D39C 4600A306 */ mov.s $f12, $f20 -/* 0D1F10 7F09D3A0 46000606 */ mov.s $f24, $f0 -/* 0D1F14 7F09D3A4 0FC160F3 */ jal sinf -/* 0D1F18 7F09D3A8 4600A306 */ mov.s $f12, $f20 -/* 0D1F1C 7F09D3AC C6440000 */ lwc1 $f4, ($s2) -/* 0D1F20 7F09D3B0 C6480008 */ lwc1 $f8, 8($s2) -/* 0D1F24 7F09D3B4 4600A306 */ mov.s $f12, $f20 -/* 0D1F28 7F09D3B8 4604C182 */ mul.s $f6, $f24, $f4 -/* 0D1F2C 7F09D3BC 00000000 */ nop -/* 0D1F30 7F09D3C0 46004282 */ mul.s $f10, $f8, $f0 -/* 0D1F34 7F09D3C4 460A3401 */ sub.s $f16, $f6, $f10 -/* 0D1F38 7F09D3C8 0FC160F3 */ jal sinf -/* 0D1F3C 7F09D3CC E7B00054 */ swc1 $f16, 0x54($sp) -/* 0D1F40 7F09D3D0 46000606 */ mov.s $f24, $f0 -/* 0D1F44 7F09D3D4 0FC160F0 */ jal cosf -/* 0D1F48 7F09D3D8 4600A306 */ mov.s $f12, $f20 -/* 0D1F4C 7F09D3DC C6520008 */ lwc1 $f18, 8($s2) -/* 0D1F50 7F09D3E0 C6480000 */ lwc1 $f8, ($s2) -/* 0D1F54 7F09D3E4 4480B000 */ mtc1 $zero, $f22 -/* 0D1F58 7F09D3E8 46009102 */ mul.s $f4, $f18, $f0 -/* 0D1F5C 7F09D3EC 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 0D1F60 7F09D3F0 4481D000 */ mtc1 $at, $f26 -/* 0D1F64 7F09D3F4 4608C182 */ mul.s $f6, $f24, $f8 -/* 0D1F68 7F09D3F8 3C018005 */ lui $at, %hi(D_800576B8+0x4) # $at, 0x8005 -/* 0D1F6C 7F09D3FC 3C128004 */ lui $s2, %hi(array_explosion_types) # $s2, 0x8004 -/* 0D1F70 7F09D400 3C028008 */ lui $v0, %hi(ptr_explosion_buf) # $v0, 0x8008 -/* 0D1F74 7F09D404 3C138008 */ lui $s3, %hi(ptr_explosion_buf) # $s3, 0x8008 -/* 0D1F78 7F09D408 2673A1B4 */ addiu $s3, %lo(ptr_explosion_buf) # addiu $s3, $s3, -0x5e4c -/* 0D1F7C 7F09D40C 8C42A1B4 */ lw $v0, %lo(ptr_explosion_buf)($v0) -/* 0D1F80 7F09D410 46062280 */ add.s $f10, $f4, $f6 -/* 0D1F84 7F09D414 265202B4 */ addiu $s2, %lo(array_explosion_types) # addiu $s2, $s2, 0x2b4 -/* 0D1F88 7F09D418 C43876EC */ lwc1 $f24, %lo(D_800576B8+0x4)($at) -/* 0D1F8C 7F09D41C 00008025 */ move $s0, $zero -/* 0D1F90 7F09D420 E7AA0050 */ swc1 $f10, 0x50($sp) -/* 0D1F94 7F09D424 24141740 */ li $s4, 5952 -/* 0D1F98 7F09D428 4600B506 */ mov.s $f20, $f22 -.Ljp7F09D42C: -/* 0D1F9C 7F09D42C 8C430000 */ lw $v1, ($v0) -/* 0D1FA0 7F09D430 5060001F */ beql $v1, $zero, .Ljp7F09D4B0 -/* 0D1FA4 7F09D434 261003E0 */ addiu $s0, $s0, 0x3e0 -/* 0D1FA8 7F09D438 C4700008 */ lwc1 $f16, 8($v1) -/* 0D1FAC 7F09D43C C6320000 */ lwc1 $f18, ($s1) -/* 0D1FB0 7F09D440 C468000C */ lwc1 $f8, 0xc($v1) -/* 0D1FB4 7F09D444 C6240004 */ lwc1 $f4, 4($s1) -/* 0D1FB8 7F09D448 46128001 */ sub.s $f0, $f16, $f18 -/* 0D1FBC 7F09D44C C4660010 */ lwc1 $f6, 0x10($v1) -/* 0D1FC0 7F09D450 C62A0008 */ lwc1 $f10, 8($s1) -/* 0D1FC4 7F09D454 46044081 */ sub.s $f2, $f8, $f4 -/* 0D1FC8 7F09D458 46000402 */ mul.s $f16, $f0, $f0 -/* 0D1FCC 7F09D45C 460A3381 */ sub.s $f14, $f6, $f10 -/* 0D1FD0 7F09D460 46021482 */ mul.s $f18, $f2, $f2 -/* 0D1FD4 7F09D464 46128200 */ add.s $f8, $f16, $f18 -/* 0D1FD8 7F09D468 460E7102 */ mul.s $f4, $f14, $f14 -/* 0D1FDC 7F09D46C 0C007E08 */ jal sqrtf -/* 0D1FE0 7F09D470 46044300 */ add.s $f12, $f8, $f4 -/* 0D1FE4 7F09D474 46160032 */ c.eq.s $f0, $f22 -/* 0D1FE8 7F09D478 46000086 */ mov.s $f2, $f0 -/* 0D1FEC 7F09D47C 45020003 */ bc1fl .Ljp7F09D48C -/* 0D1FF0 7F09D480 8E6F0000 */ lw $t7, ($s3) -/* 0D1FF4 7F09D484 4600C086 */ mov.s $f2, $f24 -/* 0D1FF8 7F09D488 8E6F0000 */ lw $t7, ($s3) -.Ljp7F09D48C: -/* 0D1FFC 7F09D48C 01F01021 */ addu $v0, $t7, $s0 -/* 0D2000 7F09D490 805803CC */ lb $t8, 0x3cc($v0) -/* 0D2004 7F09D494 0018C980 */ sll $t9, $t8, 6 -/* 0D2008 7F09D498 02594021 */ addu $t0, $s2, $t9 -/* 0D200C 7F09D49C C5060010 */ lwc1 $f6, 0x10($t0) -/* 0D2010 7F09D4A0 46023003 */ div.s $f0, $f6, $f2 -/* 0D2014 7F09D4A4 461A0282 */ mul.s $f10, $f0, $f26 -/* 0D2018 7F09D4A8 460AA500 */ add.s $f20, $f20, $f10 -/* 0D201C 7F09D4AC 261003E0 */ addiu $s0, $s0, 0x3e0 -.Ljp7F09D4B0: -/* 0D2020 7F09D4B0 1614FFDE */ bne $s0, $s4, .Ljp7F09D42C -/* 0D2024 7F09D4B4 244203E0 */ addiu $v0, $v0, 0x3e0 -/* 0D2028 7F09D4B8 3C038004 */ lui $v1, %hi(numSmokeEntries) # $v1, 0x8004 -/* 0D202C 7F09D4BC 246301A4 */ addiu $v1, %lo(numSmokeEntries) # addiu $v1, $v1, 0x1a4 -/* 0D2030 7F09D4C0 8C620000 */ lw $v0, ($v1) -/* 0D2034 7F09D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0D2038 7F09D4C8 18400005 */ blez $v0, .Ljp7F09D4E0 -/* 0D203C 7F09D4CC 00000000 */ nop -/* 0D2040 7F09D4D0 44818000 */ mtc1 $at, $f16 -/* 0D2044 7F09D4D4 2449FFFF */ addiu $t1, $v0, -1 -/* 0D2048 7F09D4D8 AC690000 */ sw $t1, ($v1) -/* 0D204C 7F09D4DC 4610A500 */ add.s $f20, $f20, $f16 -.Ljp7F09D4E0: -/* 0D2050 7F09D4E0 3C028004 */ lui $v0, %hi(numExplosionEntries) # $v0, 0x8004 -/* 0D2054 7F09D4E4 244201A0 */ addiu $v0, %lo(numExplosionEntries) # addiu $v0, $v0, 0x1a0 -/* 0D2058 7F09D4E8 8C4A0000 */ lw $t2, ($v0) -/* 0D205C 7F09D4EC 254BFFFF */ addiu $t3, $t2, -1 -/* 0D2060 7F09D4F0 316D0002 */ andi $t5, $t3, 2 -/* 0D2064 7F09D4F4 11A00005 */ beqz $t5, .Ljp7F09D50C -/* 0D2068 7F09D4F8 AC4B0000 */ sw $t3, ($v0) -/* 0D206C 7F09D4FC 8FA30070 */ lw $v1, 0x70($sp) -/* 0D2070 7F09D500 E4740004 */ swc1 $f20, 4($v1) -/* 0D2074 7F09D504 10000004 */ b .Ljp7F09D518 -/* 0D2078 7F09D508 4600A507 */ neg.s $f20, $f20 -.Ljp7F09D50C: -/* 0D207C 7F09D50C 8FA30070 */ lw $v1, 0x70($sp) -/* 0D2080 7F09D510 4600A487 */ neg.s $f18, $f20 -/* 0D2084 7F09D514 E4720004 */ swc1 $f18, 4($v1) -.Ljp7F09D518: -/* 0D2088 7F09D518 C7A80054 */ lwc1 $f8, 0x54($sp) -/* 0D208C 7F09D51C 4608A102 */ mul.s $f4, $f20, $f8 -/* 0D2090 7F09D520 E4640000 */ swc1 $f4, ($v1) -/* 0D2094 7F09D524 C7A60050 */ lwc1 $f6, 0x50($sp) -/* 0D2098 7F09D528 4606A282 */ mul.s $f10, $f20, $f6 -/* 0D209C 7F09D52C E46A0008 */ swc1 $f10, 8($v1) -/* 0D20A0 7F09D530 8C4F0000 */ lw $t7, ($v0) -/* 0D20A4 7F09D534 448F8000 */ mtc1 $t7, $f16 -/* 0D20A8 7F09D538 00000000 */ nop -/* 0D20AC 7F09D53C 468084A0 */ cvt.s.w $f18, $f16 -/* 0D20B0 7F09D540 46149302 */ mul.s $f12, $f18, $f20 -/* 0D20B4 7F09D544 0C000EC1 */ jal viShake -/* 0D20B8 7F09D548 00000000 */ nop -/* 0D20BC 7F09D54C 8FBF004C */ lw $ra, 0x4c($sp) -.Ljp7F09D550: -/* 0D20C0 7F09D550 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0D20C4 7F09D554 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0D20C8 7F09D558 D7B80028 */ ldc1 $f24, 0x28($sp) -/* 0D20CC 7F09D55C D7BA0030 */ ldc1 $f26, 0x30($sp) -/* 0D20D0 7F09D560 8FB00038 */ lw $s0, 0x38($sp) -/* 0D20D4 7F09D564 8FB1003C */ lw $s1, 0x3c($sp) -/* 0D20D8 7F09D568 8FB20040 */ lw $s2, 0x40($sp) -/* 0D20DC 7F09D56C 8FB30044 */ lw $s3, 0x44($sp) -/* 0D20E0 7F09D570 8FB40048 */ lw $s4, 0x48($sp) -/* 0D20E4 7F09D574 03E00008 */ jr $ra -/* 0D20E8 7F09D578 27BD0068 */ addiu $sp, $sp, 0x68 -) + dist = sqrtf((diff_x * diff_x) + (diff_y * diff_y) + (diff_z * diff_z)); + if (dist == 0.0f) { dist = 0.0001f; } + dist2 = array_explosion_types[ptr_explosion_buf[i].unk3CC].explosion_size / dist; +#else + dist = (diff_x * diff_x) + (diff_y * diff_y) + (diff_z * diff_z); + dist2 = array_explosion_types[ptr_explosion_buf[i].unk3CC].explosion_size / sqrtf(dist); #endif + explosion_mag += dist2 * 15.0f; + } + } + if (numSmokeEntries > 0) + { + numSmokeEntries--; + explosion_mag++; + } -#endif + numExplosionEntries--; + if (numExplosionEntries & 2) + { + arg2->y = explosion_mag; + explosion_mag = -explosion_mag; + } + else + { + arg2->y = -explosion_mag; + } + arg2->x = explosion_mag * mag_scalar_x; + arg2->z = explosion_mag * mag_scalar_z; + + viShake((f32) numExplosionEntries * explosion_mag); +} #ifdef NONMATCHING @@ -2099,70 +1847,29 @@ glabel sub_GAME_7F09CEE8 #endif +u8 sub_GAME_7F09D4EC(PropRecord* prop) +{ + Mtxf* player_matrix; + player_matrix = currentPlayerGetMatrix10CC(); + prop->Unk18 = -((((player_matrix->m[0][2] * prop->pos.x) + (player_matrix->m[1][2] * prop->pos.y)) + (player_matrix->m[2][2] * prop->pos.z)) + player_matrix->m[3][2]); + if (prop->Unk18 < 100.0f) + { + prop->Unk18 *= 0.5f; + } + else + { + prop->Unk18 -= 100.0f; + } -#ifdef NONMATCHING -void sub_GAME_7F09D4EC(void) { + if (g_ClockTimer == 0) + { + return 0; + } + return 0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F09D4EC -/* 0D201C 7F09D4EC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D2020 7F09D4F0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D2024 7F09D4F4 0FC1E0F1 */ jal currentPlayerGetMatrix10CC -/* 0D2028 7F09D4F8 AFA40018 */ sw $a0, 0x18($sp) -/* 0D202C 7F09D4FC 8FA40018 */ lw $a0, 0x18($sp) -/* 0D2030 7F09D500 C4440008 */ lwc1 $f4, 8($v0) -/* 0D2034 7F09D504 C44A0018 */ lwc1 $f10, 0x18($v0) -/* 0D2038 7F09D508 C4860008 */ lwc1 $f6, 8($a0) -/* 0D203C 7F09D50C C490000C */ lwc1 $f16, 0xc($a0) -/* 0D2040 7F09D510 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0D2044 7F09D514 46062202 */ mul.s $f8, $f4, $f6 -/* 0D2048 7F09D518 C4460028 */ lwc1 $f6, 0x28($v0) -/* 0D204C 7F09D51C 44811000 */ mtc1 $at, $f2 -/* 0D2050 7F09D520 46105482 */ mul.s $f18, $f10, $f16 -/* 0D2054 7F09D524 C48A0010 */ lwc1 $f10, 0x10($a0) -/* 0D2058 7F09D528 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0D205C 7F09D52C 3C0E8005 */ lui $t6, %hi(g_ClockTimer) -/* 0D2060 7F09D530 460A3402 */ mul.s $f16, $f6, $f10 -/* 0D2064 7F09D534 46124100 */ add.s $f4, $f8, $f18 -/* 0D2068 7F09D538 C4520038 */ lwc1 $f18, 0x38($v0) -/* 0D206C 7F09D53C 00001025 */ move $v0, $zero -/* 0D2070 7F09D540 46102200 */ add.s $f8, $f4, $f16 -/* 0D2074 7F09D544 46089180 */ add.s $f6, $f18, $f8 -/* 0D2078 7F09D548 46003287 */ neg.s $f10, $f6 -/* 0D207C 7F09D54C E48A0018 */ swc1 $f10, 0x18($a0) -/* 0D2080 7F09D550 C4800018 */ lwc1 $f0, 0x18($a0) -/* 0D2084 7F09D554 4602003C */ c.lt.s $f0, $f2 -/* 0D2088 7F09D558 00000000 */ nop -/* 0D208C 7F09D55C 45020007 */ bc1fl .L7F09D57C -/* 0D2090 7F09D560 46020481 */ sub.s $f18, $f0, $f2 -/* 0D2094 7F09D564 44812000 */ mtc1 $at, $f4 -/* 0D2098 7F09D568 00000000 */ nop -/* 0D209C 7F09D56C 46040402 */ mul.s $f16, $f0, $f4 -/* 0D20A0 7F09D570 10000003 */ b .L7F09D580 -/* 0D20A4 7F09D574 E4900018 */ swc1 $f16, 0x18($a0) -/* 0D20A8 7F09D578 46020481 */ sub.s $f18, $f0, $f2 -.L7F09D57C: -/* 0D20AC 7F09D57C E4920018 */ swc1 $f18, 0x18($a0) -.L7F09D580: -/* 0D20B0 7F09D580 8DCE8374 */ lw $t6, %lo(g_ClockTimer)($t6) -/* 0D20B4 7F09D584 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D20B8 7F09D588 15C00003 */ bnez $t6, .L7F09D598 -/* 0D20BC 7F09D58C 00000000 */ nop -/* 0D20C0 7F09D590 10000001 */ b .L7F09D598 -/* 0D20C4 7F09D594 00001025 */ move $v0, $zero -.L7F09D598: -/* 0D20C8 7F09D598 03E00008 */ jr $ra -/* 0D20CC 7F09D59C 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - - - #ifdef NONMATCHING @@ -3357,139 +3064,64 @@ glabel sub_GAME_7F09DDA4 #endif +void sub_GAME_7F09E700(coord3d *pos, StandTile *stan, s16 arg2, u8 *rooms, s32 arg4) +{ + struct Smoke *smoke; + struct Smoke *smoke_tmp; + s32 i; + s32 player_count; + PropRecord *prop; + smoke = NULL; + player_count = getPlayerCount(); + for (i = 0; i < 20; i++) + { + if (ptr_smoke_buf[i].prop == NULL) + { + smoke = &ptr_smoke_buf[i]; + break; + } + else if (player_count >= 2) + { + smoke_tmp = (i + ptr_smoke_buf); + if (((smoke_tmp->unk06 != 7) && (smoke_tmp->unk06 != 8)) && (smoke_tmp->unk06 != 9)) + { + smoke_tmp->unk04 = (s16) array_smoke_types[smoke_tmp->unk06].duration; + } + } + } -#ifdef NONMATCHING -void sub_GAME_7F09E700(void) { + if (smoke == NULL) { return; } + prop = chrpropAllocate(); + if (prop == NULL) { return; } + + prop->type = 8; + prop->flags |= 2; + prop->smoke = smoke; + prop->stan = stan; + prop->pos.x = pos->x; + prop->pos.y = pos->y; + prop->pos.z = pos->z; + + for (i = 0; (rooms[i] != 0xFF) && (i < 7); i++) + { + prop->rooms[i] = rooms[i]; + } + prop->rooms[i] = 0xFF; + + if (arg4 != 0) + { + prop->flags |= 8; + } + + chrpropActivateThisFrame(prop); + chrpropEnable(prop); + smoke->prop = prop; + smoke->unk04 = 0; + smoke->unk06 = arg2; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F09E700 -/* 0D3230 7F09E700 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0D3234 7F09E704 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D3238 7F09E708 AFA40030 */ sw $a0, 0x30($sp) -/* 0D323C 7F09E70C AFA50034 */ sw $a1, 0x34($sp) -/* 0D3240 7F09E710 AFA60038 */ sw $a2, 0x38($sp) -/* 0D3244 7F09E714 AFA7003C */ sw $a3, 0x3c($sp) -/* 0D3248 7F09E718 0FC26919 */ jal getPlayerCount -/* 0D324C 7F09E71C AFA0002C */ sw $zero, 0x2c($sp) -/* 0D3250 7F09E720 3C0B8004 */ lui $t3, %hi(array_smoke_types) -/* 0D3254 7F09E724 3C078008 */ lui $a3, %hi(ptr_smoke_buf) -/* 0D3258 7F09E728 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D325C 7F09E72C 24E7A140 */ addiu $a3, %lo(ptr_smoke_buf) # addiu $a3, $a3, -0x5ec0 -/* 0D3260 7F09E730 256B017C */ addiu $t3, %lo(array_smoke_types) # addiu $t3, $t3, 0x17c -/* 0D3264 7F09E734 00002025 */ move $a0, $zero -/* 0D3268 7F09E738 240C0018 */ li $t4, 24 -/* 0D326C 7F09E73C 240A0009 */ li $t2, 9 -/* 0D3270 7F09E740 24090008 */ li $t1, 8 -/* 0D3274 7F09E744 24080007 */ li $t0, 7 -/* 0D3278 7F09E748 8CE50000 */ lw $a1, ($a3) -.L7F09E74C: -/* 0D327C 7F09E74C 28410002 */ slti $at, $v0, 2 -/* 0D3280 7F09E750 00A47021 */ addu $t6, $a1, $a0 -/* 0D3284 7F09E754 8DCF0000 */ lw $t7, ($t6) -/* 0D3288 7F09E758 00853021 */ addu $a2, $a0, $a1 -/* 0D328C 7F09E75C 15E00003 */ bnez $t7, .L7F09E76C -/* 0D3290 7F09E760 00000000 */ nop -/* 0D3294 7F09E764 10000012 */ b .L7F09E7B0 -/* 0D3298 7F09E768 00856821 */ addu $t5, $a0, $a1 -.L7F09E76C: -/* 0D329C 7F09E76C 1420000D */ bnez $at, .L7F09E7A4 -/* 0D32A0 7F09E770 24840198 */ addiu $a0, $a0, 0x198 -/* 0D32A4 7F09E774 84C30006 */ lh $v1, 6($a2) -/* 0D32A8 7F09E778 5103000B */ beql $t0, $v1, .L7F09E7A8 -/* 0D32AC 7F09E77C 28811FE0 */ slti $at, $a0, 0x1fe0 -/* 0D32B0 7F09E780 51230009 */ beql $t1, $v1, .L7F09E7A8 -/* 0D32B4 7F09E784 28811FE0 */ slti $at, $a0, 0x1fe0 -/* 0D32B8 7F09E788 51430007 */ beql $t2, $v1, .L7F09E7A8 -/* 0D32BC 7F09E78C 28811FE0 */ slti $at, $a0, 0x1fe0 -/* 0D32C0 7F09E790 006C0019 */ multu $v1, $t4 -/* 0D32C4 7F09E794 0000C012 */ mflo $t8 -/* 0D32C8 7F09E798 0178C821 */ addu $t9, $t3, $t8 -/* 0D32CC 7F09E79C 872E0000 */ lh $t6, ($t9) -/* 0D32D0 7F09E7A0 A4CE0004 */ sh $t6, 4($a2) -.L7F09E7A4: -/* 0D32D4 7F09E7A4 28811FE0 */ slti $at, $a0, 0x1fe0 -.L7F09E7A8: -/* 0D32D8 7F09E7A8 5420FFE8 */ bnezl $at, .L7F09E74C -/* 0D32DC 7F09E7AC 8CE50000 */ lw $a1, ($a3) -.L7F09E7B0: -/* 0D32E0 7F09E7B0 51A0003B */ beql $t5, $zero, .L7F09E8A0 -/* 0D32E4 7F09E7B4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D32E8 7F09E7B8 0FC0E90C */ jal chrpropAllocate -/* 0D32EC 7F09E7BC AFAD002C */ sw $t5, 0x2c($sp) -/* 0D32F0 7F09E7C0 24080007 */ li $t0, 7 -/* 0D32F4 7F09E7C4 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D32F8 7F09E7C8 8FBF0030 */ lw $ra, 0x30($sp) -/* 0D32FC 7F09E7CC 10400033 */ beqz $v0, .L7F09E89C -/* 0D3300 7F09E7D0 AFA2001C */ sw $v0, 0x1c($sp) -/* 0D3304 7F09E7D4 90580001 */ lbu $t8, 1($v0) -/* 0D3308 7F09E7D8 8FA9003C */ lw $t1, 0x3c($sp) -/* 0D330C 7F09E7DC 240F0008 */ li $t7, 8 -/* 0D3310 7F09E7E0 37190002 */ ori $t9, $t8, 2 -/* 0D3314 7F09E7E4 A04F0000 */ sb $t7, ($v0) -/* 0D3318 7F09E7E8 A0590001 */ sb $t9, 1($v0) -/* 0D331C 7F09E7EC AC4D0004 */ sw $t5, 4($v0) -/* 0D3320 7F09E7F0 8FAE0034 */ lw $t6, 0x34($sp) -/* 0D3324 7F09E7F4 240700FF */ li $a3, 255 -/* 0D3328 7F09E7F8 00003025 */ move $a2, $zero -/* 0D332C 7F09E7FC AC4E0014 */ sw $t6, 0x14($v0) -/* 0D3330 7F09E800 C7E40000 */ lwc1 $f4, ($ra) -/* 0D3334 7F09E804 00402821 */ addu $a1, $v0, $zero -/* 0D3338 7F09E808 241800FF */ li $t8, 255 -/* 0D333C 7F09E80C E4440008 */ swc1 $f4, 8($v0) -/* 0D3340 7F09E810 C7E60004 */ lwc1 $f6, 4($ra) -/* 0D3344 7F09E814 01201821 */ addu $v1, $t1, $zero -/* 0D3348 7F09E818 E446000C */ swc1 $f6, 0xc($v0) -/* 0D334C 7F09E81C C7E80008 */ lwc1 $f8, 8($ra) -/* 0D3350 7F09E820 E4480010 */ swc1 $f8, 0x10($v0) -/* 0D3354 7F09E824 912F0000 */ lbu $t7, ($t1) -/* 0D3358 7F09E828 10EF0009 */ beq $a3, $t7, .L7F09E850 -/* 0D335C 7F09E82C 31E400FF */ andi $a0, $t7, 0xff -/* 0D3360 7F09E830 A0A4002C */ sb $a0, 0x2c($a1) -.L7F09E834: -/* 0D3364 7F09E834 90640001 */ lbu $a0, 1($v1) -/* 0D3368 7F09E838 24C60001 */ addiu $a2, $a2, 1 -/* 0D336C 7F09E83C 24630001 */ addiu $v1, $v1, 1 -/* 0D3370 7F09E840 10E40003 */ beq $a3, $a0, .L7F09E850 -/* 0D3374 7F09E844 24A50001 */ addiu $a1, $a1, 1 -/* 0D3378 7F09E848 54C8FFFA */ bnel $a2, $t0, .L7F09E834 -/* 0D337C 7F09E84C A0A4002C */ sb $a0, 0x2c($a1) -.L7F09E850: -/* 0D3380 7F09E850 0046C821 */ addu $t9, $v0, $a2 -/* 0D3384 7F09E854 A338002C */ sb $t8, 0x2c($t9) -/* 0D3388 7F09E858 8FAE0040 */ lw $t6, 0x40($sp) -/* 0D338C 7F09E85C 51C00005 */ beql $t6, $zero, .L7F09E874 -/* 0D3390 7F09E860 8FA4001C */ lw $a0, 0x1c($sp) -/* 0D3394 7F09E864 904F0001 */ lbu $t7, 1($v0) -/* 0D3398 7F09E868 35F80008 */ ori $t8, $t7, 8 -/* 0D339C 7F09E86C A0580001 */ sb $t8, 1($v0) -/* 0D33A0 7F09E870 8FA4001C */ lw $a0, 0x1c($sp) -.L7F09E874: -/* 0D33A4 7F09E874 0FC0E93C */ jal chrpropActivateThisFrame -/* 0D33A8 7F09E878 AFAD002C */ sw $t5, 0x2c($sp) -/* 0D33AC 7F09E87C 0FC0E901 */ jal chrpropEnable -/* 0D33B0 7F09E880 8FA4001C */ lw $a0, 0x1c($sp) -/* 0D33B4 7F09E884 8FAD002C */ lw $t5, 0x2c($sp) -/* 0D33B8 7F09E888 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D33BC 7F09E88C A5A00004 */ sh $zero, 4($t5) -/* 0D33C0 7F09E890 ADB90000 */ sw $t9, ($t5) -/* 0D33C4 7F09E894 87AE003A */ lh $t6, 0x3a($sp) -/* 0D33C8 7F09E898 A5AE0006 */ sh $t6, 6($t5) -.L7F09E89C: -/* 0D33CC 7F09E89C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F09E8A0: -/* 0D33D0 7F09E8A0 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0D33D4 7F09E8A4 03E00008 */ jr $ra -/* 0D33D8 7F09E8A8 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -3995,64 +3627,24 @@ glabel sub_GAME_7F09E8AC #endif +u8 sub_GAME_7F09EF9C(PropRecord* prop) +{ + Mtxf* player_matrix; + player_matrix = currentPlayerGetMatrix10CC(); + prop->Unk18 = -((((player_matrix->m[0][2] * prop->pos.x) + (player_matrix->m[1][2] * prop->pos.y)) + (player_matrix->m[2][2] * prop->pos.z)) + player_matrix->m[3][2]); + if (prop->Unk18 < 100.0f) + { + prop->Unk18 *= 0.5f; + } + else + { + prop->Unk18 -= 100.0f; + } -#ifdef NONMATCHING -void sub_GAME_7F09EF9C(void) { - + return 0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F09EF9C -/* 0D3ACC 7F09EF9C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D3AD0 7F09EFA0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D3AD4 7F09EFA4 0FC1E0F1 */ jal currentPlayerGetMatrix10CC -/* 0D3AD8 7F09EFA8 AFA40018 */ sw $a0, 0x18($sp) -/* 0D3ADC 7F09EFAC 8FA40018 */ lw $a0, 0x18($sp) -/* 0D3AE0 7F09EFB0 C4440008 */ lwc1 $f4, 8($v0) -/* 0D3AE4 7F09EFB4 C44A0018 */ lwc1 $f10, 0x18($v0) -/* 0D3AE8 7F09EFB8 C4860008 */ lwc1 $f6, 8($a0) -/* 0D3AEC 7F09EFBC C490000C */ lwc1 $f16, 0xc($a0) -/* 0D3AF0 7F09EFC0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0D3AF4 7F09EFC4 46062202 */ mul.s $f8, $f4, $f6 -/* 0D3AF8 7F09EFC8 C4460028 */ lwc1 $f6, 0x28($v0) -/* 0D3AFC 7F09EFCC 44811000 */ mtc1 $at, $f2 -/* 0D3B00 7F09EFD0 46105482 */ mul.s $f18, $f10, $f16 -/* 0D3B04 7F09EFD4 C48A0010 */ lwc1 $f10, 0x10($a0) -/* 0D3B08 7F09EFD8 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0D3B0C 7F09EFDC 460A3402 */ mul.s $f16, $f6, $f10 -/* 0D3B10 7F09EFE0 46124100 */ add.s $f4, $f8, $f18 -/* 0D3B14 7F09EFE4 C4520038 */ lwc1 $f18, 0x38($v0) -/* 0D3B18 7F09EFE8 46102200 */ add.s $f8, $f4, $f16 -/* 0D3B1C 7F09EFEC 46089180 */ add.s $f6, $f18, $f8 -/* 0D3B20 7F09EFF0 46003287 */ neg.s $f10, $f6 -/* 0D3B24 7F09EFF4 E48A0018 */ swc1 $f10, 0x18($a0) -/* 0D3B28 7F09EFF8 C4800018 */ lwc1 $f0, 0x18($a0) -/* 0D3B2C 7F09EFFC 4602003C */ c.lt.s $f0, $f2 -/* 0D3B30 7F09F000 00000000 */ nop -/* 0D3B34 7F09F004 45020007 */ bc1fl .L7F09F024 -/* 0D3B38 7F09F008 46020481 */ sub.s $f18, $f0, $f2 -/* 0D3B3C 7F09F00C 44812000 */ mtc1 $at, $f4 -/* 0D3B40 7F09F010 00000000 */ nop -/* 0D3B44 7F09F014 46040402 */ mul.s $f16, $f0, $f4 -/* 0D3B48 7F09F018 10000003 */ b .L7F09F028 -/* 0D3B4C 7F09F01C E4900018 */ swc1 $f16, 0x18($a0) -/* 0D3B50 7F09F020 46020481 */ sub.s $f18, $f0, $f2 -.L7F09F024: -/* 0D3B54 7F09F024 E4920018 */ swc1 $f18, 0x18($a0) -.L7F09F028: -/* 0D3B58 7F09F028 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D3B5C 7F09F02C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0D3B60 7F09F030 00001025 */ move $v0, $zero -/* 0D3B64 7F09F034 03E00008 */ jr $ra -/* 0D3B68 7F09F038 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -4207,977 +3799,179 @@ glabel unk09c250RenderPropSmoke #endif +void init_gray_flying_particles(coord3d *spawnpos, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +{ + // these are gray rectangles of dust created from shooting walls with guns that fall down with gravity + // a bullet will create a group of them flying off the wall + f32 rand1; + f32 rand2; + f32 rand3; + s16 unk08_upper; + s16 unk0A_upper; + s8 rand_s8; + rand1 = (2.0f * (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX))) - 1.0f; + rand2 = ((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 1.12f) - 0.12f; + rand3 = (2.0f * (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX))) - 1.0f; -#ifdef NONMATCHING -void sub_GAME_7F09F254(void) { + ptr_flying_particles_buf[numParticleEntries].unk00 = 1; + ptr_flying_particles_buf[numParticleEntries].x = spawnpos->f[0] + (arg1 * rand1); + ptr_flying_particles_buf[numParticleEntries].y = spawnpos->f[1] + (arg1 * rand2); + ptr_flying_particles_buf[numParticleEntries].z = spawnpos->f[2] + (arg1 * rand3); + + ptr_flying_particles_buf[numParticleEntries].unk1C = rand1 * arg2; + ptr_flying_particles_buf[numParticleEntries].unk20 = rand2 * arg3; + ptr_flying_particles_buf[numParticleEntries].unk24 = rand3 * arg2; + + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk00 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * arg4)); + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk02 = 0; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk04 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * arg4)); + + if (1) + { + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk00 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * arg4)); + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk02 = 0; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk04 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * (-arg4))); + + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk00 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * (-arg4))); + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk02 = 0; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk04 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * (-arg4))); + + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk00 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * (-arg4))); + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk02 = 0; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk04 = (s16) ((s32) ((((((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.75f) + 0.75f) * arg4)); + } + + if (1) {} + + unk08_upper = (randomGetNext() & 3) << 8; + unk0A_upper = (randomGetNext() & 3) << 8; + + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk08 = unk08_upper + 0xE0; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0A = unk0A_upper + 0xE0; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk08 = unk08_upper + 0xE0; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0A = unk0A_upper; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk08 = unk08_upper; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0A = unk0A_upper; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk08 = unk08_upper; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0A = unk0A_upper + 0xE0; + + if (randomGetNext() & 1) + { + rand_s8 = 0xFF - (randomGetNext() & 0x3F); + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0C = rand_s8; + rand_s8 = 0xFF - (randomGetNext() & 0x3F); + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0C = rand_s8; + rand_s8 = 0xFF - (randomGetNext() & 0x3F); + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0C = rand_s8; + rand_s8 = 0xFF - (randomGetNext() & 0x3F); + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0C = rand_s8; + } + else + { + rand_s8 = randomGetNext() & 0x3F; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0C = rand_s8; + rand_s8 = randomGetNext() & 0x3F; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0C = rand_s8; + rand_s8 = randomGetNext() & 0x3F; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0C = rand_s8; + rand_s8 = randomGetNext() & 0x3F; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0E = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0D = rand_s8; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0C = rand_s8; + } + + ptr_flying_particles_buf[numParticleEntries].unk38[0].unk0F = 0xdc; + ptr_flying_particles_buf[numParticleEntries].unk38[1].unk0F = 0xdc; + ptr_flying_particles_buf[numParticleEntries].unk38[2].unk0F = 0xdc; + ptr_flying_particles_buf[numParticleEntries].unk38[3].unk0F = 0xdc; + + ptr_flying_particles_buf[numParticleEntries].unk10 = (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * M_TAU_F; + ptr_flying_particles_buf[numParticleEntries].unk14 = (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * M_TAU_F; + ptr_flying_particles_buf[numParticleEntries].unk18 = (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * M_TAU_F; + + ptr_flying_particles_buf[numParticleEntries].unk28 = (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.1f; + ptr_flying_particles_buf[numParticleEntries].unk2C = (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.1f; + ptr_flying_particles_buf[numParticleEntries].unk30 = (((f32) randomGetNext()) * (1.0f / (f32)UINT_MAX)) * 0.1f; + + numParticleEntries++; + if (numParticleEntries >= max_particles) + { + numParticleEntries = 0; + } } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800576E0 -.word 0x3f8f5c29 /*1.12*/ -glabel D_800576E4 -.word 0x3df5c28f /*0.12*/ -glabel D_800576E8 -.word 0x40c90fdb /*6.2831855*/ -glabel D_800576EC -.word 0x3dcccccd /*0.1*/ -.text -glabel sub_GAME_7F09F254 -/* 0D3D84 7F09F254 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0D3D88 7F09F258 AFBF0034 */ sw $ra, 0x34($sp) -/* 0D3D8C 7F09F25C AFB20030 */ sw $s2, 0x30($sp) -/* 0D3D90 7F09F260 AFB1002C */ sw $s1, 0x2c($sp) -/* 0D3D94 7F09F264 AFB00028 */ sw $s0, 0x28($sp) -/* 0D3D98 7F09F268 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0D3D9C 7F09F26C F7B40018 */ sdc1 $f20, 0x18($sp) -/* 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 randomGetNext -/* 0D3DB0 7F09F280 AFA7005C */ sw $a3, 0x5c($sp) -/* 0D3DB4 7F09F284 44822000 */ mtc1 $v0, $f4 -/* 0D3DB8 7F09F288 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 0D3DBC 7F09F28C 4481B000 */ mtc1 $at, $f22 -/* 0D3DC0 7F09F290 04410005 */ bgez $v0, .L7F09F2A8 -/* 0D3DC4 7F09F294 468021A0 */ cvt.s.w $f6, $f4 -/* 0D3DC8 7F09F298 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D3DCC 7F09F29C 44814000 */ mtc1 $at, $f8 -/* 0D3DD0 7F09F2A0 00000000 */ nop -/* 0D3DD4 7F09F2A4 46083180 */ add.s $f6, $f6, $f8 -.L7F09F2A8: -/* 0D3DD8 7F09F2A8 46163002 */ mul.s $f0, $f6, $f22 -/* 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 randomGetNext -/* 0D3DEC 7F09F2BC 46125501 */ sub.s $f20, $f10, $f18 -/* 0D3DF0 7F09F2C0 44822000 */ mtc1 $v0, $f4 -/* 0D3DF4 7F09F2C4 04410005 */ bgez $v0, .L7F09F2DC -/* 0D3DF8 7F09F2C8 46802220 */ cvt.s.w $f8, $f4 -/* 0D3DFC 7F09F2CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D3E00 7F09F2D0 44813000 */ mtc1 $at, $f6 -/* 0D3E04 7F09F2D4 00000000 */ nop -/* 0D3E08 7F09F2D8 46064200 */ add.s $f8, $f8, $f6 -.L7F09F2DC: -/* 0D3E0C 7F09F2DC 46164282 */ mul.s $f10, $f8, $f22 -/* 0D3E10 7F09F2E0 3C018005 */ lui $at, %hi(D_800576E0) -/* 0D3E14 7F09F2E4 C43276E0 */ lwc1 $f18, %lo(D_800576E0)($at) -/* 0D3E18 7F09F2E8 3C018005 */ lui $at, %hi(D_800576E4) -/* 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 randomGetNext -/* 0D3E2C 7F09F2FC E7AC0048 */ swc1 $f12, 0x48($sp) -/* 0D3E30 7F09F300 3C128004 */ lui $s2, %hi(numCasingEntries) -/* 0D3E34 7F09F304 26520800 */ addiu $s2, %lo(numCasingEntries) # addiu $s2, $s2, 0x800 -/* 0D3E38 7F09F308 8E580000 */ lw $t8, ($s2) -/* 0D3E3C 7F09F30C 24110078 */ li $s1, 120 -/* 0D3E40 7F09F310 3C108008 */ lui $s0, %hi(ptr_ejected_casing_buf) -/* 0D3E44 7F09F314 03110019 */ multu $t8, $s1 -/* 0D3E48 7F09F318 2610A14C */ addiu $s0, %lo(ptr_ejected_casing_buf) # addiu $s0, $s0, -0x5eb4 -/* 0D3E4C 7F09F31C 8E0F0000 */ lw $t7, ($s0) -/* 0D3E50 7F09F320 8FA30050 */ lw $v1, 0x50($sp) -/* 0D3E54 7F09F324 C7AC0048 */ lwc1 $f12, 0x48($sp) -/* 0D3E58 7F09F328 C7AE0054 */ lwc1 $f14, 0x54($sp) -/* 0D3E5C 7F09F32C C7B00058 */ lwc1 $f16, 0x58($sp) -/* 0D3E60 7F09F330 240E0001 */ li $t6, 1 -/* 0D3E64 7F09F334 46147282 */ mul.s $f10, $f14, $f20 -/* 0D3E68 7F09F338 0000C812 */ mflo $t9 -/* 0D3E6C 7F09F33C 01F94021 */ addu $t0, $t7, $t9 -/* 0D3E70 7F09F340 AD0E0000 */ sw $t6, ($t0) -/* 0D3E74 7F09F344 8E4A0000 */ lw $t2, ($s2) -/* 0D3E78 7F09F348 C4680000 */ lwc1 $f8, ($v1) -/* 0D3E7C 7F09F34C 8E090000 */ lw $t1, ($s0) -/* 0D3E80 7F09F350 01510019 */ multu $t2, $s1 -/* 0D3E84 7F09F354 460A4480 */ add.s $f18, $f8, $f10 -/* 0D3E88 7F09F358 460C7182 */ mul.s $f6, $f14, $f12 -/* 0D3E8C 7F09F35C 44825000 */ mtc1 $v0, $f10 -/* 0D3E90 7F09F360 00005812 */ mflo $t3 -/* 0D3E94 7F09F364 012B6021 */ addu $t4, $t1, $t3 -/* 0D3E98 7F09F368 E5920004 */ swc1 $f18, 4($t4) -/* 0D3E9C 7F09F36C 8E580000 */ lw $t8, ($s2) -/* 0D3EA0 7F09F370 C4640004 */ lwc1 $f4, 4($v1) -/* 0D3EA4 7F09F374 8E0D0000 */ lw $t5, ($s0) -/* 0D3EA8 7F09F378 03110019 */ multu $t8, $s1 -/* 0D3EAC 7F09F37C 46062200 */ add.s $f8, $f4, $f6 -/* 0D3EB0 7F09F380 468054A0 */ cvt.s.w $f18, $f10 -/* 0D3EB4 7F09F384 00007812 */ mflo $t7 -/* 0D3EB8 7F09F388 01AFC821 */ addu $t9, $t5, $t7 -/* 0D3EBC 7F09F38C 04410005 */ bgez $v0, .L7F09F3A4 -/* 0D3EC0 7F09F390 E7280008 */ swc1 $f8, 8($t9) -/* 0D3EC4 7F09F394 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D3EC8 7F09F398 44812000 */ mtc1 $at, $f4 -/* 0D3ECC 7F09F39C 00000000 */ nop -/* 0D3ED0 7F09F3A0 46049480 */ add.s $f18, $f18, $f4 -.L7F09F3A4: -/* 0D3ED4 7F09F3A4 46169002 */ mul.s $f0, $f18, $f22 -/* 0D3ED8 7F09F3A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0D3EDC 7F09F3AC 44814000 */ mtc1 $at, $f8 -/* 0D3EE0 7F09F3B0 8E480000 */ lw $t0, ($s2) -/* 0D3EE4 7F09F3B4 C46A0008 */ lwc1 $f10, 8($v1) -/* 0D3EE8 7F09F3B8 8E0E0000 */ lw $t6, ($s0) -/* 0D3EEC 7F09F3BC 01110019 */ multu $t0, $s1 -/* 0D3EF0 7F09F3C0 46000180 */ add.s $f6, $f0, $f0 -/* 0D3EF4 7F09F3C4 46083081 */ sub.s $f2, $f6, $f8 -/* 0D3EF8 7F09F3C8 46027102 */ mul.s $f4, $f14, $f2 -/* 0D3EFC 7F09F3CC 00005012 */ mflo $t2 -/* 0D3F00 7F09F3D0 01CA4821 */ addu $t1, $t6, $t2 -/* 0D3F04 7F09F3D4 4610A182 */ mul.s $f6, $f20, $f16 -/* 0D3F08 7F09F3D8 46045480 */ add.s $f18, $f10, $f4 -/* 0D3F0C 7F09F3DC E532000C */ swc1 $f18, 0xc($t1) -/* 0D3F10 7F09F3E0 8E4C0000 */ lw $t4, ($s2) -/* 0D3F14 7F09F3E4 8E0B0000 */ lw $t3, ($s0) -/* 0D3F18 7F09F3E8 01910019 */ multu $t4, $s1 -/* 0D3F1C 7F09F3EC 0000C012 */ mflo $t8 -/* 0D3F20 7F09F3F0 01786821 */ addu $t5, $t3, $t8 -/* 0D3F24 7F09F3F4 E5A6001C */ swc1 $f6, 0x1c($t5) -/* 0D3F28 7F09F3F8 8E590000 */ lw $t9, ($s2) -/* 0D3F2C 7F09F3FC C7A8005C */ lwc1 $f8, 0x5c($sp) -/* 0D3F30 7F09F400 8E0F0000 */ lw $t7, ($s0) -/* 0D3F34 7F09F404 03310019 */ multu $t9, $s1 -/* 0D3F38 7F09F408 46086282 */ mul.s $f10, $f12, $f8 -/* 0D3F3C 7F09F40C 00000000 */ nop -/* 0D3F40 7F09F410 46101102 */ mul.s $f4, $f2, $f16 -/* 0D3F44 7F09F414 00004012 */ mflo $t0 -/* 0D3F48 7F09F418 01E87021 */ addu $t6, $t7, $t0 -/* 0D3F4C 7F09F41C E5CA0020 */ swc1 $f10, 0x20($t6) -/* 0D3F50 7F09F420 8E490000 */ lw $t1, ($s2) -/* 0D3F54 7F09F424 8E0A0000 */ lw $t2, ($s0) -/* 0D3F58 7F09F428 01310019 */ multu $t1, $s1 -/* 0D3F5C 7F09F42C 00006012 */ mflo $t4 -/* 0D3F60 7F09F430 014C5821 */ addu $t3, $t2, $t4 -/* 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 -/* 0D3F74 7F09F444 4481A000 */ mtc1 $at, $f20 -/* 0D3F78 7F09F448 04410005 */ bgez $v0, .L7F09F460 -/* 0D3F7C 7F09F44C 468091A0 */ cvt.s.w $f6, $f18 -/* 0D3F80 7F09F450 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D3F84 7F09F454 44814000 */ mtc1 $at, $f8 -/* 0D3F88 7F09F458 00000000 */ nop -/* 0D3F8C 7F09F45C 46083180 */ add.s $f6, $f6, $f8 -.L7F09F460: -/* 0D3F90 7F09F460 46163282 */ mul.s $f10, $f6, $f22 -/* 0D3F94 7F09F464 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D3F98 7F09F468 8E4F0000 */ lw $t7, ($s2) -/* 0D3F9C 7F09F46C 8E190000 */ lw $t9, ($s0) -/* 0D3FA0 7F09F470 01F10019 */ multu $t7, $s1 -/* 0D3FA4 7F09F474 46145102 */ mul.s $f4, $f10, $f20 -/* 0D3FA8 7F09F478 46142480 */ add.s $f18, $f4, $f20 -/* 0D3FAC 7F09F47C 00004012 */ mflo $t0 -/* 0D3FB0 7F09F480 03287021 */ addu $t6, $t9, $t0 -/* 0D3FB4 7F09F484 46089182 */ mul.s $f6, $f18, $f8 -/* 0D3FB8 7F09F488 4600328D */ trunc.w.s $f10, $f6 -/* 0D3FBC 7F09F48C 440D5000 */ mfc1 $t5, $f10 -/* 0D3FC0 7F09F490 00000000 */ nop -/* 0D3FC4 7F09F494 A5CD0038 */ sh $t5, 0x38($t6) -/* 0D3FC8 7F09F498 8E4A0000 */ lw $t2, ($s2) -/* 0D3FCC 7F09F49C 8E090000 */ lw $t1, ($s0) -/* 0D3FD0 7F09F4A0 01510019 */ multu $t2, $s1 -/* 0D3FD4 7F09F4A4 00006012 */ mflo $t4 -/* 0D3FD8 7F09F4A8 012C5821 */ addu $t3, $t1, $t4 -/* 0D3FDC 7F09F4AC 0C002914 */ jal randomGetNext -/* 0D3FE0 7F09F4B0 A560003A */ sh $zero, 0x3a($t3) -/* 0D3FE4 7F09F4B4 44822000 */ mtc1 $v0, $f4 -/* 0D3FE8 7F09F4B8 04410005 */ bgez $v0, .L7F09F4D0 -/* 0D3FEC 7F09F4BC 468024A0 */ cvt.s.w $f18, $f4 -/* 0D3FF0 7F09F4C0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D3FF4 7F09F4C4 44814000 */ mtc1 $at, $f8 -/* 0D3FF8 7F09F4C8 00000000 */ nop -/* 0D3FFC 7F09F4CC 46089480 */ add.s $f18, $f18, $f8 -.L7F09F4D0: -/* 0D4000 7F09F4D0 46169182 */ mul.s $f6, $f18, $f22 -/* 0D4004 7F09F4D4 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D4008 7F09F4D8 8E480000 */ lw $t0, ($s2) -/* 0D400C 7F09F4DC 8E190000 */ lw $t9, ($s0) -/* 0D4010 7F09F4E0 01110019 */ multu $t0, $s1 -/* 0D4014 7F09F4E4 46143282 */ mul.s $f10, $f6, $f20 -/* 0D4018 7F09F4E8 46145100 */ add.s $f4, $f10, $f20 -/* 0D401C 7F09F4EC 00006812 */ mflo $t5 -/* 0D4020 7F09F4F0 032D7021 */ addu $t6, $t9, $t5 -/* 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 randomGetNext -/* 0D4034 7F09F504 A5CF003C */ sh $t7, 0x3c($t6) -/* 0D4038 7F09F508 44825000 */ mtc1 $v0, $f10 -/* 0D403C 7F09F50C 04410005 */ bgez $v0, .L7F09F524 -/* 0D4040 7F09F510 46805120 */ cvt.s.w $f4, $f10 -/* 0D4044 7F09F514 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4048 7F09F518 44814000 */ mtc1 $at, $f8 -/* 0D404C 7F09F51C 00000000 */ nop -/* 0D4050 7F09F520 46082100 */ add.s $f4, $f4, $f8 -.L7F09F524: -/* 0D4054 7F09F524 46162482 */ mul.s $f18, $f4, $f22 -/* 0D4058 7F09F528 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D405C 7F09F52C 8E4B0000 */ lw $t3, ($s2) -/* 0D4060 7F09F530 8E0C0000 */ lw $t4, ($s0) -/* 0D4064 7F09F534 01710019 */ multu $t3, $s1 -/* 0D4068 7F09F538 46149182 */ mul.s $f6, $f18, $f20 -/* 0D406C 7F09F53C 46143280 */ add.s $f10, $f6, $f20 -/* 0D4070 7F09F540 0000C012 */ mflo $t8 -/* 0D4074 7F09F544 01984021 */ addu $t0, $t4, $t8 -/* 0D4078 7F09F548 46085102 */ mul.s $f4, $f10, $f8 -/* 0D407C 7F09F54C 4600248D */ trunc.w.s $f18, $f4 -/* 0D4080 7F09F550 44099000 */ mfc1 $t1, $f18 -/* 0D4084 7F09F554 00000000 */ nop -/* 0D4088 7F09F558 A5090048 */ sh $t1, 0x48($t0) -/* 0D408C 7F09F55C 8E4D0000 */ lw $t5, ($s2) -/* 0D4090 7F09F560 8E190000 */ lw $t9, ($s0) -/* 0D4094 7F09F564 01B10019 */ multu $t5, $s1 -/* 0D4098 7F09F568 00007812 */ mflo $t7 -/* 0D409C 7F09F56C 032F7021 */ addu $t6, $t9, $t7 -/* 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 -/* 0D40B0 7F09F580 46000007 */ neg.s $f0, $f0 -/* 0D40B4 7F09F584 04410005 */ bgez $v0, .L7F09F59C -/* 0D40B8 7F09F588 468032A0 */ cvt.s.w $f10, $f6 -/* 0D40BC 7F09F58C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D40C0 7F09F590 44814000 */ mtc1 $at, $f8 -/* 0D40C4 7F09F594 00000000 */ nop -/* 0D40C8 7F09F598 46085280 */ add.s $f10, $f10, $f8 -.L7F09F59C: -/* 0D40CC 7F09F59C 46165102 */ mul.s $f4, $f10, $f22 -/* 0D40D0 7F09F5A0 8E580000 */ lw $t8, ($s2) -/* 0D40D4 7F09F5A4 8E0C0000 */ lw $t4, ($s0) -/* 0D40D8 7F09F5A8 03110019 */ multu $t8, $s1 -/* 0D40DC 7F09F5AC 46142482 */ mul.s $f18, $f4, $f20 -/* 0D40E0 7F09F5B0 46149180 */ add.s $f6, $f18, $f20 -/* 0D40E4 7F09F5B4 00004812 */ mflo $t1 -/* 0D40E8 7F09F5B8 01894021 */ addu $t0, $t4, $t1 -/* 0D40EC 7F09F5BC 46003202 */ mul.s $f8, $f6, $f0 -/* 0D40F0 7F09F5C0 4600428D */ trunc.w.s $f10, $f8 -/* 0D40F4 7F09F5C4 440B5000 */ mfc1 $t3, $f10 -/* 0D40F8 7F09F5C8 00000000 */ nop -/* 0D40FC 7F09F5CC A50B004C */ sh $t3, 0x4c($t0) -/* 0D4100 7F09F5D0 0C002914 */ jal randomGetNext -/* 0D4104 7F09F5D4 E7A00038 */ swc1 $f0, 0x38($sp) -/* 0D4108 7F09F5D8 44822000 */ mtc1 $v0, $f4 -/* 0D410C 7F09F5DC 04410005 */ bgez $v0, .L7F09F5F4 -/* 0D4110 7F09F5E0 468024A0 */ cvt.s.w $f18, $f4 -/* 0D4114 7F09F5E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4118 7F09F5E8 44813000 */ mtc1 $at, $f6 -/* 0D411C 7F09F5EC 00000000 */ nop -/* 0D4120 7F09F5F0 46069480 */ add.s $f18, $f18, $f6 -.L7F09F5F4: -/* 0D4124 7F09F5F4 46169202 */ mul.s $f8, $f18, $f22 -/* 0D4128 7F09F5F8 C7A60038 */ lwc1 $f6, 0x38($sp) -/* 0D412C 7F09F5FC 8E4E0000 */ lw $t6, ($s2) -/* 0D4130 7F09F600 8E0F0000 */ lw $t7, ($s0) -/* 0D4134 7F09F604 01D10019 */ multu $t6, $s1 -/* 0D4138 7F09F608 46144282 */ mul.s $f10, $f8, $f20 -/* 0D413C 7F09F60C 46145100 */ add.s $f4, $f10, $f20 -/* 0D4140 7F09F610 00005012 */ mflo $t2 -/* 0D4144 7F09F614 01EAC021 */ addu $t8, $t7, $t2 -/* 0D4148 7F09F618 46062482 */ mul.s $f18, $f4, $f6 -/* 0D414C 7F09F61C 4600920D */ trunc.w.s $f8, $f18 -/* 0D4150 7F09F620 44194000 */ mfc1 $t9, $f8 -/* 0D4154 7F09F624 00000000 */ nop -/* 0D4158 7F09F628 A7190058 */ sh $t9, 0x58($t8) -/* 0D415C 7F09F62C 8E490000 */ lw $t1, ($s2) -/* 0D4160 7F09F630 8E0C0000 */ lw $t4, ($s0) -/* 0D4164 7F09F634 01310019 */ multu $t1, $s1 -/* 0D4168 7F09F638 00005812 */ mflo $t3 -/* 0D416C 7F09F63C 018B4021 */ addu $t0, $t4, $t3 -/* 0D4170 7F09F640 0C002914 */ jal randomGetNext -/* 0D4174 7F09F644 A500005A */ sh $zero, 0x5a($t0) -/* 0D4178 7F09F648 44825000 */ mtc1 $v0, $f10 -/* 0D417C 7F09F64C 04410005 */ bgez $v0, .L7F09F664 -/* 0D4180 7F09F650 46805120 */ cvt.s.w $f4, $f10 -/* 0D4184 7F09F654 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4188 7F09F658 44813000 */ mtc1 $at, $f6 -/* 0D418C 7F09F65C 00000000 */ nop -/* 0D4190 7F09F660 46062100 */ add.s $f4, $f4, $f6 -.L7F09F664: -/* 0D4194 7F09F664 46162482 */ mul.s $f18, $f4, $f22 -/* 0D4198 7F09F668 C7A60038 */ lwc1 $f6, 0x38($sp) -/* 0D419C 7F09F66C 8E4A0000 */ lw $t2, ($s2) -/* 0D41A0 7F09F670 8E0F0000 */ lw $t7, ($s0) -/* 0D41A4 7F09F674 01510019 */ multu $t2, $s1 -/* 0D41A8 7F09F678 46149202 */ mul.s $f8, $f18, $f20 -/* 0D41AC 7F09F67C 46144280 */ add.s $f10, $f8, $f20 -/* 0D41B0 7F09F680 0000C812 */ mflo $t9 -/* 0D41B4 7F09F684 01F9C021 */ addu $t8, $t7, $t9 -/* 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 randomGetNext -/* 0D41C8 7F09F698 A70E005C */ sh $t6, 0x5c($t8) -/* 0D41CC 7F09F69C 44824000 */ mtc1 $v0, $f8 -/* 0D41D0 7F09F6A0 04410005 */ bgez $v0, .L7F09F6B8 -/* 0D41D4 7F09F6A4 468042A0 */ cvt.s.w $f10, $f8 -/* 0D41D8 7F09F6A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D41DC 7F09F6AC 44813000 */ mtc1 $at, $f6 -/* 0D41E0 7F09F6B0 00000000 */ nop -/* 0D41E4 7F09F6B4 46065280 */ add.s $f10, $f10, $f6 -.L7F09F6B8: -/* 0D41E8 7F09F6B8 46165102 */ mul.s $f4, $f10, $f22 -/* 0D41EC 7F09F6BC C7A60038 */ lwc1 $f6, 0x38($sp) -/* 0D41F0 7F09F6C0 8E480000 */ lw $t0, ($s2) -/* 0D41F4 7F09F6C4 8E0B0000 */ lw $t3, ($s0) -/* 0D41F8 7F09F6C8 01110019 */ multu $t0, $s1 -/* 0D41FC 7F09F6CC 46142482 */ mul.s $f18, $f4, $f20 -/* 0D4200 7F09F6D0 46149200 */ add.s $f8, $f18, $f20 -/* 0D4204 7F09F6D4 00006812 */ mflo $t5 -/* 0D4208 7F09F6D8 016D5021 */ addu $t2, $t3, $t5 -/* 0D420C 7F09F6DC 46064282 */ mul.s $f10, $f8, $f6 -/* 0D4210 7F09F6E0 4600510D */ trunc.w.s $f4, $f10 -/* 0D4214 7F09F6E4 440C2000 */ mfc1 $t4, $f4 -/* 0D4218 7F09F6E8 00000000 */ nop -/* 0D421C 7F09F6EC A54C0068 */ sh $t4, 0x68($t2) -/* 0D4220 7F09F6F0 8E590000 */ lw $t9, ($s2) -/* 0D4224 7F09F6F4 8E0F0000 */ lw $t7, ($s0) -/* 0D4228 7F09F6F8 03310019 */ multu $t9, $s1 -/* 0D422C 7F09F6FC 00007012 */ mflo $t6 -/* 0D4230 7F09F700 01EEC021 */ addu $t8, $t7, $t6 -/* 0D4234 7F09F704 0C002914 */ jal randomGetNext -/* 0D4238 7F09F708 A700006A */ sh $zero, 0x6a($t8) -/* 0D423C 7F09F70C 44829000 */ mtc1 $v0, $f18 -/* 0D4240 7F09F710 04410005 */ bgez $v0, .L7F09F728 -/* 0D4244 7F09F714 46809220 */ cvt.s.w $f8, $f18 -/* 0D4248 7F09F718 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D424C 7F09F71C 44813000 */ mtc1 $at, $f6 -/* 0D4250 7F09F720 00000000 */ nop -/* 0D4254 7F09F724 46064200 */ add.s $f8, $f8, $f6 -.L7F09F728: -/* 0D4258 7F09F728 46164282 */ mul.s $f10, $f8, $f22 -/* 0D425C 7F09F72C C7A60060 */ lwc1 $f6, 0x60($sp) -/* 0D4260 7F09F730 8E4D0000 */ lw $t5, ($s2) -/* 0D4264 7F09F734 8E0B0000 */ lw $t3, ($s0) -/* 0D4268 7F09F738 01B10019 */ multu $t5, $s1 -/* 0D426C 7F09F73C 46145102 */ mul.s $f4, $f10, $f20 -/* 0D4270 7F09F740 46142480 */ add.s $f18, $f4, $f20 -/* 0D4274 7F09F744 00006012 */ mflo $t4 -/* 0D4278 7F09F748 016C5021 */ addu $t2, $t3, $t4 -/* 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 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 randomGetNext -/* 0D429C 7F09F76C A7AE0042 */ sh $t6, 0x42($sp) -/* 0D42A0 7F09F770 8E490000 */ lw $t1, ($s2) -/* 0D42A4 7F09F774 87A60042 */ lh $a2, 0x42($sp) -/* 0D42A8 7F09F778 8E180000 */ lw $t8, ($s0) -/* 0D42AC 7F09F77C 01310019 */ multu $t1, $s1 -/* 0D42B0 7F09F780 24C400E0 */ addiu $a0, $a2, 0xe0 -/* 0D42B4 7F09F784 30430003 */ andi $v1, $v0, 3 -/* 0D42B8 7F09F788 00034200 */ sll $t0, $v1, 8 -/* 0D42BC 7F09F78C 250500E0 */ addiu $a1, $t0, 0xe0 -/* 0D42C0 7F09F790 01001825 */ move $v1, $t0 -/* 0D42C4 7F09F794 00006812 */ mflo $t5 -/* 0D42C8 7F09F798 030D5821 */ addu $t3, $t8, $t5 -/* 0D42CC 7F09F79C A5640040 */ sh $a0, 0x40($t3) -/* 0D42D0 7F09F7A0 8E590000 */ lw $t9, ($s2) -/* 0D42D4 7F09F7A4 8E0A0000 */ lw $t2, ($s0) -/* 0D42D8 7F09F7A8 03310019 */ multu $t9, $s1 -/* 0D42DC 7F09F7AC 00007812 */ mflo $t7 -/* 0D42E0 7F09F7B0 014F7021 */ addu $t6, $t2, $t7 -/* 0D42E4 7F09F7B4 A5C50042 */ sh $a1, 0x42($t6) -/* 0D42E8 7F09F7B8 8E580000 */ lw $t8, ($s2) -/* 0D42EC 7F09F7BC 8E090000 */ lw $t1, ($s0) -/* 0D42F0 7F09F7C0 03110019 */ multu $t8, $s1 -/* 0D42F4 7F09F7C4 00006812 */ mflo $t5 -/* 0D42F8 7F09F7C8 012D5821 */ addu $t3, $t1, $t5 -/* 0D42FC 7F09F7CC A5640050 */ sh $a0, 0x50($t3) -/* 0D4300 7F09F7D0 8E480000 */ lw $t0, ($s2) -/* 0D4304 7F09F7D4 8E0C0000 */ lw $t4, ($s0) -/* 0D4308 7F09F7D8 01110019 */ multu $t0, $s1 -/* 0D430C 7F09F7DC 0000C812 */ mflo $t9 -/* 0D4310 7F09F7E0 01995021 */ addu $t2, $t4, $t9 -/* 0D4314 7F09F7E4 A5430052 */ sh $v1, 0x52($t2) -/* 0D4318 7F09F7E8 8E4E0000 */ lw $t6, ($s2) -/* 0D431C 7F09F7EC 8E0F0000 */ lw $t7, ($s0) -/* 0D4320 7F09F7F0 01D10019 */ multu $t6, $s1 -/* 0D4324 7F09F7F4 0000C012 */ mflo $t8 -/* 0D4328 7F09F7F8 01F84821 */ addu $t1, $t7, $t8 -/* 0D432C 7F09F7FC A5260060 */ sh $a2, 0x60($t1) -/* 0D4330 7F09F800 8E4B0000 */ lw $t3, ($s2) -/* 0D4334 7F09F804 8E0D0000 */ lw $t5, ($s0) -/* 0D4338 7F09F808 01710019 */ multu $t3, $s1 -/* 0D433C 7F09F80C 00004012 */ mflo $t0 -/* 0D4340 7F09F810 01A86021 */ addu $t4, $t5, $t0 -/* 0D4344 7F09F814 A5830062 */ sh $v1, 0x62($t4) -/* 0D4348 7F09F818 8E4A0000 */ lw $t2, ($s2) -/* 0D434C 7F09F81C 8E190000 */ lw $t9, ($s0) -/* 0D4350 7F09F820 01510019 */ multu $t2, $s1 -/* 0D4354 7F09F824 00007012 */ mflo $t6 -/* 0D4358 7F09F828 032E7821 */ addu $t7, $t9, $t6 -/* 0D435C 7F09F82C A5E60070 */ sh $a2, 0x70($t7) -/* 0D4360 7F09F830 8E490000 */ lw $t1, ($s2) -/* 0D4364 7F09F834 8E180000 */ lw $t8, ($s0) -/* 0D4368 7F09F838 01310019 */ multu $t1, $s1 -/* 0D436C 7F09F83C 00005812 */ mflo $t3 -/* 0D4370 7F09F840 030B6821 */ addu $t5, $t8, $t3 -/* 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 randomGetNext -/* 0D438C 7F09F85C 00000000 */ nop -/* 0D4390 7F09F860 8E4E0000 */ lw $t6, ($s2) -/* 0D4394 7F09F864 8E190000 */ lw $t9, ($s0) -/* 0D4398 7F09F868 304C003F */ andi $t4, $v0, 0x3f -/* 0D439C 7F09F86C 01D10019 */ multu $t6, $s1 -/* 0D43A0 7F09F870 240A00FF */ li $t2, 255 -/* 0D43A4 7F09F874 014C1823 */ subu $v1, $t2, $t4 -/* 0D43A8 7F09F878 00007812 */ mflo $t7 -/* 0D43AC 7F09F87C 032F4821 */ addu $t1, $t9, $t7 -/* 0D43B0 7F09F880 A1230046 */ sb $v1, 0x46($t1) -/* 0D43B4 7F09F884 8E4B0000 */ lw $t3, ($s2) -/* 0D43B8 7F09F888 8E180000 */ lw $t8, ($s0) -/* 0D43BC 7F09F88C 01710019 */ multu $t3, $s1 -/* 0D43C0 7F09F890 00006812 */ mflo $t5 -/* 0D43C4 7F09F894 030D4021 */ addu $t0, $t8, $t5 -/* 0D43C8 7F09F898 A1030045 */ sb $v1, 0x45($t0) -/* 0D43CC 7F09F89C 8E4C0000 */ lw $t4, ($s2) -/* 0D43D0 7F09F8A0 8E0A0000 */ lw $t2, ($s0) -/* 0D43D4 7F09F8A4 01910019 */ multu $t4, $s1 -/* 0D43D8 7F09F8A8 00007012 */ mflo $t6 -/* 0D43DC 7F09F8AC 014EC821 */ addu $t9, $t2, $t6 -/* 0D43E0 7F09F8B0 0C002914 */ jal randomGetNext -/* 0D43E4 7F09F8B4 A3230044 */ sb $v1, 0x44($t9) -/* 0D43E8 7F09F8B8 8E580000 */ lw $t8, ($s2) -/* 0D43EC 7F09F8BC 8E0B0000 */ lw $t3, ($s0) -/* 0D43F0 7F09F8C0 304F003F */ andi $t7, $v0, 0x3f -/* 0D43F4 7F09F8C4 03110019 */ multu $t8, $s1 -/* 0D43F8 7F09F8C8 240900FF */ li $t1, 255 -/* 0D43FC 7F09F8CC 012F1823 */ subu $v1, $t1, $t7 -/* 0D4400 7F09F8D0 00006812 */ mflo $t5 -/* 0D4404 7F09F8D4 016D4021 */ addu $t0, $t3, $t5 -/* 0D4408 7F09F8D8 A1030056 */ sb $v1, 0x56($t0) -/* 0D440C 7F09F8DC 8E4A0000 */ lw $t2, ($s2) -/* 0D4410 7F09F8E0 8E0C0000 */ lw $t4, ($s0) -/* 0D4414 7F09F8E4 01510019 */ multu $t2, $s1 -/* 0D4418 7F09F8E8 00007012 */ mflo $t6 -/* 0D441C 7F09F8EC 018EC821 */ addu $t9, $t4, $t6 -/* 0D4420 7F09F8F0 A3230055 */ sb $v1, 0x55($t9) -/* 0D4424 7F09F8F4 8E4F0000 */ lw $t7, ($s2) -/* 0D4428 7F09F8F8 8E090000 */ lw $t1, ($s0) -/* 0D442C 7F09F8FC 01F10019 */ multu $t7, $s1 -/* 0D4430 7F09F900 0000C012 */ mflo $t8 -/* 0D4434 7F09F904 01385821 */ addu $t3, $t1, $t8 -/* 0D4438 7F09F908 0C002914 */ jal randomGetNext -/* 0D443C 7F09F90C A1630054 */ sb $v1, 0x54($t3) -/* 0D4440 7F09F910 8E4C0000 */ lw $t4, ($s2) -/* 0D4444 7F09F914 8E0A0000 */ lw $t2, ($s0) -/* 0D4448 7F09F918 304D003F */ andi $t5, $v0, 0x3f -/* 0D444C 7F09F91C 01910019 */ multu $t4, $s1 -/* 0D4450 7F09F920 240800FF */ li $t0, 255 -/* 0D4454 7F09F924 010D1823 */ subu $v1, $t0, $t5 -/* 0D4458 7F09F928 00007012 */ mflo $t6 -/* 0D445C 7F09F92C 014EC821 */ addu $t9, $t2, $t6 -/* 0D4460 7F09F930 A3230066 */ sb $v1, 0x66($t9) -/* 0D4464 7F09F934 8E490000 */ lw $t1, ($s2) -/* 0D4468 7F09F938 8E0F0000 */ lw $t7, ($s0) -/* 0D446C 7F09F93C 01310019 */ multu $t1, $s1 -/* 0D4470 7F09F940 0000C012 */ mflo $t8 -/* 0D4474 7F09F944 01F85821 */ addu $t3, $t7, $t8 -/* 0D4478 7F09F948 A1630065 */ sb $v1, 0x65($t3) -/* 0D447C 7F09F94C 8E4D0000 */ lw $t5, ($s2) -/* 0D4480 7F09F950 8E080000 */ lw $t0, ($s0) -/* 0D4484 7F09F954 01B10019 */ multu $t5, $s1 -/* 0D4488 7F09F958 00006012 */ mflo $t4 -/* 0D448C 7F09F95C 010C5021 */ addu $t2, $t0, $t4 -/* 0D4490 7F09F960 0C002914 */ jal randomGetNext -/* 0D4494 7F09F964 A1430064 */ sb $v1, 0x64($t2) -/* 0D4498 7F09F968 8E4F0000 */ lw $t7, ($s2) -/* 0D449C 7F09F96C 8E090000 */ lw $t1, ($s0) -/* 0D44A0 7F09F970 304E003F */ andi $t6, $v0, 0x3f -/* 0D44A4 7F09F974 01F10019 */ multu $t7, $s1 -/* 0D44A8 7F09F978 241900FF */ li $t9, 255 -/* 0D44AC 7F09F97C 032E1823 */ subu $v1, $t9, $t6 -/* 0D44B0 7F09F980 0000C012 */ mflo $t8 -/* 0D44B4 7F09F984 01385821 */ addu $t3, $t1, $t8 -/* 0D44B8 7F09F988 A1630076 */ sb $v1, 0x76($t3) -/* 0D44BC 7F09F98C 8E480000 */ lw $t0, ($s2) -/* 0D44C0 7F09F990 8E0D0000 */ lw $t5, ($s0) -/* 0D44C4 7F09F994 01110019 */ multu $t0, $s1 -/* 0D44C8 7F09F998 00006012 */ mflo $t4 -/* 0D44CC 7F09F99C 01AC5021 */ addu $t2, $t5, $t4 -/* 0D44D0 7F09F9A0 A1430075 */ sb $v1, 0x75($t2) -/* 0D44D4 7F09F9A4 8E4E0000 */ lw $t6, ($s2) -/* 0D44D8 7F09F9A8 8E190000 */ lw $t9, ($s0) -/* 0D44DC 7F09F9AC 01D10019 */ multu $t6, $s1 -/* 0D44E0 7F09F9B0 00007812 */ mflo $t7 -/* 0D44E4 7F09F9B4 032F4821 */ addu $t1, $t9, $t7 -/* 0D44E8 7F09F9B8 10000052 */ b .L7F09FB04 -/* 0D44EC 7F09F9BC A1230074 */ sb $v1, 0x74($t1) -.L7F09F9C0: -/* 0D44F0 7F09F9C0 0C002914 */ jal randomGetNext -/* 0D44F4 7F09F9C4 00000000 */ nop -/* 0D44F8 7F09F9C8 8E4B0000 */ lw $t3, ($s2) -/* 0D44FC 7F09F9CC 8E180000 */ lw $t8, ($s0) -/* 0D4500 7F09F9D0 3043003F */ andi $v1, $v0, 0x3f -/* 0D4504 7F09F9D4 01710019 */ multu $t3, $s1 -/* 0D4508 7F09F9D8 00004012 */ mflo $t0 -/* 0D450C 7F09F9DC 03086821 */ addu $t5, $t8, $t0 -/* 0D4510 7F09F9E0 A1A30046 */ sb $v1, 0x46($t5) -/* 0D4514 7F09F9E4 8E4A0000 */ lw $t2, ($s2) -/* 0D4518 7F09F9E8 8E0C0000 */ lw $t4, ($s0) -/* 0D451C 7F09F9EC 01510019 */ multu $t2, $s1 -/* 0D4520 7F09F9F0 00007012 */ mflo $t6 -/* 0D4524 7F09F9F4 018EC821 */ addu $t9, $t4, $t6 -/* 0D4528 7F09F9F8 A3230045 */ sb $v1, 0x45($t9) -/* 0D452C 7F09F9FC 8E490000 */ lw $t1, ($s2) -/* 0D4530 7F09FA00 8E0F0000 */ lw $t7, ($s0) -/* 0D4534 7F09FA04 01310019 */ multu $t1, $s1 -/* 0D4538 7F09FA08 00005812 */ mflo $t3 -/* 0D453C 7F09FA0C 01EBC021 */ addu $t8, $t7, $t3 -/* 0D4540 7F09FA10 0C002914 */ jal randomGetNext -/* 0D4544 7F09FA14 A3030044 */ sb $v1, 0x44($t8) -/* 0D4548 7F09FA18 8E4D0000 */ lw $t5, ($s2) -/* 0D454C 7F09FA1C 8E080000 */ lw $t0, ($s0) -/* 0D4550 7F09FA20 3043003F */ andi $v1, $v0, 0x3f -/* 0D4554 7F09FA24 01B10019 */ multu $t5, $s1 -/* 0D4558 7F09FA28 00005012 */ mflo $t2 -/* 0D455C 7F09FA2C 010A6021 */ addu $t4, $t0, $t2 -/* 0D4560 7F09FA30 A1830056 */ sb $v1, 0x56($t4) -/* 0D4564 7F09FA34 8E590000 */ lw $t9, ($s2) -/* 0D4568 7F09FA38 8E0E0000 */ lw $t6, ($s0) -/* 0D456C 7F09FA3C 03310019 */ multu $t9, $s1 -/* 0D4570 7F09FA40 00004812 */ mflo $t1 -/* 0D4574 7F09FA44 01C97821 */ addu $t7, $t6, $t1 -/* 0D4578 7F09FA48 A1E30055 */ sb $v1, 0x55($t7) -/* 0D457C 7F09FA4C 8E580000 */ lw $t8, ($s2) -/* 0D4580 7F09FA50 8E0B0000 */ lw $t3, ($s0) -/* 0D4584 7F09FA54 03110019 */ multu $t8, $s1 -/* 0D4588 7F09FA58 00006812 */ mflo $t5 -/* 0D458C 7F09FA5C 016D4021 */ addu $t0, $t3, $t5 -/* 0D4590 7F09FA60 0C002914 */ jal randomGetNext -/* 0D4594 7F09FA64 A1030054 */ sb $v1, 0x54($t0) -/* 0D4598 7F09FA68 8E4C0000 */ lw $t4, ($s2) -/* 0D459C 7F09FA6C 8E0A0000 */ lw $t2, ($s0) -/* 0D45A0 7F09FA70 3043003F */ andi $v1, $v0, 0x3f -/* 0D45A4 7F09FA74 01910019 */ multu $t4, $s1 -/* 0D45A8 7F09FA78 0000C812 */ mflo $t9 -/* 0D45AC 7F09FA7C 01597021 */ addu $t6, $t2, $t9 -/* 0D45B0 7F09FA80 A1C30066 */ sb $v1, 0x66($t6) -/* 0D45B4 7F09FA84 8E4F0000 */ lw $t7, ($s2) -/* 0D45B8 7F09FA88 8E090000 */ lw $t1, ($s0) -/* 0D45BC 7F09FA8C 01F10019 */ multu $t7, $s1 -/* 0D45C0 7F09FA90 0000C012 */ mflo $t8 -/* 0D45C4 7F09FA94 01385821 */ addu $t3, $t1, $t8 -/* 0D45C8 7F09FA98 A1630065 */ sb $v1, 0x65($t3) -/* 0D45CC 7F09FA9C 8E480000 */ lw $t0, ($s2) -/* 0D45D0 7F09FAA0 8E0D0000 */ lw $t5, ($s0) -/* 0D45D4 7F09FAA4 01110019 */ multu $t0, $s1 -/* 0D45D8 7F09FAA8 00006012 */ mflo $t4 -/* 0D45DC 7F09FAAC 01AC5021 */ addu $t2, $t5, $t4 -/* 0D45E0 7F09FAB0 0C002914 */ jal randomGetNext -/* 0D45E4 7F09FAB4 A1430064 */ sb $v1, 0x64($t2) -/* 0D45E8 7F09FAB8 8E4E0000 */ lw $t6, ($s2) -/* 0D45EC 7F09FABC 8E190000 */ lw $t9, ($s0) -/* 0D45F0 7F09FAC0 3043003F */ andi $v1, $v0, 0x3f -/* 0D45F4 7F09FAC4 01D10019 */ multu $t6, $s1 -/* 0D45F8 7F09FAC8 00007812 */ mflo $t7 -/* 0D45FC 7F09FACC 032F4821 */ addu $t1, $t9, $t7 -/* 0D4600 7F09FAD0 A1230076 */ sb $v1, 0x76($t1) -/* 0D4604 7F09FAD4 8E4B0000 */ lw $t3, ($s2) -/* 0D4608 7F09FAD8 8E180000 */ lw $t8, ($s0) -/* 0D460C 7F09FADC 01710019 */ multu $t3, $s1 -/* 0D4610 7F09FAE0 00004012 */ mflo $t0 -/* 0D4614 7F09FAE4 03086821 */ addu $t5, $t8, $t0 -/* 0D4618 7F09FAE8 A1A30075 */ sb $v1, 0x75($t5) -/* 0D461C 7F09FAEC 8E4A0000 */ lw $t2, ($s2) -/* 0D4620 7F09FAF0 8E0C0000 */ lw $t4, ($s0) -/* 0D4624 7F09FAF4 01510019 */ multu $t2, $s1 -/* 0D4628 7F09FAF8 00007012 */ mflo $t6 -/* 0D462C 7F09FAFC 018EC821 */ addu $t9, $t4, $t6 -/* 0D4630 7F09FB00 A3230074 */ sb $v1, 0x74($t9) -.L7F09FB04: -/* 0D4634 7F09FB04 8E490000 */ lw $t1, ($s2) -/* 0D4638 7F09FB08 8E0F0000 */ lw $t7, ($s0) -/* 0D463C 7F09FB0C 240200DC */ li $v0, 220 -/* 0D4640 7F09FB10 01310019 */ multu $t1, $s1 -/* 0D4644 7F09FB14 00005812 */ mflo $t3 -/* 0D4648 7F09FB18 01EBC021 */ addu $t8, $t7, $t3 -/* 0D464C 7F09FB1C A3020047 */ sb $v0, 0x47($t8) -/* 0D4650 7F09FB20 8E4D0000 */ lw $t5, ($s2) -/* 0D4654 7F09FB24 8E080000 */ lw $t0, ($s0) -/* 0D4658 7F09FB28 01B10019 */ multu $t5, $s1 -/* 0D465C 7F09FB2C 00005012 */ mflo $t2 -/* 0D4660 7F09FB30 010A6021 */ addu $t4, $t0, $t2 -/* 0D4664 7F09FB34 A1820057 */ sb $v0, 0x57($t4) -/* 0D4668 7F09FB38 8E590000 */ lw $t9, ($s2) -/* 0D466C 7F09FB3C 8E0E0000 */ lw $t6, ($s0) -/* 0D4670 7F09FB40 03310019 */ multu $t9, $s1 -/* 0D4674 7F09FB44 00004812 */ mflo $t1 -/* 0D4678 7F09FB48 01C97821 */ addu $t7, $t6, $t1 -/* 0D467C 7F09FB4C A1E20067 */ sb $v0, 0x67($t7) -/* 0D4680 7F09FB50 8E580000 */ lw $t8, ($s2) -/* 0D4684 7F09FB54 8E0B0000 */ lw $t3, ($s0) -/* 0D4688 7F09FB58 03110019 */ multu $t8, $s1 -/* 0D468C 7F09FB5C 00006812 */ mflo $t5 -/* 0D4690 7F09FB60 016D4021 */ addu $t0, $t3, $t5 -/* 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) -/* 0D46A4 7F09FB74 C43476E8 */ lwc1 $f20, %lo(D_800576E8)($at) -/* 0D46A8 7F09FB78 04410005 */ bgez $v0, .L7F09FB90 -/* 0D46AC 7F09FB7C 468024A0 */ cvt.s.w $f18, $f4 -/* 0D46B0 7F09FB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D46B4 7F09FB84 44813000 */ mtc1 $at, $f6 -/* 0D46B8 7F09FB88 00000000 */ nop -/* 0D46BC 7F09FB8C 46069480 */ add.s $f18, $f18, $f6 -.L7F09FB90: -/* 0D46C0 7F09FB90 8E4C0000 */ lw $t4, ($s2) -/* 0D46C4 7F09FB94 46169202 */ mul.s $f8, $f18, $f22 -/* 0D46C8 7F09FB98 8E0A0000 */ lw $t2, ($s0) -/* 0D46CC 7F09FB9C 01910019 */ multu $t4, $s1 -/* 0D46D0 7F09FBA0 46144282 */ mul.s $f10, $f8, $f20 -/* 0D46D4 7F09FBA4 0000C812 */ mflo $t9 -/* 0D46D8 7F09FBA8 01597021 */ addu $t6, $t2, $t9 -/* 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 -/* 0D46EC 7F09FBBC 04410004 */ bgez $v0, .L7F09FBD0 -/* 0D46F0 7F09FBC0 468021A0 */ cvt.s.w $f6, $f4 -/* 0D46F4 7F09FBC4 44819000 */ mtc1 $at, $f18 -/* 0D46F8 7F09FBC8 00000000 */ nop -/* 0D46FC 7F09FBCC 46123180 */ add.s $f6, $f6, $f18 -.L7F09FBD0: -/* 0D4700 7F09FBD0 8E4F0000 */ lw $t7, ($s2) -/* 0D4704 7F09FBD4 46163202 */ mul.s $f8, $f6, $f22 -/* 0D4708 7F09FBD8 8E090000 */ lw $t1, ($s0) -/* 0D470C 7F09FBDC 01F10019 */ multu $t7, $s1 -/* 0D4710 7F09FBE0 46144282 */ mul.s $f10, $f8, $f20 -/* 0D4714 7F09FBE4 0000C012 */ mflo $t8 -/* 0D4718 7F09FBE8 01385821 */ addu $t3, $t1, $t8 -/* 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 -/* 0D472C 7F09FBFC 04410004 */ bgez $v0, .L7F09FC10 -/* 0D4730 7F09FC00 468024A0 */ cvt.s.w $f18, $f4 -/* 0D4734 7F09FC04 44813000 */ mtc1 $at, $f6 -/* 0D4738 7F09FC08 00000000 */ nop -/* 0D473C 7F09FC0C 46069480 */ add.s $f18, $f18, $f6 -.L7F09FC10: -/* 0D4740 7F09FC10 8E480000 */ lw $t0, ($s2) -/* 0D4744 7F09FC14 46169202 */ mul.s $f8, $f18, $f22 -/* 0D4748 7F09FC18 8E0D0000 */ lw $t5, ($s0) -/* 0D474C 7F09FC1C 01110019 */ multu $t0, $s1 -/* 0D4750 7F09FC20 46144282 */ mul.s $f10, $f8, $f20 -/* 0D4754 7F09FC24 00006012 */ mflo $t4 -/* 0D4758 7F09FC28 01AC5021 */ addu $t2, $t5, $t4 -/* 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) -/* 0D476C 7F09FC3C C43476EC */ lwc1 $f20, %lo(D_800576EC)($at) -/* 0D4770 7F09FC40 04410005 */ bgez $v0, .L7F09FC58 -/* 0D4774 7F09FC44 468021A0 */ cvt.s.w $f6, $f4 -/* 0D4778 7F09FC48 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D477C 7F09FC4C 44819000 */ mtc1 $at, $f18 -/* 0D4780 7F09FC50 00000000 */ nop -/* 0D4784 7F09FC54 46123180 */ add.s $f6, $f6, $f18 -.L7F09FC58: -/* 0D4788 7F09FC58 8E4E0000 */ lw $t6, ($s2) -/* 0D478C 7F09FC5C 46163202 */ mul.s $f8, $f6, $f22 -/* 0D4790 7F09FC60 8E190000 */ lw $t9, ($s0) -/* 0D4794 7F09FC64 01D10019 */ multu $t6, $s1 -/* 0D4798 7F09FC68 46144282 */ mul.s $f10, $f8, $f20 -/* 0D479C 7F09FC6C 00007812 */ mflo $t7 -/* 0D47A0 7F09FC70 032F4821 */ addu $t1, $t9, $t7 -/* 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 -/* 0D47B4 7F09FC84 04410004 */ bgez $v0, .L7F09FC98 -/* 0D47B8 7F09FC88 468024A0 */ cvt.s.w $f18, $f4 -/* 0D47BC 7F09FC8C 44813000 */ mtc1 $at, $f6 -/* 0D47C0 7F09FC90 00000000 */ nop -/* 0D47C4 7F09FC94 46069480 */ add.s $f18, $f18, $f6 -.L7F09FC98: -/* 0D47C8 7F09FC98 8E4B0000 */ lw $t3, ($s2) -/* 0D47CC 7F09FC9C 46169202 */ mul.s $f8, $f18, $f22 -/* 0D47D0 7F09FCA0 8E180000 */ lw $t8, ($s0) -/* 0D47D4 7F09FCA4 01710019 */ multu $t3, $s1 -/* 0D47D8 7F09FCA8 46144282 */ mul.s $f10, $f8, $f20 -/* 0D47DC 7F09FCAC 00004012 */ mflo $t0 -/* 0D47E0 7F09FCB0 03086821 */ addu $t5, $t8, $t0 -/* 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 -/* 0D47F4 7F09FCC4 04410004 */ bgez $v0, .L7F09FCD8 -/* 0D47F8 7F09FCC8 468021A0 */ cvt.s.w $f6, $f4 -/* 0D47FC 7F09FCCC 44819000 */ mtc1 $at, $f18 -/* 0D4800 7F09FCD0 00000000 */ nop -/* 0D4804 7F09FCD4 46123180 */ add.s $f6, $f6, $f18 -.L7F09FCD8: -/* 0D4808 7F09FCD8 8E4A0000 */ lw $t2, ($s2) -/* 0D480C 7F09FCDC 46163202 */ mul.s $f8, $f6, $f22 -/* 0D4810 7F09FCE0 8E0C0000 */ lw $t4, ($s0) -/* 0D4814 7F09FCE4 01510019 */ multu $t2, $s1 -/* 0D4818 7F09FCE8 3C188008 */ lui $t8, %hi(max_casings) -/* 0D481C 7F09FCEC 46144282 */ mul.s $f10, $f8, $f20 -/* 0D4820 7F09FCF0 00007012 */ mflo $t6 -/* 0D4824 7F09FCF4 018EC821 */ addu $t9, $t4, $t6 -/* 0D4828 7F09FCF8 E72A0030 */ swc1 $f10, 0x30($t9) -/* 0D482C 7F09FCFC 8E4F0000 */ lw $t7, ($s2) -/* 0D4830 7F09FD00 25E90001 */ addiu $t1, $t7, 1 -/* 0D4834 7F09FD04 AE490000 */ sw $t1, ($s2) -/* 0D4838 7F09FD08 8F18A148 */ lw $t8, %lo(max_casings)($t8) -/* 0D483C 7F09FD0C 0138082A */ slt $at, $t1, $t8 -/* 0D4840 7F09FD10 54200003 */ bnezl $at, .L7F09FD20 -/* 0D4844 7F09FD14 8FBF0034 */ lw $ra, 0x34($sp) -/* 0D4848 7F09FD18 AE400000 */ sw $zero, ($s2) -/* 0D484C 7F09FD1C 8FBF0034 */ lw $ra, 0x34($sp) -.L7F09FD20: -/* 0D4850 7F09FD20 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0D4854 7F09FD24 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0D4858 7F09FD28 8FB00028 */ lw $s0, 0x28($sp) -/* 0D485C 7F09FD2C 8FB1002C */ lw $s1, 0x2c($sp) -/* 0D4860 7F09FD30 8FB20030 */ lw $s2, 0x30($sp) -/* 0D4864 7F09FD34 03E00008 */ jr $ra -/* 0D4868 7F09FD38 27BD0050 */ addiu $sp, $sp, 0x50 -) -#endif +void update_gray_flying_particles(void) +{ + f32 scalar; + s32 i; + s32 j; + + if (g_ClockTimer < 0xF) + { + scalar = g_ClockTimer; + } + else + { + scalar = 15.0f; + } + for (i = 0; i < max_particles; i++) + { + if (ptr_flying_particles_buf[i].unk00 > 0) + { + ptr_flying_particles_buf[i].unk00 += (s32) scalar; -#ifdef NONMATCHING -void update_gray_flying_particles(void) { - // these are created from shooting walls with guns - // these are limited to 5 at a time - // spawning more will delete the oldest one to spawn a new one + ptr_flying_particles_buf[i].unk10 += ptr_flying_particles_buf[i].unk28 * scalar; + ptr_flying_particles_buf[i].unk14 += ptr_flying_particles_buf[i].unk2C * scalar; + ptr_flying_particles_buf[i].unk18 += ptr_flying_particles_buf[i].unk30 * scalar; + ptr_flying_particles_buf[i].x += ptr_flying_particles_buf[i].unk1C * scalar; + ptr_flying_particles_buf[i].z += ptr_flying_particles_buf[i].unk24 * scalar; + + for (j = 0; j < (s32)scalar; j++) + { + // initially sends particles flying up + ptr_flying_particles_buf[i].y += ptr_flying_particles_buf[i].unk20; + + // applies gravity so particles fall down + if (ptr_flying_particles_buf[i].unk20 > -3.75f) + { + ptr_flying_particles_buf[i].unk20 -= 0.2f; + } + } + + // handles particles life time + if ((ptr_flying_particles_buf[i].unk00 >= 0x65) && (!(randomGetNext() & 0x1F) || (ptr_flying_particles_buf[i].unk00 == 0x12C))) + { + ptr_flying_particles_buf[i].unk00 = 0; + } + + // position-related. deletes particles that are too low or too high. + if ((ptr_flying_particles_buf[i].y < -30000.0f) || (ptr_flying_particles_buf[i].y > 30000.0f)) + { + ptr_flying_particles_buf[i].unk00 = 0; + } + } + } } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800576F0 -.word 0x46ea6000 /*30000.0*/ -glabel D_800576F4 -.word 0xc6ea6000 /*-30000.0*/ -glabel D_800576F8 -.word 0x3e4ccccd /*0.2*/ -.text -glabel update_gray_flying_particles -/* 0D486C 7F09FD3C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0D4870 7F09FD40 3C028005 */ lui $v0, %hi(g_ClockTimer) -/* 0D4874 7F09FD44 8C428374 */ lw $v0, %lo(g_ClockTimer)($v0) -/* 0D4878 7F09FD48 AFBF0054 */ sw $ra, 0x54($sp) -/* 0D487C 7F09FD4C AFB40050 */ sw $s4, 0x50($sp) -/* 0D4880 7F09FD50 2841000F */ slti $at, $v0, 0xf -/* 0D4884 7F09FD54 AFB3004C */ sw $s3, 0x4c($sp) -/* 0D4888 7F09FD58 AFB20048 */ sw $s2, 0x48($sp) -/* 0D488C 7F09FD5C AFB10044 */ sw $s1, 0x44($sp) -/* 0D4890 7F09FD60 AFB00040 */ sw $s0, 0x40($sp) -/* 0D4894 7F09FD64 F7BC0038 */ sdc1 $f28, 0x38($sp) -/* 0D4898 7F09FD68 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* 0D489C 7F09FD6C F7B80028 */ sdc1 $f24, 0x28($sp) -/* 0D48A0 7F09FD70 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0D48A4 7F09FD74 10200004 */ beqz $at, .L7F09FD88 -/* 0D48A8 7F09FD78 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0D48AC 7F09FD7C 44822000 */ mtc1 $v0, $f4 -/* 0D48B0 7F09FD80 10000004 */ b .L7F09FD94 -/* 0D48B4 7F09FD84 46802620 */ cvt.s.w $f24, $f4 -.L7F09FD88: -/* 0D48B8 7F09FD88 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 0D48BC 7F09FD8C 4481C000 */ mtc1 $at, $f24 -/* 0D48C0 7F09FD90 00000000 */ nop -.L7F09FD94: -/* 0D48C4 7F09FD94 3C148008 */ lui $s4, %hi(max_casings) -/* 0D48C8 7F09FD98 2694A148 */ addiu $s4, %lo(max_casings) # addiu $s4, $s4, -0x5eb8 -/* 0D48CC 7F09FD9C 8E8E0000 */ lw $t6, ($s4) -/* 0D48D0 7F09FDA0 00009025 */ move $s2, $zero -/* 0D48D4 7F09FDA4 00008025 */ move $s0, $zero -/* 0D48D8 7F09FDA8 19C00095 */ blez $t6, .L7F0A0000 -/* 0D48DC 7F09FDAC 3C018005 */ lui $at, %hi(D_800576F0) -/* 0D48E0 7F09FDB0 C43C76F0 */ lwc1 $f28, %lo(D_800576F0)($at) -/* 0D48E4 7F09FDB4 3C018005 */ lui $at, %hi(D_800576F4) -/* 0D48E8 7F09FDB8 C43A76F4 */ lwc1 $f26, %lo(D_800576F4)($at) -/* 0D48EC 7F09FDBC 3C018005 */ lui $at, %hi(D_800576F8) -/* 0D48F0 7F09FDC0 C43676F8 */ lwc1 $f22, %lo(D_800576F8)($at) -/* 0D48F4 7F09FDC4 3C01C070 */ li $at, 0xC0700000 # -3.750000 -/* 0D48F8 7F09FDC8 3C118008 */ lui $s1, %hi(ptr_ejected_casing_buf) -/* 0D48FC 7F09FDCC 4481A000 */ mtc1 $at, $f20 -/* 0D4900 7F09FDD0 2631A14C */ addiu $s1, %lo(ptr_ejected_casing_buf) # addiu $s1, $s1, -0x5eb4 -/* 0D4904 7F09FDD4 2413012C */ li $s3, 300 -/* 0D4908 7F09FDD8 8E2F0000 */ lw $t7, ($s1) -.L7F09FDDC: -/* 0D490C 7F09FDDC 01F01021 */ addu $v0, $t7, $s0 -/* 0D4910 7F09FDE0 8C450000 */ lw $a1, ($v0) -/* 0D4914 7F09FDE4 58A00081 */ blezl $a1, .L7F09FFEC -/* 0D4918 7F09FDE8 8E990000 */ lw $t9, ($s4) -/* 0D491C 7F09FDEC 4600C18D */ trunc.w.s $f6, $f24 -/* 0D4920 7F09FDF0 00001825 */ move $v1, $zero -/* 0D4924 7F09FDF4 44043000 */ mfc1 $a0, $f6 -/* 0D4928 7F09FDF8 00000000 */ nop -/* 0D492C 7F09FDFC 00A4C821 */ addu $t9, $a1, $a0 -/* 0D4930 7F09FE00 AC590000 */ sw $t9, ($v0) -/* 0D4934 7F09FE04 8E280000 */ lw $t0, ($s1) -/* 0D4938 7F09FE08 01101021 */ addu $v0, $t0, $s0 -/* 0D493C 7F09FE0C C44A0028 */ lwc1 $f10, 0x28($v0) -/* 0D4940 7F09FE10 C4480010 */ lwc1 $f8, 0x10($v0) -/* 0D4944 7F09FE14 46185402 */ mul.s $f16, $f10, $f24 -/* 0D4948 7F09FE18 46104480 */ add.s $f18, $f8, $f16 -/* 0D494C 7F09FE1C E4520010 */ swc1 $f18, 0x10($v0) -/* 0D4950 7F09FE20 8E290000 */ lw $t1, ($s1) -/* 0D4954 7F09FE24 01301021 */ addu $v0, $t1, $s0 -/* 0D4958 7F09FE28 C446002C */ lwc1 $f6, 0x2c($v0) -/* 0D495C 7F09FE2C C4440014 */ lwc1 $f4, 0x14($v0) -/* 0D4960 7F09FE30 46183282 */ mul.s $f10, $f6, $f24 -/* 0D4964 7F09FE34 460A2200 */ add.s $f8, $f4, $f10 -/* 0D4968 7F09FE38 E4480014 */ swc1 $f8, 0x14($v0) -/* 0D496C 7F09FE3C 8E2A0000 */ lw $t2, ($s1) -/* 0D4970 7F09FE40 01501021 */ addu $v0, $t2, $s0 -/* 0D4974 7F09FE44 C4520030 */ lwc1 $f18, 0x30($v0) -/* 0D4978 7F09FE48 C4500018 */ lwc1 $f16, 0x18($v0) -/* 0D497C 7F09FE4C 46189182 */ mul.s $f6, $f18, $f24 -/* 0D4980 7F09FE50 46068100 */ add.s $f4, $f16, $f6 -/* 0D4984 7F09FE54 E4440018 */ swc1 $f4, 0x18($v0) -/* 0D4988 7F09FE58 8E2B0000 */ lw $t3, ($s1) -/* 0D498C 7F09FE5C 01701021 */ addu $v0, $t3, $s0 -/* 0D4990 7F09FE60 C448001C */ lwc1 $f8, 0x1c($v0) -/* 0D4994 7F09FE64 C44A0004 */ lwc1 $f10, 4($v0) -/* 0D4998 7F09FE68 46184482 */ mul.s $f18, $f8, $f24 -/* 0D499C 7F09FE6C 46125400 */ add.s $f16, $f10, $f18 -/* 0D49A0 7F09FE70 E4500004 */ swc1 $f16, 4($v0) -/* 0D49A4 7F09FE74 8E2C0000 */ lw $t4, ($s1) -/* 0D49A8 7F09FE78 01901021 */ addu $v0, $t4, $s0 -/* 0D49AC 7F09FE7C C4440024 */ lwc1 $f4, 0x24($v0) -/* 0D49B0 7F09FE80 C446000C */ lwc1 $f6, 0xc($v0) -/* 0D49B4 7F09FE84 46182202 */ mul.s $f8, $f4, $f24 -/* 0D49B8 7F09FE88 46083280 */ add.s $f10, $f6, $f8 -/* 0D49BC 7F09FE8C 18800037 */ blez $a0, .L7F09FF6C -/* 0D49C0 7F09FE90 E44A000C */ swc1 $f10, 0xc($v0) -/* 0D49C4 7F09FE94 30820001 */ andi $v0, $a0, 1 -/* 0D49C8 7F09FE98 50400014 */ beql $v0, $zero, .L7F09FEEC -/* 0D49CC 7F09FE9C 8E2F0000 */ lw $t7, ($s1) -/* 0D49D0 7F09FEA0 8E2D0000 */ lw $t5, ($s1) -/* 0D49D4 7F09FEA4 24030001 */ li $v1, 1 -/* 0D49D8 7F09FEA8 01B01021 */ addu $v0, $t5, $s0 -/* 0D49DC 7F09FEAC C4520008 */ lwc1 $f18, 8($v0) -/* 0D49E0 7F09FEB0 C4500020 */ lwc1 $f16, 0x20($v0) -/* 0D49E4 7F09FEB4 46109100 */ add.s $f4, $f18, $f16 -/* 0D49E8 7F09FEB8 E4440008 */ swc1 $f4, 8($v0) -/* 0D49EC 7F09FEBC 8E2E0000 */ lw $t6, ($s1) -/* 0D49F0 7F09FEC0 01D01021 */ addu $v0, $t6, $s0 -/* 0D49F4 7F09FEC4 C4400020 */ lwc1 $f0, 0x20($v0) -/* 0D49F8 7F09FEC8 4600A03C */ c.lt.s $f20, $f0 -/* 0D49FC 7F09FECC 00000000 */ nop -/* 0D4A00 7F09FED0 45000003 */ bc1f .L7F09FEE0 -/* 0D4A04 7F09FED4 00000000 */ nop -/* 0D4A08 7F09FED8 46160181 */ sub.s $f6, $f0, $f22 -/* 0D4A0C 7F09FEDC E4460020 */ swc1 $f6, 0x20($v0) -.L7F09FEE0: -/* 0D4A10 7F09FEE0 50640023 */ beql $v1, $a0, .L7F09FF70 -/* 0D4A14 7F09FEE4 8E290000 */ lw $t1, ($s1) -/* 0D4A18 7F09FEE8 8E2F0000 */ lw $t7, ($s1) -.L7F09FEEC: -/* 0D4A1C 7F09FEEC 24630002 */ addiu $v1, $v1, 2 -/* 0D4A20 7F09FEF0 01F01021 */ addu $v0, $t7, $s0 -/* 0D4A24 7F09FEF4 C4480008 */ lwc1 $f8, 8($v0) -/* 0D4A28 7F09FEF8 C44A0020 */ lwc1 $f10, 0x20($v0) -/* 0D4A2C 7F09FEFC 460A4480 */ add.s $f18, $f8, $f10 -/* 0D4A30 7F09FF00 E4520008 */ swc1 $f18, 8($v0) -/* 0D4A34 7F09FF04 8E380000 */ lw $t8, ($s1) -/* 0D4A38 7F09FF08 03101021 */ addu $v0, $t8, $s0 -/* 0D4A3C 7F09FF0C C4400020 */ lwc1 $f0, 0x20($v0) -/* 0D4A40 7F09FF10 4600A03C */ c.lt.s $f20, $f0 -/* 0D4A44 7F09FF14 00000000 */ nop -/* 0D4A48 7F09FF18 45020007 */ bc1fl .L7F09FF38 -/* 0D4A4C 7F09FF1C C4440008 */ lwc1 $f4, 8($v0) -/* 0D4A50 7F09FF20 46160401 */ sub.s $f16, $f0, $f22 -/* 0D4A54 7F09FF24 E4500020 */ swc1 $f16, 0x20($v0) -/* 0D4A58 7F09FF28 8E390000 */ lw $t9, ($s1) -/* 0D4A5C 7F09FF2C 03301021 */ addu $v0, $t9, $s0 -/* 0D4A60 7F09FF30 C4400020 */ lwc1 $f0, 0x20($v0) -/* 0D4A64 7F09FF34 C4440008 */ lwc1 $f4, 8($v0) -.L7F09FF38: -/* 0D4A68 7F09FF38 46002180 */ add.s $f6, $f4, $f0 -/* 0D4A6C 7F09FF3C E4460008 */ swc1 $f6, 8($v0) -/* 0D4A70 7F09FF40 8E280000 */ lw $t0, ($s1) -/* 0D4A74 7F09FF44 01101021 */ addu $v0, $t0, $s0 -/* 0D4A78 7F09FF48 C4400020 */ lwc1 $f0, 0x20($v0) -/* 0D4A7C 7F09FF4C 4600A03C */ c.lt.s $f20, $f0 -/* 0D4A80 7F09FF50 00000000 */ nop -/* 0D4A84 7F09FF54 45000003 */ bc1f .L7F09FF64 -/* 0D4A88 7F09FF58 00000000 */ nop -/* 0D4A8C 7F09FF5C 46160201 */ sub.s $f8, $f0, $f22 -/* 0D4A90 7F09FF60 E4480020 */ swc1 $f8, 0x20($v0) -.L7F09FF64: -/* 0D4A94 7F09FF64 5464FFE1 */ bnel $v1, $a0, .L7F09FEEC -/* 0D4A98 7F09FF68 8E2F0000 */ lw $t7, ($s1) -.L7F09FF6C: -/* 0D4A9C 7F09FF6C 8E290000 */ lw $t1, ($s1) -.L7F09FF70: -/* 0D4AA0 7F09FF70 01301021 */ addu $v0, $t1, $s0 -/* 0D4AA4 7F09FF74 8C4A0000 */ lw $t2, ($v0) -/* 0D4AA8 7F09FF78 29410065 */ slti $at, $t2, 0x65 -/* 0D4AAC 7F09FF7C 54200011 */ bnezl $at, .L7F09FFC4 -/* 0D4AB0 7F09FF80 C4400008 */ lwc1 $f0, 8($v0) -/* 0D4AB4 7F09FF84 0C002914 */ jal randomGetNext -/* 0D4AB8 7F09FF88 00000000 */ nop -/* 0D4ABC 7F09FF8C 304B001F */ andi $t3, $v0, 0x1f -/* 0D4AC0 7F09FF90 51600007 */ beql $t3, $zero, .L7F09FFB0 -/* 0D4AC4 7F09FF94 8E2E0000 */ lw $t6, ($s1) -/* 0D4AC8 7F09FF98 8E2C0000 */ lw $t4, ($s1) -/* 0D4ACC 7F09FF9C 01901021 */ addu $v0, $t4, $s0 -/* 0D4AD0 7F09FFA0 8C4D0000 */ lw $t5, ($v0) -/* 0D4AD4 7F09FFA4 566D0007 */ bnel $s3, $t5, .L7F09FFC4 -/* 0D4AD8 7F09FFA8 C4400008 */ lwc1 $f0, 8($v0) -/* 0D4ADC 7F09FFAC 8E2E0000 */ lw $t6, ($s1) -.L7F09FFB0: -/* 0D4AE0 7F09FFB0 01D07821 */ addu $t7, $t6, $s0 -/* 0D4AE4 7F09FFB4 ADE00000 */ sw $zero, ($t7) -/* 0D4AE8 7F09FFB8 8E380000 */ lw $t8, ($s1) -/* 0D4AEC 7F09FFBC 03101021 */ addu $v0, $t8, $s0 -/* 0D4AF0 7F09FFC0 C4400008 */ lwc1 $f0, 8($v0) -.L7F09FFC4: -/* 0D4AF4 7F09FFC4 461A003C */ c.lt.s $f0, $f26 -/* 0D4AF8 7F09FFC8 00000000 */ nop -/* 0D4AFC 7F09FFCC 45030006 */ bc1tl .L7F09FFE8 -/* 0D4B00 7F09FFD0 AC400000 */ sw $zero, ($v0) -/* 0D4B04 7F09FFD4 4600E03C */ c.lt.s $f28, $f0 -/* 0D4B08 7F09FFD8 00000000 */ nop -/* 0D4B0C 7F09FFDC 45020003 */ bc1fl .L7F09FFEC -/* 0D4B10 7F09FFE0 8E990000 */ lw $t9, ($s4) -/* 0D4B14 7F09FFE4 AC400000 */ sw $zero, ($v0) -.L7F09FFE8: -/* 0D4B18 7F09FFE8 8E990000 */ lw $t9, ($s4) -.L7F09FFEC: -/* 0D4B1C 7F09FFEC 26520001 */ addiu $s2, $s2, 1 -/* 0D4B20 7F09FFF0 26100078 */ addiu $s0, $s0, 0x78 -/* 0D4B24 7F09FFF4 0259082A */ slt $at, $s2, $t9 -/* 0D4B28 7F09FFF8 5420FF78 */ bnezl $at, .L7F09FDDC -/* 0D4B2C 7F09FFFC 8E2F0000 */ lw $t7, ($s1) -.L7F0A0000: -/* 0D4B30 7F0A0000 8FBF0054 */ lw $ra, 0x54($sp) -/* 0D4B34 7F0A0004 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0D4B38 7F0A0008 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0D4B3C 7F0A000C D7B80028 */ ldc1 $f24, 0x28($sp) -/* 0D4B40 7F0A0010 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* 0D4B44 7F0A0014 D7BC0038 */ ldc1 $f28, 0x38($sp) -/* 0D4B48 7F0A0018 8FB00040 */ lw $s0, 0x40($sp) -/* 0D4B4C 7F0A001C 8FB10044 */ lw $s1, 0x44($sp) -/* 0D4B50 7F0A0020 8FB20048 */ lw $s2, 0x48($sp) -/* 0D4B54 7F0A0024 8FB3004C */ lw $s3, 0x4c($sp) -/* 0D4B58 7F0A0028 8FB40050 */ lw $s4, 0x50($sp) -/* 0D4B5C 7F0A002C 03E00008 */ jr $ra -/* 0D4B60 7F0A0030 27BD0058 */ addiu $sp, $sp, 0x58 -) -#endif - - - #ifdef NONMATCHING @@ -5234,8 +4028,8 @@ glabel sub_GAME_7F0A0034 /* 0D4BFC 7F0A00CC 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d /* 0D4C00 7F0A00D0 AC890000 */ sw $t1, ($a0) /* 0D4C04 7F0A00D4 AC8A0004 */ sw $t2, 4($a0) -/* 0D4C08 7F0A00D8 3C0B8008 */ lui $t3, %hi(max_casings) -/* 0D4C0C 7F0A00DC 8D6BA148 */ lw $t3, %lo(max_casings)($t3) +/* 0D4C08 7F0A00D8 3C0B8008 */ lui $t3, %hi(max_particles) +/* 0D4C0C 7F0A00DC 8D6BA148 */ lw $t3, %lo(max_particles)($t3) /* 0D4C10 7F0A00E0 26100008 */ addiu $s0, $s0, 8 /* 0D4C14 7F0A00E4 0000A825 */ move $s5, $zero /* 0D4C18 7F0A00E8 19600055 */ blez $t3, .L7F0A0240 @@ -5245,8 +4039,8 @@ glabel sub_GAME_7F0A0034 /* 0D4C28 7F0A00F8 3C018005 */ lui $at, %hi(D_80057700) /* 0D4C2C 7F0A00FC 3C1E0430 */ lui $fp, (0x04300040 >> 16) # lui $fp, 0x430 /* 0D4C30 7F0A0100 3C170102 */ lui $s7, (0x01020040 >> 16) # lui $s7, 0x102 -/* 0D4C34 7F0A0104 3C168008 */ lui $s6, %hi(ptr_ejected_casing_buf) -/* 0D4C38 7F0A0108 26D6A14C */ addiu $s6, %lo(ptr_ejected_casing_buf) # addiu $s6, $s6, -0x5eb4 +/* 0D4C34 7F0A0104 3C168008 */ lui $s6, %hi(ptr_flying_particles_buf) +/* 0D4C38 7F0A0108 26D6A14C */ addiu $s6, %lo(ptr_flying_particles_buf) # addiu $s6, $s6, -0x5eb4 /* 0D4C3C 7F0A010C 36F70040 */ ori $s7, (0x01020040 & 0xFFFF) # ori $s7, $s7, 0x40 /* 0D4C40 7F0A0110 37DE0040 */ ori $fp, (0x04300040 & 0xFFFF) # ori $fp, $fp, 0x40 /* 0D4C44 7F0A0114 C4347700 */ lwc1 $f20, %lo(D_80057700)($at) @@ -5319,8 +4113,8 @@ glabel sub_GAME_7F0A0034 /* 0D4D4C 7F0A021C AC6F0000 */ sw $t7, ($v1) /* 0D4D50 7F0A0220 26100008 */ addiu $s0, $s0, 8 .L7F0A0224: -/* 0D4D54 7F0A0224 3C198008 */ lui $t9, %hi(max_casings) -/* 0D4D58 7F0A0228 8F39A148 */ lw $t9, %lo(max_casings)($t9) +/* 0D4D54 7F0A0224 3C198008 */ lui $t9, %hi(max_particles) +/* 0D4D58 7F0A0228 8F39A148 */ lw $t9, %lo(max_particles)($t9) /* 0D4D5C 7F0A022C 26B50001 */ addiu $s5, $s5, 1 /* 0D4D60 7F0A0230 26730078 */ addiu $s3, $s3, 0x78 /* 0D4D64 7F0A0234 02B9082A */ slt $at, $s5, $t9 @@ -5967,310 +4761,52 @@ s32 sub_GAME_7F0A0C74(f32 arg0) - - -#ifdef NONMATCHING -void sub_GAME_7F0A0CCC(void) { - +void sub_GAME_7F0A0CCC(s32 arg0, s8 arg1) +{ + s32 i; + for (i = 0; i < BULLET_IMPACT_BUFFER_LEN; i++) + { + if ((arg0 == ptr_bullet_impact_buf[i].unk48) && (arg1 == ptr_bullet_impact_buf[i].unk4D)) + { + ptr_bullet_impact_buf[i].unk00 = -1; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0A0CCC -/* 0D57FC 7F0A0CCC AFA50004 */ sw $a1, 4($sp) -/* 0D5800 7F0A0CD0 00057600 */ sll $t6, $a1, 0x18 -/* 0D5804 7F0A0CD4 3C068008 */ lui $a2, %hi(ptr_bullet_impact_buf) -/* 0D5808 7F0A0CD8 000E2E03 */ sra $a1, $t6, 0x18 -/* 0D580C 7F0A0CDC 24C6A154 */ addiu $a2, %lo(ptr_bullet_impact_buf) # addiu $a2, $a2, -0x5eac -/* 0D5810 7F0A0CE0 00001825 */ move $v1, $zero -/* 0D5814 7F0A0CE4 24081F40 */ li $t0, 8000 -/* 0D5818 7F0A0CE8 2407FFFF */ li $a3, -1 -/* 0D581C 7F0A0CEC 8CD80000 */ lw $t8, ($a2) -.L7F0A0CF0: -/* 0D5820 7F0A0CF0 03031021 */ addu $v0, $t8, $v1 -/* 0D5824 7F0A0CF4 8C590048 */ lw $t9, 0x48($v0) -/* 0D5828 7F0A0CF8 54990008 */ bnel $a0, $t9, .L7F0A0D1C -/* 0D582C 7F0A0CFC 8C4B0098 */ lw $t3, 0x98($v0) -/* 0D5830 7F0A0D00 8049004D */ lb $t1, 0x4d($v0) -/* 0D5834 7F0A0D04 54A90005 */ bnel $a1, $t1, .L7F0A0D1C -/* 0D5838 7F0A0D08 8C4B0098 */ lw $t3, 0x98($v0) -/* 0D583C 7F0A0D0C A4470000 */ sh $a3, ($v0) -/* 0D5840 7F0A0D10 8CCA0000 */ lw $t2, ($a2) -/* 0D5844 7F0A0D14 01431021 */ addu $v0, $t2, $v1 -/* 0D5848 7F0A0D18 8C4B0098 */ lw $t3, 0x98($v0) -.L7F0A0D1C: -/* 0D584C 7F0A0D1C 548B0008 */ bnel $a0, $t3, .L7F0A0D40 -/* 0D5850 7F0A0D20 8C4E00E8 */ lw $t6, 0xe8($v0) -/* 0D5854 7F0A0D24 804C009D */ lb $t4, 0x9d($v0) -/* 0D5858 7F0A0D28 54AC0005 */ bnel $a1, $t4, .L7F0A0D40 -/* 0D585C 7F0A0D2C 8C4E00E8 */ lw $t6, 0xe8($v0) -/* 0D5860 7F0A0D30 A4470050 */ sh $a3, 0x50($v0) -/* 0D5864 7F0A0D34 8CCD0000 */ lw $t5, ($a2) -/* 0D5868 7F0A0D38 01A31021 */ addu $v0, $t5, $v1 -/* 0D586C 7F0A0D3C 8C4E00E8 */ lw $t6, 0xe8($v0) -.L7F0A0D40: -/* 0D5870 7F0A0D40 548E0008 */ bnel $a0, $t6, .L7F0A0D64 -/* 0D5874 7F0A0D44 8C590138 */ lw $t9, 0x138($v0) -/* 0D5878 7F0A0D48 804F00ED */ lb $t7, 0xed($v0) -/* 0D587C 7F0A0D4C 54AF0005 */ bnel $a1, $t7, .L7F0A0D64 -/* 0D5880 7F0A0D50 8C590138 */ lw $t9, 0x138($v0) -/* 0D5884 7F0A0D54 A44700A0 */ sh $a3, 0xa0($v0) -/* 0D5888 7F0A0D58 8CD80000 */ lw $t8, ($a2) -/* 0D588C 7F0A0D5C 03031021 */ addu $v0, $t8, $v1 -/* 0D5890 7F0A0D60 8C590138 */ lw $t9, 0x138($v0) -.L7F0A0D64: -/* 0D5894 7F0A0D64 24630140 */ addiu $v1, $v1, 0x140 -/* 0D5898 7F0A0D68 14990005 */ bne $a0, $t9, .L7F0A0D80 -/* 0D589C 7F0A0D6C 00000000 */ nop -/* 0D58A0 7F0A0D70 8049013D */ lb $t1, 0x13d($v0) -/* 0D58A4 7F0A0D74 14A90002 */ bne $a1, $t1, .L7F0A0D80 -/* 0D58A8 7F0A0D78 00000000 */ nop -/* 0D58AC 7F0A0D7C A44700F0 */ sh $a3, 0xf0($v0) -.L7F0A0D80: -/* 0D58B0 7F0A0D80 5468FFDB */ bnel $v1, $t0, .L7F0A0CF0 -/* 0D58B4 7F0A0D84 8CD80000 */ lw $t8, ($a2) -/* 0D58B8 7F0A0D88 03E00008 */ jr $ra -/* 0D58BC 7F0A0D8C 00000000 */ nop -) -#endif - - -#ifdef NONMATCHING -void sub_GAME_7F0A0D90(void) { - +void sub_GAME_7F0A0D90(s32 arg0) +{ + s32 i; + for (i = 0; i < BULLET_IMPACT_BUFFER_LEN; i++) + { + if ((arg0 == ptr_bullet_impact_buf[i].unk48) && (D_8004080C[ptr_bullet_impact_buf[i].unk02].unk1 == 2)) + { + ptr_bullet_impact_buf[i].unk00 = -1; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0A0D90 -/* 0D58C0 7F0A0D90 3C078004 */ lui $a3, %hi(D_8004080C) -/* 0D58C4 7F0A0D94 3C058008 */ lui $a1, %hi(ptr_bullet_impact_buf) -/* 0D58C8 7F0A0D98 24A5A154 */ addiu $a1, %lo(ptr_bullet_impact_buf) # addiu $a1, $a1, -0x5eac -/* 0D58CC 7F0A0D9C 24E7080C */ addiu $a3, %lo(D_8004080C) # addiu $a3, $a3, 0x80c -/* 0D58D0 7F0A0DA0 00001825 */ move $v1, $zero -/* 0D58D4 7F0A0DA4 240A1F40 */ li $t2, 8000 -/* 0D58D8 7F0A0DA8 2409FFFF */ li $t1, -1 -/* 0D58DC 7F0A0DAC 2408000C */ li $t0, 12 -/* 0D58E0 7F0A0DB0 24060002 */ li $a2, 2 -/* 0D58E4 7F0A0DB4 8CAE0000 */ lw $t6, ($a1) -.L7F0A0DB8: -/* 0D58E8 7F0A0DB8 01C31021 */ addu $v0, $t6, $v1 -/* 0D58EC 7F0A0DBC 8C4F0048 */ lw $t7, 0x48($v0) -/* 0D58F0 7F0A0DC0 548F000C */ bnel $a0, $t7, .L7F0A0DF4 -/* 0D58F4 7F0A0DC4 8C4E0098 */ lw $t6, 0x98($v0) -/* 0D58F8 7F0A0DC8 84580002 */ lh $t8, 2($v0) -/* 0D58FC 7F0A0DCC 03080019 */ multu $t8, $t0 -/* 0D5900 7F0A0DD0 0000C812 */ mflo $t9 -/* 0D5904 7F0A0DD4 00F95821 */ addu $t3, $a3, $t9 -/* 0D5908 7F0A0DD8 916C0009 */ lbu $t4, 9($t3) -/* 0D590C 7F0A0DDC 54CC0005 */ bnel $a2, $t4, .L7F0A0DF4 -/* 0D5910 7F0A0DE0 8C4E0098 */ lw $t6, 0x98($v0) -/* 0D5914 7F0A0DE4 A4490000 */ sh $t1, ($v0) -/* 0D5918 7F0A0DE8 8CAD0000 */ lw $t5, ($a1) -/* 0D591C 7F0A0DEC 01A31021 */ addu $v0, $t5, $v1 -/* 0D5920 7F0A0DF0 8C4E0098 */ lw $t6, 0x98($v0) -.L7F0A0DF4: -/* 0D5924 7F0A0DF4 548E000C */ bnel $a0, $t6, .L7F0A0E28 -/* 0D5928 7F0A0DF8 8C4D00E8 */ lw $t5, 0xe8($v0) -/* 0D592C 7F0A0DFC 844F0052 */ lh $t7, 0x52($v0) -/* 0D5930 7F0A0E00 01E80019 */ multu $t7, $t0 -/* 0D5934 7F0A0E04 0000C012 */ mflo $t8 -/* 0D5938 7F0A0E08 00F8C821 */ addu $t9, $a3, $t8 -/* 0D593C 7F0A0E0C 932B0009 */ lbu $t3, 9($t9) -/* 0D5940 7F0A0E10 54CB0005 */ bnel $a2, $t3, .L7F0A0E28 -/* 0D5944 7F0A0E14 8C4D00E8 */ lw $t5, 0xe8($v0) -/* 0D5948 7F0A0E18 A4490050 */ sh $t1, 0x50($v0) -/* 0D594C 7F0A0E1C 8CAC0000 */ lw $t4, ($a1) -/* 0D5950 7F0A0E20 01831021 */ addu $v0, $t4, $v1 -/* 0D5954 7F0A0E24 8C4D00E8 */ lw $t5, 0xe8($v0) -.L7F0A0E28: -/* 0D5958 7F0A0E28 548D000C */ bnel $a0, $t5, .L7F0A0E5C -/* 0D595C 7F0A0E2C 8C4C0138 */ lw $t4, 0x138($v0) -/* 0D5960 7F0A0E30 844E00A2 */ lh $t6, 0xa2($v0) -/* 0D5964 7F0A0E34 01C80019 */ multu $t6, $t0 -/* 0D5968 7F0A0E38 00007812 */ mflo $t7 -/* 0D596C 7F0A0E3C 00EFC021 */ addu $t8, $a3, $t7 -/* 0D5970 7F0A0E40 93190009 */ lbu $t9, 9($t8) -/* 0D5974 7F0A0E44 54D90005 */ bnel $a2, $t9, .L7F0A0E5C -/* 0D5978 7F0A0E48 8C4C0138 */ lw $t4, 0x138($v0) -/* 0D597C 7F0A0E4C A44900A0 */ sh $t1, 0xa0($v0) -/* 0D5980 7F0A0E50 8CAB0000 */ lw $t3, ($a1) -/* 0D5984 7F0A0E54 01631021 */ addu $v0, $t3, $v1 -/* 0D5988 7F0A0E58 8C4C0138 */ lw $t4, 0x138($v0) -.L7F0A0E5C: -/* 0D598C 7F0A0E5C 24630140 */ addiu $v1, $v1, 0x140 -/* 0D5990 7F0A0E60 148C0009 */ bne $a0, $t4, .L7F0A0E88 -/* 0D5994 7F0A0E64 00000000 */ nop -/* 0D5998 7F0A0E68 844D00F2 */ lh $t5, 0xf2($v0) -/* 0D599C 7F0A0E6C 01A80019 */ multu $t5, $t0 -/* 0D59A0 7F0A0E70 00007012 */ mflo $t6 -/* 0D59A4 7F0A0E74 00EE7821 */ addu $t7, $a3, $t6 -/* 0D59A8 7F0A0E78 91F80009 */ lbu $t8, 9($t7) -/* 0D59AC 7F0A0E7C 14D80002 */ bne $a2, $t8, .L7F0A0E88 -/* 0D59B0 7F0A0E80 00000000 */ nop -/* 0D59B4 7F0A0E84 A44900F0 */ sh $t1, 0xf0($v0) -.L7F0A0E88: -/* 0D59B8 7F0A0E88 546AFFCB */ bnel $v1, $t2, .L7F0A0DB8 -/* 0D59BC 7F0A0E8C 8CAE0000 */ lw $t6, ($a1) -/* 0D59C0 7F0A0E90 03E00008 */ jr $ra -/* 0D59C4 7F0A0E94 00000000 */ nop -) -#endif +void sub_GAME_7F0A0E98(s32 arg0) +{ + u32 val; + s32 i; + for (i = 0; i < SMOKE_PARTS_LEN; i++) + { + val = (u32) (((f32) i / 10.0f) * 255.0f); + ptr_bullet_impact_buf[arg0].unk47 = (s8) val; + if (1) { } + ptr_bullet_impact_buf[arg0].unk37 = (s8) val; + ptr_bullet_impact_buf[arg0].unk27 = (s8) val; + ptr_bullet_impact_buf[arg0].unk17 = (s8) val; - - -#ifdef NONMATCHING -void sub_GAME_7F0A0E98(void) { - + if (++arg0 >= BULLET_IMPACT_BUFFER_LEN) + { + arg0 = 0; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0A0E98 -/* 0D59C8 7F0A0E98 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0D59CC 7F0A0E9C 44811000 */ mtc1 $at, $f2 -/* 0D59D0 7F0A0EA0 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0D59D4 7F0A0EA4 3C068008 */ lui $a2, %hi(ptr_bullet_impact_buf) -/* 0D59D8 7F0A0EA8 44810000 */ mtc1 $at, $f0 -/* 0D59DC 7F0A0EAC 24C6A154 */ addiu $a2, %lo(ptr_bullet_impact_buf) # addiu $a2, $a2, -0x5eac -/* 0D59E0 7F0A0EB0 00001025 */ move $v0, $zero -/* 0D59E4 7F0A0EB4 2408000A */ li $t0, 10 -/* 0D59E8 7F0A0EB8 24070050 */ li $a3, 80 -/* 0D59EC 7F0A0EBC 44822000 */ mtc1 $v0, $f4 -.L7F0A0EC0: -/* 0D59F0 7F0A0EC0 24030001 */ li $v1, 1 -/* 0D59F4 7F0A0EC4 00870019 */ multu $a0, $a3 -/* 0D59F8 7F0A0EC8 468021A0 */ cvt.s.w $f6, $f4 -/* 0D59FC 7F0A0ECC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0D5A00 7F0A0ED0 46003203 */ div.s $f8, $f6, $f0 -/* 0D5A04 7F0A0ED4 00002812 */ mflo $a1 -/* 0D5A08 7F0A0ED8 46024282 */ mul.s $f10, $f8, $f2 -/* 0D5A0C 7F0A0EDC 444EF800 */ cfc1 $t6, $31 -/* 0D5A10 7F0A0EE0 44C3F800 */ ctc1 $v1, $31 -/* 0D5A14 7F0A0EE4 00000000 */ nop -/* 0D5A18 7F0A0EE8 46005424 */ cvt.w.s $f16, $f10 -/* 0D5A1C 7F0A0EEC 4443F800 */ cfc1 $v1, $31 -/* 0D5A20 7F0A0EF0 00000000 */ nop -/* 0D5A24 7F0A0EF4 30630078 */ andi $v1, $v1, 0x78 -/* 0D5A28 7F0A0EF8 50600013 */ beql $v1, $zero, .L7F0A0F48 -/* 0D5A2C 7F0A0EFC 44038000 */ mfc1 $v1, $f16 -/* 0D5A30 7F0A0F00 44818000 */ mtc1 $at, $f16 -/* 0D5A34 7F0A0F04 24030001 */ li $v1, 1 -/* 0D5A38 7F0A0F08 46105401 */ sub.s $f16, $f10, $f16 -/* 0D5A3C 7F0A0F0C 44C3F800 */ ctc1 $v1, $31 -/* 0D5A40 7F0A0F10 00000000 */ nop -/* 0D5A44 7F0A0F14 46008424 */ cvt.w.s $f16, $f16 -/* 0D5A48 7F0A0F18 4443F800 */ cfc1 $v1, $31 -/* 0D5A4C 7F0A0F1C 00000000 */ nop -/* 0D5A50 7F0A0F20 30630078 */ andi $v1, $v1, 0x78 -/* 0D5A54 7F0A0F24 14600005 */ bnez $v1, .L7F0A0F3C -/* 0D5A58 7F0A0F28 00000000 */ nop -/* 0D5A5C 7F0A0F2C 44038000 */ mfc1 $v1, $f16 -/* 0D5A60 7F0A0F30 3C018000 */ lui $at, 0x8000 -/* 0D5A64 7F0A0F34 10000007 */ b .L7F0A0F54 -/* 0D5A68 7F0A0F38 00611825 */ or $v1, $v1, $at -.L7F0A0F3C: -/* 0D5A6C 7F0A0F3C 10000005 */ b .L7F0A0F54 -/* 0D5A70 7F0A0F40 2403FFFF */ li $v1, -1 -/* 0D5A74 7F0A0F44 44038000 */ mfc1 $v1, $f16 -.L7F0A0F48: -/* 0D5A78 7F0A0F48 00000000 */ nop -/* 0D5A7C 7F0A0F4C 0460FFFB */ bltz $v1, .L7F0A0F3C -/* 0D5A80 7F0A0F50 00000000 */ nop -.L7F0A0F54: -/* 0D5A84 7F0A0F54 8CCF0000 */ lw $t7, ($a2) -/* 0D5A88 7F0A0F58 44CEF800 */ ctc1 $t6, $31 -/* 0D5A8C 7F0A0F5C 244E0001 */ addiu $t6, $v0, 1 -/* 0D5A90 7F0A0F60 01E5C021 */ addu $t8, $t7, $a1 -/* 0D5A94 7F0A0F64 A3030047 */ sb $v1, 0x47($t8) -/* 0D5A98 7F0A0F68 8CD90000 */ lw $t9, ($a2) -/* 0D5A9C 7F0A0F6C 448E9000 */ mtc1 $t6, $f18 -/* 0D5AA0 7F0A0F70 24840001 */ addiu $a0, $a0, 1 -/* 0D5AA4 7F0A0F74 03254821 */ addu $t1, $t9, $a1 -/* 0D5AA8 7F0A0F78 A1230037 */ sb $v1, 0x37($t1) -/* 0D5AAC 7F0A0F7C 8CCA0000 */ lw $t2, ($a2) -/* 0D5AB0 7F0A0F80 46809120 */ cvt.s.w $f4, $f18 -/* 0D5AB4 7F0A0F84 28810064 */ slti $at, $a0, 0x64 -/* 0D5AB8 7F0A0F88 01455821 */ addu $t3, $t2, $a1 -/* 0D5ABC 7F0A0F8C A1630027 */ sb $v1, 0x27($t3) -/* 0D5AC0 7F0A0F90 8CCC0000 */ lw $t4, ($a2) -/* 0D5AC4 7F0A0F94 24420002 */ addiu $v0, $v0, 2 -/* 0D5AC8 7F0A0F98 46002183 */ div.s $f6, $f4, $f0 -/* 0D5ACC 7F0A0F9C 01856821 */ addu $t5, $t4, $a1 -/* 0D5AD0 7F0A0FA0 A1A30017 */ sb $v1, 0x17($t5) -/* 0D5AD4 7F0A0FA4 14200003 */ bnez $at, .L7F0A0FB4 -/* 0D5AD8 7F0A0FA8 24A50050 */ addiu $a1, $a1, 0x50 -/* 0D5ADC 7F0A0FAC 00002025 */ move $a0, $zero -/* 0D5AE0 7F0A0FB0 00002825 */ move $a1, $zero -.L7F0A0FB4: -/* 0D5AE4 7F0A0FB4 46023202 */ mul.s $f8, $f6, $f2 -/* 0D5AE8 7F0A0FB8 24030001 */ li $v1, 1 -/* 0D5AEC 7F0A0FBC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0D5AF0 7F0A0FC0 444FF800 */ cfc1 $t7, $31 -/* 0D5AF4 7F0A0FC4 44C3F800 */ ctc1 $v1, $31 -/* 0D5AF8 7F0A0FC8 00000000 */ nop -/* 0D5AFC 7F0A0FCC 460042A4 */ cvt.w.s $f10, $f8 -/* 0D5B00 7F0A0FD0 4443F800 */ cfc1 $v1, $31 -/* 0D5B04 7F0A0FD4 00000000 */ nop -/* 0D5B08 7F0A0FD8 30630078 */ andi $v1, $v1, 0x78 -/* 0D5B0C 7F0A0FDC 50600013 */ beql $v1, $zero, .L7F0A102C -/* 0D5B10 7F0A0FE0 44035000 */ mfc1 $v1, $f10 -/* 0D5B14 7F0A0FE4 44815000 */ mtc1 $at, $f10 -/* 0D5B18 7F0A0FE8 24030001 */ li $v1, 1 -/* 0D5B1C 7F0A0FEC 460A4281 */ sub.s $f10, $f8, $f10 -/* 0D5B20 7F0A0FF0 44C3F800 */ ctc1 $v1, $31 -/* 0D5B24 7F0A0FF4 00000000 */ nop -/* 0D5B28 7F0A0FF8 460052A4 */ cvt.w.s $f10, $f10 -/* 0D5B2C 7F0A0FFC 4443F800 */ cfc1 $v1, $31 -/* 0D5B30 7F0A1000 00000000 */ nop -/* 0D5B34 7F0A1004 30630078 */ andi $v1, $v1, 0x78 -/* 0D5B38 7F0A1008 14600005 */ bnez $v1, .L7F0A1020 -/* 0D5B3C 7F0A100C 00000000 */ nop -/* 0D5B40 7F0A1010 44035000 */ mfc1 $v1, $f10 -/* 0D5B44 7F0A1014 3C018000 */ lui $at, 0x8000 -/* 0D5B48 7F0A1018 10000007 */ b .L7F0A1038 -/* 0D5B4C 7F0A101C 00611825 */ or $v1, $v1, $at -.L7F0A1020: -/* 0D5B50 7F0A1020 10000005 */ b .L7F0A1038 -/* 0D5B54 7F0A1024 2403FFFF */ li $v1, -1 -/* 0D5B58 7F0A1028 44035000 */ mfc1 $v1, $f10 -.L7F0A102C: -/* 0D5B5C 7F0A102C 00000000 */ nop -/* 0D5B60 7F0A1030 0460FFFB */ bltz $v1, .L7F0A1020 -/* 0D5B64 7F0A1034 00000000 */ nop -.L7F0A1038: -/* 0D5B68 7F0A1038 8CD80000 */ lw $t8, ($a2) -/* 0D5B6C 7F0A103C 24840001 */ addiu $a0, $a0, 1 -/* 0D5B70 7F0A1040 28810064 */ slti $at, $a0, 0x64 -/* 0D5B74 7F0A1044 0305C821 */ addu $t9, $t8, $a1 -/* 0D5B78 7F0A1048 A3230047 */ sb $v1, 0x47($t9) -/* 0D5B7C 7F0A104C 8CC90000 */ lw $t1, ($a2) -/* 0D5B80 7F0A1050 44CFF800 */ ctc1 $t7, $31 -/* 0D5B84 7F0A1054 01255021 */ addu $t2, $t1, $a1 -/* 0D5B88 7F0A1058 A1430037 */ sb $v1, 0x37($t2) -/* 0D5B8C 7F0A105C 8CCB0000 */ lw $t3, ($a2) -/* 0D5B90 7F0A1060 01656021 */ addu $t4, $t3, $a1 -/* 0D5B94 7F0A1064 A1830027 */ sb $v1, 0x27($t4) -/* 0D5B98 7F0A1068 8CCD0000 */ lw $t5, ($a2) -/* 0D5B9C 7F0A106C 01A57021 */ addu $t6, $t5, $a1 -/* 0D5BA0 7F0A1070 14200002 */ bnez $at, .L7F0A107C -/* 0D5BA4 7F0A1074 A1C30017 */ sb $v1, 0x17($t6) -/* 0D5BA8 7F0A1078 00002025 */ move $a0, $zero -.L7F0A107C: -/* 0D5BAC 7F0A107C 5448FF90 */ bnel $v0, $t0, .L7F0A0EC0 -/* 0D5BB0 7F0A1080 44822000 */ mtc1 $v0, $f4 -/* 0D5BB4 7F0A1084 03E00008 */ jr $ra -/* 0D5BB8 7F0A1088 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING diff --git a/src/game/explosions.h b/src/game/explosions.h index 26d646d0..ca2eca24 100644 --- a/src/game/explosions.h +++ b/src/game/explosions.h @@ -9,7 +9,7 @@ #define SMOKE_PARTS_LEN 10 #define SCORCH_BUFFER_LEN 20 #define BULLET_IMPACT_BUFFER_LEN 100 -#define MAX_BULLET_CASINGS 200 +#define MAX_FLYING_PARTICLES 200 typedef struct s_smoketype { s16 duration; @@ -71,7 +71,9 @@ struct Explosion { u32 unk04; struct ExplosionPart parts[EXPLOSION_PARTS_LEN]; u32 unk3C8; - u32 unk3CC; + s8 unk3CC; + u8 unk3CD; + u16 unk3CE; u32 unk3D0; u32 unk3D4; u32 unk3D8; @@ -92,7 +94,8 @@ struct SmokePart struct Smoke { PropRecord *prop; - u32 unk04; + s16 unk04; + s16 unk06; struct SmokePart parts[SMOKE_PARTS_LEN]; /*0x008*/ }; @@ -132,77 +135,88 @@ struct BulletImpact { u32 unk0C; u32 unk10; - u32 unk14; + u16 unk14; + s8 unk16; + s8 unk17; u32 unk18; u32 unk1C; u32 unk20; - u32 unk24; + u16 unk24; + s8 unk26; + s8 unk27; u32 unk28; u32 unk2C; u32 unk30; - u32 unk34; + u16 unk34; + s8 unk36; + s8 unk37; u32 unk38; u32 unk3C; u32 unk40; - u32 unk44; + u16 unk44; + s8 unk46; + s8 unk47; u32 unk48; - u32 unk4C; + s8 unk4C; + s8 unk4D; + s16 unk4E; }; -struct EjectedCasing { +struct FlyingParticles_unk38 { + s16 unk00; + s16 unk02; + s16 unk04; + s16 unk06; + s16 unk08; + s16 unk0A; + s8 unk0C; + s8 unk0D; + s8 unk0E; + u8 unk0F; +}; + +struct FlyingParticles { s32 unk00; - u32 unk04; - u32 unk08; - u32 unk0C; - u32 unk10; - u32 unk14; - u32 unk18; - u32 unk1C; + // coord3d? + f32 x; + f32 y; + f32 z; - u32 unk20; - u32 unk24; - u32 unk28; - u32 unk2C; + // coord3d? + f32 unk10; + f32 unk14; + f32 unk18; - u32 unk30; - u32 unk34; - u32 unk38; - u32 unk3C; + // coord3d? + f32 unk1C; + f32 unk20; + f32 unk24; - u32 unk40; - u32 unk44; - u32 unk48; - u32 unk4C; + // coord3d? + f32 unk28; + f32 unk2C; + f32 unk30; - u32 unk50; - u32 unk54; - u32 unk58; - u32 unk5C; + s32 unk34; - u32 unk60; - u32 unk64; - u32 unk68; - u32 unk6C; - - u32 unk70; - u32 unk74; + struct FlyingParticles_unk38 unk38[4]; }; extern f32 D_80040178; extern char dword_CODE_bss_8007A100[]; extern struct Smoke *ptr_smoke_buf; extern struct Explosion *ptr_explosion_buf; -extern s32 max_casings; -extern struct EjectedCasing *ptr_ejected_casing_buf; +extern s32 max_particles; +extern struct FlyingParticles *ptr_flying_particles_buf; extern struct Scorch *ptr_scorch_buf; extern struct BulletImpact *ptr_bullet_impact_buf; extern s32 numExplosionEntries; extern s32 numSmokeEntries; -extern s32 numCasingEntries; +extern s32 numParticleEntries; extern s32 numScorchEntries; extern s32 numImpactEntries; diff --git a/src/game/file.c b/src/game/file.c index 99b22731..a2c1d152 100644 --- a/src/game/file.c +++ b/src/game/file.c @@ -3,65 +3,6 @@ #include "file2.h" #include "front.h" -/* EEPROM masks for in-game settings */ -#define OPTION_INVERTLOOK 0x0001 -#define OPTION_AUTOAIM 0x0002 -#define OPTION_AIMCONTROL 0x0004 -#define OPTION_SIGHTONSCREEN 0x0008 -#define OPTION_LOOKAHEAD 0x0010 -#define OPTION_DISPLAYAMMO 0x0020 -#define OPTION_SCREENWIDE 0x0040 -#define OPTION_SCREENRATIO 0x0080 -#define OPTION_CONTROLTYPE 0x0700 -#define OPTION_SCREENCINEMA 0x0800 - -#define DEFAULT_OPTIONS (OPTION_AUTOAIM | OPTION_SIGHTONSCREEN | OPTION_LOOKAHEAD | OPTION_DISPLAYAMMO) - -// bss -//CODE.bss:80069920 -//CODE.bss:80069980 -//CODE.bss:800699E0 -//CODE.bss:80069A40 -//CODE.bss:80069AA0 -//CODE.bss:80069B00 -save_data saves[6]; - -//CODE.bss:80069B60 -u32 dword_CODE_bss_80069B60; - - -//data -//D:8002C510 -s32 save_selected_bond[] = {0,0,0,0}; - -//D:8002C520 -save_data D_8002C520 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; -//D:8002C580 -// Default Save -save_data D_8002C580 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; -//D:8002C5E0 -save_data D_8002C5E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; -//D:8002C640 -smallSave blankSmallSave = {0, 0, 0x42}; - -//D:8002C660 -save_data D_8002C660 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; - -//D:8002C6C0 -save_data D_8002C6C0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -//D:8002C720 -save_data D_8002C720 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -//D:8002C780 -save_data D_8002C780 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -//D:8002C7E0 -save_data D_8002C7E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -//D:8002C840 -save_data D_8002C840 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -//D:8002C8A0 -save_data blank_eeprom = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - - - f32 get_007_reaction_speed(void) { if (lvlGetSelectedDifficulty() == DIFFICULTY_007) { diff --git a/src/game/file2.c b/src/game/file2.c index 02a37bfb..8a7afdb7 100644 --- a/src/game/file2.c +++ b/src/game/file2.c @@ -8,6 +8,51 @@ #include "file2.h" #include "front.h" + + +// bss +//CODE.bss:80069920 +//CODE.bss:80069980 +//CODE.bss:800699E0 +//CODE.bss:80069A40 +//CODE.bss:80069AA0 +//CODE.bss:80069B00 +save_data saves[6]; + +//CODE.bss:80069B60 +u32 dword_CODE_bss_80069B60; + +//data +//D:8002C510 +s32 save_selected_bond[] = {0,0,0,0}; + +//D:8002C520 +save_data D_8002C520 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C580 +// Default Save +save_data D_8002C580 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C5E0 +save_data D_8002C5E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; +//D:8002C640 +smallSave blankSmallSave = {0, 0, 0x42}; + +//D:8002C660 +save_data D_8002C660 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0}; + +//D:8002C6C0 +save_data D_8002C6C0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C720 +save_data D_8002C720 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C780 +save_data D_8002C780 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C7E0 +save_data D_8002C7E0 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C840 +save_data D_8002C840 = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +//D:8002C8A0 +save_data blank_eeprom = {0, 0, 0x80, 0x00, 0xFF, 0xFF, DEFAULT_OPTIONS, 0x00, 0x00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + /** * * @@ -595,9 +640,9 @@ bool fileIsFolderValid(s32 folder) * @param foldernum * @param stage * @param difficulty - * @return 0, 1, or 3 + * @return 0, 1, or 3 (STAGESTATUS_LOCKED, STAGESTATUS_UNLOCKED, STAGESTATUS_COMPLETED) */ -s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty) +STAGESTATUS fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty) { save_data* save; s32 i; @@ -612,13 +657,13 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI { if ( fileGetSaveStageCompletedForDifficulty(save, stage, difficulty)) { - return 3; //found on first try, we are last completed stage + return STAGESTATUS_COMPLETED; //found on first try, stage has been completed and a time saved. } if ((stage == SP_LEVEL_AZTEC && difficulty < DIFFICULTY_SECRET) || (stage == SP_LEVEL_EGYPT && difficulty < DIFFICULTY_00)) { - return 0; //we cant possibly have a completed bonus stage below each set dificulty + return STAGESTATUS_LOCKED; //we cant possibly have a completed bonus stage below each set dificulty } //still cant find it, do a search (this is probably how a cheat can unlock stages without having to actualy do them all) @@ -635,7 +680,7 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI //if the first uncomplete stage is not less than current if (stage <= istage) { - return 1; + return STAGESTATUS_UNLOCKED; } } @@ -646,7 +691,7 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI { if ( fileGetSaveStageCompletedForDifficulty(save, stage - 1, i)) { - return 1; + return STAGESTATUS_UNLOCKED; } } } @@ -673,7 +718,7 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI if (difficulty <= i) { - return 1; + return STAGESTATUS_UNLOCKED; } } }// difficulty < DIFFICULTY_007 @@ -682,23 +727,23 @@ s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DI // no save, current level is dam, its unlocked. if (stage == SP_LEVEL_DAM) { - return 1; + return STAGESTATUS_UNLOCKED; } // no save, cheat enabled, its unlocked. if (get_debug_enable_agent_levels_flag() && difficulty == DIFFICULTY_AGENT) { - return 1; + return STAGESTATUS_UNLOCKED; } // no save, cheat enabled, its unlocked. (basically a repeat of above) if (get_debug_enable_all_levels_flag()) { - return 1; + return STAGESTATUS_UNLOCKED; } } // After all that the stage is not unlocked - return 0; + return STAGESTATUS_LOCKED; } /** @@ -874,7 +919,7 @@ LEVEL_SOLO_SEQUENCE fileGetHighestStageUnlockedForFolder(s32 foldernum) } } } - return 0; + return SP_LEVEL_DAM; } /** @@ -908,9 +953,9 @@ LEVEL_SOLO_SEQUENCE fileGetHighestStageUnlockedAnyFolder(void) */ bool fileIsCradleCompletedForFolder(s32 folder) { - return ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_AGENT) == 3) || - ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_SECRET) == 3) || - ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_00) == 3); + return (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_AGENT) == STAGESTATUS_COMPLETED) || + (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_SECRET) == STAGESTATUS_COMPLETED) || + (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_CRADLE, DIFFICULTY_00) == STAGESTATUS_COMPLETED); } /** @@ -921,8 +966,8 @@ bool fileIsCradleCompletedForFolder(s32 folder) */ bool fileIsAztecCompletedOnSecretOr00ForFolder(s32 folder) { - return ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_SECRET) == 3) || - ( fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_00) == 3); + return (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_SECRET) == STAGESTATUS_COMPLETED) || + (fileIsStageUnlockedAtDifficulty(folder, SP_LEVEL_AZTEC, DIFFICULTY_00) == STAGESTATUS_COMPLETED); } /** @@ -933,7 +978,7 @@ bool fileIsAztecCompletedOnSecretOr00ForFolder(s32 folder) */ bool fileIsEgyptCompletedOn00ForFolder(int foldernum) { - return fileIsStageUnlockedAtDifficulty(foldernum, SP_LEVEL_EGYPT, DIFFICULTY_00) == 3; + return fileIsStageUnlockedAtDifficulty(foldernum, SP_LEVEL_EGYPT, DIFFICULTY_00) == STAGESTATUS_COMPLETED; } /** diff --git a/src/game/file2.h b/src/game/file2.h index c34c3d8b..b6e9ca80 100644 --- a/src/game/file2.h +++ b/src/game/file2.h @@ -8,10 +8,25 @@ #define RAMROM_FOLDERNUM 0x64 +/* EEPROM masks for in-game settings */ +#define OPTION_INVERTLOOK 0x0001 +#define OPTION_AUTOAIM 0x0002 +#define OPTION_AIMCONTROL 0x0004 +#define OPTION_SIGHTONSCREEN 0x0008 +#define OPTION_LOOKAHEAD 0x0010 +#define OPTION_DISPLAYAMMO 0x0020 +#define OPTION_SCREENWIDE 0x0040 +#define OPTION_SCREENRATIO 0x0080 +#define OPTION_CONTROLTYPE 0x0700 +#define OPTION_SCREENCINEMA 0x0800 + +#define DEFAULT_OPTIONS (OPTION_AUTOAIM | OPTION_SIGHTONSCREEN | OPTION_LOOKAHEAD | OPTION_DISPLAYAMMO) + + u8 fileGetBondForFolder(u32 folder); void fileValidateSaves(void); bool fileGetIsCheatUnlocked(save_data *save, s32 cheat); -s32 fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty); +STAGESTATUS fileIsStageUnlockedAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty); void fileUnlockStageInFolderAtDifficulty(s32 foldernum, LEVEL_SOLO_SEQUENCE stage, DIFFICULTY difficulty, s32 newtime); void sub_GAME_7F01E760(s32 foldernum, s32 cheat); void fileLoadSettingsForFolder(u32 folder); diff --git a/src/game/front.c b/src/game/front.c index cf95fc3a..3f39d3b7 100644 --- a/src/game/front.c +++ b/src/game/front.c @@ -34,9 +34,6 @@ #include "objecthandler.h" #include "dyn.h" -// lvl.c checks for enabled cheats up to the "invalid" index of 0x4b (=75), which -// is different from the 80 here ... -#define CHEATS_TRACKED 80 struct BriefingDataSomething { @@ -112,58 +109,58 @@ f32 flt_CODE_bss_8006960C; //CODE.bss:80069610 f32 flt_CODE_bss_80069610; //CODE.bss:80069614 -f32 flt_CODE_bss_80069614; +f32 ninLogoRotRate; /** * Address 80069618 * EU .bss 80068558 */ -f32 flt_CODE_bss_80069618; +f32 ninLogoScale; //CODE.bss:8006961C f32 flt_CODE_bss_8006961C; //CODE.bss:80069620 -coord3d dword_CODE_bss_80069620[0x4]; +coord3d dword_CODE_bss_80069620[MAX_PLAYER_COUNT]; //CODE.bss:80069650 -u8 cheat_available[CHEATS_TRACKED]; +u8 cheat_available[CHEAT_MAX]; //CODE.bss:800696A0 -u8 g_CheatActivated[CHEATS_TRACKED]; +u8 g_CheatActivated[CHEAT_MAX]; #ifdef VERSION_EU /** * EU .bss 80068630 */ -s32 mp_char_cur_select_player[4]; +s32 mp_char_cur_select_player[MAX_PLAYER_COUNT]; /** * EU .bss 80068680 */ -s32 mp_char_prev_select_player[4]; +s32 mp_char_prev_select_player[MAX_PLAYER_COUNT]; /** * EU .bss 80068650 */ -s32 array_favweapon[4][2]; +s32 array_favweapon[MAX_PLAYER_COUNT][2]; #else /** * Address 800696F0 */ -s32 array_favweapon[4][2]; +s32 array_favweapon[MAX_PLAYER_COUNT][2]; /** * Address 80069710 */ -s32 mp_char_cur_select_player[4]; +s32 mp_char_cur_select_player[MAX_PLAYER_COUNT]; /** * Address 80069720 */ -s32 mp_char_prev_select_player[4]; +s32 mp_char_prev_select_player[MAX_PLAYER_COUNT]; #endif @@ -172,16 +169,10 @@ s32 mp_char_prev_select_player[4]; * Address 80069730 * EU .bss 80068690 */ -s32 dword_CODE_bss_80069730[4]; +s32 dword_CODE_bss_80069730[MAX_PLAYER_COUNT]; //CODE.bss:80069740 -s32 has_selected_char_player1; -//CODE.bss:80069744 -s32 has_selected_char_player2; -//CODE.bss:80069748 -s32 has_selected_char_player3; -//CODE.bss:8006974C -s32 has_selected_char_player4; +bool player_has_selected_char[MAX_PLAYER_COUNT]; //CODE.bss:80069750 s32 size_mp_select_image_player1; @@ -192,13 +183,7 @@ s32 size_mp_select_image_player3; //CODE.bss:8006975C s32 size_mp_select_image_player4; //CODE.bss:80069760 -s32 dword_CODE_bss_80069760; -//CODE.bss:80069764 -s32 dword_CODE_bss_80069764; -//CODE.bss:80069768 -s32 dword_CODE_bss_80069768; -//CODE.bss:8006976C -s32 dword_CODE_bss_8006976C; +s32 dword_CODE_bss_80069760[MAX_PLAYER_COUNT]; //CODE.bss:80069770 char* g_textPtrTAB1; //CODE.bss:80069774 @@ -230,15 +215,10 @@ s32 highlight_enemy_damage; s32 dword_CODE_bss_800697A4; //CODE.bss:800697A8 -s32 handicap_player1; -//CODE.bss:800697AC -s32 handicap_player2; -//CODE.bss:800697B0 -s32 handicap_player3; -//CODE.bss:800697B4 -s32 handicap_player4; +s32 player_handicap[MAX_PLAYER_COUNT]; + //CODE.bss:800697B8 -u32 controlstyle_player[4]; +u32 controlstyle_player[MAX_PLAYER_COUNT]; //CODE.bss:800697C8 s32 highlight_players; @@ -264,37 +244,39 @@ s32 highlight_aimadjustment; * Address 0x800697F0 * EU .bss 0x80058730 */ -u32 arrayUnlockedCheats[0x4b]; +u32 arrayUnlockedCheats[75]; MENU current_menu = MENU_INVALID; MENU menu_update = MENU_INVALID; MENU maybe_prev_menu = MENU_INVALID; -s32 menu_timer = 0; -s32 tab_1_selected = FALSE; -s32 tab_2_selected = FALSE; -s32 tab_3_selected = FALSE; -s32 tab_1_highlight = FALSE; -s32 tab_2_highlight = FALSE; -s32 tab_3_highlight = FALSE; +s32 g_MenuTimer = 0; + +s32 tab_start_selected = FALSE; +s32 tab_next_selected = FALSE; +s32 tab_prev_selected = FALSE; + +s32 tab_start_highlight = FALSE; +s32 tab_next_highlight = FALSE; +s32 tab_prev_highlight = FALSE; s32 selected_folder_num = 0; s32 selected_folder_num_copy = 0; GAMEMODE gamemode = GAMEMODE_INTRO; -s32 selected_stage = -1; -s32 briefingpage = -1; +s32 selected_stage = LEVELID_NONE; +s32 briefingpage = BRIEFING_INVALID; DIFFICULTY selected_difficulty = DIFFICULTY_MULTI; s32 g_AppendCheatSinglePlayer = FALSE; -s32 append_cheat_mp = FALSE; +s32 g_AppendCheatMultiPlayer = FALSE; f32 cursor_h_pos = 220.0; f32 cursor_v_pos = 165.0; -s32 final_menu_briefing_page = 2; -s32 current_menu_briefing_page = 0; +s32 final_menu_briefing_page = BRIEFING_M; +s32 current_menu_briefing_page = BRIEFING_TITLE; s32 folder_selection_screen_option_icon = 0; s32 folder_selected_for_deletion = -1; @@ -319,11 +301,8 @@ s32 is_cheat_menu_available = FALSE; Gfx * ptr_logo_and_walletbond_DL = 0; s32 ptr_menu_videobuffer = 0; -struct Model *something_legalscreen_constructor = NULL; -struct object_standard * ptr_folder_object_instance = 0; -s32 set0_never_used = 0; -s32 set0_never_used_0 = 0; -s32 D_8002A968 = 0; +struct Model *logoinst = NULL; +struct Model * walletinst[] = { NULL, NULL, NULL, NULL}; s32 D_8002A96C = 0; struct rgba_u8 RGBA_8002A970 = {0x96, 0x96, 0x96, 0}; struct rgba_u8 RGBA_8002A974 = {0x96, 0x96, 0x96, 0}; @@ -348,9 +327,9 @@ rgba_u8 D_8002A9B4 = { 0x96, 0x00, 0x00, 0x00 }; rgba_u8 D_8002A9B8 = { 0x28, 0x00, 0x00, 0x00 }; rgba_u8 D_8002A9BC = { 0x8C, 0x00, 0x00, 0x00 }; -struct coord3d D_8002A9C0 = {0.0f, 0.0f, 0.0f}; +struct coord3d legalpage_pos = {0.0f, 0.0f, 0.0f}; -struct legal_screen_text D_8002A9CC[] = { +struct legal_screen_text legalpage_text_array[] = { {220, 30, 1, 1, TEXT(LTITLE, 0x07), 0}, //"TWYCROSS BOARD OF GAME CLASSIFICATION\n" { 34, 83, 0, 1, TEXT(LTITLE, 0x08), 0}, //"This is to certify\n" {226, 84, 0, 1, TEXT(LTITLE, 0x09), 0}, //"(c) 1997 Nintendo/Rare\n" @@ -367,7 +346,7 @@ struct legal_screen_text D_8002A9CC[] = { struct unk_joint_list D_8002AABC = {NULL, 1, 3, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0}, 0}; -struct coord3d D_8002AAFC = {0}; +struct coord3d nintendologo_pos = {0}; u32 D_8002AB08 = 0; @@ -386,7 +365,7 @@ u32 D_8002AB38 = 0; u32 D_8002AB3C = 0; u32 D_8002AB40 = 0; u32 D_8002AB44 = 0; -struct coord3d D_8002AB48 = { 0 }; +struct coord3d goldeneyelogo_pos = { 0 }; u32 D_8002AB54 = 0; u32 D_8002AB58 = 1; @@ -483,12 +462,12 @@ u32 D_8002AFC0 = 0; u32 D_8002AFC4 = 0; f32 D_8002AFC8 = 190.0; f32 D_8002AFCC = -3300.0; -u32 cursor_xpos_table_mission_select[] = {73, 142, 212, 282, 352}; +s32 cursor_xpos_table_mission_select[] = {73, 142, 212, 282, 352}; #if defined(VERSION_EU) -u32 cursor_ypos_table_mission_select[] = {62, 130, 201, 270}; +s32 cursor_ypos_table_mission_select[] = {62, 130, 201, 270}; #else -u32 cursor_ypos_table_mission_select[] = {62, 131, 201, 270}; +s32 cursor_ypos_table_mission_select[] = {62, 131, 201, 270}; #endif struct MP_game_length_settings multi_game_lengths[] = { @@ -703,10 +682,7 @@ struct MP_sight_aim_settings mp_sight_adjust_table[] = { }; s32 selected_num_players = 0; -s32 player_1_char = -1; -s32 player_2_char = -1; -s32 player_3_char = -1; -s32 player_4_char = -1; +s32 player_char[MAX_PLAYER_COUNT] = { -1, -1, -1, -1 }; s32 MP_stage_selected = MP_STAGE_TEMPLE; s32 game_length = 2; //10minutes s32 aim_sight_adjustment = 3; //"Sight ON, Auto Aim ON" @@ -917,8 +893,8 @@ Gfx *constructor_menu17_switchscreens(Gfx *DL); Gfx *constructor_menu18_displaycast(Gfx *DL); Gfx *constructor_menu19_spectrum(Gfx *DL); void disable_all_switches(void *arg0); -void set_item_visibility_in_objinstance(Model *objinstance, int item, s32 mode); -s32 set_cursor_to_stage_solo(s32 arg0); +void set_item_visibility_in_objinstance(Model* objinstance, s32 item, s32 mode); +void set_cursor_to_stage_solo(LEVEL_SOLO_SEQUENCE level); Gfx *display_aligned_white_text_to_screen(Gfx *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, u8 *arg5, s32 arg6, s32 arg7); // end forward declarations. @@ -1224,7 +1200,7 @@ Gfx* add_tab1_start(Gfx* DL) x = 0x33; y = 0x19B - (sp4C / 2); - if (tab_1_highlight != 0) + if (tab_start_highlight != 0) { DL = microcode_constructor_related_to_menus(DL, (y - sp4C) + 1, 0x33, y, 0x75, 0x32); } @@ -1266,7 +1242,7 @@ Gfx* add_tab3_previous(Gfx* DL) x = 0xEC; y = 0x19B - (sp4C / 2); - if (tab_3_highlight != 0) + if (tab_prev_highlight != 0) { DL = microcode_constructor_related_to_menus(DL, (y - sp4C) + 1, 0xEC, y, 0x12E, 0x32); } @@ -1317,7 +1293,7 @@ Gfx* add_tab2_next(Gfx* DL) x = 0x90; y = 0x19B - (sp4C / 2); - if (tab_2_highlight != 0) + if (tab_next_highlight != 0) { DL = microcode_constructor_related_to_menus(DL, (y - sp4C) + 1, 0x90, y, 0xD2, 0x32); } @@ -1344,35 +1320,36 @@ u32 isontab2(void) +//******************************************************************************************************** +//BEGIN MENU SECTIONS +//******************************************************************************************************** - - +//******************************************************************************************************** +//LEGAL SCREEN +//******************************************************************************************************** void init_menu00_legalscreen(void) { s32 padding; - struct coord3d sp20; + struct coord3d pos; musicTrack1Stop(); - maybe_is_in_menu = 1; - menu_timer = 0; - sp20 = D_8002A9C0; - load_object_fill_header(PitemZ_entries[319].header, PitemZ_entries[319].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); - modelCalculateRwDataLen(PitemZ_entries[319].header); + maybe_is_in_menu = TRUE; + g_MenuTimer = 0; + pos = legalpage_pos; + load_object_fill_header(PitemZ_entries[PROP_LEGALPAGE].header, PitemZ_entries[PROP_LEGALPAGE].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); + modelCalculateRwDataLen(PitemZ_entries[PROP_LEGALPAGE].header); - something_legalscreen_constructor = get_obj_instance_controller_for_header(PitemZ_entries[319].header); - modelSetScale(something_legalscreen_constructor, 1.0f); - setsuboffset(something_legalscreen_constructor, &sp20); + logoinst = get_obj_instance_controller_for_header(PitemZ_entries[PROP_LEGALPAGE].header); + modelSetScale(logoinst, 1.0f); + setsuboffset(logoinst, &pos); fileValidateSaves(); } - - - void update_menu00_legalscreen(void) { is_first_time_on_legal_screen = FALSE; - set_obj_instance_scale_to_zero(something_legalscreen_constructor); + clear_model_obj(logoinst); } @@ -1395,9 +1372,9 @@ void interface_menu00_legalscreen(void) return; } #endif - menu_timer += g_ClockTimer; + g_MenuTimer += g_ClockTimer; - if (menu_timer >= MENU_LEGALSCREEN_MENU_TIMER_MAX) + if (g_MenuTimer >= MENU_LEGALSCREEN_MENU_TIMER_MAX) { if ((joyGetControllerCount() < 1) && (is_first_time_on_legal_screen)) { @@ -1408,9 +1385,9 @@ void interface_menu00_legalscreen(void) set_menu_to_mode(MENU_NINTENDO_LOGO, 1); } } - else if (joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON) && (is_first_time_on_legal_screen == 0)) + else if (joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON) && (!is_first_time_on_legal_screen)) { - if (is_first_time_on_main_menu == 0) + if (!is_first_time_on_main_menu) { set_menu_to_mode(MENU_FILE_SELECT, 1); } @@ -1422,6 +1399,8 @@ void interface_menu00_legalscreen(void) } + + Gfx *display_aligned_white_text_to_screen(Gfx *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, u8 *arg5, s32 arg6, s32 arg7) { s32 sp4C; @@ -1467,26 +1446,26 @@ Gfx *constructor_menu00_legalscreen(Gfx *DL) DL = insert_imageDL(DL); matrix_4x4_7F059694(&spA0, 0.0f, 0.0f, 4000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); spE4.unk_matrix = &spA0; - spE4.mtxlist = (Mtxf*)dynAllocate(something_legalscreen_constructor->obj->numMatrices << 6); + spE4.mtxlist = (Mtxf*)dynAllocate(logoinst->obj->numMatrices << 6); matrix_4x4_copy(&spA0, spE4.mtxlist); - something_legalscreen_constructor->render_pos = spE4.mtxlist; - sub_GAME_7F06EFC4(something_legalscreen_constructor); + logoinst->render_pos = spE4.mtxlist; + sub_GAME_7F06EFC4(logoinst); spE4.unk08 = 3; spE4.unk04 = 0; spE4.gdl = DL; - subdraw(&spE4, something_legalscreen_constructor); + subdraw(&spE4, logoinst); DL = spE4.gdl; - for (i=0; iobj->numMatrices; i++) + for (i=0; iobj->numMatrices; i++) { // hack: source address steps by sizeof(Mtxf), but can't get that to match - matrix_4x4_copy(&((s8*)something_legalscreen_constructor->render_pos)[i*0x40], &sp58); - matrix_4x4_f32_to_s32(&sp58, &((Mtxf*)something_legalscreen_constructor->render_pos)[i]); + matrix_4x4_copy(&((s8*)logoinst->render_pos)[i*0x40], &sp58); + matrix_4x4_f32_to_s32(&sp58, &((Mtxf*)logoinst->render_pos)[i]); } DL = microcode_constructor(DL); - for (legal_text_ptr = &D_8002A9CC[0]; legal_text_ptr < &D_8002A9CC[12]; legal_text_ptr++) + for (legal_text_ptr = &legalpage_text_array[0]; legal_text_ptr < &legalpage_text_array[12]; legal_text_ptr++) { txt = langGet(legal_text_ptr->txtID); @@ -1551,8 +1530,8 @@ glabel constructor_menu00_legalscreen /* 03F4AC 7F00A97C E7A00024 */ swc1 $f0, 0x24($sp) /* 03F4B0 7F00A980 0FC165A5 */ jal matrix_4x4_7F059694 /* 03F4B4 7F00A984 E7A40020 */ swc1 $f4, 0x20($sp) -/* 03F4B8 7F00A988 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) -/* 03F4BC 7F00A98C 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 03F4B8 7F00A988 3C138003 */ lui $s3, %hi(logoinst) +/* 03F4BC 7F00A98C 2673A958 */ addiu $s3, %lo(logoinst) # addiu $s3, $s3, -0x56a8 /* 03F4C0 7F00A990 8E690000 */ lw $t1, ($s3) /* 03F4C4 7F00A994 AFB000E4 */ sw $s0, 0xe4($sp) /* 03F4C8 7F00A998 8D2A0008 */ lw $t2, 8($t1) @@ -1607,12 +1586,12 @@ glabel constructor_menu00_legalscreen .L7F00AA58: /* 03F588 7F00AA58 0FC2B366 */ jal microcode_constructor /* 03F58C 7F00AA5C 02802025 */ move $a0, $s4 -/* 03F590 7F00AA60 3C108003 */ lui $s0, %hi(D_8002A9CC) +/* 03F590 7F00AA60 3C108003 */ lui $s0, %hi(legalpage_text_array) /* 03F594 7F00AA64 3C118003 */ lui $s1, %hi(D_8002AABC) /* 03F598 7F00AA68 3C138004 */ lui $s3, %hi(ptrFirstFontTableLarge) /* 03F59C 7F00AA6C 3C128004 */ lui $s2, %hi(ptrSecondFontTableLarge) /* 03F5A0 7F00AA70 0040A025 */ move $s4, $v0 -/* 03F5A4 7F00AA74 2610A9CC */ addiu $s0, %lo(D_8002A9CC) # addiu $s0, $s0, -0x5634 +/* 03F5A4 7F00AA74 2610A9CC */ addiu $s0, %lo(legalpage_text_array) # addiu $s0, $s0, -0x5634 /* 03F5A8 7F00AA78 2631AABC */ addiu $s1, %lo(D_8002AABC) # addiu $s1, $s1, -0x5544 /* 03F5AC 7F00AA7C 26520EB8 */ addiu $s2, %lo(ptrSecondFontTableLarge) # addiu $s2, $s2, 0xeb8 /* 03F5B0 7F00AA80 26730EB4 */ addiu $s3, %lo(ptrFirstFontTableLarge) # addiu $s3, $s3, 0xeb4 @@ -1649,7 +1628,7 @@ glabel constructor_menu00_legalscreen void reset_menutimer(void) { - menu_timer = 0; + g_MenuTimer = 0; } void dummy7F00AAF8(void) { @@ -1659,7 +1638,9 @@ void dummy7F00AAF8(void) { - +//******************************************************************************************************** +//SWITCH SCREEN +//******************************************************************************************************** void interface_menu17_switchscreens(void) { viSetFovY(60.0f); @@ -1667,8 +1648,8 @@ void interface_menu17_switchscreens(void) viSetZRange(100.0f, 10000.0f); viSetUseZBuf(0); - menu_timer++; - if ((menu_timer >= 4) && (spectrum_related_flag == 0) && (is_emulating_spectrum == 0)) + g_MenuTimer++; + if ((g_MenuTimer >= 4) && (spectrum_related_flag == 0) && (is_emulating_spectrum == 0)) { maybe_prev_menu = menu_update; menu_update = -1; @@ -1685,22 +1666,24 @@ Gfx * constructor_menu17_switchscreens(Gfx * DL) - +//******************************************************************************************************** +//NINTENDO LOGO +//******************************************************************************************************** void init_menu01_nintendo(void) { - struct coord3d local_c; + struct coord3d pos; - menu_timer = 0; - local_c = D_8002AAFC; - load_object_fill_header(PitemZ_entries[276].header, PitemZ_entries[276].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); - modelCalculateRwDataLen(PitemZ_entries[276].header); - something_legalscreen_constructor = get_obj_instance_controller_for_header(PitemZ_entries[276].header); - modelSetScale(something_legalscreen_constructor, 1.0f); - setsuboffset(something_legalscreen_constructor, &local_c); + g_MenuTimer = 0; + pos = nintendologo_pos; + load_object_fill_header(PitemZ_entries[PROP_NINTENDOLOGO].header, PitemZ_entries[PROP_NINTENDOLOGO].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); + modelCalculateRwDataLen(PitemZ_entries[PROP_NINTENDOLOGO].header); + logoinst = get_obj_instance_controller_for_header(PitemZ_entries[PROP_NINTENDOLOGO].header); + modelSetScale(logoinst, 1.0f); + setsuboffset(logoinst, &pos); musicTrack1Play(M_INTROSWOOSH); maybe_is_in_menu = TRUE; - flt_CODE_bss_80069614 = -1.39626348019f; - flt_CODE_bss_80069618 = 0.0183333326131f; + ninLogoRotRate = -1.39626348019f; + ninLogoScale = 0.0183333326131f; } @@ -1708,7 +1691,7 @@ void init_menu01_nintendo(void) void update_menu01_nintendo(void) { - set_obj_instance_scale_to_zero(something_legalscreen_constructor); + clear_model_obj(logoinst); } @@ -1718,10 +1701,10 @@ void interface_menu01_nintendo(void) { #ifdef REFRESH_PAL /*~= 8.32 * 50 + 1*/ -#define MENU01_NINTENDO_MENU_TIMER_MAX 417 +#define NINTENDO_TIMER_MAX 417 #else /*~= 8.32 * 60 + 1*/ -#define MENU01_NINTENDO_MENU_TIMER_MAX 501 +#define NINTENDO_TIMER_MAX 501 #endif viSetFovY(60.0f); @@ -1729,9 +1712,9 @@ void interface_menu01_nintendo(void) viSetZRange(100.0f, 10000.0f); viSetUseZBuf(0); - menu_timer = menu_timer + g_ClockTimer; + g_MenuTimer = g_MenuTimer + g_ClockTimer; - if (menu_timer >= MENU01_NINTENDO_MENU_TIMER_MAX) + if (g_MenuTimer >= NINTENDO_TIMER_MAX) { set_menu_to_mode(MENU_RAREWARE_LOGO, 1); } @@ -1799,7 +1782,7 @@ loop_1: arg0 = (s32) (temp_ret + 0x18); temp_ret->unk10 = 0x3880010; temp_ret->unk14 = &RGBA_8002A988; - temp_v1 = 0xff - ((s32) ((menu_timer * 0xff) + 0xfffe8f72) / 0x64); + temp_v1 = 0xff - ((s32) ((g_MenuTimer * 0xff) + 0xfffe8f72) / 0x64); phi_v1 = temp_v1; if (temp_v1 >= 0x100) { @@ -1816,38 +1799,38 @@ loop_1: RGBA_8002A988.unk2 = (s8) phi_v1_2; RGBA_8002A988.unk1 = (s8) phi_v1_2; RGBA_8002A988.unk0 = (s8) phi_v1_2; - flt_CODE_bss_80069614 = (f32) (flt_CODE_bss_80069614 + D_80051A04); - matrix_4x4_set_rotation_around_y(flt_CODE_bss_80069614, &RGBA_8002A988, &sp90); - matrix_scalar_multiply_3(flt_CODE_bss_80069618, &sp90); - flt_CODE_bss_80069618 = (f32) (flt_CODE_bss_80069618 * D_80051A0C); - if (D_80051A08 < flt_CODE_bss_80069618) + ninLogoRotRate = (f32) (ninLogoRotRate + D_80051A04); + matrix_4x4_set_rotation_around_y(ninLogoRotRate, &RGBA_8002A988, &sp90); + matrix_scalar_multiply_3(ninLogoScale, &sp90); + ninLogoScale = (f32) (ninLogoScale * D_80051A0C); + if (D_80051A08 < ninLogoScale) { - flt_CODE_bss_80069618 = (f32) D_80051A08; + ninLogoScale = (f32) D_80051A08; } 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 = dynAllocate(something_legalscreen_constructor->unk8->unkE << 6); + temp_ret_2 = dynAllocate(logoinst->unk8->unkE << 6); sp138 = temp_ret_2; matrix_4x4_copy(&spE0, temp_ret_2); - something_legalscreen_constructor->unkC = sp138; - sub_GAME_7F06EFC4(something_legalscreen_constructor); + logoinst->unkC = sp138; + sub_GAME_7F06EFC4(logoinst); sp130 = 3; sp12C = 0; sp134 = arg0; - subdraw(&sp128, something_legalscreen_constructor); + subdraw(&sp128, logoinst); arg0 = sp134; phi_s1 = 0; phi_s0 = 0; - if (something_legalscreen_constructor->unk8->unkE > 0) + if (logoinst->unk8->unkE > 0) { loop_9: - matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp50); - matrix_4x4_f32_to_s32(&sp50, something_legalscreen_constructor->unkC + (phi_s0 << 6)); + matrix_4x4_copy(logoinst->unkC + phi_s1, &sp50); + matrix_4x4_f32_to_s32(&sp50, logoinst->unkC + (phi_s0 << 6)); temp_s0 = phi_s0 + 1; phi_s1 = phi_s1 + 0x40; phi_s0 = temp_s0; - if (temp_s0 < something_legalscreen_constructor->unk8->unkE) + if (temp_s0 < logoinst->unk8->unkE) { goto loop_9; } @@ -1911,14 +1894,14 @@ glabel constructor_menu01_nintendo /* 03F968 7F00AE38 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 /* 03F96C 7F00AE3C AC580010 */ sw $t8, 0x10($v0) /* 03F970 7F00AE40 AC440014 */ sw $a0, 0x14($v0) -/* 03F974 7F00AE44 3C0F8003 */ lui $t7, %hi(menu_timer) -/* 03F978 7F00AE48 8DEFA8CC */ lw $t7, %lo(menu_timer)($t7) +/* 03F974 7F00AE44 3C0F8003 */ lui $t7, %hi(g_MenuTimer) +/* 03F978 7F00AE48 8DEFA8CC */ lw $t7, %lo(g_MenuTimer)($t7) /* 03F97C 7F00AE4C 240500FF */ li $a1, 255 /* 03F980 7F00AE50 3C01FFFE */ lui $at, (0xFFFE8F72 >> 16) # lui $at, 0xfffe /* 03F984 7F00AE54 01E50019 */ multu $t7, $a1 /* 03F988 7F00AE58 34218F72 */ ori $at, (0xFFFE8F72 & 0xFFFF) # ori $at, $at, 0x8f72 -/* 03F98C 7F00AE5C 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069614) -/* 03F990 7F00AE60 24429614 */ addiu $v0, %lo(flt_CODE_bss_80069614) # addiu $v0, $v0, -0x69ec +/* 03F98C 7F00AE5C 3C028007 */ lui $v0, %hi(ninLogoRotRate) +/* 03F990 7F00AE60 24429614 */ addiu $v0, %lo(ninLogoRotRate) # addiu $v0, $v0, -0x69ec /* 03F994 7F00AE64 0000C812 */ mflo $t9 /* 03F998 7F00AE68 03217021 */ addu $t6, $t9, $at /* 03F99C 7F00AE6C 24010064 */ li $at, 100 @@ -1948,8 +1931,8 @@ glabel constructor_menu01_nintendo /* 03F9F4 7F00AEC4 E4480000 */ swc1 $f8, ($v0) /* 03F9F8 7F00AEC8 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 03F9FC 7F00AECC C44C0000 */ lwc1 $f12, ($v0) -/* 03FA00 7F00AED0 3C108007 */ lui $s0, %hi(flt_CODE_bss_80069618) -/* 03FA04 7F00AED4 26109618 */ addiu $s0, %lo(flt_CODE_bss_80069618) # addiu $s0, $s0, -0x69e8 +/* 03FA00 7F00AED0 3C108007 */ lui $s0, %hi(ninLogoScale) +/* 03FA04 7F00AED4 26109618 */ addiu $s0, %lo(ninLogoScale) # addiu $s0, $s0, -0x69e8 /* 03FA08 7F00AED8 C60C0000 */ lwc1 $f12, ($s0) /* 03FA0C 7F00AEDC 0FC162EE */ jal matrix_scalar_multiply_3 /* 03FA10 7F00AEE0 02202825 */ move $a1, $s1 @@ -1988,8 +1971,8 @@ glabel constructor_menu01_nintendo /* 03FA90 7F00AF60 02202025 */ move $a0, $s1 /* 03FA94 7F00AF64 0FC16008 */ jal matrix_4x4_copy /* 03FA98 7F00AF68 02002825 */ move $a1, $s0 -/* 03FA9C 7F00AF6C 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) -/* 03FAA0 7F00AF70 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 03FA9C 7F00AF6C 3C138003 */ lui $s3, %hi(logoinst) +/* 03FAA0 7F00AF70 2673A958 */ addiu $s3, %lo(logoinst) # addiu $s3, $s3, -0x56a8 /* 03FAA4 7F00AF74 8E690000 */ lw $t1, ($s3) /* 03FAA8 7F00AF78 AFB00128 */ sw $s0, 0x128($sp) /* 03FAAC 7F00AF7C 8D2A0008 */ lw $t2, 8($t1) @@ -2111,14 +2094,14 @@ glabel constructor_menu01_nintendo /* 03F968 7F00AE38 37180010 */ ori $t8, (0x03880010 & 0xFFFF) # ori $t8, $t8, 0x10 /* 03F96C 7F00AE3C AC580010 */ sw $t8, 0x10($v0) /* 03F970 7F00AE40 AC440014 */ sw $a0, 0x14($v0) -/* 03F974 7F00AE44 3C0F8003 */ lui $t7, %hi(menu_timer) -/* 03F978 7F00AE48 8DEFA8CC */ lw $t7, %lo(menu_timer)($t7) +/* 03F974 7F00AE44 3C0F8003 */ lui $t7, %hi(g_MenuTimer) +/* 03F978 7F00AE48 8DEFA8CC */ lw $t7, %lo(g_MenuTimer)($t7) /* 03F97C 7F00AE4C 240500FF */ li $a1, 255 /* 03F980 7F00AE50 3C01FFFE */ lui $at, (0xFFFEcd34 >> 16) # lui $at, 0xfffe /* 03F984 7F00AE54 01E50019 */ multu $t7, $a1 /* 03F988 7F00AE58 3421cd34 */ ori $at, (0xFFFEcd34 & 0xFFFF) # ori $at, $at, 0xcd34 -/* 03F98C 7F00AE5C 3C028007 */ lui $v0, %hi(flt_CODE_bss_80069614) -/* 03F990 7F00AE60 24429614 */ addiu $v0, %lo(flt_CODE_bss_80069614) # addiu $v0, $v0, -0x69ec +/* 03F98C 7F00AE5C 3C028007 */ lui $v0, %hi(ninLogoRotRate) +/* 03F990 7F00AE60 24429614 */ addiu $v0, %lo(ninLogoRotRate) # addiu $v0, $v0, -0x69ec /* 03F994 7F00AE64 0000C812 */ mflo $t9 /* 03F998 7F00AE68 03217021 */ addu $t6, $t9, $at /* 03F99C 7F00AE6C 24010064 */ li $at, 0x53 @@ -2148,8 +2131,8 @@ glabel constructor_menu01_nintendo /* 03F9F4 7F00AEC4 E4480000 */ swc1 $f8, ($v0) /* 03F9F8 7F00AEC8 0FC1617F */ jal matrix_4x4_set_rotation_around_y /* 03F9FC 7F00AECC C44C0000 */ lwc1 $f12, ($v0) -/* 03FA00 7F00AED0 3C108007 */ lui $s0, %hi(flt_CODE_bss_80069618) -/* 03FA04 7F00AED4 26109618 */ addiu $s0, %lo(flt_CODE_bss_80069618) # addiu $s0, $s0, -0x69e8 +/* 03FA00 7F00AED0 3C108007 */ lui $s0, %hi(ninLogoScale) +/* 03FA04 7F00AED4 26109618 */ addiu $s0, %lo(ninLogoScale) # addiu $s0, $s0, -0x69e8 /* 03FA08 7F00AED8 C60C0000 */ lwc1 $f12, ($s0) /* 03FA0C 7F00AEDC 0FC162EE */ jal matrix_scalar_multiply_3 /* 03FA10 7F00AEE0 02202825 */ move $a1, $s1 @@ -2188,8 +2171,8 @@ glabel constructor_menu01_nintendo /* 03FA90 7F00AF60 02202025 */ move $a0, $s1 /* 03FA94 7F00AF64 0FC16008 */ jal matrix_4x4_copy /* 03FA98 7F00AF68 02002825 */ move $a1, $s0 -/* 03FA9C 7F00AF6C 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) -/* 03FAA0 7F00AF70 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 03FA9C 7F00AF6C 3C138003 */ lui $s3, %hi(logoinst) +/* 03FAA0 7F00AF70 2673A958 */ addiu $s3, %lo(logoinst) # addiu $s3, $s3, -0x56a8 /* 03FAA4 7F00AF74 8E690000 */ lw $t1, ($s3) /* 03FAA8 7F00AF78 AFB00128 */ sw $s0, 0x128($sp) /* 03FAAC 7F00AF7C 8D2A0008 */ lw $t2, 8($t1) @@ -2259,6 +2242,18 @@ glabel constructor_menu01_nintendo + + + + + + + + + +//******************************************************************************************************** +//RARE LOGO +//******************************************************************************************************** void init_menu02_rarelogo(void) { sub_GAME_7F008B58(ptr_logo_and_walletbond_DL, 0x78000); @@ -2272,14 +2267,14 @@ void update_menu02_rareware(void) { void interface_menu02_rareware(void) { viSetUseZBuf(0); - if (sub_GAME_7F008DD0() != 0) + if (isGunBarrelInMode2()) { set_menu_to_mode(MENU_EYE_INTRO, 1); return; } - if (joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON)) { - if (is_first_time_on_main_menu == 0) + if (!is_first_time_on_main_menu) { set_menu_to_mode(MENU_FILE_SELECT, 1); return; @@ -2295,10 +2290,21 @@ Gfx * constructor_menu02_rareware(Gfx * DL) { + + + + + + + + +//******************************************************************************************************** +//GUNBARREL +//******************************************************************************************************** void init_menu03_eyeintro(void) { sub_GAME_7F008E80(ptr_logo_and_walletbond_DL, 0x78000); musicTrack1Play(M_INTRO); - maybe_is_in_menu = 1; + maybe_is_in_menu = TRUE; } void update_menu_03_eye(void) { @@ -2307,12 +2313,12 @@ void update_menu_03_eye(void) { void interface_menu03_eye(void) { viSetUseZBuf(0); - if (sub_GAME_7F009744() != 0) { + if (isGunBarrelInMode9()) { set_menu_to_mode(MENU_GOLDENEYE_LOGO, 1); return; } - if (joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON) != 0) { - if (is_first_time_on_main_menu == 0) { + if (joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON)) { + if (!is_first_time_on_main_menu) { set_menu_to_mode(MENU_FILE_SELECT, 1); return; } @@ -2328,18 +2334,20 @@ Gfx * constructor_menu03_eye(Gfx * DL) { - +//******************************************************************************************************** +//GOLDENEYE LOGO +//******************************************************************************************************** void init_menu04_goldeneyelogo(void) { - struct coord3d sp24; + struct coord3d pos; - menu_timer = 0; - sp24 = D_8002AB48; - load_object_fill_header(PitemZ_entries[277].header, PitemZ_entries[277].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); - modelCalculateRwDataLen(PitemZ_entries[277].header); - something_legalscreen_constructor = get_obj_instance_controller_for_header(PitemZ_entries[277].header); - modelSetScale(something_legalscreen_constructor, 1.0f); - setsuboffset(something_legalscreen_constructor, &sp24); + g_MenuTimer = 0; + pos = goldeneyelogo_pos; + load_object_fill_header(PitemZ_entries[PROP_GOLDENEYELOGO].header, PitemZ_entries[PROP_GOLDENEYELOGO].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); + modelCalculateRwDataLen(PitemZ_entries[PROP_GOLDENEYELOGO].header); + logoinst = get_obj_instance_controller_for_header(PitemZ_entries[PROP_GOLDENEYELOGO].header); + modelSetScale(logoinst, 1.0f); + setsuboffset(logoinst, &pos); } @@ -2348,43 +2356,43 @@ void init_menu04_goldeneyelogo(void) void update_menu04_goldeneye(void) { is_first_time_on_main_menu = 0; - set_obj_instance_scale_to_zero(something_legalscreen_constructor); + clear_model_obj(logoinst); } void interface_menu04_goldeneyelogo(void) { #ifdef REFRESH_PAL -#define MENU04_GOLDENEYELOGO_MENU_TIMER_1 50*3 -#define MENU04_GOLDENEYELOGO_MENU_TIMER_2 (50/2)*3 +#define GOLDENEYELOGO_TIMER_1 50*3 +#define GOLDENEYELOGO_TIMER_2 (50/2)*3 #else -#define MENU04_GOLDENEYELOGO_MENU_TIMER_1 60*3 -#define MENU04_GOLDENEYELOGO_MENU_TIMER_2 (60/2)*3 +#define GOLDENEYELOGO_TIMER_1 60*3 +#define GOLDENEYELOGO_TIMER_2 (60/2)*3 #endif viSetFovY(60.0f); viSetAspect(1.3333334f); viSetZRange(100.0f, 10000.0f); viSetUseZBuf(0); - menu_timer += g_ClockTimer; - if (((is_first_time_on_main_menu == FALSE) || (MENU04_GOLDENEYELOGO_MENU_TIMER_1 < menu_timer)) || - ((ge_logo_bool != FALSE && (MENU04_GOLDENEYELOGO_MENU_TIMER_2 < menu_timer)))) { - if (menu_timer > MENU04_GOLDENEYELOGO_MENU_TIMER_1) { + g_MenuTimer += g_ClockTimer; + if (((!is_first_time_on_main_menu) || (GOLDENEYELOGO_TIMER_1 < g_MenuTimer)) || + ((ge_logo_bool && (GOLDENEYELOGO_TIMER_2 < g_MenuTimer)))) { + if (g_MenuTimer > GOLDENEYELOGO_TIMER_1) { if (prev_keypresses) { set_menu_to_mode(MENU_FILE_SELECT,1); } else { - do_extended_cast_display(0); + do_extended_cast_display(FALSE); set_menu_to_mode(MENU_DISPLAY_CAST,1); } } else { - if ((joyGetButtonsPressedThisFrame('\0',0xFFFF) != 0) || ((is_first_time_on_main_menu != FALSE && (ge_logo_bool != FALSE)))) { + if ((joyGetButtonsPressedThisFrame(PLAYER_1,ANY_BUTTON)) || ((is_first_time_on_main_menu && ge_logo_bool))) { set_menu_to_mode(MENU_FILE_SELECT,1); } } } else { - if (joyGetButtonsPressedThisFrame('\0',0xFFFF) != 0) { + if (joyGetButtonsPressedThisFrame(PLAYER_1,ANY_BUTTON)) { ge_logo_bool = TRUE; } } @@ -2453,25 +2461,25 @@ 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 = dynAllocate(something_legalscreen_constructor->unk8->unkE << 6); + sp150 = dynAllocate(logoinst->unk8->unkE << 6); matrix_scalar_multiply(D_80051A18, &spF8); matrix_4x4_copy(&spF8, sp150); - something_legalscreen_constructor->unkC = sp150; - sub_GAME_7F06EFC4(something_legalscreen_constructor); + logoinst->unkC = sp150; + sub_GAME_7F06EFC4(logoinst); sp148 = 3; sp144 = 0; - subdraw(&sp140, something_legalscreen_constructor); + subdraw(&sp140, logoinst); phi_s1 = 0; phi_s0 = 0; - if (something_legalscreen_constructor->unk8->unkE > 0) + if (logoinst->unk8->unkE > 0) { loop_3: - matrix_4x4_copy(something_legalscreen_constructor->unkC + phi_s1, &sp5C); - matrix_4x4_f32_to_s32(&sp5C, something_legalscreen_constructor->unkC + (phi_s0 << 6)); + matrix_4x4_copy(logoinst->unkC + phi_s1, &sp5C); + matrix_4x4_f32_to_s32(&sp5C, logoinst->unkC + (phi_s0 << 6)); temp_s0_2 = phi_s0 + 1; phi_s1 = phi_s1 + 0x40; phi_s0 = temp_s0_2; - if (temp_s0_2 < something_legalscreen_constructor->unk8->unkE) + if (temp_s0_2 < logoinst->unk8->unkE) { goto loop_3; } @@ -2591,8 +2599,8 @@ glabel constructor_menu04_goldeneyelogo /* 040144 7F00B614 E7A00010 */ swc1 $f0, 0x10($sp) /* 040148 7F00B618 0FC165A5 */ jal matrix_4x4_7F059694 /* 04014C 7F00B61C E7A80020 */ swc1 $f8, 0x20($sp) -/* 040150 7F00B620 3C138003 */ lui $s3, %hi(something_legalscreen_constructor) -/* 040154 7F00B624 2673A958 */ addiu $s3, %lo(something_legalscreen_constructor) # addiu $s3, $s3, -0x56a8 +/* 040150 7F00B620 3C138003 */ lui $s3, %hi(logoinst) +/* 040154 7F00B624 2673A958 */ addiu $s3, %lo(logoinst) # addiu $s3, $s3, -0x56a8 /* 040158 7F00B628 8E6A0000 */ lw $t2, ($s3) /* 04015C 7F00B62C AFB10140 */ sw $s1, 0x140($sp) /* 040160 7F00B630 8D4B0008 */ lw $t3, 8($t2) @@ -2690,7 +2698,7 @@ loop_1: phi_v1 = phi_v1; if (0x12 == (**temp_t7 & 0xff)) { - *extract_id_from_object_structure_microcode(arg0, *temp_t7, phi_a2) = 0; + *modelGetNodeRwData(arg0, *temp_t7, phi_a2) = 0; phi_a2_2 = arg0->unk8->unkC; phi_v1 = arg0->unk8; } @@ -2733,7 +2741,7 @@ glabel disable_all_switches /* 0402A4 7F00B774 331900FF */ andi $t9, $t8, 0xff /* 0402A8 7F00B778 56790007 */ bnel $s3, $t9, .L7F00B798 /* 0402AC 7F00B77C 26100001 */ addiu $s0, $s0, 1 -/* 0402B0 7F00B780 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0402B0 7F00B780 0FC1B1E7 */ jal modelGetNodeRwData /* 0402B4 7F00B784 02402025 */ move $a0, $s2 /* 0402B8 7F00B788 AC400000 */ sw $zero, ($v0) /* 0402BC 7F00B78C 8E430008 */ lw $v1, 8($s2) @@ -2755,48 +2763,21 @@ glabel disable_all_switches #endif - -#ifdef NONMATCHING -void set_item_visibility_in_objinstance(Model *objinstance,int item,s32 mode) +void set_item_visibility_in_objinstance(Model* objinstance, s32 item, s32 mode) { - ModelNode *partdesc; - - partdesc = objinstance->obj->Switches[item]; - if (partdesc != 0x0) { - extract_id_from_object_structure_microcode(objinstance,partdesc) = mode; - } + if (objinstance->obj->Switches[item] != NULL) + { + struct ModelRoData_HeaderRecord *node = modelGetNodeRwData(objinstance, objinstance->obj->Switches[item]); + node->ModelType = mode; + } } -#else -GLOBAL_ASM( -.text -glabel set_item_visibility_in_objinstance -/* 0402F0 7F00B7C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0402F4 7F00B7C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0402F8 7F00B7C8 AFA60020 */ sw $a2, 0x20($sp) -/* 0402FC 7F00B7CC 8C8E0008 */ lw $t6, 8($a0) -/* 040300 7F00B7D0 0005C080 */ sll $t8, $a1, 2 -/* 040304 7F00B7D4 8DCF0008 */ lw $t7, 8($t6) -/* 040308 7F00B7D8 01F8C821 */ addu $t9, $t7, $t8 -/* 04030C 7F00B7DC 8F270000 */ lw $a3, ($t9) -/* 040310 7F00B7E0 50E00006 */ beql $a3, $zero, .L7F00B7FC -/* 040314 7F00B7E4 8FBF0014 */ lw $ra, 0x14($sp) -/* 040318 7F00B7E8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 04031C 7F00B7EC 00E02825 */ move $a1, $a3 -/* 040320 7F00B7F0 8FA80020 */ lw $t0, 0x20($sp) -/* 040324 7F00B7F4 AC480000 */ sw $t0, ($v0) -/* 040328 7F00B7F8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F00B7FC: -/* 04032C 7F00B7FC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 040330 7F00B800 03E00008 */ jr $ra -/* 040334 7F00B804 00000000 */ nop -) -#endif +//******************************************************************************************************** +//WALLETINIT +//******************************************************************************************************** - - -void select_load_bond_picture(s32 *objinstance,u32 bondID) +void select_load_bond_picture(Model *objinstance, u32 bondID) { set_item_visibility_in_objinstance(objinstance,8,1); //brosnan picture set_item_visibility_in_objinstance(objinstance,9,0); @@ -2820,11 +2801,11 @@ void load_walletbond(void) void *temp_s0; void *phi_s0; - if (ptr_folder_object_instance == 0) + if (walletinst[0] == 0) { load_object_fill_header(PitemZ_entries.unkD08, PitemZ_entries.unkD0C, ptr_logo_and_walletbond_DL, 0xa000, 0); modelCalculateRwDataLen(PitemZ_entries.unkD08); - phi_s0 = &ptr_folder_object_instance; + phi_s0 = &walletinst[0]; loop_2: temp_ret = get_aircraft_obj_instance_controller(PitemZ_entries.unkD08); *phi_s0 = temp_ret; @@ -2846,8 +2827,8 @@ GLOBAL_ASM( .text glabel load_walletbond /* 0403DC 7F00B8AC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0403E0 7F00B8B0 3C0E8003 */ lui $t6, %hi(ptr_folder_object_instance) -/* 0403E4 7F00B8B4 8DCEA95C */ lw $t6, %lo(ptr_folder_object_instance)($t6) +/* 0403E0 7F00B8B0 3C0E8003 */ lui $t6, %hi(walletinst) +/* 0403E4 7F00B8B4 8DCEA95C */ lw $t6, %lo(walletinst)($t6) /* 0403E8 7F00B8B8 AFBF0034 */ sw $ra, 0x34($sp) /* 0403EC 7F00B8BC AFB20030 */ sw $s2, 0x30($sp) /* 0403F0 7F00B8C0 AFB1002C */ sw $s1, 0x2c($sp) @@ -2866,11 +2847,11 @@ glabel load_walletbond /* 040424 7F00B8F4 0FC1D73D */ jal modelCalculateRwDataLen /* 040428 7F00B8F8 8E440D08 */ lw $a0, 0xd08($s2) /* 04042C 7F00B8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 040430 7F00B900 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) -/* 040434 7F00B904 3C118003 */ lui $s1, %hi(D_8002A96C) +/* 040430 7F00B900 3C108003 */ lui $s0, %hi(walletinst) +/* 040434 7F00B904 3C118003 */ lui $s1, %hi(walletinst+0x10) /* 040438 7F00B908 4481A000 */ mtc1 $at, $f20 -/* 04043C 7F00B90C 2631A96C */ addiu $s1, %lo(D_8002A96C) # addiu $s1, $s1, -0x5694 -/* 040440 7F00B910 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 04043C 7F00B90C 2631A96C */ addiu $s1, %lo(walletinst+0x10) # addiu $s1, $s1, -0x5694 +/* 040440 7F00B910 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 .L7F00B914: /* 040444 7F00B914 0FC1B08F */ jal get_aircraft_obj_instance_controller /* 040448 7F00B918 8E440D08 */ lw $a0, 0xd08($s2) @@ -2910,105 +2891,53 @@ glabel load_walletbond -#ifdef NONMATCHING void sub_GAME_7F00B990(void) { - s32 temp_a0; - void *temp_s0; - void *phi_s0; + s32 i; - phi_s0 = &ptr_folder_object_instance; -loop_1: - temp_a0 = *phi_s0; - if (temp_a0 != 0) - { - set_aircraft_obj_inst_scale_to_zero(temp_a0); - *phi_s0 = 0; - } - temp_s0 = phi_s0 + 4; - phi_s0 = temp_s0; - if (temp_s0 != &D_8002A96C) - { - goto loop_1; + for (i = 0; i < 4; i++) { + if (walletinst[i] == NULL) { continue; } + set_aircraft_obj_inst_scale_to_zero(walletinst[i]); + walletinst[i] = NULL; } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F00B990 -/* 0404C0 7F00B990 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0404C4 7F00B994 AFB10018 */ sw $s1, 0x18($sp) -/* 0404C8 7F00B998 AFB00014 */ sw $s0, 0x14($sp) -/* 0404CC 7F00B99C 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) -/* 0404D0 7F00B9A0 3C118003 */ lui $s1, %hi(D_8002A96C) -/* 0404D4 7F00B9A4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0404D8 7F00B9A8 2631A96C */ addiu $s1, %lo(D_8002A96C) # addiu $s1, $s1, -0x5694 -/* 0404DC 7F00B9AC 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 -/* 0404E0 7F00B9B0 8E040000 */ lw $a0, ($s0) -.L7F00B9B4: -/* 0404E4 7F00B9B4 50800005 */ beql $a0, $zero, .L7F00B9CC -/* 0404E8 7F00B9B8 26100004 */ addiu $s0, $s0, 4 -/* 0404EC 7F00B9BC 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero -/* 0404F0 7F00B9C0 00000000 */ nop -/* 0404F4 7F00B9C4 AE000000 */ sw $zero, ($s0) -/* 0404F8 7F00B9C8 26100004 */ addiu $s0, $s0, 4 -.L7F00B9CC: -/* 0404FC 7F00B9CC 5611FFF9 */ bnel $s0, $s1, .L7F00B9B4 -/* 040500 7F00B9D0 8E040000 */ lw $a0, ($s0) -/* 040504 7F00B9D4 8FBF001C */ lw $ra, 0x1c($sp) -/* 040508 7F00B9D8 8FB00014 */ lw $s0, 0x14($sp) -/* 04050C 7F00B9DC 8FB10018 */ lw $s1, 0x18($sp) -/* 040510 7F00B9E0 03E00008 */ jr $ra -/* 040514 7F00B9E4 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif +//******************************************************************************************************** +//FILE SELECT +//******************************************************************************************************** #ifdef NONMATCHING -void *init_menu05_fileselect(void) +void init_menu05_fileselect(void) { s32 sp24; - s32 sp20; - void *temp_v0; - void *phi_v0; + Gfx* sp20; + int i; prev_keypresses = 0; sp24 = 0x6e000; - sp20 = (s32) (ptr_logo_and_walletbond_DL + 0xa000); + sp20 = ptr_logo_and_walletbond_DL + 0xa000; if (selected_folder_num < 0) { selected_folder_num = 0; } - tab_2_selected = 0; - tab_3_selected = 0; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; folder_selected_for_deletion = -1; folder_selected_for_deletion_choice = 1; sub_GAME_7F008DE4(&sp20, &sp24); load_walletbond(); - if (maybe_is_in_menu != 0) - { + if (maybe_is_in_menu){ musicTrack1Play(M_FOLDERS); - maybe_is_in_menu = 0; + maybe_is_in_menu = FALSE; } - menu_timer = 0; - g_CheatActivated[1] = (u8)0; - g_CheatActivated[1] = (u8)0; - phi_v0 = &g_CheatActivated[2]; -loop_5: - temp_v0 = phi_v0 + 4; - temp_v0->unk-3 = (u8)0; - temp_v0->unk-2 = (u8)0; - temp_v0->unk-1 = (u8)0; - temp_v0->unk-4 = (u8)0; - phi_v0 = temp_v0; - if (temp_v0 != &g_CheatActivated[74]) - { - goto loop_5; + g_MenuTimer = 0; + for(i=1;i -1) - { - if (mission_folder_setup_entries[briefing].type != MISSION_PART) { - return briefing; - } - briefing--; - }; - return -1; -} -#else -GLOBAL_ASM( -.text -glabel get_chapter_briefing_entry -/* 04064C 7F00BB1C 0480000F */ bltz $a0, .L7F00BB5C -/* 040650 7F00BB20 00801825 */ move $v1, $a0 -/* 040654 7F00BB24 000470C0 */ sll $t6, $a0, 3 -/* 040658 7F00BB28 01C47023 */ subu $t6, $t6, $a0 -/* 04065C 7F00BB2C 3C0F8003 */ lui $t7, %hi(mission_folder_setup_entries) -/* 040660 7F00BB30 25EFABE4 */ addiu $t7, %lo(mission_folder_setup_entries) # addiu $t7, $t7, -0x541c -/* 040664 7F00BB34 000E7080 */ sll $t6, $t6, 2 -/* 040668 7F00BB38 01CF1021 */ addu $v0, $t6, $t7 -.L7F00BB3C: -/* 04066C 7F00BB3C 8C580010 */ lw $t8, 0x10($v0) -/* 040670 7F00BB40 53000004 */ beql $t8, $zero, .L7F00BB54 -/* 040674 7F00BB44 2463FFFF */ addiu $v1, $v1, -1 -/* 040678 7F00BB48 03E00008 */ jr $ra -/* 04067C 7F00BB4C 00601025 */ move $v0, $v1 + s32 i; -/* 040680 7F00BB50 2463FFFF */ addiu $v1, $v1, -1 -.L7F00BB54: -/* 040684 7F00BB54 0461FFF9 */ bgez $v1, .L7F00BB3C -/* 040688 7F00BB58 2442FFE4 */ addiu $v0, $v0, -0x1c -.L7F00BB5C: -/* 04068C 7F00BB5C 2402FFFF */ li $v0, -1 -/* 040690 7F00BB60 03E00008 */ jr $ra -/* 040694 7F00BB64 00000000 */ nop -) -#endif + for (i = briefing; i >= 0; i--) + { + if (mission_folder_setup_entries[i].type != MISSION_PART) + { + return i; + } + } + + return -1; +} void toggle_deletion_menu_for_folder(int index) @@ -3183,18 +3082,18 @@ s32 interface_menu05_fileselect(void) if (((((joyGetButtonsPressedThisFrame(PLAYER_1, ANY_BUTTON) != 0) || (joyGetStickX(0) < -5)) || (joyGetStickX(0) >= 6)) || (joyGetStickY(0) < -5)) || (joyGetStickY(0) >= 6)) { - menu_timer = 0; + g_MenuTimer = 0; } else { - menu_timer = (s32) (menu_timer + g_ClockTimer); + g_MenuTimer = (s32) (g_MenuTimer + g_ClockTimer); } viSetFovY(0x42700000); viSetAspect(D_80051A1C); viSetZRange(0x42c80000, D_80051A20); viSetUseZBuf(0); sp54 = &D_8002AB94; - phi_s0 = &ptr_folder_object_instance; + phi_s0 = &walletinst[0]; phi_s1 = &dword_CODE_bss_80069620; phi_s2 = 0; loop_8: @@ -3395,7 +3294,7 @@ loop_38: set_menu_to_mode(MENU_MODE_SELECT, 0); return setCursorPOSforMode(0); } - if (menu_timer >= 0x709) + if (g_MenuTimer >= 0x709) { phi_return = set_menu_to_mode(MENU_LEGAL_SCREEN, 1); } @@ -3445,18 +3344,18 @@ glabel interface_menu05_fileselect /* 04076C 7F00BC3C 00002025 */ move $a0, $zero /* 040770 7F00BC40 28410006 */ slti $at, $v0, 6 /* 040774 7F00BC44 14200004 */ bnez $at, .L7F00BC58 -/* 040778 7F00BC48 3C0E8003 */ lui $t6, %hi(menu_timer) +/* 040778 7F00BC48 3C0E8003 */ lui $t6, %hi(g_MenuTimer) .L7F00BC4C: -/* 04077C 7F00BC4C 3C018003 */ lui $at, %hi(menu_timer) +/* 04077C 7F00BC4C 3C018003 */ lui $at, %hi(g_MenuTimer) /* 040780 7F00BC50 10000007 */ b .L7F00BC70 -/* 040784 7F00BC54 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 040784 7F00BC54 AC20A8CC */ sw $zero, %lo(g_MenuTimer)($at) .L7F00BC58: /* 040788 7F00BC58 3C0F8005 */ lui $t7, %hi(g_ClockTimer) /* 04078C 7F00BC5C 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) -/* 040790 7F00BC60 8DCEA8CC */ lw $t6, %lo(menu_timer)($t6) -/* 040794 7F00BC64 3C018003 */ lui $at, %hi(menu_timer) +/* 040790 7F00BC60 8DCEA8CC */ lw $t6, %lo(g_MenuTimer)($t6) +/* 040794 7F00BC64 3C018003 */ lui $at, %hi(g_MenuTimer) /* 040798 7F00BC68 01CFC021 */ addu $t8, $t6, $t7 -/* 04079C 7F00BC6C AC38A8CC */ sw $t8, %lo(menu_timer)($at) +/* 04079C 7F00BC6C AC38A8CC */ sw $t8, %lo(g_MenuTimer)($at) .L7F00BC70: /* 0407A0 7F00BC70 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0407A4 7F00BC74 44816000 */ mtc1 $at, $f12 @@ -3474,11 +3373,11 @@ glabel interface_menu05_fileselect /* 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 -/* 0407E0 7F00BCB0 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 0407E0 7F00BCB0 3C108003 */ lui $s0, %hi(walletinst) /* 0407E4 7F00BCB4 3C118007 */ lui $s1, %hi(dword_CODE_bss_80069620) /* 0407E8 7F00BCB8 4480A000 */ mtc1 $zero, $f20 /* 0407EC 7F00BCBC 26319620 */ addiu $s1, %lo(dword_CODE_bss_80069620) # addiu $s1, $s1, -0x69e0 -/* 0407F0 7F00BCC0 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 0407F0 7F00BCC0 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 0407F4 7F00BCC4 AFB90054 */ sw $t9, 0x54($sp) /* 0407F8 7F00BCC8 00009025 */ move $s2, $zero /* 0407FC 7F00BCCC 27B30088 */ addiu $s3, $sp, 0x88 @@ -3580,7 +3479,7 @@ glabel interface_menu05_fileselect /* 040968 7F00BE38 2411FFFF */ li $s1, -1 /* 04096C 7F00BE3C 00009025 */ move $s2, $zero /* 040970 7F00BE40 0520006A */ bltz $t1, .L7F00BFEC -/* 040974 7F00BE44 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 040974 7F00BE44 3C108003 */ lui $s0, %hi(walletinst) /* 040978 7F00BE48 00002025 */ move $a0, $zero /* 04097C 7F00BE4C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040980 7F00BE50 24050222 */ li $a1, 546 @@ -3696,7 +3595,7 @@ glabel interface_menu05_fileselect .L7F00BFEC: /* 040B1C 7F00BFEC 3C118007 */ lui $s1, %hi(dword_CODE_bss_80069620) /* 040B20 7F00BFF0 26319620 */ addiu $s1, %lo(dword_CODE_bss_80069620) # addiu $s1, $s1, -0x69e0 -/* 040B24 7F00BFF4 2610A95C */ addiu $s0, $s0, %lo(ptr_folder_object_instance) +/* 040B24 7F00BFF4 2610A95C */ addiu $s0, $s0, %lo(walletinst) /* 040B28 7F00BFF8 27B3007C */ addiu $s3, $sp, 0x7c .L7F00BFFC: /* 040B2C 7F00BFFC 27B90074 */ addiu $t9, $sp, 0x74 @@ -3921,8 +3820,8 @@ glabel interface_menu05_fileselect /* 040E6C 7F00C33C 1000000A */ b .L7F00C368 /* 040E70 7F00C340 8FBF0044 */ lw $ra, 0x44($sp) .L7F00C344: -/* 040E74 7F00C344 3C198003 */ lui $t9, %hi(menu_timer) -/* 040E78 7F00C348 8F39A8CC */ lw $t9, %lo(menu_timer)($t9) +/* 040E74 7F00C344 3C198003 */ lui $t9, %hi(g_MenuTimer) +/* 040E78 7F00C348 8F39A8CC */ lw $t9, %lo(g_MenuTimer)($t9) /* 040E7C 7F00C34C 00002025 */ move $a0, $zero /* 040E80 7F00C350 2B210709 */ slti $at, $t9, 0x709 /* 040E84 7F00C354 54200004 */ bnezl $at, .L7F00C368 @@ -3983,18 +3882,18 @@ glabel interface_menu05_fileselect /* 04076C 7F00BC3C 00002025 */ move $a0, $zero /* 040770 7F00BC40 28410006 */ slti $at, $v0, 6 /* 040774 7F00BC44 14200004 */ bnez $at, .L7F00BC58 -/* 040778 7F00BC48 3C0E8003 */ lui $t6, %hi(menu_timer) +/* 040778 7F00BC48 3C0E8003 */ lui $t6, %hi(g_MenuTimer) .L7F00BC4C: -/* 04077C 7F00BC4C 3C018003 */ lui $at, %hi(menu_timer) +/* 04077C 7F00BC4C 3C018003 */ lui $at, %hi(g_MenuTimer) /* 040780 7F00BC50 10000007 */ b .L7F00BC70 -/* 040784 7F00BC54 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 040784 7F00BC54 AC20A8CC */ sw $zero, %lo(g_MenuTimer)($at) .L7F00BC58: /* 040788 7F00BC58 3C0F8005 */ lui $t7, %hi(g_ClockTimer) /* 04078C 7F00BC5C 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) -/* 040790 7F00BC60 8DCEA8CC */ lw $t6, %lo(menu_timer)($t6) -/* 040794 7F00BC64 3C018003 */ lui $at, %hi(menu_timer) +/* 040790 7F00BC60 8DCEA8CC */ lw $t6, %lo(g_MenuTimer)($t6) +/* 040794 7F00BC64 3C018003 */ lui $at, %hi(g_MenuTimer) /* 040798 7F00BC68 01CFC021 */ addu $t8, $t6, $t7 -/* 04079C 7F00BC6C AC38A8CC */ sw $t8, %lo(menu_timer)($at) +/* 04079C 7F00BC6C AC38A8CC */ sw $t8, %lo(g_MenuTimer)($at) .L7F00BC70: /* 0407A0 7F00BC70 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0407A4 7F00BC74 44816000 */ mtc1 $at, $f12 @@ -4012,11 +3911,11 @@ glabel interface_menu05_fileselect /* 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 -/* 0407E0 7F00BCB0 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 0407E0 7F00BCB0 3C108003 */ lui $s0, %hi(walletinst) /* 0407E4 7F00BCB4 3C118007 */ lui $s1, %hi(dword_CODE_bss_80069620) /* 0407E8 7F00BCB8 4480A000 */ mtc1 $zero, $f20 /* 0407EC 7F00BCBC 26319620 */ addiu $s1, %lo(dword_CODE_bss_80069620) # addiu $s1, $s1, -0x69e0 -/* 0407F0 7F00BCC0 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 0407F0 7F00BCC0 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 0407F4 7F00BCC4 AFB90054 */ sw $t9, 0x54($sp) /* 0407F8 7F00BCC8 00009025 */ move $s2, $zero /* 0407FC 7F00BCCC 27B30088 */ addiu $s3, $sp, 0x88 @@ -4118,7 +4017,7 @@ glabel interface_menu05_fileselect /* 040968 7F00BE38 2411FFFF */ li $s1, -1 /* 04096C 7F00BE3C 00009025 */ move $s2, $zero /* 040970 7F00BE40 0520006A */ bltz $t1, .L7F00BFEC -/* 040974 7F00BE44 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 040974 7F00BE44 3C108003 */ lui $s0, %hi(walletinst) /* 040978 7F00BE48 00002025 */ move $a0, $zero /* 04097C 7F00BE4C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040980 7F00BE50 24050222 */ li $a1, 546 @@ -4234,7 +4133,7 @@ glabel interface_menu05_fileselect .L7F00BFEC: /* 040B1C 7F00BFEC 3C118007 */ lui $s1, %hi(dword_CODE_bss_80069620) /* 040B20 7F00BFF0 26319620 */ addiu $s1, %lo(dword_CODE_bss_80069620) # addiu $s1, $s1, -0x69e0 -/* 040B24 7F00BFF4 2610A95C */ addiu $s0, $s0, %lo(ptr_folder_object_instance) +/* 040B24 7F00BFF4 2610A95C */ addiu $s0, $s0, %lo(walletinst) /* 040B28 7F00BFF8 27B3007C */ addiu $s3, $sp, 0x7c .L7F00BFFC: /* 040B2C 7F00BFFC 27B90074 */ addiu $t9, $sp, 0x74 @@ -4459,8 +4358,8 @@ glabel interface_menu05_fileselect /* 040E6C 7F00C33C 1000000A */ b .L7F00C368 /* 040E70 7F00C340 8FBF0044 */ lw $ra, 0x44($sp) .L7F00C344: -/* 040E74 7F00C344 3C198003 */ lui $t9, %hi(menu_timer) -/* 040E78 7F00C348 8F39A8CC */ lw $t9, %lo(menu_timer)($t9) +/* 040E74 7F00C344 3C198003 */ lui $t9, %hi(g_MenuTimer) +/* 040E78 7F00C348 8F39A8CC */ lw $t9, %lo(g_MenuTimer)($t9) /* 040E7C 7F00C34C 00002025 */ move $a0, $zero /* 040E80 7F00C350 2B2105dd */ slti $at, $t9, 0x5dd /* 040E84 7F00C354 54200004 */ bnezl $at, .L7F00C368 @@ -4647,7 +4546,7 @@ loop_4: } temp_s2 = phi_s2 + -4; phi_s2 = temp_s2; - if (temp_s2 >= &ptr_folder_object_instance) + if (temp_s2 >= &walletinst[0]) { goto loop_1; } @@ -4962,10 +4861,10 @@ glabel constructor_menu05_fileselect /* 04105C 7F00C52C 27180040 */ addiu $t8, $t8, 0x40 /* 041060 7F00C530 258D0008 */ addiu $t5, $t4, 8 /* 041064 7F00C534 AFAD01B8 */ sw $t5, 0x1b8($sp) -/* 041068 7F00C538 3C128003 */ lui $s2, %hi(D_8002A968) +/* 041068 7F00C538 3C128003 */ lui $s2, %hi(walletinst+0xc) /* 04106C 7F00C53C 3C148003 */ lui $s4, %hi(unknown_folderselect) /* 041070 7F00C540 2694AF44 */ addiu $s4, %lo(unknown_folderselect) # addiu $s4, $s4, -0x50bc -/* 041074 7F00C544 2652A968 */ addiu $s2, %lo(D_8002A968) # addiu $s2, $s2, -0x5698 +/* 041074 7F00C544 2652A968 */ addiu $s2, %lo(walletinst+0xc) # addiu $s2, $s2, -0x5698 /* 041078 7F00C548 27B30108 */ addiu $s3, $sp, 0x108 /* 04107C 7F00C54C AD980004 */ sw $t8, 4($t4) /* 041080 7F00C550 AD850000 */ sw $a1, ($t4) @@ -5022,8 +4921,8 @@ glabel constructor_menu05_fileselect /* 041140 7F00C610 5420FFF0 */ bnezl $at, .L7F00C5D4 /* 041144 7F00C614 8C58000C */ lw $t8, 0xc($v0) .L7F00C618: -/* 041148 7F00C618 3C088003 */ lui $t0, %hi(ptr_folder_object_instance) -/* 04114C 7F00C61C 2508A95C */ addiu $t0, %lo(ptr_folder_object_instance) # addiu $t0, $t0, -0x56a4 +/* 041148 7F00C618 3C088003 */ lui $t0, %hi(walletinst) +/* 04114C 7F00C61C 2508A95C */ addiu $t0, %lo(walletinst) # addiu $t0, $t0, -0x56a4 /* 041150 7F00C620 2652FFFC */ addiu $s2, $s2, -4 /* 041154 7F00C624 0248082B */ sltu $at, $s2, $t0 /* 041158 7F00C628 5020FFCB */ beql $at, $zero, .L7F00C558 @@ -5832,12 +5731,14 @@ glabel constructor_menu05_fileselect #endif - +//******************************************************************************************************** +//MODE SELECT +//******************************************************************************************************** void init_menu06_modeselect(void) { gamemode = GAMEMODE_INTRO; - tab_2_selected = FALSE; - tab_3_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; load_walletbond(); copyCurrentEEPROMtoStack(); } @@ -5869,21 +5770,21 @@ void interface_menu06_modesel(void) viSetZRange(100.0f, 10000.0f); viSetUseZBuf(FALSE); - disable_all_switches(ptr_folder_object_instance); - select_load_bond_picture(ptr_folder_object_instance, fileGetBondForFolder(selected_folder_num)); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 7, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 2, TRUE); - tab_3_highlight = FALSE; + disable_all_switches(walletinst[0]); + select_load_bond_picture(walletinst[0], fileGetBondForFolder(selected_folder_num)); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 7, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 2, TRUE); + tab_prev_highlight = FALSE; mission_difficulty_highlighted = DIFFICULTY_MULTI; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } } @@ -5917,7 +5818,7 @@ void interface_menu06_modesel(void) if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } menu_control_stick_tracking(); @@ -5937,7 +5838,7 @@ void interface_menu06_modesel(void) set_menu_to_mode(MENU_CHEAT, 0); return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_FILE_SELECT, 0); } @@ -5990,26 +5891,26 @@ 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 = dynAllocate(ptr_folder_object_instance->unk8->unkE << 6); + temp_ret = dynAllocate(walletinst[0]->unk8->unkE << 6); sp11C = temp_ret; matrix_4x4_copy(&sp88, temp_ret); - ptr_folder_object_instance->unkC = sp11C; + walletinst[0]->unkC = sp11C; sp114 = 3; sp110 = 0; sp118 = arg0; - subdraw(&sp10C, ptr_folder_object_instance); + subdraw(&sp10C, walletinst[0]); arg0 = sp118; phi_s1 = 0; phi_s0 = 0; - if (ptr_folder_object_instance->unk8->unkE > 0) + if (walletinst[0]->unk8->unkE > 0) { loop_3: - matrix_4x4_copy(ptr_folder_object_instance->unkC + phi_s1, &sp48); - matrix_4x4_f32_to_s32(&sp48, ptr_folder_object_instance->unkC + (phi_s0 << 6)); + matrix_4x4_copy(walletinst[0]->unkC + phi_s1, &sp48); + matrix_4x4_f32_to_s32(&sp48, walletinst[0]->unkC + (phi_s0 << 6)); temp_s0 = phi_s0 + 1; phi_s1 = phi_s1 + 0x40; phi_s0 = temp_s0; - if (temp_s0 < ptr_folder_object_instance->unk8->unkE) + if (temp_s0 < walletinst[0]->unk8->unkE) { goto loop_3; } @@ -6094,8 +5995,8 @@ glabel sub_GAME_7F00D5E8 /* 042230 7F00D700 27A400C8 */ addiu $a0, $sp, 0xc8 /* 042234 7F00D704 0FC1601A */ jal matrix_4x4_multiply_in_place /* 042238 7F00D708 02002825 */ move $a1, $s0 -/* 04223C 7F00D70C 3C138003 */ lui $s3, %hi(ptr_folder_object_instance) -/* 042240 7F00D710 2673A95C */ addiu $s3, %lo(ptr_folder_object_instance) # addiu $s3, $s3, -0x56a4 +/* 04223C 7F00D70C 3C138003 */ lui $s3, %hi(walletinst) +/* 042240 7F00D710 2673A95C */ addiu $s3, %lo(walletinst) # addiu $s3, $s3, -0x56a4 /* 042244 7F00D714 8E6D0000 */ lw $t5, ($s3) /* 042248 7F00D718 AFB0010C */ sw $s0, 0x10c($sp) /* 04224C 7F00D71C 8DAE0008 */ lw $t6, 8($t5) @@ -6217,7 +6118,7 @@ Gfx* constructor_menu06_modesel(Gfx* DL) } DL = write_text_at_abs_coord(DL, &x, &y, "2.\n", ptrSecondFontTableLarge, ptrFirstFontTableLarge, text_color, viGetX(), viGetY(), 0, 0); - textstring = langGet((append_cheat_mp != 0) ? TEXT(LTITLE, 0x114) : TEXT(LTITLE, 0x1e)); + textstring = langGet((g_AppendCheatMultiPlayer != 0) ? TEXT(LTITLE, 0x114) : TEXT(LTITLE, 0x1e)); sub_GAME_7F0AE98C(&x2, &y2, textstring, ptrSecondFontTableLarge, ptrFirstFontTableLarge, 0); @@ -6320,13 +6221,15 @@ s32 get_highest_unlocked_difficulty_for_level(s32 arg0) } - +//******************************************************************************************************** +//MISSION SELECT +//******************************************************************************************************** void init_menu07_missionselect(void) { selected_stage = -1; briefingpage = -1; - tab_2_selected = 0; - tab_3_selected = 0; + tab_next_selected = 0; + tab_prev_selected = 0; if (maybe_is_in_menu != 0) { musicTrack1Play(M_FOLDERS); @@ -6384,15 +6287,15 @@ void interface_menu07_missionsel(void) 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); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x14, 1); - tab_3_highlight = 0; + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, 1); + set_item_visibility_in_objinstance(walletinst[0], 0x13, 1); + set_item_visibility_in_objinstance(walletinst[0], 0x14, 1); + tab_prev_highlight = 0; mission_difficulty_highlighted = -1; if (isontab3() != 0) { - tab_3_highlight = 1; + tab_prev_highlight = 1; } else { @@ -6507,16 +6410,16 @@ loop_23: } mission_difficulty_highlighted = (s32) (temp_s5 + phi_s4_6); } - if (ptr_folder_object_instance->unk8->unk8->unk54 != 0) + if (walletinst[0]->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 = dynAllocate7F0BD6C4(ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC); - if (ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC > 0) + temp_s1_2 = modelGetNodeRwData(walletinst[0], walletinst[0]->unk8->unk8->unk54); + *temp_s1_2 = dynAllocate7F0BD6C4(walletinst[0]->unk8->unk8->unk54->unk4->unkC); + if (walletinst[0]->unk8->unk8->unk54->unk4->unkC > 0) { phi_s0_4 = 0; phi_s2_5 = 0; loop_29: - temp_t3 = ptr_folder_object_instance->unk8->unk8->unk54->unk4->unk8 + phi_s0_4; + temp_t3 = walletinst[0]->unk8->unk8->unk54->unk4->unk8 + phi_s0_4; temp_t1 = *temp_s1_2 + phi_s0_4; temp_t1->unk0 = (s32) temp_t3->unk0; temp_t1->unk4 = (s32) temp_t3->unk4; @@ -6554,7 +6457,7 @@ loop_29: temp_s2_3 = phi_s2_5 + 1; phi_s0_4 = phi_s0_4 + 0x10; phi_s2_5 = temp_s2_3; - if (temp_s2_3 < ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC) + if (temp_s2_3 < walletinst[0]->unk8->unk8->unk54->unk4->unkC) { goto loop_29; } @@ -6562,9 +6465,9 @@ loop_29: } if (joyGetButtonsPressedThisFrame(PLAYER_1, 0xb000) != 0) { - if (tab_3_highlight != 0) + if (tab_prev_highlight != 0) { - tab_3_selected = 1; + tab_prev_selected = 1; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } else @@ -6573,7 +6476,7 @@ 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; + tab_next_selected = 1; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } } @@ -6582,18 +6485,18 @@ loop_29: { if (joyGetButtonsPressedThisFrame(PLAYER_1, 0x4000) != 0) { - tab_3_selected = 1; + tab_prev_selected = 1; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } } menu_control_stick_tracking(); - if (tab_2_selected != 0) + if (tab_next_selected != 0) { set_menu_to_mode(MENU_DIFFICULTY, 0); set_cursor_pos_difficulty(get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408)); return; } - if (tab_3_selected != 0) + if (tab_prev_selected != 0) { set_menu_to_mode(MENU_MODE_SELECT, 0); setCursorPOSforMode(0); @@ -6631,26 +6534,26 @@ glabel interface_menu07_missionsel /* 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) +/* 042A3C 7F00DF0C 3C048003 */ lui $a0, %hi(walletinst) /* 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) +/* 042A44 7F00DF14 8C84A95C */ lw $a0, %lo(walletinst)($a0) +/* 042A48 7F00DF18 3C048003 */ lui $a0, %hi(walletinst) +/* 042A4C 7F00DF1C 8C84A95C */ lw $a0, %lo(walletinst)($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) +/* 042A5C 7F00DF2C 3C048003 */ lui $a0, %hi(walletinst) +/* 042A60 7F00DF30 8C84A95C */ lw $a0, %lo(walletinst)($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) +/* 042A70 7F00DF40 3C048003 */ lui $a0, %hi(walletinst) +/* 042A74 7F00DF44 8C84A95C */ lw $a0, %lo(walletinst)($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) +/* 042A84 7F00DF54 3C018003 */ lui $at, %hi(tab_prev_highlight) +/* 042A88 7F00DF58 AC20A8E4 */ sw $zero, %lo(tab_prev_highlight)($at) /* 042A8C 7F00DF5C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) /* 042A90 7F00DF60 240EFFFF */ li $t6, -1 /* 042A94 7F00DF64 0FC028E7 */ jal isontab3 @@ -6658,9 +6561,9 @@ glabel interface_menu07_missionsel /* 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) +/* 042AA8 7F00DF78 3C018003 */ lui $at, %hi(tab_prev_highlight) /* 042AAC 7F00DF7C 1000005E */ b .L7F00E0F8 -/* 042AB0 7F00DF80 AC2FA8E4 */ sw $t7, %lo(tab_3_highlight)($at) +/* 042AB0 7F00DF80 AC2FA8E4 */ sw $t7, %lo(tab_prev_highlight)($at) .L7F00DF84: /* 042AB4 7F00DF84 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 042AB8 7F00DF88 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) @@ -6770,14 +6673,14 @@ glabel interface_menu07_missionsel /* 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) +/* 042C28 7F00E0F8 3C048003 */ lui $a0, %hi(walletinst) +/* 042C2C 7F00E0FC 8C84A95C */ lw $a0, %lo(walletinst)($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 +/* 042C44 7F00E114 0FC1B1E7 */ jal modelGetNodeRwData /* 042C48 7F00E118 8CB40004 */ lw $s4, 4($a1) /* 042C4C 7F00E11C 00408825 */ move $s1, $v0 /* 042C50 7F00E120 0FC2F5B1 */ jal dynAllocate7F0BD6C4 @@ -6871,14 +6774,14 @@ glabel interface_menu07_missionsel /* 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) +/* 042DA0 7F00E270 3C0C8003 */ lui $t4, %hi(tab_prev_highlight) +/* 042DA4 7F00E274 8D8CA8E4 */ lw $t4, %lo(tab_prev_highlight)($t4) /* 042DA8 7F00E278 24090001 */ li $t1, 1 -/* 042DAC 7F00E27C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042DAC 7F00E27C 3C018003 */ lui $at, %hi(tab_prev_selected) /* 042DB0 7F00E280 11800009 */ beqz $t4, .L7F00E2A8 /* 042DB4 7F00E284 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) /* 042DB8 7F00E288 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) -/* 042DBC 7F00E28C AC29A8D8 */ sw $t1, %lo(tab_3_selected)($at) +/* 042DBC 7F00E28C AC29A8D8 */ sw $t1, %lo(tab_prev_selected)($at) /* 042DC0 7F00E290 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042DC4 7F00E294 240500C7 */ li $a1, 199 /* 042DC8 7F00E298 0C002382 */ jal sndPlaySfx @@ -6905,8 +6808,8 @@ glabel interface_menu07_missionsel /* 042E18 7F00E2E8 240F0001 */ li $t7, 1 /* 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) +/* 042E24 7F00E2F4 3C018003 */ lui $at, %hi(tab_next_selected) +/* 042E28 7F00E2F8 AC2FA8D4 */ sw $t7, %lo(tab_next_selected)($at) /* 042E2C 7F00E2FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E30 7F00E300 240500C7 */ li $a1, 199 /* 042E34 7F00E304 0C002382 */ jal sndPlaySfx @@ -6918,9 +6821,9 @@ glabel interface_menu07_missionsel /* 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) +/* 042E54 7F00E324 3C018003 */ lui $at, %hi(tab_prev_selected) /* 042E58 7F00E328 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) -/* 042E5C 7F00E32C AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) +/* 042E5C 7F00E32C AC38A8D8 */ sw $t8, %lo(tab_prev_selected)($at) /* 042E60 7F00E330 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E64 7F00E334 240500C7 */ li $a1, 199 /* 042E68 7F00E338 0C002382 */ jal sndPlaySfx @@ -6928,10 +6831,10 @@ glabel interface_menu07_missionsel .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) +/* 042E78 7F00E348 3C198003 */ lui $t9, %hi(tab_next_selected) +/* 042E7C 7F00E34C 8F39A8D4 */ lw $t9, %lo(tab_next_selected)($t9) /* 042E80 7F00E350 24040008 */ li $a0, 8 -/* 042E84 7F00E354 3C0C8003 */ lui $t4, %hi(tab_3_selected) +/* 042E84 7F00E354 3C0C8003 */ lui $t4, %hi(tab_prev_selected) /* 042E88 7F00E358 13200010 */ beqz $t9, .L7F00E39C /* 042E8C 7F00E35C 00000000 */ nop /* 042E90 7F00E360 0FC06975 */ jal set_menu_to_mode @@ -6950,7 +6853,7 @@ glabel interface_menu07_missionsel /* 042EC4 7F00E394 1000000A */ b .L7F00E3C0 /* 042EC8 7F00E398 8FBF002C */ lw $ra, 0x2c($sp) .L7F00E39C: -/* 042ECC 7F00E39C 8D8CA8D8 */ lw $t4, %lo(tab_3_selected)($t4) +/* 042ECC 7F00E39C 8D8CA8D8 */ lw $t4, %lo(tab_prev_selected)($t4) /* 042ED0 7F00E3A0 24040006 */ li $a0, 6 /* 042ED4 7F00E3A4 51800006 */ beql $t4, $zero, .L7F00E3C0 /* 042ED8 7F00E3A8 8FBF002C */ lw $ra, 0x2c($sp) @@ -7001,26 +6904,26 @@ glabel interface_menu07_missionsel /* 042A90 7F00DF20 C42E1A78 */ lwc1 $f14, %lo(D_80051A48)($at) /* 042A94 7F00DF24 0C00114D */ jal viSetUseZBuf /* 042A98 7F00DF28 00002025 */ move $a0, $zero -/* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 /* 042AA0 7F00DF30 0FC02DD1 */ jal disable_all_switches -/* 042AA4 7F00DF34 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) -/* 042AA8 7F00DF38 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042AAC 7F00DF3C 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AA4 7F00DF34 8C84A99C */ lw $a0, %lo(walletinst)($a0) +/* 042AA8 7F00DF38 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042AAC 7F00DF3C 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042AB0 7F00DF40 00002825 */ move $a1, $zero /* 042AB4 7F00DF44 0FC02DF8 */ jal set_item_visibility_in_objinstance /* 042AB8 7F00DF48 24060001 */ li $a2, 1 -/* 042ABC 7F00DF4C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042AC0 7F00DF50 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042ABC 7F00DF4C 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042AC0 7F00DF50 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042AC4 7F00DF54 24050013 */ li $a1, 19 /* 042AC8 7F00DF58 0FC02DF8 */ jal set_item_visibility_in_objinstance /* 042ACC 7F00DF5C 24060001 */ li $a2, 1 -/* 042AD0 7F00DF60 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042AD4 7F00DF64 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AD0 7F00DF60 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042AD4 7F00DF64 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042AD8 7F00DF68 24050014 */ li $a1, 20 /* 042ADC 7F00DF6C 0FC02DF8 */ jal set_item_visibility_in_objinstance /* 042AE0 7F00DF70 24060001 */ li $a2, 1 -/* 042AE4 7F00DF74 3C018003 */ lui $at, %hi(tab_3_highlight) # $at, 0x8003 -/* 042AE8 7F00DF78 AC20A924 */ sw $zero, %lo(tab_3_highlight)($at) +/* 042AE4 7F00DF74 3C018003 */ lui $at, %hi(tab_prev_highlight) # $at, 0x8003 +/* 042AE8 7F00DF78 AC20A924 */ sw $zero, %lo(tab_prev_highlight)($at) /* 042AEC 7F00DF7C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 /* 042AF0 7F00DF80 240EFFFF */ li $t6, -1 /* 042AF4 7F00DF84 0FC028EF */ jal isontab3 @@ -7028,9 +6931,9 @@ glabel interface_menu07_missionsel /* 042AFC 7F00DF8C 10400005 */ beqz $v0, .L7F00DFA4 /* 042B00 7F00DF90 0000A025 */ move $s4, $zero /* 042B04 7F00DF94 240F0001 */ li $t7, 1 -/* 042B08 7F00DF98 3C018003 */ lui $at, %hi(tab_3_highlight) # $at, 0x8003 +/* 042B08 7F00DF98 3C018003 */ lui $at, %hi(tab_prev_highlight) # $at, 0x8003 /* 042B0C 7F00DF9C 1000005E */ b .L7F00E118 -/* 042B10 7F00DFA0 AC2FA924 */ sw $t7, %lo(tab_3_highlight)($at) +/* 042B10 7F00DFA0 AC2FA924 */ sw $t7, %lo(tab_prev_highlight)($at) .L7F00DFA4: /* 042B14 7F00DFA4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 042B18 7F00DFA8 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) # $a0, 0x8003 @@ -7140,14 +7043,14 @@ glabel interface_menu07_missionsel /* 042C80 7F00E110 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 /* 042C84 7F00E114 AC2E97C4 */ sw $t6, %lo(mission_difficulty_highlighted)($at) .L7F00E118: -/* 042C88 7F00E118 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042C8C 7F00E11C 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042C88 7F00E118 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042C8C 7F00E11C 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042C90 7F00E120 8C8F0008 */ lw $t7, 8($a0) /* 042C94 7F00E124 8DF80008 */ lw $t8, 8($t7) /* 042C98 7F00E128 8F050054 */ lw $a1, 0x54($t8) /* 042C9C 7F00E12C 50A00054 */ beql $a1, $zero, .L7F00E280 /* 042CA0 7F00E130 00002025 */ move $a0, $zero -/* 042CA4 7F00E134 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 042CA4 7F00E134 0FC1B363 */ jal modelGetNodeRwData /* 042CA8 7F00E138 8CB40004 */ lw $s4, 4($a1) /* 042CAC 7F00E13C 00408825 */ move $s1, $v0 /* 042CB0 7F00E140 0FC2F89D */ jal dynAllocate7F0BD6C4 @@ -7241,14 +7144,14 @@ glabel interface_menu07_missionsel /* 042DF4 7F00E284 3405B000 */ li $a1, 45056 /* 042DF8 7F00E288 1040002A */ beqz $v0, .L7F00E334 /* 042DFC 7F00E28C 00002025 */ move $a0, $zero -/* 042E00 7F00E290 3C0C8003 */ lui $t4, %hi(tab_3_highlight) # $t4, 0x8003 -/* 042E04 7F00E294 8D8CA924 */ lw $t4, %lo(tab_3_highlight)($t4) +/* 042E00 7F00E290 3C0C8003 */ lui $t4, %hi(tab_prev_highlight) # $t4, 0x8003 +/* 042E04 7F00E294 8D8CA924 */ lw $t4, %lo(tab_prev_highlight)($t4) /* 042E08 7F00E298 24090001 */ li $t1, 1 -/* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 +/* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_prev_selected) # $at, 0x8003 /* 042E10 7F00E2A0 11800009 */ beqz $t4, .L7F00E2C8 /* 042E14 7F00E2A4 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) /* 042E18 7F00E2A8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 -/* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_3_selected)($at) +/* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_prev_selected)($at) /* 042E20 7F00E2B0 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E24 7F00E2B4 240500C7 */ li $a1, 199 /* 042E28 7F00E2B8 0C002386 */ jal sndPlaySfx @@ -7275,8 +7178,8 @@ glabel interface_menu07_missionsel /* 042E78 7F00E308 240F0001 */ li $t7, 1 /* 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) +/* 042E84 7F00E314 3C018003 */ lui $at, %hi(tab_next_selected) # $at, 0x8003 +/* 042E88 7F00E318 AC2FA914 */ sw $t7, %lo(tab_next_selected)($at) /* 042E8C 7F00E31C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E90 7F00E320 240500C7 */ li $a1, 199 /* 042E94 7F00E324 0C002386 */ jal sndPlaySfx @@ -7288,9 +7191,9 @@ glabel interface_menu07_missionsel /* 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 +/* 042EB4 7F00E344 3C018003 */ lui $at, %hi(tab_prev_selected) # $at, 0x8003 /* 042EB8 7F00E348 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 -/* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_3_selected)($at) +/* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_prev_selected)($at) /* 042EC0 7F00E350 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042EC4 7F00E354 240500C7 */ li $a1, 199 /* 042EC8 7F00E358 0C002386 */ jal sndPlaySfx @@ -7298,10 +7201,10 @@ glabel interface_menu07_missionsel .L7F00E360: /* 042ED0 7F00E360 0FC026E9 */ jal menu_control_stick_tracking /* 042ED4 7F00E364 00000000 */ nop -/* 042ED8 7F00E368 3C198003 */ lui $t9, %hi(tab_2_selected) # $t9, 0x8003 -/* 042EDC 7F00E36C 8F39A914 */ lw $t9, %lo(tab_2_selected)($t9) +/* 042ED8 7F00E368 3C198003 */ lui $t9, %hi(tab_next_selected) # $t9, 0x8003 +/* 042EDC 7F00E36C 8F39A914 */ lw $t9, %lo(tab_next_selected)($t9) /* 042EE0 7F00E370 24040008 */ li $a0, 8 -/* 042EE4 7F00E374 3C098003 */ lui $t1, %hi(tab_3_selected) # $t1, 0x8003 +/* 042EE4 7F00E374 3C098003 */ lui $t1, %hi(tab_prev_selected) # $t1, 0x8003 /* 042EE8 7F00E378 13200018 */ beqz $t9, .L7F00E3DC /* 042EEC 7F00E37C 00000000 */ nop /* 042EF0 7F00E380 0FC069E2 */ jal set_menu_to_mode @@ -7329,7 +7232,7 @@ glabel interface_menu07_missionsel /* 042F44 7F00E3D4 1000000A */ b .L7F00E400 /* 042F48 7F00E3D8 8FBF002C */ lw $ra, 0x2c($sp) .L7F00E3DC: -/* 042F4C 7F00E3DC 8D29A918 */ lw $t1, %lo(tab_3_selected)($t1) +/* 042F4C 7F00E3DC 8D29A918 */ lw $t1, %lo(tab_prev_selected)($t1) /* 042F50 7F00E3E0 24040006 */ li $a0, 6 /* 042F54 7F00E3E4 51200006 */ beql $t1, $zero, .L7F00E400 /* 042F58 7F00E3E8 8FBF002C */ lw $ra, 0x2c($sp) @@ -7381,26 +7284,26 @@ glabel interface_menu07_missionsel /* 042A90 7F00DF20 C42E1A78 */ lwc1 $f14, %lo(D_80051A48)($at) /* 042A94 7F00DF24 0C00114D */ jal viSetUseZBuf /* 042A98 7F00DF28 00002025 */ move $a0, $zero -/* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 +/* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 /* 042AA0 7F00DF30 0FC02DD1 */ jal disable_all_switches -/* 042AA4 7F00DF34 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) -/* 042AA8 7F00DF38 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042AAC 7F00DF3C 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AA4 7F00DF34 8C84A99C */ lw $a0, %lo(walletinst)($a0) +/* 042AA8 7F00DF38 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042AAC 7F00DF3C 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042AB0 7F00DF40 00002825 */ move $a1, $zero /* 042AB4 7F00DF44 0FC02DF8 */ jal set_item_visibility_in_objinstance /* 042AB8 7F00DF48 24060001 */ li $a2, 1 -/* 042ABC 7F00DF4C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042AC0 7F00DF50 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042ABC 7F00DF4C 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042AC0 7F00DF50 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042AC4 7F00DF54 24050013 */ li $a1, 19 /* 042AC8 7F00DF58 0FC02DF8 */ jal set_item_visibility_in_objinstance /* 042ACC 7F00DF5C 24060001 */ li $a2, 1 -/* 042AD0 7F00DF60 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042AD4 7F00DF64 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042AD0 7F00DF60 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042AD4 7F00DF64 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042AD8 7F00DF68 24050014 */ li $a1, 20 /* 042ADC 7F00DF6C 0FC02DF8 */ jal set_item_visibility_in_objinstance /* 042AE0 7F00DF70 24060001 */ li $a2, 1 -/* 042AE4 7F00DF74 3C018003 */ lui $at, %hi(tab_3_highlight) # $at, 0x8003 -/* 042AE8 7F00DF78 AC20A924 */ sw $zero, %lo(tab_3_highlight)($at) +/* 042AE4 7F00DF74 3C018003 */ lui $at, %hi(tab_prev_highlight) # $at, 0x8003 +/* 042AE8 7F00DF78 AC20A924 */ sw $zero, %lo(tab_prev_highlight)($at) /* 042AEC 7F00DF7C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 /* 042AF0 7F00DF80 240EFFFF */ li $t6, -1 /* 042AF4 7F00DF84 0FC028EF */ jal isontab3 @@ -7408,9 +7311,9 @@ glabel interface_menu07_missionsel /* 042AFC 7F00DF8C 10400005 */ beqz $v0, .L7F00DFA4 /* 042B00 7F00DF90 0000A025 */ move $s4, $zero /* 042B04 7F00DF94 240F0001 */ li $t7, 1 -/* 042B08 7F00DF98 3C018003 */ lui $at, %hi(tab_3_highlight) # $at, 0x8003 +/* 042B08 7F00DF98 3C018003 */ lui $at, %hi(tab_prev_highlight) # $at, 0x8003 /* 042B0C 7F00DF9C 1000005E */ b .L7F00E118 -/* 042B10 7F00DFA0 AC2FA924 */ sw $t7, %lo(tab_3_highlight)($at) +/* 042B10 7F00DFA0 AC2FA924 */ sw $t7, %lo(tab_prev_highlight)($at) .L7F00DFA4: /* 042B14 7F00DFA4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 042B18 7F00DFA8 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) # $a0, 0x8003 @@ -7520,14 +7423,14 @@ glabel interface_menu07_missionsel /* 042C80 7F00E110 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) # $at, 0x8007 /* 042C84 7F00E114 AC2E97C4 */ sw $t6, %lo(mission_difficulty_highlighted)($at) .L7F00E118: -/* 042C88 7F00E118 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 -/* 042C8C 7F00E11C 8C84A99C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042C88 7F00E118 3C048003 */ lui $a0, %hi(walletinst) # $a0, 0x8003 +/* 042C8C 7F00E11C 8C84A99C */ lw $a0, %lo(walletinst)($a0) /* 042C90 7F00E120 8C8F0008 */ lw $t7, 8($a0) /* 042C94 7F00E124 8DF80008 */ lw $t8, 8($t7) /* 042C98 7F00E128 8F050054 */ lw $a1, 0x54($t8) /* 042C9C 7F00E12C 50A00054 */ beql $a1, $zero, .L7F00E280 /* 042CA0 7F00E130 00002025 */ move $a0, $zero -/* 042CA4 7F00E134 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 042CA4 7F00E134 0FC1B363 */ jal modelGetNodeRwData /* 042CA8 7F00E138 8CB40004 */ lw $s4, 4($a1) /* 042CAC 7F00E13C 00408825 */ move $s1, $v0 /* 042CB0 7F00E140 0FC2F89D */ jal dynAllocate7F0BD6C4 @@ -7621,14 +7524,14 @@ glabel interface_menu07_missionsel /* 042DF4 7F00E284 3405B000 */ li $a1, 45056 /* 042DF8 7F00E288 1040002A */ beqz $v0, .L7F00E334 /* 042DFC 7F00E28C 00002025 */ move $a0, $zero -/* 042E00 7F00E290 3C0C8003 */ lui $t4, %hi(tab_3_highlight) # $t4, 0x8003 -/* 042E04 7F00E294 8D8CA924 */ lw $t4, %lo(tab_3_highlight)($t4) +/* 042E00 7F00E290 3C0C8003 */ lui $t4, %hi(tab_prev_highlight) # $t4, 0x8003 +/* 042E04 7F00E294 8D8CA924 */ lw $t4, %lo(tab_prev_highlight)($t4) /* 042E08 7F00E298 24090001 */ li $t1, 1 -/* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 +/* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_prev_selected) # $at, 0x8003 /* 042E10 7F00E2A0 11800009 */ beqz $t4, .L7F00E2C8 /* 042E14 7F00E2A4 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) /* 042E18 7F00E2A8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 -/* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_3_selected)($at) +/* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_prev_selected)($at) /* 042E20 7F00E2B0 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E24 7F00E2B4 240500C7 */ li $a1, 199 /* 042E28 7F00E2B8 0C002386 */ jal sndPlaySfx @@ -7655,8 +7558,8 @@ glabel interface_menu07_missionsel /* 042E78 7F00E308 240F0001 */ li $t7, 1 /* 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) +/* 042E84 7F00E314 3C018003 */ lui $at, %hi(tab_next_selected) # $at, 0x8003 +/* 042E88 7F00E318 AC2FA914 */ sw $t7, %lo(tab_next_selected)($at) /* 042E8C 7F00E31C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E90 7F00E320 240500C7 */ li $a1, 199 /* 042E94 7F00E324 0C002386 */ jal sndPlaySfx @@ -7668,9 +7571,9 @@ glabel interface_menu07_missionsel /* 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 +/* 042EB4 7F00E344 3C018003 */ lui $at, %hi(tab_prev_selected) # $at, 0x8003 /* 042EB8 7F00E348 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 -/* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_3_selected)($at) +/* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_prev_selected)($at) /* 042EC0 7F00E350 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042EC4 7F00E354 240500C7 */ li $a1, 199 /* 042EC8 7F00E358 0C002386 */ jal sndPlaySfx @@ -7678,10 +7581,10 @@ glabel interface_menu07_missionsel .L7F00E360: /* 042ED0 7F00E360 0FC026E9 */ jal menu_control_stick_tracking /* 042ED4 7F00E364 00000000 */ nop -/* 042ED8 7F00E368 3C198003 */ lui $t9, %hi(tab_2_selected) # $t9, 0x8003 -/* 042EDC 7F00E36C 8F39A914 */ lw $t9, %lo(tab_2_selected)($t9) +/* 042ED8 7F00E368 3C198003 */ lui $t9, %hi(tab_next_selected) # $t9, 0x8003 +/* 042EDC 7F00E36C 8F39A914 */ lw $t9, %lo(tab_next_selected)($t9) /* 042EE0 7F00E370 24040008 */ li $a0, 8 -/* 042EE4 7F00E374 3C098003 */ lui $t1, %hi(tab_3_selected) # $t1, 0x8003 +/* 042EE4 7F00E374 3C098003 */ lui $t1, %hi(tab_prev_selected) # $t1, 0x8003 /* 042EE8 7F00E378 13200018 */ beqz $t9, .L7F00E3DC /* 042EEC 7F00E37C 00000000 */ nop /* 042EF0 7F00E380 0FC069E2 */ jal set_menu_to_mode @@ -7709,7 +7612,7 @@ glabel interface_menu07_missionsel /* 042F44 7F00E3D4 1000000A */ b .L7F00E400 /* 042F48 7F00E3D8 8FBF002C */ lw $ra, 0x2c($sp) .L7F00E3DC: -/* 042F4C 7F00E3DC 8D29A918 */ lw $t1, %lo(tab_3_selected)($t1) +/* 042F4C 7F00E3DC 8D29A918 */ lw $t1, %lo(tab_prev_selected)($t1) /* 042F50 7F00E3E0 24040006 */ li $a0, 6 /* 042F54 7F00E3E4 51200006 */ beql $t1, $zero, .L7F00E400 /* 042F58 7F00E3E8 8FBF002C */ lw $ra, 0x2c($sp) @@ -7733,54 +7636,11 @@ glabel interface_menu07_missionsel #endif -#ifdef NONMATCHING -s32 set_cursor_to_stage_solo(s32 arg0) +void set_cursor_to_stage_solo(LEVEL_SOLO_SEQUENCE level) { - cursor_h_pos = (f32) *(&cursor_xpos_table_mission_select + ((arg0 % 5) * 4)); - cursor_v_pos = (f32) *(&cursor_ypos_table_mission_select + ((arg0 / 5) * 4)); - return 5; + cursor_h_pos = cursor_xpos_table_mission_select[level % 5]; + cursor_v_pos = cursor_ypos_table_mission_select[level / 5]; } -#else -GLOBAL_ASM( -.text -glabel set_cursor_to_stage_solo -/* 042F10 7F00E3E0 24020005 */ li $v0, 5 -/* 042F14 7F00E3E4 0082001A */ div $zero, $a0, $v0 -/* 042F18 7F00E3E8 00007010 */ mfhi $t6 -/* 042F1C 7F00E3EC 000E7880 */ sll $t7, $t6, 2 -/* 042F20 7F00E3F0 3C188003 */ lui $t8, %hi(cursor_xpos_table_mission_select) -/* 042F24 7F00E3F4 030FC021 */ addu $t8, $t8, $t7 -/* 042F28 7F00E3F8 8F18AFD0 */ lw $t8, %lo(cursor_xpos_table_mission_select)($t8) -/* 042F2C 7F00E3FC 0000C812 */ mflo $t9 -/* 042F30 7F00E400 00194080 */ sll $t0, $t9, 2 -/* 042F34 7F00E404 3C098003 */ lui $t1, %hi(cursor_ypos_table_mission_select) -/* 042F38 7F00E408 01284821 */ addu $t1, $t1, $t0 -/* 042F3C 7F00E40C 8D29AFE4 */ lw $t1, %lo(cursor_ypos_table_mission_select)($t1) -/* 042F40 7F00E410 44982000 */ mtc1 $t8, $f4 -/* 042F44 7F00E414 14400002 */ bnez $v0, .L7F00E420 -/* 042F48 7F00E418 00000000 */ nop -/* 042F4C 7F00E41C 0007000D */ break 7 -.L7F00E420: -/* 042F50 7F00E420 2401FFFF */ li $at, -1 -/* 042F54 7F00E424 14410004 */ bne $v0, $at, .L7F00E438 -/* 042F58 7F00E428 3C018000 */ lui $at, 0x8000 -/* 042F5C 7F00E42C 14810002 */ bne $a0, $at, .L7F00E438 -/* 042F60 7F00E430 00000000 */ nop -/* 042F64 7F00E434 0006000D */ break 6 -.L7F00E438: -/* 042F68 7F00E438 468021A0 */ cvt.s.w $f6, $f4 -/* 042F6C 7F00E43C 44894000 */ mtc1 $t1, $f8 -/* 042F70 7F00E440 3C018003 */ lui $at, %hi(cursor_h_pos) -/* 042F74 7F00E444 468042A0 */ cvt.s.w $f10, $f8 -/* 042F78 7F00E448 E426A908 */ swc1 $f6, %lo(cursor_h_pos)($at) -/* 042F7C 7F00E44C 3C018003 */ lui $at, %hi(cursor_v_pos) -/* 042F80 7F00E450 03E00008 */ jr $ra -/* 042F84 7F00E454 E42AA90C */ swc1 $f10, %lo(cursor_v_pos)($at) -) -#endif - - - #ifdef NONMATCHING @@ -8105,12 +7965,14 @@ glabel constructor_menu07_missionsel #endif - +//******************************************************************************************************** +//DIFFICULTY SELECT +//******************************************************************************************************** void init_menu08_difficultyselect(void) { selected_difficulty = DIFFICULTY_MULTI; - tab_2_selected = FALSE; - tab_3_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; load_walletbond(); } @@ -8128,17 +7990,17 @@ void interface_menu08_difficulty(void) viSetAspect(1.3333334f); viSetZRange(100.0f, 10000.0f); viSetUseZBuf(FALSE); - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 4, TRUE); - tab_3_highlight = FALSE; + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 4, TRUE); + tab_prev_highlight = FALSE; mission_difficulty_highlighted = DIFFICULTY_MULTI; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; } else if ((unlockedDifficulty >= DIFFICULTY_007) && (cursor_v_pos >= 275.0f)) { @@ -8159,9 +8021,9 @@ void interface_menu08_difficulty(void) if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON)) { - if (tab_3_highlight) + if (tab_prev_highlight) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } @@ -8170,7 +8032,7 @@ void interface_menu08_difficulty(void) if (mission_difficulty_highlighted >= DIFFICULTY_AGENT) { selected_difficulty = mission_difficulty_highlighted; - tab_2_selected = TRUE; + tab_next_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, PAPER_TURN_SFX, NULL); } @@ -8178,13 +8040,13 @@ void interface_menu08_difficulty(void) } else if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } menu_control_stick_tracking(); - if (tab_2_selected) + if (tab_next_selected) { if (selected_difficulty == DIFFICULTY_007) { @@ -8199,7 +8061,7 @@ void interface_menu08_difficulty(void) return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_MISSION_SELECT, 0); set_cursor_to_stage_solo(mission_folder_setup_entries[briefingpage].mission_num); @@ -8426,15 +8288,17 @@ Gfx *constructor_menu08_difficulty(Gfx *DL) return DL; } - +//******************************************************************************************************** +//007 DIFFICULTY SELECT +//******************************************************************************************************** void init_menu09_007difficultyselect(void) { - tab_1_selected = 0; - tab_2_selected = 0; - tab_3_selected = 0; - tab_3_highlight = 0; - tab_2_highlight = 0; - tab_1_highlight = 0; + tab_start_selected = 0; + tab_next_selected = 0; + tab_prev_selected = 0; + tab_prev_highlight = 0; + tab_next_highlight = 0; + tab_start_highlight = 0; highlight_enemy_reaction = 0; highlight_enemy_health = 0; highlight_enemy_accuracy = 0; @@ -8458,25 +8322,25 @@ void interface_menu09_007options(void) viSetUseZBuf(FALSE); if (joyGetButtons(PLAYER_1, Z_TRIG|A_BUTTON) == 0) { - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; highlight_enemy_reaction = FALSE; highlight_enemy_health = FALSE; highlight_enemy_accuracy = FALSE; highlight_enemy_damage = FALSE; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; } else if (isontab2()) { - tab_2_highlight = TRUE; + tab_next_highlight = TRUE; } else if (isontab1()) { - tab_1_highlight = TRUE; + tab_start_highlight = TRUE; } else { @@ -8499,34 +8363,34 @@ void interface_menu09_007options(void) } else { - tab_2_highlight = TRUE; + tab_next_highlight = TRUE; } } } if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON)) { - tab_1_selected = TRUE; + tab_start_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } else if (joyGetButtonsPressedThisFrame(PLAYER_1, Z_TRIG|A_BUTTON)) { - if (tab_2_highlight) + if (tab_next_highlight) { - tab_2_selected = TRUE; + tab_next_selected = TRUE; } - else if (tab_3_highlight) + else if (tab_prev_highlight) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } - else if (tab_1_highlight) + else if (tab_start_highlight) { - tab_1_selected = TRUE; + tab_start_selected = TRUE; } sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } else if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } if (joyGetButtons(PLAYER_1, Z_TRIG|A_BUTTON)) @@ -8557,23 +8421,23 @@ void interface_menu09_007options(void) slider_007_mode_damage = (f32) (temp_x * temp_x * 10.0f); } } - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, TRUE); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 6, TRUE); menu_control_stick_tracking(); - if (tab_1_selected) + if (tab_start_selected) { set_menu_to_mode(MENU_RUN_STAGE, 1); return; } - if (tab_2_selected) + if (tab_next_selected) { set_menu_to_mode(MENU_BRIEFING, 0); return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_DIFFICULTY, 0); set_cursor_pos_difficulty(selected_difficulty); @@ -9949,55 +9813,18 @@ void select_game_length(void) } - - - -#ifdef NONMATCHING void copy_aim_settings_to_playerdata(void) { - g_playerPlayerData[0].autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; - g_playerPlayerData[0].sight = mp_sight_adjust_table[aim_sight_adjustment].sight; - g_playerPlayerData[1].autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; - g_playerPlayerData[1].sight = mp_sight_adjust_table[aim_sight_adjustment].sight; - g_playerPlayerData[2].autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; - g_playerPlayerData[2].sight = mp_sight_adjust_table[aim_sight_adjustment].sight; - g_playerPlayerData[3].autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; - g_playerPlayerData[3].sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + s32 i; + struct player_data * p; + + for (i = 0; i < 4; i++) + { + p = &g_playerPlayerData[i]; + p->autoaim = mp_sight_adjust_table[aim_sight_adjustment].autoaim; + p->sight = mp_sight_adjust_table[aim_sight_adjustment].sight; + } } -#else -GLOBAL_ASM( -.text -glabel copy_aim_settings_to_playerdata -/* 044D08 7F0101D8 3C0E8003 */ lui $t6, %hi(aim_sight_adjustment) -/* 044D0C 7F0101DC 8DCEB53C */ lw $t6, %lo(aim_sight_adjustment)($t6) -/* 044D10 7F0101E0 3C188003 */ lui $t8, %hi(mp_sight_adjust_table) -/* 044D14 7F0101E4 2718B510 */ addiu $t8, %lo(mp_sight_adjust_table) # addiu $t8, $t8, -0x4af0 -/* 044D18 7F0101E8 000E7880 */ sll $t7, $t6, 2 -/* 044D1C 7F0101EC 01F81021 */ addu $v0, $t7, $t8 -/* 044D20 7F0101F0 90430003 */ lbu $v1, 3($v0) -/* 044D24 7F0101F4 3C018008 */ lui $at, %hi(g_playerPlayerData+0x6A) -/* 044D28 7F0101F8 A0239F5A */ sb $v1, %lo(g_playerPlayerData+0x6A)($at) -/* 044D2C 7F0101FC 90440002 */ lbu $a0, 2($v0) -/* 044D30 7F010200 3C018008 */ lui $at, %hi(g_playerPlayerData+0x6B) -/* 044D34 7F010204 A0249F5B */ sb $a0, %lo(g_playerPlayerData+0x6B)($at) -/* 044D38 7F010208 3C018008 */ lui $at, %hi(g_playerPlayerData+0x70+0x6A) -/* 044D3C 7F01020C A0239FCA */ sb $v1, %lo(g_playerPlayerData+0x70+0x6A)($at) -/* 044D40 7F010210 3C018008 */ lui $at, %hi(g_playerPlayerData+0x70+0x6B) -/* 044D44 7F010214 A0249FCB */ sb $a0, %lo(g_playerPlayerData+0x70+0x6B)($at) -/* 044D48 7F010218 3C018008 */ lui $at, %hi(g_playerPlayerData+0x70+0x70+0x6A) -/* 044D4C 7F01021C A023A03A */ sb $v1, %lo(g_playerPlayerData+0x70+0x70+0x6A)($at) -/* 044D50 7F010220 3C018008 */ lui $at, %hi(g_playerPlayerData+0x70+0x70+0x6B) -/* 044D54 7F010224 A024A03B */ sb $a0, %lo(g_playerPlayerData+0x70+0x70+0x6B)($at) -/* 044D58 7F010228 3C018008 */ lui $at, %hi(g_playerPlayerData+0x70+0x70+0x70+0x6A) -/* 044D5C 7F01022C A023A0AA */ sb $v1, %lo(g_playerPlayerData+0x70+0x70+0x70+0x6A)($at) -/* 044D60 7F010230 3C018008 */ lui $at, %hi(g_playerPlayerData+0x70+0x70+0x70+0x6B) -/* 044D64 7F010234 03E00008 */ jr $ra -/* 044D68 7F010238 A024A0AB */ sb $a0, %lo(g_playerPlayerData+0x70+0x70+0x70+0x6B)($at) -) -#endif - - - void advance_aim_settings_selection(void) @@ -10023,42 +9850,42 @@ s32 get_selected_num_players(void) u16 get_player_mp_char_head(s32 player) { - if ((&player_1_char)[player] < 0) + if (player_char[player] < 0) { return mp_chr_setup[player].head; } - return mp_chr_setup[(&player_1_char)[player]].head; + return mp_chr_setup[player_char[player]].head; } u8 get_player_mp_char_gender(int player) { - if ((&player_1_char)[player] < 0) + if (player_char[player] < 0) { return mp_chr_setup[player].gender; } - return mp_chr_setup[(&player_1_char)[player]].gender; + return mp_chr_setup[player_char[player]].gender; } u16 get_player_mp_char_body(int player) { - if ((&player_1_char)[player] < 0) + if (player_char[player] < 0) { return mp_chr_setup[player].body; } - return mp_chr_setup[(&player_1_char)[player]].body; + return mp_chr_setup[player_char[player]].body; } f32 get_player_mp_handicap(int player) { - return MP_handicap_table[(&handicap_player1)[player]].damage_modifier; + return MP_handicap_table[player_handicap[player]].damage_modifier; } f32 get_player_mp_char_height(int player) { - if ((&player_1_char)[player] < 0) { + if (player_char[player] < 0) { return mp_chr_setup[player].pov; } - return mp_chr_setup[(&player_1_char)[player]].pov; + return mp_chr_setup[player_char[player]].pov; } int get_mp_timelimit(void) { @@ -10154,10 +9981,10 @@ void init_mp_options_for_scenario(u32 numplayers) for (i=0; i < numplayers; i++) { - if (&player_1_char[i] == -1) + if (player_char[i] == -1) { - &player_1_char[i] = i; - &handicap_player1[i] = 5; + player_char[i] = i; + player_handicap[i] = 5; } if ((numplayers >= 3) && (&controlstyle_player[i] >= CONTROLLER_CONFIG_PLENTY)) { @@ -10192,12 +10019,12 @@ glabel init_mp_options_for_scenario /* 045160 7F010630 00001825 */ move $v1, $zero /* 045164 7F010634 1A00001C */ blez $s0, .L7F0106A8 /* 045168 7F010638 02003025 */ move $a2, $s0 -/* 04516C 7F01063C 3C058003 */ lui $a1, %hi(player_1_char) +/* 04516C 7F01063C 3C058003 */ lui $a1, %hi(player_char) /* 045170 7F010640 3C0A8007 */ lui $t2, %hi(controlstyle_player) -/* 045174 7F010644 3C088007 */ lui $t0, %hi(handicap_player1) -/* 045178 7F010648 250897A8 */ addiu $t0, %lo(handicap_player1) # addiu $t0, $t0, -0x6858 +/* 045174 7F010644 3C088007 */ lui $t0, %hi(player_handicap) +/* 045178 7F010648 250897A8 */ addiu $t0, %lo(player_handicap) # addiu $t0, $t0, -0x6858 /* 04517C 7F01064C 254A97B8 */ addiu $t2, %lo(controlstyle_player) # addiu $t2, $t2, -0x6848 -/* 045180 7F010650 24A5B524 */ addiu $a1, %lo(player_1_char) # addiu $a1, $a1, -0x4adc +/* 045180 7F010650 24A5B524 */ addiu $a1, %lo(player_char) # addiu $a1, $a1, -0x4adc /* 045184 7F010654 00002025 */ move $a0, $zero /* 045188 7F010658 24090005 */ li $t1, 5 /* 04518C 7F01065C 2407FFFF */ li $a3, -1 @@ -10268,17 +10095,19 @@ glabel init_mp_options_for_scenario #endif - +//******************************************************************************************************** +//MULTIPLAYER OPTIONS +//******************************************************************************************************** void init_menu0E_mpoptions(void) { int numplayers; - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; if (maybe_is_in_menu) { @@ -10371,9 +10200,9 @@ void interface_menu0E_mpoptions(void) } if (joyGetButtons(PLAYER_1, Z_TRIG|A_BUTTON) == 0) { - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; highlight_players = FALSE; highlight_scenario = FALSE; highlight_gameselect = FALSE; @@ -10385,11 +10214,11 @@ void interface_menu0E_mpoptions(void) highlight_aimadjustment = FALSE; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; } else if (isontab1()) { - tab_1_highlight = TRUE; + tab_start_highlight = TRUE; } else { @@ -10434,18 +10263,18 @@ void interface_menu0E_mpoptions(void) } if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON)) { - tab_1_selected = TRUE; + tab_start_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, 0xC7, 0); } else if (joyGetButtonsPressedThisFrame(PLAYER_1, Z_TRIG|A_BUTTON)) { - if (tab_3_highlight) + if (tab_prev_highlight) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } - if (tab_1_highlight) + if (tab_start_highlight) { - tab_1_selected = TRUE; + tab_start_selected = TRUE; } else if (highlight_players) { @@ -10487,22 +10316,22 @@ void interface_menu0E_mpoptions(void) } else if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON) != 0) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, 0xC7, 0); } - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 5, TRUE); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 5, TRUE); menu_control_stick_tracking(); - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_MODE_SELECT, 0); setCursorPOSforMode(gamemode); return; } - if (tab_1_selected) + if (tab_start_selected) { /* @@ -10653,12 +10482,12 @@ glabel interface_menu0E_mpoptions /* 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) -/* 045440 7F010910 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) -/* 045444 7F010914 3C018003 */ lui $at, %hi(tab_2_highlight) -/* 045448 7F010918 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) -/* 04544C 7F01091C 3C018003 */ lui $at, %hi(tab_1_highlight) -/* 045450 7F010920 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04543C 7F01090C 3C018003 */ lui $at, %hi(tab_prev_highlight) +/* 045440 7F010910 AC20A8E4 */ sw $zero, %lo(tab_prev_highlight)($at) +/* 045444 7F010914 3C018003 */ lui $at, %hi(tab_next_highlight) +/* 045448 7F010918 AC20A8E0 */ sw $zero, %lo(tab_next_highlight)($at) +/* 04544C 7F01091C 3C018003 */ lui $at, %hi(tab_start_highlight) +/* 045450 7F010920 AC20A8DC */ sw $zero, %lo(tab_start_highlight)($at) /* 045454 7F010924 3C018007 */ lui $at, %hi(highlight_players) /* 045458 7F010928 AC2097C8 */ sw $zero, %lo(highlight_players)($at) /* 04545C 7F01092C 3C018007 */ lui $at, %hi(highlight_scenario) @@ -10680,18 +10509,18 @@ glabel interface_menu0E_mpoptions /* 04549C 7F01096C AC2097E8 */ sw $zero, %lo(highlight_aimadjustment)($at) /* 0454A0 7F010970 10400004 */ beqz $v0, .L7F010984 /* 0454A4 7F010974 240F0001 */ li $t7, 1 -/* 0454A8 7F010978 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 0454A8 7F010978 3C018003 */ lui $at, %hi(tab_prev_highlight) /* 0454AC 7F01097C 1000005D */ b .L7F010AF4 -/* 0454B0 7F010980 AC2FA8E4 */ sw $t7, %lo(tab_3_highlight)($at) +/* 0454B0 7F010980 AC2FA8E4 */ sw $t7, %lo(tab_prev_highlight)($at) .L7F010984: /* 0454B4 7F010984 0FC02879 */ jal isontab1 /* 0454B8 7F010988 00000000 */ nop /* 0454BC 7F01098C 10400005 */ beqz $v0, .L7F0109A4 /* 0454C0 7F010990 3C018003 */ lui $at, %hi(cursor_v_pos) /* 0454C4 7F010994 24030001 */ li $v1, 1 -/* 0454C8 7F010998 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 0454C8 7F010998 3C018003 */ lui $at, %hi(tab_start_highlight) /* 0454CC 7F01099C 10000055 */ b .L7F010AF4 -/* 0454D0 7F0109A0 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) +/* 0454D0 7F0109A0 AC23A8DC */ sw $v1, %lo(tab_start_highlight)($at) .L7F0109A4: /* 0454D4 7F0109A4 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) /* 0454D8 7F0109A8 3C198003 */ lui $t9, %hi(unlock_aim_sight) @@ -10797,9 +10626,9 @@ glabel interface_menu0E_mpoptions /* 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) +/* 045638 7F010B08 3C018003 */ lui $at, %hi(tab_start_selected) /* 04563C 7F010B0C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) -/* 045640 7F010B10 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +/* 045640 7F010B10 AC23A8D0 */ sw $v1, %lo(tab_start_selected)($at) /* 045644 7F010B14 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 045648 7F010B18 240500C7 */ li $a1, 199 /* 04564C 7F010B1C 0C002382 */ jal sndPlaySfx @@ -10812,22 +10641,22 @@ glabel interface_menu0E_mpoptions /* 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) +/* 045670 7F010B40 3C0E8003 */ lui $t6, %hi(tab_prev_highlight) +/* 045674 7F010B44 8DCEA8E4 */ lw $t6, %lo(tab_prev_highlight)($t6) +/* 045678 7F010B48 3C0F8003 */ lui $t7, %hi(tab_start_highlight) /* 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) -/* 04568C 7F010B5C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 045688 7F010B58 3C018003 */ lui $at, %hi(tab_prev_selected) +/* 04568C 7F010B5C AC23A8D8 */ sw $v1, %lo(tab_prev_selected)($at) .L7F010B60: -/* 045690 7F010B60 8DEFA8DC */ lw $t7, %lo(tab_1_highlight)($t7) -/* 045694 7F010B64 3C018003 */ lui $at, %hi(tab_1_selected) +/* 045690 7F010B60 8DEFA8DC */ lw $t7, %lo(tab_start_highlight)($t7) +/* 045694 7F010B64 3C018003 */ lui $at, %hi(tab_start_selected) /* 045698 7F010B68 3C188007 */ lui $t8, %hi(highlight_players) /* 04569C 7F010B6C 11E00003 */ beqz $t7, .L7F010B7C /* 0456A0 7F010B70 00003025 */ move $a2, $zero /* 0456A4 7F010B74 1000003E */ b .L7F010C70 -/* 0456A8 7F010B78 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) +/* 0456A8 7F010B78 AC23A8D0 */ sw $v1, %lo(tab_start_selected)($at) .L7F010B7C: /* 0456AC 7F010B7C 8F1897C8 */ lw $t8, %lo(highlight_players)($t8) /* 0456B0 7F010B80 24190001 */ li $t9, 1 @@ -10909,43 +10738,43 @@ glabel interface_menu0E_mpoptions /* 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) +/* 0457C4 7F010C94 3C018003 */ lui $at, %hi(tab_prev_selected) /* 0457C8 7F010C98 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) -/* 0457CC 7F010C9C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) +/* 0457CC 7F010C9C AC23A8D8 */ sw $v1, %lo(tab_prev_selected)($at) /* 0457D0 7F010CA0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0457D4 7F010CA4 240500C7 */ li $a1, 199 /* 0457D8 7F010CA8 0C002382 */ jal sndPlaySfx /* 0457DC 7F010CAC 00003025 */ move $a2, $zero .L7F010CB0: -/* 0457E0 7F010CB0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 0457E0 7F010CB0 3C048003 */ lui $a0, %hi(walletinst) /* 0457E4 7F010CB4 0FC02DC9 */ jal disable_all_switches -/* 0457E8 7F010CB8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) -/* 0457EC 7F010CBC 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 0457F0 7F010CC0 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 0457E8 7F010CB8 8C84A95C */ lw $a0, %lo(walletinst)($a0) +/* 0457EC 7F010CBC 3C048003 */ lui $a0, %hi(walletinst) +/* 0457F0 7F010CC0 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 0457F4 7F010CC4 00002825 */ move $a1, $zero /* 0457F8 7F010CC8 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 0457FC 7F010CCC 24060001 */ li $a2, 1 -/* 045800 7F010CD0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 045804 7F010CD4 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 045800 7F010CD0 3C048003 */ lui $a0, %hi(walletinst) +/* 045804 7F010CD4 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 045808 7F010CD8 24050001 */ li $a1, 1 /* 04580C 7F010CDC 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 045810 7F010CE0 24060001 */ li $a2, 1 -/* 045814 7F010CE4 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 045818 7F010CE8 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 045814 7F010CE4 3C048003 */ lui $a0, %hi(walletinst) +/* 045818 7F010CE8 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 04581C 7F010CEC 24050003 */ li $a1, 3 /* 045820 7F010CF0 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 045824 7F010CF4 24060001 */ li $a2, 1 -/* 045828 7F010CF8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 04582C 7F010CFC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 045828 7F010CF8 3C048003 */ lui $a0, %hi(walletinst) +/* 04582C 7F010CFC 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 045830 7F010D00 24050005 */ li $a1, 5 /* 045834 7F010D04 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 045838 7F010D08 24060001 */ li $a2, 1 /* 04583C 7F010D0C 0FC026E1 */ jal menu_control_stick_tracking /* 045840 7F010D10 00000000 */ nop -/* 045844 7F010D14 3C0E8003 */ lui $t6, %hi(tab_3_selected) -/* 045848 7F010D18 8DCEA8D8 */ lw $t6, %lo(tab_3_selected)($t6) +/* 045844 7F010D14 3C0E8003 */ lui $t6, %hi(tab_prev_selected) +/* 045848 7F010D18 8DCEA8D8 */ lw $t6, %lo(tab_prev_selected)($t6) /* 04584C 7F010D1C 24040006 */ li $a0, 6 -/* 045850 7F010D20 3C0F8003 */ lui $t7, %hi(tab_1_selected) +/* 045850 7F010D20 3C0F8003 */ lui $t7, %hi(tab_start_selected) /* 045854 7F010D24 11C00008 */ beqz $t6, .L7F010D48 /* 045858 7F010D28 00000000 */ nop /* 04585C 7F010D2C 0FC06975 */ jal set_menu_to_mode @@ -10956,7 +10785,7 @@ glabel interface_menu0E_mpoptions /* 045870 7F010D40 10000070 */ b .L7F010F04 /* 045874 7F010D44 8FBF0014 */ lw $ra, 0x14($sp) .L7F010D48: -/* 045878 7F010D48 8DEFA8D0 */ lw $t7, %lo(tab_1_selected)($t7) +/* 045878 7F010D48 8DEFA8D0 */ lw $t7, %lo(tab_start_selected)($t7) /* 04587C 7F010D4C 3C188003 */ lui $t8, %hi(MP_stage_selected) /* 045880 7F010D50 8FAB003C */ lw $t3, 0x3c($sp) /* 045884 7F010D54 11E00027 */ beqz $t7, .L7F010DF4 @@ -11300,82 +11129,23 @@ Gfx * constructor_menu0E_mpoptions(Gfx *DL) } - -#ifdef NONMATCHING -s32 get_players_who_have_selected_mp_char(s32 arg0) +bool get_players_who_have_selected_mp_char(s32 character) { - u32 temp_a0_2; - void *temp_a0; - void *phi_a0; - s32 phi_v0; - s32 phi_v1; - s32 phi_v1_2; - s32 phi_v1_3; + s32 i; + bool char_is_selected; - phi_v1 = 0; - if (selected_num_players > 0) + char_is_selected = FALSE; + + for (i = 0; i < selected_num_players; i++) { - temp_a0 = 0x80070000 + -0x68c0; - phi_a0 = temp_a0; - phi_v0 = 0; - phi_v1_3 = 0; -loop_2: - temp_a0_2 = phi_a0 + 4; - phi_v1_2 = phi_v1_3; - if (*phi_a0 != 0) + if (player_has_selected_char[i] && character == player_char[i]) { - phi_v1_2 = phi_v1_3; - if (arg0 == *(&player_1_char + phi_v0)) - { - phi_v1_2 = 1; - } - } - phi_a0 = temp_a0_2; - phi_v0 = phi_v0 + 4; - phi_v1 = phi_v1_2; - phi_v1_3 = phi_v1_2; - if (temp_a0_2 < (u32) ((selected_num_players * 4) + temp_a0)) - { - goto loop_2; + char_is_selected = TRUE; } } - return phi_v1; -} -#else -GLOBAL_ASM( -.text -glabel get_players_who_have_selected_mp_char -/* 046708 7F011BD8 3C058003 */ lui $a1, %hi(selected_num_players) -/* 04670C 7F011BDC 8CA5B520 */ lw $a1, %lo(selected_num_players)($a1) -/* 046710 7F011BE0 00803025 */ move $a2, $a0 -/* 046714 7F011BE4 00001825 */ move $v1, $zero -/* 046718 7F011BE8 18A00012 */ blez $a1, .L7F011C34 -/* 04671C 7F011BEC 00001025 */ move $v0, $zero -/* 046720 7F011BF0 3C0E8007 */ lui $t6, %hi(has_selected_char_player1) -/* 046724 7F011BF4 00057880 */ sll $t7, $a1, 2 -/* 046728 7F011BF8 3C058003 */ lui $a1, %hi(player_1_char) -/* 04672C 7F011BFC 25C49740 */ addiu $a0, $t6, %lo(has_selected_char_player1) -/* 046730 7F011C00 01E43821 */ addu $a3, $t7, $a0 -/* 046734 7F011C04 24A5B524 */ addiu $a1, %lo(player_1_char) # addiu $a1, $a1, -0x4adc -.L7F011C08: -/* 046738 7F011C08 8C980000 */ lw $t8, ($a0) -/* 04673C 7F011C0C 24840004 */ addiu $a0, $a0, 4 -/* 046740 7F011C10 0087082B */ sltu $at, $a0, $a3 -/* 046744 7F011C14 13000005 */ beqz $t8, .L7F011C2C -/* 046748 7F011C18 00A2C821 */ addu $t9, $a1, $v0 -/* 04674C 7F011C1C 8F280000 */ lw $t0, ($t9) -/* 046750 7F011C20 14C80002 */ bne $a2, $t0, .L7F011C2C -/* 046754 7F011C24 00000000 */ nop -/* 046758 7F011C28 24030001 */ li $v1, 1 -.L7F011C2C: -/* 04675C 7F011C2C 1420FFF6 */ bnez $at, .L7F011C08 -/* 046760 7F011C30 24420004 */ addiu $v0, $v0, 4 -.L7F011C34: -/* 046764 7F011C34 03E00008 */ jr $ra -/* 046768 7F011C38 00601025 */ move $v0, $v1 -) -#endif + return char_is_selected; +} #ifdef NONMATCHING @@ -11397,12 +11167,12 @@ void init_menu0f_mpcharsel(void) s32 phi_s0; s32 phi_s0_2; - tab_1_selected = 0; - tab_2_selected = 0; - tab_3_selected = 0; - tab_3_highlight = 0; - tab_2_highlight = 0; - tab_1_highlight = 0; + tab_start_selected = 0; + tab_next_selected = 0; + tab_prev_selected = 0; + tab_prev_highlight = 0; + tab_next_highlight = 0; + tab_start_highlight = 0; phi_s1 = &mp_chr_setup; loop_1: temp_lo = (phi_s1->unk3 * 4) * 0xc; @@ -11410,27 +11180,27 @@ loop_1: phi_v0 = temp_v0; if ((u32) *temp_v0 < 0xbb8U) { - calls_load_image_to_buffer(*temp_v0, 0, *temp_v0); + texLoadFromTextureNum(*temp_v0, 0, *temp_v0); phi_v0 = mpcharselimages + temp_lo; } temp_v1 = phi_v0->unkC; phi_v0_2 = phi_v0; if (temp_v1 < 0xbb8U) { - calls_load_image_to_buffer(temp_v1, 0); + texLoadFromTextureNum(temp_v1, 0); phi_v0_2 = mpcharselimages + temp_lo; } temp_v1_2 = phi_v0_2->unk18; phi_v0_3 = phi_v0_2; if (temp_v1_2 < 0xbb8U) { - calls_load_image_to_buffer(temp_v1_2, 0); + texLoadFromTextureNum(temp_v1_2, 0); phi_v0_3 = mpcharselimages + temp_lo; } temp_v1_3 = phi_v0_3->unk24; if (temp_v1_3 < 0xbb8U) { - calls_load_image_to_buffer(temp_v1_3, 0); + texLoadFromTextureNum(temp_v1_3, 0); } temp_s1 = phi_s1 + 0xc; phi_s1 = temp_s1; @@ -11504,28 +11274,28 @@ loop_16: GLOBAL_ASM( .text glabel init_menu0f_mpcharsel -/* 04676C 7F011C3C 3C018003 */ lui $at, %hi(tab_1_selected) -/* 046770 7F011C40 AC20A8D0 */ sw $zero, %lo(tab_1_selected)($at) -/* 046774 7F011C44 3C018003 */ lui $at, %hi(tab_2_selected) -/* 046778 7F011C48 AC20A8D4 */ sw $zero, %lo(tab_2_selected)($at) -/* 04677C 7F011C4C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04676C 7F011C3C 3C018003 */ lui $at, %hi(tab_start_selected) +/* 046770 7F011C40 AC20A8D0 */ sw $zero, %lo(tab_start_selected)($at) +/* 046774 7F011C44 3C018003 */ lui $at, %hi(tab_next_selected) +/* 046778 7F011C48 AC20A8D4 */ sw $zero, %lo(tab_next_selected)($at) +/* 04677C 7F011C4C 3C018003 */ lui $at, %hi(tab_prev_selected) /* 046780 7F011C50 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 046784 7F011C54 AC20A8D8 */ sw $zero, %lo(tab_3_selected)($at) -/* 046788 7F011C58 3C018003 */ lui $at, %hi(tab_3_highlight) -/* 04678C 7F011C5C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) -/* 046790 7F011C60 3C018003 */ lui $at, %hi(tab_2_highlight) +/* 046784 7F011C54 AC20A8D8 */ sw $zero, %lo(tab_prev_selected)($at) +/* 046788 7F011C58 3C018003 */ lui $at, %hi(tab_prev_highlight) +/* 04678C 7F011C5C AC20A8E4 */ sw $zero, %lo(tab_prev_highlight)($at) +/* 046790 7F011C60 3C018003 */ lui $at, %hi(tab_next_highlight) /* 046794 7F011C64 AFB40028 */ sw $s4, 0x28($sp) /* 046798 7F011C68 AFB20020 */ sw $s2, 0x20($sp) /* 04679C 7F011C6C AFB1001C */ sw $s1, 0x1c($sp) -/* 0467A0 7F011C70 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) +/* 0467A0 7F011C70 AC20A8E0 */ sw $zero, %lo(tab_next_highlight)($at) /* 0467A4 7F011C74 AFB30024 */ sw $s3, 0x24($sp) -/* 0467A8 7F011C78 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 0467A8 7F011C78 3C018003 */ lui $at, %hi(tab_start_highlight) /* 0467AC 7F011C7C 3C118003 */ lui $s1, %hi(mp_chr_setup) /* 0467B0 7F011C80 3C128009 */ lui $s2, %hi(mpcharselimages) /* 0467B4 7F011C84 3C148003 */ lui $s4, %hi(MP_handicap_table) /* 0467B8 7F011C88 AFBF002C */ sw $ra, 0x2c($sp) /* 0467BC 7F011C8C AFB00018 */ sw $s0, 0x18($sp) -/* 0467C0 7F011C90 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 0467C0 7F011C90 AC20A8DC */ sw $zero, %lo(tab_start_highlight)($at) /* 0467C4 7F011C94 2694B498 */ addiu $s4, %lo(MP_handicap_table) # addiu $s4, $s4, -0x4b68 /* 0467C8 7F011C98 2652D130 */ addiu $s2, %lo(mpcharselimages) # addiu $s2, $s2, -0x2ed0 /* 0467CC 7F011C9C 2631B198 */ addiu $s1, %lo(mp_chr_setup) # addiu $s1, $s1, -0x4e68 @@ -11541,7 +11311,7 @@ glabel init_menu0f_mpcharsel /* 0467F0 7F011CC0 2CC10BB8 */ sltiu $at, $a2, 0xbb8 /* 0467F4 7F011CC4 10200005 */ beqz $at, .L7F011CDC /* 0467F8 7F011CC8 00C02025 */ move $a0, $a2 -/* 0467FC 7F011CCC 0FC32FBA */ jal calls_load_image_to_buffer +/* 0467FC 7F011CCC 0FC32FBA */ jal texLoadFromTextureNum /* 046800 7F011CD0 00002825 */ move $a1, $zero /* 046804 7F011CD4 8E580000 */ lw $t8, ($s2) /* 046808 7F011CD8 03101021 */ addu $v0, $t8, $s0 @@ -11550,7 +11320,7 @@ glabel init_menu0f_mpcharsel /* 046810 7F011CE0 2C610BB8 */ sltiu $at, $v1, 0xbb8 /* 046814 7F011CE4 10200005 */ beqz $at, .L7F011CFC /* 046818 7F011CE8 00602025 */ move $a0, $v1 -/* 04681C 7F011CEC 0FC32FBA */ jal calls_load_image_to_buffer +/* 04681C 7F011CEC 0FC32FBA */ jal texLoadFromTextureNum /* 046820 7F011CF0 00002825 */ move $a1, $zero /* 046824 7F011CF4 8E590000 */ lw $t9, ($s2) /* 046828 7F011CF8 03301021 */ addu $v0, $t9, $s0 @@ -11559,7 +11329,7 @@ glabel init_menu0f_mpcharsel /* 046830 7F011D00 2C610BB8 */ sltiu $at, $v1, 0xbb8 /* 046834 7F011D04 10200005 */ beqz $at, .L7F011D1C /* 046838 7F011D08 00602025 */ move $a0, $v1 -/* 04683C 7F011D0C 0FC32FBA */ jal calls_load_image_to_buffer +/* 04683C 7F011D0C 0FC32FBA */ jal texLoadFromTextureNum /* 046840 7F011D10 00002825 */ move $a1, $zero /* 046844 7F011D14 8E480000 */ lw $t0, ($s2) /* 046848 7F011D18 01101021 */ addu $v0, $t0, $s0 @@ -11568,7 +11338,7 @@ glabel init_menu0f_mpcharsel /* 046850 7F011D20 2C610BB8 */ sltiu $at, $v1, 0xbb8 /* 046854 7F011D24 10200003 */ beqz $at, .L7F011D34 /* 046858 7F011D28 00602025 */ move $a0, $v1 -/* 04685C 7F011D2C 0FC32FBA */ jal calls_load_image_to_buffer +/* 04685C 7F011D2C 0FC32FBA */ jal texLoadFromTextureNum /* 046860 7F011D30 00002825 */ move $a1, $zero .L7F011D34: /* 046864 7F011D34 2631000C */ addiu $s1, $s1, 0xc @@ -11592,11 +11362,11 @@ glabel init_menu0f_mpcharsel /* 0468AC 7F011D7C 1000001A */ b .L7F011DE8 /* 0468B0 7F011D80 AE2A0000 */ sw $t2, ($s1) .L7F011D84: -/* 0468B4 7F011D84 3C128003 */ lui $s2, %hi(player_1_char) +/* 0468B4 7F011D84 3C128003 */ lui $s2, %hi(player_char) /* 0468B8 7F011D88 3C138003 */ lui $s3, %hi(MP_stage_selected) /* 0468BC 7F011D8C AE2B0000 */ sw $t3, ($s1) /* 0468C0 7F011D90 2673B534 */ addiu $s3, %lo(MP_stage_selected) # addiu $s3, $s3, -0x4acc -/* 0468C4 7F011D94 2652B524 */ addiu $s2, %lo(player_1_char) # addiu $s2, $s2, -0x4adc +/* 0468C4 7F011D94 2652B524 */ addiu $s2, %lo(player_char) # addiu $s2, $s2, -0x4adc /* 0468C8 7F011D98 8E220000 */ lw $v0, ($s1) .L7F011D9C: /* 0468CC 7F011D9C 8E4C0000 */ lw $t4, ($s2) @@ -11623,18 +11393,18 @@ glabel init_menu0f_mpcharsel /* 046910 7F011DE0 5653FFEE */ bnel $s2, $s3, .L7F011D9C /* 046914 7F011DE4 8E220000 */ lw $v0, ($s1) .L7F011DE8: -/* 046918 7F011DE8 3C028003 */ lui $v0, %hi(player_1_char) -/* 04691C 7F011DEC 8C42B524 */ lw $v0, %lo(player_1_char)($v0) +/* 046918 7F011DE8 3C028003 */ lui $v0, %hi(player_char) +/* 04691C 7F011DEC 8C42B524 */ lw $v0, %lo(player_char)($v0) /* 046920 7F011DF0 3C018007 */ lui $at, %hi(mp_char_cur_select_player) -/* 046924 7F011DF4 3C038003 */ lui $v1, %hi(player_2_char) +/* 046924 7F011DF4 3C038003 */ lui $v1, %hi(player_char+0x04) /* 046928 7F011DF8 AC229710 */ sw $v0, %lo(mp_char_cur_select_player)($at) /* 04692C 7F011DFC 3C018007 */ lui $at, %hi(mp_char_prev_select_player) /* 046930 7F011E00 AC229720 */ sw $v0, %lo(mp_char_prev_select_player)($at) /* 046934 7F011E04 3C018007 */ lui $at, %hi(dword_CODE_bss_80069730) /* 046938 7F011E08 AC209730 */ sw $zero, %lo(dword_CODE_bss_80069730)($at) -/* 04693C 7F011E0C 3C018007 */ lui $at, %hi(has_selected_char_player1) -/* 046940 7F011E10 AC209740 */ sw $zero, %lo(has_selected_char_player1)($at) -/* 046944 7F011E14 8C63B528 */ lw $v1, %lo(player_2_char)($v1) +/* 04693C 7F011E0C 3C018007 */ lui $at, %hi(player_has_selected_char) +/* 046940 7F011E10 AC209740 */ sw $zero, %lo(player_has_selected_char)($at) +/* 046944 7F011E14 8C63B528 */ lw $v1, %lo(player_char+0x04)($v1) /* 046948 7F011E18 3C018007 */ lui $at, %hi(size_mp_select_image_player1) /* 04694C 7F011E1C AC209750 */ sw $zero, %lo(size_mp_select_image_player1)($at) /* 046950 7F011E20 3C018007 */ lui $at, %hi(mp_char_cur_select_player+0x4) @@ -11643,10 +11413,10 @@ glabel init_menu0f_mpcharsel /* 04695C 7F011E2C AC239724 */ sw $v1, %lo(mp_char_prev_select_player+0x4)($at) /* 046960 7F011E30 3C018007 */ lui $at, %hi(dword_CODE_bss_80069730+0x4) /* 046964 7F011E34 AC209734 */ sw $zero, %lo(dword_CODE_bss_80069730+0x4)($at) -/* 046968 7F011E38 3C018007 */ lui $at, %hi(has_selected_char_player2) -/* 04696C 7F011E3C AC209744 */ sw $zero, %lo(has_selected_char_player2)($at) -/* 046970 7F011E40 3C048003 */ lui $a0, %hi(player_3_char) -/* 046974 7F011E44 8C84B52C */ lw $a0, %lo(player_3_char)($a0) +/* 046968 7F011E38 3C018007 */ lui $at, %hi(player_has_selected_char+0x4) +/* 04696C 7F011E3C AC209744 */ sw $zero, %lo(player_has_selected_char+0x4)($at) +/* 046970 7F011E40 3C048003 */ lui $a0, %hi(player_char+0x08) +/* 046974 7F011E44 8C84B52C */ lw $a0, %lo(player_char+0x08)($a0) /* 046978 7F011E48 3C018007 */ lui $at, %hi(size_mp_select_image_player2) /* 04697C 7F011E4C AC209754 */ sw $zero, %lo(size_mp_select_image_player2)($at) /* 046980 7F011E50 3C018007 */ lui $at, %hi(mp_char_cur_select_player+0x8) @@ -11655,10 +11425,10 @@ glabel init_menu0f_mpcharsel /* 04698C 7F011E5C AC249728 */ sw $a0, %lo(mp_char_prev_select_player+0x8)($at) /* 046990 7F011E60 3C018007 */ lui $at, %hi(dword_CODE_bss_80069730+0x8) /* 046994 7F011E64 AC209738 */ sw $zero, %lo(dword_CODE_bss_80069730+0x8)($at) -/* 046998 7F011E68 3C018007 */ lui $at, %hi(has_selected_char_player3) -/* 04699C 7F011E6C AC209748 */ sw $zero, %lo(has_selected_char_player3)($at) -/* 0469A0 7F011E70 3C058003 */ lui $a1, %hi(player_4_char) -/* 0469A4 7F011E74 8CA5B530 */ lw $a1, %lo(player_4_char)($a1) +/* 046998 7F011E68 3C018007 */ lui $at, %hi(player_has_selected_char+0x8) +/* 04699C 7F011E6C AC209748 */ sw $zero, %lo(player_has_selected_char+0x8)($at) +/* 0469A0 7F011E70 3C058003 */ lui $a1, %hi(player_char+0x0C) +/* 0469A4 7F011E74 8CA5B530 */ lw $a1, %lo(player_char+0x0C)($a1) /* 0469A8 7F011E78 3C018007 */ lui $at, %hi(size_mp_select_image_player3) /* 0469AC 7F011E7C AC209758 */ sw $zero, %lo(size_mp_select_image_player3)($at) /* 0469B0 7F011E80 3C018007 */ lui $at, %hi(mp_char_cur_select_player+0xc) @@ -11667,8 +11437,8 @@ glabel init_menu0f_mpcharsel /* 0469BC 7F011E8C AC25972C */ sw $a1, %lo(mp_char_prev_select_player+0xC)($at) /* 0469C0 7F011E90 3C018007 */ lui $at, %hi(dword_CODE_bss_80069730+0xC) /* 0469C4 7F011E94 AC20973C */ sw $zero, %lo(dword_CODE_bss_80069730+0xC)($at) -/* 0469C8 7F011E98 3C018007 */ lui $at, %hi(has_selected_char_player4) -/* 0469CC 7F011E9C AC20974C */ sw $zero, %lo(has_selected_char_player4)($at) +/* 0469C8 7F011E98 3C018007 */ lui $at, %hi(player_has_selected_char+0xC) +/* 0469CC 7F011E9C AC20974C */ sw $zero, %lo(player_has_selected_char+0xC)($at) /* 0469D0 7F011EA0 3C018007 */ lui $at, %hi(size_mp_select_image_player4) /* 0469D4 7F011EA4 0FC02E2B */ jal load_walletbond /* 0469D8 7F011EA8 AC20975C */ sw $zero, %lo(size_mp_select_image_player4)($at) @@ -11684,7 +11454,9 @@ glabel init_menu0f_mpcharsel #endif - +//******************************************************************************************************** +//MULTIPLAYER CHARACTER SELECT +//******************************************************************************************************** void update_menu0F_mpcharsel(void) { return; } @@ -11826,9 +11598,9 @@ LAB_7f012164: pBVar11 = pBVar11 + 1; } while (iVar13 != iVar4); } - disable_all_switches((int)ptr_folder_object_instance); - set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0,1); - set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0x2a,1); + disable_all_switches((int)walletinst[0]); + set_item_visibility_in_objinstance((int)walletinst[0],0,1); + set_item_visibility_in_objinstance((int)walletinst[0],0x2a,1); menu_control_stick_tracking(); if (iStack12 == iVar4) { set_menu_to_mode(MENU_MP_OPTIONS,0); @@ -11876,7 +11648,7 @@ glabel interface_menu0F_mpcharsel /* 046A74 7F011F44 0000B025 */ move $s6, $zero /* 046A78 7F011F48 00009825 */ move $s3, $zero /* 046A7C 7F011F4C 19C000B6 */ blez $t6, .L7F012228 -/* 046A80 7F011F50 3C148007 */ lui $s4, %hi(has_selected_char_player1) +/* 046A80 7F011F50 3C148007 */ lui $s4, %hi(player_has_selected_char) /* 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) @@ -11887,7 +11659,7 @@ glabel interface_menu0F_mpcharsel /* 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 -/* 046AAC 7F011F7C 26949740 */ addiu $s4, %lo(has_selected_char_player1) # addiu $s4, $s4, -0x68c0 +/* 046AAC 7F011F7C 26949740 */ addiu $s4, %lo(player_has_selected_char) # addiu $s4, $s4, -0x68c0 .L7F011F80: /* 046AB0 7F011F80 8E8F0000 */ lw $t7, ($s4) /* 046AB4 7F011F84 00162600 */ sll $a0, $s6, 0x18 @@ -11967,12 +11739,12 @@ glabel interface_menu0F_mpcharsel /* 046BC8 7F012098 0FC046F6 */ jal get_players_who_have_selected_mp_char /* 046BCC 7F01209C 8E240000 */ lw $a0, ($s1) /* 046BD0 7F0120A0 14400030 */ bnez $v0, .L7F012164 -/* 046BD4 7F0120A4 3C018003 */ lui $at, %hi(player_1_char) +/* 046BD4 7F0120A4 3C018003 */ lui $at, %hi(player_char) /* 046BD8 7F0120A8 8E290000 */ lw $t1, ($s1) /* 046BDC 7F0120AC 00330821 */ addu $at, $at, $s3 /* 046BE0 7F0120B0 24020001 */ li $v0, 1 /* 046BE4 7F0120B4 02F35021 */ addu $t2, $s7, $s3 -/* 046BE8 7F0120B8 AC29B524 */ sw $t1, %lo(player_1_char)($at) +/* 046BE8 7F0120B8 AC29B524 */ sw $t1, %lo(player_char)($at) /* 046BEC 7F0120BC AD420000 */ sw $v0, ($t2) /* 046BF0 7F0120C0 AE820000 */ sw $v0, ($s4) /* 046BF4 7F0120C4 8FC40000 */ lw $a0, ($fp) @@ -12073,8 +11845,8 @@ glabel interface_menu0F_mpcharsel /* 046D50 7F012220 16CBFF57 */ bne $s6, $t3, .L7F011F80 /* 046D54 7F012224 26520004 */ addiu $s2, $s2, 4 .L7F012228: -/* 046D58 7F012228 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) -/* 046D5C 7F01222C 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 046D58 7F012228 3C108003 */ lui $s0, %hi(walletinst) +/* 046D5C 7F01222C 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 046D60 7F012230 0FC02DC9 */ jal disable_all_switches /* 046D64 7F012234 8E040000 */ lw $a0, ($s0) /* 046D68 7F012238 8E040000 */ lw $a0, ($s0) @@ -12110,68 +11882,25 @@ glabel interface_menu0F_mpcharsel #endif - -#ifdef NONMATCHING s32 sub_GAME_7F0122A8(s32 arg0, s32 arg1, s32 arg2) { - if (arg1 >= arg0) - { - return 0; - } - if (arg0 >= arg2) + if ((arg1 >= arg0) || (arg0 >= arg2)) { return 0; } + if (arg0 < (arg1 + 0x28)) { - return 0xf - ((arg1 - arg0) * 6); + return 0xF - ((arg1 - arg0) * 6); } - if ((arg2 + -0x28) < arg0) - { - return 0xf - ((arg0 - arg2) * 6); - } - return 0xff; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0122A8 -/* 046DD8 7F0122A8 00A4082A */ slt $at, $a1, $a0 -/* 046DDC 7F0122AC 10200003 */ beqz $at, .L7F0122BC -/* 046DE0 7F0122B0 0086082A */ slt $at, $a0, $a2 -/* 046DE4 7F0122B4 14200003 */ bnez $at, .L7F0122C4 -/* 046DE8 7F0122B8 24AE0028 */ addiu $t6, $a1, 0x28 -.L7F0122BC: -/* 046DEC 7F0122BC 03E00008 */ jr $ra -/* 046DF0 7F0122C0 00001025 */ move $v0, $zero -.L7F0122C4: -/* 046DF4 7F0122C4 008E082A */ slt $at, $a0, $t6 -/* 046DF8 7F0122C8 10200008 */ beqz $at, .L7F0122EC -/* 046DFC 7F0122CC 24C8FFD8 */ addiu $t0, $a2, -0x28 -/* 046E00 7F0122D0 00A47823 */ subu $t7, $a1, $a0 -/* 046E04 7F0122D4 000FC080 */ sll $t8, $t7, 2 -/* 046E08 7F0122D8 030FC023 */ subu $t8, $t8, $t7 -/* 046E0C 7F0122DC 0018C040 */ sll $t8, $t8, 1 -/* 046E10 7F0122E0 2419000F */ li $t9, 15 -/* 046E14 7F0122E4 03E00008 */ jr $ra -/* 046E18 7F0122E8 03381023 */ subu $v0, $t9, $t8 -.L7F0122EC: -/* 046E1C 7F0122EC 0104082A */ slt $at, $t0, $a0 -/* 046E20 7F0122F0 10200008 */ beqz $at, .L7F012314 -/* 046E24 7F0122F4 240200FF */ li $v0, 255 -/* 046E28 7F0122F8 00864823 */ subu $t1, $a0, $a2 -/* 046E2C 7F0122FC 00095080 */ sll $t2, $t1, 2 -/* 046E30 7F012300 01495023 */ subu $t2, $t2, $t1 -/* 046E34 7F012304 000A5040 */ sll $t2, $t2, 1 -/* 046E38 7F012308 240B000F */ li $t3, 15 -/* 046E3C 7F01230C 03E00008 */ jr $ra -/* 046E40 7F012310 016A1023 */ subu $v0, $t3, $t2 -.L7F012314: -/* 046E44 7F012314 03E00008 */ jr $ra -/* 046E48 7F012318 00000000 */ nop -) -#endif + if ((arg2 - 0x28) < arg0) + { + return 0xF - ((arg0 - arg2) * 6); + } + + return 0xFF; +} #ifdef NONMATCHING @@ -12923,7 +12652,7 @@ glabel constructor_menu0F_mpcharsel /* 047388 7F012858 8FA800E4 */ lw $t0, 0xe4($sp) .L7F01285C: /* 04738C 7F01285C 19000165 */ blez $t0, .L7F012DF4 -/* 047390 7F012860 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 047390 7F012860 3C098007 */ lui $t1, %hi(player_has_selected_char) /* 047394 7F012864 3C0A8007 */ lui $t2, %hi(mp_char_cur_select_player) /* 047398 7F012868 3C0B8007 */ lui $t3, %hi(dword_CODE_bss_80069730) /* 04739C 7F01286C 3C0C8007 */ lui $t4, %hi(mp_char_prev_select_player) @@ -12931,7 +12660,7 @@ glabel constructor_menu0F_mpcharsel /* 0473A4 7F012874 258C9720 */ addiu $t4, %lo(mp_char_prev_select_player) # addiu $t4, $t4, -0x68e0 /* 0473A8 7F012878 256B9730 */ addiu $t3, %lo(dword_CODE_bss_80069730) # addiu $t3, $t3, -0x68d0 /* 0473AC 7F01287C 254A9710 */ addiu $t2, %lo(mp_char_cur_select_player) # addiu $t2, $t2, -0x68f0 -/* 0473B0 7F012880 25299740 */ addiu $t1, %lo(has_selected_char_player1) # addiu $t1, $t1, -0x68c0 +/* 0473B0 7F012880 25299740 */ addiu $t1, %lo(player_has_selected_char) # addiu $t1, $t1, -0x68c0 /* 0473B4 7F012884 3C1E8007 */ lui $fp, %hi(size_mp_select_image_player1) /* 0473B8 7F012888 4481A000 */ mtc1 $at, $f20 /* 0473BC 7F01288C 27DE9750 */ addiu $fp, %lo(size_mp_select_image_player1) # addiu $fp, $fp, -0x68b0 @@ -13318,24 +13047,23 @@ glabel constructor_menu0F_mpcharsel #endif - +//******************************************************************************************************** +//MULTIPLAYER HANDICAP +//******************************************************************************************************** void init_menu10_mphandicap(void) { - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; - has_selected_char_player1 = FALSE; - dword_CODE_bss_80069760 = 0; - has_selected_char_player2 = FALSE; - dword_CODE_bss_80069764 = 0; - has_selected_char_player3 = FALSE; - dword_CODE_bss_80069768 = 0; - has_selected_char_player4 = FALSE; - dword_CODE_bss_8006976C = 0; - load_walletbond(); + s32 i = 0; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; + for (i = 0; i < MAX_PLAYER_COUNT; i++) { + player_has_selected_char[i] = FALSE; + dword_CODE_bss_80069760[i] = 0; + } + load_walletbond(); } void update_menu10_mphandicap(void) { @@ -13387,7 +13115,7 @@ loop_2: temp_t9 = (s32) (phi_s3 << 0x18) >> 0x18; if (*phi_s1 == 0) { - temp_s2 = phi_s4 + &handicap_player1; + temp_s2 = phi_s4 + &player_handicap; 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)) @@ -13415,7 +13143,7 @@ block_15: } else { - temp_v0_2 = &handicap_player1 + phi_s4; + temp_v0_2 = &player_handicap + phi_s4; if (*temp_v0_2 < 0xa) { goto block_15; @@ -13425,7 +13153,7 @@ block_15: } else { - temp_v0 = &handicap_player1 + phi_s4; + temp_v0 = &player_handicap + phi_s4; if (*temp_v0 > 0) { goto block_10; @@ -13455,9 +13183,9 @@ block_15: goto loop_2; } } - 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, 0x2a, 1); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, 1); + set_item_visibility_in_objinstance(walletinst[0], 0x2a, 1); menu_control_stick_tracking(); if (phi_fp == sp44) { @@ -13505,12 +13233,12 @@ glabel interface_menu10_mphandicap /* 047A64 7F012F34 00009825 */ move $s3, $zero /* 047A68 7F012F38 0000A025 */ move $s4, $zero /* 047A6C 7F012F3C 19C0006F */ blez $t6, .L7F0130FC -/* 047A70 7F012F40 3C118007 */ lui $s1, %hi(has_selected_char_player1) -/* 047A74 7F012F44 3C168007 */ lui $s6, %hi(handicap_player1) +/* 047A70 7F012F40 3C118007 */ lui $s1, %hi(player_has_selected_char) +/* 047A74 7F012F44 3C168007 */ lui $s6, %hi(player_handicap) /* 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 +/* 047A80 7F012F50 26D697A8 */ addiu $s6, %lo(player_handicap) # addiu $s6, $s6, -0x6858 +/* 047A84 7F012F54 26319740 */ addiu $s1, %lo(player_has_selected_char) # addiu $s1, $s1, -0x68c0 /* 047A88 7F012F58 24170001 */ li $s7, 1 .L7F012F5C: /* 047A8C 7F012F5C 8E2F0000 */ lw $t7, ($s1) @@ -13628,8 +13356,8 @@ glabel interface_menu10_mphandicap /* 047C24 7F0130F4 166AFF99 */ bne $s3, $t2, .L7F012F5C /* 047C28 7F0130F8 26310004 */ addiu $s1, $s1, 4 .L7F0130FC: -/* 047C2C 7F0130FC 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) -/* 047C30 7F013100 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 047C2C 7F0130FC 3C108003 */ lui $s0, %hi(walletinst) +/* 047C30 7F013100 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 047C34 7F013104 0FC02DC9 */ jal disable_all_switches /* 047C38 7F013108 8E040000 */ lw $a0, ($s0) /* 047C3C 7F01310C 8E040000 */ lw $a0, ($s0) @@ -13712,7 +13440,7 @@ void constructor_menu10_mphandicap(s32 arg0) if (spCC > 0) { sp74 = &has_selected_char_player1; - sp70 = &handicap_player1; + sp70 = &player_handicap; phi_s6 = 0; loop_4: if (spCC == 2) @@ -13841,11 +13569,11 @@ glabel constructor_menu10_mphandicap .L7F013244: /* 047D74 7F013244 190000BC */ blez $t0, .L7F013538 /* 047D78 7F013248 0000B025 */ move $s6, $zero -/* 047D7C 7F01324C 3C098007 */ lui $t1, %hi(has_selected_char_player1) -/* 047D80 7F013250 3C0A8007 */ lui $t2, %hi(handicap_player1) +/* 047D7C 7F01324C 3C098007 */ lui $t1, %hi(player_has_selected_char) +/* 047D80 7F013250 3C0A8007 */ lui $t2, %hi(player_handicap) /* 047D84 7F013254 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 047D88 7F013258 254A97A8 */ addiu $t2, %lo(handicap_player1) # addiu $t2, $t2, -0x6858 -/* 047D8C 7F01325C 25299740 */ addiu $t1, %lo(has_selected_char_player1) # addiu $t1, $t1, -0x68c0 +/* 047D88 7F013258 254A97A8 */ addiu $t2, %lo(player_handicap) # addiu $t2, $t2, -0x6858 +/* 047D8C 7F01325C 25299740 */ addiu $t1, %lo(player_has_selected_char) # addiu $t1, $t1, -0x68c0 /* 047D90 7F013260 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) /* 047D94 7F013264 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) /* 047D98 7F013268 4481A000 */ mtc1 $at, $f20 @@ -14057,24 +13785,25 @@ glabel constructor_menu10_mphandicap #endif - +//******************************************************************************************************** +//MULTIPLAYER CONTROL OPTIONS +//******************************************************************************************************** void init_menu11_mpcontrol(void) { - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; - has_selected_char_player1 = FALSE; - dword_CODE_bss_80069760 = 0; - has_selected_char_player2 = FALSE; - dword_CODE_bss_80069764 = 0; - has_selected_char_player3 = FALSE; - dword_CODE_bss_80069768 = 0; - has_selected_char_player4 = FALSE; - dword_CODE_bss_8006976C = 0; - load_walletbond(); + s32 i; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; + + for (i = 0; i < MAX_PLAYER_COUNT; i++) { + player_has_selected_char[i] = FALSE; + dword_CODE_bss_80069760[i] = 0; + } + + load_walletbond(); } void update_menu11_mpcontrols(void) { @@ -14124,7 +13853,7 @@ loop_2: temp_t8 = (s32) (phi_s1 << 0x18) >> 0x18; if (*phi_s2 == 0) { - temp_s4 = phi_s5 + &handicap_player1; + temp_s4 = phi_s5 + &player_handicap; 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)) @@ -14245,9 +13974,9 @@ block_31: goto loop_2; } } - 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, 0x2a, 1); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, 1); + set_item_visibility_in_objinstance(walletinst[0], 0x2a, 1); menu_control_stick_tracking(); if (sp44 == temp_s6) { @@ -14295,10 +14024,10 @@ glabel interface_menu11_mpcontrols /* 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) +/* 0481AC 7F01367C 3C128007 */ lui $s2, %hi(player_has_selected_char) /* 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 +/* 0481B8 7F013688 26529740 */ addiu $s2, %lo(player_has_selected_char) # addiu $s2, $s2, -0x68c0 /* 0481BC 7F01368C 0000A825 */ move $s5, $zero /* 0481C0 7F013690 241E0001 */ li $fp, 1 /* 0481C4 7F013694 24170002 */ li $s7, 2 @@ -14475,8 +14204,8 @@ glabel interface_menu11_mpcontrols /* 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 +/* 048430 7F013900 3C108003 */ lui $s0, %hi(walletinst) +/* 048434 7F013904 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 048438 7F013908 0FC02DC9 */ jal disable_all_switches /* 04843C 7F01390C 8E040000 */ lw $a0, ($s0) /* 048440 7F013910 8E040000 */ lw $a0, ($s0) @@ -14549,10 +14278,10 @@ glabel interface_menu11_mpcontrols /* 048220 7F0136B0 00002025 */ move $a0, $zero /* 048224 7F0136B4 1AE000BE */ blez $s7, .L7F0139B0 /* 048228 7F0136B8 00009025 */ move $s2, $zero -/* 04822C 7F0136BC 3C138007 */ lui $s3, %hi(has_selected_char_player1) # $s3, 0x8007 +/* 04822C 7F0136BC 3C138007 */ lui $s3, %hi(player_has_selected_char) # $s3, 0x8007 /* 048230 7F0136C0 3C108007 */ lui $s0, %hi(controlstyle_player) # $s0, 0x8007 /* 048234 7F0136C4 261097F8 */ addiu $s0, %lo(controlstyle_player) # addiu $s0, $s0, -0x6808 -/* 048238 7F0136C8 26739780 */ addiu $s3, %lo(has_selected_char_player1) # addiu $s3, $s3, -0x6880 +/* 048238 7F0136C8 26739780 */ addiu $s3, %lo(player_has_selected_char) # addiu $s3, $s3, -0x6880 /* 04823C 7F0136CC 0000B025 */ move $s6, $zero /* 048240 7F0136D0 241E0002 */ li $fp, 2 /* 048244 7F0136D4 24140004 */ li $s4, 4 @@ -14761,8 +14490,8 @@ glabel interface_menu11_mpcontrols /* 048518 7F0139A8 1657FF4B */ bne $s2, $s7, .L7F0136D8 /* 04851C 7F0139AC 26730004 */ addiu $s3, $s3, 4 .L7F0139B0: -/* 048520 7F0139B0 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) # $s0, 0x8003 -/* 048524 7F0139B4 2610A99C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x5664 +/* 048520 7F0139B0 3C108003 */ lui $s0, %hi(walletinst) # $s0, 0x8003 +/* 048524 7F0139B4 2610A99C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x5664 /* 048528 7F0139B8 0FC02DD1 */ jal disable_all_switches /* 04852C 7F0139BC 8E040000 */ lw $a0, ($s0) /* 048530 7F0139C0 8E040000 */ lw $a0, ($s0) @@ -14835,10 +14564,10 @@ glabel interface_menu11_mpcontrols /* 048220 7F0136B0 00002025 */ move $a0, $zero /* 048224 7F0136B4 1AE000BE */ blez $s7, .L7F0139B0 /* 048228 7F0136B8 00009025 */ move $s2, $zero -/* 04822C 7F0136BC 3C138007 */ lui $s3, %hi(has_selected_char_player1) # $s3, 0x8007 +/* 04822C 7F0136BC 3C138007 */ lui $s3, %hi(player_has_selected_char) # $s3, 0x8007 /* 048230 7F0136C0 3C108007 */ lui $s0, %hi(controlstyle_player) # $s0, 0x8007 /* 048234 7F0136C4 261097F8 */ addiu $s0, %lo(controlstyle_player) # addiu $s0, $s0, -0x6808 -/* 048238 7F0136C8 26739780 */ addiu $s3, %lo(has_selected_char_player1) # addiu $s3, $s3, -0x6880 +/* 048238 7F0136C8 26739780 */ addiu $s3, %lo(player_has_selected_char) # addiu $s3, $s3, -0x6880 /* 04823C 7F0136CC 0000B025 */ move $s6, $zero /* 048240 7F0136D0 241E0002 */ li $fp, 2 /* 048244 7F0136D4 24140004 */ li $s4, 4 @@ -15047,8 +14776,8 @@ glabel interface_menu11_mpcontrols /* 048518 7F0139A8 1657FF4B */ bne $s2, $s7, .L7F0136D8 /* 04851C 7F0139AC 26730004 */ addiu $s3, $s3, 4 .L7F0139B0: -/* 048520 7F0139B0 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) # $s0, 0x8003 -/* 048524 7F0139B4 2610A99C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x5664 +/* 048520 7F0139B0 3C108003 */ lui $s0, %hi(walletinst) # $s0, 0x8003 +/* 048524 7F0139B4 2610A99C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x5664 /* 048528 7F0139B8 0FC02DD1 */ jal disable_all_switches /* 04852C 7F0139BC 8E040000 */ lw $a0, ($s0) /* 048530 7F0139C0 8E040000 */ lw $a0, ($s0) @@ -15262,11 +14991,11 @@ glabel constructor_menu11_mpcontrol .L7F013A48: /* 048578 7F013A48 190000BC */ blez $t0, .L7F013D3C /* 04857C 7F013A4C 0000B025 */ move $s6, $zero -/* 048580 7F013A50 3C098007 */ lui $t1, %hi(has_selected_char_player1) +/* 048580 7F013A50 3C098007 */ lui $t1, %hi(player_has_selected_char) /* 048584 7F013A54 3C0A8007 */ lui $t2, %hi(controlstyle_player) /* 048588 7F013A58 3C014080 */ li $at, 0x40800000 # 4.000000 /* 04858C 7F013A5C 254A97B8 */ addiu $t2, %lo(controlstyle_player) # addiu $t2, $t2, -0x6848 -/* 048590 7F013A60 25299740 */ addiu $t1, %lo(has_selected_char_player1) # addiu $t1, $t1, -0x68c0 +/* 048590 7F013A60 25299740 */ addiu $t1, %lo(player_has_selected_char) # addiu $t1, $t1, -0x68c0 /* 048594 7F013A64 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) /* 048598 7F013A68 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) /* 04859C 7F013A6C 4481A000 */ mtc1 $at, $f20 @@ -15478,15 +15207,17 @@ glabel constructor_menu11_mpcontrol #endif - +//******************************************************************************************************** +//MULTIPLAYER STAGE SELECT +//******************************************************************************************************** void init_menu12_mpstage(void) { - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; current_mp_stage_highlighted = MP_STAGE_RANDOM; load_walletbond(); } @@ -15508,12 +15239,12 @@ void interface_menu12_mpstage(void) viSetUseZBuf(FALSE); if (joyGetButtons(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON) == 0) { - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; } else { @@ -15555,15 +15286,15 @@ void interface_menu12_mpstage(void) } if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON)) { - if (tab_3_highlight) + if (tab_prev_highlight) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } else { - if (current_mp_stage_highlighted >= 0) + if (current_mp_stage_highlighted >= MP_STAGE_RANDOM) { - tab_2_selected = TRUE; + tab_next_selected = TRUE; MP_stage_selected = current_mp_stage_highlighted; } } @@ -15571,20 +15302,20 @@ void interface_menu12_mpstage(void) } else if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x2A, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x3, TRUE); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0x0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 0x2A, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 0x3, TRUE); menu_control_stick_tracking(); - if (tab_2_selected) + if (tab_next_selected) { set_menu_to_mode(MENU_MP_OPTIONS, 0); return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_MP_OPTIONS, 0); } @@ -16288,14 +16019,17 @@ MPSCENARIOS get_scenario(void) return scenario; } +//******************************************************************************************************** +//MULTIPLAYER SCENARIO SELECT +//******************************************************************************************************** void init_menu13_mpscenariosel(void) { - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; load_walletbond(); } @@ -16327,13 +16061,13 @@ void interface_menu13_mpscenario(void) if (joyGetButtons(PLAYER_1, Z_TRIG|A_BUTTON) == 0) { - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; dword_CODE_bss_80069780 = SCENARIO_NORMAL; } else @@ -16354,9 +16088,9 @@ void interface_menu13_mpscenario(void) if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON)) { - if (tab_3_highlight) + if (tab_prev_highlight) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } else { @@ -16369,28 +16103,28 @@ void interface_menu13_mpscenario(void) else { reset_mp_options_for_scenario(scenarioid); - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } } sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } else if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, TRUE); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 6, TRUE); menu_control_stick_tracking(); if (isTeam) { set_menu_to_mode(MENU_MP_TEAMS, 0); return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_MP_OPTIONS, 0); } @@ -16428,18 +16162,18 @@ glabel interface_menu13_mpscenario /* 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) -/* 049348 7F014818 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) -/* 04934C 7F01481C 3C018003 */ lui $at, %hi(tab_2_highlight) -/* 049350 7F014820 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) -/* 049354 7F014824 3C018003 */ lui $at, %hi(tab_1_highlight) +/* 049344 7F014814 3C018003 */ lui $at, %hi(tab_prev_highlight) +/* 049348 7F014818 AC20A8E4 */ sw $zero, %lo(tab_prev_highlight)($at) +/* 04934C 7F01481C 3C018003 */ lui $at, %hi(tab_next_highlight) +/* 049350 7F014820 AC20A8E0 */ sw $zero, %lo(tab_next_highlight)($at) +/* 049354 7F014824 3C018003 */ lui $at, %hi(tab_start_highlight) /* 049358 7F014828 0FC028E7 */ jal isontab3 -/* 04935C 7F01482C AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04935C 7F01482C AC20A8DC */ sw $zero, %lo(tab_start_highlight)($at) /* 049360 7F014830 10400007 */ beqz $v0, .L7F014850 /* 049364 7F014834 240F0001 */ li $t7, 1 /* 049368 7F014838 240E0001 */ li $t6, 1 -/* 04936C 7F01483C 3C018003 */ lui $at, %hi(tab_3_highlight) -/* 049370 7F014840 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +/* 04936C 7F01483C 3C018003 */ lui $at, %hi(tab_prev_highlight) +/* 049370 7F014840 AC2EA8E4 */ sw $t6, %lo(tab_prev_highlight)($at) /* 049374 7F014844 3C018007 */ lui $at, %hi(dword_CODE_bss_80069780) /* 049378 7F014848 10000022 */ b .L7F0148D4 /* 04937C 7F01484C AC209780 */ sw $zero, %lo(dword_CODE_bss_80069780)($at) @@ -16486,14 +16220,14 @@ glabel interface_menu13_mpscenario /* 04940C 7F0148DC 3405B000 */ li $a1, 45056 /* 049410 7F0148E0 10400023 */ beqz $v0, .L7F014970 /* 049414 7F0148E4 00002025 */ move $a0, $zero -/* 049418 7F0148E8 3C0D8003 */ lui $t5, %hi(tab_3_highlight) -/* 04941C 7F0148EC 8DADA8E4 */ lw $t5, %lo(tab_3_highlight)($t5) +/* 049418 7F0148E8 3C0D8003 */ lui $t5, %hi(tab_prev_highlight) +/* 04941C 7F0148EC 8DADA8E4 */ lw $t5, %lo(tab_prev_highlight)($t5) /* 049420 7F0148F0 240E0001 */ li $t6, 1 -/* 049424 7F0148F4 3C018003 */ lui $at, %hi(tab_3_selected) +/* 049424 7F0148F4 3C018003 */ lui $at, %hi(tab_prev_selected) /* 049428 7F0148F8 11A00003 */ beqz $t5, .L7F014908 /* 04942C 7F0148FC 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069780) /* 049430 7F014900 10000014 */ b .L7F014954 -/* 049434 7F014904 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +/* 049434 7F014904 AC2EA8D8 */ sw $t6, %lo(tab_prev_selected)($at) .L7F014908: /* 049438 7F014908 8C849780 */ lw $a0, %lo(dword_CODE_bss_80069780)($a0) /* 04943C 7F01490C 24010005 */ li $at, 5 @@ -16514,8 +16248,8 @@ glabel interface_menu13_mpscenario /* 049470 7F014940 0FC0411A */ jal reset_mp_options_for_scenario /* 049474 7F014944 00000000 */ nop /* 049478 7F014948 24180001 */ li $t8, 1 -/* 04947C 7F01494C 3C018003 */ lui $at, %hi(tab_3_selected) -/* 049480 7F014950 AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) +/* 04947C 7F01494C 3C018003 */ lui $at, %hi(tab_prev_selected) +/* 049480 7F014950 AC38A8D8 */ sw $t8, %lo(tab_prev_selected)($at) .L7F014954: /* 049484 7F014954 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 049488 7F014958 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) @@ -16529,16 +16263,16 @@ glabel interface_menu13_mpscenario /* 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) +/* 0494B0 7F014980 3C018003 */ lui $at, %hi(tab_prev_selected) /* 0494B4 7F014984 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) -/* 0494B8 7F014988 AC39A8D8 */ sw $t9, %lo(tab_3_selected)($at) +/* 0494B8 7F014988 AC39A8D8 */ sw $t9, %lo(tab_prev_selected)($at) /* 0494BC 7F01498C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0494C0 7F014990 240500C7 */ li $a1, 199 /* 0494C4 7F014994 0C002382 */ jal sndPlaySfx /* 0494C8 7F014998 00003025 */ move $a2, $zero .L7F01499C: -/* 0494CC 7F01499C 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) -/* 0494D0 7F0149A0 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 0494CC 7F01499C 3C108003 */ lui $s0, %hi(walletinst) +/* 0494D0 7F0149A0 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 0494D4 7F0149A4 0FC02DC9 */ jal disable_all_switches /* 0494D8 7F0149A8 8E040000 */ lw $a0, ($s0) /* 0494DC 7F0149AC 8E040000 */ lw $a0, ($s0) @@ -16561,7 +16295,7 @@ glabel interface_menu13_mpscenario /* 049520 7F0149F0 00000000 */ nop /* 049524 7F0149F4 8FA8002C */ lw $t0, 0x2c($sp) /* 049528 7F0149F8 24040014 */ li $a0, 20 -/* 04952C 7F0149FC 3C098003 */ lui $t1, %hi(tab_3_selected) +/* 04952C 7F0149FC 3C098003 */ lui $t1, %hi(tab_prev_selected) /* 049530 7F014A00 11000005 */ beqz $t0, .L7F014A18 /* 049534 7F014A04 00000000 */ nop /* 049538 7F014A08 0FC06975 */ jal set_menu_to_mode @@ -16569,7 +16303,7 @@ glabel interface_menu13_mpscenario /* 049540 7F014A10 10000008 */ b .L7F014A34 /* 049544 7F014A14 8FBF0024 */ lw $ra, 0x24($sp) .L7F014A18: -/* 049548 7F014A18 8D29A8D8 */ lw $t1, %lo(tab_3_selected)($t1) +/* 049548 7F014A18 8D29A8D8 */ lw $t1, %lo(tab_prev_selected)($t1) /* 04954C 7F014A1C 2404000E */ li $a0, 14 /* 049550 7F014A20 51200004 */ beql $t1, $zero, .L7F014A34 /* 049554 7F014A24 8FBF0024 */ lw $ra, 0x24($sp) @@ -16950,62 +16684,30 @@ glabel constructor_menu13_mpscenario -#ifdef NONMATCHING + s32 get_players_team_or_scenario_item_flag(int player) { - return (s32)(u8)g_playerPlayerData[player].have_token_or_goldengun; + return g_playerPlayerData[player].have_token_or_goldengun; } -#else -GLOBAL_ASM( -.text -glabel get_players_team_or_scenario_item_flag -/* 0497B8 7F014C88 000470C0 */ sll $t6, $a0, 3 -/* 0497BC 7F014C8C 01C47023 */ subu $t6, $t6, $a0 -/* 0497C0 7F014C90 000E7100 */ sll $t6, $t6, 4 -/* 0497C4 7F014C94 3C028008 */ lui $v0, %hi(g_playerPlayerData+105) -/* 0497C8 7F014C98 004E1021 */ addu $v0, $v0, $t6 -/* 0497CC 7F014C9C 03E00008 */ jr $ra -/* 0497D0 7F014CA0 90429F59 */ lbu $v0, %lo(g_playerPlayerData+105)($v0) -) -#endif - - - - - -#ifdef NONMATCHING -void set_players_team_or_scenario_item_flag(int player,char flag) +void set_players_team_or_scenario_item_flag(int player,s32 flag) { g_playerPlayerData[player].have_token_or_goldengun = flag; } -#else -GLOBAL_ASM( -.text -glabel set_players_team_or_scenario_item_flag -/* 0497D4 7F014CA4 000470C0 */ sll $t6, $a0, 3 -/* 0497D8 7F014CA8 01C47023 */ subu $t6, $t6, $a0 -/* 0497DC 7F014CAC 000E7100 */ sll $t6, $t6, 4 -/* 0497E0 7F014CB0 3C018008 */ lui $at, %hi(g_playerPlayerData+105) -/* 0497E4 7F014CB4 002E0821 */ addu $at, $at, $t6 -/* 0497E8 7F014CB8 03E00008 */ jr $ra -/* 0497EC 7F014CBC A0259F59 */ sb $a1, %lo(g_playerPlayerData+105)($at) -) -#endif - - - +//******************************************************************************************************** +//MULTIPLAYER TEAM SELECT +//******************************************************************************************************** void init_menu14_mpteamsel(void) { - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; if (scenario == SCENARIO_2v1) { teamsize = 2; } @@ -17128,9 +16830,9 @@ void interface_menu14_mpteams(void) } } } - 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, 0x2a, 1); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, 1); + set_item_visibility_in_objinstance(walletinst[0], 0x2a, 1); menu_control_stick_tracking(); phi_s0 = 0; if (joyGetButtonsPressedThisFrame(PLAYER_1, 0xb000) != 0) @@ -17379,8 +17081,8 @@ glabel interface_menu14_mpteams /* 049B64 7F015034 0C002382 */ jal sndPlaySfx /* 049B68 7F015038 00003025 */ move $a2, $zero .L7F01503C: -/* 049B6C 7F01503C 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) -/* 049B70 7F015040 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 049B6C 7F01503C 3C108003 */ lui $s0, %hi(walletinst) +/* 049B70 7F015040 2610A95C */ addiu $s0, %lo(walletinst) # addiu $s0, $s0, -0x56a4 /* 049B74 7F015044 3C118007 */ lui $s1, %hi(teamsize) /* 049B78 7F015048 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 /* 049B7C 7F01504C 0FC02DC9 */ jal disable_all_switches @@ -17859,54 +17561,38 @@ glabel constructor_menu14_mpteams -#ifdef NONMATCHING void set_briefing_page(WATCH_BRIEFING_PAGE page) { - current_menu_briefing_page = page; + short new_var; + + // could be a dev typo + if (current_menu_briefing_page = page) + { + // maybe previous code was optimized out + } } -#else -GLOBAL_ASM( -.text -glabel set_briefing_page -/* 04A040 7F015510 3C028003 */ lui $v0, %hi(current_menu_briefing_page) -/* 04A044 7F015514 2442A914 */ addiu $v0, %lo(current_menu_briefing_page) # addiu $v0, $v0, -0x56ec -/* 04A048 7F015518 03E00008 */ jr $ra -/* 04A04C 7F01551C AC440000 */ sw $a0, ($v0) -) -#endif - - - #ifdef NONMATCHING -s32 load_briefing_text_for_stage(void) -{ - s32 sp20; - s32 temp_s0; - s32 temp_v0; - void *phi_v1; - s32 phi_v0; +s32 load_briefing_text_for_stage(void) { + //s32 sp20; + Gfx *temp_s0; + s32 i; + struct BriefingData *pbriefdata; - temp_s0 = ptr_logo_and_walletbond_DL + 0xa000; - ptrbriefingdata = _load_resource_named_to_buffer((0x80030000 + (briefingpage * 0x1c))->unk-5404, 1, temp_s0, 0x200); - sp20 = 0x6de00; - load_briefing_text_bank(get_textbank_number_for_stagenum((0x80030000 + (briefingpage * 0x1c))->unk-5414), temp_s0 + 0x200, sp20); - phi_v1 = ptrbriefingdata; - phi_v0 = 0; -loop_1: - temp_v0 = phi_v0 + 4; - if (phi_v1->unk8 != 0) + temp_s0 = ptr_logo_and_walletbond_DL + 0xA000; + ptrbriefingdata = _load_resource_named_to_buffer(mission_folder_setup_entries[briefingpage].briefing_name_ptr, 1, temp_s0, 0x200); + //sp20 = 0x6DE00; + load_briefing_text_bank(get_textbank_number_for_stagenum(mission_folder_setup_entries[briefingpage].stage_id, temp_s0 + 0x200, 0x6DE00)); + pbriefdata = ptrbriefingdata; + for(i = 0; i!= 0x28;i++) { - phi_v1 = phi_v1 + 4; - phi_v0 = temp_v0; - if (temp_v0 != 0x28) - { - goto loop_1; + if (pbriefdata[i].datas[0] != 0) { + break; } } - return temp_v0; + return i; } #else GLOBAL_ASM( @@ -17971,11 +17657,13 @@ glabel load_briefing_text_for_stage #endif - +//******************************************************************************************************** +//BRIEFING SCREEN +//******************************************************************************************************** void init_menu0A_briefing(void) { - tab_2_selected = 0; - tab_3_selected = 0; + tab_next_selected = 0; + tab_prev_selected = 0; final_menu_briefing_page = 5; set_briefing_page(0); load_walletbond(); @@ -17998,41 +17686,41 @@ void interface_menu0A_briefing(void) viSetAspect(1.3333334f); viSetZRange(100.0f, 10000.0f); viSetUseZBuf(FALSE); - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; } else if ((isontab2()) && (current_menu_briefing_page < (final_menu_briefing_page - 1))) { - tab_2_highlight = TRUE; + tab_next_highlight = TRUE; } else if (isontab1()) { - tab_1_highlight = TRUE; + tab_start_highlight = TRUE; } else if (current_menu_briefing_page < (final_menu_briefing_page - 1)) { - tab_2_highlight = TRUE; + tab_next_highlight = TRUE; } else { - tab_1_highlight = TRUE; + tab_start_highlight = TRUE; } if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON)) { - tab_2_selected = TRUE; + tab_next_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } else if (joyGetButtonsPressedThisFrame(PLAYER_1, Z_TRIG|A_BUTTON)) { - if (tab_2_highlight) + if (tab_next_highlight) { set_briefing_page(current_menu_briefing_page + 1); } - else if (tab_3_highlight) + else if (tab_prev_highlight) { if (current_menu_briefing_page > BRIEFING_TITLE) { @@ -18040,12 +17728,12 @@ void interface_menu0A_briefing(void) } else { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } } - else if (tab_1_highlight) + else if (tab_start_highlight) { - tab_2_selected = TRUE; + tab_next_selected = TRUE; } sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } @@ -18057,24 +17745,24 @@ void interface_menu0A_briefing(void) } else { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0xC, current_menu_briefing_page == BRIEFING_TITLE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, mission_folder_setup_entries[briefingpage].mission_num + 0x16, current_menu_briefing_page == 0); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, TRUE); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0xC, current_menu_briefing_page == BRIEFING_TITLE); + set_item_visibility_in_objinstance(walletinst[0], mission_folder_setup_entries[briefingpage].mission_num + 0x16, current_menu_briefing_page == 0); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 6, TRUE); menu_control_stick_tracking(); - if (tab_2_selected) + if (tab_next_selected) { set_menu_to_mode(MENU_RUN_STAGE, 1); return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_MISSION_SELECT, 0); set_cursor_to_stage_solo(mission_folder_setup_entries[briefingpage].mission_num); @@ -18943,17 +18631,23 @@ glabel constructor_menu0A_briefing #endif - +//******************************************************************************************************** +//RUN STAGE +//******************************************************************************************************** void init_menu0B_runstage(void) { bossSetLoadedStage(selected_stage); lvlSetSelectedDifficulty(selected_difficulty); } + +//******************************************************************************************************** +//MISSION FAILED +//******************************************************************************************************** void init_menu0C_missionfailed(void) { - tab_2_selected = FALSE; - tab_3_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; load_walletbond(); load_briefing_text_for_stage(); set_cursor_pos_tab2(); @@ -18977,35 +18671,35 @@ void interface_menu0C_missionfailed(void) viSetAspect(1.3333334f); viSetZRange(100.0f, 10000.0f); viSetUseZBuf(FALSE); - tab_2_highlight = FALSE; - tab_3_highlight = FALSE; + tab_next_highlight = FALSE; + tab_prev_highlight = FALSE; if (isontab3()) { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; } else { if (isontab2()) { - tab_2_highlight = TRUE; + tab_next_highlight = TRUE; } else { - tab_2_highlight = TRUE; + tab_next_highlight = TRUE; } } if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON)) { - if (tab_3_highlight) + if (tab_prev_highlight) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } else { - if (tab_2_highlight) + if (tab_next_highlight) { - tab_2_selected = TRUE; + tab_next_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } } @@ -19014,22 +18708,22 @@ void interface_menu0C_missionfailed(void) { if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx(g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, 0); } } - disable_all_switches(ptr_folder_object_instance); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, TRUE); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, TRUE); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 1, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 3, TRUE); + set_item_visibility_in_objinstance(walletinst[0], 6, TRUE); menu_control_stick_tracking(); - if (tab_2_selected) + if (tab_next_selected) { set_menu_to_mode(MENU_MISSION_COMPLETE, 0); return; } - if (tab_3_selected) + if (tab_prev_selected) { set_menu_to_mode(MENU_MISSION_SELECT, 0); set_cursor_to_stage_solo(mission_folder_setup_entries[briefingpage].mission_num); @@ -19134,11 +18828,13 @@ Gfx * constructor_menu0C_missionfailed(Gfx *DL) return DL; } - +//******************************************************************************************************** +//MISSION COMPLETE +//******************************************************************************************************** void init_menu0D_missioncomplete(void) { - tab_2_selected = 0; - tab_3_selected = 0; + tab_next_selected = 0; + tab_prev_selected = 0; load_walletbond(); load_briefing_text_for_stage(); if (g_NewCheatUnlocked) @@ -19165,52 +18861,52 @@ void interface_menu0D_missioncomplete() viSetAspect(1.3333334f); viSetZRange(100.0f, 10000.0f); viSetUseZBuf(0); - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; if (isontab3()) { - tab_3_highlight = 1; + tab_prev_highlight = 1; } else { if (isontab2()) { - tab_2_highlight = 1; + tab_next_highlight = 1; } else { - tab_2_highlight = 1; + tab_next_highlight = 1; } } if (joyGetButtonsPressedThisFrame(PLAYER_1, START_BUTTON|Z_TRIG|A_BUTTON)) { - if (tab_2_highlight) + if (tab_next_highlight) { - tab_2_selected = 1; + tab_next_selected = 1; sndPlaySfx((struct ALBankAlt_s *)g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } - else if (tab_3_highlight != FALSE) + else if (tab_prev_highlight != FALSE) { - tab_3_selected = 1; + tab_prev_selected = 1; sndPlaySfx((struct ALBankAlt_s *)g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } } else if (joyGetButtonsPressedThisFrame(PLAYER_1, B_BUTTON)) { - tab_3_selected = 1; + tab_prev_selected = 1; sndPlaySfx((struct ALBankAlt_s *)g_musicSfxBufferPtr, DOOR_METAL_CLOSE2_SFX, NULL); } - 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); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 3, 1); - set_item_visibility_in_objinstance(ptr_folder_object_instance, 6, 1); + disable_all_switches(walletinst[0]); + set_item_visibility_in_objinstance(walletinst[0], 0, 1); + set_item_visibility_in_objinstance(walletinst[0], 1, 1); + set_item_visibility_in_objinstance(walletinst[0], 3, 1); + set_item_visibility_in_objinstance(walletinst[0], 6, 1); menu_control_stick_tracking(); - if (tab_2_selected) + if (tab_next_selected) { if (frontCompleteAllObjectivesAliveSuccess() && (g_AppendCheatSinglePlayer == 0)) { @@ -19251,7 +18947,7 @@ void interface_menu0D_missioncomplete() set_menu_to_mode(MENU_BRIEFING,0); } } - else if (tab_3_selected != FALSE) + else if (tab_prev_selected != FALSE) { set_menu_to_mode(MENU_MISSION_SELECT,0); set_cursor_to_stage_solo((s32)mission_folder_setup_entries[briefingpage].mission_num); @@ -19495,20 +19191,22 @@ Gfx *constructor_menu0D_missioncomplete(Gfx *DL) - +//******************************************************************************************************** +//CHEAT SCREEN +//******************************************************************************************************** void init_menu15_cheat(void) { int i; - tab_1_selected = FALSE; - tab_2_selected = FALSE; - tab_3_selected = FALSE; - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_start_selected = FALSE; + tab_next_selected = FALSE; + tab_prev_selected = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; totalunlockedcheats = 0x0; - for (i = 1; i != 0x4b; i++) { + for (i = 1; i != CHEAT_INVALID; i++) { if (cheat_available[i]) { arrayUnlockedCheats[totalunlockedcheats] = i; totalunlockedcheats++; @@ -19527,7 +19225,7 @@ void update_menu15_cheat(void) appendsp = FALSE; appendmp = FALSE; - for (i = 1; i != 0x4b; i++) { + for (i = 1; i != CHEAT_INVALID; i++) { if (g_CheatActivated[i]) { appendsp = TRUE; if (cheatCheckIfMPCheat(i)) { @@ -19537,7 +19235,7 @@ void update_menu15_cheat(void) }; g_AppendCheatSinglePlayer = appendsp; - append_cheat_mp = appendmp; + g_AppendCheatMultiPlayer = appendmp; } @@ -19557,9 +19255,9 @@ void interface_menu15_cheat(u32 param_1,u32 param_2) MP_menu_selected_option = 0; iVar1 = dword_8002B5E0; if (joyGetButtons(0,Z_TRIG|A_BUTTON) == 0) { - tab_3_highlight = FALSE; - tab_2_highlight = FALSE; - tab_1_highlight = FALSE; + tab_prev_highlight = FALSE; + tab_next_highlight = FALSE; + tab_start_highlight = FALSE; dword_8002B5E0 = 0; BVar3 = isontab3(); if (BVar3 == FALSE) { @@ -19597,7 +19295,7 @@ void interface_menu15_cheat(u32 param_1,u32 param_2) } } else { - tab_3_highlight = TRUE; + tab_prev_highlight = TRUE; iVar1 = dword_8002B5E0; } } @@ -19606,25 +19304,25 @@ void interface_menu15_cheat(u32 param_1,u32 param_2) if (uVar2 == 0) { uVar2 = joyGetButtonsPressedThisFrame(PLAYER_1,B_BUTTON); if (uVar2 != 0) { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; sndPlaySfx((s32)(int)g_musicSfxBufferPtr,DOOR_METAL_CLOSE2_SFX,NULL); } } else { - if (tab_3_highlight == FALSE) { + if (tab_prev_highlight == FALSE) { MP_menu_selected_option = 1; } else { - tab_3_selected = TRUE; + tab_prev_selected = TRUE; } sndPlaySfx((s32)(int)g_musicSfxBufferPtr,DOOR_METAL_CLOSE2_SFX,NULL); } - disable_all_switches((int)ptr_folder_object_instance); - set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0,1); - set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0x2a,1); - set_item_visibility_in_objinstance((int)ptr_folder_object_instance,6,1); + disable_all_switches((int)walletinst[0]); + set_item_visibility_in_objinstance((int)walletinst[0],0,1); + set_item_visibility_in_objinstance((int)walletinst[0],0x2a,1); + set_item_visibility_in_objinstance((int)walletinst[0],6,1); menu_control_stick_tracking(); - if (tab_3_selected == FALSE) { + if (tab_prev_selected == FALSE) { if (MP_menu_selected_option != 0) { *(char *)((&DAT_800697f0)[dword_8002B5E0] + -0x7ff96960) = 1 - *(char *)((&DAT_800697f0)[dword_8002B5E0] + -0x7ff96960); @@ -19666,21 +19364,21 @@ glabel interface_menu15_cheat /* 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) -/* 04C814 7F017CE4 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) -/* 04C818 7F017CE8 3C018003 */ lui $at, %hi(tab_2_highlight) -/* 04C81C 7F017CEC AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) -/* 04C820 7F017CF0 3C018003 */ lui $at, %hi(tab_1_highlight) -/* 04C824 7F017CF4 AC20A8DC */ sw $zero, %lo(tab_1_highlight)($at) +/* 04C810 7F017CE0 3C018003 */ lui $at, %hi(tab_prev_highlight) +/* 04C814 7F017CE4 AC20A8E4 */ sw $zero, %lo(tab_prev_highlight)($at) +/* 04C818 7F017CE8 3C018003 */ lui $at, %hi(tab_next_highlight) +/* 04C81C 7F017CEC AC20A8E0 */ sw $zero, %lo(tab_next_highlight)($at) +/* 04C820 7F017CF0 3C018003 */ lui $at, %hi(tab_start_highlight) +/* 04C824 7F017CF4 AC20A8DC */ sw $zero, %lo(tab_start_highlight)($at) /* 04C828 7F017CF8 3C018003 */ lui $at, %hi(D_8002B5E0) /* 04C82C 7F017CFC 0FC028E7 */ jal isontab3 /* 04C830 7F017D00 AC20B5E0 */ sw $zero, %lo(D_8002B5E0)($at) /* 04C834 7F017D04 10400005 */ beqz $v0, .L7F017D1C /* 04C838 7F017D08 3C058003 */ lui $a1, %hi(totalunlockedcheats) /* 04C83C 7F017D0C 240E0001 */ li $t6, 1 -/* 04C840 7F017D10 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 04C840 7F017D10 3C018003 */ lui $at, %hi(tab_prev_highlight) /* 04C844 7F017D14 1000003B */ b .L7F017E04 -/* 04C848 7F017D18 AC2EA8E4 */ sw $t6, %lo(tab_3_highlight)($at) +/* 04C848 7F017D18 AC2EA8E4 */ sw $t6, %lo(tab_prev_highlight)($at) .L7F017D1C: /* 04C84C 7F017D1C 8CA5B5DC */ lw $a1, %lo(totalunlockedcheats)($a1) /* 04C850 7F017D20 3C098003 */ lui $t1, %hi(D_8002B5E0) @@ -19753,16 +19451,16 @@ glabel interface_menu15_cheat /* 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) +/* 04C948 7F017E18 3C0B8003 */ lui $t3, %hi(tab_prev_highlight) +/* 04C94C 7F017E1C 8D6BA8E4 */ lw $t3, %lo(tab_prev_highlight)($t3) /* 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 /* 04C960 7F017E30 240C0001 */ li $t4, 1 -/* 04C964 7F017E34 3C018003 */ lui $at, %hi(tab_3_selected) +/* 04C964 7F017E34 3C018003 */ lui $at, %hi(tab_prev_selected) /* 04C968 7F017E38 10000004 */ b .L7F017E4C -/* 04C96C 7F017E3C AC2CA8D8 */ sw $t4, %lo(tab_3_selected)($at) +/* 04C96C 7F017E3C AC2CA8D8 */ sw $t4, %lo(tab_prev_selected)($at) .L7F017E40: /* 04C970 7F017E40 240D0001 */ li $t5, 1 /* 04C974 7F017E44 3C018003 */ lui $at, %hi(MP_menu_selected_option) @@ -19777,36 +19475,36 @@ glabel interface_menu15_cheat /* 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) +/* 04C99C 7F017E6C 3C018003 */ lui $at, %hi(tab_prev_selected) /* 04C9A0 7F017E70 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) -/* 04C9A4 7F017E74 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) +/* 04C9A4 7F017E74 AC2EA8D8 */ sw $t6, %lo(tab_prev_selected)($at) /* 04C9A8 7F017E78 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04C9AC 7F017E7C 240500C7 */ li $a1, 199 /* 04C9B0 7F017E80 0C002382 */ jal sndPlaySfx /* 04C9B4 7F017E84 00003025 */ move $a2, $zero .L7F017E88: -/* 04C9B8 7F017E88 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 04C9B8 7F017E88 3C048003 */ lui $a0, %hi(walletinst) /* 04C9BC 7F017E8C 0FC02DC9 */ jal disable_all_switches -/* 04C9C0 7F017E90 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) -/* 04C9C4 7F017E94 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 04C9C8 7F017E98 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9C0 7F017E90 8C84A95C */ lw $a0, %lo(walletinst)($a0) +/* 04C9C4 7F017E94 3C048003 */ lui $a0, %hi(walletinst) +/* 04C9C8 7F017E98 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 04C9CC 7F017E9C 00002825 */ move $a1, $zero /* 04C9D0 7F017EA0 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 04C9D4 7F017EA4 24060001 */ li $a2, 1 -/* 04C9D8 7F017EA8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 04C9DC 7F017EAC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9D8 7F017EA8 3C048003 */ lui $a0, %hi(walletinst) +/* 04C9DC 7F017EAC 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 04C9E0 7F017EB0 2405002A */ li $a1, 42 /* 04C9E4 7F017EB4 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 04C9E8 7F017EB8 24060001 */ li $a2, 1 -/* 04C9EC 7F017EBC 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) -/* 04C9F0 7F017EC0 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 04C9EC 7F017EBC 3C048003 */ lui $a0, %hi(walletinst) +/* 04C9F0 7F017EC0 8C84A95C */ lw $a0, %lo(walletinst)($a0) /* 04C9F4 7F017EC4 24050006 */ li $a1, 6 /* 04C9F8 7F017EC8 0FC02DF0 */ jal set_item_visibility_in_objinstance /* 04C9FC 7F017ECC 24060001 */ li $a2, 1 /* 04CA00 7F017ED0 0FC026E1 */ jal menu_control_stick_tracking /* 04CA04 7F017ED4 00000000 */ nop -/* 04CA08 7F017ED8 3C0F8003 */ lui $t7, %hi(tab_3_selected) -/* 04CA0C 7F017EDC 8DEFA8D8 */ lw $t7, %lo(tab_3_selected)($t7) +/* 04CA08 7F017ED8 3C0F8003 */ lui $t7, %hi(tab_prev_selected) +/* 04CA0C 7F017EDC 8DEFA8D8 */ lw $t7, %lo(tab_prev_selected)($t7) /* 04CA10 7F017EE0 24040006 */ li $a0, 6 /* 04CA14 7F017EE4 3C188003 */ lui $t8, %hi(MP_menu_selected_option) /* 04CA18 7F017EE8 11E00008 */ beqz $t7, .L7F017F0C @@ -20525,7 +20223,9 @@ glabel constructor_menu15_cheat - +//******************************************************************************************************** +//NO CONTROLLER SCREEN +//******************************************************************************************************** void init_menu16_nocontroller(void) { return; } @@ -20617,7 +20317,9 @@ void do_extended_cast_display(s32 flag) intro_character_index = 1; } - +//******************************************************************************************************** +//CAST SCREEN +//******************************************************************************************************** #ifdef NONMATCHING void init_menu18_displaycast(void) { @@ -20811,7 +20513,7 @@ void init_menu18_displaycast(void) (char)(uVar2 & 1),extraout_f12_01, intro_animation_table[randomly_selected_intro_animation].startframeoffset, extraout_f14_00); - menu_timer = 0; + g_MenuTimer = 0; iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { @@ -21045,7 +20747,7 @@ glabel init_menu18_displaycast /* 04D438 7F018908 3C060001 */ lui $a2, (0x00019000 >> 16) # lui $a2, 1 /* 04D43C 7F01890C 34C69000 */ ori $a2, (0x00019000 & 0xFFFF) # ori $a2, $a2, 0x9000 /* 04D440 7F018910 27A40090 */ addiu $a0, $sp, 0x90 -/* 04D444 7F018914 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 04D444 7F018914 0FC32EBD */ jal texInitPool /* 04D448 7F018918 8FA500B4 */ lw $a1, 0xb4($sp) /* 04D44C 7F01891C 8FAA008C */ lw $t2, 0x8c($sp) /* 04D450 7F018920 3C0C8004 */ lui $t4, %hi(c_item_entries) @@ -21281,7 +20983,7 @@ glabel init_menu18_displaycast /* 04D7B4 7F018C84 3C048003 */ lui $a0, %hi(objinstance) /* 04D7B8 7F018C88 8C84B5F4 */ lw $a0, %lo(objinstance)($a0) /* 04D7BC 7F018C8C 3C053F00 */ lui $a1, 0x3f00 -/* 04D7C0 7F018C90 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 04D7C0 7F018C90 0FC1BFC6 */ jal modelSetAnimRateForDuration /* 04D7C4 7F018C94 24060000 */ li $a2, 0 /* 04D7C8 7F018C98 3C198003 */ lui $t9, %hi(randomly_selected_intro_animation) /* 04D7CC 7F018C9C 8F39B5EC */ lw $t9, %lo(randomly_selected_intro_animation)($t9) @@ -21303,9 +21005,9 @@ glabel init_menu18_displaycast /* 04D80C 7F018CDC E7A40010 */ swc1 $f4, 0x10($sp) /* 04D810 7F018CE0 0FC1BF2A */ jal modelSetAnimation /* 04D814 7F018CE4 E7A60014 */ swc1 $f6, 0x14($sp) -/* 04D818 7F018CE8 3C018003 */ lui $at, %hi(menu_timer) +/* 04D818 7F018CE8 3C018003 */ lui $at, %hi(g_MenuTimer) /* 04D81C 7F018CEC 0C002914 */ jal randomGetNext -/* 04D820 7F018CF0 AC20A8CC */ sw $zero, %lo(menu_timer)($at) +/* 04D820 7F018CF0 AC20A8CC */ sw $zero, %lo(g_MenuTimer)($at) /* 04D824 7F018CF4 44824000 */ mtc1 $v0, $f8 /* 04D828 7F018CF8 04410005 */ bgez $v0, .L7F018D10 /* 04D82C 7F018CFC 468042A0 */ cvt.s.w $f10, $f8 @@ -21641,7 +21343,7 @@ glabel init_menu18_displaycast /* 04B370 7F018980 3C060001 */ lui $a2, (0x00019000 >> 16) # lui $a2, 1 /* 04B374 7F018984 34C69000 */ ori $a2, (0x00019000 & 0xFFFF) # ori $a2, $a2, 0x9000 /* 04B378 7F018988 27A40090 */ addiu $a0, $sp, 0x90 -/* 04B37C 7F01898C 0FC32C05 */ jal sub_GAME_7F0CBAF4 +/* 04B37C 7F01898C 0FC32C05 */ jal texInitPool /* 04B380 7F018990 8FA500B4 */ lw $a1, 0xb4($sp) /* 04B384 7F018994 8FAA008C */ lw $t2, 0x8c($sp) /* 04B388 7F018998 3C0C8003 */ lui $t4, %hi(c_item_entries) # $t4, 0x8003 @@ -21878,7 +21580,7 @@ glabel init_menu18_displaycast /* 04B6F0 7F018D00 3C053F19 */ lui $a1, (0x3F19999A >> 16) # lui $a1, 0x3f19 /* 04B6F4 7F018D04 34A5999A */ ori $a1, (0x3F19999A & 0xFFFF) # ori $a1, $a1, 0x999a /* 04B6F8 7F018D08 8C846B44 */ lw $a0, %lo(objinstance)($a0) -/* 04B6FC 7F018D0C 0FC1C02E */ jal sub_GAME_7F06FF18 +/* 04B6FC 7F018D0C 0FC1C02E */ jal modelSetAnimRateForDuration /* 04B700 7F018D10 24060000 */ li $a2, 0 /* 04B704 7F018D14 3C198002 */ lui $t9, %hi(randomly_selected_intro_animation) # $t9, 0x8002 /* 04B708 7F018D18 8F396B3C */ lw $t9, %lo(randomly_selected_intro_animation)($t9) @@ -21900,9 +21602,9 @@ glabel init_menu18_displaycast /* 04B748 7F018D58 E7A40010 */ swc1 $f4, 0x10($sp) /* 04B74C 7F018D5C 0FC1BF92 */ jal modelSetAnimation /* 04B750 7F018D60 E7A60014 */ swc1 $f6, 0x14($sp) -/* 04B754 7F018D64 3C018002 */ lui $at, %hi(menu_timer) # $at, 0x8002 +/* 04B754 7F018D64 3C018002 */ lui $at, %hi(g_MenuTimer) # $at, 0x8002 /* 04B758 7F018D68 0C00262C */ jal randomGetNext -/* 04B75C 7F018D6C AC205E1C */ sw $zero, %lo(menu_timer)($at) +/* 04B75C 7F018D6C AC205E1C */ sw $zero, %lo(g_MenuTimer)($at) /* 04B760 7F018D70 44824000 */ mtc1 $v0, $f8 /* 04B764 7F018D74 04410005 */ bgez $v0, .L7F018D8C /* 04B768 7F018D78 468042A0 */ cvt.s.w $f10, $f8 @@ -22057,7 +21759,7 @@ void update_menu18_displaycast(void) { set_aircraft_obj_inst_scale_to_zero(objinstance); } if (ptrobjinstance != 0) { - set_obj_instance_scale_to_zero(ptrobjinstance); + clear_model_obj(ptrobjinstance); return; } } @@ -22071,7 +21773,6 @@ void update_menu18_displaycast(void) { //better than what was here void interface_menu18_displaycast(void) { - s32 intro_character_index; s32 body; viSetFovY(46.0f); viSetZRange(10.0f, 2000.0f); @@ -22081,11 +21782,11 @@ void interface_menu18_displaycast(void) viSetViewSize(440, 330); set_cur_player_viewport_size(0, 0); viSetViewPosition(0, 0); - menu_timer += g_ClockTimer; - if (menu_timer >= 181) + g_MenuTimer += g_ClockTimer; + if (g_MenuTimer >= 181) // the equivalent would be 151 in the EU rom { intro_character_index++; -//loop_2: +loop_2: body =intro_char_table[intro_character_index].body; if (((intro_char_table[intro_character_index].flag ) && ( !full_actor_intro)) || ((body == BODY_Moonraker_Elite_1_Male) && (!check_aztec_completed_any_folder_secret_00())) || @@ -22095,8 +21796,9 @@ void interface_menu18_displaycast(void) ((body == BODY_Oddjob) && (! fileIsEgyptCompletedOn00AnyFolder()) && (randomGetNext() % 0x2710U)) || ((body == BODY_Baron_Samedi) && (! fileIsEgyptCompletedOn00AnyFolder()) && (randomGetNext() % 0x2710U))) { + // Skip characters that we don't want to show intro_character_index++; - //goto loop_2; + goto loop_2; } if (body < 0) @@ -22165,8 +21867,8 @@ glabel interface_menu18_displaycast /* 04DB04 7F018FD4 00002025 */ move $a0, $zero /* 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 +/* 04DB10 7F018FE0 3C028003 */ lui $v0, %hi(g_MenuTimer) +/* 04DB14 7F018FE4 2442A8CC */ addiu $v0, %lo(g_MenuTimer) # addiu $v0, $v0, -0x5734 /* 04DB18 7F018FE8 3C0F8005 */ lui $t7, %hi(g_ClockTimer) /* 04DB1C 7F018FEC 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) /* 04DB20 7F018FF0 8C4E0000 */ lw $t6, ($v0) @@ -22436,8 +22138,8 @@ glabel interface_menu18_displaycast /* 04DB04 7F018FD4 00002025 */ move $a0, $zero /* 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 +/* 04DB10 7F018FE0 3C028003 */ lui $v0, %hi(g_MenuTimer) +/* 04DB14 7F018FE4 2442A8CC */ addiu $v0, %lo(g_MenuTimer) # addiu $v0, $v0, -0x5734 /* 04DB18 7F018FE8 3C0F8005 */ lui $t7, %hi(g_ClockTimer) /* 04DB1C 7F018FEC 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) /* 04DB20 7F018FF0 8C4E0000 */ lw $t6, ($v0) @@ -22755,10 +22457,10 @@ glabel constructor_menu18_displaycast /* 04DF10 7F0193E0 15EEFFF8 */ bne $t7, $t6, .L7F0193C4 /* 04DF14 7F0193E4 ADA1FFFC */ sw $at, -4($t5) /* 04DF18 7F0193E8 8DE10000 */ lw $at, ($t7) -/* 04DF1C 7F0193EC 3C028003 */ lui $v0, %hi(menu_timer) +/* 04DF1C 7F0193EC 3C028003 */ lui $v0, %hi(g_MenuTimer) /* 04DF20 7F0193F0 3C198003 */ lui $t9, %hi(D_8002BADC) /* 04DF24 7F0193F4 ADA10000 */ sw $at, ($t5) -/* 04DF28 7F0193F8 8C42A8CC */ lw $v0, %lo(menu_timer)($v0) +/* 04DF28 7F0193F8 8C42A8CC */ lw $v0, %lo(g_MenuTimer)($v0) /* 04DF2C 7F0193FC 3C014334 */ li $at, 0x43340000 # 180.000000 /* 04DF30 7F019400 44819000 */ mtc1 $at, $f18 /* 04DF34 7F019404 44827000 */ mtc1 $v0, $f14 @@ -22989,7 +22691,7 @@ glabel constructor_menu18_displaycast /* 04E2A0 7F019770 8F250000 */ lw $a1, ($t9) /* 04E2A4 7F019774 10A00006 */ beqz $a1, .L7F019790 /* 04E2A8 7F019778 00000000 */ nop -/* 04E2AC 7F01977C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 04E2AC 7F01977C 0FC1B1E7 */ jal modelGetNodeRwData /* 04E2B0 7F019780 00E02025 */ move $a0, $a3 /* 04E2B4 7F019784 A4400000 */ sh $zero, ($v0) /* 04E2B8 7F019788 3C078003 */ lui $a3, %hi(ptrobjinstance) @@ -23002,7 +22704,7 @@ glabel constructor_menu18_displaycast /* 04E2D0 7F0197A0 8DE50008 */ lw $a1, 8($t7) /* 04E2D4 7F0197A4 50A00005 */ beql $a1, $zero, .L7F0197BC /* 04E2D8 7F0197A8 8E8D0000 */ lw $t5, ($s4) -/* 04E2DC 7F0197AC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 04E2DC 7F0197AC 0FC1B1E7 */ jal modelGetNodeRwData /* 04E2E0 7F0197B0 00E02025 */ move $a0, $a3 /* 04E2E4 7F0197B4 AC400000 */ sw $zero, ($v0) /* 04E2E8 7F0197B8 8E8D0000 */ lw $t5, ($s4) @@ -23879,10 +23581,10 @@ glabel constructor_menu18_displaycast /* 04BE4C 7F01945C 15EEFFF8 */ bne $t7, $t6, .L7F019440 /* 04BE50 7F019460 ADA1FFFC */ sw $at, -4($t5) /* 04BE54 7F019464 8DE10000 */ lw $at, ($t7) -/* 04BE58 7F019468 3C028002 */ lui $v0, %hi(menu_timer) # $v0, 0x8002 +/* 04BE58 7F019468 3C028002 */ lui $v0, %hi(g_MenuTimer) # $v0, 0x8002 /* 04BE5C 7F01946C 3C198002 */ lui $t9, %hi(D_8002BADC) # $t9, 0x8002 /* 04BE60 7F019470 ADA10000 */ sw $at, ($t5) -/* 04BE64 7F019474 8C425E1C */ lw $v0, %lo(menu_timer)($v0) +/* 04BE64 7F019474 8C425E1C */ lw $v0, %lo(g_MenuTimer)($v0) /* 04BE68 7F019478 3C014316 */ li $at, 0x43160000 # 150.000000 /* 04BE6C 7F01947C 44819000 */ mtc1 $at, $f18 /* 04BE70 7F019480 44827000 */ mtc1 $v0, $f14 @@ -24113,7 +23815,7 @@ glabel constructor_menu18_displaycast /* 04C1DC 7F0197EC 8F250000 */ lw $a1, ($t9) /* 04C1E0 7F0197F0 10A00006 */ beqz $a1, .L7F01980C /* 04C1E4 7F0197F4 00000000 */ nop -/* 04C1E8 7F0197F8 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 04C1E8 7F0197F8 0FC1B3A3 */ jal modelGetNodeRwData /* 04C1EC 7F0197FC 00E02025 */ move $a0, $a3 /* 04C1F0 7F019800 A4400000 */ sh $zero, ($v0) /* 04C1F4 7F019804 3C078002 */ lui $a3, %hi(ptrobjinstance) # $a3, 0x8002 @@ -24126,7 +23828,7 @@ glabel constructor_menu18_displaycast /* 04C20C 7F01981C 8DE50008 */ lw $a1, 8($t7) /* 04C210 7F019820 50A00005 */ beql $a1, $zero, .L7F019838 /* 04C214 7F019824 8E8D0000 */ lw $t5, ($s4) -/* 04C218 7F019828 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 04C218 7F019828 0FC1B3A3 */ jal modelGetNodeRwData /* 04C21C 7F01982C 00E02025 */ move $a0, $a3 /* 04C220 7F019830 AC400000 */ sw $zero, ($v0) /* 04C224 7F019834 8E8D0000 */ lw $t5, ($s4) @@ -24923,7 +24625,9 @@ glabel constructor_menu18_displaycast - +//******************************************************************************************************** +//SPECTRUM EMULATOR +//******************************************************************************************************** void init_menu19_spectrum(void) { #if defined(LEFTOVERSPECTRUM) diff --git a/src/game/front.h b/src/game/front.h index fa80cccb..1f5effbe 100644 --- a/src/game/front.h +++ b/src/game/front.h @@ -154,9 +154,9 @@ extern f32 flt_CODE_bss_8006960C; //CODE.bss:80069610 extern f32 flt_CODE_bss_80069610; //CODE.bss:80069614 -extern f32 flt_CODE_bss_80069614; +extern f32 ninLogoRotRate; //CODE.bss:80069618 -extern f32 flt_CODE_bss_80069618; +extern f32 ninLogoScale; //CODE.bss:80069620 extern coord3d dword_CODE_bss_80069620[0x4]; @@ -179,13 +179,7 @@ extern s32 mp_char_prev_select_player[4]; extern s32 dword_CODE_bss_80069730[4]; //CODE.bss:80069740 -extern s32 has_selected_char_player1; -//CODE.bss:80069744 -extern s32 has_selected_char_player2; -//CODE.bss:80069748 -extern s32 has_selected_char_player3; -//CODE.bss:8006974C -extern s32 has_selected_char_player4; +extern s32 player_has_selected_char[]; //CODE.bss:80069750 extern s32 size_mp_select_image_player1; //CODE.bss:80069754 @@ -195,13 +189,7 @@ extern s32 size_mp_select_image_player3; //CODE.bss:8006975C extern s32 size_mp_select_image_player4; //CODE.bss:80069760 -extern s32 handicap_player1; -//CODE.bss:80069764 -extern s32 handicap_player2; -//CODE.bss:80069768 -extern s32 handicap_player3; -//CODE.bss:8006976C -extern s32 handicap_player4; +extern s32 player_handicap[]; //CODE.bss:80069770 extern char* g_textPtrTAB1; //CODE.bss:80069774 @@ -230,13 +218,7 @@ extern s32 highlight_enemy_damage; //CODE.bss:800697A4 .align 3 //CODE.bss:800697A8 -extern s32 handicap_player1; -//CODE.bss:800697AC -extern s32 handicap_player2; -//CODE.bss:800697B0 -extern s32 handicap_player3; -//CODE.bss:800697B4 -extern s32 handicap_player4; +extern s32 player_handicap[]; //CODE.bss:800697B8 extern u32 controlstyle_player[]; @@ -267,13 +249,13 @@ CODE.bss:800697F0 dword_CODE_bss_800697F0:.space 0x130 extern MENU current_menu; extern MENU menu_update; extern MENU maybe_prev_menu; -extern s32 menu_timer; -extern s32 tab_1_selected; -extern s32 tab_2_selected; -extern s32 tab_3_selected; -extern s32 tab_1_highlight; -extern s32 tab_2_highlight; -extern s32 tab_3_highlight; +extern s32 g_MenuTimer; +extern s32 tab_start_selected; +extern s32 tab_next_selected; +extern s32 tab_prev_selected; +extern s32 tab_start_highlight; +extern s32 tab_next_highlight; +extern s32 tab_prev_highlight; extern f32 tab2_first_x_coord; extern f32 tab1_max_x_coord; @@ -286,7 +268,7 @@ extern s32 selected_stage; extern s32 briefingpage; extern DIFFICULTY selected_difficulty; extern s32 g_AppendCheatSinglePlayer; -extern s32 append_cheat_mp; +extern s32 g_AppendCheatMultiPlayer; extern f32 cursor_h_pos; extern f32 cursor_v_pos; extern s32 final_menu_briefing_page; @@ -307,11 +289,7 @@ extern s32 is_emulating_spectrum; extern s32 is_cheat_menu_available; extern Gfx * ptr_logo_and_walletbond_DL; extern s32 ptr_menu_videobuffer; -extern struct object_standard * ptr_folder_object_instance; -extern s32 set0_never_used; -extern s32 set0_never_used_0; -extern s32 D_8002A968; -extern s32 dword_D_8002A96C; +extern Model * walletinst[]; extern struct rgba_u8 RGBA_8002A970; extern struct rgba_u8 RGBA_8002A974; extern struct rgba_u8 RGBA_8002A978; @@ -333,10 +311,7 @@ extern f32 slider_007_mode_accuracy; extern struct mission_folder_setup mission_folder_setup_entries[]; extern s32 selected_num_players; -extern s32 player_1_char; -extern s32 player_2_char; -extern s32 player_3_char; -extern s32 player_4_char; +extern s32 player_char[]; extern s32 MP_stage_selected; extern s32 game_length; extern s32 aim_sight_adjustment; diff --git a/src/game/gun.c b/src/game/gun.c index bf37a104..ee72cc34 100644 --- a/src/game/gun.c +++ b/src/game/gun.c @@ -20,20 +20,20 @@ #include "random.h" #include "math_asinfacosf.h" #include "loadobjectmodel.h" +#include "objecthandler.h" +#include "image.h" +#include "unk_0CC4C0.h" +#include "debugmenu_handler.h" +#include "fr.h" // bss s32 dword_CODE_bss_80075DB0; s32 dword_CODE_bss_80075DB4; -s32 dword_CODE_bss_80075DB8; -s32 dword_CODE_bss_80075DBC; -s32 dword_CODE_bss_80075DC0; -s32 dword_CODE_bss_80075DC4; +ALSoundState* dword_CODE_bss_80075DB8[4]; + +CasingRecord g_Casings[20]; +s32 dword_CODE_bss_80076A48; -#if defined(VERSION_EU) -char dword_CODE_bss_80075DC8[20][104]; -#else -char dword_CODE_bss_80075DC8[20][160]; -#endif #ifdef REFRESH_PAL /* PAL */ @@ -49,8 +49,6 @@ char dword_CODE_bss_80075DC8[20][160]; #define THROWN_ITEM_TIMER_DEFAULT 240 #endif -s32 dword_CODE_bss_80076A48; - // data //D:80032440 @@ -336,32 +334,18 @@ u32 D_80035778[99] = { 0x0, 0x0, 0x0 }; -u32 D_80035904[99] ={ - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x3F000000, - 0x41100000, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x3F000000, 0x41000000, 0x0, 0xC1780000, - 0x3F000000, 0x41700000, 0x3F6F3B21, 0x3F2027FA, - 0x3E652B0A, 0x3F000000, 0x41000000, 0x0, - 0xC1B80000, 0x40000000, 0x41400000, 0x3FE69C24, - 0x3F730C35, 0x3F21781C, 0x3F000000, 0x41000000, - 0x0, 0xC1900000, 0xBF000000, 0x40800000, - 0x3F590B0F, 0x3F6CBD66, 0x3D9E9A70, 0x3F000000, - 0x40E00000, 0x0, 0x41280000, 0x40A00000, - 0x40200000, 0x3E6AE968, 0x3E7B99D4, 0x3DCAE18B, - 0x3F000000, 0x40E00000, 0x0, 0x41900000, - 0x40A00000, 0x40200000, 0x3D0666ED, 0x40C6B2E4, - 0x3E0A4E38, 0x3F000000, 0x40E00000, 0x0, - 0x41180000, 0x40600000, 0xBFC00000, 0x40C8BE5E, - 0x40C02F79, 0x3DB7BC7F, 0x3F000000, 0x40E00000, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x3F000000, - 0x41A00000, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x3F000000, 0x41A00000, 0x1, 0x0, - 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0 +bondstruct_unk_80035904 D_80035904[11] = { + { 0, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 0.5f, 9.0f }, + { 0, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 0.5f, 8.0f }, + { 0, { -15.5f, 0.5f, 15.0f }, { 0.9344959855079651f, 0.6256099939346313f, 0.2237969934940338f }, 0.5f, 8.0f }, + { 0, { -23.0f, 2.0f, 12.0f }, { 1.8016400337219238f, 0.9494050145149231f, 0.6307389736175537f }, 0.5f, 8.0f }, + { 0, { -18.0f, -0.5f, 4.0f }, { 0.8478249907493591f, 0.9247649908065796f, 0.07744300365447998f }, 0.5f, 7.0f }, + { 0, { 10.5f, 5.0f, 2.5f }, { 0.22940599918365479f, 0.24570399522781372f, 0.09906300157308578f }, 0.5f, 7.0f }, + { 0, { 18.0f, 5.0f, 2.5f }, { 0.03281300142407417f, 6.20933723449707f, 0.1350640058517456f }, 0.5f, 7.0f }, + { 0, { 9.5f, 3.5f, -1.5f }, { 6.273238182067871f, 6.005795001983643f, 0.08971499651670456f }, 0.5f, 7.0f }, + { 0, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 0.5f, 20.0f }, + { 0, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 0.5f, 20.0f }, + { 1, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f }, }; u32 D_80035A90[54] = { @@ -485,49 +469,58 @@ u32 D_80035D44[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -/** - * List of ricochet(?) sound effects, used by recall_joy2_hits_edit_detail_edit_flag. - * Address 0x80035E04. -*/ -u16 D_80035E04[] = { - 0x1B, 0x1C, 0x1D, 0x1E, 0x1B, 0x1C, 0x1D, 0x1E, 0x1B, 0x1C, 0x1D, 0x1E, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 +//D:0x80035E04 +struct RicochetSoundsSmall ricochet_sounds_small = { + RICO_8_AFDM_A_SFX, RICO_8_AFDM_B_SFX, RICO_8_AFDM_C_SFX, RICO_8_AFDM_D_SFX, + RICO_8_AFDM_A_SFX, RICO_8_AFDM_B_SFX, RICO_8_AFDM_C_SFX, RICO_8_AFDM_D_SFX, + RICO_8_AFDM_A_SFX, RICO_8_AFDM_B_SFX, RICO_8_AFDM_C_SFX, RICO_8_AFDM_D_SFX, + RICO_5_A_SFX, RICO_5_B_SFX, RICO_5_C_SFX, RICO_5_D_SFX, + RICO_6_HBBA_A_SFX, RICO_6_HBBA_B_SFX, RICO_6_HBBA_C_SFX, RICO_6_HBBA_D_SFX }; -//D:80035E28 -u16 D_80035E28[] = {0x29, 0x2A}; //D:80035E2C -u16 D_80035E2C[] = {0x2F, 0x30}; -//D:80035E30 -u16 D_80035E30[] = {0x31, 0}; +struct PunchSounds punch_sounds = { + PUNCH1_SFX, + PUNCH2_SFX, + PUNCH3_SFX +}; + //D:80035E34 -u16 D_80035E34[] = {0x45, 0x45}; +struct BulletFleshSounds bullet_flesh_sounds = { + HIT_BULLET_FLESH_SFX, + HIT_BULLET_FLESH_SFX +}; -/** - * List of ricochet(?) sound effects, used by recall_joy2_hits_edit_flag. - * Address 0x80035E38. -*/ -u16 D_80035E38[] = {0x5C, 0x5D}; +struct LaserRichochetSounds laser_ricochet_sounds = { + RICO_LASER2_SFX, + RICO_LASER3_SFX +}; -/** - * List of ricochet(?) sound effects, used by recall_joy2_hits_edit_flag. - * Address 0x80035E3C. -*/ -u16 D_80035E3C[] = { - 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x17, 0x18, 0x19, 0x1A, 0x17, 0x18, 0x19, 0x1A, 0x1F, 0x20, 0x20, 0x21, 0x1F, 0x20, 0x20, 0x21, 0x1F, 0x20, 0x20, 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A +struct RicochetSoundsLarge ricochet_sounds_large = { + RICO_12_GBU_A_SFX, RICO_12_GBU_B_SFX, RICO_12_GBU_C_SFX, RICO_12_GBU_D_SFX, + RICO_6_TAJ_A_SFX, RICO_6_TAJ_B_SFX, RICO_6_TAJ_C_SFX, RICO_6_TAJ_D_SFX, + RICO_6_TAJ_A_SFX, RICO_6_TAJ_B_SFX, RICO_6_TAJ_C_SFX, RICO_6_TAJ_D_SFX, + RICO_6_TAJ_A_SFX, RICO_6_TAJ_B_SFX, RICO_6_TAJ_C_SFX, RICO_6_TAJ_D_SFX, + RICO_4_A_SFX, RICO_4_B_SFX, RICO_4_B_SFX, RICO_4_C_SFX, + RICO_4_A_SFX, RICO_4_B_SFX, RICO_4_B_SFX, RICO_4_C_SFX, + RICO_4_A_SFX, RICO_4_B_SFX, RICO_4_B_SFX, RICO_4_C_SFX, + RICO_5_A_SFX, RICO_5_B_SFX, RICO_5_C_SFX, RICO_5_D_SFX, + RICO_6_HBBA_A_SFX, RICO_6_HBBA_B_SFX, RICO_6_HBBA_C_SFX, RICO_6_HBBA_D_SFX }; //D:80035E84 -u16 D_80035E84[] = {0xA4, 0xA5}; -//D:80035E88 -u16 D_80035E88[] = {0xA6, 0xA7}; -//D:80035E8C -u16 D_80035E8C[] = {0xA8, 0}; +struct EarWhistleSounds ear_whistle_sounds = { + RICO_EAR_WHISTLE1_SFX, + RICO_EAR_WHISTLE2_SFX, + RICO_EAR_WHISTLE3_SFX, + RICO_EAR_WHISTLE4_SFX, + RICO_EAR_WHISTLE5_SFX +}; + //D:80035E90 -u16 D_80035E90[] = {0x5C, 0x5D}; +u16 D_80035E90[] = { RICO_LASER2_SFX, RICO_LASER3_SFX }; //D:80035E94 -u16 D_80035E94[] = {0x5F, 0x60}; -//D:80035E98 -u16 D_80035E98[] = {0x61, 0}; +u16 D_80035E94[] = { KNIFE_THROW1_SFX, KNIFE_THROW2_SFX, KNIFE_THROW3_SFX, 0 }; //D:80035E9C u32 D_80035E9C = 0; //D:80035EA0 @@ -542,54 +535,45 @@ u32 D_80035EAC = 0; u32 D_80035EB0[] = {0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; //D:80035EEC u32 dword_D_80035EEC = 0; + //D:80035EF0 -u16 ammo_related[] = { - 0, 0, 0, 0, - 0, 0, 0, 0x320, - 0x200, 0xC84, 0, 0, - 0, 0xC8, 0, 0, - 0, 0, 0, 0x190, - 0x200, 0xC90,0xC000, 0, - 0, 0x64, 0x200, 0xC9C, - 0, 0, 0, 0xC, - 0x200, 0xCD8, 0, 0, - 0, 3, 0x200, 0xCC0, - 0xC000, 0, 0, 0xA, - 0x200, 0xCFC,0x3F80, 0, - 0, 0xA, 0x200, 0xD14, - 0x3F80, 0, 0, 0xA, - 0x200, 0xD08,0x3F80, 0, - 0, 0xA, 0x200, 0xCA8, - 0, 0, 0, 0xC, - 0x200, 0xCB4, 0, 0, - 0, 0xC8, 0x200, 0xCE4, - 0, 0, 0, 0x64, - 0x200, 0xCF0, 0, 0, - 0, 0x32, 0, 0, - 0, 0, 0, 0xA, - 0, 0, 0, 0, - 0, 2, 0, 0, - 0, 0, 0, 8, - 0, 0, 0, 0, - 0, 6, 0, 0, - 0, 0, 0, 0xA, - 0, 0, 0, 0, - 0, 0xA, 0, 0, - 0, 0, 0, 0xA, - 0, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 0, 0xA, - 0, 0, 0, 0, - 0, 0x3E8, 0, 0, - 0, 0, 0, 0xA, - 0, 0, 0, 0, - 0, 0xA, 0, 0, - 0, 0, 0, 0xA, - 0, 0, 0, 0, - 0, 0x32, 0x200, 0xD20, - 0xBF80, 0, 0, 1, - 0, 0, 0, 0, - 0, 0, 0, 0}; +#define AMMO_RELATED_MAX 30 +AmmoStats ammo_related[AMMO_RELATED_MAX] = { + { 0x0, 0x0, 0x0, 0x0, 0x0, }, + { 0x320, 0x200, 0xC84, 0x0, 0x0, }, + { 0xC8, 0x0, 0x0, 0x0, 0x0, }, + { 0x190, 0x200, 0xC90, 0xC000, 0x0, }, + { 0x64, 0x200, 0xC9C, 0x0, 0x0, }, + { 0xC, 0x200, 0xCD8, 0x0, 0x0, }, + { 0x3, 0x200, 0xCC0, 0xC000, 0x0, }, + { 0xA, 0x200, 0xCFC, 0x3F80, 0x0, }, + { 0xA, 0x200, 0xD14, 0x3F80, 0x0, }, + { 0xA, 0x200, 0xD08, 0x3F80, 0x0, }, + { 0xA, 0x200, 0xCA8, 0x0, 0x0, }, + { 0xC, 0x200, 0xCB4, 0x0, 0x0, }, + { 0xC8, 0x200, 0xCE4, 0x0, 0x0, }, + { 0x64, 0x200, 0xCF0, 0x0, 0x0, }, + { 0x32, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0x2, 0x0, 0x0, 0x0, 0x0, }, + { 0x8, 0x0, 0x0, 0x0, 0x0, }, + { 0x6, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0x1, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0x3E8, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0xA, 0x0, 0x0, 0x0, 0x0, }, + { 0x32, 0x200, 0xD20, 0xBF80, 0x0, }, + { 0x1, 0x0, 0x0, 0x0, 0x0, }, +}; + +//was previously attached to ammo_related[] (array at D:80035EF0) +//D:80036058 +u16 D_80036058[] = { 0, 0, 0, 0, }; //i may belong to objecthandler.c @@ -597,22 +581,11 @@ u16 ammo_related[] = { u32 D_80036060 = 0; -// rodata - - -//D:80053BF4 -const char aD_9[] = "%d\n"; -//D:80053BF8 -const char aSD[] = "%s: %d\n"; -//D:80053C00 -const char aSDS[] = "%s %d %s\n"; -//D:80053C0C -const char aSD_0[] = "%s: %d\n"; // forward declarations -void sub_GAME_7F0681CC(s32 *arg0, f32 *arg1, s32 arg2); +void sub_GAME_7F0681CC(coord3d* arg0, coord3d* arg1, enum GUNHAND arg2); void sub_GAME_7F05EC1C(struct WeaponObjectRecord *arg0, struct coord3d *arg1, Mtxf *arg2, struct coord3d *arg3, s32 *arg4); // end forward declarations @@ -633,239 +606,45 @@ void nullsub_73(void) { } +void sub_GAME_7F05C540(coord3d* pos) +{ + bondstruct_unk_80035904* temp_v0; - - - -#ifdef NONMATCHING -void *sub_GAME_7F05C540(void *arg0) { - void *temp_v0; - - // Node 0 - temp_v0 = ((D_80034CA0 * 0x24) + &D_80035904); - temp_v0->unk4 = (f32) (temp_v0->unk4 + *arg0); - temp_v0->unk8 = (f32) (temp_v0->unk8 + arg0->unk4); - temp_v0->unkC = (f32) (temp_v0->unkC + arg0->unk8); - return temp_v0; + temp_v0 = &D_80035904[D_80034CA0]; + temp_v0->unk04.x += pos->x; + temp_v0->unk04.y += pos->y; + temp_v0->unk04.z += pos->z; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05C540 -/* 091070 7F05C540 3C0E8003 */ lui $t6, %hi(D_80034CA0) -/* 091074 7F05C544 8DCE4CA0 */ lw $t6, %lo(D_80034CA0)($t6) -/* 091078 7F05C548 3C188003 */ lui $t8, %hi(D_80035904) -/* 09107C 7F05C54C 27185904 */ addiu $t8, %lo(D_80035904) # addiu $t8, $t8, 0x5904 -/* 091080 7F05C550 000E78C0 */ sll $t7, $t6, 3 -/* 091084 7F05C554 01EE7821 */ addu $t7, $t7, $t6 -/* 091088 7F05C558 000F7880 */ sll $t7, $t7, 2 -/* 09108C 7F05C55C 01F81021 */ addu $v0, $t7, $t8 -/* 091090 7F05C560 C4440004 */ lwc1 $f4, 4($v0) -/* 091094 7F05C564 C4860000 */ lwc1 $f6, ($a0) -/* 091098 7F05C568 C44A0008 */ lwc1 $f10, 8($v0) -/* 09109C 7F05C56C 46062200 */ add.s $f8, $f4, $f6 -/* 0910A0 7F05C570 C444000C */ lwc1 $f4, 0xc($v0) -/* 0910A4 7F05C574 E4480004 */ swc1 $f8, 4($v0) -/* 0910A8 7F05C578 C4900004 */ lwc1 $f16, 4($a0) -/* 0910AC 7F05C57C 46105480 */ add.s $f18, $f10, $f16 -/* 0910B0 7F05C580 E4520008 */ swc1 $f18, 8($v0) -/* 0910B4 7F05C584 C4860008 */ lwc1 $f6, 8($a0) -/* 0910B8 7F05C588 46062200 */ add.s $f8, $f4, $f6 -/* 0910BC 7F05C58C 03E00008 */ jr $ra -/* 0910C0 7F05C590 E448000C */ swc1 $f8, 0xc($v0) -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F05C594(void) { - +void sub_GAME_7F05C594(Mtxf* mtxf) +{ + Mtxf sp18; + matrix_4x4_set_rotation_around_xyz(&D_80035904[D_80034CA0].unk10, &sp18); + matrix_4x4_multiply_in_place(mtxf, &sp18); + matrix_4x4_get_rotation_around_xyz(&sp18, &D_80035904[D_80034CA0].unk10); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05C594 -/* 0910C4 7F05C594 3C0E8003 */ lui $t6, %hi(D_80034CA0) -/* 0910C8 7F05C598 8DCE4CA0 */ lw $t6, %lo(D_80034CA0)($t6) -/* 0910CC 7F05C59C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0910D0 7F05C5A0 3C198003 */ lui $t9, %hi(D_80035904) -/* 0910D4 7F05C5A4 000E78C0 */ sll $t7, $t6, 3 -/* 0910D8 7F05C5A8 01EE7821 */ addu $t7, $t7, $t6 -/* 0910DC 7F05C5AC 000F7880 */ sll $t7, $t7, 2 -/* 0910E0 7F05C5B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0910E4 7F05C5B4 AFA40058 */ sw $a0, 0x58($sp) -/* 0910E8 7F05C5B8 25F80010 */ addiu $t8, $t7, 0x10 -/* 0910EC 7F05C5BC 27395904 */ addiu $t9, %lo(D_80035904) # addiu $t9, $t9, 0x5904 -/* 0910F0 7F05C5C0 03192021 */ addu $a0, $t8, $t9 -/* 0910F4 7F05C5C4 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz -/* 0910F8 7F05C5C8 27A50018 */ addiu $a1, $sp, 0x18 -/* 0910FC 7F05C5CC 8FA40058 */ lw $a0, 0x58($sp) -/* 091100 7F05C5D0 0FC1601A */ jal matrix_4x4_multiply_in_place -/* 091104 7F05C5D4 27A50018 */ addiu $a1, $sp, 0x18 -/* 091108 7F05C5D8 3C088003 */ lui $t0, %hi(D_80034CA0) -/* 09110C 7F05C5DC 8D084CA0 */ lw $t0, %lo(D_80034CA0)($t0) -/* 091110 7F05C5E0 3C0B8003 */ lui $t3, %hi(D_80035904) -/* 091114 7F05C5E4 256B5904 */ addiu $t3, %lo(D_80035904) # addiu $t3, $t3, 0x5904 -/* 091118 7F05C5E8 000848C0 */ sll $t1, $t0, 3 -/* 09111C 7F05C5EC 01284821 */ addu $t1, $t1, $t0 -/* 091120 7F05C5F0 00094880 */ sll $t1, $t1, 2 -/* 091124 7F05C5F4 252A0010 */ addiu $t2, $t1, 0x10 -/* 091128 7F05C5F8 014B2821 */ addu $a1, $t2, $t3 -/* 09112C 7F05C5FC 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz -/* 091130 7F05C600 27A40018 */ addiu $a0, $sp, 0x18 -/* 091134 7F05C604 8FBF0014 */ lw $ra, 0x14($sp) -/* 091138 7F05C608 27BD0058 */ addiu $sp, $sp, 0x58 -/* 09113C 7F05C60C 03E00008 */ jr $ra -/* 091140 7F05C610 00000000 */ nop -) -#endif +void sub_GAME_7F05C614(void) +{ + if (!cartridges_eject) { return; } - - -#ifdef NONMATCHING -void sub_GAME_7F05C614(void) { - + g_CurrentPlayer->hands[0].field_92C = 1; + matrix_4x4_set_rotation_around_xyz(&D_80035904[D_80034CA0].unk10, (Mtxf* ) &g_CurrentPlayer->hands[0].field_8EC); + matrix_4x4_set_position(&D_80035904[D_80034CA0].unk04, (Mtxf* ) &g_CurrentPlayer->hands[0].field_8EC); + cartridges_eject = 0; } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F05C614 -/* 091144 7F05C614 3C0E8003 */ lui $t6, %hi(cartridges_eject) -/* 091148 7F05C618 8DCE4C9C */ lw $t6, %lo(cartridges_eject)($t6) -/* 09114C 7F05C61C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 091150 7F05C620 AFBF0014 */ sw $ra, 0x14($sp) -/* 091154 7F05C624 11C00020 */ beqz $t6, .L7F05C6A8 -/* 091158 7F05C628 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 09115C 7F05C62C 2442A0B0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x5f50 -/* 091160 7F05C630 8C580000 */ lw $t8, ($v0) -/* 091164 7F05C634 240F0001 */ li $t7, 1 -/* 091168 7F05C638 3C198003 */ lui $t9, %hi(D_80034CA0) -/* 09116C 7F05C63C AF0F092C */ sw $t7, 0x92c($t8) -/* 091170 7F05C640 8F394CA0 */ lw $t9, %lo(D_80034CA0)($t9) -/* 091174 7F05C644 8C450000 */ lw $a1, ($v0) -/* 091178 7F05C648 3C0A8003 */ lui $t2, %hi(D_80035904) -/* 09117C 7F05C64C 001940C0 */ sll $t0, $t9, 3 -/* 091180 7F05C650 01194021 */ addu $t0, $t0, $t9 -/* 091184 7F05C654 00084080 */ sll $t0, $t0, 2 -/* 091188 7F05C658 25090010 */ addiu $t1, $t0, 0x10 -/* 09118C 7F05C65C 254A5904 */ addiu $t2, %lo(D_80035904) # addiu $t2, $t2, 0x5904 -/* 091190 7F05C660 012A2021 */ addu $a0, $t1, $t2 -/* 091194 7F05C664 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz -/* 091198 7F05C668 24A508EC */ addiu $a1, $a1, 0x8ec -/* 09119C 7F05C66C 3C0B8003 */ lui $t3, %hi(D_80034CA0) -/* 0911A0 7F05C670 8D6B4CA0 */ lw $t3, %lo(D_80034CA0)($t3) -/* 0911A4 7F05C674 3C058008 */ lui $a1, %hi(g_CurrentPlayer) -/* 0911A8 7F05C678 8CA5A0B0 */ lw $a1, %lo(g_CurrentPlayer)($a1) -/* 0911AC 7F05C67C 000B60C0 */ sll $t4, $t3, 3 -/* 0911B0 7F05C680 018B6021 */ addu $t4, $t4, $t3 -/* 0911B4 7F05C684 000C6080 */ sll $t4, $t4, 2 -/* 0911B8 7F05C688 3C0E8003 */ lui $t6, %hi(D_80035904) -/* 0911BC 7F05C68C 25CE5904 */ addiu $t6, %lo(D_80035904) # addiu $t6, $t6, 0x5904 -/* 0911C0 7F05C690 258D0004 */ addiu $t5, $t4, 4 -/* 0911C4 7F05C694 01AE2021 */ addu $a0, $t5, $t6 -/* 0911C8 7F05C698 0FC16266 */ jal matrix_4x4_set_position -/* 0911CC 7F05C69C 24A508EC */ addiu $a1, $a1, 0x8ec -/* 0911D0 7F05C6A0 3C018003 */ lui $at, %hi(cartridges_eject) -/* 0911D4 7F05C6A4 AC204C9C */ sw $zero, %lo(cartridges_eject)($at) -.L7F05C6A8: -/* 0911D8 7F05C6A8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0911DC 7F05C6AC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0911E0 7F05C6B0 03E00008 */ jr $ra -/* 0911E4 7F05C6B4 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F05C614 -/* 08F4B4 7F05CAC4 3C0E8003 */ lui $t6, %hi(cartridges_eject) # $t6, 0x8003 -/* 08F4B8 7F05CAC8 8DCE01EC */ lw $t6, %lo(cartridges_eject)($t6) -/* 08F4BC 7F05CACC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08F4C0 7F05CAD0 AFBF0014 */ sw $ra, 0x14($sp) -/* 08F4C4 7F05CAD4 11C00020 */ beqz $t6, .L7F05CB58 -/* 08F4C8 7F05CAD8 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 08F4CC 7F05CADC 24428BC0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x7440 -/* 08F4D0 7F05CAE0 8C580000 */ lw $t8, ($v0) -/* 08F4D4 7F05CAE4 240F0001 */ li $t7, 1 -/* 08F4D8 7F05CAE8 3C198003 */ lui $t9, %hi(D_80034CA0) # $t9, 0x8003 -/* 08F4DC 7F05CAEC AF0F0924 */ sw $t7, 0x924($t8) -/* 08F4E0 7F05CAF0 8F3901F0 */ lw $t9, %lo(D_80034CA0)($t9) -/* 08F4E4 7F05CAF4 8C450000 */ lw $a1, ($v0) -/* 08F4E8 7F05CAF8 3C0A8003 */ lui $t2, %hi(D_80035904) # $t2, 0x8003 -/* 08F4EC 7F05CAFC 001940C0 */ sll $t0, $t9, 3 -/* 08F4F0 7F05CB00 01194021 */ addu $t0, $t0, $t9 -/* 08F4F4 7F05CB04 00084080 */ sll $t0, $t0, 2 -/* 08F4F8 7F05CB08 25090010 */ addiu $t1, $t0, 0x10 -/* 08F4FC 7F05CB0C 254A0E54 */ addiu $t2, %lo(D_80035904) # addiu $t2, $t2, 0xe54 -/* 08F500 7F05CB10 012A2021 */ addu $a0, $t1, $t2 -/* 08F504 7F05CB14 0FC162EF */ jal matrix_4x4_set_rotation_around_xyz -/* 08F508 7F05CB18 24A508E4 */ addiu $a1, $a1, 0x8e4 -/* 08F50C 7F05CB1C 3C0B8003 */ lui $t3, %hi(D_80034CA0) # $t3, 0x8003 -/* 08F510 7F05CB20 8D6B01F0 */ lw $t3, %lo(D_80034CA0)($t3) -/* 08F514 7F05CB24 3C058007 */ lui $a1, %hi(g_CurrentPlayer) # $a1, 0x8007 -/* 08F518 7F05CB28 8CA58BC0 */ lw $a1, %lo(g_CurrentPlayer)($a1) -/* 08F51C 7F05CB2C 000B60C0 */ sll $t4, $t3, 3 -/* 08F520 7F05CB30 018B6021 */ addu $t4, $t4, $t3 -/* 08F524 7F05CB34 000C6080 */ sll $t4, $t4, 2 -/* 08F528 7F05CB38 3C0E8003 */ lui $t6, %hi(D_80035904) # $t6, 0x8003 -/* 08F52C 7F05CB3C 25CE0E54 */ addiu $t6, %lo(D_80035904) # addiu $t6, $t6, 0xe54 -/* 08F530 7F05CB40 258D0004 */ addiu $t5, $t4, 4 -/* 08F534 7F05CB44 01AE2021 */ addu $a0, $t5, $t6 -/* 08F538 7F05CB48 0FC16390 */ jal matrix_4x4_set_position -/* 08F53C 7F05CB4C 24A508E4 */ addiu $a1, $a1, 0x8e4 -/* 08F540 7F05CB50 3C018003 */ lui $at, %hi(cartridges_eject) # $at, 0x8003 -/* 08F544 7F05CB54 AC2001EC */ sw $zero, %lo(cartridges_eject)($at) -.L7F05CB58: -/* 08F548 7F05CB58 8FBF0014 */ lw $ra, 0x14($sp) -/* 08F54C 7F05CB5C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08F550 7F05CB60 03E00008 */ jr $ra -/* 08F554 7F05CB64 00000000 */ nop -) -#endif -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F05C6B8(void) { - +void sub_GAME_7F05C6B8(void) +{ + D_80034CA0++; + if (D_80035904[D_80034CA0].unk00 & 1) + { + D_80034CA0 = 0; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05C6B8 -/* 0911E8 7F05C6B8 3C028003 */ lui $v0, %hi(D_80034CA0) -/* 0911EC 7F05C6BC 24424CA0 */ addiu $v0, %lo(D_80034CA0) # addiu $v0, $v0, 0x4ca0 -/* 0911F0 7F05C6C0 8C4E0000 */ lw $t6, ($v0) -/* 0911F4 7F05C6C4 3C088003 */ lui $t0, %hi(D_80035904) -/* 0911F8 7F05C6C8 25CF0001 */ addiu $t7, $t6, 1 -/* 0911FC 7F05C6CC 000FC8C0 */ sll $t9, $t7, 3 -/* 091200 7F05C6D0 032FC821 */ addu $t9, $t9, $t7 -/* 091204 7F05C6D4 0019C880 */ sll $t9, $t9, 2 -/* 091208 7F05C6D8 AC4F0000 */ sw $t7, ($v0) -/* 09120C 7F05C6DC 01194021 */ addu $t0, $t0, $t9 -/* 091210 7F05C6E0 8D085904 */ lw $t0, %lo(D_80035904)($t0) -/* 091214 7F05C6E4 31090001 */ andi $t1, $t0, 1 -/* 091218 7F05C6E8 11200002 */ beqz $t1, .L7F05C6F4 -/* 09121C 7F05C6EC 00000000 */ nop -/* 091220 7F05C6F0 AC400000 */ sw $zero, ($v0) -.L7F05C6F4: -/* 091224 7F05C6F4 03E00008 */ jr $ra -/* 091228 7F05C6F8 00000000 */ nop -) -#endif - - @@ -1038,744 +817,55 @@ void copy_item_in_hand_to_main_list(coord3d *pos) { } -#ifdef NONMATCHING -void bgunCalculateBlend(void) { +void bgunCalculateBlend(enum GUNHAND handnum) +{ + s32 sp60[2]; + s32 sp58[2]; + f32 mult = get_ptr_item_statistics(getCurrentPlayerWeaponId(handnum))->Sway; + sp60[handnum] = (g_CurrentPlayer->hands[handnum].curblendpos + 2) % 4; + sp58[handnum] = (g_CurrentPlayer->hands[handnum].curblendpos + 1) % 4; + g_CurrentPlayer->hands[handnum].curblendpos = sp58[handnum]; + + g_CurrentPlayer->hands[handnum].blendlook[sp60[handnum]].x = (RANDOMFRAC() - 0.5f) * 0.08f * mult; + g_CurrentPlayer->hands[handnum].blendlook[sp60[handnum]].y = (RANDOMFRAC() - 0.5f) * 0.1f * mult; + g_CurrentPlayer->hands[handnum].blendlook[sp60[handnum]].z = -1; + + g_CurrentPlayer->hands[handnum].blendup[sp60[handnum]].x = (RANDOMFRAC() - 0.5f) * 0.1f * mult; + g_CurrentPlayer->hands[handnum].blendup[sp60[handnum]].y = 1; + g_CurrentPlayer->hands[handnum].blendup[sp60[handnum]].z = (RANDOMFRAC() - 0.5f) * 0.1f * mult; + + g_CurrentPlayer->hands[handnum].blendpos[sp60[handnum]].x = (RANDOMFRAC() * 0.75f) + 1.5f; + g_CurrentPlayer->hands[handnum].blendpos[sp60[handnum]].y = (2 + RANDOMFRAC()) * g_CurrentPlayer->hands[handnum].blendscale1; + g_CurrentPlayer->hands[handnum].blendpos[sp60[handnum]].z = (RANDOMFRAC() - 0.5f) * 2.5f; + + if (g_CurrentPlayer->hands[handnum].sideflag < 0) + { + g_CurrentPlayer->hands[handnum].blendpos[sp60[handnum]].x *= -1; + + if (g_CurrentPlayer->hands[handnum].sideflag == -2) + { + g_CurrentPlayer->hands[handnum].sideflag = 1; + } + else + { + g_CurrentPlayer->hands[handnum].sideflag = -2; + } + } + else + { + if (g_CurrentPlayer->hands[handnum].sideflag == 2) + { + g_CurrentPlayer->hands[handnum].sideflag = -1; + } + else + { + g_CurrentPlayer->hands[handnum].sideflag = 2; + } + } + + g_CurrentPlayer->hands[handnum].blendscale1 = -g_CurrentPlayer->hands[handnum].blendscale1; } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.late_rodata -glabel D_80053C14 -.word 0x3da3d70a /*0.079999998*/ -glabel D_80053C18 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C1C -.word 0x3dcccccd /*0.1*/ -glabel D_80053C20 -.word 0x3dcccccd /*0.1*/ -.text -glabel bgunCalculateBlend -/* 0914B0 7F05C980 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0914B4 7F05C984 AFBF003C */ sw $ra, 0x3c($sp) -/* 0914B8 7F05C988 AFB1002C */ sw $s1, 0x2c($sp) -/* 0914BC 7F05C98C 00808825 */ move $s1, $a0 -/* 0914C0 7F05C990 AFB40038 */ sw $s4, 0x38($sp) -/* 0914C4 7F05C994 AFB30034 */ sw $s3, 0x34($sp) -/* 0914C8 7F05C998 AFB20030 */ sw $s2, 0x30($sp) -/* 0914CC 7F05C99C AFB00028 */ sw $s0, 0x28($sp) -/* 0914D0 7F05C9A0 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0914D4 7F05C9A4 0FC17674 */ jal getCurrentPlayerWeaponId -/* 0914D8 7F05C9A8 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0914DC 7F05C9AC 0FC1722D */ jal get_ptr_item_statistics -/* 0914E0 7F05C9B0 00402025 */ move $a0, $v0 -/* 0914E4 7F05C9B4 0011A0C0 */ sll $s4, $s1, 3 -/* 0914E8 7F05C9B8 0291A023 */ subu $s4, $s4, $s1 -/* 0914EC 7F05C9BC 3C138008 */ lui $s3, %hi(g_CurrentPlayer) -/* 0914F0 7F05C9C0 0014A080 */ sll $s4, $s4, 2 -/* 0914F4 7F05C9C4 2673A0B0 */ addiu $s3, %lo(g_CurrentPlayer) # addiu $s3, $s3, -0x5f50 -/* 0914F8 7F05C9C8 0291A021 */ addu $s4, $s4, $s1 -/* 0914FC 7F05C9CC 8E6F0000 */ lw $t7, ($s3) -/* 091500 7F05C9D0 0014A080 */ sll $s4, $s4, 2 -/* 091504 7F05C9D4 0291A021 */ addu $s4, $s4, $s1 -/* 091508 7F05C9D8 0014A0C0 */ sll $s4, $s4, 3 -/* 09150C 7F05C9DC 01F41821 */ addu $v1, $t7, $s4 -/* 091510 7F05C9E0 8C780A08 */ lw $t8, 0xa08($v1) -/* 091514 7F05C9E4 00112080 */ sll $a0, $s1, 2 -/* 091518 7F05C9E8 27AE0068 */ addiu $t6, $sp, 0x68 -/* 09151C 7F05C9EC 27190002 */ addiu $t9, $t8, 2 -/* 091520 7F05C9F0 C4540040 */ lwc1 $f20, 0x40($v0) -/* 091524 7F05C9F4 008E8021 */ addu $s0, $a0, $t6 -/* 091528 7F05C9F8 07210004 */ bgez $t9, .L7F05CA0C -/* 09152C 7F05C9FC 33280003 */ andi $t0, $t9, 3 -/* 091530 7F05CA00 11000002 */ beqz $t0, .L7F05CA0C -/* 091534 7F05CA04 00000000 */ nop -/* 091538 7F05CA08 2508FFFC */ addiu $t0, $t0, -4 -.L7F05CA0C: -/* 09153C 7F05CA0C AE080000 */ sw $t0, ($s0) -/* 091540 7F05CA10 8C6A0A08 */ lw $t2, 0xa08($v1) -/* 091544 7F05CA14 27A90060 */ addiu $t1, $sp, 0x60 -/* 091548 7F05CA18 00892821 */ addu $a1, $a0, $t1 -/* 09154C 7F05CA1C 254B0001 */ addiu $t3, $t2, 1 -/* 091550 7F05CA20 05610004 */ bgez $t3, .L7F05CA34 -/* 091554 7F05CA24 316C0003 */ andi $t4, $t3, 3 -/* 091558 7F05CA28 11800002 */ beqz $t4, .L7F05CA34 -/* 09155C 7F05CA2C 00000000 */ nop -/* 091560 7F05CA30 258CFFFC */ addiu $t4, $t4, -4 -.L7F05CA34: -/* 091564 7F05CA34 ACAC0000 */ sw $t4, ($a1) -/* 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 -/* 091578 7F05CA48 4481B000 */ mtc1 $at, $f22 -/* 09157C 7F05CA4C 2412000C */ li $s2, 12 -/* 091580 7F05CA50 04410005 */ bgez $v0, .L7F05CA68 -/* 091584 7F05CA54 468021A0 */ cvt.s.w $f6, $f4 -/* 091588 7F05CA58 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09158C 7F05CA5C 44814000 */ mtc1 $at, $f8 -/* 091590 7F05CA60 00000000 */ nop -/* 091594 7F05CA64 46083180 */ add.s $f6, $f6, $f8 -.L7F05CA68: -/* 091598 7F05CA68 46163282 */ mul.s $f10, $f6, $f22 -/* 09159C 7F05CA6C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0915A0 7F05CA70 44818000 */ mtc1 $at, $f16 -/* 0915A4 7F05CA74 3C018005 */ lui $at, %hi(D_80053C14) -/* 0915A8 7F05CA78 C4243C14 */ lwc1 $f4, %lo(D_80053C14)($at) -/* 0915AC 7F05CA7C 8E190000 */ lw $t9, ($s0) -/* 0915B0 7F05CA80 001178C0 */ sll $t7, $s1, 3 -/* 0915B4 7F05CA84 46105481 */ sub.s $f18, $f10, $f16 -/* 0915B8 7F05CA88 03320019 */ multu $t9, $s2 -/* 0915BC 7F05CA8C 01F17823 */ subu $t7, $t7, $s1 -/* 0915C0 7F05CA90 000F7880 */ sll $t7, $t7, 2 -/* 0915C4 7F05CA94 46049202 */ mul.s $f8, $f18, $f4 -/* 0915C8 7F05CA98 01F17821 */ addu $t7, $t7, $s1 -/* 0915CC 7F05CA9C 8E6E0000 */ lw $t6, ($s3) -/* 0915D0 7F05CAA0 000F7880 */ sll $t7, $t7, 2 -/* 0915D4 7F05CAA4 01F17821 */ addu $t7, $t7, $s1 -/* 0915D8 7F05CAA8 000F78C0 */ sll $t7, $t7, 3 -/* 0915DC 7F05CAAC 01CFC021 */ addu $t8, $t6, $t7 -/* 0915E0 7F05CAB0 46144182 */ mul.s $f6, $f8, $f20 -/* 0915E4 7F05CAB4 00004012 */ mflo $t0 -/* 0915E8 7F05CAB8 03084821 */ addu $t1, $t8, $t0 -/* 0915EC 7F05CABC 0C002914 */ jal randomGetNext -/* 0915F0 7F05CAC0 E52609A8 */ swc1 $f6, 0x9a8($t1) -/* 0915F4 7F05CAC4 44825000 */ mtc1 $v0, $f10 -/* 0915F8 7F05CAC8 04410005 */ bgez $v0, .L7F05CAE0 -/* 0915FC 7F05CACC 46805420 */ cvt.s.w $f16, $f10 -/* 091600 7F05CAD0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 091604 7F05CAD4 44819000 */ mtc1 $at, $f18 -/* 091608 7F05CAD8 00000000 */ nop -/* 09160C 7F05CADC 46128400 */ add.s $f16, $f16, $f18 -.L7F05CAE0: -/* 091610 7F05CAE0 46168102 */ mul.s $f4, $f16, $f22 -/* 091614 7F05CAE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 091618 7F05CAE8 44814000 */ mtc1 $at, $f8 -/* 09161C 7F05CAEC 3C018005 */ lui $at, %hi(D_80053C18) -/* 091620 7F05CAF0 C42A3C18 */ lwc1 $f10, %lo(D_80053C18)($at) -/* 091624 7F05CAF4 8E0D0000 */ lw $t5, ($s0) -/* 091628 7F05CAF8 001158C0 */ sll $t3, $s1, 3 -/* 09162C 7F05CAFC 46082181 */ sub.s $f6, $f4, $f8 -/* 091630 7F05CB00 01B20019 */ multu $t5, $s2 -/* 091634 7F05CB04 01715823 */ subu $t3, $t3, $s1 -/* 091638 7F05CB08 000B5880 */ sll $t3, $t3, 2 -/* 09163C 7F05CB0C 460A3482 */ mul.s $f18, $f6, $f10 -/* 091640 7F05CB10 01715821 */ addu $t3, $t3, $s1 -/* 091644 7F05CB14 8E6A0000 */ lw $t2, ($s3) -/* 091648 7F05CB18 000B5880 */ sll $t3, $t3, 2 -/* 09164C 7F05CB1C 01715821 */ addu $t3, $t3, $s1 -/* 091650 7F05CB20 000B58C0 */ sll $t3, $t3, 3 -/* 091654 7F05CB24 014B6021 */ addu $t4, $t2, $t3 -/* 091658 7F05CB28 46149402 */ mul.s $f16, $f18, $f20 -/* 09165C 7F05CB2C 00007012 */ mflo $t6 -/* 091660 7F05CB30 018E7821 */ addu $t7, $t4, $t6 -/* 091664 7F05CB34 0011C0C0 */ sll $t8, $s1, 3 -/* 091668 7F05CB38 0311C023 */ subu $t8, $t8, $s1 -/* 09166C 7F05CB3C 0018C080 */ sll $t8, $t8, 2 -/* 091670 7F05CB40 0311C021 */ addu $t8, $t8, $s1 -/* 091674 7F05CB44 E5F009AC */ swc1 $f16, 0x9ac($t7) -/* 091678 7F05CB48 8E090000 */ lw $t1, ($s0) -/* 09167C 7F05CB4C 8E790000 */ lw $t9, ($s3) -/* 091680 7F05CB50 0018C080 */ sll $t8, $t8, 2 -/* 091684 7F05CB54 01320019 */ multu $t1, $s2 -/* 091688 7F05CB58 0311C021 */ addu $t8, $t8, $s1 -/* 09168C 7F05CB5C 0018C0C0 */ sll $t8, $t8, 3 -/* 091690 7F05CB60 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 091694 7F05CB64 44812000 */ mtc1 $at, $f4 -/* 091698 7F05CB68 03384021 */ addu $t0, $t9, $t8 -/* 09169C 7F05CB6C 00005012 */ mflo $t2 -/* 0916A0 7F05CB70 010A5821 */ addu $t3, $t0, $t2 -/* 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 -/* 0916B4 7F05CB84 04410004 */ bgez $v0, .L7F05CB98 -/* 0916B8 7F05CB88 468041A0 */ cvt.s.w $f6, $f8 -/* 0916BC 7F05CB8C 44815000 */ mtc1 $at, $f10 -/* 0916C0 7F05CB90 00000000 */ nop -/* 0916C4 7F05CB94 460A3180 */ add.s $f6, $f6, $f10 -.L7F05CB98: -/* 0916C8 7F05CB98 46163482 */ mul.s $f18, $f6, $f22 -/* 0916CC 7F05CB9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0916D0 7F05CBA0 44818000 */ mtc1 $at, $f16 -/* 0916D4 7F05CBA4 3C018005 */ lui $at, %hi(D_80053C1C) -/* 0916D8 7F05CBA8 C4283C1C */ lwc1 $f8, %lo(D_80053C1C)($at) -/* 0916DC 7F05CBAC 8E0F0000 */ lw $t7, ($s0) -/* 0916E0 7F05CBB0 001160C0 */ sll $t4, $s1, 3 -/* 0916E4 7F05CBB4 46109101 */ sub.s $f4, $f18, $f16 -/* 0916E8 7F05CBB8 01F20019 */ multu $t7, $s2 -/* 0916EC 7F05CBBC 01916023 */ subu $t4, $t4, $s1 -/* 0916F0 7F05CBC0 000C6080 */ sll $t4, $t4, 2 -/* 0916F4 7F05CBC4 46082282 */ mul.s $f10, $f4, $f8 -/* 0916F8 7F05CBC8 01916021 */ addu $t4, $t4, $s1 -/* 0916FC 7F05CBCC 8E6D0000 */ lw $t5, ($s3) -/* 091700 7F05CBD0 000C6080 */ sll $t4, $t4, 2 -/* 091704 7F05CBD4 01916021 */ addu $t4, $t4, $s1 -/* 091708 7F05CBD8 000C60C0 */ sll $t4, $t4, 3 -/* 09170C 7F05CBDC 01AC7021 */ addu $t6, $t5, $t4 -/* 091710 7F05CBE0 46145182 */ mul.s $f6, $f10, $f20 -/* 091714 7F05CBE4 0000C812 */ mflo $t9 -/* 091718 7F05CBE8 01D9C021 */ addu $t8, $t6, $t9 -/* 09171C 7F05CBEC 001140C0 */ sll $t0, $s1, 3 -/* 091720 7F05CBF0 01114023 */ subu $t0, $t0, $s1 -/* 091724 7F05CBF4 00084080 */ sll $t0, $t0, 2 -/* 091728 7F05CBF8 01114021 */ addu $t0, $t0, $s1 -/* 09172C 7F05CBFC E70609D8 */ swc1 $f6, 0x9d8($t8) -/* 091730 7F05CC00 8E0B0000 */ lw $t3, ($s0) -/* 091734 7F05CC04 8E690000 */ lw $t1, ($s3) -/* 091738 7F05CC08 00084080 */ sll $t0, $t0, 2 -/* 09173C 7F05CC0C 01720019 */ multu $t3, $s2 -/* 091740 7F05CC10 01114021 */ addu $t0, $t0, $s1 -/* 091744 7F05CC14 000840C0 */ sll $t0, $t0, 3 -/* 091748 7F05CC18 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09174C 7F05CC1C 44819000 */ mtc1 $at, $f18 -/* 091750 7F05CC20 01285021 */ addu $t2, $t1, $t0 -/* 091754 7F05CC24 00006812 */ mflo $t5 -/* 091758 7F05CC28 014D6021 */ addu $t4, $t2, $t5 -/* 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 -/* 09176C 7F05CC3C 04410004 */ bgez $v0, .L7F05CC50 -/* 091770 7F05CC40 46808120 */ cvt.s.w $f4, $f16 -/* 091774 7F05CC44 44814000 */ mtc1 $at, $f8 -/* 091778 7F05CC48 00000000 */ nop -/* 09177C 7F05CC4C 46082100 */ add.s $f4, $f4, $f8 -.L7F05CC50: -/* 091780 7F05CC50 46162282 */ mul.s $f10, $f4, $f22 -/* 091784 7F05CC54 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 091788 7F05CC58 44813000 */ mtc1 $at, $f6 -/* 09178C 7F05CC5C 3C018005 */ lui $at, %hi(D_80053C20) -/* 091790 7F05CC60 C4303C20 */ lwc1 $f16, %lo(D_80053C20)($at) -/* 091794 7F05CC64 8E180000 */ lw $t8, ($s0) -/* 091798 7F05CC68 001170C0 */ sll $t6, $s1, 3 -/* 09179C 7F05CC6C 46065481 */ sub.s $f18, $f10, $f6 -/* 0917A0 7F05CC70 03120019 */ multu $t8, $s2 -/* 0917A4 7F05CC74 01D17023 */ subu $t6, $t6, $s1 -/* 0917A8 7F05CC78 000E7080 */ sll $t6, $t6, 2 -/* 0917AC 7F05CC7C 46109202 */ mul.s $f8, $f18, $f16 -/* 0917B0 7F05CC80 01D17021 */ addu $t6, $t6, $s1 -/* 0917B4 7F05CC84 8E6F0000 */ lw $t7, ($s3) -/* 0917B8 7F05CC88 000E7080 */ sll $t6, $t6, 2 -/* 0917BC 7F05CC8C 01D17021 */ addu $t6, $t6, $s1 -/* 0917C0 7F05CC90 000E70C0 */ sll $t6, $t6, 3 -/* 0917C4 7F05CC94 01EEC821 */ addu $t9, $t7, $t6 -/* 0917C8 7F05CC98 46144102 */ mul.s $f4, $f8, $f20 -/* 0917CC 7F05CC9C 00004812 */ mflo $t1 -/* 0917D0 7F05CCA0 03294021 */ addu $t0, $t9, $t1 -/* 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 -/* 0917E4 7F05CCB4 04410005 */ bgez $v0, .L7F05CCCC -/* 0917E8 7F05CCB8 468051A0 */ cvt.s.w $f6, $f10 -/* 0917EC 7F05CCBC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0917F0 7F05CCC0 44819000 */ mtc1 $at, $f18 -/* 0917F4 7F05CCC4 00000000 */ nop -/* 0917F8 7F05CCC8 46123180 */ add.s $f6, $f6, $f18 -.L7F05CCCC: -/* 0917FC 7F05CCCC 46163402 */ mul.s $f16, $f6, $f22 -/* 091800 7F05CCD0 8E0C0000 */ lw $t4, ($s0) -/* 091804 7F05CCD4 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 091808 7F05CCD8 44814000 */ mtc1 $at, $f8 -/* 09180C 7F05CCDC 01920019 */ multu $t4, $s2 -/* 091810 7F05CCE0 01515023 */ subu $t2, $t2, $s1 -/* 091814 7F05CCE4 000A5080 */ sll $t2, $t2, 2 -/* 091818 7F05CCE8 46088102 */ mul.s $f4, $f16, $f8 -/* 09181C 7F05CCEC 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 091820 7F05CCF0 44815000 */ mtc1 $at, $f10 -/* 091824 7F05CCF4 01515021 */ addu $t2, $t2, $s1 -/* 091828 7F05CCF8 8E6B0000 */ lw $t3, ($s3) -/* 09182C 7F05CCFC 000A5080 */ sll $t2, $t2, 2 -/* 091830 7F05CD00 01515021 */ addu $t2, $t2, $s1 -/* 091834 7F05CD04 460A2480 */ add.s $f18, $f4, $f10 -/* 091838 7F05CD08 000A50C0 */ sll $t2, $t2, 3 -/* 09183C 7F05CD0C 00007812 */ mflo $t7 -/* 091840 7F05CD10 016A6821 */ addu $t5, $t3, $t2 -/* 091844 7F05CD14 01AF7021 */ addu $t6, $t5, $t7 -/* 091848 7F05CD18 0C002914 */ jal randomGetNext -/* 09184C 7F05CD1C E5D20978 */ swc1 $f18, 0x978($t6) -/* 091850 7F05CD20 8E780000 */ lw $t8, ($s3) -/* 091854 7F05CD24 44828000 */ mtc1 $v0, $f16 -/* 091858 7F05CD28 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 09185C 7F05CD2C 44813000 */ mtc1 $at, $f6 -/* 091860 7F05CD30 03141821 */ addu $v1, $t8, $s4 -/* 091864 7F05CD34 04410005 */ bgez $v0, .L7F05CD4C -/* 091868 7F05CD38 46808220 */ cvt.s.w $f8, $f16 -/* 09186C 7F05CD3C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 091870 7F05CD40 44812000 */ mtc1 $at, $f4 -/* 091874 7F05CD44 00000000 */ nop -/* 091878 7F05CD48 46044200 */ add.s $f8, $f8, $f4 -.L7F05CD4C: -/* 09187C 7F05CD4C 46164282 */ mul.s $f10, $f8, $f22 -/* 091880 7F05CD50 8E190000 */ lw $t9, ($s0) -/* 091884 7F05CD54 C4700A14 */ lwc1 $f16, 0xa14($v1) -/* 091888 7F05CD58 03320019 */ multu $t9, $s2 -/* 09188C 7F05CD5C 460A3480 */ add.s $f18, $f6, $f10 -/* 091890 7F05CD60 46128102 */ mul.s $f4, $f16, $f18 -/* 091894 7F05CD64 00004812 */ mflo $t1 -/* 091898 7F05CD68 00694021 */ addu $t0, $v1, $t1 -/* 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 -/* 0918AC 7F05CD7C 04410005 */ bgez $v0, .L7F05CD94 -/* 0918B0 7F05CD80 468041A0 */ cvt.s.w $f6, $f8 -/* 0918B4 7F05CD84 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0918B8 7F05CD88 44815000 */ mtc1 $at, $f10 -/* 0918BC 7F05CD8C 00000000 */ nop -/* 0918C0 7F05CD90 460A3180 */ add.s $f6, $f6, $f10 -.L7F05CD94: -/* 0918C4 7F05CD94 46163402 */ mul.s $f16, $f6, $f22 -/* 0918C8 7F05CD98 8E0D0000 */ lw $t5, ($s0) -/* 0918CC 7F05CD9C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0918D0 7F05CDA0 44819000 */ mtc1 $at, $f18 -/* 0918D4 7F05CDA4 01B20019 */ multu $t5, $s2 -/* 0918D8 7F05CDA8 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 0918DC 7F05CDAC 44814000 */ mtc1 $at, $f8 -/* 0918E0 7F05CDB0 46128101 */ sub.s $f4, $f16, $f18 -/* 0918E4 7F05CDB4 01515023 */ subu $t2, $t2, $s1 -/* 0918E8 7F05CDB8 000A5080 */ sll $t2, $t2, 2 -/* 0918EC 7F05CDBC 01515021 */ addu $t2, $t2, $s1 -/* 0918F0 7F05CDC0 46082282 */ mul.s $f10, $f4, $f8 -/* 0918F4 7F05CDC4 8E6B0000 */ lw $t3, ($s3) -/* 0918F8 7F05CDC8 000A5080 */ sll $t2, $t2, 2 -/* 0918FC 7F05CDCC 01515021 */ addu $t2, $t2, $s1 -/* 091900 7F05CDD0 000A50C0 */ sll $t2, $t2, 3 -/* 091904 7F05CDD4 00007812 */ mflo $t7 -/* 091908 7F05CDD8 016A6021 */ addu $t4, $t3, $t2 -/* 09190C 7F05CDDC 018F7021 */ addu $t6, $t4, $t7 -/* 091910 7F05CDE0 E5CA0980 */ swc1 $f10, 0x980($t6) -/* 091914 7F05CDE4 8E640000 */ lw $a0, ($s3) -/* 091918 7F05CDE8 24020002 */ li $v0, 2 -/* 09191C 7F05CDEC 00941821 */ addu $v1, $a0, $s4 -/* 091920 7F05CDF0 8C650A18 */ lw $a1, 0xa18($v1) -/* 091924 7F05CDF4 04A1001D */ bgez $a1, .L7F05CE6C -/* 091928 7F05CDF8 00000000 */ nop -/* 09192C 7F05CDFC 8E090000 */ lw $t1, ($s0) -/* 091930 7F05CE00 0011C0C0 */ sll $t8, $s1, 3 -/* 091934 7F05CE04 0311C023 */ subu $t8, $t8, $s1 -/* 091938 7F05CE08 01320019 */ multu $t1, $s2 -/* 09193C 7F05CE0C 0018C080 */ sll $t8, $t8, 2 -/* 091940 7F05CE10 0311C021 */ addu $t8, $t8, $s1 -/* 091944 7F05CE14 0018C080 */ sll $t8, $t8, 2 -/* 091948 7F05CE18 0311C021 */ addu $t8, $t8, $s1 -/* 09194C 7F05CE1C 0018C0C0 */ sll $t8, $t8, 3 -/* 091950 7F05CE20 0098C821 */ addu $t9, $a0, $t8 -/* 091954 7F05CE24 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 091958 7F05CE28 44818000 */ mtc1 $at, $f16 -/* 09195C 7F05CE2C 2405FFFE */ li $a1, -2 -/* 091960 7F05CE30 00004012 */ mflo $t0 -/* 091964 7F05CE34 03281021 */ addu $v0, $t9, $t0 -/* 091968 7F05CE38 C4460978 */ lwc1 $f6, 0x978($v0) -/* 09196C 7F05CE3C 240D0001 */ li $t5, 1 -/* 091970 7F05CE40 46103482 */ mul.s $f18, $f6, $f16 -/* 091974 7F05CE44 E4520978 */ swc1 $f18, 0x978($v0) -/* 091978 7F05CE48 8E6B0000 */ lw $t3, ($s3) -/* 09197C 7F05CE4C 01741821 */ addu $v1, $t3, $s4 -/* 091980 7F05CE50 8C6A0A18 */ lw $t2, 0xa18($v1) -/* 091984 7F05CE54 14AA0003 */ bne $a1, $t2, .L7F05CE64 -/* 091988 7F05CE58 00000000 */ nop -/* 09198C 7F05CE5C 10000008 */ b .L7F05CE80 -/* 091990 7F05CE60 AC6D0A18 */ sw $t5, 0xa18($v1) -.L7F05CE64: -/* 091994 7F05CE64 10000006 */ b .L7F05CE80 -/* 091998 7F05CE68 AC650A18 */ sw $a1, 0xa18($v1) -.L7F05CE6C: -/* 09199C 7F05CE6C 14450003 */ bne $v0, $a1, .L7F05CE7C -/* 0919A0 7F05CE70 240CFFFF */ li $t4, -1 -/* 0919A4 7F05CE74 10000002 */ b .L7F05CE80 -/* 0919A8 7F05CE78 AC6C0A18 */ sw $t4, 0xa18($v1) -.L7F05CE7C: -/* 0919AC 7F05CE7C AC620A18 */ sw $v0, 0xa18($v1) -.L7F05CE80: -/* 0919B0 7F05CE80 8E6F0000 */ lw $t7, ($s3) -/* 0919B4 7F05CE84 01F41821 */ addu $v1, $t7, $s4 -/* 0919B8 7F05CE88 C4640A14 */ lwc1 $f4, 0xa14($v1) -/* 0919BC 7F05CE8C 46002207 */ neg.s $f8, $f4 -/* 0919C0 7F05CE90 E4680A14 */ swc1 $f8, 0xa14($v1) -/* 0919C4 7F05CE94 8FBF003C */ lw $ra, 0x3c($sp) -/* 0919C8 7F05CE98 8FB40038 */ lw $s4, 0x38($sp) -/* 0919CC 7F05CE9C 8FB30034 */ lw $s3, 0x34($sp) -/* 0919D0 7F05CEA0 8FB20030 */ lw $s2, 0x30($sp) -/* 0919D4 7F05CEA4 8FB1002C */ lw $s1, 0x2c($sp) -/* 0919D8 7F05CEA8 8FB00028 */ lw $s0, 0x28($sp) -/* 0919DC 7F05CEAC D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0919E0 7F05CEB0 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0919E4 7F05CEB4 03E00008 */ jr $ra -/* 0919E8 7F05CEB8 27BD0070 */ addiu $sp, $sp, 0x70 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_80053C14 -.word 0x3da3d70a /*0.079999998*/ -glabel D_80053C18 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C1C -.word 0x3dcccccd /*0.1*/ -glabel D_80053C20 -.word 0x3dcccccd /*0.1*/ -.text -glabel bgunCalculateBlend -/* 08F820 7F05CE30 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 08F824 7F05CE34 AFBF003C */ sw $ra, 0x3c($sp) -/* 08F828 7F05CE38 AFB1002C */ sw $s1, 0x2c($sp) -/* 08F82C 7F05CE3C 00808825 */ move $s1, $a0 -/* 08F830 7F05CE40 AFB40038 */ sw $s4, 0x38($sp) -/* 08F834 7F05CE44 AFB30034 */ sw $s3, 0x34($sp) -/* 08F838 7F05CE48 AFB20030 */ sw $s2, 0x30($sp) -/* 08F83C 7F05CE4C AFB00028 */ sw $s0, 0x28($sp) -/* 08F840 7F05CE50 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 08F844 7F05CE54 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 08F848 7F05CE58 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 08F84C 7F05CE5C 0FC17359 */ jal get_ptr_item_statistics -/* 08F850 7F05CE60 00402025 */ move $a0, $v0 -/* 08F854 7F05CE64 0011A0C0 */ sll $s4, $s1, 3 -/* 08F858 7F05CE68 0291A023 */ subu $s4, $s4, $s1 -/* 08F85C 7F05CE6C 3C138007 */ lui $s3, %hi(g_CurrentPlayer) # $s3, 0x8007 -/* 08F860 7F05CE70 0014A080 */ sll $s4, $s4, 2 -/* 08F864 7F05CE74 26738BC0 */ addiu $s3, %lo(g_CurrentPlayer) # addiu $s3, $s3, -0x7440 -/* 08F868 7F05CE78 0291A021 */ addu $s4, $s4, $s1 -/* 08F86C 7F05CE7C 8E6F0000 */ lw $t7, ($s3) -/* 08F870 7F05CE80 0014A080 */ sll $s4, $s4, 2 -/* 08F874 7F05CE84 0291A021 */ addu $s4, $s4, $s1 -/* 08F878 7F05CE88 0014A0C0 */ sll $s4, $s4, 3 -/* 08F87C 7F05CE8C 01F41821 */ addu $v1, $t7, $s4 -/* 08F880 7F05CE90 8C780A00 */ lw $t8, 0xa00($v1) -/* 08F884 7F05CE94 00112080 */ sll $a0, $s1, 2 -/* 08F888 7F05CE98 27AE0068 */ addiu $t6, $sp, 0x68 -/* 08F88C 7F05CE9C 27190002 */ addiu $t9, $t8, 2 -/* 08F890 7F05CEA0 C4540040 */ lwc1 $f20, 0x40($v0) -/* 08F894 7F05CEA4 008E8021 */ addu $s0, $a0, $t6 -/* 08F898 7F05CEA8 07210004 */ bgez $t9, .L7F05CEBC -/* 08F89C 7F05CEAC 33280003 */ andi $t0, $t9, 3 -/* 08F8A0 7F05CEB0 11000002 */ beqz $t0, .L7F05CEBC -/* 08F8A4 7F05CEB4 00000000 */ nop -/* 08F8A8 7F05CEB8 2508FFFC */ addiu $t0, $t0, -4 -.L7F05CEBC: -/* 08F8AC 7F05CEBC AE080000 */ sw $t0, ($s0) -/* 08F8B0 7F05CEC0 8C6A0A00 */ lw $t2, 0xa00($v1) -/* 08F8B4 7F05CEC4 27A90060 */ addiu $t1, $sp, 0x60 -/* 08F8B8 7F05CEC8 00892821 */ addu $a1, $a0, $t1 -/* 08F8BC 7F05CECC 254B0001 */ addiu $t3, $t2, 1 -/* 08F8C0 7F05CED0 05610004 */ bgez $t3, .L7F05CEE4 -/* 08F8C4 7F05CED4 316C0003 */ andi $t4, $t3, 3 -/* 08F8C8 7F05CED8 11800002 */ beqz $t4, .L7F05CEE4 -/* 08F8CC 7F05CEDC 00000000 */ nop -/* 08F8D0 7F05CEE0 258CFFFC */ addiu $t4, $t4, -4 -.L7F05CEE4: -/* 08F8D4 7F05CEE4 ACAC0000 */ sw $t4, ($a1) -/* 08F8D8 7F05CEE8 0C00262C */ jal randomGetNext -/* 08F8DC 7F05CEEC AC6C0A00 */ sw $t4, 0xa00($v1) -/* 08F8E0 7F05CEF0 44822000 */ mtc1 $v0, $f4 -/* 08F8E4 7F05CEF4 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 08F8E8 7F05CEF8 4481B000 */ mtc1 $at, $f22 -/* 08F8EC 7F05CEFC 2412000C */ li $s2, 12 -/* 08F8F0 7F05CF00 04410005 */ bgez $v0, .L7F05CF18 -/* 08F8F4 7F05CF04 468021A0 */ cvt.s.w $f6, $f4 -/* 08F8F8 7F05CF08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08F8FC 7F05CF0C 44814000 */ mtc1 $at, $f8 -/* 08F900 7F05CF10 00000000 */ nop -/* 08F904 7F05CF14 46083180 */ add.s $f6, $f6, $f8 -.L7F05CF18: -/* 08F908 7F05CF18 46163282 */ mul.s $f10, $f6, $f22 -/* 08F90C 7F05CF1C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 08F910 7F05CF20 44818000 */ mtc1 $at, $f16 -/* 08F914 7F05CF24 3C018005 */ lui $at, %hi(D_80053C14) # $at, 0x8005 -/* 08F918 7F05CF28 C4249D54 */ lwc1 $f4, %lo(D_80053C14)($at) -/* 08F91C 7F05CF2C 8E190000 */ lw $t9, ($s0) -/* 08F920 7F05CF30 001178C0 */ sll $t7, $s1, 3 -/* 08F924 7F05CF34 46105481 */ sub.s $f18, $f10, $f16 -/* 08F928 7F05CF38 03320019 */ multu $t9, $s2 -/* 08F92C 7F05CF3C 01F17823 */ subu $t7, $t7, $s1 -/* 08F930 7F05CF40 000F7880 */ sll $t7, $t7, 2 -/* 08F934 7F05CF44 46049202 */ mul.s $f8, $f18, $f4 -/* 08F938 7F05CF48 01F17821 */ addu $t7, $t7, $s1 -/* 08F93C 7F05CF4C 8E6E0000 */ lw $t6, ($s3) -/* 08F940 7F05CF50 000F7880 */ sll $t7, $t7, 2 -/* 08F944 7F05CF54 01F17821 */ addu $t7, $t7, $s1 -/* 08F948 7F05CF58 000F78C0 */ sll $t7, $t7, 3 -/* 08F94C 7F05CF5C 01CFC021 */ addu $t8, $t6, $t7 -/* 08F950 7F05CF60 46144182 */ mul.s $f6, $f8, $f20 -/* 08F954 7F05CF64 00004012 */ mflo $t0 -/* 08F958 7F05CF68 03084821 */ addu $t1, $t8, $t0 -/* 08F95C 7F05CF6C 0C00262C */ jal randomGetNext -/* 08F960 7F05CF70 E52609A0 */ swc1 $f6, 0x9a0($t1) -/* 08F964 7F05CF74 44825000 */ mtc1 $v0, $f10 -/* 08F968 7F05CF78 04410005 */ bgez $v0, .L7F05CF90 -/* 08F96C 7F05CF7C 46805420 */ cvt.s.w $f16, $f10 -/* 08F970 7F05CF80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08F974 7F05CF84 44819000 */ mtc1 $at, $f18 -/* 08F978 7F05CF88 00000000 */ nop -/* 08F97C 7F05CF8C 46128400 */ add.s $f16, $f16, $f18 -.L7F05CF90: -/* 08F980 7F05CF90 46168102 */ mul.s $f4, $f16, $f22 -/* 08F984 7F05CF94 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 08F988 7F05CF98 44814000 */ mtc1 $at, $f8 -/* 08F98C 7F05CF9C 3C018005 */ lui $at, %hi(D_80053C18) # $at, 0x8005 -/* 08F990 7F05CFA0 C42A9D58 */ lwc1 $f10, %lo(D_80053C18)($at) -/* 08F994 7F05CFA4 8E0D0000 */ lw $t5, ($s0) -/* 08F998 7F05CFA8 001158C0 */ sll $t3, $s1, 3 -/* 08F99C 7F05CFAC 46082181 */ sub.s $f6, $f4, $f8 -/* 08F9A0 7F05CFB0 01B20019 */ multu $t5, $s2 -/* 08F9A4 7F05CFB4 01715823 */ subu $t3, $t3, $s1 -/* 08F9A8 7F05CFB8 000B5880 */ sll $t3, $t3, 2 -/* 08F9AC 7F05CFBC 460A3482 */ mul.s $f18, $f6, $f10 -/* 08F9B0 7F05CFC0 01715821 */ addu $t3, $t3, $s1 -/* 08F9B4 7F05CFC4 8E6A0000 */ lw $t2, ($s3) -/* 08F9B8 7F05CFC8 000B5880 */ sll $t3, $t3, 2 -/* 08F9BC 7F05CFCC 01715821 */ addu $t3, $t3, $s1 -/* 08F9C0 7F05CFD0 000B58C0 */ sll $t3, $t3, 3 -/* 08F9C4 7F05CFD4 014B6021 */ addu $t4, $t2, $t3 -/* 08F9C8 7F05CFD8 46149402 */ mul.s $f16, $f18, $f20 -/* 08F9CC 7F05CFDC 00007012 */ mflo $t6 -/* 08F9D0 7F05CFE0 018E7821 */ addu $t7, $t4, $t6 -/* 08F9D4 7F05CFE4 0011C0C0 */ sll $t8, $s1, 3 -/* 08F9D8 7F05CFE8 0311C023 */ subu $t8, $t8, $s1 -/* 08F9DC 7F05CFEC 0018C080 */ sll $t8, $t8, 2 -/* 08F9E0 7F05CFF0 0311C021 */ addu $t8, $t8, $s1 -/* 08F9E4 7F05CFF4 E5F009A4 */ swc1 $f16, 0x9a4($t7) -/* 08F9E8 7F05CFF8 8E090000 */ lw $t1, ($s0) -/* 08F9EC 7F05CFFC 8E790000 */ lw $t9, ($s3) -/* 08F9F0 7F05D000 0018C080 */ sll $t8, $t8, 2 -/* 08F9F4 7F05D004 01320019 */ multu $t1, $s2 -/* 08F9F8 7F05D008 0311C021 */ addu $t8, $t8, $s1 -/* 08F9FC 7F05D00C 0018C0C0 */ sll $t8, $t8, 3 -/* 08FA00 7F05D010 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 08FA04 7F05D014 44812000 */ mtc1 $at, $f4 -/* 08FA08 7F05D018 03384021 */ addu $t0, $t9, $t8 -/* 08FA0C 7F05D01C 00005012 */ mflo $t2 -/* 08FA10 7F05D020 010A5821 */ addu $t3, $t0, $t2 -/* 08FA14 7F05D024 0C00262C */ jal randomGetNext -/* 08FA18 7F05D028 E56409A8 */ swc1 $f4, 0x9a8($t3) -/* 08FA1C 7F05D02C 44824000 */ mtc1 $v0, $f8 -/* 08FA20 7F05D030 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08FA24 7F05D034 04410004 */ bgez $v0, .L7F05D048 -/* 08FA28 7F05D038 468041A0 */ cvt.s.w $f6, $f8 -/* 08FA2C 7F05D03C 44815000 */ mtc1 $at, $f10 -/* 08FA30 7F05D040 00000000 */ nop -/* 08FA34 7F05D044 460A3180 */ add.s $f6, $f6, $f10 -.L7F05D048: -/* 08FA38 7F05D048 46163482 */ mul.s $f18, $f6, $f22 -/* 08FA3C 7F05D04C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 08FA40 7F05D050 44818000 */ mtc1 $at, $f16 -/* 08FA44 7F05D054 3C018005 */ lui $at, %hi(D_80053C1C) # $at, 0x8005 -/* 08FA48 7F05D058 C4289D5C */ lwc1 $f8, %lo(D_80053C1C)($at) -/* 08FA4C 7F05D05C 8E0F0000 */ lw $t7, ($s0) -/* 08FA50 7F05D060 001160C0 */ sll $t4, $s1, 3 -/* 08FA54 7F05D064 46109101 */ sub.s $f4, $f18, $f16 -/* 08FA58 7F05D068 01F20019 */ multu $t7, $s2 -/* 08FA5C 7F05D06C 01916023 */ subu $t4, $t4, $s1 -/* 08FA60 7F05D070 000C6080 */ sll $t4, $t4, 2 -/* 08FA64 7F05D074 46082282 */ mul.s $f10, $f4, $f8 -/* 08FA68 7F05D078 01916021 */ addu $t4, $t4, $s1 -/* 08FA6C 7F05D07C 8E6D0000 */ lw $t5, ($s3) -/* 08FA70 7F05D080 000C6080 */ sll $t4, $t4, 2 -/* 08FA74 7F05D084 01916021 */ addu $t4, $t4, $s1 -/* 08FA78 7F05D088 000C60C0 */ sll $t4, $t4, 3 -/* 08FA7C 7F05D08C 01AC7021 */ addu $t6, $t5, $t4 -/* 08FA80 7F05D090 46145182 */ mul.s $f6, $f10, $f20 -/* 08FA84 7F05D094 0000C812 */ mflo $t9 -/* 08FA88 7F05D098 01D9C021 */ addu $t8, $t6, $t9 -/* 08FA8C 7F05D09C 001140C0 */ sll $t0, $s1, 3 -/* 08FA90 7F05D0A0 01114023 */ subu $t0, $t0, $s1 -/* 08FA94 7F05D0A4 00084080 */ sll $t0, $t0, 2 -/* 08FA98 7F05D0A8 01114021 */ addu $t0, $t0, $s1 -/* 08FA9C 7F05D0AC E70609D0 */ swc1 $f6, 0x9d0($t8) -/* 08FAA0 7F05D0B0 8E0B0000 */ lw $t3, ($s0) -/* 08FAA4 7F05D0B4 8E690000 */ lw $t1, ($s3) -/* 08FAA8 7F05D0B8 00084080 */ sll $t0, $t0, 2 -/* 08FAAC 7F05D0BC 01720019 */ multu $t3, $s2 -/* 08FAB0 7F05D0C0 01114021 */ addu $t0, $t0, $s1 -/* 08FAB4 7F05D0C4 000840C0 */ sll $t0, $t0, 3 -/* 08FAB8 7F05D0C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 08FABC 7F05D0CC 44819000 */ mtc1 $at, $f18 -/* 08FAC0 7F05D0D0 01285021 */ addu $t2, $t1, $t0 -/* 08FAC4 7F05D0D4 00006812 */ mflo $t5 -/* 08FAC8 7F05D0D8 014D6021 */ addu $t4, $t2, $t5 -/* 08FACC 7F05D0DC 0C00262C */ jal randomGetNext -/* 08FAD0 7F05D0E0 E59209D4 */ swc1 $f18, 0x9d4($t4) -/* 08FAD4 7F05D0E4 44828000 */ mtc1 $v0, $f16 -/* 08FAD8 7F05D0E8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08FADC 7F05D0EC 04410004 */ bgez $v0, .L7F05D100 -/* 08FAE0 7F05D0F0 46808120 */ cvt.s.w $f4, $f16 -/* 08FAE4 7F05D0F4 44814000 */ mtc1 $at, $f8 -/* 08FAE8 7F05D0F8 00000000 */ nop -/* 08FAEC 7F05D0FC 46082100 */ add.s $f4, $f4, $f8 -.L7F05D100: -/* 08FAF0 7F05D100 46162282 */ mul.s $f10, $f4, $f22 -/* 08FAF4 7F05D104 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 08FAF8 7F05D108 44813000 */ mtc1 $at, $f6 -/* 08FAFC 7F05D10C 3C018005 */ lui $at, %hi(D_80053C20) # $at, 0x8005 -/* 08FB00 7F05D110 C4309D60 */ lwc1 $f16, %lo(D_80053C20)($at) -/* 08FB04 7F05D114 8E180000 */ lw $t8, ($s0) -/* 08FB08 7F05D118 001170C0 */ sll $t6, $s1, 3 -/* 08FB0C 7F05D11C 46065481 */ sub.s $f18, $f10, $f6 -/* 08FB10 7F05D120 03120019 */ multu $t8, $s2 -/* 08FB14 7F05D124 01D17023 */ subu $t6, $t6, $s1 -/* 08FB18 7F05D128 000E7080 */ sll $t6, $t6, 2 -/* 08FB1C 7F05D12C 46109202 */ mul.s $f8, $f18, $f16 -/* 08FB20 7F05D130 01D17021 */ addu $t6, $t6, $s1 -/* 08FB24 7F05D134 8E6F0000 */ lw $t7, ($s3) -/* 08FB28 7F05D138 000E7080 */ sll $t6, $t6, 2 -/* 08FB2C 7F05D13C 01D17021 */ addu $t6, $t6, $s1 -/* 08FB30 7F05D140 000E70C0 */ sll $t6, $t6, 3 -/* 08FB34 7F05D144 01EEC821 */ addu $t9, $t7, $t6 -/* 08FB38 7F05D148 46144102 */ mul.s $f4, $f8, $f20 -/* 08FB3C 7F05D14C 00004812 */ mflo $t1 -/* 08FB40 7F05D150 03294021 */ addu $t0, $t9, $t1 -/* 08FB44 7F05D154 0C00262C */ jal randomGetNext -/* 08FB48 7F05D158 E50409D8 */ swc1 $f4, 0x9d8($t0) -/* 08FB4C 7F05D15C 44825000 */ mtc1 $v0, $f10 -/* 08FB50 7F05D160 001150C0 */ sll $t2, $s1, 3 -/* 08FB54 7F05D164 04410005 */ bgez $v0, .L7F05D17C -/* 08FB58 7F05D168 468051A0 */ cvt.s.w $f6, $f10 -/* 08FB5C 7F05D16C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08FB60 7F05D170 44819000 */ mtc1 $at, $f18 -/* 08FB64 7F05D174 00000000 */ nop -/* 08FB68 7F05D178 46123180 */ add.s $f6, $f6, $f18 -.L7F05D17C: -/* 08FB6C 7F05D17C 46163402 */ mul.s $f16, $f6, $f22 -/* 08FB70 7F05D180 8E0C0000 */ lw $t4, ($s0) -/* 08FB74 7F05D184 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 08FB78 7F05D188 44814000 */ mtc1 $at, $f8 -/* 08FB7C 7F05D18C 01920019 */ multu $t4, $s2 -/* 08FB80 7F05D190 01515023 */ subu $t2, $t2, $s1 -/* 08FB84 7F05D194 000A5080 */ sll $t2, $t2, 2 -/* 08FB88 7F05D198 46088102 */ mul.s $f4, $f16, $f8 -/* 08FB8C 7F05D19C 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 08FB90 7F05D1A0 44815000 */ mtc1 $at, $f10 -/* 08FB94 7F05D1A4 01515021 */ addu $t2, $t2, $s1 -/* 08FB98 7F05D1A8 8E6B0000 */ lw $t3, ($s3) -/* 08FB9C 7F05D1AC 000A5080 */ sll $t2, $t2, 2 -/* 08FBA0 7F05D1B0 01515021 */ addu $t2, $t2, $s1 -/* 08FBA4 7F05D1B4 460A2480 */ add.s $f18, $f4, $f10 -/* 08FBA8 7F05D1B8 000A50C0 */ sll $t2, $t2, 3 -/* 08FBAC 7F05D1BC 00007812 */ mflo $t7 -/* 08FBB0 7F05D1C0 016A6821 */ addu $t5, $t3, $t2 -/* 08FBB4 7F05D1C4 01AF7021 */ addu $t6, $t5, $t7 -/* 08FBB8 7F05D1C8 0C00262C */ jal randomGetNext -/* 08FBBC 7F05D1CC E5D20970 */ swc1 $f18, 0x970($t6) -/* 08FBC0 7F05D1D0 8E780000 */ lw $t8, ($s3) -/* 08FBC4 7F05D1D4 44828000 */ mtc1 $v0, $f16 -/* 08FBC8 7F05D1D8 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 08FBCC 7F05D1DC 44813000 */ mtc1 $at, $f6 -/* 08FBD0 7F05D1E0 03141821 */ addu $v1, $t8, $s4 -/* 08FBD4 7F05D1E4 04410005 */ bgez $v0, .L7F05D1FC -/* 08FBD8 7F05D1E8 46808220 */ cvt.s.w $f8, $f16 -/* 08FBDC 7F05D1EC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08FBE0 7F05D1F0 44812000 */ mtc1 $at, $f4 -/* 08FBE4 7F05D1F4 00000000 */ nop -/* 08FBE8 7F05D1F8 46044200 */ add.s $f8, $f8, $f4 -.L7F05D1FC: -/* 08FBEC 7F05D1FC 46164282 */ mul.s $f10, $f8, $f22 -/* 08FBF0 7F05D200 8E190000 */ lw $t9, ($s0) -/* 08FBF4 7F05D204 C4700A0C */ lwc1 $f16, 0xa0c($v1) -/* 08FBF8 7F05D208 03320019 */ multu $t9, $s2 -/* 08FBFC 7F05D20C 460A3480 */ add.s $f18, $f6, $f10 -/* 08FC00 7F05D210 46128102 */ mul.s $f4, $f16, $f18 -/* 08FC04 7F05D214 00004812 */ mflo $t1 -/* 08FC08 7F05D218 00694021 */ addu $t0, $v1, $t1 -/* 08FC0C 7F05D21C 0C00262C */ jal randomGetNext -/* 08FC10 7F05D220 E5040974 */ swc1 $f4, 0x974($t0) -/* 08FC14 7F05D224 44824000 */ mtc1 $v0, $f8 -/* 08FC18 7F05D228 001150C0 */ sll $t2, $s1, 3 -/* 08FC1C 7F05D22C 04410005 */ bgez $v0, .L7F05D244 -/* 08FC20 7F05D230 468041A0 */ cvt.s.w $f6, $f8 -/* 08FC24 7F05D234 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 08FC28 7F05D238 44815000 */ mtc1 $at, $f10 -/* 08FC2C 7F05D23C 00000000 */ nop -/* 08FC30 7F05D240 460A3180 */ add.s $f6, $f6, $f10 -.L7F05D244: -/* 08FC34 7F05D244 46163402 */ mul.s $f16, $f6, $f22 -/* 08FC38 7F05D248 8E0D0000 */ lw $t5, ($s0) -/* 08FC3C 7F05D24C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 08FC40 7F05D250 44819000 */ mtc1 $at, $f18 -/* 08FC44 7F05D254 01B20019 */ multu $t5, $s2 -/* 08FC48 7F05D258 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 08FC4C 7F05D25C 44814000 */ mtc1 $at, $f8 -/* 08FC50 7F05D260 46128101 */ sub.s $f4, $f16, $f18 -/* 08FC54 7F05D264 01515023 */ subu $t2, $t2, $s1 -/* 08FC58 7F05D268 000A5080 */ sll $t2, $t2, 2 -/* 08FC5C 7F05D26C 01515021 */ addu $t2, $t2, $s1 -/* 08FC60 7F05D270 46082282 */ mul.s $f10, $f4, $f8 -/* 08FC64 7F05D274 8E6B0000 */ lw $t3, ($s3) -/* 08FC68 7F05D278 000A5080 */ sll $t2, $t2, 2 -/* 08FC6C 7F05D27C 01515021 */ addu $t2, $t2, $s1 -/* 08FC70 7F05D280 000A50C0 */ sll $t2, $t2, 3 -/* 08FC74 7F05D284 00007812 */ mflo $t7 -/* 08FC78 7F05D288 016A6021 */ addu $t4, $t3, $t2 -/* 08FC7C 7F05D28C 018F7021 */ addu $t6, $t4, $t7 -/* 08FC80 7F05D290 E5CA0978 */ swc1 $f10, 0x978($t6) -/* 08FC84 7F05D294 8E640000 */ lw $a0, ($s3) -/* 08FC88 7F05D298 24020002 */ li $v0, 2 -/* 08FC8C 7F05D29C 00941821 */ addu $v1, $a0, $s4 -/* 08FC90 7F05D2A0 8C650A10 */ lw $a1, 0xa10($v1) -/* 08FC94 7F05D2A4 04A1001D */ bgez $a1, .L7F05D31C -/* 08FC98 7F05D2A8 00000000 */ nop -/* 08FC9C 7F05D2AC 8E090000 */ lw $t1, ($s0) -/* 08FCA0 7F05D2B0 0011C0C0 */ sll $t8, $s1, 3 -/* 08FCA4 7F05D2B4 0311C023 */ subu $t8, $t8, $s1 -/* 08FCA8 7F05D2B8 01320019 */ multu $t1, $s2 -/* 08FCAC 7F05D2BC 0018C080 */ sll $t8, $t8, 2 -/* 08FCB0 7F05D2C0 0311C021 */ addu $t8, $t8, $s1 -/* 08FCB4 7F05D2C4 0018C080 */ sll $t8, $t8, 2 -/* 08FCB8 7F05D2C8 0311C021 */ addu $t8, $t8, $s1 -/* 08FCBC 7F05D2CC 0018C0C0 */ sll $t8, $t8, 3 -/* 08FCC0 7F05D2D0 0098C821 */ addu $t9, $a0, $t8 -/* 08FCC4 7F05D2D4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 08FCC8 7F05D2D8 44818000 */ mtc1 $at, $f16 -/* 08FCCC 7F05D2DC 2405FFFE */ li $a1, -2 -/* 08FCD0 7F05D2E0 00004012 */ mflo $t0 -/* 08FCD4 7F05D2E4 03281021 */ addu $v0, $t9, $t0 -/* 08FCD8 7F05D2E8 C4460970 */ lwc1 $f6, 0x970($v0) -/* 08FCDC 7F05D2EC 240D0001 */ li $t5, 1 -/* 08FCE0 7F05D2F0 46103482 */ mul.s $f18, $f6, $f16 -/* 08FCE4 7F05D2F4 E4520970 */ swc1 $f18, 0x970($v0) -/* 08FCE8 7F05D2F8 8E6B0000 */ lw $t3, ($s3) -/* 08FCEC 7F05D2FC 01741821 */ addu $v1, $t3, $s4 -/* 08FCF0 7F05D300 8C6A0A10 */ lw $t2, 0xa10($v1) -/* 08FCF4 7F05D304 14AA0003 */ bne $a1, $t2, .L7F05D314 -/* 08FCF8 7F05D308 00000000 */ nop -/* 08FCFC 7F05D30C 10000008 */ b .L7F05D330 -/* 08FD00 7F05D310 AC6D0A10 */ sw $t5, 0xa10($v1) -.L7F05D314: -/* 08FD04 7F05D314 10000006 */ b .L7F05D330 -/* 08FD08 7F05D318 AC650A10 */ sw $a1, 0xa10($v1) -.L7F05D31C: -/* 08FD0C 7F05D31C 14450003 */ bne $v0, $a1, .L7F05D32C -/* 08FD10 7F05D320 240CFFFF */ li $t4, -1 -/* 08FD14 7F05D324 10000002 */ b .L7F05D330 -/* 08FD18 7F05D328 AC6C0A10 */ sw $t4, 0xa10($v1) -.L7F05D32C: -/* 08FD1C 7F05D32C AC620A10 */ sw $v0, 0xa10($v1) -.L7F05D330: -/* 08FD20 7F05D330 8E6F0000 */ lw $t7, ($s3) -/* 08FD24 7F05D334 01F41821 */ addu $v1, $t7, $s4 -/* 08FD28 7F05D338 C4640A0C */ lwc1 $f4, 0xa0c($v1) -/* 08FD2C 7F05D33C 46002207 */ neg.s $f8, $f4 -/* 08FD30 7F05D340 E4680A0C */ swc1 $f8, 0xa0c($v1) -/* 08FD34 7F05D344 8FBF003C */ lw $ra, 0x3c($sp) -/* 08FD38 7F05D348 8FB40038 */ lw $s4, 0x38($sp) -/* 08FD3C 7F05D34C 8FB30034 */ lw $s3, 0x34($sp) -/* 08FD40 7F05D350 8FB20030 */ lw $s2, 0x30($sp) -/* 08FD44 7F05D354 8FB1002C */ lw $s1, 0x2c($sp) -/* 08FD48 7F05D358 8FB00028 */ lw $s0, 0x28($sp) -/* 08FD4C 7F05D35C D7B60020 */ ldc1 $f22, 0x20($sp) -/* 08FD50 7F05D360 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 08FD54 7F05D364 03E00008 */ jr $ra -/* 08FD58 7F05D368 27BD0070 */ addiu $sp, $sp, 0x70 -) -#endif - -#endif - - - #if defined(VERSION_US) || defined(VERSION_JP) @@ -1859,92 +949,28 @@ void remove_item_in_hand(GUNHAND hand) } +void place_item_in_hand_swap_and_make_visible(GUNHAND hand, ITEM_IDS item) +{ + if (g_CurrentPlayer->lock_hand_model[hand]) { return; } + if (g_CurrentPlayer->hand_invisible[hand] >= 0) + { + if (item != g_CurrentPlayer->hand_item[hand]) + { + g_CurrentPlayer->hand_invisible[hand] = -1; + g_CurrentPlayer->field_2A44[hand] = item; + } + return; + } -#ifdef NONMATCHING -void place_item_in_hand_swap_and_make_visible(void) { + if (item != g_CurrentPlayer->hand_item[hand]) + { + g_CurrentPlayer->field_2A44[hand] = item; + return; + } + g_CurrentPlayer->hand_invisible[hand] = 1; } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel place_item_in_hand_swap_and_make_visible -/* 091AD4 7F05CFA4 3C068008 */ lui $a2, %hi(g_CurrentPlayer) -/* 091AD8 7F05CFA8 24C6A0B0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x5f50 -/* 091ADC 7F05CFAC 8CCE0000 */ lw $t6, ($a2) -/* 091AE0 7F05CFB0 00041080 */ sll $v0, $a0, 2 -/* 091AE4 7F05CFB4 01C21821 */ addu $v1, $t6, $v0 -/* 091AE8 7F05CFB8 8C6F2A50 */ lw $t7, 0x2a50($v1) -/* 091AEC 7F05CFBC 15E00014 */ bnez $t7, .L7F05D010 -/* 091AF0 7F05CFC0 00000000 */ nop -/* 091AF4 7F05CFC4 8C7807F8 */ lw $t8, 0x7f8($v1) -/* 091AF8 7F05CFC8 0702000B */ bltzl $t8, .L7F05CFF8 -/* 091AFC 7F05CFCC 8C6B0800 */ lw $t3, 0x800($v1) -/* 091B00 7F05CFD0 8C790800 */ lw $t9, 0x800($v1) -/* 091B04 7F05CFD4 2408FFFF */ li $t0, -1 -/* 091B08 7F05CFD8 10B9000D */ beq $a1, $t9, .L7F05D010 -/* 091B0C 7F05CFDC 00000000 */ nop -/* 091B10 7F05CFE0 AC6807F8 */ sw $t0, 0x7f8($v1) -/* 091B14 7F05CFE4 8CC90000 */ lw $t1, ($a2) -/* 091B18 7F05CFE8 01225021 */ addu $t2, $t1, $v0 -/* 091B1C 7F05CFEC 03E00008 */ jr $ra -/* 091B20 7F05CFF0 AD452A44 */ sw $a1, 0x2a44($t2) -/* 091B24 7F05CFF4 8C6B0800 */ lw $t3, 0x800($v1) -.L7F05CFF8: -/* 091B28 7F05CFF8 240C0001 */ li $t4, 1 -/* 091B2C 7F05CFFC 50AB0004 */ beql $a1, $t3, .L7F05D010 -/* 091B30 7F05D000 AC6C07F8 */ sw $t4, 0x7f8($v1) -/* 091B34 7F05D004 03E00008 */ jr $ra -/* 091B38 7F05D008 AC652A44 */ sw $a1, 0x2a44($v1) -/* 091B3C 7F05D00C AC6C07F8 */ sw $t4, 0x7f8($v1) -.L7F05D010: -/* 091B40 7F05D010 03E00008 */ jr $ra -/* 091B44 7F05D014 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel place_item_in_hand_swap_and_make_visible -/* 08FE4C 7F05D45C 3C068007 */ lui $a2, %hi(g_CurrentPlayer) # $a2, 0x8007 -/* 08FE50 7F05D460 24C68BC0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x7440 -/* 08FE54 7F05D464 8CCE0000 */ lw $t6, ($a2) -/* 08FE58 7F05D468 00041080 */ sll $v0, $a0, 2 -/* 08FE5C 7F05D46C 01C21821 */ addu $v1, $t6, $v0 -/* 08FE60 7F05D470 8C6F2A48 */ lw $t7, 0x2a48($v1) -/* 08FE64 7F05D474 15E00014 */ bnez $t7, .L7F05D4C8 -/* 08FE68 7F05D478 00000000 */ nop -/* 08FE6C 7F05D47C 8C7807F8 */ lw $t8, 0x7f8($v1) -/* 08FE70 7F05D480 0702000B */ bltzl $t8, .L7F05D4B0 -/* 08FE74 7F05D484 8C6B0800 */ lw $t3, 0x800($v1) -/* 08FE78 7F05D488 8C790800 */ lw $t9, 0x800($v1) -/* 08FE7C 7F05D48C 2408FFFF */ li $t0, -1 -/* 08FE80 7F05D490 10B9000D */ beq $a1, $t9, .L7F05D4C8 -/* 08FE84 7F05D494 00000000 */ nop -/* 08FE88 7F05D498 AC6807F8 */ sw $t0, 0x7f8($v1) -/* 08FE8C 7F05D49C 8CC90000 */ lw $t1, ($a2) -/* 08FE90 7F05D4A0 01225021 */ addu $t2, $t1, $v0 -/* 08FE94 7F05D4A4 03E00008 */ jr $ra -/* 08FE98 7F05D4A8 AD452A3C */ sw $a1, 0x2a3c($t2) -/* 08FE9C 7F05D4AC 8C6B0800 */ lw $t3, 0x800($v1) -.L7F05D4B0: -/* 08FEA0 7F05D4B0 240C0001 */ li $t4, 1 -/* 08FEA4 7F05D4B4 50AB0004 */ beql $a1, $t3, .L7F05D4C8 -/* 08FEA8 7F05D4B8 AC6C07F8 */ sw $t4, 0x7f8($v1) -/* 08FEAC 7F05D4BC 03E00008 */ jr $ra -/* 08FEB0 7F05D4C0 AC652A3C */ sw $a1, 0x2a3c($v1) -/* 08FEB4 7F05D4C4 AC6C07F8 */ sw $t4, 0x7f8($v1) -.L7F05D4C8: -/* 08FEB8 7F05D4C8 03E00008 */ jr $ra -/* 08FEBC 7F05D4CC 00000000 */ nop -) -#endif -#endif - - char * get_ptr_item_text_call_line(ITEM_IDS item) @@ -1965,405 +991,84 @@ struct ModelFileHeader * get_ptr_weapon_model_header_line(ITEM_IDS weapon) } - - int getCurrentWeaponOrItem(void) { return g_CurrentPlayer->cur_item_weapon_getname; } +void used_to_load_1st_person_model_on_demand(enum GUNHAND arg0) +{ + u32 size_buffer_weapon; + s8* ptr_item_text; + ModelFileHeader* ptr_weapon_model; + u8* buffer_weapon; + enum ITEM_IDS field_2a44; + if ((g_CurrentPlayer->hand_invisible[arg0] < 0) && (g_CurrentPlayer->lock_hand_model[arg0] == 0)) + { + if ((g_CurrentPlayer->hand_invisible[arg0] < -2) || (g_CurrentPlayer->hand_item[arg0] == ITEM_UNARMED)) + { + field_2a44 = g_CurrentPlayer->field_2A44[arg0]; + ptr_item_text = (s8*)get_ptr_item_text_call_line(field_2a44); + ptr_weapon_model = get_ptr_weapon_model_header_line(field_2a44); -#ifdef NONMATCHING -void used_to_load_1st_person_model_on_demand(void) { + if ((ptr_item_text != NULL) && (ptr_weapon_model != NULL)) + { + buffer_weapon = getPlayerWeaponBufferForHand(arg0); + size_buffer_weapon = getSizeBufferWeaponInHand(arg0); + g_CurrentPlayer->copy_of_body_obj_header[arg0] = *ptr_weapon_model; + + if (field_2a44 == ITEM_SUIT_LF_HAND) + { + texInitPool(&g_CurrentPlayer->item_related[arg0], buffer_weapon + 0xBD70, size_buffer_weapon + 0xFFFF4290); + load_object_fill_header(&g_CurrentPlayer->copy_of_body_obj_header[arg0], (u8* ) ptr_item_text, buffer_weapon, 0xBD70, &g_CurrentPlayer->item_related[arg0]); + } + else if ((field_2a44 == ITEM_TRIGGER) || (field_2a44 == ITEM_WATCHLASER)) + { + texInitPool(&g_CurrentPlayer->item_related[arg0], buffer_weapon + 0xAFD0, size_buffer_weapon + 0xFFFF5030); + load_object_fill_header(&g_CurrentPlayer->copy_of_body_obj_header[arg0], (u8* ) ptr_item_text, buffer_weapon, 0xAFD0, &g_CurrentPlayer->item_related[arg0]); + } + else + { + texInitPool(&g_CurrentPlayer->item_related[arg0], &buffer_weapon[D_80032464[arg0]], size_buffer_weapon - D_80032464[arg0]); + load_object_fill_header(&g_CurrentPlayer->copy_of_body_obj_header[arg0], (u8* ) ptr_item_text, buffer_weapon, D_80032464[arg0], &g_CurrentPlayer->item_related[arg0]); + } + } + + g_CurrentPlayer->hand_invisible[arg0] = 1; + g_CurrentPlayer->hand_item[arg0] = field_2a44; + g_CurrentPlayer->field_2A44[arg0] = -1; + + } + else + { + g_CurrentPlayer->hand_invisible[arg0]--; + } + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel used_to_load_1st_person_model_on_demand -/* 091BB8 7F05D088 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 091BBC 7F05D08C AFB0001C */ sw $s0, 0x1c($sp) -/* 091BC0 7F05D090 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 091BC4 7F05D094 2610A0B0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x5f50 -/* 091BC8 7F05D098 8E0F0000 */ lw $t7, ($s0) -/* 091BCC 7F05D09C 00042880 */ sll $a1, $a0, 2 -/* 091BD0 7F05D0A0 AFBF0024 */ sw $ra, 0x24($sp) -/* 091BD4 7F05D0A4 AFB10020 */ sw $s1, 0x20($sp) -/* 091BD8 7F05D0A8 AFA40050 */ sw $a0, 0x50($sp) -/* 091BDC 7F05D0AC 01E51021 */ addu $v0, $t7, $a1 -/* 091BE0 7F05D0B0 8C4307F8 */ lw $v1, 0x7f8($v0) -/* 091BE4 7F05D0B4 0463009B */ bgezl $v1, .L7F05D324 -/* 091BE8 7F05D0B8 8FBF0024 */ lw $ra, 0x24($sp) -/* 091BEC 7F05D0BC 8C582A50 */ lw $t8, 0x2a50($v0) -/* 091BF0 7F05D0C0 2861FFFE */ slti $at, $v1, -2 -/* 091BF4 7F05D0C4 57000097 */ bnezl $t8, .L7F05D324 -/* 091BF8 7F05D0C8 8FBF0024 */ lw $ra, 0x24($sp) -/* 091BFC 7F05D0CC 54200005 */ bnezl $at, .L7F05D0E4 -/* 091C00 7F05D0D0 8C512A44 */ lw $s1, 0x2a44($v0) -/* 091C04 7F05D0D4 8C590800 */ lw $t9, 0x800($v0) -/* 091C08 7F05D0D8 57200090 */ bnezl $t9, .L7F05D31C -/* 091C0C 7F05D0DC 246EFFFF */ addiu $t6, $v1, -1 -/* 091C10 7F05D0E0 8C512A44 */ lw $s1, 0x2a44($v0) -.L7F05D0E4: -/* 091C14 7F05D0E4 AFA50038 */ sw $a1, 0x38($sp) -/* 091C18 7F05D0E8 0FC17406 */ jal get_ptr_item_text_call_line -/* 091C1C 7F05D0EC 02202025 */ move $a0, $s1 -/* 091C20 7F05D0F0 AFA20048 */ sw $v0, 0x48($sp) -/* 091C24 7F05D0F4 0FC17412 */ jal get_ptr_weapon_model_header_line -/* 091C28 7F05D0F8 02202025 */ move $a0, $s1 -/* 091C2C 7F05D0FC 8FAB0048 */ lw $t3, 0x48($sp) -/* 091C30 7F05D100 AFA20044 */ sw $v0, 0x44($sp) -/* 091C34 7F05D104 51600078 */ beql $t3, $zero, .L7F05D2E8 -/* 091C38 7F05D108 8FA20038 */ lw $v0, 0x38($sp) -/* 091C3C 7F05D10C 50400076 */ beql $v0, $zero, .L7F05D2E8 -/* 091C40 7F05D110 8FA20038 */ lw $v0, 0x38($sp) -/* 091C44 7F05D114 0FC173CC */ jal getPlayerWeaponBufferForHand -/* 091C48 7F05D118 8FA40050 */ lw $a0, 0x50($sp) -/* 091C4C 7F05D11C AFA20040 */ sw $v0, 0x40($sp) -/* 091C50 7F05D120 0FC173D2 */ jal getSizeBufferWeaponInHand -/* 091C54 7F05D124 8FA40050 */ lw $a0, 0x50($sp) -/* 091C58 7F05D128 8FAE0044 */ lw $t6, 0x44($sp) -/* 091C5C 7F05D12C 8FAA0050 */ lw $t2, 0x50($sp) -/* 091C60 7F05D130 8E0C0000 */ lw $t4, ($s0) -/* 091C64 7F05D134 8DC10000 */ lw $at, ($t6) -/* 091C68 7F05D138 000A4940 */ sll $t1, $t2, 5 -/* 091C6C 7F05D13C 01896821 */ addu $t5, $t4, $t1 -/* 091C70 7F05D140 ADA10810 */ sw $at, 0x810($t5) -/* 091C74 7F05D144 8DD90004 */ lw $t9, 4($t6) -/* 091C78 7F05D148 00403825 */ move $a3, $v0 -/* 091C7C 7F05D14C 000A1900 */ sll $v1, $t2, 4 -/* 091C80 7F05D150 ADB90814 */ sw $t9, 0x814($t5) -/* 091C84 7F05D154 8DC10008 */ lw $at, 8($t6) -/* 091C88 7F05D158 ADA10818 */ sw $at, 0x818($t5) -/* 091C8C 7F05D15C 8DD9000C */ lw $t9, 0xc($t6) -/* 091C90 7F05D160 ADB9081C */ sw $t9, 0x81c($t5) -/* 091C94 7F05D164 8DC10010 */ lw $at, 0x10($t6) -/* 091C98 7F05D168 ADA10820 */ sw $at, 0x820($t5) -/* 091C9C 7F05D16C 8DD90014 */ lw $t9, 0x14($t6) -/* 091CA0 7F05D170 ADB90824 */ sw $t9, 0x824($t5) -/* 091CA4 7F05D174 8DC10018 */ lw $at, 0x18($t6) -/* 091CA8 7F05D178 ADA10828 */ sw $at, 0x828($t5) -/* 091CAC 7F05D17C 8DD9001C */ lw $t9, 0x1c($t6) -/* 091CB0 7F05D180 24010054 */ li $at, 84 -/* 091CB4 7F05D184 1621001B */ bne $s1, $at, .L7F05D1F4 -/* 091CB8 7F05D188 ADB9082C */ sw $t9, 0x82c($t5) -/* 091CBC 7F05D18C 8FA50040 */ lw $a1, 0x40($sp) -/* 091CC0 7F05D190 8E0B0000 */ lw $t3, ($s0) -/* 091CC4 7F05D194 3401BD70 */ li $at, 48496 -/* 091CC8 7F05D198 00A12821 */ addu $a1, $a1, $at -/* 091CCC 7F05D19C 3C01FFFF */ lui $at, (0xFFFF4290 >> 16) # lui $at, 0xffff -/* 091CD0 7F05D1A0 34214290 */ ori $at, (0xFFFF4290 & 0xFFFF) # ori $at, $at, 0x4290 -/* 091CD4 7F05D1A4 01632021 */ addu $a0, $t3, $v1 -/* 091CD8 7F05D1A8 24840850 */ addiu $a0, $a0, 0x850 -/* 091CDC 7F05D1AC 00413021 */ addu $a2, $v0, $at -/* 091CE0 7F05D1B0 AFA30030 */ sw $v1, 0x30($sp) -/* 091CE4 7F05D1B4 0FC32EBD */ jal sub_GAME_7F0CBAF4 -/* 091CE8 7F05D1B8 AFA90034 */ sw $t1, 0x34($sp) -/* 091CEC 7F05D1BC 8FA30030 */ lw $v1, 0x30($sp) -/* 091CF0 7F05D1C0 8E020000 */ lw $v0, ($s0) -/* 091CF4 7F05D1C4 8FA90034 */ lw $t1, 0x34($sp) -/* 091CF8 7F05D1C8 8FA50048 */ lw $a1, 0x48($sp) -/* 091CFC 7F05D1CC 00436021 */ addu $t4, $v0, $v1 -/* 091D00 7F05D1D0 25980850 */ addiu $t8, $t4, 0x850 -/* 091D04 7F05D1D4 00492021 */ addu $a0, $v0, $t1 -/* 091D08 7F05D1D8 24840810 */ addiu $a0, $a0, 0x810 -/* 091D0C 7F05D1DC AFB80010 */ sw $t8, 0x10($sp) -/* 091D10 7F05D1E0 8FA60040 */ lw $a2, 0x40($sp) -/* 091D14 7F05D1E4 0FC1D929 */ jal load_object_fill_header -/* 091D18 7F05D1E8 3407BD70 */ li $a3, 48496 -/* 091D1C 7F05D1EC 1000003E */ b .L7F05D2E8 -/* 091D20 7F05D1F0 8FA20038 */ lw $v0, 0x38($sp) -.L7F05D1F4: -/* 091D24 7F05D1F4 2401001E */ li $at, 30 -/* 091D28 7F05D1F8 12210004 */ beq $s1, $at, .L7F05D20C -/* 091D2C 7F05D1FC 000A1900 */ sll $v1, $t2, 4 -/* 091D30 7F05D200 24010017 */ li $at, 23 -/* 091D34 7F05D204 1621001B */ bne $s1, $at, .L7F05D274 -/* 091D38 7F05D208 8FAB0038 */ lw $t3, 0x38($sp) -.L7F05D20C: -/* 091D3C 7F05D20C 8FA50040 */ lw $a1, 0x40($sp) -/* 091D40 7F05D210 8E0F0000 */ lw $t7, ($s0) -/* 091D44 7F05D214 3401AFD0 */ li $at, 45008 -/* 091D48 7F05D218 00A12821 */ addu $a1, $a1, $at -/* 091D4C 7F05D21C 3C01FFFF */ lui $at, (0xFFFF5030 >> 16) # lui $at, 0xffff -/* 091D50 7F05D220 34215030 */ ori $at, (0xFFFF5030 & 0xFFFF) # ori $at, $at, 0x5030 -/* 091D54 7F05D224 01E32021 */ addu $a0, $t7, $v1 -/* 091D58 7F05D228 24840850 */ addiu $a0, $a0, 0x850 -/* 091D5C 7F05D22C 00E13021 */ addu $a2, $a3, $at -/* 091D60 7F05D230 AFA30030 */ sw $v1, 0x30($sp) -/* 091D64 7F05D234 0FC32EBD */ jal sub_GAME_7F0CBAF4 -/* 091D68 7F05D238 AFA90034 */ sw $t1, 0x34($sp) -/* 091D6C 7F05D23C 8FA30030 */ lw $v1, 0x30($sp) -/* 091D70 7F05D240 8E020000 */ lw $v0, ($s0) -/* 091D74 7F05D244 8FA90034 */ lw $t1, 0x34($sp) -/* 091D78 7F05D248 8FA50048 */ lw $a1, 0x48($sp) -/* 091D7C 7F05D24C 00436821 */ addu $t5, $v0, $v1 -/* 091D80 7F05D250 25AE0850 */ addiu $t6, $t5, 0x850 -/* 091D84 7F05D254 00492021 */ addu $a0, $v0, $t1 -/* 091D88 7F05D258 24840810 */ addiu $a0, $a0, 0x810 -/* 091D8C 7F05D25C AFAE0010 */ sw $t6, 0x10($sp) -/* 091D90 7F05D260 8FA60040 */ lw $a2, 0x40($sp) -/* 091D94 7F05D264 0FC1D929 */ jal load_object_fill_header -/* 091D98 7F05D268 3407AFD0 */ li $a3, 45008 -/* 091D9C 7F05D26C 1000001E */ b .L7F05D2E8 -/* 091DA0 7F05D270 8FA20038 */ lw $v0, 0x38($sp) -.L7F05D274: -/* 091DA4 7F05D274 3C0C8003 */ lui $t4, %hi(D_80032464) -/* 091DA8 7F05D278 258C2464 */ addiu $t4, %lo(D_80032464) # addiu $t4, $t4, 0x2464 -/* 091DAC 7F05D27C 8E190000 */ lw $t9, ($s0) -/* 091DB0 7F05D280 016C4021 */ addu $t0, $t3, $t4 -/* 091DB4 7F05D284 8D020000 */ lw $v0, ($t0) -/* 091DB8 7F05D288 8FB80040 */ lw $t8, 0x40($sp) -/* 091DBC 7F05D28C 000A1900 */ sll $v1, $t2, 4 -/* 091DC0 7F05D290 03232021 */ addu $a0, $t9, $v1 -/* 091DC4 7F05D294 24840850 */ addiu $a0, $a0, 0x850 -/* 091DC8 7F05D298 AFA30030 */ sw $v1, 0x30($sp) -/* 091DCC 7F05D29C AFA8002C */ sw $t0, 0x2c($sp) -/* 091DD0 7F05D2A0 AFA90034 */ sw $t1, 0x34($sp) -/* 091DD4 7F05D2A4 00E23023 */ subu $a2, $a3, $v0 -/* 091DD8 7F05D2A8 0FC32EBD */ jal sub_GAME_7F0CBAF4 -/* 091DDC 7F05D2AC 00582821 */ addu $a1, $v0, $t8 -/* 091DE0 7F05D2B0 8FA30030 */ lw $v1, 0x30($sp) -/* 091DE4 7F05D2B4 8E020000 */ lw $v0, ($s0) -/* 091DE8 7F05D2B8 8FA90034 */ lw $t1, 0x34($sp) -/* 091DEC 7F05D2BC 8FA8002C */ lw $t0, 0x2c($sp) -/* 091DF0 7F05D2C0 00437821 */ addu $t7, $v0, $v1 -/* 091DF4 7F05D2C4 25ED0850 */ addiu $t5, $t7, 0x850 -/* 091DF8 7F05D2C8 00492021 */ addu $a0, $v0, $t1 -/* 091DFC 7F05D2CC 24840810 */ addiu $a0, $a0, 0x810 -/* 091E00 7F05D2D0 AFAD0010 */ sw $t5, 0x10($sp) -/* 091E04 7F05D2D4 8FA50048 */ lw $a1, 0x48($sp) -/* 091E08 7F05D2D8 8FA60040 */ lw $a2, 0x40($sp) -/* 091E0C 7F05D2DC 0FC1D929 */ jal load_object_fill_header -/* 091E10 7F05D2E0 8D070000 */ lw $a3, ($t0) -/* 091E14 7F05D2E4 8FA20038 */ lw $v0, 0x38($sp) -.L7F05D2E8: -/* 091E18 7F05D2E8 8E190000 */ lw $t9, ($s0) -/* 091E1C 7F05D2EC 240E0001 */ li $t6, 1 -/* 091E20 7F05D2F0 240FFFFF */ li $t7, -1 -/* 091E24 7F05D2F4 03225821 */ addu $t3, $t9, $v0 -/* 091E28 7F05D2F8 AD6E07F8 */ sw $t6, 0x7f8($t3) -/* 091E2C 7F05D2FC 8E0C0000 */ lw $t4, ($s0) -/* 091E30 7F05D300 0182C021 */ addu $t8, $t4, $v0 -/* 091E34 7F05D304 AF110800 */ sw $s1, 0x800($t8) -/* 091E38 7F05D308 8E0D0000 */ lw $t5, ($s0) -/* 091E3C 7F05D30C 01A2C821 */ addu $t9, $t5, $v0 -/* 091E40 7F05D310 10000003 */ b .L7F05D320 -/* 091E44 7F05D314 AF2F2A44 */ sw $t7, 0x2a44($t9) -/* 091E48 7F05D318 246EFFFF */ addiu $t6, $v1, -1 -.L7F05D31C: -/* 091E4C 7F05D31C AC4E07F8 */ sw $t6, 0x7f8($v0) -.L7F05D320: -/* 091E50 7F05D320 8FBF0024 */ lw $ra, 0x24($sp) -.L7F05D324: -/* 091E54 7F05D324 8FB0001C */ lw $s0, 0x1c($sp) -/* 091E58 7F05D328 8FB10020 */ lw $s1, 0x20($sp) -/* 091E5C 7F05D32C 03E00008 */ jr $ra -/* 091E60 7F05D330 27BD0050 */ addiu $sp, $sp, 0x50 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel used_to_load_1st_person_model_on_demand -/* 08FF30 7F05D540 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 08FF34 7F05D544 AFB0001C */ sw $s0, 0x1c($sp) -/* 08FF38 7F05D548 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 08FF3C 7F05D54C 26108BC0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x7440 -/* 08FF40 7F05D550 8E0F0000 */ lw $t7, ($s0) -/* 08FF44 7F05D554 00042880 */ sll $a1, $a0, 2 -/* 08FF48 7F05D558 AFBF0024 */ sw $ra, 0x24($sp) -/* 08FF4C 7F05D55C AFB10020 */ sw $s1, 0x20($sp) -/* 08FF50 7F05D560 AFA40050 */ sw $a0, 0x50($sp) -/* 08FF54 7F05D564 01E51021 */ addu $v0, $t7, $a1 -/* 08FF58 7F05D568 8C4307F8 */ lw $v1, 0x7f8($v0) -/* 08FF5C 7F05D56C 0463009B */ bgezl $v1, .L7F05D7DC -/* 08FF60 7F05D570 8FBF0024 */ lw $ra, 0x24($sp) -/* 08FF64 7F05D574 8C582A48 */ lw $t8, 0x2a48($v0) -/* 08FF68 7F05D578 2861FFFE */ slti $at, $v1, -2 -/* 08FF6C 7F05D57C 57000097 */ bnezl $t8, .L7F05D7DC -/* 08FF70 7F05D580 8FBF0024 */ lw $ra, 0x24($sp) -/* 08FF74 7F05D584 54200005 */ bnezl $at, .L7F05D59C -/* 08FF78 7F05D588 8C512A3C */ lw $s1, 0x2a3c($v0) -/* 08FF7C 7F05D58C 8C590800 */ lw $t9, 0x800($v0) -/* 08FF80 7F05D590 57200090 */ bnezl $t9, .L7F05D7D4 -/* 08FF84 7F05D594 246EFFFF */ addiu $t6, $v1, -1 -/* 08FF88 7F05D598 8C512A3C */ lw $s1, 0x2a3c($v0) -.L7F05D59C: -/* 08FF8C 7F05D59C AFA50038 */ sw $a1, 0x38($sp) -/* 08FF90 7F05D5A0 0FC17534 */ jal get_ptr_item_text_call_line -/* 08FF94 7F05D5A4 02202025 */ move $a0, $s1 -/* 08FF98 7F05D5A8 AFA20048 */ sw $v0, 0x48($sp) -/* 08FF9C 7F05D5AC 0FC17540 */ jal get_ptr_weapon_model_header_line -/* 08FFA0 7F05D5B0 02202025 */ move $a0, $s1 -/* 08FFA4 7F05D5B4 8FAB0048 */ lw $t3, 0x48($sp) -/* 08FFA8 7F05D5B8 AFA20044 */ sw $v0, 0x44($sp) -/* 08FFAC 7F05D5BC 51600078 */ beql $t3, $zero, .L7F05D7A0 -/* 08FFB0 7F05D5C0 8FA20038 */ lw $v0, 0x38($sp) -/* 08FFB4 7F05D5C4 50400076 */ beql $v0, $zero, .L7F05D7A0 -/* 08FFB8 7F05D5C8 8FA20038 */ lw $v0, 0x38($sp) -/* 08FFBC 7F05D5CC 0FC174FA */ jal getPlayerWeaponBufferForHand -/* 08FFC0 7F05D5D0 8FA40050 */ lw $a0, 0x50($sp) -/* 08FFC4 7F05D5D4 AFA20040 */ sw $v0, 0x40($sp) -/* 08FFC8 7F05D5D8 0FC17500 */ jal getSizeBufferWeaponInHand -/* 08FFCC 7F05D5DC 8FA40050 */ lw $a0, 0x50($sp) -/* 08FFD0 7F05D5E0 8FAA0050 */ lw $t2, 0x50($sp) -/* 08FFD4 7F05D5E4 8FAE0044 */ lw $t6, 0x44($sp) -/* 08FFD8 7F05D5E8 8E0C0000 */ lw $t4, ($s0) -/* 08FFDC 7F05D5EC 000A48C0 */ sll $t1, $t2, 3 -/* 08FFE0 7F05D5F0 8DC10000 */ lw $at, ($t6) -/* 08FFE4 7F05D5F4 012A4823 */ subu $t1, $t1, $t2 -/* 08FFE8 7F05D5F8 00094880 */ sll $t1, $t1, 2 -/* 08FFEC 7F05D5FC 01896821 */ addu $t5, $t4, $t1 -/* 08FFF0 7F05D600 ADA10810 */ sw $at, 0x810($t5) -/* 08FFF4 7F05D604 8DD90004 */ lw $t9, 4($t6) -/* 08FFF8 7F05D608 00403825 */ move $a3, $v0 -/* 08FFFC 7F05D60C 000A1900 */ sll $v1, $t2, 4 -/* 090000 7F05D610 ADB90814 */ sw $t9, 0x814($t5) -/* 090004 7F05D614 8DC10008 */ lw $at, 8($t6) -/* 090008 7F05D618 ADA10818 */ sw $at, 0x818($t5) -/* 09000C 7F05D61C 8DD9000C */ lw $t9, 0xc($t6) -/* 090010 7F05D620 ADB9081C */ sw $t9, 0x81c($t5) -/* 090014 7F05D624 8DC10010 */ lw $at, 0x10($t6) -/* 090018 7F05D628 ADA10820 */ sw $at, 0x820($t5) -/* 09001C 7F05D62C 8DD90014 */ lw $t9, 0x14($t6) -/* 090020 7F05D630 ADB90824 */ sw $t9, 0x824($t5) -/* 090024 7F05D634 8DC10018 */ lw $at, 0x18($t6) -/* 090028 7F05D638 ADA10828 */ sw $at, 0x828($t5) -/* 09002C 7F05D63C 24010054 */ li $at, 84 -/* 090030 7F05D640 1621001A */ bne $s1, $at, .L7F05D6AC -/* 090034 7F05D644 8FA50040 */ lw $a1, 0x40($sp) -/* 090038 7F05D648 8E0B0000 */ lw $t3, ($s0) -/* 09003C 7F05D64C 3401BD70 */ li $at, 48496 -/* 090040 7F05D650 00A12821 */ addu $a1, $a1, $at -/* 090044 7F05D654 3C01FFFF */ lui $at, (0xFFFF4290 >> 16) # lui $at, 0xffff -/* 090048 7F05D658 34214290 */ ori $at, (0xFFFF4290 & 0xFFFF) # ori $at, $at, 0x4290 -/* 09004C 7F05D65C 01632021 */ addu $a0, $t3, $v1 -/* 090050 7F05D660 24840848 */ addiu $a0, $a0, 0x848 -/* 090054 7F05D664 00413021 */ addu $a2, $v0, $at -/* 090058 7F05D668 AFA30030 */ sw $v1, 0x30($sp) -/* 09005C 7F05D66C 0FC32C05 */ jal sub_GAME_7F0CBAF4 -/* 090060 7F05D670 AFA90034 */ sw $t1, 0x34($sp) -/* 090064 7F05D674 8FA30030 */ lw $v1, 0x30($sp) -/* 090068 7F05D678 8E020000 */ lw $v0, ($s0) -/* 09006C 7F05D67C 8FA90034 */ lw $t1, 0x34($sp) -/* 090070 7F05D680 8FA50048 */ lw $a1, 0x48($sp) -/* 090074 7F05D684 00436021 */ addu $t4, $v0, $v1 -/* 090078 7F05D688 25980848 */ addiu $t8, $t4, 0x848 -/* 09007C 7F05D68C 00492021 */ addu $a0, $v0, $t1 -/* 090080 7F05D690 24840810 */ addiu $a0, $a0, 0x810 -/* 090084 7F05D694 AFB80010 */ sw $t8, 0x10($sp) -/* 090088 7F05D698 8FA60040 */ lw $a2, 0x40($sp) -/* 09008C 7F05D69C 0FC1D949 */ jal load_object_fill_header -/* 090090 7F05D6A0 3407BD70 */ li $a3, 48496 -/* 090094 7F05D6A4 1000003E */ b .L7F05D7A0 -/* 090098 7F05D6A8 8FA20038 */ lw $v0, 0x38($sp) -.L7F05D6AC: -/* 09009C 7F05D6AC 2401001E */ li $at, 30 -/* 0900A0 7F05D6B0 12210004 */ beq $s1, $at, .L7F05D6C4 -/* 0900A4 7F05D6B4 000A1900 */ sll $v1, $t2, 4 -/* 0900A8 7F05D6B8 24010017 */ li $at, 23 -/* 0900AC 7F05D6BC 1621001B */ bne $s1, $at, .L7F05D72C -/* 0900B0 7F05D6C0 8FAB0038 */ lw $t3, 0x38($sp) -.L7F05D6C4: -/* 0900B4 7F05D6C4 8FA50040 */ lw $a1, 0x40($sp) -/* 0900B8 7F05D6C8 8E0F0000 */ lw $t7, ($s0) -/* 0900BC 7F05D6CC 3401AFD0 */ li $at, 45008 -/* 0900C0 7F05D6D0 00A12821 */ addu $a1, $a1, $at -/* 0900C4 7F05D6D4 3C01FFFF */ lui $at, (0xFFFF5030 >> 16) # lui $at, 0xffff -/* 0900C8 7F05D6D8 34215030 */ ori $at, (0xFFFF5030 & 0xFFFF) # ori $at, $at, 0x5030 -/* 0900CC 7F05D6DC 01E32021 */ addu $a0, $t7, $v1 -/* 0900D0 7F05D6E0 24840848 */ addiu $a0, $a0, 0x848 -/* 0900D4 7F05D6E4 00E13021 */ addu $a2, $a3, $at -/* 0900D8 7F05D6E8 AFA30030 */ sw $v1, 0x30($sp) -/* 0900DC 7F05D6EC 0FC32C05 */ jal sub_GAME_7F0CBAF4 -/* 0900E0 7F05D6F0 AFA90034 */ sw $t1, 0x34($sp) -/* 0900E4 7F05D6F4 8FA30030 */ lw $v1, 0x30($sp) -/* 0900E8 7F05D6F8 8E020000 */ lw $v0, ($s0) -/* 0900EC 7F05D6FC 8FA90034 */ lw $t1, 0x34($sp) -/* 0900F0 7F05D700 8FA50048 */ lw $a1, 0x48($sp) -/* 0900F4 7F05D704 00436821 */ addu $t5, $v0, $v1 -/* 0900F8 7F05D708 25AE0848 */ addiu $t6, $t5, 0x848 -/* 0900FC 7F05D70C 00492021 */ addu $a0, $v0, $t1 -/* 090100 7F05D710 24840810 */ addiu $a0, $a0, 0x810 -/* 090104 7F05D714 AFAE0010 */ sw $t6, 0x10($sp) -/* 090108 7F05D718 8FA60040 */ lw $a2, 0x40($sp) -/* 09010C 7F05D71C 0FC1D949 */ jal load_object_fill_header -/* 090110 7F05D720 3407AFD0 */ li $a3, 45008 -/* 090114 7F05D724 1000001E */ b .L7F05D7A0 -/* 090118 7F05D728 8FA20038 */ lw $v0, 0x38($sp) -.L7F05D72C: -/* 09011C 7F05D72C 3C0C8003 */ lui $t4, %hi(D_80032464) # $t4, 0x8003 -/* 090120 7F05D730 258CD9B4 */ addiu $t4, %lo(D_80032464) # addiu $t4, $t4, -0x264c -/* 090124 7F05D734 8E190000 */ lw $t9, ($s0) -/* 090128 7F05D738 016C4021 */ addu $t0, $t3, $t4 -/* 09012C 7F05D73C 8D020000 */ lw $v0, ($t0) -/* 090130 7F05D740 8FB80040 */ lw $t8, 0x40($sp) -/* 090134 7F05D744 000A1900 */ sll $v1, $t2, 4 -/* 090138 7F05D748 03232021 */ addu $a0, $t9, $v1 -/* 09013C 7F05D74C 24840848 */ addiu $a0, $a0, 0x848 -/* 090140 7F05D750 AFA30030 */ sw $v1, 0x30($sp) -/* 090144 7F05D754 AFA8002C */ sw $t0, 0x2c($sp) -/* 090148 7F05D758 AFA90034 */ sw $t1, 0x34($sp) -/* 09014C 7F05D75C 00E23023 */ subu $a2, $a3, $v0 -/* 090150 7F05D760 0FC32C05 */ jal sub_GAME_7F0CBAF4 -/* 090154 7F05D764 00582821 */ addu $a1, $v0, $t8 -/* 090158 7F05D768 8FA30030 */ lw $v1, 0x30($sp) -/* 09015C 7F05D76C 8E020000 */ lw $v0, ($s0) -/* 090160 7F05D770 8FA90034 */ lw $t1, 0x34($sp) -/* 090164 7F05D774 8FA8002C */ lw $t0, 0x2c($sp) -/* 090168 7F05D778 00437821 */ addu $t7, $v0, $v1 -/* 09016C 7F05D77C 25ED0848 */ addiu $t5, $t7, 0x848 -/* 090170 7F05D780 00492021 */ addu $a0, $v0, $t1 -/* 090174 7F05D784 24840810 */ addiu $a0, $a0, 0x810 -/* 090178 7F05D788 AFAD0010 */ sw $t5, 0x10($sp) -/* 09017C 7F05D78C 8FA50048 */ lw $a1, 0x48($sp) -/* 090180 7F05D790 8FA60040 */ lw $a2, 0x40($sp) -/* 090184 7F05D794 0FC1D949 */ jal load_object_fill_header -/* 090188 7F05D798 8D070000 */ lw $a3, ($t0) -/* 09018C 7F05D79C 8FA20038 */ lw $v0, 0x38($sp) -.L7F05D7A0: -/* 090190 7F05D7A0 8E190000 */ lw $t9, ($s0) -/* 090194 7F05D7A4 240E0001 */ li $t6, 1 -/* 090198 7F05D7A8 240FFFFF */ li $t7, -1 -/* 09019C 7F05D7AC 03225821 */ addu $t3, $t9, $v0 -/* 0901A0 7F05D7B0 AD6E07F8 */ sw $t6, 0x7f8($t3) -/* 0901A4 7F05D7B4 8E0C0000 */ lw $t4, ($s0) -/* 0901A8 7F05D7B8 0182C021 */ addu $t8, $t4, $v0 -/* 0901AC 7F05D7BC AF110800 */ sw $s1, 0x800($t8) -/* 0901B0 7F05D7C0 8E0D0000 */ lw $t5, ($s0) -/* 0901B4 7F05D7C4 01A2C821 */ addu $t9, $t5, $v0 -/* 0901B8 7F05D7C8 10000003 */ b .L7F05D7D8 -/* 0901BC 7F05D7CC AF2F2A3C */ sw $t7, 0x2a3c($t9) -/* 0901C0 7F05D7D0 246EFFFF */ addiu $t6, $v1, -1 -.L7F05D7D4: -/* 0901C4 7F05D7D4 AC4E07F8 */ sw $t6, 0x7f8($v0) -.L7F05D7D8: -/* 0901C8 7F05D7D8 8FBF0024 */ lw $ra, 0x24($sp) -.L7F05D7DC: -/* 0901CC 7F05D7DC 8FB0001C */ lw $s0, 0x1c($sp) -/* 0901D0 7F05D7E0 8FB10020 */ lw $s1, 0x20($sp) -/* 0901D4 7F05D7E4 03E00008 */ jr $ra -/* 0901D8 7F05D7E8 27BD0050 */ addiu $sp, $sp, 0x50 -) -#endif - -#endif - - - - - #ifdef NONMATCHING -void sub_GAME_7F05D334(void) { +enum ITEM_IDS sub_GAME_7F05D334(enum ITEM_IDS arg0, s32 arg1) { + s32 i; + for (i = arg1; i > 0; i--) { + do { + arg0 = (arg0 + 1) % 33; + } while (bondinvItemAvailable(arg0) == 0); + } + for (; i < 0; i++) { + do { + arg0--; + if (arg0 < 0) { + arg0 = 0x20 - ((-1 - arg0) % 33); + } + } while (bondinvItemAvailable(arg0) == 0); + } + + return arg0; } #else GLOBAL_ASM( @@ -2444,7 +1149,7 @@ glabel sub_GAME_7F05D334 ) #endif -s32 get_next_weapon_in_cycle_for_hand(GUNHAND hand, s32 direction) +ITEM_IDS get_next_weapon_in_cycle_for_hand(GUNHAND hand, s32 direction) { if (g_CurrentPlayer->hands[hand].when_detonating_mines_is_0 == 5) { if ( @@ -2464,204 +1169,50 @@ s32 get_next_weapon_in_cycle_for_hand(GUNHAND hand, s32 direction) } -#ifdef NONMATCHING -void likely_change_weapon_in_hand(void) { +void likely_change_weapon_in_hand(enum GUNHAND hand, s32 arg1, s32 arg2) +{ + if ((g_CurrentPlayer->hands[hand].when_detonating_mines_is_0 == 5) || (g_CurrentPlayer->hands[hand].when_detonating_mines_is_0 == 6)) + { + g_CurrentPlayer->hands[hand].field_8B0 = g_CurrentPlayer->hands[hand].field_890; -} +#ifdef VERSION_EU + if (getPlayerCount() == 1) { + g_CurrentPlayer->hands[hand].field_8B0 += 0xE; + } else { + g_CurrentPlayer->hands[hand].field_8B0 += 0xA; + } #else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel likely_change_weapon_in_hand -/* 092010 7F05D4E0 000438C0 */ sll $a3, $a0, 3 -/* 092014 7F05D4E4 00E43823 */ subu $a3, $a3, $a0 -/* 092018 7F05D4E8 3C088008 */ lui $t0, %hi(g_CurrentPlayer) -/* 09201C 7F05D4EC 00073880 */ sll $a3, $a3, 2 -/* 092020 7F05D4F0 2508A0B0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x5f50 -/* 092024 7F05D4F4 00E43821 */ addu $a3, $a3, $a0 -/* 092028 7F05D4F8 8D0E0000 */ lw $t6, ($t0) -/* 09202C 7F05D4FC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 092030 7F05D500 00073880 */ sll $a3, $a3, 2 -/* 092034 7F05D504 00E43821 */ addu $a3, $a3, $a0 -/* 092038 7F05D508 000738C0 */ sll $a3, $a3, 3 -/* 09203C 7F05D50C AFBF0014 */ sw $ra, 0x14($sp) -/* 092040 7F05D510 AFA50024 */ sw $a1, 0x24($sp) -/* 092044 7F05D514 AFA60028 */ sw $a2, 0x28($sp) -/* 092048 7F05D518 01C71021 */ addu $v0, $t6, $a3 -/* 09204C 7F05D51C 8C430894 */ lw $v1, 0x894($v0) -/* 092050 7F05D520 24010005 */ li $at, 5 -/* 092054 7F05D524 10610003 */ beq $v1, $at, .L7F05D534 -/* 092058 7F05D528 24010006 */ li $at, 6 -/* 09205C 7F05D52C 54610018 */ bnel $v1, $at, .L7F05D590 -/* 092060 7F05D530 00002825 */ move $a1, $zero -.L7F05D534: -/* 092064 7F05D534 8C4F0890 */ lw $t7, 0x890($v0) -/* 092068 7F05D538 AC4F08B0 */ sw $t7, 0x8b0($v0) -/* 09206C 7F05D53C AFA7001C */ sw $a3, 0x1c($sp) -/* 092070 7F05D540 0FC26919 */ jal getPlayerCount -/* 092074 7F05D544 AFA40020 */ sw $a0, 0x20($sp) -/* 092078 7F05D548 3C088008 */ lui $t0, %hi(g_CurrentPlayer) -/* 09207C 7F05D54C 24010001 */ li $at, 1 -/* 092080 7F05D550 2508A0B0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x5f50 -/* 092084 7F05D554 8FA40020 */ lw $a0, 0x20($sp) -/* 092088 7F05D558 14410007 */ bne $v0, $at, .L7F05D578 -/* 09208C 7F05D55C 8FA7001C */ lw $a3, 0x1c($sp) -/* 092090 7F05D560 8D180000 */ lw $t8, ($t0) -/* 092094 7F05D564 03071021 */ addu $v0, $t8, $a3 -/* 092098 7F05D568 8C5908B0 */ lw $t9, 0x8b0($v0) -/* 09209C 7F05D56C 27290011 */ addiu $t1, $t9, 0x11 -/* 0920A0 7F05D570 10000006 */ b .L7F05D58C -/* 0920A4 7F05D574 AC4908B0 */ sw $t1, 0x8b0($v0) -.L7F05D578: -/* 0920A8 7F05D578 8D0A0000 */ lw $t2, ($t0) -/* 0920AC 7F05D57C 01471021 */ addu $v0, $t2, $a3 -/* 0920B0 7F05D580 8C4B08B0 */ lw $t3, 0x8b0($v0) -/* 0920B4 7F05D584 256C000D */ addiu $t4, $t3, 0xd -/* 0920B8 7F05D588 AC4C08B0 */ sw $t4, 0x8b0($v0) -.L7F05D58C: -/* 0920BC 7F05D58C 00002825 */ move $a1, $zero -.L7F05D590: -/* 0920C0 7F05D590 0FC1750D */ jal get_next_weapon_in_cycle_for_hand -/* 0920C4 7F05D594 AFA7001C */ sw $a3, 0x1c($sp) -/* 0920C8 7F05D598 8FAD0024 */ lw $t5, 0x24($sp) -/* 0920CC 7F05D59C 3C088008 */ lui $t0, %hi(g_CurrentPlayer) -/* 0920D0 7F05D5A0 2508A0B0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x5f50 -/* 0920D4 7F05D5A4 104D0016 */ beq $v0, $t5, .L7F05D600 -/* 0920D8 7F05D5A8 8FA7001C */ lw $a3, 0x1c($sp) -/* 0920DC 7F05D5AC 8D0E0000 */ lw $t6, ($t0) -/* 0920E0 7F05D5B0 24010005 */ li $at, 5 -/* 0920E4 7F05D5B4 01C71021 */ addu $v0, $t6, $a3 -/* 0920E8 7F05D5B8 8C430894 */ lw $v1, 0x894($v0) -/* 0920EC 7F05D5BC 10610006 */ beq $v1, $at, .L7F05D5D8 -/* 0920F0 7F05D5C0 24010006 */ li $at, 6 -/* 0920F4 7F05D5C4 10610004 */ beq $v1, $at, .L7F05D5D8 -/* 0920F8 7F05D5C8 240F0005 */ li $t7, 5 -/* 0920FC 7F05D5CC AC4F0898 */ sw $t7, 0x898($v0) -/* 092100 7F05D5D0 8D180000 */ lw $t8, ($t0) -/* 092104 7F05D5D4 03071021 */ addu $v0, $t8, $a3 -.L7F05D5D8: -/* 092108 7F05D5D8 8FB90024 */ lw $t9, 0x24($sp) -/* 09210C 7F05D5DC 24090001 */ li $t1, 1 -/* 092110 7F05D5E0 AC5908AC */ sw $t9, 0x8ac($v0) -/* 092114 7F05D5E4 8D0A0000 */ lw $t2, ($t0) -/* 092118 7F05D5E8 01475821 */ addu $t3, $t2, $a3 -/* 09211C 7F05D5EC AD6908B4 */ sw $t1, 0x8b4($t3) -/* 092120 7F05D5F0 8D0D0000 */ lw $t5, ($t0) -/* 092124 7F05D5F4 8FAC0028 */ lw $t4, 0x28($sp) -/* 092128 7F05D5F8 01A77021 */ addu $t6, $t5, $a3 -/* 09212C 7F05D5FC ADCC08B8 */ sw $t4, 0x8b8($t6) -.L7F05D600: -/* 092130 7F05D600 8FBF0014 */ lw $ra, 0x14($sp) -/* 092134 7F05D604 27BD0020 */ addiu $sp, $sp, 0x20 -/* 092138 7F05D608 03E00008 */ jr $ra -/* 09213C 7F05D60C 00000000 */ nop -) + if (getPlayerCount() == 1) { + g_CurrentPlayer->hands[hand].field_8B0 += 0x11; + } else { + g_CurrentPlayer->hands[hand].field_8B0 += 0xD; + } #endif -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel likely_change_weapon_in_hand -/* 090388 7F05D998 000438C0 */ sll $a3, $a0, 3 -/* 09038C 7F05D99C 00E43823 */ subu $a3, $a3, $a0 -/* 090390 7F05D9A0 3C088007 */ lui $t0, %hi(g_CurrentPlayer) # $t0, 0x8007 -/* 090394 7F05D9A4 00073880 */ sll $a3, $a3, 2 -/* 090398 7F05D9A8 25088BC0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x7440 -/* 09039C 7F05D9AC 00E43821 */ addu $a3, $a3, $a0 -/* 0903A0 7F05D9B0 8D0E0000 */ lw $t6, ($t0) -/* 0903A4 7F05D9B4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0903A8 7F05D9B8 00073880 */ sll $a3, $a3, 2 -/* 0903AC 7F05D9BC 00E43821 */ addu $a3, $a3, $a0 -/* 0903B0 7F05D9C0 000738C0 */ sll $a3, $a3, 3 -/* 0903B4 7F05D9C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0903B8 7F05D9C8 AFA50024 */ sw $a1, 0x24($sp) -/* 0903BC 7F05D9CC AFA60028 */ sw $a2, 0x28($sp) -/* 0903C0 7F05D9D0 01C71021 */ addu $v0, $t6, $a3 -/* 0903C4 7F05D9D4 8C43088C */ lw $v1, 0x88c($v0) -/* 0903C8 7F05D9D8 24010005 */ li $at, 5 -/* 0903CC 7F05D9DC 10610003 */ beq $v1, $at, .L7F05D9EC -/* 0903D0 7F05D9E0 24010006 */ li $at, 6 -/* 0903D4 7F05D9E4 54610018 */ bnel $v1, $at, .L7F05DA48 -/* 0903D8 7F05D9E8 00002825 */ move $a1, $zero -.L7F05D9EC: -/* 0903DC 7F05D9EC 8C4F0888 */ lw $t7, 0x888($v0) -/* 0903E0 7F05D9F0 AC4F08A8 */ sw $t7, 0x8a8($v0) -/* 0903E4 7F05D9F4 AFA7001C */ sw $a3, 0x1c($sp) -/* 0903E8 7F05D9F8 0FC26669 */ jal getPlayerCount -/* 0903EC 7F05D9FC AFA40020 */ sw $a0, 0x20($sp) -/* 0903F0 7F05DA00 3C088007 */ lui $t0, %hi(g_CurrentPlayer) # $t0, 0x8007 -/* 0903F4 7F05DA04 24010001 */ li $at, 1 -/* 0903F8 7F05DA08 25088BC0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x7440 -/* 0903FC 7F05DA0C 8FA40020 */ lw $a0, 0x20($sp) -/* 090400 7F05DA10 14410007 */ bne $v0, $at, .L7F05DA30 -/* 090404 7F05DA14 8FA7001C */ lw $a3, 0x1c($sp) -/* 090408 7F05DA18 8D180000 */ lw $t8, ($t0) -/* 09040C 7F05DA1C 03071021 */ addu $v0, $t8, $a3 -/* 090410 7F05DA20 8C5908A8 */ lw $t9, 0x8a8($v0) -/* 090414 7F05DA24 2729000E */ addiu $t1, $t9, 0xe -/* 090418 7F05DA28 10000006 */ b .L7F05DA44 -/* 09041C 7F05DA2C AC4908A8 */ sw $t1, 0x8a8($v0) -.L7F05DA30: -/* 090420 7F05DA30 8D0A0000 */ lw $t2, ($t0) -/* 090424 7F05DA34 01471021 */ addu $v0, $t2, $a3 -/* 090428 7F05DA38 8C4B08A8 */ lw $t3, 0x8a8($v0) -/* 09042C 7F05DA3C 256C000A */ addiu $t4, $t3, 0xa -/* 090430 7F05DA40 AC4C08A8 */ sw $t4, 0x8a8($v0) -.L7F05DA44: -/* 090434 7F05DA44 00002825 */ move $a1, $zero -.L7F05DA48: -/* 090438 7F05DA48 0FC1763B */ jal get_next_weapon_in_cycle_for_hand -/* 09043C 7F05DA4C AFA7001C */ sw $a3, 0x1c($sp) -/* 090440 7F05DA50 8FAD0024 */ lw $t5, 0x24($sp) -/* 090444 7F05DA54 3C088007 */ lui $t0, %hi(g_CurrentPlayer) # $t0, 0x8007 -/* 090448 7F05DA58 25088BC0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x7440 -/* 09044C 7F05DA5C 104D0016 */ beq $v0, $t5, .L7F05DAB8 -/* 090450 7F05DA60 8FA7001C */ lw $a3, 0x1c($sp) -/* 090454 7F05DA64 8D0E0000 */ lw $t6, ($t0) -/* 090458 7F05DA68 24010005 */ li $at, 5 -/* 09045C 7F05DA6C 01C71021 */ addu $v0, $t6, $a3 -/* 090460 7F05DA70 8C43088C */ lw $v1, 0x88c($v0) -/* 090464 7F05DA74 10610006 */ beq $v1, $at, .L7F05DA90 -/* 090468 7F05DA78 24010006 */ li $at, 6 -/* 09046C 7F05DA7C 10610004 */ beq $v1, $at, .L7F05DA90 -/* 090470 7F05DA80 240F0005 */ li $t7, 5 -/* 090474 7F05DA84 AC4F0890 */ sw $t7, 0x890($v0) -/* 090478 7F05DA88 8D180000 */ lw $t8, ($t0) -/* 09047C 7F05DA8C 03071021 */ addu $v0, $t8, $a3 -.L7F05DA90: -/* 090480 7F05DA90 8FB90024 */ lw $t9, 0x24($sp) -/* 090484 7F05DA94 24090001 */ li $t1, 1 -/* 090488 7F05DA98 AC5908A4 */ sw $t9, 0x8a4($v0) -/* 09048C 7F05DA9C 8D0A0000 */ lw $t2, ($t0) -/* 090490 7F05DAA0 01475821 */ addu $t3, $t2, $a3 -/* 090494 7F05DAA4 AD6908AC */ sw $t1, 0x8ac($t3) -/* 090498 7F05DAA8 8D0D0000 */ lw $t5, ($t0) -/* 09049C 7F05DAAC 8FAC0028 */ lw $t4, 0x28($sp) -/* 0904A0 7F05DAB0 01A77021 */ addu $t6, $t5, $a3 -/* 0904A4 7F05DAB4 ADCC08B0 */ sw $t4, 0x8b0($t6) -.L7F05DAB8: -/* 0904A8 7F05DAB8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0904AC 7F05DABC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0904B0 7F05DAC0 03E00008 */ jr $ra -/* 0904B4 7F05DAC4 00000000 */ nop -) -#endif -#endif + } - - - - -void sub_GAME_7F05D610(int param_1) -{ - likely_change_weapon_in_hand(param_1, sub_GAME_7F05D334(get_next_weapon_in_cycle_for_hand(param_1, 0), 1), 0); + if (get_next_weapon_in_cycle_for_hand(hand, 0) != arg1) + { + if ((g_CurrentPlayer->hands[hand].when_detonating_mines_is_0 != 5) && (g_CurrentPlayer->hands[hand].when_detonating_mines_is_0 != 6)) + { + g_CurrentPlayer->hands[hand].weapon_current_animation = 5; + } + g_CurrentPlayer->hands[hand].weapon_next_weapon = arg1; + g_CurrentPlayer->hands[hand].weapon_animation_trigger = 1; + g_CurrentPlayer->hands[hand].field_8B8 = arg2; + } } -void sub_GAME_7F05D650(int param_1) +void sub_GAME_7F05D610(GUNHAND hand) { - likely_change_weapon_in_hand(param_1, sub_GAME_7F05D334(get_next_weapon_in_cycle_for_hand(param_1, 0), -1), 0); + likely_change_weapon_in_hand(hand, sub_GAME_7F05D334(get_next_weapon_in_cycle_for_hand(hand, 0), 1), 0); +} + + +void sub_GAME_7F05D650(GUNHAND hand) +{ + likely_change_weapon_in_hand(hand, sub_GAME_7F05D334(get_next_weapon_in_cycle_for_hand(hand, 0), -1), 0); } @@ -2771,7 +1322,7 @@ void attempt_reload_item_in_hand(GUNHAND hand) { } } -s32 getCurrentPlayerWeaponId(GUNHAND hand) { +ITEM_IDS getCurrentPlayerWeaponId(GUNHAND hand) { return g_CurrentPlayer->hands[hand].weaponnum; } @@ -2780,7 +1331,7 @@ void draw_item_in_hand(GUNHAND hand, s32 next_weapon) { g_CurrentPlayer->hands[hand].weapon_next_weapon = next_weapon; } -s32 get_item_in_hand_or_watch_menu(GUNHAND hand) { +ITEM_IDS get_item_in_hand_or_watch_menu(GUNHAND hand) { if (g_CurrentPlayer->hands[hand].weaponnum_watchmenu >= 0) { return g_CurrentPlayer->hands[hand].weaponnum_watchmenu; } else { @@ -2788,8 +1339,8 @@ s32 get_item_in_hand_or_watch_menu(GUNHAND hand) { } } -void sub_GAME_7F05DA8C(GUNHAND hand, s32 weaponnum_watchmenu) { - place_item_in_hand_swap_and_make_visible(); +void sub_GAME_7F05DA8C(GUNHAND hand, ITEM_IDS weaponnum_watchmenu) { + place_item_in_hand_swap_and_make_visible(hand, weaponnum_watchmenu); g_CurrentPlayer->hands[hand].weaponnum_watchmenu = weaponnum_watchmenu; } @@ -2800,221 +1351,43 @@ void sub_GAME_7F05DAE4(GUNHAND hand) { } } -#ifdef NONMATCHING -void currentPlayerUnEquipWeaponWrapper(GUNHAND hand, s32 weapid) + +void currentPlayerUnEquipWeaponWrapper(enum GUNHAND hand, enum ITEM_IDS weapid) { - s32 ammomag; - AMMOTYPE ammotype; + enum ITEM_IDS weapon_num; + s32 ammo_type; - void * ammocount; + weapon_num = g_CurrentPlayer->hands[hand].weaponnum; + ammo_type = get_ammo_type_for_weapon(weapon_num); - ammotype = get_ammo_type_for_weapon(&pPlayer->hands[hand]); - - if (pPlayer->hands[hand].weaponnum_watchmenu < 0) + if (g_CurrentPlayer->hands[hand].weaponnum_watchmenu < 0) { - place_item_in_hand_swap_and_make_visible(hand, weapid, &pPlayer->hands[hand], ammotype); + place_item_in_hand_swap_and_make_visible(hand, weapid); } - ammomag = pPlayer->hands[hand].weapon_ammo_in_magazine; - ammocount = pPlayer->AmmoHeld[ammotype]; - if (ammomag > 0) + if (g_CurrentPlayer->hands[hand].weapon_ammo_in_magazine > 0) { - //ammocount->unk1130 = ammocount->unk1130 + ammomag; + g_CurrentPlayer->ammoheldarr[ammo_type] += g_CurrentPlayer->hands[hand].weapon_ammo_in_magazine; } - if (pPlayer->hands[hand].weaponnum < 0x21) + + if (weapon_num < ITEM_BOMBCASE) { - //pPlayer->hands[hand].weapon_firing_status=2; - pPlayer->AmmoHeld[ammotype] += weapid; + g_CurrentPlayer->hands[hand].previous_weapon = weapon_num; } - if (getPlayerCount(&pPlayer->hands[hand], ammomag, &pPlayer->hands[hand], ammotype) >= 2) + + if (getPlayerCount() >= 2) { sub_GAME_7F09B368(hand); } + sub_GAME_7F05FB00(hand); - pPlayer->hands[hand].weaponnum = weapid; - pPlayer->hands[hand].weapon_ammo_in_magazine = 0; - pPlayer->hands[hand].field_A4C = 0; - pPlayer->hands[hand].field_A50 = 0; + g_CurrentPlayer->hands[hand].weaponnum = weapid; + g_CurrentPlayer->hands[hand].weapon_ammo_in_magazine = 0; + g_CurrentPlayer->hands[hand].field_A4C = 0; + g_CurrentPlayer->hands[hand].field_A50 = 0; bondinvDetermineEquippedItem(); } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel currentPlayerUnEquipWeaponWrapper -/* 092684 7F05DB54 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 092688 7F05DB58 000470C0 */ sll $t6, $a0, 3 -/* 09268C 7F05DB5C AFB10018 */ sw $s1, 0x18($sp) -/* 092690 7F05DB60 01C47023 */ subu $t6, $t6, $a0 -/* 092694 7F05DB64 3C118008 */ lui $s1, %hi(g_CurrentPlayer) -/* 092698 7F05DB68 000E7080 */ sll $t6, $t6, 2 -/* 09269C 7F05DB6C 2631A0B0 */ addiu $s1, %lo(g_CurrentPlayer) # addiu $s1, $s1, -0x5f50 -/* 0926A0 7F05DB70 01C47021 */ addu $t6, $t6, $a0 -/* 0926A4 7F05DB74 8E2F0000 */ lw $t7, ($s1) -/* 0926A8 7F05DB78 000E7080 */ sll $t6, $t6, 2 -/* 0926AC 7F05DB7C AFB00014 */ sw $s0, 0x14($sp) -/* 0926B0 7F05DB80 01C47021 */ addu $t6, $t6, $a0 -/* 0926B4 7F05DB84 000E80C0 */ sll $s0, $t6, 3 -/* 0926B8 7F05DB88 AFBF001C */ sw $ra, 0x1c($sp) -/* 0926BC 7F05DB8C AFA40028 */ sw $a0, 0x28($sp) -/* 0926C0 7F05DB90 AFA5002C */ sw $a1, 0x2c($sp) -/* 0926C4 7F05DB94 01F0C021 */ addu $t8, $t7, $s0 -/* 0926C8 7F05DB98 8F040870 */ lw $a0, 0x870($t8) -/* 0926CC 7F05DB9C 0FC1A50B */ jal get_ammo_type_for_weapon -/* 0926D0 7F05DBA0 AFA40024 */ sw $a0, 0x24($sp) -/* 0926D4 7F05DBA4 8E230000 */ lw $v1, ($s1) -/* 0926D8 7F05DBA8 8FA60024 */ lw $a2, 0x24($sp) -/* 0926DC 7F05DBAC 00403825 */ move $a3, $v0 -/* 0926E0 7F05DBB0 00702021 */ addu $a0, $v1, $s0 -/* 0926E4 7F05DBB4 8C990874 */ lw $t9, 0x874($a0) -/* 0926E8 7F05DBB8 8FA5002C */ lw $a1, 0x2c($sp) -/* 0926EC 7F05DBBC 0723000A */ bgezl $t9, .L7F05DBE8 -/* 0926F0 7F05DBC0 8C85089C */ lw $a1, 0x89c($a0) -/* 0926F4 7F05DBC4 8FA40028 */ lw $a0, 0x28($sp) -/* 0926F8 7F05DBC8 AFA60024 */ sw $a2, 0x24($sp) -/* 0926FC 7F05DBCC 0FC173E9 */ jal place_item_in_hand_swap_and_make_visible -/* 092700 7F05DBD0 AFA20020 */ sw $v0, 0x20($sp) -/* 092704 7F05DBD4 8E230000 */ lw $v1, ($s1) -/* 092708 7F05DBD8 8FA60024 */ lw $a2, 0x24($sp) -/* 09270C 7F05DBDC 8FA70020 */ lw $a3, 0x20($sp) -/* 092710 7F05DBE0 00702021 */ addu $a0, $v1, $s0 -/* 092714 7F05DBE4 8C85089C */ lw $a1, 0x89c($a0) -.L7F05DBE8: -/* 092718 7F05DBE8 00074080 */ sll $t0, $a3, 2 -/* 09271C 7F05DBEC 00681021 */ addu $v0, $v1, $t0 -/* 092720 7F05DBF0 18A00004 */ blez $a1, .L7F05DC04 -/* 092724 7F05DBF4 28C10021 */ slti $at, $a2, 0x21 -/* 092728 7F05DBF8 8C491130 */ lw $t1, 0x1130($v0) -/* 09272C 7F05DBFC 01255021 */ addu $t2, $t1, $a1 -/* 092730 7F05DC00 AC4A1130 */ sw $t2, 0x1130($v0) -.L7F05DC04: -/* 092734 7F05DC04 10200004 */ beqz $at, .L7F05DC18 -/* 092738 7F05DC08 00000000 */ nop -/* 09273C 7F05DC0C 8E2B0000 */ lw $t3, ($s1) -/* 092740 7F05DC10 01706021 */ addu $t4, $t3, $s0 -/* 092744 7F05DC14 AD860878 */ sw $a2, 0x878($t4) -.L7F05DC18: -/* 092748 7F05DC18 0FC26919 */ jal getPlayerCount -/* 09274C 7F05DC1C 00000000 */ nop -/* 092750 7F05DC20 28410002 */ slti $at, $v0, 2 -/* 092754 7F05DC24 14200003 */ bnez $at, .L7F05DC34 -/* 092758 7F05DC28 00000000 */ nop -/* 09275C 7F05DC2C 0FC26CDA */ jal sub_GAME_7F09B368 -/* 092760 7F05DC30 8FA40028 */ lw $a0, 0x28($sp) -.L7F05DC34: -/* 092764 7F05DC34 0FC17EC0 */ jal sub_GAME_7F05FB00 -/* 092768 7F05DC38 8FA40028 */ lw $a0, 0x28($sp) -/* 09276C 7F05DC3C 8E2E0000 */ lw $t6, ($s1) -/* 092770 7F05DC40 8FAD002C */ lw $t5, 0x2c($sp) -/* 092774 7F05DC44 01D07821 */ addu $t7, $t6, $s0 -/* 092778 7F05DC48 ADED0870 */ sw $t5, 0x870($t7) -/* 09277C 7F05DC4C 8E380000 */ lw $t8, ($s1) -/* 092780 7F05DC50 0310C821 */ addu $t9, $t8, $s0 -/* 092784 7F05DC54 AF20089C */ sw $zero, 0x89c($t9) -/* 092788 7F05DC58 8E280000 */ lw $t0, ($s1) -/* 09278C 7F05DC5C 01104821 */ addu $t1, $t0, $s0 -/* 092790 7F05DC60 AD200A4C */ sw $zero, 0xa4c($t1) -/* 092794 7F05DC64 8E2A0000 */ lw $t2, ($s1) -/* 092798 7F05DC68 01505821 */ addu $t3, $t2, $s0 -/* 09279C 7F05DC6C 0FC23638 */ jal bondinvDetermineEquippedItem -/* 0927A0 7F05DC70 AD600A50 */ sw $zero, 0xa50($t3) -/* 0927A4 7F05DC74 8FBF001C */ lw $ra, 0x1c($sp) -/* 0927A8 7F05DC78 8FB00014 */ lw $s0, 0x14($sp) -/* 0927AC 7F05DC7C 8FB10018 */ lw $s1, 0x18($sp) -/* 0927B0 7F05DC80 03E00008 */ jr $ra -/* 0927B4 7F05DC84 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel currentPlayerUnEquipWeaponWrapper -/* 0909FC 7F05E00C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 090A00 7F05E010 000470C0 */ sll $t6, $a0, 3 -/* 090A04 7F05E014 AFB10018 */ sw $s1, 0x18($sp) -/* 090A08 7F05E018 01C47023 */ subu $t6, $t6, $a0 -/* 090A0C 7F05E01C 3C118007 */ lui $s1, %hi(g_CurrentPlayer) # $s1, 0x8007 -/* 090A10 7F05E020 000E7080 */ sll $t6, $t6, 2 -/* 090A14 7F05E024 26318BC0 */ addiu $s1, %lo(g_CurrentPlayer) # addiu $s1, $s1, -0x7440 -/* 090A18 7F05E028 01C47021 */ addu $t6, $t6, $a0 -/* 090A1C 7F05E02C 8E2F0000 */ lw $t7, ($s1) -/* 090A20 7F05E030 000E7080 */ sll $t6, $t6, 2 -/* 090A24 7F05E034 AFB00014 */ sw $s0, 0x14($sp) -/* 090A28 7F05E038 01C47021 */ addu $t6, $t6, $a0 -/* 090A2C 7F05E03C 000E80C0 */ sll $s0, $t6, 3 -/* 090A30 7F05E040 AFBF001C */ sw $ra, 0x1c($sp) -/* 090A34 7F05E044 AFA40028 */ sw $a0, 0x28($sp) -/* 090A38 7F05E048 AFA5002C */ sw $a1, 0x2c($sp) -/* 090A3C 7F05E04C 01F0C021 */ addu $t8, $t7, $s0 -/* 090A40 7F05E050 8F040868 */ lw $a0, 0x868($t8) -/* 090A44 7F05E054 0FC1A6F0 */ jal get_ammo_type_for_weapon -/* 090A48 7F05E058 AFA40024 */ sw $a0, 0x24($sp) -/* 090A4C 7F05E05C 8E230000 */ lw $v1, ($s1) -/* 090A50 7F05E060 8FA60024 */ lw $a2, 0x24($sp) -/* 090A54 7F05E064 00403825 */ move $a3, $v0 -/* 090A58 7F05E068 00702021 */ addu $a0, $v1, $s0 -/* 090A5C 7F05E06C 8C99086C */ lw $t9, 0x86c($a0) -/* 090A60 7F05E070 8FA5002C */ lw $a1, 0x2c($sp) -/* 090A64 7F05E074 0723000A */ bgezl $t9, .L7F05E0A0 -/* 090A68 7F05E078 8C850894 */ lw $a1, 0x894($a0) -/* 090A6C 7F05E07C 8FA40028 */ lw $a0, 0x28($sp) -/* 090A70 7F05E080 AFA60024 */ sw $a2, 0x24($sp) -/* 090A74 7F05E084 0FC17517 */ jal place_item_in_hand_swap_and_make_visible -/* 090A78 7F05E088 AFA20020 */ sw $v0, 0x20($sp) -/* 090A7C 7F05E08C 8E230000 */ lw $v1, ($s1) -/* 090A80 7F05E090 8FA60024 */ lw $a2, 0x24($sp) -/* 090A84 7F05E094 8FA70020 */ lw $a3, 0x20($sp) -/* 090A88 7F05E098 00702021 */ addu $a0, $v1, $s0 -/* 090A8C 7F05E09C 8C850894 */ lw $a1, 0x894($a0) -.L7F05E0A0: -/* 090A90 7F05E0A0 00074080 */ sll $t0, $a3, 2 -/* 090A94 7F05E0A4 00681021 */ addu $v0, $v1, $t0 -/* 090A98 7F05E0A8 18A00004 */ blez $a1, .L7F05E0BC -/* 090A9C 7F05E0AC 28C10021 */ slti $at, $a2, 0x21 -/* 090AA0 7F05E0B0 8C491128 */ lw $t1, 0x1128($v0) -/* 090AA4 7F05E0B4 01255021 */ addu $t2, $t1, $a1 -/* 090AA8 7F05E0B8 AC4A1128 */ sw $t2, 0x1128($v0) -.L7F05E0BC: -/* 090AAC 7F05E0BC 10200004 */ beqz $at, .L7F05E0D0 -/* 090AB0 7F05E0C0 00000000 */ nop -/* 090AB4 7F05E0C4 8E2B0000 */ lw $t3, ($s1) -/* 090AB8 7F05E0C8 01706021 */ addu $t4, $t3, $s0 -/* 090ABC 7F05E0CC AD860870 */ sw $a2, 0x870($t4) -.L7F05E0D0: -/* 090AC0 7F05E0D0 0FC26669 */ jal getPlayerCount -/* 090AC4 7F05E0D4 00000000 */ nop -/* 090AC8 7F05E0D8 28410002 */ slti $at, $v0, 2 -/* 090ACC 7F05E0DC 14200003 */ bnez $at, .L7F05E0EC -/* 090AD0 7F05E0E0 00000000 */ nop -/* 090AD4 7F05E0E4 0FC26A2A */ jal sub_GAME_7F09B368 -/* 090AD8 7F05E0E8 8FA40028 */ lw $a0, 0x28($sp) -.L7F05E0EC: -/* 090ADC 7F05E0EC 0FC17FEE */ jal sub_GAME_7F05FB00 -/* 090AE0 7F05E0F0 8FA40028 */ lw $a0, 0x28($sp) -/* 090AE4 7F05E0F4 8E2E0000 */ lw $t6, ($s1) -/* 090AE8 7F05E0F8 8FAD002C */ lw $t5, 0x2c($sp) -/* 090AEC 7F05E0FC 01D07821 */ addu $t7, $t6, $s0 -/* 090AF0 7F05E100 ADED0868 */ sw $t5, 0x868($t7) -/* 090AF4 7F05E104 8E380000 */ lw $t8, ($s1) -/* 090AF8 7F05E108 0310C821 */ addu $t9, $t8, $s0 -/* 090AFC 7F05E10C AF200894 */ sw $zero, 0x894($t9) -/* 090B00 7F05E110 8E280000 */ lw $t0, ($s1) -/* 090B04 7F05E114 01104821 */ addu $t1, $t0, $s0 -/* 090B08 7F05E118 AD200A44 */ sw $zero, 0xa44($t1) -/* 090B0C 7F05E11C 8E2A0000 */ lw $t2, ($s1) -/* 090B10 7F05E120 01505821 */ addu $t3, $t2, $s0 -/* 090B14 7F05E124 0FC23792 */ jal bondinvDetermineEquippedItem -/* 090B18 7F05E128 AD600A48 */ sw $zero, 0xa48($t3) -/* 090B1C 7F05E12C 8FBF001C */ lw $ra, 0x1c($sp) -/* 090B20 7F05E130 8FB00014 */ lw $s0, 0x14($sp) -/* 090B24 7F05E134 8FB10018 */ lw $s1, 0x18($sp) -/* 090B28 7F05E138 03E00008 */ jr $ra -/* 090B2C 7F05E13C 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif -#endif s8 get_hands_firing_status(GUNHAND hand) { return g_CurrentPlayer->hands[hand].weapon_firing_status; @@ -3141,57 +1514,33 @@ u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask) } - - - - -#ifdef NONMATCHING - -/** - * Address 0x7F05E0E4. - * - * decomp status: - * - compiles: yes - * - stack resize: ok - * - identical instructions: fail - * - identical registers: fail - * - * https://decomp.me/scratch/9xPg0 - * 94.66% -*/ -void gunSetBondWeaponSway(f32 arg0, f32 arg1, f32 speed_verta, f32 speed_theta) +void gunSetBondWeaponSway(f32 breathing, f32 arg1, f32 arg2, f32 arg3) { - f32 sp60[2]; - f32 stack_padding_02; - f32 stack_padding_03; - f32 ft; - f32 sp50; - f32 sp4C; - f32 ft2; - f32 phi_f22; - f32 ftemp; + f32 dampt[2]; s32 i; - - sp50 = speed_verta; + u32 unused[2]; + f32 sp50 = arg2; + f32 sp4c; + u32 stack2; + f32 minbreathing; - if (sp50 < 0.0f) - { - sp50 = -sp50; - } + if (sp50 < 0.0f) { sp50 = -sp50; } if (arg1 > 0.8f) { g_CurrentPlayer->gunposamplitude = 1.0f; } - else if (arg1 > 0.1f) - { - ft = cosf(((arg1 - 0.1f) * 6.2831855f) / 2.8f); - ft2 = (1.0f - ft); - g_CurrentPlayer->gunposamplitude = 0.8f * ft2 + 0.2f; - } else { - g_CurrentPlayer->gunposamplitude = 0.1f; + if (arg1 > 0.1f) + { + f32 tmp = (1.0f - cosf((arg1 - 0.1f) * M_TAU_F / 2.8f)); + g_CurrentPlayer->gunposamplitude = 0.8f * tmp + 0.2f; + } + else + { + g_CurrentPlayer->gunposamplitude = 0.1f; + } } if (g_CurrentPlayer->gunposamplitude < (bondviewGetBondBreathing() * 0.3f)) @@ -3204,873 +1553,85 @@ void gunSetBondWeaponSway(f32 arg0, f32 arg1, f32 speed_verta, f32 speed_theta) g_CurrentPlayer->gunposamplitude = 0.5f * sp50; } - for (i=0; ifield_1080 = - (g_CurrentPlayer->field_1080 * 0.95f) - + g_CurrentPlayer->gunposamplitude ; - } - - g_CurrentPlayer->gunposamplitude = g_CurrentPlayer->field_1080 * 0.050000012f; - - if (phi_f22 < 0.016666668f * sp50) - { - phi_f22 = 0.016666668f * sp50; + g_CurrentPlayer->field_1080 = (g_CurrentPlayer->field_1080 * (PAL ? 0.9403f : 0.95f)) + g_CurrentPlayer->gunposamplitude; } - for (i=0; igunposamplitude = g_CurrentPlayer->field_1080 * (PAL ? 0.059700012f : 0.050000012f); + + minbreathing = 0.016666668f * sp50; + if (breathing < minbreathing) { - g_CurrentPlayer->field_107C = - (g_CurrentPlayer->field_107C * 0.95f) - + phi_f22; + breathing = minbreathing; } - sp4C = (g_CurrentPlayer->field_107C * 0.050000012f * g_GlobalTimerDelta); + for (i = 0; i < g_ClockTimer; i++) + { + g_CurrentPlayer->field_107C = (g_CurrentPlayer->field_107C * (PAL ? 0.9403f : 0.95f)) + breathing; + } - if(1); + breathing = g_CurrentPlayer->field_107C * (PAL ? 0.059700012f : 0.050000012f); - sp60[0] = g_CurrentPlayer->hands[GUNRIGHT].field_A0C + sp4C; - while(sp60[0] >= 1.0f) + sp4c = breathing * g_GlobalTimerDelta; + dampt[0] = g_CurrentPlayer->hands[0].dampt + sp4c; + + while (dampt[0] >= 1.0f) { bgunCalculateBlend(GUNRIGHT); - sp60[0] -= 1.0f; - g_CurrentPlayer->field_1078 += 1; + dampt[0] -= 1.0f; + g_CurrentPlayer->syncoffset++; } - g_CurrentPlayer->field_1074 += g_GlobalTimerDelta; + g_CurrentPlayer->synccount += g_GlobalTimerDelta; - if (g_CurrentPlayer->field_1074 > 60.0f) + if (g_CurrentPlayer->synccount > 60.0f) { - g_CurrentPlayer->field_1074 = 0.0f; - ft = ((((f32)randomGetNext() * (1.0f / 4294967295U)) - 0.5f) * 0.2f); - g_CurrentPlayer->field_1070 = ft / 60.0f; + g_CurrentPlayer->synccount = 0.0f; + g_CurrentPlayer->syncchange = (RANDOMFRAC() - 0.5f) * 0.2f / 60.0f; } - if ((g_CurrentPlayer->field_1070 + sp4C) > 0.0f) + if (g_CurrentPlayer->syncchange + sp4c > 0.0f) { - g_CurrentPlayer->field_106C += g_CurrentPlayer->field_1070; + g_CurrentPlayer->gunsync += g_CurrentPlayer->syncchange; } - if (g_CurrentPlayer->field_106C > 0.5f) + if (g_CurrentPlayer->gunsync > 0.5f) { - g_CurrentPlayer->field_106C = 0.5f; + g_CurrentPlayer->gunsync = 0.5f; } - else if (g_CurrentPlayer->field_106C < -0.5f) + else if (g_CurrentPlayer->gunsync < -0.5f) { - g_CurrentPlayer->field_106C = -0.5f; + g_CurrentPlayer->gunsync = -0.5f; } - else if ((g_CurrentPlayer->field_106C < 0.1f) && (g_CurrentPlayer->field_106C > -0.1f)) + else if (g_CurrentPlayer->gunsync < 0.1f && g_CurrentPlayer->gunsync > -0.1f) { - if (g_CurrentPlayer->field_106C > 0.0f) + if (g_CurrentPlayer->gunsync > 0.0f) { - g_CurrentPlayer->field_106C = -0.1f; + g_CurrentPlayer->gunsync = -0.1f; } else { - g_CurrentPlayer->field_106C = 0.1f; + g_CurrentPlayer->gunsync = 0.1f; } } - sp60[1] = (f32) g_CurrentPlayer->field_1078 + sp60[0] + g_CurrentPlayer->field_106C; - - while (sp60[1] >= 1.0f) + dampt[1] = dampt[0] + g_CurrentPlayer->syncoffset + g_CurrentPlayer->gunsync; + + while (dampt[1] >= 1.0f) { bgunCalculateBlend(GUNLEFT); - sp60[1] -= 1.0f; - g_CurrentPlayer->field_1078 -= 1; + dampt[1] -= 1.0f; + g_CurrentPlayer->syncoffset--; } -#define ROTATION_THETA_TURN_SPEED_FACTOR -1.75f -#define ROTATION_VERTA_TURN_SPEED_FACTOR -2.0f - - for (i=0; i<2; i++) - { - g_CurrentPlayer->hands[i].field_A0C = sp60[i]; - g_CurrentPlayer->hands[i].weapon_theta_displacement = (ROTATION_THETA_TURN_SPEED_FACTOR * speed_theta); - g_CurrentPlayer->hands[i].weapon_verta_displacement = (ROTATION_VERTA_TURN_SPEED_FACTOR * speed_verta); - } + for (i = 0; i < 2; i++) + { + g_CurrentPlayer->hands[i].dampt = dampt[i]; + g_CurrentPlayer->hands[i].weapon_theta_displacement = -1.75f * arg3; + g_CurrentPlayer->hands[i].weapon_verta_displacement = -2.0f * arg2; + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.late_rodata -glabel D_80053C34 -.word 0x3f4ccccd /*0.80000001*/ -glabel D_80053C38 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C3C -.word 0x3dcccccd /*0.1*/ -glabel D_80053C40 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80053C44 -.word 0x40333333 /*2.8*/ -glabel D_80053C48 -.word 0x3f4ccccd /*0.80000001*/ -glabel D_80053C4C -.word 0x3e4ccccd /*0.2*/ -glabel D_80053C50 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C54 -.word 0x3e99999a /*0.30000001*/ -glabel D_80053C58 -.word 0x3e99999a /*0.30000001*/ -glabel D_80053C5C -.word 0x3f733333 /*0.94999999*/ -glabel D_80053C60 -.word 0x3f733333 /*0.94999999*/ -glabel D_80053C64 -.word 0x3d4cccd0 /*0.050000012*/ -glabel D_80053C68 -.word 0x3c888889 /*0.016666668*/ -glabel D_80053C6C -.word 0x3e4ccccd /*0.2*/ -glabel D_80053C70 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C74 -.word 0xbdcccccd /*-0.1*/ -.text -glabel gunSetBondWeaponSway -/* 092C14 7F05E0E4 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 092C18 7F05E0E8 AFA60070 */ sw $a2, 0x70($sp) -/* 092C1C 7F05E0EC C7A40070 */ lwc1 $f4, 0x70($sp) -/* 092C20 7F05E0F0 44803000 */ mtc1 $zero, $f6 -/* 092C24 7F05E0F4 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 092C28 7F05E0F8 46006586 */ mov.s $f22, $f12 -/* 092C2C 7F05E0FC 4606203C */ c.lt.s $f4, $f6 -/* 092C30 7F05E100 AFBF002C */ sw $ra, 0x2c($sp) -/* 092C34 7F05E104 AFB00028 */ sw $s0, 0x28($sp) -/* 092C38 7F05E108 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 092C3C 7F05E10C AFA70074 */ sw $a3, 0x74($sp) -/* 092C40 7F05E110 45000002 */ bc1f .L7F05E11C -/* 092C44 7F05E114 46002406 */ mov.s $f16, $f4 -/* 092C48 7F05E118 46002407 */ neg.s $f16, $f4 -.L7F05E11C: -/* 092C4C 7F05E11C 3C018005 */ lui $at, %hi(D_80053C34) -/* 092C50 7F05E120 C4283C34 */ lwc1 $f8, %lo(D_80053C34)($at) -/* 092C54 7F05E124 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 092C58 7F05E128 2610A0B0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x5f50 -/* 092C5C 7F05E12C 460E403C */ c.lt.s $f8, $f14 -/* 092C60 7F05E130 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 092C64 7F05E134 45000005 */ bc1f .L7F05E14C -/* 092C68 7F05E138 00000000 */ nop -/* 092C6C 7F05E13C 4481A000 */ mtc1 $at, $f20 -/* 092C70 7F05E140 8E0E0000 */ lw $t6, ($s0) -/* 092C74 7F05E144 10000025 */ b .L7F05E1DC -/* 092C78 7F05E148 E5D40FC0 */ swc1 $f20, 0xfc0($t6) -.L7F05E14C: -/* 092C7C 7F05E14C 3C018005 */ lui $at, %hi(D_80053C3C) -/* 092C80 7F05E150 C4203C3C */ lwc1 $f0, %lo(D_80053C3C)($at) -/* 092C84 7F05E154 460E003C */ c.lt.s $f0, $f14 -/* 092C88 7F05E158 00000000 */ nop -/* 092C8C 7F05E15C 45000019 */ bc1f .L7F05E1C4 -/* 092C90 7F05E160 00000000 */ nop -/* 092C94 7F05E164 46007281 */ sub.s $f10, $f14, $f0 -/* 092C98 7F05E168 3C018005 */ lui $at, %hi(D_80053C40) -/* 092C9C 7F05E16C C4323C40 */ lwc1 $f18, %lo(D_80053C40)($at) -/* 092CA0 7F05E170 3C018005 */ lui $at, %hi(D_80053C44) -/* 092CA4 7F05E174 C4243C44 */ lwc1 $f4, %lo(D_80053C44)($at) -/* 092CA8 7F05E178 46125182 */ mul.s $f6, $f10, $f18 -/* 092CAC 7F05E17C E7B00050 */ swc1 $f16, 0x50($sp) -/* 092CB0 7F05E180 0FC15FA8 */ jal cosf -/* 092CB4 7F05E184 46043303 */ div.s $f12, $f6, $f4 -/* 092CB8 7F05E188 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 092CBC 7F05E18C 4481A000 */ mtc1 $at, $f20 -/* 092CC0 7F05E190 3C018005 */ lui $at, %hi(D_80053C48) -/* 092CC4 7F05E194 C4283C48 */ lwc1 $f8, %lo(D_80053C48)($at) -/* 092CC8 7F05E198 4600A281 */ sub.s $f10, $f20, $f0 -/* 092CCC 7F05E19C 3C018005 */ lui $at, %hi(D_80053C4C) -/* 092CD0 7F05E1A0 C4263C4C */ lwc1 $f6, %lo(D_80053C4C)($at) -/* 092CD4 7F05E1A4 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 092CD8 7F05E1A8 460A4482 */ mul.s $f18, $f8, $f10 -/* 092CDC 7F05E1AC 2610A0B0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x5f50 -/* 092CE0 7F05E1B0 8E0F0000 */ lw $t7, ($s0) -/* 092CE4 7F05E1B4 C7B00050 */ lwc1 $f16, 0x50($sp) -/* 092CE8 7F05E1B8 46069100 */ add.s $f4, $f18, $f6 -/* 092CEC 7F05E1BC 10000007 */ b .L7F05E1DC -/* 092CF0 7F05E1C0 E5E40FC0 */ swc1 $f4, 0xfc0($t7) -.L7F05E1C4: -/* 092CF4 7F05E1C4 3C108008 */ lui $s0, %hi(g_CurrentPlayer) -/* 092CF8 7F05E1C8 2610A0B0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x5f50 -/* 092CFC 7F05E1CC 8E180000 */ lw $t8, ($s0) -/* 092D00 7F05E1D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 092D04 7F05E1D4 4481A000 */ mtc1 $at, $f20 -/* 092D08 7F05E1D8 E7000FC0 */ swc1 $f0, 0xfc0($t8) -.L7F05E1DC: -/* 092D0C 7F05E1DC 0FC227B5 */ jal bondviewGetBondBreathing -/* 092D10 7F05E1E0 E7B00050 */ swc1 $f16, 0x50($sp) -/* 092D14 7F05E1E4 3C018005 */ lui $at, %hi(D_80053C54) -/* 092D18 7F05E1E8 C4283C54 */ lwc1 $f8, %lo(D_80053C54)($at) -/* 092D1C 7F05E1EC 8E030000 */ lw $v1, ($s0) -/* 092D20 7F05E1F0 C7B00050 */ lwc1 $f16, 0x50($sp) -/* 092D24 7F05E1F4 46080282 */ mul.s $f10, $f0, $f8 -/* 092D28 7F05E1F8 C4620FC0 */ lwc1 $f2, 0xfc0($v1) -/* 092D2C 7F05E1FC 460A103C */ c.lt.s $f2, $f10 -/* 092D30 7F05E200 00000000 */ nop -/* 092D34 7F05E204 4502000C */ bc1fl .L7F05E238 -/* 092D38 7F05E208 3C013F00 */ lui $at, 0x3f00 -/* 092D3C 7F05E20C 0FC227B5 */ jal bondviewGetBondBreathing -/* 092D40 7F05E210 E7B00050 */ swc1 $f16, 0x50($sp) -/* 092D44 7F05E214 3C018005 */ lui $at, %hi(D_80053C58) -/* 092D48 7F05E218 C4323C58 */ lwc1 $f18, %lo(D_80053C58)($at) -/* 092D4C 7F05E21C 8E190000 */ lw $t9, ($s0) -/* 092D50 7F05E220 C7B00050 */ lwc1 $f16, 0x50($sp) -/* 092D54 7F05E224 46120182 */ mul.s $f6, $f0, $f18 -/* 092D58 7F05E228 E7260FC0 */ swc1 $f6, 0xfc0($t9) -/* 092D5C 7F05E22C 8E030000 */ lw $v1, ($s0) -/* 092D60 7F05E230 C4620FC0 */ lwc1 $f2, 0xfc0($v1) -/* 092D64 7F05E234 3C013F00 */ li $at, 0x3F000000 # 0.500000 -.L7F05E238: -/* 092D68 7F05E238 44812000 */ mtc1 $at, $f4 -/* 092D6C 7F05E23C 3C048005 */ lui $a0, %hi(g_ClockTimer) -/* 092D70 7F05E240 24848374 */ addiu $a0, %lo(g_ClockTimer) # addiu $a0, $a0, -0x7c8c -/* 092D74 7F05E244 46102002 */ mul.s $f0, $f4, $f16 -/* 092D78 7F05E248 4600103C */ c.lt.s $f2, $f0 -/* 092D7C 7F05E24C 00000000 */ nop -/* 092D80 7F05E250 45020003 */ bc1fl .L7F05E260 -/* 092D84 7F05E254 8C880000 */ lw $t0, ($a0) -/* 092D88 7F05E258 E4600FC0 */ swc1 $f0, 0xfc0($v1) -/* 092D8C 7F05E25C 8C880000 */ lw $t0, ($a0) -.L7F05E260: -/* 092D90 7F05E260 00001025 */ move $v0, $zero -/* 092D94 7F05E264 1900000E */ blez $t0, .L7F05E2A0 -/* 092D98 7F05E268 3C018005 */ lui $at, %hi(D_80053C5C) -/* 092D9C 7F05E26C C4203C5C */ lwc1 $f0, %lo(D_80053C5C)($at) -/* 092DA0 7F05E270 8E030000 */ lw $v1, ($s0) -.L7F05E274: -/* 092DA4 7F05E274 24420001 */ addiu $v0, $v0, 1 -/* 092DA8 7F05E278 C4681080 */ lwc1 $f8, 0x1080($v1) -/* 092DAC 7F05E27C C4720FC0 */ lwc1 $f18, 0xfc0($v1) -/* 092DB0 7F05E280 46004282 */ mul.s $f10, $f8, $f0 -/* 092DB4 7F05E284 46125180 */ add.s $f6, $f10, $f18 -/* 092DB8 7F05E288 E4661080 */ swc1 $f6, 0x1080($v1) -/* 092DBC 7F05E28C 8C890000 */ lw $t1, ($a0) -/* 092DC0 7F05E290 0049082A */ slt $at, $v0, $t1 -/* 092DC4 7F05E294 5420FFF7 */ bnezl $at, .L7F05E274 -/* 092DC8 7F05E298 8E030000 */ lw $v1, ($s0) -/* 092DCC 7F05E29C 00001025 */ move $v0, $zero -.L7F05E2A0: -/* 092DD0 7F05E2A0 8E030000 */ lw $v1, ($s0) -/* 092DD4 7F05E2A4 3C018005 */ lui $at, %hi(D_80053C60) -/* 092DD8 7F05E2A8 C4203C60 */ lwc1 $f0, %lo(D_80053C60)($at) -/* 092DDC 7F05E2AC 3C018005 */ lui $at, %hi(D_80053C64) -/* 092DE0 7F05E2B0 C42C3C64 */ lwc1 $f12, %lo(D_80053C64)($at) -/* 092DE4 7F05E2B4 C4641080 */ lwc1 $f4, 0x1080($v1) -/* 092DE8 7F05E2B8 3C018005 */ lui $at, %hi(D_80053C68) -/* 092DEC 7F05E2BC 460C2202 */ mul.s $f8, $f4, $f12 -/* 092DF0 7F05E2C0 E4680FC0 */ swc1 $f8, 0xfc0($v1) -/* 092DF4 7F05E2C4 C42A3C68 */ lwc1 $f10, %lo(D_80053C68)($at) -/* 092DF8 7F05E2C8 46105082 */ mul.s $f2, $f10, $f16 -/* 092DFC 7F05E2CC 4602B03C */ c.lt.s $f22, $f2 -/* 092E00 7F05E2D0 00000000 */ nop -/* 092E04 7F05E2D4 45020003 */ bc1fl .L7F05E2E4 -/* 092E08 7F05E2D8 8C8A0000 */ lw $t2, ($a0) -/* 092E0C 7F05E2DC 46001586 */ mov.s $f22, $f2 -/* 092E10 7F05E2E0 8C8A0000 */ lw $t2, ($a0) -.L7F05E2E4: -/* 092E14 7F05E2E4 5940000C */ blezl $t2, .L7F05E318 -/* 092E18 7F05E2E8 8E030000 */ lw $v1, ($s0) -/* 092E1C 7F05E2EC 8E030000 */ lw $v1, ($s0) -.L7F05E2F0: -/* 092E20 7F05E2F0 24420001 */ addiu $v0, $v0, 1 -/* 092E24 7F05E2F4 C472107C */ lwc1 $f18, 0x107c($v1) -/* 092E28 7F05E2F8 46009182 */ mul.s $f6, $f18, $f0 -/* 092E2C 7F05E2FC 46163100 */ add.s $f4, $f6, $f22 -/* 092E30 7F05E300 E464107C */ swc1 $f4, 0x107c($v1) -/* 092E34 7F05E304 8C8B0000 */ lw $t3, ($a0) -/* 092E38 7F05E308 004B082A */ slt $at, $v0, $t3 -/* 092E3C 7F05E30C 5420FFF8 */ bnezl $at, .L7F05E2F0 -/* 092E40 7F05E310 8E030000 */ lw $v1, ($s0) -/* 092E44 7F05E314 8E030000 */ lw $v1, ($s0) -.L7F05E318: -/* 092E48 7F05E318 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 092E4C 7F05E31C C4208378 */ lwc1 $f0, %lo(g_GlobalTimerDelta)($at) -/* 092E50 7F05E320 C468107C */ lwc1 $f8, 0x107c($v1) -/* 092E54 7F05E324 460C4582 */ mul.s $f22, $f8, $f12 -/* 092E58 7F05E328 00000000 */ nop -/* 092E5C 7F05E32C 4600B282 */ mul.s $f10, $f22, $f0 -/* 092E60 7F05E330 E7AA004C */ swc1 $f10, 0x4c($sp) -/* 092E64 7F05E334 C7A6004C */ lwc1 $f6, 0x4c($sp) -/* 092E68 7F05E338 C4720A0C */ lwc1 $f18, 0xa0c($v1) -/* 092E6C 7F05E33C 46069100 */ add.s $f4, $f18, $f6 -/* 092E70 7F05E340 E7A40060 */ swc1 $f4, 0x60($sp) -/* 092E74 7F05E344 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 092E78 7F05E348 4608A03E */ c.le.s $f20, $f8 -/* 092E7C 7F05E34C 00000000 */ nop -/* 092E80 7F05E350 45000012 */ bc1f .L7F05E39C -/* 092E84 7F05E354 00000000 */ nop -.L7F05E358: -/* 092E88 7F05E358 0FC17260 */ jal bgunCalculateBlend -/* 092E8C 7F05E35C 00002025 */ move $a0, $zero -/* 092E90 7F05E360 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* 092E94 7F05E364 8E030000 */ lw $v1, ($s0) -/* 092E98 7F05E368 46145481 */ sub.s $f18, $f10, $f20 -/* 092E9C 7F05E36C E7B20060 */ swc1 $f18, 0x60($sp) -/* 092EA0 7F05E370 8C6C1078 */ lw $t4, 0x1078($v1) -/* 092EA4 7F05E374 258D0001 */ addiu $t5, $t4, 1 -/* 092EA8 7F05E378 AC6D1078 */ sw $t5, 0x1078($v1) -/* 092EAC 7F05E37C C7A60060 */ lwc1 $f6, 0x60($sp) -/* 092EB0 7F05E380 4606A03E */ c.le.s $f20, $f6 -/* 092EB4 7F05E384 00000000 */ nop -/* 092EB8 7F05E388 4501FFF3 */ bc1t .L7F05E358 -/* 092EBC 7F05E38C 00000000 */ nop -/* 092EC0 7F05E390 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 092EC4 7F05E394 C4208378 */ lwc1 $f0, %lo(g_GlobalTimerDelta)($at) -/* 092EC8 7F05E398 8E030000 */ lw $v1, ($s0) -.L7F05E39C: -/* 092ECC 7F05E39C C4641074 */ lwc1 $f4, 0x1074($v1) -/* 092ED0 7F05E3A0 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 092ED4 7F05E3A4 4481B000 */ mtc1 $at, $f22 -/* 092ED8 7F05E3A8 46002200 */ add.s $f8, $f4, $f0 -/* 092EDC 7F05E3AC E4681074 */ swc1 $f8, 0x1074($v1) -/* 092EE0 7F05E3B0 8E030000 */ lw $v1, ($s0) -/* 092EE4 7F05E3B4 C46A1074 */ lwc1 $f10, 0x1074($v1) -/* 092EE8 7F05E3B8 460AB03C */ c.lt.s $f22, $f10 -/* 092EEC 7F05E3BC 00000000 */ nop -/* 092EF0 7F05E3C0 45020019 */ bc1fl .L7F05E428 -/* 092EF4 7F05E3C4 C4601070 */ lwc1 $f0, 0x1070($v1) -/* 092EF8 7F05E3C8 44809000 */ mtc1 $zero, $f18 -/* 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 -/* 092F0C 7F05E3DC 04410004 */ bgez $v0, .L7F05E3F0 -/* 092F10 7F05E3E0 46803120 */ cvt.s.w $f4, $f6 -/* 092F14 7F05E3E4 44814000 */ mtc1 $at, $f8 -/* 092F18 7F05E3E8 00000000 */ nop -/* 092F1C 7F05E3EC 46082100 */ add.s $f4, $f4, $f8 -.L7F05E3F0: -/* 092F20 7F05E3F0 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 092F24 7F05E3F4 44815000 */ mtc1 $at, $f10 -/* 092F28 7F05E3F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 092F2C 7F05E3FC 44813000 */ mtc1 $at, $f6 -/* 092F30 7F05E400 460A2482 */ mul.s $f18, $f4, $f10 -/* 092F34 7F05E404 3C018005 */ lui $at, %hi(D_80053C6C) -/* 092F38 7F05E408 C4243C6C */ lwc1 $f4, %lo(D_80053C6C)($at) -/* 092F3C 7F05E40C 8E0E0000 */ lw $t6, ($s0) -/* 092F40 7F05E410 46069201 */ sub.s $f8, $f18, $f6 -/* 092F44 7F05E414 46044282 */ mul.s $f10, $f8, $f4 -/* 092F48 7F05E418 46165483 */ div.s $f18, $f10, $f22 -/* 092F4C 7F05E41C E5D21070 */ swc1 $f18, 0x1070($t6) -/* 092F50 7F05E420 8E030000 */ lw $v1, ($s0) -/* 092F54 7F05E424 C4601070 */ lwc1 $f0, 0x1070($v1) -.L7F05E428: -/* 092F58 7F05E428 C7A8004C */ lwc1 $f8, 0x4c($sp) -/* 092F5C 7F05E42C 44803000 */ mtc1 $zero, $f6 -/* 092F60 7F05E430 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 092F64 7F05E434 46080100 */ add.s $f4, $f0, $f8 -/* 092F68 7F05E438 44814000 */ mtc1 $at, $f8 -/* 092F6C 7F05E43C 4604303C */ c.lt.s $f6, $f4 -/* 092F70 7F05E440 00000000 */ nop -/* 092F74 7F05E444 45020006 */ bc1fl .L7F05E460 -/* 092F78 7F05E448 C460106C */ lwc1 $f0, 0x106c($v1) -/* 092F7C 7F05E44C C46A106C */ lwc1 $f10, 0x106c($v1) -/* 092F80 7F05E450 46005480 */ add.s $f18, $f10, $f0 -/* 092F84 7F05E454 E472106C */ swc1 $f18, 0x106c($v1) -/* 092F88 7F05E458 8E030000 */ lw $v1, ($s0) -/* 092F8C 7F05E45C C460106C */ lwc1 $f0, 0x106c($v1) -.L7F05E460: -/* 092F90 7F05E460 4600403C */ c.lt.s $f8, $f0 -/* 092F94 7F05E464 00000000 */ nop -/* 092F98 7F05E468 45000007 */ bc1f .L7F05E488 -/* 092F9C 7F05E46C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 092FA0 7F05E470 44813000 */ mtc1 $at, $f6 -/* 092FA4 7F05E474 00000000 */ nop -/* 092FA8 7F05E478 E466106C */ swc1 $f6, 0x106c($v1) -/* 092FAC 7F05E47C 8E030000 */ lw $v1, ($s0) -/* 092FB0 7F05E480 10000024 */ b .L7F05E514 -/* 092FB4 7F05E484 C460106C */ lwc1 $f0, 0x106c($v1) -.L7F05E488: -/* 092FB8 7F05E488 3C01BF00 */ li $at, 0xBF000000 # -0.500000 -/* 092FBC 7F05E48C 44811000 */ mtc1 $at, $f2 -/* 092FC0 7F05E490 3C018005 */ lui $at, %hi(D_80053C70) -/* 092FC4 7F05E494 4602003C */ c.lt.s $f0, $f2 -/* 092FC8 7F05E498 00000000 */ nop -/* 092FCC 7F05E49C 45000005 */ bc1f .L7F05E4B4 -/* 092FD0 7F05E4A0 00000000 */ nop -/* 092FD4 7F05E4A4 E462106C */ swc1 $f2, 0x106c($v1) -/* 092FD8 7F05E4A8 8E030000 */ lw $v1, ($s0) -/* 092FDC 7F05E4AC 10000019 */ b .L7F05E514 -/* 092FE0 7F05E4B0 C460106C */ lwc1 $f0, 0x106c($v1) -.L7F05E4B4: -/* 092FE4 7F05E4B4 C42C3C70 */ lwc1 $f12, %lo(D_80053C70)($at) -/* 092FE8 7F05E4B8 3C018005 */ lui $at, %hi(D_80053C74) -/* 092FEC 7F05E4BC 460C003C */ c.lt.s $f0, $f12 -/* 092FF0 7F05E4C0 00000000 */ nop -/* 092FF4 7F05E4C4 45020014 */ bc1fl .L7F05E518 -/* 092FF8 7F05E4C8 8C6F1078 */ lw $t7, 0x1078($v1) -/* 092FFC 7F05E4CC C4223C74 */ lwc1 $f2, %lo(D_80053C74)($at) -/* 093000 7F05E4D0 4600103C */ c.lt.s $f2, $f0 -/* 093004 7F05E4D4 00000000 */ nop -/* 093008 7F05E4D8 4502000F */ bc1fl .L7F05E518 -/* 09300C 7F05E4DC 8C6F1078 */ lw $t7, 0x1078($v1) -/* 093010 7F05E4E0 44802000 */ mtc1 $zero, $f4 -/* 093014 7F05E4E4 00000000 */ nop -/* 093018 7F05E4E8 4600203C */ c.lt.s $f4, $f0 -/* 09301C 7F05E4EC 00000000 */ nop -/* 093020 7F05E4F0 45020006 */ bc1fl .L7F05E50C -/* 093024 7F05E4F4 E46C106C */ swc1 $f12, 0x106c($v1) -/* 093028 7F05E4F8 E462106C */ swc1 $f2, 0x106c($v1) -/* 09302C 7F05E4FC 8E030000 */ lw $v1, ($s0) -/* 093030 7F05E500 10000004 */ b .L7F05E514 -/* 093034 7F05E504 C460106C */ lwc1 $f0, 0x106c($v1) -/* 093038 7F05E508 E46C106C */ swc1 $f12, 0x106c($v1) -.L7F05E50C: -/* 09303C 7F05E50C 8E030000 */ lw $v1, ($s0) -/* 093040 7F05E510 C460106C */ lwc1 $f0, 0x106c($v1) -.L7F05E514: -/* 093044 7F05E514 8C6F1078 */ lw $t7, 0x1078($v1) -.L7F05E518: -/* 093048 7F05E518 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* 09304C 7F05E51C 448F9000 */ mtc1 $t7, $f18 -/* 093050 7F05E520 00000000 */ nop -/* 093054 7F05E524 46809220 */ cvt.s.w $f8, $f18 -/* 093058 7F05E528 46085180 */ add.s $f6, $f10, $f8 -/* 09305C 7F05E52C 46003100 */ add.s $f4, $f6, $f0 -/* 093060 7F05E530 4604A03E */ c.le.s $f20, $f4 -/* 093064 7F05E534 E7A40064 */ swc1 $f4, 0x64($sp) -/* 093068 7F05E538 45020010 */ bc1fl .L7F05E57C -/* 09306C 7F05E53C 3C01BFE0 */ lui $at, 0xbfe0 -.L7F05E540: -/* 093070 7F05E540 0FC17260 */ jal bgunCalculateBlend -/* 093074 7F05E544 24040001 */ li $a0, 1 -/* 093078 7F05E548 C7B20064 */ lwc1 $f18, 0x64($sp) -/* 09307C 7F05E54C 8E030000 */ lw $v1, ($s0) -/* 093080 7F05E550 46149281 */ sub.s $f10, $f18, $f20 -/* 093084 7F05E554 E7AA0064 */ swc1 $f10, 0x64($sp) -/* 093088 7F05E558 8C781078 */ lw $t8, 0x1078($v1) -/* 09308C 7F05E55C 2719FFFF */ addiu $t9, $t8, -1 -/* 093090 7F05E560 AC791078 */ sw $t9, 0x1078($v1) -/* 093094 7F05E564 C7A80064 */ lwc1 $f8, 0x64($sp) -/* 093098 7F05E568 4608A03E */ c.le.s $f20, $f8 -/* 09309C 7F05E56C 00000000 */ nop -/* 0930A0 7F05E570 4501FFF3 */ bc1t .L7F05E540 -/* 0930A4 7F05E574 00000000 */ nop -/* 0930A8 7F05E578 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -.L7F05E57C: -/* 0930AC 7F05E57C 44813000 */ mtc1 $at, $f6 -/* 0930B0 7F05E580 C7A40074 */ lwc1 $f4, 0x74($sp) -/* 0930B4 7F05E584 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 0930B8 7F05E588 44819000 */ mtc1 $at, $f18 -/* 0930BC 7F05E58C C7AA0070 */ lwc1 $f10, 0x70($sp) -/* 0930C0 7F05E590 46043002 */ mul.s $f0, $f6, $f4 -/* 0930C4 7F05E594 00001025 */ move $v0, $zero -/* 0930C8 7F05E598 27A30060 */ addiu $v1, $sp, 0x60 -/* 0930CC 7F05E59C 460A9082 */ mul.s $f2, $f18, $f10 -/* 0930D0 7F05E5A0 27A40068 */ addiu $a0, $sp, 0x68 -.L7F05E5A4: -/* 0930D4 7F05E5A4 8E080000 */ lw $t0, ($s0) -/* 0930D8 7F05E5A8 C4680000 */ lwc1 $f8, ($v1) -/* 0930DC 7F05E5AC 24630004 */ addiu $v1, $v1, 4 -/* 0930E0 7F05E5B0 01024821 */ addu $t1, $t0, $v0 -/* 0930E4 7F05E5B4 E5280A0C */ swc1 $f8, 0xa0c($t1) -/* 0930E8 7F05E5B8 8E0A0000 */ lw $t2, ($s0) -/* 0930EC 7F05E5BC 01425821 */ addu $t3, $t2, $v0 -/* 0930F0 7F05E5C0 E5600A1C */ swc1 $f0, 0xa1c($t3) -/* 0930F4 7F05E5C4 8E0C0000 */ lw $t4, ($s0) -/* 0930F8 7F05E5C8 01826821 */ addu $t5, $t4, $v0 -/* 0930FC 7F05E5CC 244203A8 */ addiu $v0, $v0, 0x3a8 -/* 093100 7F05E5D0 1464FFF4 */ bne $v1, $a0, .L7F05E5A4 -/* 093104 7F05E5D4 E5A20A20 */ swc1 $f2, 0xa20($t5) -/* 093108 7F05E5D8 8FBF002C */ lw $ra, 0x2c($sp) -/* 09310C 7F05E5DC D7B40018 */ ldc1 $f20, 0x18($sp) -/* 093110 7F05E5E0 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 093114 7F05E5E4 8FB00028 */ lw $s0, 0x28($sp) -/* 093118 7F05E5E8 03E00008 */ jr $ra -/* 09311C 7F05E5EC 27BD0068 */ addiu $sp, $sp, 0x68 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_80053C34 -.word 0x3f4ccccd /*0.80000001*/ -glabel D_80053C38 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C3C -.word 0x3dcccccd /*0.1*/ -glabel D_80053C40 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80053C44 -.word 0x40333333 /*2.8*/ -glabel D_80053C48 -.word 0x3f4ccccd /*0.80000001*/ -glabel D_80053C4C -.word 0x3e4ccccd /*0.2*/ -glabel D_80053C50 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C54 -.word 0x3e99999a /*0.30000001*/ -glabel D_80053C58 -.word 0x3e99999a /*0.30000001*/ -glabel D_80053C5C -.word 0x3f70b780 /* 0.940299987793 */ -glabel D_80053C60 -.word 0x3f70b780 /* 0.940299987793 */ -glabel D_80053C64 -.word 0x3d748800 /* 0.059700012207 */ -glabel D_80053C68 -.word 0x3c888889 /*0.016666668*/ -glabel D_80053C6C -.word 0x3e4ccccd /*0.2*/ -glabel D_80053C70 -.word 0x3dcccccd /*0.1*/ -glabel D_80053C74 -.word 0xbdcccccd /*-0.1*/ -.text -glabel gunSetBondWeaponSway -/* 090F8C 7F05E59C 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 090F90 7F05E5A0 AFA60070 */ sw $a2, 0x70($sp) -/* 090F94 7F05E5A4 C7A40070 */ lwc1 $f4, 0x70($sp) -/* 090F98 7F05E5A8 44803000 */ mtc1 $zero, $f6 -/* 090F9C 7F05E5AC F7B60020 */ sdc1 $f22, 0x20($sp) -/* 090FA0 7F05E5B0 46006586 */ mov.s $f22, $f12 -/* 090FA4 7F05E5B4 4606203C */ c.lt.s $f4, $f6 -/* 090FA8 7F05E5B8 AFBF002C */ sw $ra, 0x2c($sp) -/* 090FAC 7F05E5BC AFB00028 */ sw $s0, 0x28($sp) -/* 090FB0 7F05E5C0 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 090FB4 7F05E5C4 AFA70074 */ sw $a3, 0x74($sp) -/* 090FB8 7F05E5C8 45000002 */ bc1f .L7F05E5D4 -/* 090FBC 7F05E5CC 46002406 */ mov.s $f16, $f4 -/* 090FC0 7F05E5D0 46002407 */ neg.s $f16, $f4 -.L7F05E5D4: -/* 090FC4 7F05E5D4 3C018005 */ lui $at, %hi(D_80053C34) # $at, 0x8005 -/* 090FC8 7F05E5D8 C4289D74 */ lwc1 $f8, %lo(D_80053C34)($at) -/* 090FCC 7F05E5DC 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 090FD0 7F05E5E0 26108BC0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x7440 -/* 090FD4 7F05E5E4 460E403C */ c.lt.s $f8, $f14 -/* 090FD8 7F05E5E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 090FDC 7F05E5EC 45000005 */ bc1f .L7F05E604 -/* 090FE0 7F05E5F0 00000000 */ nop -/* 090FE4 7F05E5F4 4481A000 */ mtc1 $at, $f20 -/* 090FE8 7F05E5F8 8E0E0000 */ lw $t6, ($s0) -/* 090FEC 7F05E5FC 10000025 */ b .L7F05E694 -/* 090FF0 7F05E600 E5D40FB8 */ swc1 $f20, 0xfb8($t6) -.L7F05E604: -/* 090FF4 7F05E604 3C018005 */ lui $at, %hi(D_80053C3C) # $at, 0x8005 -/* 090FF8 7F05E608 C4209D7C */ lwc1 $f0, %lo(D_80053C3C)($at) -/* 090FFC 7F05E60C 460E003C */ c.lt.s $f0, $f14 -/* 091000 7F05E610 00000000 */ nop -/* 091004 7F05E614 45000019 */ bc1f .L7F05E67C -/* 091008 7F05E618 00000000 */ nop -/* 09100C 7F05E61C 46007281 */ sub.s $f10, $f14, $f0 -/* 091010 7F05E620 3C018005 */ lui $at, %hi(D_80053C40) # $at, 0x8005 -/* 091014 7F05E624 C4329D80 */ lwc1 $f18, %lo(D_80053C40)($at) -/* 091018 7F05E628 3C018005 */ lui $at, %hi(D_80053C44) # $at, 0x8005 -/* 09101C 7F05E62C C4249D84 */ lwc1 $f4, %lo(D_80053C44)($at) -/* 091020 7F05E630 46125182 */ mul.s $f6, $f10, $f18 -/* 091024 7F05E634 E7B00050 */ swc1 $f16, 0x50($sp) -/* 091028 7F05E638 0FC16068 */ jal cosf -/* 09102C 7F05E63C 46043303 */ div.s $f12, $f6, $f4 -/* 091030 7F05E640 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 091034 7F05E644 4481A000 */ mtc1 $at, $f20 -/* 091038 7F05E648 3C018005 */ lui $at, %hi(D_80053C48) # $at, 0x8005 -/* 09103C 7F05E64C C4289D88 */ lwc1 $f8, %lo(D_80053C48)($at) -/* 091040 7F05E650 4600A281 */ sub.s $f10, $f20, $f0 -/* 091044 7F05E654 3C018005 */ lui $at, %hi(D_80053C4C) # $at, 0x8005 -/* 091048 7F05E658 C4269D8C */ lwc1 $f6, %lo(D_80053C4C)($at) -/* 09104C 7F05E65C 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 091050 7F05E660 460A4482 */ mul.s $f18, $f8, $f10 -/* 091054 7F05E664 26108BC0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x7440 -/* 091058 7F05E668 8E0F0000 */ lw $t7, ($s0) -/* 09105C 7F05E66C C7B00050 */ lwc1 $f16, 0x50($sp) -/* 091060 7F05E670 46069100 */ add.s $f4, $f18, $f6 -/* 091064 7F05E674 10000007 */ b .L7F05E694 -/* 091068 7F05E678 E5E40FB8 */ swc1 $f4, 0xfb8($t7) -.L7F05E67C: -/* 09106C 7F05E67C 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 091070 7F05E680 26108BC0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x7440 -/* 091074 7F05E684 8E180000 */ lw $t8, ($s0) -/* 091078 7F05E688 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09107C 7F05E68C 4481A000 */ mtc1 $at, $f20 -/* 091080 7F05E690 E7000FB8 */ swc1 $f0, 0xfb8($t8) -.L7F05E694: -/* 091084 7F05E694 0FC22828 */ jal bondviewGetBondBreathing -/* 091088 7F05E698 E7B00050 */ swc1 $f16, 0x50($sp) -/* 09108C 7F05E69C 3C018005 */ lui $at, %hi(D_80053C54) # $at, 0x8005 -/* 091090 7F05E6A0 C4289D94 */ lwc1 $f8, %lo(D_80053C54)($at) -/* 091094 7F05E6A4 8E030000 */ lw $v1, ($s0) -/* 091098 7F05E6A8 C7B00050 */ lwc1 $f16, 0x50($sp) -/* 09109C 7F05E6AC 46080282 */ mul.s $f10, $f0, $f8 -/* 0910A0 7F05E6B0 C4620FB8 */ lwc1 $f2, 0xfb8($v1) -/* 0910A4 7F05E6B4 460A103C */ c.lt.s $f2, $f10 -/* 0910A8 7F05E6B8 00000000 */ nop -/* 0910AC 7F05E6BC 4502000C */ bc1fl .L7F05E6F0 -/* 0910B0 7F05E6C0 3C013F00 */ lui $at, 0x3f00 -/* 0910B4 7F05E6C4 0FC22828 */ jal bondviewGetBondBreathing -/* 0910B8 7F05E6C8 E7B00050 */ swc1 $f16, 0x50($sp) -/* 0910BC 7F05E6CC 3C018005 */ lui $at, %hi(D_80053C58) # $at, 0x8005 -/* 0910C0 7F05E6D0 C4329D98 */ lwc1 $f18, %lo(D_80053C58)($at) -/* 0910C4 7F05E6D4 8E190000 */ lw $t9, ($s0) -/* 0910C8 7F05E6D8 C7B00050 */ lwc1 $f16, 0x50($sp) -/* 0910CC 7F05E6DC 46120182 */ mul.s $f6, $f0, $f18 -/* 0910D0 7F05E6E0 E7260FB8 */ swc1 $f6, 0xfb8($t9) -/* 0910D4 7F05E6E4 8E030000 */ lw $v1, ($s0) -/* 0910D8 7F05E6E8 C4620FB8 */ lwc1 $f2, 0xfb8($v1) -/* 0910DC 7F05E6EC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -.L7F05E6F0: -/* 0910E0 7F05E6F0 44812000 */ mtc1 $at, $f4 -/* 0910E4 7F05E6F4 3C048004 */ lui $a0, %hi(g_ClockTimer) # $a0, 0x8004 -/* 0910E8 7F05E6F8 24840FF4 */ addiu $a0, %lo(g_ClockTimer) # addiu $a0, $a0, 0xff4 -/* 0910EC 7F05E6FC 46102002 */ mul.s $f0, $f4, $f16 -/* 0910F0 7F05E700 4600103C */ c.lt.s $f2, $f0 -/* 0910F4 7F05E704 00000000 */ nop -/* 0910F8 7F05E708 45020003 */ bc1fl .L7F05E718 -/* 0910FC 7F05E70C 8C880000 */ lw $t0, ($a0) -/* 091100 7F05E710 E4600FB8 */ swc1 $f0, 0xfb8($v1) -/* 091104 7F05E714 8C880000 */ lw $t0, ($a0) -.L7F05E718: -/* 091108 7F05E718 00001025 */ move $v0, $zero -/* 09110C 7F05E71C 1900000E */ blez $t0, .L7F05E758 -/* 091110 7F05E720 3C018005 */ lui $at, %hi(D_80053C5C) # $at, 0x8005 -/* 091114 7F05E724 C4209D9C */ lwc1 $f0, %lo(D_80053C5C)($at) -/* 091118 7F05E728 8E030000 */ lw $v1, ($s0) -.L7F05E72C: -/* 09111C 7F05E72C 24420001 */ addiu $v0, $v0, 1 -/* 091120 7F05E730 C4681078 */ lwc1 $f8, 0x1078($v1) -/* 091124 7F05E734 C4720FB8 */ lwc1 $f18, 0xfb8($v1) -/* 091128 7F05E738 46004282 */ mul.s $f10, $f8, $f0 -/* 09112C 7F05E73C 46125180 */ add.s $f6, $f10, $f18 -/* 091130 7F05E740 E4661078 */ swc1 $f6, 0x1078($v1) -/* 091134 7F05E744 8C890000 */ lw $t1, ($a0) -/* 091138 7F05E748 0049082A */ slt $at, $v0, $t1 -/* 09113C 7F05E74C 5420FFF7 */ bnezl $at, .L7F05E72C -/* 091140 7F05E750 8E030000 */ lw $v1, ($s0) -/* 091144 7F05E754 00001025 */ move $v0, $zero -.L7F05E758: -/* 091148 7F05E758 8E030000 */ lw $v1, ($s0) -/* 09114C 7F05E75C 3C018005 */ lui $at, %hi(D_80053C60) # $at, 0x8005 -/* 091150 7F05E760 C4209DA0 */ lwc1 $f0, %lo(D_80053C60)($at) -/* 091154 7F05E764 3C018005 */ lui $at, %hi(D_80053C64) # $at, 0x8005 -/* 091158 7F05E768 C42C9DA4 */ lwc1 $f12, %lo(D_80053C64)($at) -/* 09115C 7F05E76C C4641078 */ lwc1 $f4, 0x1078($v1) -/* 091160 7F05E770 3C018005 */ lui $at, %hi(D_80053C68) # $at, 0x8005 -/* 091164 7F05E774 460C2202 */ mul.s $f8, $f4, $f12 -/* 091168 7F05E778 E4680FB8 */ swc1 $f8, 0xfb8($v1) -/* 09116C 7F05E77C C42A9DA8 */ lwc1 $f10, %lo(D_80053C68)($at) -/* 091170 7F05E780 46105082 */ mul.s $f2, $f10, $f16 -/* 091174 7F05E784 4602B03C */ c.lt.s $f22, $f2 -/* 091178 7F05E788 00000000 */ nop -/* 09117C 7F05E78C 45020003 */ bc1fl .L7F05E79C -/* 091180 7F05E790 8C8A0000 */ lw $t2, ($a0) -/* 091184 7F05E794 46001586 */ mov.s $f22, $f2 -/* 091188 7F05E798 8C8A0000 */ lw $t2, ($a0) -.L7F05E79C: -/* 09118C 7F05E79C 5940000C */ blezl $t2, .L7F05E7D0 -/* 091190 7F05E7A0 8E030000 */ lw $v1, ($s0) -/* 091194 7F05E7A4 8E030000 */ lw $v1, ($s0) -.L7F05E7A8: -/* 091198 7F05E7A8 24420001 */ addiu $v0, $v0, 1 -/* 09119C 7F05E7AC C4721074 */ lwc1 $f18, 0x1074($v1) -/* 0911A0 7F05E7B0 46009182 */ mul.s $f6, $f18, $f0 -/* 0911A4 7F05E7B4 46163100 */ add.s $f4, $f6, $f22 -/* 0911A8 7F05E7B8 E4641074 */ swc1 $f4, 0x1074($v1) -/* 0911AC 7F05E7BC 8C8B0000 */ lw $t3, ($a0) -/* 0911B0 7F05E7C0 004B082A */ slt $at, $v0, $t3 -/* 0911B4 7F05E7C4 5420FFF8 */ bnezl $at, .L7F05E7A8 -/* 0911B8 7F05E7C8 8E030000 */ lw $v1, ($s0) -/* 0911BC 7F05E7CC 8E030000 */ lw $v1, ($s0) -.L7F05E7D0: -/* 0911C0 7F05E7D0 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 0911C4 7F05E7D4 C4201004 */ lwc1 $f0, %lo(g_GlobalTimerDelta)($at) -/* 0911C8 7F05E7D8 C4681074 */ lwc1 $f8, 0x1074($v1) -/* 0911CC 7F05E7DC 460C4582 */ mul.s $f22, $f8, $f12 -/* 0911D0 7F05E7E0 00000000 */ nop -/* 0911D4 7F05E7E4 4600B282 */ mul.s $f10, $f22, $f0 -/* 0911D8 7F05E7E8 E7AA004C */ swc1 $f10, 0x4c($sp) -/* 0911DC 7F05E7EC C7A6004C */ lwc1 $f6, 0x4c($sp) -/* 0911E0 7F05E7F0 C4720A04 */ lwc1 $f18, 0xa04($v1) -/* 0911E4 7F05E7F4 46069100 */ add.s $f4, $f18, $f6 -/* 0911E8 7F05E7F8 E7A40060 */ swc1 $f4, 0x60($sp) -/* 0911EC 7F05E7FC C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0911F0 7F05E800 4608A03E */ c.le.s $f20, $f8 -/* 0911F4 7F05E804 00000000 */ nop -/* 0911F8 7F05E808 45000012 */ bc1f .L7F05E854 -/* 0911FC 7F05E80C 00000000 */ nop -.L7F05E810: -/* 091200 7F05E810 0FC1738C */ jal bgunCalculateBlend -/* 091204 7F05E814 00002025 */ move $a0, $zero -/* 091208 7F05E818 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* 09120C 7F05E81C 8E030000 */ lw $v1, ($s0) -/* 091210 7F05E820 46145481 */ sub.s $f18, $f10, $f20 -/* 091214 7F05E824 E7B20060 */ swc1 $f18, 0x60($sp) -/* 091218 7F05E828 8C6C1070 */ lw $t4, 0x1070($v1) -/* 09121C 7F05E82C 258D0001 */ addiu $t5, $t4, 1 -/* 091220 7F05E830 AC6D1070 */ sw $t5, 0x1070($v1) -/* 091224 7F05E834 C7A60060 */ lwc1 $f6, 0x60($sp) -/* 091228 7F05E838 4606A03E */ c.le.s $f20, $f6 -/* 09122C 7F05E83C 00000000 */ nop -/* 091230 7F05E840 4501FFF3 */ bc1t .L7F05E810 -/* 091234 7F05E844 00000000 */ nop -/* 091238 7F05E848 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 09123C 7F05E84C C4201004 */ lwc1 $f0, %lo(g_GlobalTimerDelta)($at) -/* 091240 7F05E850 8E030000 */ lw $v1, ($s0) -.L7F05E854: -/* 091244 7F05E854 C464106C */ lwc1 $f4, 0x106c($v1) -/* 091248 7F05E858 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 09124C 7F05E85C 4481B000 */ mtc1 $at, $f22 -/* 091250 7F05E860 46002200 */ add.s $f8, $f4, $f0 -/* 091254 7F05E864 E468106C */ swc1 $f8, 0x106c($v1) -/* 091258 7F05E868 8E030000 */ lw $v1, ($s0) -/* 09125C 7F05E86C C46A106C */ lwc1 $f10, 0x106c($v1) -/* 091260 7F05E870 460AB03C */ c.lt.s $f22, $f10 -/* 091264 7F05E874 00000000 */ nop -/* 091268 7F05E878 45020019 */ bc1fl .Leu7F05E8E0 -/* 09126C 7F05E87C C4601068 */ lwc1 $f0, 0x1068($v1) -/* 091270 7F05E880 44809000 */ mtc1 $zero, $f18 -/* 091274 7F05E884 0C00262C */ jal randomGetNext -/* 091278 7F05E888 E472106C */ swc1 $f18, 0x106c($v1) -/* 09127C 7F05E88C 44823000 */ mtc1 $v0, $f6 -/* 091280 7F05E890 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 091284 7F05E894 04410004 */ bgez $v0, .L7F05E8A8 -/* 091288 7F05E898 46803120 */ cvt.s.w $f4, $f6 -/* 09128C 7F05E89C 44814000 */ mtc1 $at, $f8 -/* 091290 7F05E8A0 00000000 */ nop -/* 091294 7F05E8A4 46082100 */ add.s $f4, $f4, $f8 -.L7F05E8A8: -/* 091298 7F05E8A8 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 09129C 7F05E8AC 44815000 */ mtc1 $at, $f10 -/* 0912A0 7F05E8B0 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0912A4 7F05E8B4 44813000 */ mtc1 $at, $f6 -/* 0912A8 7F05E8B8 460A2482 */ mul.s $f18, $f4, $f10 -/* 0912AC 7F05E8BC 3C018005 */ lui $at, %hi(D_80053C6C) # $at, 0x8005 -/* 0912B0 7F05E8C0 C4249DAC */ lwc1 $f4, %lo(D_80053C6C)($at) -/* 0912B4 7F05E8C4 8E0E0000 */ lw $t6, ($s0) -/* 0912B8 7F05E8C8 46069201 */ sub.s $f8, $f18, $f6 -/* 0912BC 7F05E8CC 46044282 */ mul.s $f10, $f8, $f4 -/* 0912C0 7F05E8D0 46165483 */ div.s $f18, $f10, $f22 -/* 0912C4 7F05E8D4 E5D21068 */ swc1 $f18, 0x1068($t6) -/* 0912C8 7F05E8D8 8E030000 */ lw $v1, ($s0) -/* 0912CC 7F05E8DC C4601068 */ lwc1 $f0, 0x1068($v1) -.Leu7F05E8E0: -/* 0912D0 7F05E8E0 C7A8004C */ lwc1 $f8, 0x4c($sp) -/* 0912D4 7F05E8E4 44803000 */ mtc1 $zero, $f6 -/* 0912D8 7F05E8E8 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0912DC 7F05E8EC 46080100 */ add.s $f4, $f0, $f8 -/* 0912E0 7F05E8F0 44814000 */ mtc1 $at, $f8 -/* 0912E4 7F05E8F4 4604303C */ c.lt.s $f6, $f4 -/* 0912E8 7F05E8F8 00000000 */ nop -/* 0912EC 7F05E8FC 45020006 */ bc1fl .L7F05E918 -/* 0912F0 7F05E900 C4601064 */ lwc1 $f0, 0x1064($v1) -/* 0912F4 7F05E904 C46A1064 */ lwc1 $f10, 0x1064($v1) -/* 0912F8 7F05E908 46005480 */ add.s $f18, $f10, $f0 -/* 0912FC 7F05E90C E4721064 */ swc1 $f18, 0x1064($v1) -/* 091300 7F05E910 8E030000 */ lw $v1, ($s0) -/* 091304 7F05E914 C4601064 */ lwc1 $f0, 0x1064($v1) -.L7F05E918: -/* 091308 7F05E918 4600403C */ c.lt.s $f8, $f0 -/* 09130C 7F05E91C 00000000 */ nop -/* 091310 7F05E920 45000007 */ bc1f .L7F05E940 -/* 091314 7F05E924 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 091318 7F05E928 44813000 */ mtc1 $at, $f6 -/* 09131C 7F05E92C 00000000 */ nop -/* 091320 7F05E930 E4661064 */ swc1 $f6, 0x1064($v1) -/* 091324 7F05E934 8E030000 */ lw $v1, ($s0) -/* 091328 7F05E938 10000024 */ b .L7F05E9CC -/* 09132C 7F05E93C C4601064 */ lwc1 $f0, 0x1064($v1) -.L7F05E940: -/* 091330 7F05E940 3C01BF00 */ li $at, 0xBF000000 # -0.500000 -/* 091334 7F05E944 44811000 */ mtc1 $at, $f2 -/* 091338 7F05E948 3C018005 */ lui $at, %hi(D_80053C70) # $at, 0x8005 -/* 09133C 7F05E94C 4602003C */ c.lt.s $f0, $f2 -/* 091340 7F05E950 00000000 */ nop -/* 091344 7F05E954 45000005 */ bc1f .Leu7F05E96C -/* 091348 7F05E958 00000000 */ nop -/* 09134C 7F05E95C E4621064 */ swc1 $f2, 0x1064($v1) -/* 091350 7F05E960 8E030000 */ lw $v1, ($s0) -/* 091354 7F05E964 10000019 */ b .L7F05E9CC -/* 091358 7F05E968 C4601064 */ lwc1 $f0, 0x1064($v1) -.Leu7F05E96C: -/* 09135C 7F05E96C C42C9DB0 */ lwc1 $f12, %lo(D_80053C70)($at) -/* 091360 7F05E970 3C018005 */ lui $at, %hi(D_80053C74) # $at, 0x8005 -/* 091364 7F05E974 460C003C */ c.lt.s $f0, $f12 -/* 091368 7F05E978 00000000 */ nop -/* 09136C 7F05E97C 45020014 */ bc1fl .L7F05E9D0 -/* 091370 7F05E980 8C6F1070 */ lw $t7, 0x1070($v1) -/* 091374 7F05E984 C4229DB4 */ lwc1 $f2, %lo(D_80053C74)($at) -/* 091378 7F05E988 4600103C */ c.lt.s $f2, $f0 -/* 09137C 7F05E98C 00000000 */ nop -/* 091380 7F05E990 4502000F */ bc1fl .L7F05E9D0 -/* 091384 7F05E994 8C6F1070 */ lw $t7, 0x1070($v1) -/* 091388 7F05E998 44802000 */ mtc1 $zero, $f4 -/* 09138C 7F05E99C 00000000 */ nop -/* 091390 7F05E9A0 4600203C */ c.lt.s $f4, $f0 -/* 091394 7F05E9A4 00000000 */ nop -/* 091398 7F05E9A8 45020006 */ bc1fl .L7F05E9C4 -/* 09139C 7F05E9AC E46C1064 */ swc1 $f12, 0x1064($v1) -/* 0913A0 7F05E9B0 E4621064 */ swc1 $f2, 0x1064($v1) -/* 0913A4 7F05E9B4 8E030000 */ lw $v1, ($s0) -/* 0913A8 7F05E9B8 10000004 */ b .L7F05E9CC -/* 0913AC 7F05E9BC C4601064 */ lwc1 $f0, 0x1064($v1) -/* 0913B0 7F05E9C0 E46C1064 */ swc1 $f12, 0x1064($v1) -.L7F05E9C4: -/* 0913B4 7F05E9C4 8E030000 */ lw $v1, ($s0) -/* 0913B8 7F05E9C8 C4601064 */ lwc1 $f0, 0x1064($v1) -.L7F05E9CC: -/* 0913BC 7F05E9CC 8C6F1070 */ lw $t7, 0x1070($v1) -.L7F05E9D0: -/* 0913C0 7F05E9D0 C7AA0060 */ lwc1 $f10, 0x60($sp) -/* 0913C4 7F05E9D4 448F9000 */ mtc1 $t7, $f18 -/* 0913C8 7F05E9D8 00000000 */ nop -/* 0913CC 7F05E9DC 46809220 */ cvt.s.w $f8, $f18 -/* 0913D0 7F05E9E0 46085180 */ add.s $f6, $f10, $f8 -/* 0913D4 7F05E9E4 46003100 */ add.s $f4, $f6, $f0 -/* 0913D8 7F05E9E8 4604A03E */ c.le.s $f20, $f4 -/* 0913DC 7F05E9EC E7A40064 */ swc1 $f4, 0x64($sp) -/* 0913E0 7F05E9F0 45020010 */ bc1fl .L7F05EA34 -/* 0913E4 7F05E9F4 3C01BFE0 */ lui $at, 0xbfe0 -.L7F05E9F8: -/* 0913E8 7F05E9F8 0FC1738C */ jal bgunCalculateBlend -/* 0913EC 7F05E9FC 24040001 */ li $a0, 1 -/* 0913F0 7F05EA00 C7B20064 */ lwc1 $f18, 0x64($sp) -/* 0913F4 7F05EA04 8E030000 */ lw $v1, ($s0) -/* 0913F8 7F05EA08 46149281 */ sub.s $f10, $f18, $f20 -/* 0913FC 7F05EA0C E7AA0064 */ swc1 $f10, 0x64($sp) -/* 091400 7F05EA10 8C781070 */ lw $t8, 0x1070($v1) -/* 091404 7F05EA14 2719FFFF */ addiu $t9, $t8, -1 -/* 091408 7F05EA18 AC791070 */ sw $t9, 0x1070($v1) -/* 09140C 7F05EA1C C7A80064 */ lwc1 $f8, 0x64($sp) -/* 091410 7F05EA20 4608A03E */ c.le.s $f20, $f8 -/* 091414 7F05EA24 00000000 */ nop -/* 091418 7F05EA28 4501FFF3 */ bc1t .L7F05E9F8 -/* 09141C 7F05EA2C 00000000 */ nop -/* 091420 7F05EA30 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -.L7F05EA34: -/* 091424 7F05EA34 44813000 */ mtc1 $at, $f6 -/* 091428 7F05EA38 C7A40074 */ lwc1 $f4, 0x74($sp) -/* 09142C 7F05EA3C 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 091430 7F05EA40 44819000 */ mtc1 $at, $f18 -/* 091434 7F05EA44 C7AA0070 */ lwc1 $f10, 0x70($sp) -/* 091438 7F05EA48 46043002 */ mul.s $f0, $f6, $f4 -/* 09143C 7F05EA4C 00001025 */ move $v0, $zero -/* 091440 7F05EA50 27A30060 */ addiu $v1, $sp, 0x60 -/* 091444 7F05EA54 460A9082 */ mul.s $f2, $f18, $f10 -/* 091448 7F05EA58 27A40068 */ addiu $a0, $sp, 0x68 -.L7F05EA5C: -/* 09144C 7F05EA5C 8E080000 */ lw $t0, ($s0) -/* 091450 7F05EA60 C4680000 */ lwc1 $f8, ($v1) -/* 091454 7F05EA64 24630004 */ addiu $v1, $v1, 4 -/* 091458 7F05EA68 01024821 */ addu $t1, $t0, $v0 -/* 09145C 7F05EA6C E5280A04 */ swc1 $f8, 0xa04($t1) -/* 091460 7F05EA70 8E0A0000 */ lw $t2, ($s0) -/* 091464 7F05EA74 01425821 */ addu $t3, $t2, $v0 -/* 091468 7F05EA78 E5600A14 */ swc1 $f0, 0xa14($t3) -/* 09146C 7F05EA7C 8E0C0000 */ lw $t4, ($s0) -/* 091470 7F05EA80 01826821 */ addu $t5, $t4, $v0 -/* 091474 7F05EA84 244203A8 */ addiu $v0, $v0, 0x3a8 -/* 091478 7F05EA88 1464FFF4 */ bne $v1, $a0, .L7F05EA5C -/* 09147C 7F05EA8C E5A20A18 */ swc1 $f2, 0xa18($t5) -/* 091480 7F05EA90 8FBF002C */ lw $ra, 0x2c($sp) -/* 091484 7F05EA94 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 091488 7F05EA98 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 09148C 7F05EA9C 8FB00028 */ lw $s0, 0x28($sp) -/* 091490 7F05EAA0 03E00008 */ jr $ra -/* 091494 7F05EAA4 27BD0068 */ addiu $sp, $sp, 0x68 -) -#endif - -#endif void gunSetOffsetRelated(f32 param_1) @@ -4080,7 +1641,7 @@ void gunSetOffsetRelated(f32 param_1) } -f32 get_value_if_watch_is_on_hand_or_not(int hand) +f32 get_value_if_watch_is_on_hand_or_not(GUNHAND hand) { if ((getCurrentPlayerWeaponId(hand) == ITEM_TRIGGER) || (getCurrentPlayerWeaponId(hand) == ITEM_WATCHLASER)) { @@ -4093,559 +1654,134 @@ f32 get_value_if_watch_is_on_hand_or_not(int hand) } - -#ifdef NONMATCHING -void sub_GAME_7F05E6B4(void) { - +void sub_GAME_7F05E6B4(enum GUNHAND hand, s32 arg1) +{ + if (arg1 != 0) + { + if (g_CurrentPlayer->hands[hand].field_A84 < get_value_if_watch_is_on_hand_or_not(hand)) + { + g_CurrentPlayer->hands[hand].field_A84 += (0.029088823f * g_GlobalTimerDelta); + } + if (g_CurrentPlayer->hands[hand].field_A84 > get_value_if_watch_is_on_hand_or_not(hand)) { + g_CurrentPlayer->hands[hand].field_A84 = get_value_if_watch_is_on_hand_or_not(hand); + } + } + else + { + if (g_CurrentPlayer->hands[hand].field_A84 > 0.0f) + { + g_CurrentPlayer->hands[hand].field_A84 -= (0.017453294f * g_GlobalTimerDelta); + } + if (g_CurrentPlayer->hands[hand].field_A84 < 0.0f) + { + g_CurrentPlayer->hands[hand].field_A84 = 0.0f; + } + } } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.late_rodata -glabel D_80053C80 -.word 0x3cee4baf /*0.029088823*/ -glabel D_80053C84 -.word 0x3c8efa36 /*0.017453294*/ -.text -glabel sub_GAME_7F05E6B4 -/* 0931E4 7F05E6B4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0931E8 7F05E6B8 10A0002F */ beqz $a1, .L7F05E778 -/* 0931EC 7F05E6BC AFBF0014 */ sw $ra, 0x14($sp) -/* 0931F0 7F05E6C0 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not -/* 0931F4 7F05E6C4 AFA40020 */ sw $a0, 0x20($sp) -/* 0931F8 7F05E6C8 8FA40020 */ lw $a0, 0x20($sp) -/* 0931FC 7F05E6CC 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 093200 7F05E6D0 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 093204 7F05E6D4 000418C0 */ sll $v1, $a0, 3 -/* 093208 7F05E6D8 00641823 */ subu $v1, $v1, $a0 -/* 09320C 7F05E6DC 00031880 */ sll $v1, $v1, 2 -/* 093210 7F05E6E0 00641821 */ addu $v1, $v1, $a0 -/* 093214 7F05E6E4 00031880 */ sll $v1, $v1, 2 -/* 093218 7F05E6E8 00641821 */ addu $v1, $v1, $a0 -/* 09321C 7F05E6EC 000318C0 */ sll $v1, $v1, 3 -/* 093220 7F05E6F0 01C31021 */ addu $v0, $t6, $v1 -/* 093224 7F05E6F4 C4420A84 */ lwc1 $f2, 0xa84($v0) -/* 093228 7F05E6F8 3C018005 */ lui $at, %hi(D_80053C80) -/* 09322C 7F05E6FC 4600103C */ c.lt.s $f2, $f0 -/* 093230 7F05E700 00000000 */ nop -/* 093234 7F05E704 45020008 */ bc1fl .L7F05E728 -/* 093238 7F05E708 AFA3001C */ sw $v1, 0x1c($sp) -/* 09323C 7F05E70C C4243C80 */ lwc1 $f4, %lo(D_80053C80)($at) -/* 093240 7F05E710 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 093244 7F05E714 C4268378 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) -/* 093248 7F05E718 46062202 */ mul.s $f8, $f4, $f6 -/* 09324C 7F05E71C 46081280 */ add.s $f10, $f2, $f8 -/* 093250 7F05E720 E44A0A84 */ swc1 $f10, 0xa84($v0) -/* 093254 7F05E724 AFA3001C */ sw $v1, 0x1c($sp) -.L7F05E728: -/* 093258 7F05E728 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not -/* 09325C 7F05E72C AFA40020 */ sw $a0, 0x20($sp) -/* 093260 7F05E730 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) -/* 093264 7F05E734 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) -/* 093268 7F05E738 8FA3001C */ lw $v1, 0x1c($sp) -/* 09326C 7F05E73C 8FA40020 */ lw $a0, 0x20($sp) -/* 093270 7F05E740 01E3C021 */ addu $t8, $t7, $v1 -/* 093274 7F05E744 C7100A84 */ lwc1 $f16, 0xa84($t8) -/* 093278 7F05E748 4610003C */ c.lt.s $f0, $f16 -/* 09327C 7F05E74C 00000000 */ nop -/* 093280 7F05E750 4502002A */ bc1fl .L7F05E7FC -/* 093284 7F05E754 8FBF0014 */ lw $ra, 0x14($sp) -/* 093288 7F05E758 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not -/* 09328C 7F05E75C AFA3001C */ sw $v1, 0x1c($sp) -/* 093290 7F05E760 3C198008 */ lui $t9, %hi(g_CurrentPlayer) -/* 093294 7F05E764 8F39A0B0 */ lw $t9, %lo(g_CurrentPlayer)($t9) -/* 093298 7F05E768 8FA3001C */ lw $v1, 0x1c($sp) -/* 09329C 7F05E76C 03234021 */ addu $t0, $t9, $v1 -/* 0932A0 7F05E770 10000021 */ b .L7F05E7F8 -/* 0932A4 7F05E774 E5000A84 */ swc1 $f0, 0xa84($t0) -.L7F05E778: -/* 0932A8 7F05E778 000418C0 */ sll $v1, $a0, 3 -/* 0932AC 7F05E77C 00641823 */ subu $v1, $v1, $a0 -/* 0932B0 7F05E780 00031880 */ sll $v1, $v1, 2 -/* 0932B4 7F05E784 00641821 */ addu $v1, $v1, $a0 -/* 0932B8 7F05E788 3C098008 */ lui $t1, %hi(g_CurrentPlayer) -/* 0932BC 7F05E78C 8D29A0B0 */ lw $t1, %lo(g_CurrentPlayer)($t1) -/* 0932C0 7F05E790 00031880 */ sll $v1, $v1, 2 -/* 0932C4 7F05E794 00641821 */ addu $v1, $v1, $a0 -/* 0932C8 7F05E798 000318C0 */ sll $v1, $v1, 3 -/* 0932CC 7F05E79C 01231021 */ addu $v0, $t1, $v1 -/* 0932D0 7F05E7A0 44800000 */ mtc1 $zero, $f0 -/* 0932D4 7F05E7A4 C4420A84 */ lwc1 $f2, 0xa84($v0) -/* 0932D8 7F05E7A8 3C018005 */ lui $at, %hi(D_80053C84) -/* 0932DC 7F05E7AC 4602003C */ c.lt.s $f0, $f2 -/* 0932E0 7F05E7B0 00000000 */ nop -/* 0932E4 7F05E7B4 4502000C */ bc1fl .L7F05E7E8 -/* 0932E8 7F05E7B8 4600103C */ c.lt.s $f2, $f0 -/* 0932EC 7F05E7BC C4323C84 */ lwc1 $f18, %lo(D_80053C84)($at) -/* 0932F0 7F05E7C0 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 0932F4 7F05E7C4 C4248378 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) -/* 0932F8 7F05E7C8 3C0A8008 */ lui $t2, %hi(g_CurrentPlayer) -/* 0932FC 7F05E7CC 46049182 */ mul.s $f6, $f18, $f4 -/* 093300 7F05E7D0 46061201 */ sub.s $f8, $f2, $f6 -/* 093304 7F05E7D4 E4480A84 */ swc1 $f8, 0xa84($v0) -/* 093308 7F05E7D8 8D4AA0B0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 09330C 7F05E7DC 01431021 */ addu $v0, $t2, $v1 -/* 093310 7F05E7E0 C4420A84 */ lwc1 $f2, 0xa84($v0) -/* 093314 7F05E7E4 4600103C */ c.lt.s $f2, $f0 -.L7F05E7E8: -/* 093318 7F05E7E8 00000000 */ nop -/* 09331C 7F05E7EC 45020003 */ bc1fl .L7F05E7FC -/* 093320 7F05E7F0 8FBF0014 */ lw $ra, 0x14($sp) -/* 093324 7F05E7F4 E4400A84 */ swc1 $f0, 0xa84($v0) -.L7F05E7F8: -/* 093328 7F05E7F8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05E7FC: -/* 09332C 7F05E7FC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 093330 7F05E800 03E00008 */ jr $ra -/* 093334 7F05E804 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_80053C80 -.word 0x3cee4baf /*0.029088823*/ -glabel D_80053C84 -.word 0x3c8efa36 /*0.017453294*/ -.text -glabel sub_GAME_7F05E6B4 -/* 09155C 7F05EB6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 091560 7F05EB70 10A0002F */ beqz $a1, .L7F05EC30 -/* 091564 7F05EB74 AFBF0014 */ sw $ra, 0x14($sp) -/* 091568 7F05EB78 0FC17AC7 */ jal get_value_if_watch_is_on_hand_or_not -/* 09156C 7F05EB7C AFA40020 */ sw $a0, 0x20($sp) -/* 091570 7F05EB80 8FA40020 */ lw $a0, 0x20($sp) -/* 091574 7F05EB84 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 091578 7F05EB88 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09157C 7F05EB8C 000418C0 */ sll $v1, $a0, 3 -/* 091580 7F05EB90 00641823 */ subu $v1, $v1, $a0 -/* 091584 7F05EB94 00031880 */ sll $v1, $v1, 2 -/* 091588 7F05EB98 00641821 */ addu $v1, $v1, $a0 -/* 09158C 7F05EB9C 00031880 */ sll $v1, $v1, 2 -/* 091590 7F05EBA0 00641821 */ addu $v1, $v1, $a0 -/* 091594 7F05EBA4 000318C0 */ sll $v1, $v1, 3 -/* 091598 7F05EBA8 01C31021 */ addu $v0, $t6, $v1 -/* 09159C 7F05EBAC C4420A7C */ lwc1 $f2, 0xa7c($v0) -/* 0915A0 7F05EBB0 3C018005 */ lui $at, %hi(D_80053C80) # $at, 0x8005 -/* 0915A4 7F05EBB4 4600103C */ c.lt.s $f2, $f0 -/* 0915A8 7F05EBB8 00000000 */ nop -/* 0915AC 7F05EBBC 45020008 */ bc1fl .L7F05EBE0 -/* 0915B0 7F05EBC0 AFA3001C */ sw $v1, 0x1c($sp) -/* 0915B4 7F05EBC4 C4249DC0 */ lwc1 $f4, %lo(D_80053C80)($at) -/* 0915B8 7F05EBC8 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 0915BC 7F05EBCC C4261004 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) -/* 0915C0 7F05EBD0 46062202 */ mul.s $f8, $f4, $f6 -/* 0915C4 7F05EBD4 46081280 */ add.s $f10, $f2, $f8 -/* 0915C8 7F05EBD8 E44A0A7C */ swc1 $f10, 0xa7c($v0) -/* 0915CC 7F05EBDC AFA3001C */ sw $v1, 0x1c($sp) -.L7F05EBE0: -/* 0915D0 7F05EBE0 0FC17AC7 */ jal get_value_if_watch_is_on_hand_or_not -/* 0915D4 7F05EBE4 AFA40020 */ sw $a0, 0x20($sp) -/* 0915D8 7F05EBE8 3C0F8007 */ lui $t7, %hi(g_CurrentPlayer) # $t7, 0x8007 -/* 0915DC 7F05EBEC 8DEF8BC0 */ lw $t7, %lo(g_CurrentPlayer)($t7) -/* 0915E0 7F05EBF0 8FA3001C */ lw $v1, 0x1c($sp) -/* 0915E4 7F05EBF4 8FA40020 */ lw $a0, 0x20($sp) -/* 0915E8 7F05EBF8 01E3C021 */ addu $t8, $t7, $v1 -/* 0915EC 7F05EBFC C7100A7C */ lwc1 $f16, 0xa7c($t8) -/* 0915F0 7F05EC00 4610003C */ c.lt.s $f0, $f16 -/* 0915F4 7F05EC04 00000000 */ nop -/* 0915F8 7F05EC08 4502002A */ bc1fl .L7F05ECB4 -/* 0915FC 7F05EC0C 8FBF0014 */ lw $ra, 0x14($sp) -/* 091600 7F05EC10 0FC17AC7 */ jal get_value_if_watch_is_on_hand_or_not -/* 091604 7F05EC14 AFA3001C */ sw $v1, 0x1c($sp) -/* 091608 7F05EC18 3C198007 */ lui $t9, %hi(g_CurrentPlayer) # $t9, 0x8007 -/* 09160C 7F05EC1C 8F398BC0 */ lw $t9, %lo(g_CurrentPlayer)($t9) -/* 091610 7F05EC20 8FA3001C */ lw $v1, 0x1c($sp) -/* 091614 7F05EC24 03234021 */ addu $t0, $t9, $v1 -/* 091618 7F05EC28 10000021 */ b .L7F05ECB0 -/* 09161C 7F05EC2C E5000A7C */ swc1 $f0, 0xa7c($t0) -.L7F05EC30: -/* 091620 7F05EC30 000418C0 */ sll $v1, $a0, 3 -/* 091624 7F05EC34 00641823 */ subu $v1, $v1, $a0 -/* 091628 7F05EC38 00031880 */ sll $v1, $v1, 2 -/* 09162C 7F05EC3C 00641821 */ addu $v1, $v1, $a0 -/* 091630 7F05EC40 3C098007 */ lui $t1, %hi(g_CurrentPlayer) # $t1, 0x8007 -/* 091634 7F05EC44 8D298BC0 */ lw $t1, %lo(g_CurrentPlayer)($t1) -/* 091638 7F05EC48 00031880 */ sll $v1, $v1, 2 -/* 09163C 7F05EC4C 00641821 */ addu $v1, $v1, $a0 -/* 091640 7F05EC50 000318C0 */ sll $v1, $v1, 3 -/* 091644 7F05EC54 01231021 */ addu $v0, $t1, $v1 -/* 091648 7F05EC58 44800000 */ mtc1 $zero, $f0 -/* 09164C 7F05EC5C C4420A7C */ lwc1 $f2, 0xa7c($v0) -/* 091650 7F05EC60 3C018005 */ lui $at, %hi(D_80053C84) # $at, 0x8005 -/* 091654 7F05EC64 4602003C */ c.lt.s $f0, $f2 -/* 091658 7F05EC68 00000000 */ nop -/* 09165C 7F05EC6C 4502000C */ bc1fl .L7F05ECA0 -/* 091660 7F05EC70 4600103C */ c.lt.s $f2, $f0 -/* 091664 7F05EC74 C4329DC4 */ lwc1 $f18, %lo(D_80053C84)($at) -/* 091668 7F05EC78 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 09166C 7F05EC7C C4241004 */ lwc1 $f4, %lo(g_GlobalTimerDelta)($at) -/* 091670 7F05EC80 3C0A8007 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8007 -/* 091674 7F05EC84 46049182 */ mul.s $f6, $f18, $f4 -/* 091678 7F05EC88 46061201 */ sub.s $f8, $f2, $f6 -/* 09167C 7F05EC8C E4480A7C */ swc1 $f8, 0xa7c($v0) -/* 091680 7F05EC90 8D4A8BC0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 091684 7F05EC94 01431021 */ addu $v0, $t2, $v1 -/* 091688 7F05EC98 C4420A7C */ lwc1 $f2, 0xa7c($v0) -/* 09168C 7F05EC9C 4600103C */ c.lt.s $f2, $f0 -.L7F05ECA0: -/* 091690 7F05ECA0 00000000 */ nop -/* 091694 7F05ECA4 45020003 */ bc1fl .L7F05ECB4 -/* 091698 7F05ECA8 8FBF0014 */ lw $ra, 0x14($sp) -/* 09169C 7F05ECAC E4400A7C */ swc1 $f0, 0xa7c($v0) -.L7F05ECB0: -/* 0916A0 7F05ECB0 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05ECB4: -/* 0916A4 7F05ECB4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0916A8 7F05ECB8 03E00008 */ jr $ra -/* 0916AC 7F05ECBC 00000000 */ nop -) -#endif -#endif void sub_GAME_7F05E808(GUNHAND hand) { g_CurrentPlayer->hands[hand].field_A8C = 1; } -#ifdef NONMATCHING -void sub_GAME_7F05E83C(void) { +void sub_GAME_7F05E83C(GUNHAND hand) +{ + f32 recoil_back; + + recoil_back = get_ptr_item_statistics(get_item_in_hand_or_watch_menu(hand))->BoltRecoilBack; + + if (g_CurrentPlayer->hands[hand].field_A8C != 0) + { + if (g_CurrentPlayer->hands[hand].field_A88 < recoil_back) + { + g_CurrentPlayer->hands[hand].field_A88 = (g_CurrentPlayer->hands[hand].field_A88 + (recoil_back * 0.25f * g_GlobalTimerDelta)); + + } + if (recoil_back <= g_CurrentPlayer->hands[hand].field_A88) { + g_CurrentPlayer->hands[hand].field_A88 = recoil_back; + g_CurrentPlayer->hands[hand].field_A8C = 0; + } + } + else if (g_CurrentPlayer->hands[hand].weapon_ammo_in_magazine > 0) + { + if (g_CurrentPlayer->hands[hand].field_A88 > 0.0f) + { + g_CurrentPlayer->hands[hand].field_A88 = (g_CurrentPlayer->hands[hand].field_A88 - (recoil_back * 0.16666667f * g_GlobalTimerDelta)); + + } + if (g_CurrentPlayer->hands[hand].field_A88 < 0.0f) + { + g_CurrentPlayer->hands[hand].field_A88 = 0.0f; + } + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.late_rodata -glabel D_80053C88 -.word 0x3e2aaaab /*0.16666667*/ -.text -glabel sub_GAME_7F05E83C -/* 09336C 7F05E83C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 093370 7F05E840 AFBF0014 */ sw $ra, 0x14($sp) -/* 093374 7F05E844 0FC17691 */ jal get_item_in_hand_or_watch_menu -/* 093378 7F05E848 AFA40018 */ sw $a0, 0x18($sp) -/* 09337C 7F05E84C 0FC1722D */ jal get_ptr_item_statistics -/* 093380 7F05E850 00402025 */ move $a0, $v0 -/* 093384 7F05E854 8FA40018 */ lw $a0, 0x18($sp) -/* 093388 7F05E858 3C058008 */ lui $a1, %hi(g_CurrentPlayer) -/* 09338C 7F05E85C 24A5A0B0 */ addiu $a1, %lo(g_CurrentPlayer) # addiu $a1, $a1, -0x5f50 -/* 093390 7F05E860 000470C0 */ sll $t6, $a0, 3 -/* 093394 7F05E864 01C47023 */ subu $t6, $t6, $a0 -/* 093398 7F05E868 000E7080 */ sll $t6, $t6, 2 -/* 09339C 7F05E86C 01C47021 */ addu $t6, $t6, $a0 -/* 0933A0 7F05E870 8CAF0000 */ lw $t7, ($a1) -/* 0933A4 7F05E874 000E7080 */ sll $t6, $t6, 2 -/* 0933A8 7F05E878 01C47021 */ addu $t6, $t6, $a0 -/* 0933AC 7F05E87C 000E70C0 */ sll $t6, $t6, 3 -/* 0933B0 7F05E880 01EE1821 */ addu $v1, $t7, $t6 -/* 0933B4 7F05E884 8C780A8C */ lw $t8, 0xa8c($v1) -/* 0933B8 7F05E888 C4420050 */ lwc1 $f2, 0x50($v0) -/* 0933BC 7F05E88C 01C02025 */ move $a0, $t6 -/* 0933C0 7F05E890 5300001C */ beql $t8, $zero, .L7F05E904 -/* 0933C4 7F05E894 8C6A089C */ lw $t2, 0x89c($v1) -/* 0933C8 7F05E898 C4600A88 */ lwc1 $f0, 0xa88($v1) -/* 0933CC 7F05E89C 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0933D0 7F05E8A0 4602003C */ c.lt.s $f0, $f2 -/* 0933D4 7F05E8A4 00000000 */ nop -/* 0933D8 7F05E8A8 4502000D */ bc1fl .L7F05E8E0 -/* 0933DC 7F05E8AC 4600103E */ c.le.s $f2, $f0 -/* 0933E0 7F05E8B0 44812000 */ mtc1 $at, $f4 -/* 0933E4 7F05E8B4 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 0933E8 7F05E8B8 C4288378 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) -/* 0933EC 7F05E8BC 46041182 */ mul.s $f6, $f2, $f4 -/* 0933F0 7F05E8C0 00000000 */ nop -/* 0933F4 7F05E8C4 46083282 */ mul.s $f10, $f6, $f8 -/* 0933F8 7F05E8C8 460A0400 */ add.s $f16, $f0, $f10 -/* 0933FC 7F05E8CC E4700A88 */ swc1 $f16, 0xa88($v1) -/* 093400 7F05E8D0 8CB90000 */ lw $t9, ($a1) -/* 093404 7F05E8D4 032E1821 */ addu $v1, $t9, $t6 -/* 093408 7F05E8D8 C4600A88 */ lwc1 $f0, 0xa88($v1) -/* 09340C 7F05E8DC 4600103E */ c.le.s $f2, $f0 -.L7F05E8E0: -/* 093410 7F05E8E0 00000000 */ nop -/* 093414 7F05E8E4 45020021 */ bc1fl .L7F05E96C -/* 093418 7F05E8E8 8FBF0014 */ lw $ra, 0x14($sp) -/* 09341C 7F05E8EC E4620A88 */ swc1 $f2, 0xa88($v1) -/* 093420 7F05E8F0 8CA80000 */ lw $t0, ($a1) -/* 093424 7F05E8F4 01044821 */ addu $t1, $t0, $a0 -/* 093428 7F05E8F8 1000001B */ b .L7F05E968 -/* 09342C 7F05E8FC AD200A8C */ sw $zero, 0xa8c($t1) -/* 093430 7F05E900 8C6A089C */ lw $t2, 0x89c($v1) -.L7F05E904: -/* 093434 7F05E904 59400019 */ blezl $t2, .L7F05E96C -/* 093438 7F05E908 8FBF0014 */ lw $ra, 0x14($sp) -/* 09343C 7F05E90C 44806000 */ mtc1 $zero, $f12 -/* 093440 7F05E910 C4600A88 */ lwc1 $f0, 0xa88($v1) -/* 093444 7F05E914 3C018005 */ lui $at, %hi(D_80053C88) -/* 093448 7F05E918 4600603C */ c.lt.s $f12, $f0 -/* 09344C 7F05E91C 00000000 */ nop -/* 093450 7F05E920 4502000D */ bc1fl .L7F05E958 -/* 093454 7F05E924 460C003C */ c.lt.s $f0, $f12 -/* 093458 7F05E928 C4323C88 */ lwc1 $f18, %lo(D_80053C88)($at) -/* 09345C 7F05E92C 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 093460 7F05E930 C4268378 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) -/* 093464 7F05E934 46121102 */ mul.s $f4, $f2, $f18 -/* 093468 7F05E938 3C0B8008 */ lui $t3, %hi(g_CurrentPlayer) -/* 09346C 7F05E93C 46062202 */ mul.s $f8, $f4, $f6 -/* 093470 7F05E940 46080281 */ sub.s $f10, $f0, $f8 -/* 093474 7F05E944 E46A0A88 */ swc1 $f10, 0xa88($v1) -/* 093478 7F05E948 8D6BA0B0 */ lw $t3, %lo(g_CurrentPlayer)($t3) -/* 09347C 7F05E94C 01641821 */ addu $v1, $t3, $a0 -/* 093480 7F05E950 C4600A88 */ lwc1 $f0, 0xa88($v1) -/* 093484 7F05E954 460C003C */ c.lt.s $f0, $f12 -.L7F05E958: -/* 093488 7F05E958 00000000 */ nop -/* 09348C 7F05E95C 45020003 */ bc1fl .L7F05E96C -/* 093490 7F05E960 8FBF0014 */ lw $ra, 0x14($sp) -/* 093494 7F05E964 E46C0A88 */ swc1 $f12, 0xa88($v1) -.L7F05E968: -/* 093498 7F05E968 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05E96C: -/* 09349C 7F05E96C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0934A0 7F05E970 03E00008 */ jr $ra -/* 0934A4 7F05E974 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_80053C88 -.word 0x3e2aaaab /*0.16666667*/ -.text -glabel sub_GAME_7F05E83C -/* 0916E4 7F05ECF4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0916E8 7F05ECF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0916EC 7F05ECFC 0FC177BF */ jal get_item_in_hand_or_watch_menu -/* 0916F0 7F05ED00 AFA40018 */ sw $a0, 0x18($sp) -/* 0916F4 7F05ED04 0FC17359 */ jal get_ptr_item_statistics -/* 0916F8 7F05ED08 00402025 */ move $a0, $v0 -/* 0916FC 7F05ED0C 8FA40018 */ lw $a0, 0x18($sp) -/* 091700 7F05ED10 3C058007 */ lui $a1, %hi(g_CurrentPlayer) # $a1, 0x8007 -/* 091704 7F05ED14 24A58BC0 */ addiu $a1, %lo(g_CurrentPlayer) # addiu $a1, $a1, -0x7440 -/* 091708 7F05ED18 000470C0 */ sll $t6, $a0, 3 -/* 09170C 7F05ED1C 01C47023 */ subu $t6, $t6, $a0 -/* 091710 7F05ED20 000E7080 */ sll $t6, $t6, 2 -/* 091714 7F05ED24 01C47021 */ addu $t6, $t6, $a0 -/* 091718 7F05ED28 8CAF0000 */ lw $t7, ($a1) -/* 09171C 7F05ED2C 000E7080 */ sll $t6, $t6, 2 -/* 091720 7F05ED30 01C47021 */ addu $t6, $t6, $a0 -/* 091724 7F05ED34 000E70C0 */ sll $t6, $t6, 3 -/* 091728 7F05ED38 01EE1821 */ addu $v1, $t7, $t6 -/* 09172C 7F05ED3C 8C780A84 */ lw $t8, 0xa84($v1) -/* 091730 7F05ED40 C4420050 */ lwc1 $f2, 0x50($v0) -/* 091734 7F05ED44 01C02025 */ move $a0, $t6 -/* 091738 7F05ED48 5300001C */ beql $t8, $zero, .L7F05EDBC -/* 09173C 7F05ED4C 8C6A0894 */ lw $t2, 0x894($v1) -/* 091740 7F05ED50 C4600A80 */ lwc1 $f0, 0xa80($v1) -/* 091744 7F05ED54 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 091748 7F05ED58 4602003C */ c.lt.s $f0, $f2 -/* 09174C 7F05ED5C 00000000 */ nop -/* 091750 7F05ED60 4502000D */ bc1fl .L7F05ED98 -/* 091754 7F05ED64 4600103E */ c.le.s $f2, $f0 -/* 091758 7F05ED68 44812000 */ mtc1 $at, $f4 -/* 09175C 7F05ED6C 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 091760 7F05ED70 C4281004 */ lwc1 $f8, %lo(g_GlobalTimerDelta)($at) -/* 091764 7F05ED74 46041182 */ mul.s $f6, $f2, $f4 -/* 091768 7F05ED78 00000000 */ nop -/* 09176C 7F05ED7C 46083282 */ mul.s $f10, $f6, $f8 -/* 091770 7F05ED80 460A0400 */ add.s $f16, $f0, $f10 -/* 091774 7F05ED84 E4700A80 */ swc1 $f16, 0xa80($v1) -/* 091778 7F05ED88 8CB90000 */ lw $t9, ($a1) -/* 09177C 7F05ED8C 032E1821 */ addu $v1, $t9, $t6 -/* 091780 7F05ED90 C4600A80 */ lwc1 $f0, 0xa80($v1) -/* 091784 7F05ED94 4600103E */ c.le.s $f2, $f0 -.L7F05ED98: -/* 091788 7F05ED98 00000000 */ nop -/* 09178C 7F05ED9C 45020021 */ bc1fl .L7F05EE24 -/* 091790 7F05EDA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 091794 7F05EDA4 E4620A80 */ swc1 $f2, 0xa80($v1) -/* 091798 7F05EDA8 8CA80000 */ lw $t0, ($a1) -/* 09179C 7F05EDAC 01044821 */ addu $t1, $t0, $a0 -/* 0917A0 7F05EDB0 1000001B */ b .L7F05EE20 -/* 0917A4 7F05EDB4 AD200A84 */ sw $zero, 0xa84($t1) -/* 0917A8 7F05EDB8 8C6A0894 */ lw $t2, 0x894($v1) -.L7F05EDBC: -/* 0917AC 7F05EDBC 59400019 */ blezl $t2, .L7F05EE24 -/* 0917B0 7F05EDC0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0917B4 7F05EDC4 44806000 */ mtc1 $zero, $f12 -/* 0917B8 7F05EDC8 C4600A80 */ lwc1 $f0, 0xa80($v1) -/* 0917BC 7F05EDCC 3C018005 */ lui $at, %hi(D_80053C88) # $at, 0x8005 -/* 0917C0 7F05EDD0 4600603C */ c.lt.s $f12, $f0 -/* 0917C4 7F05EDD4 00000000 */ nop -/* 0917C8 7F05EDD8 4502000D */ bc1fl .Leu7F05EE10 -/* 0917CC 7F05EDDC 460C003C */ c.lt.s $f0, $f12 -/* 0917D0 7F05EDE0 C4329DC8 */ lwc1 $f18, %lo(D_80053C88)($at) -/* 0917D4 7F05EDE4 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 0917D8 7F05EDE8 C4261004 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($at) -/* 0917DC 7F05EDEC 46121102 */ mul.s $f4, $f2, $f18 -/* 0917E0 7F05EDF0 3C0B8007 */ lui $t3, %hi(g_CurrentPlayer) # $t3, 0x8007 -/* 0917E4 7F05EDF4 46062202 */ mul.s $f8, $f4, $f6 -/* 0917E8 7F05EDF8 46080281 */ sub.s $f10, $f0, $f8 -/* 0917EC 7F05EDFC E46A0A80 */ swc1 $f10, 0xa80($v1) -/* 0917F0 7F05EE00 8D6B8BC0 */ lw $t3, %lo(g_CurrentPlayer)($t3) -/* 0917F4 7F05EE04 01641821 */ addu $v1, $t3, $a0 -/* 0917F8 7F05EE08 C4600A80 */ lwc1 $f0, 0xa80($v1) -/* 0917FC 7F05EE0C 460C003C */ c.lt.s $f0, $f12 -.Leu7F05EE10: -/* 091800 7F05EE10 00000000 */ nop -/* 091804 7F05EE14 45020003 */ bc1fl .L7F05EE24 -/* 091808 7F05EE18 8FBF0014 */ lw $ra, 0x14($sp) -/* 09180C 7F05EE1C E46C0A80 */ swc1 $f12, 0xa80($v1) -.L7F05EE20: -/* 091810 7F05EE20 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05EE24: -/* 091814 7F05EE24 27BD0018 */ addiu $sp, $sp, 0x18 -/* 091818 7F05EE28 03E00008 */ jr $ra -/* 09181C 7F05EE2C 00000000 */ nop -) -#endif -#endif +void sub_GAME_7F05E978(Model* model, s32 val) +{ + if (model->obj->Switches[8] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[8])->DisplayList.unk00 = val; + } + if (model->obj->Switches[9] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[9])->DisplayList.unk00 = val; + } + if (model->obj->Switches[10] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[10])->DisplayList.unk00 = val; + } -#ifdef NONMATCHING -void sub_GAME_7F05E978(void) { + if (model->obj->Switches[11] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[11])->DisplayList.unk00 = val; + } + if (model->obj->Switches[12] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[12])->DisplayList.unk00 = val; + } + + if (model->obj->Switches[13] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[13])->DisplayList.unk00 = val; + } + + if (model->obj->numSwitches >= 0x24) + { + if (model->obj->Switches[35] != NULL) + { + modelGetNodeRwData(model, model->obj->Switches[35])->DisplayList.unk00 = val; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05E978 -/* 0934A8 7F05E978 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0934AC 7F05E97C AFBF001C */ sw $ra, 0x1c($sp) -/* 0934B0 7F05E980 AFB10018 */ sw $s1, 0x18($sp) -/* 0934B4 7F05E984 AFB00014 */ sw $s0, 0x14($sp) -/* 0934B8 7F05E988 8C830008 */ lw $v1, 8($a0) -/* 0934BC 7F05E98C 00808025 */ move $s0, $a0 -/* 0934C0 7F05E990 00A08825 */ move $s1, $a1 -/* 0934C4 7F05E994 8C660008 */ lw $a2, 8($v1) -/* 0934C8 7F05E998 8CC70020 */ lw $a3, 0x20($a2) -/* 0934CC 7F05E99C 50E00007 */ beql $a3, $zero, .L7F05E9BC -/* 0934D0 7F05E9A0 8CC50024 */ lw $a1, 0x24($a2) -/* 0934D4 7F05E9A4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0934D8 7F05E9A8 00E02825 */ move $a1, $a3 -/* 0934DC 7F05E9AC AC510000 */ sw $s1, ($v0) -/* 0934E0 7F05E9B0 8E030008 */ lw $v1, 8($s0) -/* 0934E4 7F05E9B4 8C660008 */ lw $a2, 8($v1) -/* 0934E8 7F05E9B8 8CC50024 */ lw $a1, 0x24($a2) -.L7F05E9BC: -/* 0934EC 7F05E9BC 50A00007 */ beql $a1, $zero, .L7F05E9DC -/* 0934F0 7F05E9C0 8CC50028 */ lw $a1, 0x28($a2) -/* 0934F4 7F05E9C4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0934F8 7F05E9C8 02002025 */ move $a0, $s0 -/* 0934FC 7F05E9CC AC510000 */ sw $s1, ($v0) -/* 093500 7F05E9D0 8E030008 */ lw $v1, 8($s0) -/* 093504 7F05E9D4 8C660008 */ lw $a2, 8($v1) -/* 093508 7F05E9D8 8CC50028 */ lw $a1, 0x28($a2) -.L7F05E9DC: -/* 09350C 7F05E9DC 50A00007 */ beql $a1, $zero, .L7F05E9FC -/* 093510 7F05E9E0 8CC5002C */ lw $a1, 0x2c($a2) -/* 093514 7F05E9E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 093518 7F05E9E8 02002025 */ move $a0, $s0 -/* 09351C 7F05E9EC AC510000 */ sw $s1, ($v0) -/* 093520 7F05E9F0 8E030008 */ lw $v1, 8($s0) -/* 093524 7F05E9F4 8C660008 */ lw $a2, 8($v1) -/* 093528 7F05E9F8 8CC5002C */ lw $a1, 0x2c($a2) -.L7F05E9FC: -/* 09352C 7F05E9FC 50A00007 */ beql $a1, $zero, .L7F05EA1C -/* 093530 7F05EA00 8CC50030 */ lw $a1, 0x30($a2) -/* 093534 7F05EA04 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 093538 7F05EA08 02002025 */ move $a0, $s0 -/* 09353C 7F05EA0C AC510000 */ sw $s1, ($v0) -/* 093540 7F05EA10 8E030008 */ lw $v1, 8($s0) -/* 093544 7F05EA14 8C660008 */ lw $a2, 8($v1) -/* 093548 7F05EA18 8CC50030 */ lw $a1, 0x30($a2) -.L7F05EA1C: -/* 09354C 7F05EA1C 50A00007 */ beql $a1, $zero, .L7F05EA3C -/* 093550 7F05EA20 8CC50034 */ lw $a1, 0x34($a2) -/* 093554 7F05EA24 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 093558 7F05EA28 02002025 */ move $a0, $s0 -/* 09355C 7F05EA2C AC510000 */ sw $s1, ($v0) -/* 093560 7F05EA30 8E030008 */ lw $v1, 8($s0) -/* 093564 7F05EA34 8C660008 */ lw $a2, 8($v1) -/* 093568 7F05EA38 8CC50034 */ lw $a1, 0x34($a2) -.L7F05EA3C: -/* 09356C 7F05EA3C 50A00006 */ beql $a1, $zero, .L7F05EA58 -/* 093570 7F05EA40 846E000C */ lh $t6, 0xc($v1) -/* 093574 7F05EA44 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 093578 7F05EA48 02002025 */ move $a0, $s0 -/* 09357C 7F05EA4C AC510000 */ sw $s1, ($v0) -/* 093580 7F05EA50 8E030008 */ lw $v1, 8($s0) -/* 093584 7F05EA54 846E000C */ lh $t6, 0xc($v1) -.L7F05EA58: -/* 093588 7F05EA58 29C10024 */ slti $at, $t6, 0x24 -/* 09358C 7F05EA5C 54200009 */ bnezl $at, .L7F05EA84 -/* 093590 7F05EA60 8FBF001C */ lw $ra, 0x1c($sp) -/* 093594 7F05EA64 8C6F0008 */ lw $t7, 8($v1) -/* 093598 7F05EA68 8DE5008C */ lw $a1, 0x8c($t7) -/* 09359C 7F05EA6C 50A00005 */ beql $a1, $zero, .L7F05EA84 -/* 0935A0 7F05EA70 8FBF001C */ lw $ra, 0x1c($sp) -/* 0935A4 7F05EA74 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0935A8 7F05EA78 02002025 */ move $a0, $s0 -/* 0935AC 7F05EA7C AC510000 */ sw $s1, ($v0) -/* 0935B0 7F05EA80 8FBF001C */ lw $ra, 0x1c($sp) -.L7F05EA84: -/* 0935B4 7F05EA84 8FB00014 */ lw $s0, 0x14($sp) -/* 0935B8 7F05EA88 8FB10018 */ lw $s1, 0x18($sp) -/* 0935BC 7F05EA8C 03E00008 */ jr $ra -/* 0935C0 7F05EA90 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif +void sub_GAME_7F05EA94(Model* model, s32 val) +{ + ModelNode* switch_14; + ModelNode* switch_15; + if (model->obj->numSwitches >= 0x10) + { + switch_14 = model->obj->Switches[14]; + if (switch_14 != NULL) + { + // Guessing DisplayList here + modelGetNodeRwData(model, switch_14)->DisplayList.unk00 = val; + } - -#ifdef NONMATCHING -void sub_GAME_7F05EA94(void) { - + switch_15 = model->obj->Switches[15]; + if (switch_15 != NULL) + { + // Guessing DisplayList here + modelGetNodeRwData(model, switch_15)->DisplayList.unk00 = val; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05EA94 -/* 0935C4 7F05EA94 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0935C8 7F05EA98 AFBF0014 */ sw $ra, 0x14($sp) -/* 0935CC 7F05EA9C AFA5001C */ sw $a1, 0x1c($sp) -/* 0935D0 7F05EAA0 8C820008 */ lw $v0, 8($a0) -/* 0935D4 7F05EAA4 844E000C */ lh $t6, 0xc($v0) -/* 0935D8 7F05EAA8 29C10010 */ slti $at, $t6, 0x10 -/* 0935DC 7F05EAAC 54200014 */ bnezl $at, .L7F05EB00 -/* 0935E0 7F05EAB0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0935E4 7F05EAB4 8C430008 */ lw $v1, 8($v0) -/* 0935E8 7F05EAB8 8C650038 */ lw $a1, 0x38($v1) -/* 0935EC 7F05EABC 50A00009 */ beql $a1, $zero, .L7F05EAE4 -/* 0935F0 7F05EAC0 8C65003C */ lw $a1, 0x3c($v1) -/* 0935F4 7F05EAC4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0935F8 7F05EAC8 AFA40018 */ sw $a0, 0x18($sp) -/* 0935FC 7F05EACC 8FAF001C */ lw $t7, 0x1c($sp) -/* 093600 7F05EAD0 8FA40018 */ lw $a0, 0x18($sp) -/* 093604 7F05EAD4 AC4F0000 */ sw $t7, ($v0) -/* 093608 7F05EAD8 8C980008 */ lw $t8, 8($a0) -/* 09360C 7F05EADC 8F030008 */ lw $v1, 8($t8) -/* 093610 7F05EAE0 8C65003C */ lw $a1, 0x3c($v1) -.L7F05EAE4: -/* 093614 7F05EAE4 50A00006 */ beql $a1, $zero, .L7F05EB00 -/* 093618 7F05EAE8 8FBF0014 */ lw $ra, 0x14($sp) -/* 09361C 7F05EAEC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 093620 7F05EAF0 00000000 */ nop -/* 093624 7F05EAF4 8FB9001C */ lw $t9, 0x1c($sp) -/* 093628 7F05EAF8 AC590000 */ sw $t9, ($v0) -/* 09362C 7F05EAFC 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05EB00: -/* 093630 7F05EB00 27BD0018 */ addiu $sp, $sp, 0x18 -/* 093634 7F05EB04 03E00008 */ jr $ra -/* 093638 7F05EB08 00000000 */ nop -) -#endif - - - /** @@ -4674,7 +1810,7 @@ void sub_GAME_7F05EB0C(ObjectRecord *arg0, coord3d *arg1, StandTile *arg2, Mtxf if (arg0->runtime_bitflags & 0x80) { temp_v0 = arg0->unk6C; - temp_v0->id |= 0x41; + temp_v0->flags |= 0x41; arg0->unk6C->prop = arg6; sub_GAME_7F03FE14(temp_s1); matrix_4x4_copy(arg5, &arg0->unk6C->m); @@ -5002,7 +2138,7 @@ void generate_player_thrown_grenade(s32 hand) if ((wor->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) != 0) { - wor->unk6C->id = (s32) (wor->unk6C->id | 2); + wor->unk6C->flags = (s32) (wor->unk6C->flags | 2); wor->unk6C->unk8c = 0.3f; wor->unk6C->unk94 = 0.13333333f; @@ -5087,7 +2223,7 @@ void generate_player_thrown_knife(s32 hand) if ((wor->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) != 0) { - wor->unk6C->id = (s32) (wor->unk6C->id | 2); + wor->unk6C->flags = (s32) (wor->unk6C->flags | 2); wor->unk6C->unk8c = 0.1f; wor->unk6C->refreshrate = THROWN_ITEM_REFRESH_RATE; @@ -5282,7 +2418,7 @@ void generate_player_thrown_object(s32 hand) if ((wor->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT) != 0) { - wor->unk6C->id = (s32) (wor->unk6C->id | 2); + wor->unk6C->flags = (s32) (wor->unk6C->flags | 2); wor->unk6C->unk8c = 0.1f; wor->unk6C->refreshrate = THROWN_ITEM_REFRESH_RATE; @@ -5786,178 +2922,42 @@ glabel sub_GAME_7F05F928 +void currentPlayerCreateRocket(GUNHAND hand) +{ + struct hand * hand_ptr; + struct WeaponObjRecord * rocket; + hand_ptr = &g_CurrentPlayer->hands[hand]; -#ifdef NONMATCHING -void sub_GAME_7F05FA7C(void) { - + if ((hand_ptr->field_A90 == NULL) && (hand_ptr->weapon_ammo_in_magazine > 0)) + { + rocket = (struct WeaponObjRecord *)create_new_item_instance_of_model(PROP_CHRROCKET, 0x56); + if (rocket != NULL) + { + hand_ptr->field_A90 = (ObjectRecord *)rocket; + hand_ptr->field_A94 = 0; + rocket->timer = 1; + } + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F05FA7C -/* 0945AC 7F05FA7C 000478C0 */ sll $t7, $a0, 3 -/* 0945B0 7F05FA80 01E47823 */ subu $t7, $t7, $a0 -/* 0945B4 7F05FA84 000F7880 */ sll $t7, $t7, 2 -/* 0945B8 7F05FA88 01E47821 */ addu $t7, $t7, $a0 -/* 0945BC 7F05FA8C 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 0945C0 7F05FA90 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 0945C4 7F05FA94 000F7880 */ sll $t7, $t7, 2 -/* 0945C8 7F05FA98 01E47821 */ addu $t7, $t7, $a0 -/* 0945CC 7F05FA9C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0945D0 7F05FAA0 000F78C0 */ sll $t7, $t7, 3 -/* 0945D4 7F05FAA4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0945D8 7F05FAA8 01CF1821 */ addu $v1, $t6, $t7 -/* 0945DC 7F05FAAC 8C780A90 */ lw $t8, 0xa90($v1) -/* 0945E0 7F05FAB0 24630870 */ addiu $v1, $v1, 0x870 -/* 0945E4 7F05FAB4 5700000F */ bnezl $t8, .L7F05FAF4 -/* 0945E8 7F05FAB8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0945EC 7F05FABC 8C79002C */ lw $t9, 0x2c($v1) -/* 0945F0 7F05FAC0 240400CA */ li $a0, 202 -/* 0945F4 7F05FAC4 24050056 */ li $a1, 86 -/* 0945F8 7F05FAC8 5B20000A */ blezl $t9, .L7F05FAF4 -/* 0945FC 7F05FACC 8FBF0014 */ lw $ra, 0x14($sp) -/* 094600 7F05FAD0 0FC1481B */ jal create_new_item_instance_of_model -/* 094604 7F05FAD4 AFA3001C */ sw $v1, 0x1c($sp) -/* 094608 7F05FAD8 10400005 */ beqz $v0, .L7F05FAF0 -/* 09460C 7F05FADC 8FA3001C */ lw $v1, 0x1c($sp) -/* 094610 7F05FAE0 AC620220 */ sw $v0, 0x220($v1) -/* 094614 7F05FAE4 AC600224 */ sw $zero, 0x224($v1) -/* 094618 7F05FAE8 24080001 */ li $t0, 1 -/* 09461C 7F05FAEC A4480082 */ sh $t0, 0x82($v0) -.L7F05FAF0: -/* 094620 7F05FAF0 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05FAF4: -/* 094624 7F05FAF4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 094628 7F05FAF8 03E00008 */ jr $ra -/* 09462C 7F05FAFC 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F05FA7C -/* 092924 7F05FF34 000478C0 */ sll $t7, $a0, 3 -/* 092928 7F05FF38 01E47823 */ subu $t7, $t7, $a0 -/* 09292C 7F05FF3C 000F7880 */ sll $t7, $t7, 2 -/* 092930 7F05FF40 01E47821 */ addu $t7, $t7, $a0 -/* 092934 7F05FF44 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 092938 7F05FF48 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09293C 7F05FF4C 000F7880 */ sll $t7, $t7, 2 -/* 092940 7F05FF50 01E47821 */ addu $t7, $t7, $a0 -/* 092944 7F05FF54 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 092948 7F05FF58 000F78C0 */ sll $t7, $t7, 3 -/* 09294C 7F05FF5C AFBF0014 */ sw $ra, 0x14($sp) -/* 092950 7F05FF60 01CF1821 */ addu $v1, $t6, $t7 -/* 092954 7F05FF64 8C780A88 */ lw $t8, 0xa88($v1) -/* 092958 7F05FF68 24630868 */ addiu $v1, $v1, 0x868 -/* 09295C 7F05FF6C 5700000F */ bnezl $t8, .L7F05FFAC -/* 092960 7F05FF70 8FBF0014 */ lw $ra, 0x14($sp) -/* 092964 7F05FF74 8C79002C */ lw $t9, 0x2c($v1) -/* 092968 7F05FF78 240400CA */ li $a0, 202 -/* 09296C 7F05FF7C 24050056 */ li $a1, 86 -/* 092970 7F05FF80 5B20000A */ blezl $t9, .L7F05FFAC -/* 092974 7F05FF84 8FBF0014 */ lw $ra, 0x14($sp) -/* 092978 7F05FF88 0FC148D3 */ jal create_new_item_instance_of_model -/* 09297C 7F05FF8C AFA3001C */ sw $v1, 0x1c($sp) -/* 092980 7F05FF90 10400005 */ beqz $v0, .L7F05FFA8 -/* 092984 7F05FF94 8FA3001C */ lw $v1, 0x1c($sp) -/* 092988 7F05FF98 AC620220 */ sw $v0, 0x220($v1) -/* 09298C 7F05FF9C AC600224 */ sw $zero, 0x224($v1) -/* 092990 7F05FFA0 24080001 */ li $t0, 1 -/* 092994 7F05FFA4 A4480082 */ sh $t0, 0x82($v0) -.L7F05FFA8: -/* 092998 7F05FFA8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F05FFAC: -/* 09299C 7F05FFAC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0929A0 7F05FFB0 03E00008 */ jr $ra -/* 0929A4 7F05FFB4 00000000 */ nop -) -#endif -#endif +/* This function frees some sort of ObjectRecord from the given hand */ +void sub_GAME_7F05FB00(enum GUNHAND hand) +{ + struct hand* hand_ptr; + ObjectRecord* hand_obj_record; + hand_ptr = &g_CurrentPlayer->hands[hand]; + hand_obj_record = hand_ptr->field_A90; -#ifdef NONMATCHING -void sub_GAME_7F05FB00(void) { - + if (hand_obj_record != NULL) + { + objFreePermanently(hand_obj_record, 1); + hand_ptr->field_A90 = NULL; + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F05FB00 -/* 094630 7F05FB00 000478C0 */ sll $t7, $a0, 3 -/* 094634 7F05FB04 01E47823 */ subu $t7, $t7, $a0 -/* 094638 7F05FB08 000F7880 */ sll $t7, $t7, 2 -/* 09463C 7F05FB0C 01E47821 */ addu $t7, $t7, $a0 -/* 094640 7F05FB10 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 094644 7F05FB14 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 094648 7F05FB18 000F7880 */ sll $t7, $t7, 2 -/* 09464C 7F05FB1C 01E47821 */ addu $t7, $t7, $a0 -/* 094650 7F05FB20 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 094654 7F05FB24 000F78C0 */ sll $t7, $t7, 3 -/* 094658 7F05FB28 AFBF0014 */ sw $ra, 0x14($sp) -/* 09465C 7F05FB2C 01CF1021 */ addu $v0, $t6, $t7 -/* 094660 7F05FB30 8C460A90 */ lw $a2, 0xa90($v0) -/* 094664 7F05FB34 24420870 */ addiu $v0, $v0, 0x870 -/* 094668 7F05FB38 24050001 */ li $a1, 1 -/* 09466C 7F05FB3C 10C00005 */ beqz $a2, .L7F05FB54 -/* 094670 7F05FB40 00C02025 */ move $a0, $a2 -/* 094674 7F05FB44 0FC10409 */ jal objFreePermanently -/* 094678 7F05FB48 AFA2001C */ sw $v0, 0x1c($sp) -/* 09467C 7F05FB4C 8FA2001C */ lw $v0, 0x1c($sp) -/* 094680 7F05FB50 AC400220 */ sw $zero, 0x220($v0) -.L7F05FB54: -/* 094684 7F05FB54 8FBF0014 */ lw $ra, 0x14($sp) -/* 094688 7F05FB58 27BD0020 */ addiu $sp, $sp, 0x20 -/* 09468C 7F05FB5C 03E00008 */ jr $ra -/* 094690 7F05FB60 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F05FB00 -/* 0929A8 7F05FFB8 000478C0 */ sll $t7, $a0, 3 -/* 0929AC 7F05FFBC 01E47823 */ subu $t7, $t7, $a0 -/* 0929B0 7F05FFC0 000F7880 */ sll $t7, $t7, 2 -/* 0929B4 7F05FFC4 01E47821 */ addu $t7, $t7, $a0 -/* 0929B8 7F05FFC8 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 0929BC 7F05FFCC 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 0929C0 7F05FFD0 000F7880 */ sll $t7, $t7, 2 -/* 0929C4 7F05FFD4 01E47821 */ addu $t7, $t7, $a0 -/* 0929C8 7F05FFD8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0929CC 7F05FFDC 000F78C0 */ sll $t7, $t7, 3 -/* 0929D0 7F05FFE0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0929D4 7F05FFE4 01CF1021 */ addu $v0, $t6, $t7 -/* 0929D8 7F05FFE8 8C460A88 */ lw $a2, 0xa88($v0) -/* 0929DC 7F05FFEC 24420868 */ addiu $v0, $v0, 0x868 -/* 0929E0 7F05FFF0 24050001 */ li $a1, 1 -/* 0929E4 7F05FFF4 10C00005 */ beqz $a2, .L7F06000C -/* 0929E8 7F05FFF8 00C02025 */ move $a0, $a2 -/* 0929EC 7F05FFFC 0FC10439 */ jal objFreePermanently -/* 0929F0 7F060000 AFA2001C */ sw $v0, 0x1c($sp) -/* 0929F4 7F060004 8FA2001C */ lw $v0, 0x1c($sp) -/* 0929F8 7F060008 AC400220 */ sw $zero, 0x220($v0) -.L7F06000C: -/* 0929FC 7F06000C 8FBF0014 */ lw $ra, 0x14($sp) -/* 092A00 7F060010 27BD0020 */ addiu $sp, $sp, 0x20 -/* 092A04 7F060014 03E00008 */ jr $ra -/* 092A08 7F060018 00000000 */ nop -) -#endif - -#endif - - @@ -8215,7 +5215,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 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 +/* 096228 7F0616F8 0FC1B1E7 */ jal modelGetNodeRwData /* 09622C 7F0616FC AFA60040 */ sw $a2, 0x40($sp) /* 096230 7F061700 8FA3005C */ lw $v1, 0x5c($sp) /* 096234 7F061704 8FA60040 */ lw $a2, 0x40($sp) @@ -8236,7 +5236,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 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 +/* 096274 7F061744 0FC1B1E7 */ jal modelGetNodeRwData /* 096278 7F061748 AFA60040 */ sw $a2, 0x40($sp) /* 09627C 7F06174C 8FA3005C */ lw $v1, 0x5c($sp) /* 096280 7F061750 8FA60040 */ lw $a2, 0x40($sp) @@ -9999,7 +6999,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 09677C 7F061C0C 50A0000E */ beql $a1, $zero, .Ljp7F061C48 /* 096780 7F061C10 8FAD01A0 */ lw $t5, 0x1a0($sp) /* 096784 7F061C14 AFA3005C */ sw $v1, 0x5c($sp) -/* 096788 7F061C18 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 096788 7F061C18 0FC1B363 */ jal modelGetNodeRwData /* 09678C 7F061C1C AFA60040 */ sw $a2, 0x40($sp) /* 096790 7F061C20 8FA3005C */ lw $v1, 0x5c($sp) /* 096794 7F061C24 8FA60040 */ lw $a2, 0x40($sp) @@ -10020,7 +7020,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 0967C8 7F061C58 50A0000E */ beql $a1, $zero, .Ljp7F061C94 /* 0967CC 7F061C5C 24630001 */ addiu $v1, $v1, 1 /* 0967D0 7F061C60 AFA3005C */ sw $v1, 0x5c($sp) -/* 0967D4 7F061C64 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 0967D4 7F061C64 0FC1B363 */ jal modelGetNodeRwData /* 0967D8 7F061C68 AFA60040 */ sw $a2, 0x40($sp) /* 0967DC 7F061C6C 8FA3005C */ lw $v1, 0x5c($sp) /* 0967E0 7F061C70 8FA60040 */ lw $a2, 0x40($sp) @@ -11785,7 +8785,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 094590 7F061BA0 50A0000E */ beql $a1, $zero, .L7F061BDC /* 094594 7F061BA4 8FAF01A0 */ lw $t7, 0x1a0($sp) /* 094598 7F061BA8 AFA3005C */ sw $v1, 0x5c($sp) -/* 09459C 7F061BAC 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 09459C 7F061BAC 0FC1B3A3 */ jal modelGetNodeRwData /* 0945A0 7F061BB0 AFA60040 */ sw $a2, 0x40($sp) /* 0945A4 7F061BB4 8FA3005C */ lw $v1, 0x5c($sp) /* 0945A8 7F061BB8 10400007 */ beqz $v0, .L7F061BD8 @@ -11806,7 +8806,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 0945DC 7F061BEC 50A0000E */ beql $a1, $zero, .L7F061C28 /* 0945E0 7F061BF0 24630001 */ addiu $v1, $v1, 1 /* 0945E4 7F061BF4 AFA3005C */ sw $v1, 0x5c($sp) -/* 0945E8 7F061BF8 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 0945E8 7F061BF8 0FC1B3A3 */ jal modelGetNodeRwData /* 0945EC 7F061BFC AFA60040 */ sw $a2, 0x40($sp) /* 0945F0 7F061C00 8FA3005C */ lw $v1, 0x5c($sp) /* 0945F4 7F061C04 10400007 */ beqz $v0, .L7F061C24 @@ -12073,315 +9073,59 @@ void sub_GAME_7F061948(struct ChrRecord_f180 *arg0, ITEM_IDS item, coord3d *arg2 } +void sub_GAME_7F061BF4(enum GUNHAND hand) { + coord3d *field_2A18; + Mtxf *player_matrix; + struct hand *hand_ptr; + f32 val; + struct ChrRecord *chr; + f32 diff1_z; + f32 diff1_y; + f32 diff1_x; + f32 diff2_z; + f32 diff2_y; + f32 diff2_x; + ChrRecord_f180 *field_A54; + hand_ptr = &g_CurrentPlayer->hands[hand]; + player_matrix = currentPlayerGetMatrix10CC(); -#ifdef NONMATCHING -void sub_GAME_7F061BF4(void) { + val = -((((hand_ptr->item_related.x * player_matrix->m[0][2]) + (hand_ptr->item_related.y * player_matrix->m[1][2])) + (hand_ptr->item_related.z * player_matrix->m[2][2])) + player_matrix->m[3][2]); + if (val < hand_ptr->field_B64) { return; } + field_A54 = &hand_ptr->field_A54; + sub_GAME_7F061948( + field_A54, + getCurrentPlayerWeaponId(hand), + &hand_ptr->field_B58, + &hand_ptr->item_related); + + if ((g_CurrentPlayer->prop->chr == NULL) || (getPlayerCount() < 2)) { return; } + + chr = g_CurrentPlayer->prop->chr; + + diff1_x = hand_ptr->item_related.x - g_CurrentPlayer->field_2A18[hand].x; + diff1_y = hand_ptr->item_related.y - g_CurrentPlayer->field_2A18[hand].y; + diff1_z = hand_ptr->item_related.z - g_CurrentPlayer->field_2A18[hand].z; + guNormalize(&diff1_x, &diff1_y, &diff1_z); + + diff2_x = hand_ptr->item_related.x - hand_ptr->field_B58.x; + diff2_y = hand_ptr->item_related.y - hand_ptr->field_B58.y; + diff2_z = hand_ptr->item_related.z - hand_ptr->field_B58.z; + guNormalize(&diff2_x, &diff2_y, &diff2_z); + + val = acosf( + + (diff2_z * diff1_z) + + ((diff1_x * diff2_x) + + (diff1_y * diff2_y))); + if (val > 0.08726647f) { return; } + + sub_GAME_7F061948( + &chr->unk180[hand], + getCurrentPlayerWeaponId(hand), + &g_CurrentPlayer->field_2A18[hand], + &hand_ptr->item_related); } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.late_rodata -glabel D_80053EA8 -.word 0x3db2b8c3 /*0.087266468*/ -.text -glabel sub_GAME_7F061BF4 -/* 096724 7F061BF4 000478C0 */ sll $t7, $a0, 3 -/* 096728 7F061BF8 01E47823 */ subu $t7, $t7, $a0 -/* 09672C 7F061BFC 000F7880 */ sll $t7, $t7, 2 -/* 096730 7F061C00 01E47821 */ addu $t7, $t7, $a0 -/* 096734 7F061C04 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 096738 7F061C08 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09673C 7F061C0C 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 096740 7F061C10 000F7880 */ sll $t7, $t7, 2 -/* 096744 7F061C14 01E47821 */ addu $t7, $t7, $a0 -/* 096748 7F061C18 AFB00014 */ sw $s0, 0x14($sp) -/* 09674C 7F061C1C 000F78C0 */ sll $t7, $t7, 3 -/* 096750 7F061C20 AFBF001C */ sw $ra, 0x1c($sp) -/* 096754 7F061C24 AFB10018 */ sw $s1, 0x18($sp) -/* 096758 7F061C28 01CF8021 */ addu $s0, $t6, $t7 -/* 09675C 7F061C2C 00808825 */ move $s1, $a0 -/* 096760 7F061C30 0FC1E0F1 */ jal currentPlayerGetMatrix10CC -/* 096764 7F061C34 26100870 */ addiu $s0, $s0, 0x870 -/* 096768 7F061C38 C604039C */ lwc1 $f4, 0x39c($s0) -/* 09676C 7F061C3C C4460008 */ lwc1 $f6, 8($v0) -/* 096770 7F061C40 C60A03A0 */ lwc1 $f10, 0x3a0($s0) -/* 096774 7F061C44 C4500018 */ lwc1 $f16, 0x18($v0) -/* 096778 7F061C48 46062202 */ mul.s $f8, $f4, $f6 -/* 09677C 7F061C4C C60603A4 */ lwc1 $f6, 0x3a4($s0) -/* 096780 7F061C50 46105482 */ mul.s $f18, $f10, $f16 -/* 096784 7F061C54 C44A0028 */ lwc1 $f10, 0x28($v0) -/* 096788 7F061C58 460A3402 */ mul.s $f16, $f6, $f10 -/* 09678C 7F061C5C C60602F4 */ lwc1 $f6, 0x2f4($s0) -/* 096790 7F061C60 46124100 */ add.s $f4, $f8, $f18 -/* 096794 7F061C64 C4520038 */ lwc1 $f18, 0x38($v0) -/* 096798 7F061C68 46102200 */ add.s $f8, $f4, $f16 -/* 09679C 7F061C6C 46089000 */ add.s $f0, $f18, $f8 -/* 0967A0 7F061C70 46000007 */ neg.s $f0, $f0 -/* 0967A4 7F061C74 4606003C */ c.lt.s $f0, $f6 -/* 0967A8 7F061C78 00000000 */ nop -/* 0967AC 7F061C7C 45030062 */ bc1tl .L7F061E08 -/* 0967B0 7F061C80 8FBF001C */ lw $ra, 0x1c($sp) -/* 0967B4 7F061C84 0FC17674 */ jal getCurrentPlayerWeaponId -/* 0967B8 7F061C88 02202025 */ move $a0, $s1 -/* 0967BC 7F061C8C 2607039C */ addiu $a3, $s0, 0x39c -/* 0967C0 7F061C90 AFA70028 */ sw $a3, 0x28($sp) -/* 0967C4 7F061C94 260401E4 */ addiu $a0, $s0, 0x1e4 -/* 0967C8 7F061C98 00402825 */ move $a1, $v0 -/* 0967CC 7F061C9C 0FC18652 */ jal sub_GAME_7F061948 -/* 0967D0 7F061CA0 260602E8 */ addiu $a2, $s0, 0x2e8 -/* 0967D4 7F061CA4 3C188008 */ lui $t8, %hi(g_CurrentPlayer) -/* 0967D8 7F061CA8 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($t8) -/* 0967DC 7F061CAC 8F1900A8 */ lw $t9, 0xa8($t8) -/* 0967E0 7F061CB0 8F280004 */ lw $t0, 4($t9) -/* 0967E4 7F061CB4 51000054 */ beql $t0, $zero, .L7F061E08 -/* 0967E8 7F061CB8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0967EC 7F061CBC 0FC26919 */ jal getPlayerCount -/* 0967F0 7F061CC0 00000000 */ nop -/* 0967F4 7F061CC4 28410002 */ slti $at, $v0, 2 -/* 0967F8 7F061CC8 1420004E */ bnez $at, .L7F061E04 -/* 0967FC 7F061CCC 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 096800 7F061CD0 8C63A0B0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 096804 7F061CD4 00113880 */ sll $a3, $s1, 2 -/* 096808 7F061CD8 00F13823 */ subu $a3, $a3, $s1 -/* 09680C 7F061CDC 8C6900A8 */ lw $t1, 0xa8($v1) -/* 096810 7F061CE0 00073880 */ sll $a3, $a3, 2 -/* 096814 7F061CE4 00671021 */ addu $v0, $v1, $a3 -/* 096818 7F061CE8 8D2A0004 */ lw $t2, 4($t1) -/* 09681C 7F061CEC 27A40040 */ addiu $a0, $sp, 0x40 -/* 096820 7F061CF0 27A50044 */ addiu $a1, $sp, 0x44 -/* 096824 7F061CF4 AFAA004C */ sw $t2, 0x4c($sp) -/* 096828 7F061CF8 C4442A18 */ lwc1 $f4, 0x2a18($v0) -/* 09682C 7F061CFC C60A039C */ lwc1 $f10, 0x39c($s0) -/* 096830 7F061D00 27A60048 */ addiu $a2, $sp, 0x48 -/* 096834 7F061D04 46045401 */ sub.s $f16, $f10, $f4 -/* 096838 7F061D08 E7B00040 */ swc1 $f16, 0x40($sp) -/* 09683C 7F061D0C C4482A1C */ lwc1 $f8, 0x2a1c($v0) -/* 096840 7F061D10 C61203A0 */ lwc1 $f18, 0x3a0($s0) -/* 096844 7F061D14 46089181 */ sub.s $f6, $f18, $f8 -/* 096848 7F061D18 E7A60044 */ swc1 $f6, 0x44($sp) -/* 09684C 7F061D1C C4442A20 */ lwc1 $f4, 0x2a20($v0) -/* 096850 7F061D20 C60A03A4 */ lwc1 $f10, 0x3a4($s0) -/* 096854 7F061D24 AFA70024 */ sw $a3, 0x24($sp) -/* 096858 7F061D28 46045401 */ sub.s $f16, $f10, $f4 -/* 09685C 7F061D2C 0C007DD4 */ jal guNormalize -/* 096860 7F061D30 E7B00048 */ swc1 $f16, 0x48($sp) -/* 096864 7F061D34 C612039C */ lwc1 $f18, 0x39c($s0) -/* 096868 7F061D38 C60802E8 */ lwc1 $f8, 0x2e8($s0) -/* 09686C 7F061D3C 27A40034 */ addiu $a0, $sp, 0x34 -/* 096870 7F061D40 27A50038 */ addiu $a1, $sp, 0x38 -/* 096874 7F061D44 46089181 */ sub.s $f6, $f18, $f8 -/* 096878 7F061D48 27A6003C */ addiu $a2, $sp, 0x3c -/* 09687C 7F061D4C E7A60034 */ swc1 $f6, 0x34($sp) -/* 096880 7F061D50 C60402EC */ lwc1 $f4, 0x2ec($s0) -/* 096884 7F061D54 C60A03A0 */ lwc1 $f10, 0x3a0($s0) -/* 096888 7F061D58 46045401 */ sub.s $f16, $f10, $f4 -/* 09688C 7F061D5C E7B00038 */ swc1 $f16, 0x38($sp) -/* 096890 7F061D60 C60802F0 */ lwc1 $f8, 0x2f0($s0) -/* 096894 7F061D64 C61203A4 */ lwc1 $f18, 0x3a4($s0) -/* 096898 7F061D68 46089181 */ sub.s $f6, $f18, $f8 -/* 09689C 7F061D6C 0C007DD4 */ jal guNormalize -/* 0968A0 7F061D70 E7A6003C */ swc1 $f6, 0x3c($sp) -/* 0968A4 7F061D74 C7AA0040 */ lwc1 $f10, 0x40($sp) -/* 0968A8 7F061D78 C7A40034 */ lwc1 $f4, 0x34($sp) -/* 0968AC 7F061D7C C7B20044 */ lwc1 $f18, 0x44($sp) -/* 0968B0 7F061D80 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 0968B4 7F061D84 46045402 */ mul.s $f16, $f10, $f4 -/* 0968B8 7F061D88 C7A4003C */ lwc1 $f4, 0x3c($sp) -/* 0968BC 7F061D8C 46089182 */ mul.s $f6, $f18, $f8 -/* 0968C0 7F061D90 C7B20048 */ lwc1 $f18, 0x48($sp) -/* 0968C4 7F061D94 46122202 */ mul.s $f8, $f4, $f18 -/* 0968C8 7F061D98 46068280 */ add.s $f10, $f16, $f6 -/* 0968CC 7F061D9C 0FC16B2C */ jal acosf -/* 0968D0 7F061DA0 460A4300 */ add.s $f12, $f8, $f10 -/* 0968D4 7F061DA4 3C018005 */ lui $at, %hi(D_80053EA8) -/* 0968D8 7F061DA8 C4303EA8 */ lwc1 $f16, %lo(D_80053EA8)($at) -/* 0968DC 7F061DAC 4600803C */ c.lt.s $f16, $f0 -/* 0968E0 7F061DB0 00000000 */ nop -/* 0968E4 7F061DB4 45030014 */ bc1tl .L7F061E08 -/* 0968E8 7F061DB8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0968EC 7F061DBC 0FC17674 */ jal getCurrentPlayerWeaponId -/* 0968F0 7F061DC0 02202025 */ move $a0, $s1 -/* 0968F4 7F061DC4 00116080 */ sll $t4, $s1, 2 -/* 0968F8 7F061DC8 01916023 */ subu $t4, $t4, $s1 -/* 0968FC 7F061DCC 3C0D8008 */ lui $t5, %hi(g_CurrentPlayer) -/* 096900 7F061DD0 8DADA0B0 */ lw $t5, %lo(g_CurrentPlayer)($t5) -/* 096904 7F061DD4 8FAB004C */ lw $t3, 0x4c($sp) -/* 096908 7F061DD8 8FAE0024 */ lw $t6, 0x24($sp) -/* 09690C 7F061DDC 000C6080 */ sll $t4, $t4, 2 -/* 096910 7F061DE0 01916023 */ subu $t4, $t4, $s1 -/* 096914 7F061DE4 000C6080 */ sll $t4, $t4, 2 -/* 096918 7F061DE8 016C2021 */ addu $a0, $t3, $t4 -/* 09691C 7F061DEC 01AE3021 */ addu $a2, $t5, $t6 -/* 096920 7F061DF0 24C62A18 */ addiu $a2, $a2, 0x2a18 -/* 096924 7F061DF4 24840180 */ addiu $a0, $a0, 0x180 -/* 096928 7F061DF8 00402825 */ move $a1, $v0 -/* 09692C 7F061DFC 0FC18652 */ jal sub_GAME_7F061948 -/* 096930 7F061E00 8FA70028 */ lw $a3, 0x28($sp) -.L7F061E04: -/* 096934 7F061E04 8FBF001C */ lw $ra, 0x1c($sp) -.L7F061E08: -/* 096938 7F061E08 8FB00014 */ lw $s0, 0x14($sp) -/* 09693C 7F061E0C 8FB10018 */ lw $s1, 0x18($sp) -/* 096940 7F061E10 03E00008 */ jr $ra -/* 096944 7F061E14 27BD0060 */ addiu $sp, $sp, 0x60 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_80053EA8 -.word 0x3db2b8c3 /*0.087266468*/ -.text -glabel sub_GAME_7F061BF4 -/* 094AA8 7F0620B8 000478C0 */ sll $t7, $a0, 3 -/* 094AAC 7F0620BC 01E47823 */ subu $t7, $t7, $a0 -/* 094AB0 7F0620C0 000F7880 */ sll $t7, $t7, 2 -/* 094AB4 7F0620C4 01E47821 */ addu $t7, $t7, $a0 -/* 094AB8 7F0620C8 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 094ABC 7F0620CC 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 094AC0 7F0620D0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 094AC4 7F0620D4 000F7880 */ sll $t7, $t7, 2 -/* 094AC8 7F0620D8 01E47821 */ addu $t7, $t7, $a0 -/* 094ACC 7F0620DC AFB00014 */ sw $s0, 0x14($sp) -/* 094AD0 7F0620E0 000F78C0 */ sll $t7, $t7, 3 -/* 094AD4 7F0620E4 AFBF001C */ sw $ra, 0x1c($sp) -/* 094AD8 7F0620E8 AFB10018 */ sw $s1, 0x18($sp) -/* 094ADC 7F0620EC 01CF8021 */ addu $s0, $t6, $t7 -/* 094AE0 7F0620F0 00808825 */ move $s1, $a0 -/* 094AE4 7F0620F4 0FC1E111 */ jal currentPlayerGetMatrix10CC -/* 094AE8 7F0620F8 26100868 */ addiu $s0, $s0, 0x868 -/* 094AEC 7F0620FC C604039C */ lwc1 $f4, 0x39c($s0) -/* 094AF0 7F062100 C4460008 */ lwc1 $f6, 8($v0) -/* 094AF4 7F062104 C60A03A0 */ lwc1 $f10, 0x3a0($s0) -/* 094AF8 7F062108 C4500018 */ lwc1 $f16, 0x18($v0) -/* 094AFC 7F06210C 46062202 */ mul.s $f8, $f4, $f6 -/* 094B00 7F062110 C60603A4 */ lwc1 $f6, 0x3a4($s0) -/* 094B04 7F062114 46105482 */ mul.s $f18, $f10, $f16 -/* 094B08 7F062118 C44A0028 */ lwc1 $f10, 0x28($v0) -/* 094B0C 7F06211C 460A3402 */ mul.s $f16, $f6, $f10 -/* 094B10 7F062120 C60602F4 */ lwc1 $f6, 0x2f4($s0) -/* 094B14 7F062124 46124100 */ add.s $f4, $f8, $f18 -/* 094B18 7F062128 C4520038 */ lwc1 $f18, 0x38($v0) -/* 094B1C 7F06212C 46102200 */ add.s $f8, $f4, $f16 -/* 094B20 7F062130 46089000 */ add.s $f0, $f18, $f8 -/* 094B24 7F062134 46000007 */ neg.s $f0, $f0 -/* 094B28 7F062138 4606003C */ c.lt.s $f0, $f6 -/* 094B2C 7F06213C 00000000 */ nop -/* 094B30 7F062140 45030062 */ bc1tl .L7F0622CC -/* 094B34 7F062144 8FBF001C */ lw $ra, 0x1c($sp) -/* 094B38 7F062148 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 094B3C 7F06214C 02202025 */ move $a0, $s1 -/* 094B40 7F062150 2607039C */ addiu $a3, $s0, 0x39c -/* 094B44 7F062154 AFA70028 */ sw $a3, 0x28($sp) -/* 094B48 7F062158 260401E4 */ addiu $a0, $s0, 0x1e4 -/* 094B4C 7F06215C 00402825 */ move $a1, $v0 -/* 094B50 7F062160 0FC18783 */ jal sub_GAME_7F061948 -/* 094B54 7F062164 260602E8 */ addiu $a2, $s0, 0x2e8 -/* 094B58 7F062168 3C188007 */ lui $t8, %hi(g_CurrentPlayer) # $t8, 0x8007 -/* 094B5C 7F06216C 8F188BC0 */ lw $t8, %lo(g_CurrentPlayer)($t8) -/* 094B60 7F062170 8F1900A8 */ lw $t9, 0xa8($t8) -/* 094B64 7F062174 8F280004 */ lw $t0, 4($t9) -/* 094B68 7F062178 51000054 */ beql $t0, $zero, .L7F0622CC -/* 094B6C 7F06217C 8FBF001C */ lw $ra, 0x1c($sp) -/* 094B70 7F062180 0FC26669 */ jal getPlayerCount -/* 094B74 7F062184 00000000 */ nop -/* 094B78 7F062188 28410002 */ slti $at, $v0, 2 -/* 094B7C 7F06218C 1420004E */ bnez $at, .L7F0622C8 -/* 094B80 7F062190 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 094B84 7F062194 8C638BC0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 094B88 7F062198 00113880 */ sll $a3, $s1, 2 -/* 094B8C 7F06219C 00F13823 */ subu $a3, $a3, $s1 -/* 094B90 7F0621A0 8C6900A8 */ lw $t1, 0xa8($v1) -/* 094B94 7F0621A4 00073880 */ sll $a3, $a3, 2 -/* 094B98 7F0621A8 00671021 */ addu $v0, $v1, $a3 -/* 094B9C 7F0621AC 8D2A0004 */ lw $t2, 4($t1) -/* 094BA0 7F0621B0 27A40040 */ addiu $a0, $sp, 0x40 -/* 094BA4 7F0621B4 27A50044 */ addiu $a1, $sp, 0x44 -/* 094BA8 7F0621B8 AFAA004C */ sw $t2, 0x4c($sp) -/* 094BAC 7F0621BC C4442A10 */ lwc1 $f4, 0x2a10($v0) -/* 094BB0 7F0621C0 C60A039C */ lwc1 $f10, 0x39c($s0) -/* 094BB4 7F0621C4 27A60048 */ addiu $a2, $sp, 0x48 -/* 094BB8 7F0621C8 46045401 */ sub.s $f16, $f10, $f4 -/* 094BBC 7F0621CC E7B00040 */ swc1 $f16, 0x40($sp) -/* 094BC0 7F0621D0 C4482A14 */ lwc1 $f8, 0x2a14($v0) -/* 094BC4 7F0621D4 C61203A0 */ lwc1 $f18, 0x3a0($s0) -/* 094BC8 7F0621D8 46089181 */ sub.s $f6, $f18, $f8 -/* 094BCC 7F0621DC E7A60044 */ swc1 $f6, 0x44($sp) -/* 094BD0 7F0621E0 C4442A18 */ lwc1 $f4, 0x2a18($v0) -/* 094BD4 7F0621E4 C60A03A4 */ lwc1 $f10, 0x3a4($s0) -/* 094BD8 7F0621E8 AFA70024 */ sw $a3, 0x24($sp) -/* 094BDC 7F0621EC 46045401 */ sub.s $f16, $f10, $f4 -/* 094BE0 7F0621F0 0C0075F0 */ jal guNormalize -/* 094BE4 7F0621F4 E7B00048 */ swc1 $f16, 0x48($sp) -/* 094BE8 7F0621F8 C612039C */ lwc1 $f18, 0x39c($s0) -/* 094BEC 7F0621FC C60802E8 */ lwc1 $f8, 0x2e8($s0) -/* 094BF0 7F062200 27A40034 */ addiu $a0, $sp, 0x34 -/* 094BF4 7F062204 27A50038 */ addiu $a1, $sp, 0x38 -/* 094BF8 7F062208 46089181 */ sub.s $f6, $f18, $f8 -/* 094BFC 7F06220C 27A6003C */ addiu $a2, $sp, 0x3c -/* 094C00 7F062210 E7A60034 */ swc1 $f6, 0x34($sp) -/* 094C04 7F062214 C60402EC */ lwc1 $f4, 0x2ec($s0) -/* 094C08 7F062218 C60A03A0 */ lwc1 $f10, 0x3a0($s0) -/* 094C0C 7F06221C 46045401 */ sub.s $f16, $f10, $f4 -/* 094C10 7F062220 E7B00038 */ swc1 $f16, 0x38($sp) -/* 094C14 7F062224 C60802F0 */ lwc1 $f8, 0x2f0($s0) -/* 094C18 7F062228 C61203A4 */ lwc1 $f18, 0x3a4($s0) -/* 094C1C 7F06222C 46089181 */ sub.s $f6, $f18, $f8 -/* 094C20 7F062230 0C0075F0 */ jal guNormalize -/* 094C24 7F062234 E7A6003C */ swc1 $f6, 0x3c($sp) -/* 094C28 7F062238 C7AA0040 */ lwc1 $f10, 0x40($sp) -/* 094C2C 7F06223C C7A40034 */ lwc1 $f4, 0x34($sp) -/* 094C30 7F062240 C7B20044 */ lwc1 $f18, 0x44($sp) -/* 094C34 7F062244 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 094C38 7F062248 46045402 */ mul.s $f16, $f10, $f4 -/* 094C3C 7F06224C C7A4003C */ lwc1 $f4, 0x3c($sp) -/* 094C40 7F062250 46089182 */ mul.s $f6, $f18, $f8 -/* 094C44 7F062254 C7B20048 */ lwc1 $f18, 0x48($sp) -/* 094C48 7F062258 46122202 */ mul.s $f8, $f4, $f18 -/* 094C4C 7F06225C 46068280 */ add.s $f10, $f16, $f6 -/* 094C50 7F062260 0FC16C58 */ jal acosf -/* 094C54 7F062264 460A4300 */ add.s $f12, $f8, $f10 -/* 094C58 7F062268 3C018005 */ lui $at, %hi(D_80053EA8) # $at, 0x8005 -/* 094C5C 7F06226C C4309FE8 */ lwc1 $f16, %lo(D_80053EA8)($at) -/* 094C60 7F062270 4600803C */ c.lt.s $f16, $f0 -/* 094C64 7F062274 00000000 */ nop -/* 094C68 7F062278 45030014 */ bc1tl .L7F0622CC -/* 094C6C 7F06227C 8FBF001C */ lw $ra, 0x1c($sp) -/* 094C70 7F062280 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 094C74 7F062284 02202025 */ move $a0, $s1 -/* 094C78 7F062288 00116080 */ sll $t4, $s1, 2 -/* 094C7C 7F06228C 01916023 */ subu $t4, $t4, $s1 -/* 094C80 7F062290 3C0D8007 */ lui $t5, %hi(g_CurrentPlayer) # $t5, 0x8007 -/* 094C84 7F062294 8DAD8BC0 */ lw $t5, %lo(g_CurrentPlayer)($t5) -/* 094C88 7F062298 8FAB004C */ lw $t3, 0x4c($sp) -/* 094C8C 7F06229C 8FAE0024 */ lw $t6, 0x24($sp) -/* 094C90 7F0622A0 000C6080 */ sll $t4, $t4, 2 -/* 094C94 7F0622A4 01916023 */ subu $t4, $t4, $s1 -/* 094C98 7F0622A8 000C6080 */ sll $t4, $t4, 2 -/* 094C9C 7F0622AC 016C2021 */ addu $a0, $t3, $t4 -/* 094CA0 7F0622B0 01AE3021 */ addu $a2, $t5, $t6 -/* 094CA4 7F0622B4 24C62A10 */ addiu $a2, $a2, 0x2a10 -/* 094CA8 7F0622B8 24840180 */ addiu $a0, $a0, 0x180 -/* 094CAC 7F0622BC 00402825 */ move $a1, $v0 -/* 094CB0 7F0622C0 0FC18783 */ jal sub_GAME_7F061948 -/* 094CB4 7F0622C4 8FA70028 */ lw $a3, 0x28($sp) -.L7F0622C8: -/* 094CB8 7F0622C8 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0622CC: -/* 094CBC 7F0622CC 8FB00014 */ lw $s0, 0x14($sp) -/* 094CC0 7F0622D0 8FB10018 */ lw $s1, 0x18($sp) -/* 094CC4 7F0622D4 03E00008 */ jr $ra -/* 094CC8 7F0622D8 27BD0060 */ addiu $sp, $sp, 0x60 -) -#endif -#endif - - - #ifdef NONMATCHING @@ -14142,225 +10886,32 @@ glabel sub_GAME_7F061E18 #endif - - - -#ifdef NONMATCHING -void sub_GAME_7F062B00(void) { - -} -#else +void sub_GAME_7F062B00(ChrRecord_f180* arg0) +{ + if (arg0->unk00 >= 0) + { + if (g_ClockTimer < 3) + { #ifdef VERSION_US -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(g_ClockTimer) -/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 -/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) -/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) -/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 -/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 -/* 097654 7F062B24 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) -/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(g_GlobalTimerDelta)($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 -#ifdef VERSION_JP -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(g_ClockTimer) -/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 -/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) -/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) -/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 -/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 -/* 097654 7F062B24 3C018005 */ lui $at, %hi(g_JP_GlobalTimerDelta) -/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(g_JP_GlobalTimerDelta)($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 -#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(g_ClockTimer) -/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 -/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) -/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(g_ClockTimer)($t7) -/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 -/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 -/* 097654 7F062B24 3C018005 */ lui $at, %hi(g_JP_GlobalTimerDelta) -/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(g_JP_GlobalTimerDelta)($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 - + arg0->unk28 += arg0->unk20 * g_GlobalTimerDelta; +#else + arg0->unk28 += arg0->unk20 * g_JP_GlobalTimerDelta; #endif + } + else + { + arg0->unk28 += arg0->unk20 * (2.0f + ((f32) randomGetNext() * 2.3283064e-10f * 0.5f)); + } + if (arg0->unk1c <= arg0->unk28) + { + arg0->unk00 = -1; + return; + } + arg0->unk00++; + } +} #ifdef NONMATCHING @@ -14500,7 +11051,7 @@ glabel sub_GAME_7F062BE4 /* 0978F0 7F062DC0 8C4D0040 */ lw $t5, 0x40($v0) /* 0978F4 7F062DC4 51A00027 */ beql $t5, $zero, .L7F062E64 /* 0978F8 7F062DC8 8FC20000 */ lw $v0, ($fp) -/* 0978FC 7F062DCC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0978FC 7F062DCC 0FC1B1E7 */ jal modelGetNodeRwData /* 097900 7F062DD0 8C450044 */ lw $a1, 0x44($v0) /* 097904 7F062DD4 10400003 */ beqz $v0, .L7F062DE4 /* 097908 7F062DD8 24010019 */ li $at, 25 @@ -14786,7 +11337,7 @@ glabel sub_GAME_7F062BE4 /* 095C74 7F063284 8C4D0040 */ lw $t5, 0x40($v0) /* 095C78 7F063288 51A00027 */ beql $t5, $zero, .L7F063328 /* 095C7C 7F06328C 8FC20000 */ lw $v0, ($fp) -/* 095C80 7F063290 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 095C80 7F063290 0FC1B3A3 */ jal modelGetNodeRwData /* 095C84 7F063294 8C450044 */ lw $a1, 0x44($v0) /* 095C88 7F063298 10400003 */ beqz $v0, .L7F0632A8 /* 095C8C 7F06329C 24010019 */ li $at, 25 @@ -15049,7 +11600,7 @@ glabel set_enviro_fog_for_items_in_solo_watch_menu /* 097C88 7F063158 8DA50004 */ lw $a1, 4($t5) /* 097C8C 7F06315C 50A00007 */ beql $a1, $zero, .L7F06317C /* 097C90 7F063160 8FA401A0 */ lw $a0, 0x1a0($sp) -/* 097C94 7F063164 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097C94 7F063164 0FC1B1E7 */ jal modelGetNodeRwData /* 097C98 7F063168 02602025 */ move $a0, $s3 /* 097C9C 7F06316C 50400003 */ beql $v0, $zero, .L7F06317C /* 097CA0 7F063170 8FA401A0 */ lw $a0, 0x1a0($sp) @@ -15136,7 +11687,7 @@ glabel set_enviro_fog_for_items_in_solo_watch_menu /* 097DCC 7F06329C 8F250048 */ lw $a1, 0x48($t9) /* 097DD0 7F0632A0 50A00007 */ beql $a1, $zero, .L7F0632C0 /* 097DD4 7F0632A4 8E480008 */ lw $t0, 8($s2) -/* 097DD8 7F0632A8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097DD8 7F0632A8 0FC1B1E7 */ jal modelGetNodeRwData /* 097DDC 7F0632AC 02602025 */ move $a0, $s3 /* 097DE0 7F0632B0 10400002 */ beqz $v0, .L7F0632BC /* 097DE4 7F0632B4 24180001 */ li $t8, 1 @@ -15148,7 +11699,7 @@ glabel set_enviro_fog_for_items_in_solo_watch_menu /* 097DF4 7F0632C4 8DE5005C */ lw $a1, 0x5c($t7) /* 097DF8 7F0632C8 50A00007 */ beql $a1, $zero, .L7F0632E8 /* 097DFC 7F0632CC 26100004 */ addiu $s0, $s0, 4 -/* 097E00 7F0632D0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097E00 7F0632D0 0FC1B1E7 */ jal modelGetNodeRwData /* 097E04 7F0632D4 02602025 */ move $a0, $s3 /* 097E08 7F0632D8 10400002 */ beqz $v0, .L7F0632E4 /* 097E0C 7F0632DC 240E0001 */ li $t6, 1 @@ -15227,7 +11778,7 @@ glabel set_enviro_fog_for_items_in_solo_watch_menu /* 097F1C 7F0633EC 8C4B0040 */ lw $t3, 0x40($v0) /* 097F20 7F0633F0 51600007 */ beql $t3, $zero, .L7F063410 /* 097F24 7F0633F4 8FA201A4 */ lw $v0, 0x1a4($sp) -/* 097F28 7F0633F8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 097F28 7F0633F8 0FC1B1E7 */ jal modelGetNodeRwData /* 097F2C 7F0633FC 8C450044 */ lw $a1, 0x44($v0) /* 097F30 7F063400 50400003 */ beql $v0, $zero, .L7F063410 /* 097F34 7F063404 8FA201A4 */ lw $v0, 0x1a4($sp) @@ -15342,52 +11893,18 @@ glabel sub_GAME_7F0634FC +void sub_GAME_7F06351C(f32* arg0, Mtxf* arg1, Mtxf* arg2, Mtxf* arg3, f32* arg4, Mtxf* arg5, Mtxf* arg6) +{ + Mtxf sp20; - -#ifdef NONMATCHING -void sub_GAME_7F06351C(void) { - + matrix_4x4_set_identity_and_position(arg0, arg6); + matrix_4x4_multiply_in_place(arg1, arg6); + matrix_4x4_multiply_in_place(arg2, arg6); + matrix_4x4_multiply_in_place(arg3, arg6); + matrix_4x4_set_identity_and_position(arg4, &sp20); + matrix_4x4_multiply_in_place(&sp20, arg6); + matrix_4x4_multiply_in_place(arg5, arg6); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06351C -/* 09804C 7F06351C 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 098050 7F063520 AFB00018 */ sw $s0, 0x18($sp) -/* 098054 7F063524 8FB00078 */ lw $s0, 0x78($sp) -/* 098058 7F063528 AFBF001C */ sw $ra, 0x1c($sp) -/* 09805C 7F06352C AFA50064 */ sw $a1, 0x64($sp) -/* 098060 7F063530 AFA60068 */ sw $a2, 0x68($sp) -/* 098064 7F063534 AFA7006C */ sw $a3, 0x6c($sp) -/* 098068 7F063538 0FC16259 */ jal matrix_4x4_set_identity_and_position -/* 09806C 7F06353C 02002825 */ move $a1, $s0 -/* 098070 7F063540 8FA40064 */ lw $a0, 0x64($sp) -/* 098074 7F063544 0FC1601A */ jal matrix_4x4_multiply_in_place -/* 098078 7F063548 02002825 */ move $a1, $s0 -/* 09807C 7F06354C 8FA40068 */ lw $a0, 0x68($sp) -/* 098080 7F063550 0FC1601A */ jal matrix_4x4_multiply_in_place -/* 098084 7F063554 02002825 */ move $a1, $s0 -/* 098088 7F063558 8FA4006C */ lw $a0, 0x6c($sp) -/* 09808C 7F06355C 0FC1601A */ jal matrix_4x4_multiply_in_place -/* 098090 7F063560 02002825 */ move $a1, $s0 -/* 098094 7F063564 8FA40070 */ lw $a0, 0x70($sp) -/* 098098 7F063568 0FC16259 */ jal matrix_4x4_set_identity_and_position -/* 09809C 7F06356C 27A50020 */ addiu $a1, $sp, 0x20 -/* 0980A0 7F063570 27A40020 */ addiu $a0, $sp, 0x20 -/* 0980A4 7F063574 0FC1601A */ jal matrix_4x4_multiply_in_place -/* 0980A8 7F063578 02002825 */ move $a1, $s0 -/* 0980AC 7F06357C 8FA40074 */ lw $a0, 0x74($sp) -/* 0980B0 7F063580 0FC1601A */ jal matrix_4x4_multiply_in_place -/* 0980B4 7F063584 02002825 */ move $a1, $s0 -/* 0980B8 7F063588 8FBF001C */ lw $ra, 0x1c($sp) -/* 0980BC 7F06358C 8FB00018 */ lw $s0, 0x18($sp) -/* 0980C0 7F063590 27BD0060 */ addiu $sp, $sp, 0x60 -/* 0980C4 7F063594 03E00008 */ jr $ra -/* 0980C8 7F063598 00000000 */ nop -) -#endif - - @@ -15636,7 +12153,7 @@ glabel sub_GAME_7F06359C /* 0983A8 7F063878 8DA50034 */ lw $a1, 0x34($t5) /* 0983AC 7F06387C 50A00005 */ beql $a1, $zero, .L7F063894 /* 0983B0 7F063880 8FB903D8 */ lw $t9, 0x3d8($sp) -/* 0983B4 7F063884 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0983B4 7F063884 0FC1B1E7 */ jal modelGetNodeRwData /* 0983B8 7F063888 27A404D8 */ addiu $a0, $sp, 0x4d8 /* 0983BC 7F06388C AC400000 */ sw $zero, ($v0) /* 0983C0 7F063890 8FB903D8 */ lw $t9, 0x3d8($sp) @@ -16402,1177 +12919,222 @@ glabel sub_GAME_7F064364 - - -#ifdef NONMATCHING -s32 sub_GAME_7F0643A0(void) +ALSoundState* sub_GAME_7F0643A0(void) { - if (dword_CODE_bss_80075DB8 == 0) { - return &dword_CODE_bss_80075DB8; - } - if (dword_CODE_bss_80075DBC == 0) { - return &dword_CODE_bss_80075DBC; - } - if (dword_CODE_bss_80075DC0 == 0) { - return &dword_CODE_bss_80075DC0; - } - if (dword_CODE_bss_80075DC4 == 0) { - return &dword_CODE_bss_80075DC4; - } - return 0x0; + s32 i; + for (i = 0; i < 4; i++) { + if (dword_CODE_bss_80075DB8[i] == 0) { + return &dword_CODE_bss_80075DB8[i]; + } + } + return NULL; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0643A0 -/* 098ED0 7F0643A0 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075DB8) -/* 098ED4 7F0643A4 8DCE5DB8 */ lw $t6, %lo(dword_CODE_bss_80075DB8)($t6) -/* 098ED8 7F0643A8 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80075DBC) -/* 098EDC 7F0643AC 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DB8) -/* 098EE0 7F0643B0 15C00003 */ bnez $t6, .L7F0643C0 -/* 098EE4 7F0643B4 00000000 */ nop -/* 098EE8 7F0643B8 03E00008 */ jr $ra -/* 098EEC 7F0643BC 24425DB8 */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DB8) - -.L7F0643C0: -/* 098EF0 7F0643C0 8DEF5DBC */ lw $t7, %lo(dword_CODE_bss_80075DBC)($t7) -/* 098EF4 7F0643C4 3C188007 */ lui $t8, %hi(dword_CODE_bss_80075DC0) -/* 098EF8 7F0643C8 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DBC) -/* 098EFC 7F0643CC 15E00003 */ bnez $t7, .L7F0643DC -/* 098F00 7F0643D0 00000000 */ nop -/* 098F04 7F0643D4 03E00008 */ jr $ra -/* 098F08 7F0643D8 24425DBC */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DBC) - -.L7F0643DC: -/* 098F0C 7F0643DC 8F185DC0 */ lw $t8, %lo(dword_CODE_bss_80075DC0)($t8) -/* 098F10 7F0643E0 3C198007 */ lui $t9, %hi(dword_CODE_bss_80075DC4) -/* 098F14 7F0643E4 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DC0) -/* 098F18 7F0643E8 17000003 */ bnez $t8, .L7F0643F8 -/* 098F1C 7F0643EC 00000000 */ nop -/* 098F20 7F0643F0 03E00008 */ jr $ra -/* 098F24 7F0643F4 24425DC0 */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DC0) - -.L7F0643F8: -/* 098F28 7F0643F8 8F395DC4 */ lw $t9, %lo(dword_CODE_bss_80075DC4)($t9) -/* 098F2C 7F0643FC 00001025 */ move $v0, $zero -/* 098F30 7F064400 17200004 */ bnez $t9, .L7F064414 -/* 098F34 7F064404 00000000 */ nop -/* 098F38 7F064408 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075DC4) -/* 098F3C 7F06440C 03E00008 */ jr $ra -/* 098F40 7F064410 24425DC4 */ addiu $v0, $v0, %lo(dword_CODE_bss_80075DC4) - -.L7F064414: -/* 098F44 7F064414 03E00008 */ jr $ra -/* 098F48 7F064418 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -/** - * @param arg0: enum ITEM_IDS, will play sound effect for this item - * @param arg1: pointer to integral type, looks like PROP_TYPE - * @param arg2: index into image_entries, used to play related sound effect (via D_8004E86C) - * - * Address 0x7F06441C. -*/ -void recall_joy2_hits_edit_detail_edit_flag(s32 arg0, u8 *arg1, s32 arg2) +void recall_joy2_hits_edit_detail_edit_flag(enum ITEM_IDS item, PropRecord* prop, s32 texture_index) { + s32 sp6C; + u32 rnd1; + u32 rnd2; + ALSoundState* sound_state; + struct RicochetSoundsSmall ricochet_sounds_small_copy; + struct PunchSounds punch_sounds_copy; + struct BulletFleshSounds bullet_flesh_sounds_copy; + u32 sfx_index; -} -#else + sp6C = sub_GAME_7F0539E4(&prop->pos); -#ifdef VERSION_US -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) -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndCreatePostEvent -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndCreatePostEvent -/* 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 sndPlaySfx -/* 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 + rnd1 = randomGetNext(); + rnd2 = randomGetNext(); -#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(g_ClockTimer) # $t7, 0x8005 -/* 099560 7F0649F0 8DEF83A4 */ lw $t7, %lo(g_ClockTimer)($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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndCreatePostEvent -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndCreatePostEvent -/* 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 sndPlaySfx -/* 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 + D_800483C4 = texture_index; -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel recall_joy2_hits_edit_detail_edit_flag -/* 0972D0 7F0648E0 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0972D4 7F0648E4 00803825 */ move $a3, $a0 -/* 0972D8 7F0648E8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0972DC 7F0648EC 24A40008 */ addiu $a0, $a1, 8 -/* 0972E0 7F0648F0 AFA50074 */ sw $a1, 0x74($sp) -/* 0972E4 7F0648F4 AFA60078 */ sw $a2, 0x78($sp) -/* 0972E8 7F0648F8 AFA40024 */ sw $a0, 0x24($sp) -/* 0972EC 7F0648FC 0FC14F31 */ jal sub_GAME_7F0539E4 -/* 0972F0 7F064900 AFA70070 */ sw $a3, 0x70($sp) -/* 0972F4 7F064904 0C00262C */ jal randomGetNext -/* 0972F8 7F064908 AFA2006C */ sw $v0, 0x6c($sp) -/* 0972FC 7F06490C 0C00262C */ jal randomGetNext -/* 097300 7F064910 AFA20068 */ sw $v0, 0x68($sp) -/* 097304 7F064914 8FAE0078 */ lw $t6, 0x78($sp) -/* 097308 7F064918 3C018004 */ lui $at, %hi(D_800483C4) # $at, 0x8004 -/* 09730C 7F06491C AFA20064 */ sw $v0, 0x64($sp) -/* 097310 7F064920 0FC24114 */ jal get_debug_joy2hitsedit_flag -/* 097314 7F064924 AC2E1048 */ sw $t6, %lo(D_800483C4)($at) -/* 097318 7F064928 14400004 */ bnez $v0, .L7F06493C -/* 09731C 7F06492C 8FA70070 */ lw $a3, 0x70($sp) -/* 097320 7F064930 0FC24116 */ jal get_debug_joy2detailedit_flag -/* 097324 7F064934 AFA70070 */ sw $a3, 0x70($sp) -/* 097328 7F064938 8FA70070 */ lw $a3, 0x70($sp) -.L7F06493C: -/* 09732C 7F06493C 2401001D */ li $at, 29 -/* 097330 7F064940 10E100A7 */ beq $a3, $at, .L7F064BE0 -/* 097334 7F064944 2401001C */ li $at, 28 -/* 097338 7F064948 10E100A5 */ beq $a3, $at, .L7F064BE0 -/* 09733C 7F06494C 2401001B */ li $at, 27 -/* 097340 7F064950 10E100A3 */ beq $a3, $at, .L7F064BE0 -/* 097344 7F064954 24010021 */ li $at, 33 -/* 097348 7F064958 10E100A1 */ beq $a3, $at, .L7F064BE0 -/* 09734C 7F06495C 2401002F */ li $at, 47 -/* 097350 7F064960 10E1009F */ beq $a3, $at, .L7F064BE0 -/* 097354 7F064964 24010030 */ li $at, 48 -/* 097358 7F064968 10E1009D */ beq $a3, $at, .L7F064BE0 -/* 09735C 7F06496C 24010022 */ li $at, 34 -/* 097360 7F064970 10E1009B */ beq $a3, $at, .L7F064BE0 -/* 097364 7F064974 24010017 */ li $at, 23 -/* 097368 7F064978 10E10099 */ beq $a3, $at, .L7F064BE0 -/* 09736C 7F06497C 2401003C */ li $at, 60 -/* 097370 7F064980 10E10097 */ beq $a3, $at, .L7F064BE0 -/* 097374 7F064984 3C0F8004 */ lui $t7, %hi(g_ClockTimer) # $t7, 0x8004 -/* 097378 7F064988 8DEF0FF4 */ lw $t7, %lo(g_ClockTimer)($t7) -/* 09737C 7F06498C 59E00095 */ blezl $t7, .L7F064BE4 -/* 097380 7F064990 8FBF0014 */ lw $ra, 0x14($sp) -/* 097384 7F064994 0FC19219 */ jal sub_GAME_7F0643A0 -/* 097388 7F064998 AFA70070 */ sw $a3, 0x70($sp) -/* 09738C 7F06499C 8FA70070 */ lw $a3, 0x70($sp) -/* 097390 7F0649A0 10400068 */ beqz $v0, .L7F064B44 -/* 097394 7F0649A4 00403025 */ move $a2, $v0 -/* 097398 7F0649A8 8FB80074 */ lw $t8, 0x74($sp) -/* 09739C 7F0649AC 24010003 */ li $at, 3 -/* 0973A0 7F0649B0 93020000 */ lbu $v0, ($t8) -/* 0973A4 7F0649B4 1041002F */ beq $v0, $at, .L7F064A74 -/* 0973A8 7F0649B8 24010006 */ li $at, 6 -/* 0973AC 7F0649BC 1041002D */ beq $v0, $at, .L7F064A74 -/* 0973B0 7F0649C0 24010016 */ li $at, 22 -/* 0973B4 7F0649C4 14E10008 */ bne $a3, $at, .L7F0649E8 -/* 0973B8 7F0649C8 27A20038 */ addiu $v0, $sp, 0x38 -/* 0973BC 7F0649CC 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 0973C0 7F0649D0 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 0973C4 7F0649D4 2405005B */ li $a1, 91 -/* 0973C8 7F0649D8 0C00209A */ jal sndPlaySfx -/* 0973CC 7F0649DC AFA60060 */ sw $a2, 0x60($sp) -/* 0973D0 7F0649E0 1000001C */ b .L7F064A54 -/* 0973D4 7F0649E4 8FB80060 */ lw $t8, 0x60($sp) -.L7F0649E8: -/* 0973D8 7F0649E8 3C198003 */ lui $t9, %hi(D_80035E04) # $t9, 0x8003 -/* 0973DC 7F0649EC 27391354 */ addiu $t9, %lo(D_80035E04) # addiu $t9, $t9, 0x1354 -/* 0973E0 7F0649F0 272A0024 */ addiu $t2, $t9, 0x24 -/* 0973E4 7F0649F4 00405825 */ move $t3, $v0 -.L7F0649F8: -/* 0973E8 7F0649F8 8F210000 */ lw $at, ($t9) -/* 0973EC 7F0649FC 2739000C */ addiu $t9, $t9, 0xc -/* 0973F0 7F064A00 256B000C */ addiu $t3, $t3, 0xc -/* 0973F4 7F064A04 AD61FFF4 */ sw $at, -0xc($t3) -/* 0973F8 7F064A08 8F21FFF8 */ lw $at, -8($t9) -/* 0973FC 7F064A0C AD61FFF8 */ sw $at, -8($t3) -/* 097400 7F064A10 8F21FFFC */ lw $at, -4($t9) -/* 097404 7F064A14 172AFFF8 */ bne $t9, $t2, .L7F0649F8 -/* 097408 7F064A18 AD61FFFC */ sw $at, -4($t3) -/* 09740C 7F064A1C 8F210000 */ lw $at, ($t9) -/* 097410 7F064A20 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 097414 7F064A24 AD610000 */ sw $at, ($t3) -/* 097418 7F064A28 8FAC0068 */ lw $t4, 0x68($sp) -/* 09741C 7F064A2C 24010014 */ li $at, 20 -/* 097420 7F064A30 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 097424 7F064A34 0181001B */ divu $zero, $t4, $at -/* 097428 7F064A38 00006810 */ mfhi $t5 -/* 09742C 7F064A3C 000D7040 */ sll $t6, $t5, 1 -/* 097430 7F064A40 004E7821 */ addu $t7, $v0, $t6 -/* 097434 7F064A44 85E50000 */ lh $a1, ($t7) -/* 097438 7F064A48 0C00209A */ jal sndPlaySfx -/* 09743C 7F064A4C AFA60060 */ sw $a2, 0x60($sp) -/* 097440 7F064A50 8FB80060 */ lw $t8, 0x60($sp) -.L7F064A54: -/* 097444 7F064A54 24050008 */ li $a1, 8 -/* 097448 7F064A58 8F040000 */ lw $a0, ($t8) -/* 09744C 7F064A5C 10800039 */ beqz $a0, .L7F064B44 -/* 097450 7F064A60 00000000 */ nop -/* 097454 7F064A64 0C002179 */ jal sndCreatePostEvent -/* 097458 7F064A68 8FA6006C */ lw $a2, 0x6c($sp) -/* 09745C 7F064A6C 10000035 */ b .L7F064B44 -/* 097460 7F064A70 00000000 */ nop -.L7F064A74: -/* 097464 7F064A74 24010002 */ li $at, 2 -/* 097468 7F064A78 14E10007 */ bne $a3, $at, .L7F064A98eu -/* 09746C 7F064A7C 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 097470 7F064A80 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 097474 7F064A84 2405004A */ li $a1, 74 -/* 097478 7F064A88 0C00209A */ jal sndPlaySfx -/* 09747C 7F064A8C AFA60060 */ sw $a2, 0x60($sp) -/* 097480 7F064A90 10000026 */ b .L7F064B2C -/* 097484 7F064A94 8FAC0060 */ lw $t4, 0x60($sp) -.L7F064A98eu: -/* 097488 7F064A98 24010001 */ li $at, 1 -/* 09748C 7F064A9C 14E10015 */ bne $a3, $at, .L7F064AF4eu -/* 097490 7F064AA0 3C0E8003 */ lui $t6, %hi(D_80035E34) # $t6, 0x8003 -/* 097494 7F064AA4 3C098003 */ lui $t1, %hi(D_80035E2C) # $t1, 0x8003 -/* 097498 7F064AA8 2529137C */ addiu $t1, %lo(D_80035E2C) # addiu $t1, $t1, 0x137c -/* 09749C 7F064AAC 8D210000 */ lw $at, ($t1) -/* 0974A0 7F064AB0 27A20030 */ addiu $v0, $sp, 0x30 -/* 0974A4 7F064AB4 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 0974A8 7F064AB8 AC410000 */ sw $at, ($v0) -/* 0974AC 7F064ABC 95210004 */ lhu $at, 4($t1) -/* 0974B0 7F064AC0 A4410004 */ sh $at, 4($v0) -/* 0974B4 7F064AC4 8FB90068 */ lw $t9, 0x68($sp) -/* 0974B8 7F064AC8 24010003 */ li $at, 3 -/* 0974BC 7F064ACC 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 0974C0 7F064AD0 0321001B */ divu $zero, $t9, $at -/* 0974C4 7F064AD4 00005810 */ mfhi $t3 -/* 0974C8 7F064AD8 000B6040 */ sll $t4, $t3, 1 -/* 0974CC 7F064ADC 004C6821 */ addu $t5, $v0, $t4 -/* 0974D0 7F064AE0 85A50000 */ lh $a1, ($t5) -/* 0974D4 7F064AE4 0C00209A */ jal sndPlaySfx -/* 0974D8 7F064AE8 AFA60060 */ sw $a2, 0x60($sp) -/* 0974DC 7F064AEC 1000000F */ b .L7F064B2C -/* 0974E0 7F064AF0 8FAC0060 */ lw $t4, 0x60($sp) -.L7F064AF4eu: -/* 0974E4 7F064AF4 25CE1384 */ addiu $t6, %lo(D_80035E34) # addiu $t6, $t6, 0x1384 -/* 0974E8 7F064AF8 8DC10000 */ lw $at, ($t6) -/* 0974EC 7F064AFC 27A2002C */ addiu $v0, $sp, 0x2c -/* 0974F0 7F064B00 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 0974F4 7F064B04 AC410000 */ sw $at, ($v0) -/* 0974F8 7F064B08 8FA90068 */ lw $t1, 0x68($sp) -/* 0974FC 7F064B0C 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 097500 7F064B10 312A0001 */ andi $t2, $t1, 1 -/* 097504 7F064B14 000AC840 */ sll $t9, $t2, 1 -/* 097508 7F064B18 00595821 */ addu $t3, $v0, $t9 -/* 09750C 7F064B1C 85650000 */ lh $a1, ($t3) -/* 097510 7F064B20 0C00209A */ jal sndPlaySfx -/* 097514 7F064B24 AFA60060 */ sw $a2, 0x60($sp) -/* 097518 7F064B28 8FAC0060 */ lw $t4, 0x60($sp) -.L7F064B2C: -/* 09751C 7F064B2C 24050008 */ li $a1, 8 -/* 097520 7F064B30 8D840000 */ lw $a0, ($t4) -/* 097524 7F064B34 10800003 */ beqz $a0, .L7F064B44 -/* 097528 7F064B38 00000000 */ nop -/* 09752C 7F064B3C 0C002179 */ jal sndCreatePostEvent -/* 097530 7F064B40 8FA6006C */ lw $a2, 0x6c($sp) -.L7F064B44: -/* 097534 7F064B44 0FC19219 */ jal sub_GAME_7F0643A0 -/* 097538 7F064B48 00000000 */ nop -/* 09753C 7F064B4C 10400024 */ beqz $v0, .L7F064BE0 -/* 097540 7F064B50 AFA20060 */ sw $v0, 0x60($sp) -/* 097544 7F064B54 8FAD0078 */ lw $t5, 0x78($sp) -/* 097548 7F064B58 3C0F8004 */ lui $t7, %hi(image_entries) -/* 09754C 7F064B5C 05A00020 */ bltz $t5, .L7F064BE0 -/* 097550 7F064B60 000DC0C0 */ sll $t8, $t5, 3 -/* 097554 7F064B64 01F87821 */ addu $t7, $t7, $t8 -/* 097558 7F064B68 8DEF1880 */ lw $t7, %lo(image_entries)($t7) -/* 09755C 7F064B6C 3C028004 */ lui $v0, %hi(D_8004E86C) -/* 097560 7F064B70 000F7702 */ srl $t6, $t7, 0x1c -/* 097564 7F064B74 000E4080 */ sll $t0, $t6, 2 -/* 097568 7F064B78 00481021 */ addu $v0, $v0, $t0 -/* 09756C 7F064B7C 8C426DEC */ lw $v0, %lo(D_8004E86C)($v0) -/* 097570 7F064B80 50400018 */ beql $v0, $zero, .L7F064BE4 -/* 097574 7F064B84 8FBF0014 */ lw $ra, 0x14($sp) -/* 097578 7F064B88 84470008 */ lh $a3, 8($v0) -/* 09757C 7F064B8C 8FA90064 */ lw $t1, 0x64($sp) -/* 097580 7F064B90 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 097584 7F064B94 18E0000C */ blez $a3, .L7F064BC8 -/* 097588 7F064B98 8FA60060 */ lw $a2, 0x60($sp) -/* 09758C 7F064B9C 0127001B */ divu $zero, $t1, $a3 -/* 097590 7F064BA0 8C4A0000 */ lw $t2, ($v0) -/* 097594 7F064BA4 00001810 */ mfhi $v1 -/* 097598 7F064BA8 0003C840 */ sll $t9, $v1, 1 -/* 09759C 7F064BAC 14E00002 */ bnez $a3, .L7F064BB8 -/* 0975A0 7F064BB0 00000000 */ nop -/* 0975A4 7F064BB4 0007000D */ break 7 -.L7F064BB8: -/* 0975A8 7F064BB8 01595821 */ addu $t3, $t2, $t9 -/* 0975AC 7F064BBC 85650000 */ lh $a1, ($t3) -/* 0975B0 7F064BC0 0C00209A */ jal sndPlaySfx -/* 0975B4 7F064BC4 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -.L7F064BC8: -/* 0975B8 7F064BC8 8FAC0060 */ lw $t4, 0x60($sp) -/* 0975BC 7F064BCC 8D840000 */ lw $a0, ($t4) -/* 0975C0 7F064BD0 50800004 */ beql $a0, $zero, .L7F064BE4 -/* 0975C4 7F064BD4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0975C8 7F064BD8 0FC14F3C */ jal sub_GAME_7F053A10 -/* 0975CC 7F064BDC 8FA50024 */ lw $a1, 0x24($sp) -.L7F064BE0: -/* 0975D0 7F064BE0 8FBF0014 */ lw $ra, 0x14($sp) -.L7F064BE4: -/* 0975D4 7F064BE4 27BD0070 */ addiu $sp, $sp, 0x70 -/* 0975D8 7F064BE8 03E00008 */ jr $ra -/* 0975DC 7F064BEC 00000000 */ nop -) -#endif + if (get_debug_joy2hitsedit_flag() == 0) + { + get_debug_joy2detailedit_flag(); + } - -#endif - - -#ifdef NONMATCHING -void sub_GAME_7F064720(void) { - -} -#else - -#ifdef BUGFIX_R0 -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(g_musicSfxBufferPtr) -/* 09926C 7F06473C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 099270 7F064740 24050046 */ li $a1, 70 -/* 099274 7F064744 0C002382 */ jal sndPlaySfx -/* 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 + if ((item == ITEM_REMOTEMINE) + || (item == ITEM_PROXIMITYMINE) + || (item == ITEM_TIMEDMINE) + || (item == ITEM_BOMBCASE) + || (item == ITEM_BUG) + || (item == ITEM_MICROCAMERA) + || (item == ITEM_PLASTIQUE) + || (item == ITEM_WATCHLASER) + || (item == ITEM_WATCHMAGNETATTRACT)) + { + return; + } #ifdef BUGFIX_R1 -GLOBAL_ASM( -.text -glabel sub_GAME_7F064720 -/* 0997C8 7F064C58 3C0E8005 */ lui $t6, %hi(g_ClockTimer) # $t6, 0x8005 -/* 0997CC 7F064C5C 8DCE83A4 */ lw $t6, %lo(g_ClockTimer)($t6) -/* 0997D0 7F064C60 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0997D4 7F064C64 AFBF0014 */ sw $ra, 0x14($sp) -/* 0997D8 7F064C68 19C00010 */ blez $t6, .L7F064CAC -/* 0997DC 7F064C6C AFA40020 */ sw $a0, 0x20($sp) -/* 0997E0 7F064C70 0FC19233 */ jal sub_GAME_7F0643A0 -/* 0997E4 7F064C74 00000000 */ nop -/* 0997E8 7F064C78 1040000C */ beqz $v0, .L7F064CAC -/* 0997EC 7F064C7C 00403025 */ move $a2, $v0 -/* 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 sndPlaySfx -/* 099800 7F064C90 AFA2001C */ sw $v0, 0x1c($sp) -/* 099804 7F064C94 8FA6001C */ lw $a2, 0x1c($sp) -/* 099808 7F064C98 8CC40000 */ lw $a0, ($a2) -/* 09980C 7F064C9C 50800004 */ beql $a0, $zero, .L7F064CB0 -/* 099810 7F064CA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 099814 7F064CA4 0FC14FC3 */ jal sub_GAME_7F053A10 -/* 099818 7F064CA8 8FA50020 */ lw $a1, 0x20($sp) -.L7F064CAC: -/* 09981C 7F064CAC 8FBF0014 */ lw $ra, 0x14($sp) -.L7F064CB0: -/* 099820 7F064CB0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 099824 7F064CB4 03E00008 */ jr $ra -/* 099828 7F064CB8 00000000 */ nop -) + if (g_ClockTimer <= 0) { return; } #endif + sound_state = sub_GAME_7F0643A0(); + if (sound_state != NULL) + { + if ((prop->type != 3) && (prop->type != 6)) + { + if (item == ITEM_LASER) + { + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x5B, sound_state); + } + else + { + ricochet_sounds_small_copy = ricochet_sounds_small; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, ricochet_sounds_small_copy.arr[rnd1 % 20], sound_state); + } + + if (sound_state->link.next != NULL) + { + sndCreatePostEvent((ALSoundState* ) sound_state->link.next, 8, sp6C); + } + } + else + { + if (item == ITEM_KNIFE) + { + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x4A, sound_state); + } + else if (item == ITEM_FIST) + { + punch_sounds_copy = punch_sounds; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, punch_sounds_copy.arr[rnd1 % 3], sound_state); + } + else + { + bullet_flesh_sounds_copy = bullet_flesh_sounds; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, bullet_flesh_sounds_copy.arr[rnd1 % 2], sound_state); + } + + if (sound_state->link.next != NULL) { + sndCreatePostEvent((ALSoundState* ) sound_state->link.next, 8, sp6C); + } + } + } + + sound_state = sub_GAME_7F0643A0(); + if ((sound_state != NULL) && (texture_index >= 0)) + { + if (D_8004E86C[g_Textures[texture_index].hitSound] != NULL) + { + if (D_8004E86C[g_Textures[texture_index].hitSound]->sfx_len > 0) + { + sfx_index = rnd2 % D_8004E86C[g_Textures[texture_index].hitSound]->sfx_len; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, D_8004E86C[g_Textures[texture_index].hitSound]->sfx[sfx_index], sound_state); + } + + if (sound_state->link.next != NULL) + { + sub_GAME_7F053A10((ALSoundState* ) sound_state->link.next, &prop->pos); + } + } + } +} -#endif - - - -#ifdef NONMATCHING -/** - * arg0: enum ITEM_IDS, will play sound effect for this item - * arg1: - * arg2: index into image_entries, used to play related sound effect (via D_8004E86C) - * - * Address 0x7F064774. -*/ -void recall_joy2_hits_edit_flag(s32 arg0, coord3d *arg1, s32 arg2) +void sub_GAME_7F064720(coord3d* pos) { - -} -#else - -#ifdef BUGFIX_R0 -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) -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 + ALSoundState* sound; + ALLink* link; #ifdef BUGFIX_R1 -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(g_ClockTimer) # $t7, 0x8005 -/* 099864 7F064CF4 8DEF83A4 */ lw $t7, %lo(g_ClockTimer)($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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 sndPlaySfx -/* 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 -) + if (g_ClockTimer <= 0) { return; } #endif + sound = sub_GAME_7F0643A0(); -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F064934(void) { + if (sound != NULL) + { + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x46, sound); + link = sound->link.next; + if (link != NULL) + { + sub_GAME_7F053A10((ALSoundState* ) link, pos); + } + } } -#else -#ifdef BUGFIX_R0 -GLOBAL_ASM( -.text -glabel sub_GAME_7F064934 -/* 099464 7F064934 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 099468 7F064938 24010016 */ li $at, 22 -/* 09946C 7F06493C 10810017 */ beq $a0, $at, .L7F06499C -/* 099470 7F064940 AFBF0014 */ sw $ra, 0x14($sp) -/* 099474 7F064944 24010017 */ li $at, 23 -/* 099478 7F064948 10810014 */ beq $a0, $at, .L7F06499C -/* 09947C 7F06494C 3C0F8003 */ lui $t7, %hi(D_80035E84) -/* 099480 7F064950 25EF5E84 */ addiu $t7, %lo(D_80035E84) # addiu $t7, $t7, 0x5e84 -/* 099484 7F064954 8DE10000 */ lw $at, ($t7) -/* 099488 7F064958 27AE001C */ addiu $t6, $sp, 0x1c -/* 09948C 7F06495C 8DF90004 */ lw $t9, 4($t7) -/* 099490 7F064960 ADC10000 */ sw $at, ($t6) -/* 099494 7F064964 95E10008 */ lhu $at, 8($t7) -/* 099498 7F064968 ADD90004 */ sw $t9, 4($t6) -/* 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(g_musicSfxBufferPtr) -/* 0994BC 7F06498C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 0994C0 7F064990 84A5001C */ lh $a1, 0x1c($a1) -/* 0994C4 7F064994 0C002382 */ jal sndPlaySfx -/* 0994C8 7F064998 00003025 */ move $a2, $zero -.L7F06499C: -/* 0994CC 7F06499C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0994D0 7F0649A0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0994D4 7F0649A4 03E00008 */ jr $ra -/* 0994D8 7F0649A8 00000000 */ nop -) -#endif + +void recall_joy2_hits_edit_flag(enum ITEM_IDS item, coord3d* arg1, s32 texture_index) +{ + ALSoundState *sound_state; + u32 rnd1; + u32 rnd2; + struct LaserRichochetSounds laser_copied; + struct RicochetSoundsLarge rico_copied; + u32 sfx_index; + struct image_sound *img_sound; + + rnd1 = randomGetNext(); + rnd2 = randomGetNext(); + + D_800483C4 = texture_index; + get_debug_joy2hitsedit_flag(); #ifdef BUGFIX_R1 -GLOBAL_ASM( -.text -glabel sub_GAME_7F064934 -/* 0999FC 7F064E8C 3C0E8005 */ lui $t6, %hi(g_ClockTimer) # $t6, 0x8005 -/* 099A00 7F064E90 8DCE83A4 */ lw $t6, %lo(g_ClockTimer)($t6) -/* 099A04 7F064E94 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 099A08 7F064E98 AFBF0014 */ sw $ra, 0x14($sp) -/* 099A0C 7F064E9C 19C00018 */ blez $t6, .L7F064F00 -/* 099A10 7F064EA0 24010016 */ li $at, 22 -/* 099A14 7F064EA4 10810016 */ beq $a0, $at, .L7F064F00 -/* 099A18 7F064EA8 24010017 */ li $at, 23 -/* 099A1C 7F064EAC 10810014 */ beq $a0, $at, .L7F064F00 -/* 099A20 7F064EB0 3C188003 */ lui $t8, %hi(D_80035E84) # $t8, 0x8003 -/* 099A24 7F064EB4 27185EC4 */ addiu $t8, %lo(D_80035E84) # addiu $t8, $t8, 0x5ec4 -/* 099A28 7F064EB8 8F010000 */ lw $at, ($t8) -/* 099A2C 7F064EBC 27AF001C */ addiu $t7, $sp, 0x1c -/* 099A30 7F064EC0 8F080004 */ lw $t0, 4($t8) -/* 099A34 7F064EC4 ADE10000 */ sw $at, ($t7) -/* 099A38 7F064EC8 97010008 */ lhu $at, 8($t8) -/* 099A3C 7F064ECC ADE80004 */ sw $t0, 4($t7) -/* 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(g_musicSfxBufferPtr) # $a0, 0x8006 -/* 099A60 7F064EF0 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 099A64 7F064EF4 84A5001C */ lh $a1, 0x1c($a1) -/* 099A68 7F064EF8 0C002386 */ jal sndPlaySfx -/* 099A6C 7F064EFC 00003025 */ move $a2, $zero -.L7F064F00: -/* 099A70 7F064F00 8FBF0014 */ lw $ra, 0x14($sp) -/* 099A74 7F064F04 27BD0028 */ addiu $sp, $sp, 0x28 -/* 099A78 7F064F08 03E00008 */ jr $ra -/* 099A7C 7F064F0C 00000000 */ nop -) + if (g_ClockTimer <= 0) { return; } #endif + sound_state = sub_GAME_7F0643A0(); + if (sound_state != NULL) + { + if (item != ITEM_WATCHLASER) + { + if (item == ITEM_LASER) + { + laser_copied = laser_ricochet_sounds; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, laser_copied.arr[rnd1 % 2], sound_state); + } + else + { + rico_copied = ricochet_sounds_large; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, rico_copied.arr[rnd1 % 36], sound_state); + } + } + + if (sound_state->link.next != NULL) + { + sub_GAME_7F053A10((ALSoundState* ) sound_state->link.next, arg1); + } + } + + sound_state = sub_GAME_7F0643A0(); + if ((sound_state != NULL) && (texture_index >= 0)) + { + img_sound = D_8004E86C[g_Textures[texture_index].hitSound]; + if (img_sound->sfx_len > 0) + { + if (img_sound != NULL) + { + sfx_index = rnd2 % img_sound->sfx_len; + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, img_sound->sfx[sfx_index], sound_state); + } + + if (sound_state->link.next != NULL) + { + sub_GAME_7F053A10((ALSoundState* ) sound_state->link.next, arg1); + } + } + } +} + + +void sub_GAME_7F064934(ITEM_IDS item) +{ + struct EarWhistleSounds copied; + +#ifdef BUGFIX_R1 + if (g_ClockTimer <= 0) { return; } #endif + if ((item != ITEM_LASER) && (item != ITEM_WATCHLASER)) + { + copied = ear_whistle_sounds; + sndPlaySfx((struct ALBankAlt_s*) g_musicSfxBufferPtr, copied.arr[randomGetNext() % 5], 0); + } +} f32 sub_GAME_7F0649AC(s32 param_1) @@ -17588,217 +13150,48 @@ f32 sub_GAME_7F0649AC(s32 param_1) +void sub_GAME_7F0649D8(enum GUNHAND hand) +{ + struct hand* hand_ptr; + enum ITEM_IDS item_id; + s32 ammo_in_magazine; + s32 ammo_in_hands; + WeaponStats* item_stats; + s32 magsize; + s32 ammo_total; + hand_ptr = &g_CurrentPlayer->hands[hand]; + item_id = getCurrentPlayerWeaponId(hand); + ammo_in_magazine = hand_ptr->weapon_ammo_in_magazine; + ammo_in_hands = get_ammo_in_hands_weapon(hand); + item_stats = get_ptr_item_statistics(item_id); + ammo_total = ammo_in_hands + ammo_in_magazine; + hand_ptr->weapon_ammo_in_magazine = (ammo_total >= item_stats->MagSize) + ? item_stats->MagSize + : ammo_total; -#ifdef NONMATCHING -void sub_GAME_7F0649D8(void) { + g_CurrentPlayer->ammoheldarr[item_stats->AmmoType] = (bondwalkItemCheckBitflags(item_id, 0x200000U) != 0) + ? 0 + : (g_CurrentPlayer->ammoheldarr[item_stats->AmmoType] - hand_ptr->weapon_ammo_in_magazine) + ammo_in_magazine; + if (item_id == ITEM_ROCKETLAUNCH) + { + currentPlayerCreateRocket(hand); + return; + } + + if ((item_id == ITEM_SHOTGUN) || (item_id == ITEM_AUTOSHOT)) + { + ammo_in_hands = get_ammo_in_hands_weapon(hand); + if (ammo_in_hands >= 5) + { + hand_ptr->field_8A4 = 5; + return; + } + hand_ptr->field_8A4 = ammo_in_hands; + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0649D8 -/* 099508 7F0649D8 000478C0 */ sll $t7, $a0, 3 -/* 09950C 7F0649DC 01E47823 */ subu $t7, $t7, $a0 -/* 099510 7F0649E0 000F7880 */ sll $t7, $t7, 2 -/* 099514 7F0649E4 01E47821 */ addu $t7, $t7, $a0 -/* 099518 7F0649E8 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 09951C 7F0649EC 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 099520 7F0649F0 000F7880 */ sll $t7, $t7, 2 -/* 099524 7F0649F4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 099528 7F0649F8 01E47821 */ addu $t7, $t7, $a0 -/* 09952C 7F0649FC AFB10018 */ sw $s1, 0x18($sp) -/* 099530 7F064A00 000F78C0 */ sll $t7, $t7, 3 -/* 099534 7F064A04 AFBF001C */ sw $ra, 0x1c($sp) -/* 099538 7F064A08 01CF8821 */ addu $s1, $t6, $t7 -/* 09953C 7F064A0C AFB00014 */ sw $s0, 0x14($sp) -/* 099540 7F064A10 26310870 */ addiu $s1, $s1, 0x870 -/* 099544 7F064A14 0FC17674 */ jal getCurrentPlayerWeaponId -/* 099548 7F064A18 AFA40038 */ sw $a0, 0x38($sp) -/* 09954C 7F064A1C 8E38002C */ lw $t8, 0x2c($s1) -/* 099550 7F064A20 00408025 */ move $s0, $v0 -/* 099554 7F064A24 8FA40038 */ lw $a0, 0x38($sp) -/* 099558 7F064A28 0FC1A4DD */ jal get_ammo_in_hands_weapon -/* 09955C 7F064A2C AFB8002C */ sw $t8, 0x2c($sp) -/* 099560 7F064A30 AFA20028 */ sw $v0, 0x28($sp) -/* 099564 7F064A34 0FC1722D */ jal get_ptr_item_statistics -/* 099568 7F064A38 02002025 */ move $a0, $s0 -/* 09956C 7F064A3C 8FB90028 */ lw $t9, 0x28($sp) -/* 099570 7F064A40 8FA8002C */ lw $t0, 0x2c($sp) -/* 099574 7F064A44 84440020 */ lh $a0, 0x20($v0) -/* 099578 7F064A48 00403025 */ move $a2, $v0 -/* 09957C 7F064A4C 03281821 */ addu $v1, $t9, $t0 -/* 099580 7F064A50 0064082A */ slt $at, $v1, $a0 -/* 099584 7F064A54 14200003 */ bnez $at, .L7F064A64 -/* 099588 7F064A58 3C050020 */ lui $a1, 0x20 -/* 09958C 7F064A5C 10000002 */ b .L7F064A68 -/* 099590 7F064A60 AE24002C */ sw $a0, 0x2c($s1) -.L7F064A64: -/* 099594 7F064A64 AE23002C */ sw $v1, 0x2c($s1) -.L7F064A68: -/* 099598 7F064A68 02002025 */ move $a0, $s0 -/* 09959C 7F064A6C 0FC1782D */ jal bondwalkItemCheckBitflags -/* 0995A0 7F064A70 AFA60024 */ sw $a2, 0x24($sp) -/* 0995A4 7F064A74 10400008 */ beqz $v0, .L7F064A98 -/* 0995A8 7F064A78 8FA60024 */ lw $a2, 0x24($sp) -/* 0995AC 7F064A7C 8CCA001C */ lw $t2, 0x1c($a2) -/* 0995B0 7F064A80 3C098008 */ lui $t1, %hi(g_CurrentPlayer) -/* 0995B4 7F064A84 8D29A0B0 */ lw $t1, %lo(g_CurrentPlayer)($t1) -/* 0995B8 7F064A88 000A5880 */ sll $t3, $t2, 2 -/* 0995BC 7F064A8C 012B6021 */ addu $t4, $t1, $t3 -/* 0995C0 7F064A90 1000000C */ b .L7F064AC4 -/* 0995C4 7F064A94 AD801130 */ sw $zero, 0x1130($t4) -.L7F064A98: -/* 0995C8 7F064A98 8CCE001C */ lw $t6, 0x1c($a2) -/* 0995CC 7F064A9C 3C0D8008 */ lui $t5, %hi(g_CurrentPlayer) -/* 0995D0 7F064AA0 8DADA0B0 */ lw $t5, %lo(g_CurrentPlayer)($t5) -/* 0995D4 7F064AA4 000E7880 */ sll $t7, $t6, 2 -/* 0995D8 7F064AA8 8E39002C */ lw $t9, 0x2c($s1) -/* 0995DC 7F064AAC 01AF1021 */ addu $v0, $t5, $t7 -/* 0995E0 7F064AB0 8C581130 */ lw $t8, 0x1130($v0) -/* 0995E4 7F064AB4 8FAA002C */ lw $t2, 0x2c($sp) -/* 0995E8 7F064AB8 03194023 */ subu $t0, $t8, $t9 -/* 0995EC 7F064ABC 010A4821 */ addu $t1, $t0, $t2 -/* 0995F0 7F064AC0 AC491130 */ sw $t1, 0x1130($v0) -.L7F064AC4: -/* 0995F4 7F064AC4 24010019 */ li $at, 25 -/* 0995F8 7F064AC8 56010006 */ bnel $s0, $at, .L7F064AE4 -/* 0995FC 7F064ACC 2401000F */ li $at, 15 -/* 099600 7F064AD0 0FC17E9F */ jal sub_GAME_7F05FA7C -/* 099604 7F064AD4 8FA40038 */ lw $a0, 0x38($sp) -/* 099608 7F064AD8 1000000F */ b .L7F064B18 -/* 09960C 7F064ADC 8FBF001C */ lw $ra, 0x1c($sp) -/* 099610 7F064AE0 2401000F */ li $at, 15 -.L7F064AE4: -/* 099614 7F064AE4 12010003 */ beq $s0, $at, .L7F064AF4 -/* 099618 7F064AE8 24010010 */ li $at, 16 -/* 09961C 7F064AEC 5601000A */ bnel $s0, $at, .L7F064B18 -/* 099620 7F064AF0 8FBF001C */ lw $ra, 0x1c($sp) -.L7F064AF4: -/* 099624 7F064AF4 0FC1A4DD */ jal get_ammo_in_hands_weapon -/* 099628 7F064AF8 8FA40038 */ lw $a0, 0x38($sp) -/* 09962C 7F064AFC 28410005 */ slti $at, $v0, 5 -/* 099630 7F064B00 14200003 */ bnez $at, .L7F064B10 -/* 099634 7F064B04 240B0005 */ li $t3, 5 -/* 099638 7F064B08 10000002 */ b .L7F064B14 -/* 09963C 7F064B0C AE2B0034 */ sw $t3, 0x34($s1) -.L7F064B10: -/* 099640 7F064B10 AE220034 */ sw $v0, 0x34($s1) -.L7F064B14: -/* 099644 7F064B14 8FBF001C */ lw $ra, 0x1c($sp) -.L7F064B18: -/* 099648 7F064B18 8FB00014 */ lw $s0, 0x14($sp) -/* 09964C 7F064B1C 8FB10018 */ lw $s1, 0x18($sp) -/* 099650 7F064B20 03E00008 */ jr $ra -/* 099654 7F064B24 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0649D8 -/* 0978C4 7F064ED4 000478C0 */ sll $t7, $a0, 3 -/* 0978C8 7F064ED8 01E47823 */ subu $t7, $t7, $a0 -/* 0978CC 7F064EDC 000F7880 */ sll $t7, $t7, 2 -/* 0978D0 7F064EE0 01E47821 */ addu $t7, $t7, $a0 -/* 0978D4 7F064EE4 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 0978D8 7F064EE8 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 0978DC 7F064EEC 000F7880 */ sll $t7, $t7, 2 -/* 0978E0 7F064EF0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0978E4 7F064EF4 01E47821 */ addu $t7, $t7, $a0 -/* 0978E8 7F064EF8 AFB10018 */ sw $s1, 0x18($sp) -/* 0978EC 7F064EFC 000F78C0 */ sll $t7, $t7, 3 -/* 0978F0 7F064F00 AFBF001C */ sw $ra, 0x1c($sp) -/* 0978F4 7F064F04 01CF8821 */ addu $s1, $t6, $t7 -/* 0978F8 7F064F08 AFB00014 */ sw $s0, 0x14($sp) -/* 0978FC 7F064F0C 26310868 */ addiu $s1, $s1, 0x868 -/* 097900 7F064F10 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 097904 7F064F14 AFA40038 */ sw $a0, 0x38($sp) -/* 097908 7F064F18 8E38002C */ lw $t8, 0x2c($s1) -/* 09790C 7F064F1C 00408025 */ move $s0, $v0 -/* 097910 7F064F20 8FA40038 */ lw $a0, 0x38($sp) -/* 097914 7F064F24 0FC1A6C2 */ jal get_ammo_in_hands_weapon -/* 097918 7F064F28 AFB8002C */ sw $t8, 0x2c($sp) -/* 09791C 7F064F2C AFA20028 */ sw $v0, 0x28($sp) -/* 097920 7F064F30 0FC17359 */ jal get_ptr_item_statistics -/* 097924 7F064F34 02002025 */ move $a0, $s0 -/* 097928 7F064F38 8FB90028 */ lw $t9, 0x28($sp) -/* 09792C 7F064F3C 8FA8002C */ lw $t0, 0x2c($sp) -/* 097930 7F064F40 84440020 */ lh $a0, 0x20($v0) -/* 097934 7F064F44 00403025 */ move $a2, $v0 -/* 097938 7F064F48 03281821 */ addu $v1, $t9, $t0 -/* 09793C 7F064F4C 0064082A */ slt $at, $v1, $a0 -/* 097940 7F064F50 14200003 */ bnez $at, .L7F064F60 -/* 097944 7F064F54 3C050020 */ lui $a1, 0x20 -/* 097948 7F064F58 10000002 */ b .L7F064F64 -/* 09794C 7F064F5C AE24002C */ sw $a0, 0x2c($s1) -.L7F064F60: -/* 097950 7F064F60 AE23002C */ sw $v1, 0x2c($s1) -.L7F064F64: -/* 097954 7F064F64 02002025 */ move $a0, $s0 -/* 097958 7F064F68 0FC1795B */ jal bondwalkItemCheckBitflags -/* 09795C 7F064F6C AFA60024 */ sw $a2, 0x24($sp) -/* 097960 7F064F70 10400008 */ beqz $v0, .L7F064F94 -/* 097964 7F064F74 8FA60024 */ lw $a2, 0x24($sp) -/* 097968 7F064F78 8CCA001C */ lw $t2, 0x1c($a2) -/* 09796C 7F064F7C 3C098007 */ lui $t1, %hi(g_CurrentPlayer) # $t1, 0x8007 -/* 097970 7F064F80 8D298BC0 */ lw $t1, %lo(g_CurrentPlayer)($t1) -/* 097974 7F064F84 000A5880 */ sll $t3, $t2, 2 -/* 097978 7F064F88 012B6021 */ addu $t4, $t1, $t3 -/* 09797C 7F064F8C 1000000C */ b .L7F064FC0 -/* 097980 7F064F90 AD801128 */ sw $zero, 0x1128($t4) -.L7F064F94: -/* 097984 7F064F94 8CCE001C */ lw $t6, 0x1c($a2) -/* 097988 7F064F98 3C0D8007 */ lui $t5, %hi(g_CurrentPlayer) # $t5, 0x8007 -/* 09798C 7F064F9C 8DAD8BC0 */ lw $t5, %lo(g_CurrentPlayer)($t5) -/* 097990 7F064FA0 000E7880 */ sll $t7, $t6, 2 -/* 097994 7F064FA4 8E39002C */ lw $t9, 0x2c($s1) -/* 097998 7F064FA8 01AF1021 */ addu $v0, $t5, $t7 -/* 09799C 7F064FAC 8C581128 */ lw $t8, 0x1128($v0) -/* 0979A0 7F064FB0 8FAA002C */ lw $t2, 0x2c($sp) -/* 0979A4 7F064FB4 03194023 */ subu $t0, $t8, $t9 -/* 0979A8 7F064FB8 010A4821 */ addu $t1, $t0, $t2 -/* 0979AC 7F064FBC AC491128 */ sw $t1, 0x1128($v0) -.L7F064FC0: -/* 0979B0 7F064FC0 24010019 */ li $at, 25 -/* 0979B4 7F064FC4 56010006 */ bnel $s0, $at, .L7F064FE0 -/* 0979B8 7F064FC8 2401000F */ li $at, 15 -/* 0979BC 7F064FCC 0FC17FCD */ jal sub_GAME_7F05FA7C -/* 0979C0 7F064FD0 8FA40038 */ lw $a0, 0x38($sp) -/* 0979C4 7F064FD4 1000000F */ b .L7F065014 -/* 0979C8 7F064FD8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0979CC 7F064FDC 2401000F */ li $at, 15 -.L7F064FE0: -/* 0979D0 7F064FE0 12010003 */ beq $s0, $at, .L7F064FF0 -/* 0979D4 7F064FE4 24010010 */ li $at, 16 -/* 0979D8 7F064FE8 5601000A */ bnel $s0, $at, .L7F065014 -/* 0979DC 7F064FEC 8FBF001C */ lw $ra, 0x1c($sp) -.L7F064FF0: -/* 0979E0 7F064FF0 0FC1A6C2 */ jal get_ammo_in_hands_weapon -/* 0979E4 7F064FF4 8FA40038 */ lw $a0, 0x38($sp) -/* 0979E8 7F064FF8 28410005 */ slti $at, $v0, 5 -/* 0979EC 7F064FFC 14200003 */ bnez $at, .L7F06500C -/* 0979F0 7F065000 240B0005 */ li $t3, 5 -/* 0979F4 7F065004 10000002 */ b .L7F065010 -/* 0979F8 7F065008 AE2B0034 */ sw $t3, 0x34($s1) -.L7F06500C: -/* 0979FC 7F06500C AE220034 */ sw $v0, 0x34($s1) -.L7F065010: -/* 097A00 7F065010 8FBF001C */ lw $ra, 0x1c($sp) -.L7F065014: -/* 097A04 7F065014 8FB00014 */ lw $s0, 0x14($sp) -/* 097A08 7F065018 8FB10018 */ lw $s1, 0x18($sp) -/* 097A0C 7F06501C 03E00008 */ jr $ra -/* 097A10 7F065020 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif -#endif - - @@ -26644,484 +22037,87 @@ f32 get_depth_offset_solo_watch_menu_inventory_page_for_item(ITEM_IDS item) - - -#ifdef NONMATCHING -void sub_GAME_7F067174(void) { - -} -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F067174 -/* 09BCA4 7F067174 000478C0 */ sll $t7, $a0, 3 -/* 09BCA8 7F067178 01E47823 */ subu $t7, $t7, $a0 -/* 09BCAC 7F06717C 000F7880 */ sll $t7, $t7, 2 -/* 09BCB0 7F067180 01E47821 */ addu $t7, $t7, $a0 -/* 09BCB4 7F067184 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 09BCB8 7F067188 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09BCBC 7F06718C 000F7880 */ sll $t7, $t7, 2 -/* 09BCC0 7F067190 01E47821 */ addu $t7, $t7, $a0 -/* 09BCC4 7F067194 000F78C0 */ sll $t7, $t7, 3 -/* 09BCC8 7F067198 01CFC021 */ addu $t8, $t6, $t7 -/* 09BCCC 7F06719C 03E00008 */ jr $ra -/* 09BCD0 7F0671A0 C7000A80 */ lwc1 $f0, 0xa80($t8) -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F067174 -/* 09A30C 7F06791C 000478C0 */ sll $t7, $a0, 3 -/* 09A310 7F067920 01E47823 */ subu $t7, $t7, $a0 -/* 09A314 7F067924 000F7880 */ sll $t7, $t7, 2 -/* 09A318 7F067928 01E47821 */ addu $t7, $t7, $a0 -/* 09A31C 7F06792C 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 09A320 7F067930 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09A324 7F067934 000F7880 */ sll $t7, $t7, 2 -/* 09A328 7F067938 01E47821 */ addu $t7, $t7, $a0 -/* 09A32C 7F06793C 000F78C0 */ sll $t7, $t7, 3 -/* 09A330 7F067940 01CFC021 */ addu $t8, $t6, $t7 -/* 09A334 7F067944 03E00008 */ jr $ra -/* 09A338 7F067948 C7000A78 */ lwc1 $f0, 0xa78($t8) -) -#endif -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0671A4(void) - +f32 getCurrentPlayerNoise(GUNHAND hand) { - ITEM_IDS item; - ITEM_IDS item_00; - WeaponStats *pwVar2; - WeaponStats *pwVar3; - - float fVar4; - float fVar5; - - item = getCurrentPlayerWeaponId(0); - item_00 = getCurrentPlayerWeaponId(1); - pwVar2 = get_ptr_item_statistics(item); - pwVar3 = get_ptr_item_statistics(item_00); - if ((item != ITEM_UNARMED) && (get_hands_firing_status(0) != 0)) { - *(float *)&g_CurrentPlayer->noise = (float)g_CurrentPlayer->noise + pwVar2->field_5C; - if (pwVar2->loudness2 < (float)g_CurrentPlayer->noise) { - *(float *)&g_CurrentPlayer->noise = pwVar2->loudness2; - } - } - if ((item_00 != ITEM_UNARMED) && (get_hands_firing_status(1) != 0)) { - *(float *)&g_CurrentPlayer->field_E28 = (float)g_CurrentPlayer->field_E28 + pwVar3->field_5C; - if (pwVar3->loudness2 < (float)g_CurrentPlayer->field_E28) { - *(float *)&g_CurrentPlayer->field_E28 = pwVar3->loudness2; - } - } - fVar5 = (pwVar2->field_5C * g_GlobalTimerDelta) / (pwVar2->field_60 * 60.00000000); - fVar4 = (((float)g_CurrentPlayer->noise - pwVar2->loudness) * g_GlobalTimerDelta) / - (pwVar2->field_64 * 60.00000000); - if (fVar4 <= fVar5) { - fVar4 = fVar5; - } - *(float *)&g_CurrentPlayer->noise = (float)g_CurrentPlayer->noise - fVar4; - if ((float)g_CurrentPlayer->noise < pwVar2->loudness) { - *(float *)&g_CurrentPlayer->noise = pwVar2->loudness; - } - fVar5 = (pwVar3->field_5C * g_GlobalTimerDelta) / (pwVar3->field_60 * 60.00000000); - fVar4 = (((float)g_CurrentPlayer->field_E28 - pwVar3->loudness) * g_GlobalTimerDelta) / - (pwVar3->field_64 * 60.00000000); - if (fVar4 <= fVar5) { - fVar4 = fVar5; - } - *(float *)&g_CurrentPlayer->field_E28 = (float)g_CurrentPlayer->field_E28 - fVar4; - if ((float)g_CurrentPlayer->field_E28 < pwVar3->loudness) { - *(float *)&g_CurrentPlayer->field_E28 = pwVar3->loudness; - } - return; + return g_CurrentPlayer->hands[hand].noise; } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0671A4 -/* 09BCD4 7F0671A4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09BCD8 7F0671A8 AFBF0014 */ sw $ra, 0x14($sp) -/* 09BCDC 7F0671AC 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09BCE0 7F0671B0 00002025 */ move $a0, $zero -/* 09BCE4 7F0671B4 AFA2002C */ sw $v0, 0x2c($sp) -/* 09BCE8 7F0671B8 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09BCEC 7F0671BC 24040001 */ li $a0, 1 -/* 09BCF0 7F0671C0 AFA20028 */ sw $v0, 0x28($sp) -/* 09BCF4 7F0671C4 0FC1722D */ jal get_ptr_item_statistics -/* 09BCF8 7F0671C8 8FA4002C */ lw $a0, 0x2c($sp) -/* 09BCFC 7F0671CC 8FA40028 */ lw $a0, 0x28($sp) -/* 09BD00 7F0671D0 0FC1722D */ jal get_ptr_item_statistics -/* 09BD04 7F0671D4 AFA2001C */ sw $v0, 0x1c($sp) -/* 09BD08 7F0671D8 8FAE002C */ lw $t6, 0x2c($sp) -/* 09BD0C 7F0671DC 8FA3001C */ lw $v1, 0x1c($sp) -/* 09BD10 7F0671E0 00402825 */ move $a1, $v0 -/* 09BD14 7F0671E4 11C00016 */ beqz $t6, .L7F067240 -/* 09BD18 7F0671E8 00002025 */ move $a0, $zero -/* 09BD1C 7F0671EC AFA3001C */ sw $v1, 0x1c($sp) -/* 09BD20 7F0671F0 0FC17722 */ jal get_hands_firing_status -/* 09BD24 7F0671F4 AFA20018 */ sw $v0, 0x18($sp) -/* 09BD28 7F0671F8 8FA3001C */ lw $v1, 0x1c($sp) -/* 09BD2C 7F0671FC 10400010 */ beqz $v0, .L7F067240 -/* 09BD30 7F067200 8FA50018 */ lw $a1, 0x18($sp) -/* 09BD34 7F067204 3C068008 */ lui $a2, %hi(g_CurrentPlayer) -/* 09BD38 7F067208 24C6A0B0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x5f50 -/* 09BD3C 7F06720C 8CC20000 */ lw $v0, ($a2) -/* 09BD40 7F067210 C466005C */ lwc1 $f6, 0x5c($v1) -/* 09BD44 7F067214 C4440A80 */ lwc1 $f4, 0xa80($v0) -/* 09BD48 7F067218 46062200 */ add.s $f8, $f4, $f6 -/* 09BD4C 7F06721C E4480A80 */ swc1 $f8, 0xa80($v0) -/* 09BD50 7F067220 8CC20000 */ lw $v0, ($a2) -/* 09BD54 7F067224 C4600058 */ lwc1 $f0, 0x58($v1) -/* 09BD58 7F067228 C44A0A80 */ lwc1 $f10, 0xa80($v0) -/* 09BD5C 7F06722C 460A003C */ c.lt.s $f0, $f10 -/* 09BD60 7F067230 00000000 */ nop -/* 09BD64 7F067234 45020003 */ bc1fl .L7F067244 -/* 09BD68 7F067238 8FAF0028 */ lw $t7, 0x28($sp) -/* 09BD6C 7F06723C E4400A80 */ swc1 $f0, 0xa80($v0) -.L7F067240: -/* 09BD70 7F067240 8FAF0028 */ lw $t7, 0x28($sp) -.L7F067244: -/* 09BD74 7F067244 3C068008 */ lui $a2, %hi(g_CurrentPlayer) -/* 09BD78 7F067248 24C6A0B0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x5f50 -/* 09BD7C 7F06724C 11E00016 */ beqz $t7, .L7F0672A8 -/* 09BD80 7F067250 24040001 */ li $a0, 1 -/* 09BD84 7F067254 AFA3001C */ sw $v1, 0x1c($sp) -/* 09BD88 7F067258 0FC17722 */ jal get_hands_firing_status -/* 09BD8C 7F06725C AFA50018 */ sw $a1, 0x18($sp) -/* 09BD90 7F067260 3C068008 */ lui $a2, %hi(g_CurrentPlayer) -/* 09BD94 7F067264 24C6A0B0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x5f50 -/* 09BD98 7F067268 8FA3001C */ lw $v1, 0x1c($sp) -/* 09BD9C 7F06726C 1040000E */ beqz $v0, .L7F0672A8 -/* 09BDA0 7F067270 8FA50018 */ lw $a1, 0x18($sp) -/* 09BDA4 7F067274 8CC20000 */ lw $v0, ($a2) -/* 09BDA8 7F067278 C4A4005C */ lwc1 $f4, 0x5c($a1) -/* 09BDAC 7F06727C C4520E28 */ lwc1 $f18, 0xe28($v0) -/* 09BDB0 7F067280 46049180 */ add.s $f6, $f18, $f4 -/* 09BDB4 7F067284 E4460E28 */ swc1 $f6, 0xe28($v0) -/* 09BDB8 7F067288 8CC20000 */ lw $v0, ($a2) -/* 09BDBC 7F06728C C4A00058 */ lwc1 $f0, 0x58($a1) -/* 09BDC0 7F067290 C4480E28 */ lwc1 $f8, 0xe28($v0) -/* 09BDC4 7F067294 4608003C */ c.lt.s $f0, $f8 -/* 09BDC8 7F067298 00000000 */ nop -/* 09BDCC 7F06729C 45000002 */ bc1f .L7F0672A8 -/* 09BDD0 7F0672A0 00000000 */ nop -/* 09BDD4 7F0672A4 E4400E28 */ swc1 $f0, 0xe28($v0) -.L7F0672A8: -/* 09BDD8 7F0672A8 3C048005 */ lui $a0, %hi(g_GlobalTimerDelta) -/* 09BDDC 7F0672AC 24848378 */ addiu $a0, %lo(g_GlobalTimerDelta) # addiu $a0, $a0, -0x7c88 -/* 09BDE0 7F0672B0 C4800000 */ lwc1 $f0, ($a0) -/* 09BDE4 7F0672B4 C46A005C */ lwc1 $f10, 0x5c($v1) -/* 09BDE8 7F0672B8 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 09BDEC 7F0672BC 44818000 */ mtc1 $at, $f16 -/* 09BDF0 7F0672C0 46005482 */ mul.s $f18, $f10, $f0 -/* 09BDF4 7F0672C4 C4640060 */ lwc1 $f4, 0x60($v1) -/* 09BDF8 7F0672C8 8CC20000 */ lw $v0, ($a2) -/* 09BDFC 7F0672CC C4680054 */ lwc1 $f8, 0x54($v1) -/* 09BE00 7F0672D0 46102182 */ mul.s $f6, $f4, $f16 -/* 09BE04 7F0672D4 C44E0A80 */ lwc1 $f14, 0xa80($v0) -/* 09BE08 7F0672D8 46087281 */ sub.s $f10, $f14, $f8 -/* 09BE0C 7F0672DC 46069303 */ div.s $f12, $f18, $f6 -/* 09BE10 7F0672E0 C4720064 */ lwc1 $f18, 0x64($v1) -/* 09BE14 7F0672E4 46005102 */ mul.s $f4, $f10, $f0 -/* 09BE18 7F0672E8 00000000 */ nop -/* 09BE1C 7F0672EC 46109182 */ mul.s $f6, $f18, $f16 -/* 09BE20 7F0672F0 46062083 */ div.s $f2, $f4, $f6 -/* 09BE24 7F0672F4 4602603C */ c.lt.s $f12, $f2 -/* 09BE28 7F0672F8 00000000 */ nop -/* 09BE2C 7F0672FC 45000002 */ bc1f .L7F067308 -/* 09BE30 7F067300 00000000 */ nop -/* 09BE34 7F067304 46001306 */ mov.s $f12, $f2 -.L7F067308: -/* 09BE38 7F067308 460C7201 */ sub.s $f8, $f14, $f12 -/* 09BE3C 7F06730C E4480A80 */ swc1 $f8, 0xa80($v0) -/* 09BE40 7F067310 8CC20000 */ lw $v0, ($a2) -/* 09BE44 7F067314 C4600054 */ lwc1 $f0, 0x54($v1) -/* 09BE48 7F067318 C44A0A80 */ lwc1 $f10, 0xa80($v0) -/* 09BE4C 7F06731C 4600503C */ c.lt.s $f10, $f0 -/* 09BE50 7F067320 00000000 */ nop -/* 09BE54 7F067324 45020004 */ bc1fl .L7F067338 -/* 09BE58 7F067328 C4800000 */ lwc1 $f0, ($a0) -/* 09BE5C 7F06732C E4400A80 */ swc1 $f0, 0xa80($v0) -/* 09BE60 7F067330 8CC20000 */ lw $v0, ($a2) -/* 09BE64 7F067334 C4800000 */ lwc1 $f0, ($a0) -.L7F067338: -/* 09BE68 7F067338 C4B2005C */ lwc1 $f18, 0x5c($a1) -/* 09BE6C 7F06733C C4A60060 */ lwc1 $f6, 0x60($a1) -/* 09BE70 7F067340 C44E0E28 */ lwc1 $f14, 0xe28($v0) -/* 09BE74 7F067344 46009102 */ mul.s $f4, $f18, $f0 -/* 09BE78 7F067348 C4AA0054 */ lwc1 $f10, 0x54($a1) -/* 09BE7C 7F06734C 46103202 */ mul.s $f8, $f6, $f16 -/* 09BE80 7F067350 460A7481 */ sub.s $f18, $f14, $f10 -/* 09BE84 7F067354 46009182 */ mul.s $f6, $f18, $f0 -/* 09BE88 7F067358 46082303 */ div.s $f12, $f4, $f8 -/* 09BE8C 7F06735C C4A40064 */ lwc1 $f4, 0x64($a1) -/* 09BE90 7F067360 46102202 */ mul.s $f8, $f4, $f16 -/* 09BE94 7F067364 46083083 */ div.s $f2, $f6, $f8 -/* 09BE98 7F067368 4602603C */ c.lt.s $f12, $f2 -/* 09BE9C 7F06736C 00000000 */ nop -/* 09BEA0 7F067370 45020003 */ bc1fl .L7F067380 -/* 09BEA4 7F067374 460C7281 */ sub.s $f10, $f14, $f12 -/* 09BEA8 7F067378 46001306 */ mov.s $f12, $f2 -/* 09BEAC 7F06737C 460C7281 */ sub.s $f10, $f14, $f12 -.L7F067380: -/* 09BEB0 7F067380 E44A0E28 */ swc1 $f10, 0xe28($v0) -/* 09BEB4 7F067384 8CC20000 */ lw $v0, ($a2) -/* 09BEB8 7F067388 C4A00054 */ lwc1 $f0, 0x54($a1) -/* 09BEBC 7F06738C C4520E28 */ lwc1 $f18, 0xe28($v0) -/* 09BEC0 7F067390 4600903C */ c.lt.s $f18, $f0 -/* 09BEC4 7F067394 00000000 */ nop -/* 09BEC8 7F067398 45020003 */ bc1fl .L7F0673A8 -/* 09BECC 7F06739C 8FBF0014 */ lw $ra, 0x14($sp) -/* 09BED0 7F0673A0 E4400E28 */ swc1 $f0, 0xe28($v0) -/* 09BED4 7F0673A4 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0673A8: -/* 09BED8 7F0673A8 27BD0030 */ addiu $sp, $sp, 0x30 -/* 09BEDC 7F0673AC 03E00008 */ jr $ra -/* 09BEE0 7F0673B0 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0671A4 -/* 09A33C 7F06794C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09A340 7F067950 AFBF0014 */ sw $ra, 0x14($sp) -/* 09A344 7F067954 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09A348 7F067958 00002025 */ move $a0, $zero -/* 09A34C 7F06795C AFA2002C */ sw $v0, 0x2c($sp) -/* 09A350 7F067960 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09A354 7F067964 24040001 */ li $a0, 1 -/* 09A358 7F067968 AFA20028 */ sw $v0, 0x28($sp) -/* 09A35C 7F06796C 0FC17359 */ jal get_ptr_item_statistics -/* 09A360 7F067970 8FA4002C */ lw $a0, 0x2c($sp) -/* 09A364 7F067974 8FA40028 */ lw $a0, 0x28($sp) -/* 09A368 7F067978 0FC17359 */ jal get_ptr_item_statistics -/* 09A36C 7F06797C AFA2001C */ sw $v0, 0x1c($sp) -/* 09A370 7F067980 8FAE002C */ lw $t6, 0x2c($sp) -/* 09A374 7F067984 8FA3001C */ lw $v1, 0x1c($sp) -/* 09A378 7F067988 00402825 */ move $a1, $v0 -/* 09A37C 7F06798C 11C00016 */ beqz $t6, .L7F0679E8 -/* 09A380 7F067990 00002025 */ move $a0, $zero -/* 09A384 7F067994 AFA3001C */ sw $v1, 0x1c($sp) -/* 09A388 7F067998 0FC17850 */ jal get_hands_firing_status -/* 09A38C 7F06799C AFA20018 */ sw $v0, 0x18($sp) -/* 09A390 7F0679A0 8FA3001C */ lw $v1, 0x1c($sp) -/* 09A394 7F0679A4 10400010 */ beqz $v0, .L7F0679E8 -/* 09A398 7F0679A8 8FA50018 */ lw $a1, 0x18($sp) -/* 09A39C 7F0679AC 3C068007 */ lui $a2, %hi(g_CurrentPlayer) # $a2, 0x8007 -/* 09A3A0 7F0679B0 24C68BC0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x7440 -/* 09A3A4 7F0679B4 8CC20000 */ lw $v0, ($a2) -/* 09A3A8 7F0679B8 C466005C */ lwc1 $f6, 0x5c($v1) -/* 09A3AC 7F0679BC C4440A78 */ lwc1 $f4, 0xa78($v0) -/* 09A3B0 7F0679C0 46062200 */ add.s $f8, $f4, $f6 -/* 09A3B4 7F0679C4 E4480A78 */ swc1 $f8, 0xa78($v0) -/* 09A3B8 7F0679C8 8CC20000 */ lw $v0, ($a2) -/* 09A3BC 7F0679CC C4600058 */ lwc1 $f0, 0x58($v1) -/* 09A3C0 7F0679D0 C44A0A78 */ lwc1 $f10, 0xa78($v0) -/* 09A3C4 7F0679D4 460A003C */ c.lt.s $f0, $f10 -/* 09A3C8 7F0679D8 00000000 */ nop -/* 09A3CC 7F0679DC 45020003 */ bc1fl .L7F0679EC -/* 09A3D0 7F0679E0 8FAF0028 */ lw $t7, 0x28($sp) -/* 09A3D4 7F0679E4 E4400A78 */ swc1 $f0, 0xa78($v0) -.L7F0679E8: -/* 09A3D8 7F0679E8 8FAF0028 */ lw $t7, 0x28($sp) -.L7F0679EC: -/* 09A3DC 7F0679EC 3C068007 */ lui $a2, %hi(g_CurrentPlayer) # $a2, 0x8007 -/* 09A3E0 7F0679F0 24C68BC0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x7440 -/* 09A3E4 7F0679F4 11E00016 */ beqz $t7, .L7F067A50 -/* 09A3E8 7F0679F8 24040001 */ li $a0, 1 -/* 09A3EC 7F0679FC AFA3001C */ sw $v1, 0x1c($sp) -/* 09A3F0 7F067A00 0FC17850 */ jal get_hands_firing_status -/* 09A3F4 7F067A04 AFA50018 */ sw $a1, 0x18($sp) -/* 09A3F8 7F067A08 3C068007 */ lui $a2, %hi(g_CurrentPlayer) # $a2, 0x8007 -/* 09A3FC 7F067A0C 24C68BC0 */ addiu $a2, %lo(g_CurrentPlayer) # addiu $a2, $a2, -0x7440 -/* 09A400 7F067A10 8FA3001C */ lw $v1, 0x1c($sp) -/* 09A404 7F067A14 1040000E */ beqz $v0, .L7F067A50 -/* 09A408 7F067A18 8FA50018 */ lw $a1, 0x18($sp) -/* 09A40C 7F067A1C 8CC20000 */ lw $v0, ($a2) -/* 09A410 7F067A20 C4A4005C */ lwc1 $f4, 0x5c($a1) -/* 09A414 7F067A24 C4520E20 */ lwc1 $f18, 0xe20($v0) -/* 09A418 7F067A28 46049180 */ add.s $f6, $f18, $f4 -/* 09A41C 7F067A2C E4460E20 */ swc1 $f6, 0xe20($v0) -/* 09A420 7F067A30 8CC20000 */ lw $v0, ($a2) -/* 09A424 7F067A34 C4A00058 */ lwc1 $f0, 0x58($a1) -/* 09A428 7F067A38 C4480E20 */ lwc1 $f8, 0xe20($v0) -/* 09A42C 7F067A3C 4608003C */ c.lt.s $f0, $f8 -/* 09A430 7F067A40 00000000 */ nop -/* 09A434 7F067A44 45000002 */ bc1f .L7F067A50 -/* 09A438 7F067A48 00000000 */ nop -/* 09A43C 7F067A4C E4400E20 */ swc1 $f0, 0xe20($v0) -.L7F067A50: -/* 09A440 7F067A50 3C048004 */ lui $a0, %hi(g_GlobalTimerDelta) # $a0, 0x8004 -/* 09A444 7F067A54 24841004 */ addiu $a0, %lo(g_GlobalTimerDelta) # addiu $a0, $a0, 0x1004 -/* 09A448 7F067A58 C4800000 */ lwc1 $f0, ($a0) -/* 09A44C 7F067A5C C46A005C */ lwc1 $f10, 0x5c($v1) -/* 09A450 7F067A60 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 09A454 7F067A64 44818000 */ mtc1 $at, $f16 -/* 09A458 7F067A68 46005482 */ mul.s $f18, $f10, $f0 -/* 09A45C 7F067A6C C4640060 */ lwc1 $f4, 0x60($v1) -/* 09A460 7F067A70 8CC20000 */ lw $v0, ($a2) -/* 09A464 7F067A74 C4680054 */ lwc1 $f8, 0x54($v1) -/* 09A468 7F067A78 46102182 */ mul.s $f6, $f4, $f16 -/* 09A46C 7F067A7C C44E0A78 */ lwc1 $f14, 0xa78($v0) -/* 09A470 7F067A80 46087281 */ sub.s $f10, $f14, $f8 -/* 09A474 7F067A84 46069303 */ div.s $f12, $f18, $f6 -/* 09A478 7F067A88 C4720064 */ lwc1 $f18, 0x64($v1) -/* 09A47C 7F067A8C 46005102 */ mul.s $f4, $f10, $f0 -/* 09A480 7F067A90 00000000 */ nop -/* 09A484 7F067A94 46109182 */ mul.s $f6, $f18, $f16 -/* 09A488 7F067A98 46062083 */ div.s $f2, $f4, $f6 -/* 09A48C 7F067A9C 4602603C */ c.lt.s $f12, $f2 -/* 09A490 7F067AA0 00000000 */ nop -/* 09A494 7F067AA4 45000002 */ bc1f .L7F067AB0 -/* 09A498 7F067AA8 00000000 */ nop -/* 09A49C 7F067AAC 46001306 */ mov.s $f12, $f2 -.L7F067AB0: -/* 09A4A0 7F067AB0 460C7201 */ sub.s $f8, $f14, $f12 -/* 09A4A4 7F067AB4 E4480A78 */ swc1 $f8, 0xa78($v0) -/* 09A4A8 7F067AB8 8CC20000 */ lw $v0, ($a2) -/* 09A4AC 7F067ABC C4600054 */ lwc1 $f0, 0x54($v1) -/* 09A4B0 7F067AC0 C44A0A78 */ lwc1 $f10, 0xa78($v0) -/* 09A4B4 7F067AC4 4600503C */ c.lt.s $f10, $f0 -/* 09A4B8 7F067AC8 00000000 */ nop -/* 09A4BC 7F067ACC 45020004 */ bc1fl .L7F067AE0 -/* 09A4C0 7F067AD0 C4800000 */ lwc1 $f0, ($a0) -/* 09A4C4 7F067AD4 E4400A78 */ swc1 $f0, 0xa78($v0) -/* 09A4C8 7F067AD8 8CC20000 */ lw $v0, ($a2) -/* 09A4CC 7F067ADC C4800000 */ lwc1 $f0, ($a0) -.L7F067AE0: -/* 09A4D0 7F067AE0 C4B2005C */ lwc1 $f18, 0x5c($a1) -/* 09A4D4 7F067AE4 C4A60060 */ lwc1 $f6, 0x60($a1) -/* 09A4D8 7F067AE8 C44E0E20 */ lwc1 $f14, 0xe20($v0) -/* 09A4DC 7F067AEC 46009102 */ mul.s $f4, $f18, $f0 -/* 09A4E0 7F067AF0 C4AA0054 */ lwc1 $f10, 0x54($a1) -/* 09A4E4 7F067AF4 46103202 */ mul.s $f8, $f6, $f16 -/* 09A4E8 7F067AF8 460A7481 */ sub.s $f18, $f14, $f10 -/* 09A4EC 7F067AFC 46009182 */ mul.s $f6, $f18, $f0 -/* 09A4F0 7F067B00 46082303 */ div.s $f12, $f4, $f8 -/* 09A4F4 7F067B04 C4A40064 */ lwc1 $f4, 0x64($a1) -/* 09A4F8 7F067B08 46102202 */ mul.s $f8, $f4, $f16 -/* 09A4FC 7F067B0C 46083083 */ div.s $f2, $f6, $f8 -/* 09A500 7F067B10 4602603C */ c.lt.s $f12, $f2 -/* 09A504 7F067B14 00000000 */ nop -/* 09A508 7F067B18 45020003 */ bc1fl .L7F067B28 -/* 09A50C 7F067B1C 460C7281 */ sub.s $f10, $f14, $f12 -/* 09A510 7F067B20 46001306 */ mov.s $f12, $f2 -/* 09A514 7F067B24 460C7281 */ sub.s $f10, $f14, $f12 -.L7F067B28: -/* 09A518 7F067B28 E44A0E20 */ swc1 $f10, 0xe20($v0) -/* 09A51C 7F067B2C 8CC20000 */ lw $v0, ($a2) -/* 09A520 7F067B30 C4A00054 */ lwc1 $f0, 0x54($a1) -/* 09A524 7F067B34 C4520E20 */ lwc1 $f18, 0xe20($v0) -/* 09A528 7F067B38 4600903C */ c.lt.s $f18, $f0 -/* 09A52C 7F067B3C 00000000 */ nop -/* 09A530 7F067B40 45020003 */ bc1fl .L7F067B50 -/* 09A534 7F067B44 8FBF0014 */ lw $ra, 0x14($sp) -/* 09A538 7F067B48 E4400E20 */ swc1 $f0, 0xe20($v0) -/* 09A53C 7F067B4C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F067B50: -/* 09A540 7F067B50 27BD0030 */ addiu $sp, $sp, 0x30 -/* 09A544 7F067B54 03E00008 */ jr $ra -/* 09A548 7F067B58 00000000 */ nop -) -#endif -#endif +void sub_GAME_7F0671A4(void) +{ + enum ITEM_IDS weapon_id_right; + enum ITEM_IDS weapon_id_left; + s32 unused2; + f32 noise_reduction; + WeaponStats *item_right; + WeaponStats *item_left; + f32 noise_reduction_max; + s32 unused; + weapon_id_right = getCurrentPlayerWeaponId(GUNRIGHT); + weapon_id_left = getCurrentPlayerWeaponId(GUNLEFT); + item_right = get_ptr_item_statistics(weapon_id_right); + item_left = get_ptr_item_statistics(weapon_id_left); + if (weapon_id_right != ITEM_UNARMED && get_hands_firing_status(GUNRIGHT)) + { + g_CurrentPlayer->hands[GUNRIGHT].noise += item_right->NoiseIncreasePerShot; -#ifdef NONMATCHING -void sub_GAME_7F0673B4(void) { + if (item_right->LoudnessMax < g_CurrentPlayer->hands[GUNRIGHT].noise) + { + g_CurrentPlayer->hands[GUNRIGHT].noise = item_right->LoudnessMax; + } + } + if (weapon_id_left != ITEM_UNARMED && get_hands_firing_status(GUNLEFT)) + { + g_CurrentPlayer->hands[GUNLEFT].noise += item_left->NoiseIncreasePerShot; + + if (item_left->LoudnessMax < g_CurrentPlayer->hands[GUNLEFT].noise) + { + g_CurrentPlayer->hands[GUNLEFT].noise = item_left->LoudnessMax; + } + } + + noise_reduction = (item_right->NoiseIncreasePerShot * g_GlobalTimerDelta) / (item_right->field_60 * 60.0f); + noise_reduction_max = ((g_CurrentPlayer->hands[GUNRIGHT].noise - item_right->LoudnessMin) * g_GlobalTimerDelta) / (item_right->field_64 * 60.0f); + + if (noise_reduction < noise_reduction_max) + { + noise_reduction = noise_reduction_max; + } + + g_CurrentPlayer->hands[GUNRIGHT].noise -= noise_reduction; + + if (g_CurrentPlayer->hands[GUNRIGHT].noise < item_right->LoudnessMin) + { + g_CurrentPlayer->hands[GUNRIGHT].noise = item_right->LoudnessMin; + } + + noise_reduction = (item_left->NoiseIncreasePerShot * g_GlobalTimerDelta) / (item_left->field_60 * 60.0f); + noise_reduction_max = ((g_CurrentPlayer->hands[GUNLEFT].noise - item_left->LoudnessMin) * g_GlobalTimerDelta) / (item_left->field_64 * 60.0f); + + if (noise_reduction < noise_reduction_max) + { + noise_reduction = noise_reduction_max; + } + + g_CurrentPlayer->hands[GUNLEFT].noise -= noise_reduction; + + if (g_CurrentPlayer->hands[GUNLEFT].noise < item_left->LoudnessMin) + { + g_CurrentPlayer->hands[GUNLEFT].noise = item_left->LoudnessMin; + } } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0673B4 -/* 09BEE4 7F0673B4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09BEE8 7F0673B8 AFBF0014 */ sw $ra, 0x14($sp) -/* 09BEEC 7F0673BC 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09BEF0 7F0673C0 AFA40018 */ sw $a0, 0x18($sp) -/* 09BEF4 7F0673C4 0FC1A50B */ jal get_ammo_type_for_weapon -/* 09BEF8 7F0673C8 00402025 */ move $a0, $v0 -/* 09BEFC 7F0673CC 2C4E0001 */ sltiu $t6, $v0, 1 -/* 09BF00 7F0673D0 15C0000F */ bnez $t6, .L7F067410 -/* 09BF04 7F0673D4 01C01025 */ move $v0, $t6 -/* 09BF08 7F0673D8 8FB80018 */ lw $t8, 0x18($sp) -/* 09BF0C 7F0673DC 3C0F8008 */ lui $t7, %hi(g_CurrentPlayer) -/* 09BF10 7F0673E0 8DEFA0B0 */ lw $t7, %lo(g_CurrentPlayer)($t7) -/* 09BF14 7F0673E4 0018C8C0 */ sll $t9, $t8, 3 -/* 09BF18 7F0673E8 0338C823 */ subu $t9, $t9, $t8 -/* 09BF1C 7F0673EC 0019C880 */ sll $t9, $t9, 2 -/* 09BF20 7F0673F0 0338C821 */ addu $t9, $t9, $t8 -/* 09BF24 7F0673F4 0019C880 */ sll $t9, $t9, 2 -/* 09BF28 7F0673F8 0338C821 */ addu $t9, $t9, $t8 -/* 09BF2C 7F0673FC 0019C8C0 */ sll $t9, $t9, 3 -/* 09BF30 7F067400 01F94021 */ addu $t0, $t7, $t9 -/* 09BF34 7F067404 8D02089C */ lw $v0, 0x89c($t0) -/* 09BF38 7F067408 0002482A */ slt $t1, $zero, $v0 -/* 09BF3C 7F06740C 01201025 */ move $v0, $t1 -.L7F067410: -/* 09BF40 7F067410 8FBF0014 */ lw $ra, 0x14($sp) -/* 09BF44 7F067414 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09BF48 7F067418 03E00008 */ jr $ra -/* 09BF4C 7F06741C 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0673B4 -/* 09A54C 7F067B5C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09A550 7F067B60 AFBF0014 */ sw $ra, 0x14($sp) -/* 09A554 7F067B64 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09A558 7F067B68 AFA40018 */ sw $a0, 0x18($sp) -/* 09A55C 7F067B6C 0FC1A6F0 */ jal get_ammo_type_for_weapon -/* 09A560 7F067B70 00402025 */ move $a0, $v0 -/* 09A564 7F067B74 2C4E0001 */ sltiu $t6, $v0, 1 -/* 09A568 7F067B78 15C0000F */ bnez $t6, .L7F067BB8 -/* 09A56C 7F067B7C 01C01025 */ move $v0, $t6 -/* 09A570 7F067B80 8FB80018 */ lw $t8, 0x18($sp) -/* 09A574 7F067B84 3C0F8007 */ lui $t7, %hi(g_CurrentPlayer) # $t7, 0x8007 -/* 09A578 7F067B88 8DEF8BC0 */ lw $t7, %lo(g_CurrentPlayer)($t7) -/* 09A57C 7F067B8C 0018C8C0 */ sll $t9, $t8, 3 -/* 09A580 7F067B90 0338C823 */ subu $t9, $t9, $t8 -/* 09A584 7F067B94 0019C880 */ sll $t9, $t9, 2 -/* 09A588 7F067B98 0338C821 */ addu $t9, $t9, $t8 -/* 09A58C 7F067B9C 0019C880 */ sll $t9, $t9, 2 -/* 09A590 7F067BA0 0338C821 */ addu $t9, $t9, $t8 -/* 09A594 7F067BA4 0019C8C0 */ sll $t9, $t9, 3 -/* 09A598 7F067BA8 01F94021 */ addu $t0, $t7, $t9 -/* 09A59C 7F067BAC 8D020894 */ lw $v0, 0x894($t0) -/* 09A5A0 7F067BB0 0002482A */ slt $t1, $zero, $v0 -/* 09A5A4 7F067BB4 01201025 */ move $v0, $t1 -.L7F067BB8: -/* 09A5A8 7F067BB8 8FBF0014 */ lw $ra, 0x14($sp) -/* 09A5AC 7F067BBC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09A5B0 7F067BC0 03E00008 */ jr $ra -/* 09A5B4 7F067BC4 00000000 */ nop -) -#endif -#endif +s32 sub_GAME_7F0673B4(enum GUNHAND hand) +{ + return (get_ammo_type_for_weapon(getCurrentPlayerWeaponId(hand)) == 0) + || (g_CurrentPlayer->hands[hand].weapon_ammo_in_magazine > 0); +} + #ifdef NONMATCHING @@ -28067,993 +23063,175 @@ void sub_GAME_7F067AB4(coord3d *param_1) } - - -#ifdef NONMATCHING -void sub_GAME_7F067B4C(void) { - +void sub_GAME_7F067B4C(coord3d* pos) +{ + g_CurrentPlayer->hands[GUNLEFT].item_related.x = g_CurrentPlayer->hands[GUNRIGHT].item_related.x = pos->x; + g_CurrentPlayer->hands[GUNLEFT].item_related.y = g_CurrentPlayer->hands[GUNRIGHT].item_related.y = pos->y; + g_CurrentPlayer->hands[GUNLEFT].item_related.z = g_CurrentPlayer->hands[GUNRIGHT].item_related.z = pos->z; } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F067B4C -/* 09C67C 7F067B4C 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 09C680 7F067B50 2442A0B0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x5f50 -/* 09C684 7F067B54 8C4E0000 */ lw $t6, ($v0) -/* 09C688 7F067B58 C4800000 */ lwc1 $f0, ($a0) -/* 09C68C 7F067B5C E5C00C0C */ swc1 $f0, 0xc0c($t6) -/* 09C690 7F067B60 8C4F0000 */ lw $t7, ($v0) -/* 09C694 7F067B64 E5E00FB4 */ swc1 $f0, 0xfb4($t7) -/* 09C698 7F067B68 8C580000 */ lw $t8, ($v0) -/* 09C69C 7F067B6C C4800004 */ lwc1 $f0, 4($a0) -/* 09C6A0 7F067B70 E7000C10 */ swc1 $f0, 0xc10($t8) -/* 09C6A4 7F067B74 8C590000 */ lw $t9, ($v0) -/* 09C6A8 7F067B78 E7200FB8 */ swc1 $f0, 0xfb8($t9) -/* 09C6AC 7F067B7C 8C480000 */ lw $t0, ($v0) -/* 09C6B0 7F067B80 C4800008 */ lwc1 $f0, 8($a0) -/* 09C6B4 7F067B84 E5000C14 */ swc1 $f0, 0xc14($t0) -/* 09C6B8 7F067B88 8C490000 */ lw $t1, ($v0) -/* 09C6BC 7F067B8C 03E00008 */ jr $ra -/* 09C6C0 7F067B90 E5200FBC */ swc1 $f0, 0xfbc($t1) -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F067B4C -/* 09ACE4 7F0682F4 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 09ACE8 7F0682F8 24428BC0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x7440 -/* 09ACEC 7F0682FC 8C4E0000 */ lw $t6, ($v0) -/* 09ACF0 7F068300 C4800000 */ lwc1 $f0, ($a0) -/* 09ACF4 7F068304 E5C00C04 */ swc1 $f0, 0xc04($t6) -/* 09ACF8 7F068308 8C4F0000 */ lw $t7, ($v0) -/* 09ACFC 7F06830C E5E00FAC */ swc1 $f0, 0xfac($t7) -/* 09AD00 7F068310 8C580000 */ lw $t8, ($v0) -/* 09AD04 7F068314 C4800004 */ lwc1 $f0, 4($a0) -/* 09AD08 7F068318 E7000C08 */ swc1 $f0, 0xc08($t8) -/* 09AD0C 7F06831C 8C590000 */ lw $t9, ($v0) -/* 09AD10 7F068320 E7200FB0 */ swc1 $f0, 0xfb0($t9) -/* 09AD14 7F068324 8C480000 */ lw $t0, ($v0) -/* 09AD18 7F068328 C4800008 */ lwc1 $f0, 8($a0) -/* 09AD1C 7F06832C E5000C0C */ swc1 $f0, 0xc0c($t0) -/* 09AD20 7F068330 8C490000 */ lw $t1, ($v0) -/* 09AD24 7F068334 03E00008 */ jr $ra -/* 09AD28 7F068338 E5200FB4 */ swc1 $f0, 0xfb4($t1) -) -#endif -#endif +void caclulate_gun_crosshair_position_rotation(f32 turn_x, f32 turn_y, f32 guncrossdamp, f32 gunaimdamp) +{ + s32 i; + f32 screen_width; + f32 screen_height; + coord3d coords; + screen_width = getPlayer_c_screenwidth(); + screen_height = getPlayer_c_screenheight(); + if (guncrossdamp != g_CurrentPlayer->guncrossdamp) + { + g_CurrentPlayer->crosshair_x_pos = (g_CurrentPlayer->crosshair_x_pos * (1.0f - g_CurrentPlayer->guncrossdamp)) / (1.0f - guncrossdamp); + g_CurrentPlayer->crosshair_y_pos = (g_CurrentPlayer->crosshair_y_pos * (1.0f - g_CurrentPlayer->guncrossdamp)) / (1.0f - guncrossdamp); + g_CurrentPlayer->guncrossdamp = guncrossdamp; + } -#ifdef NONMATCHING -void caclulate_gun_crosshair_position_rotation(void) { + if (gunaimdamp != g_CurrentPlayer->gunaimdamp) + { + g_CurrentPlayer->gun_azimuth_angle = (g_CurrentPlayer->gun_azimuth_angle * (1.0f - g_CurrentPlayer->gunaimdamp)) / (1.0f - gunaimdamp); + g_CurrentPlayer->gun_azimuth_turning = (g_CurrentPlayer->gun_azimuth_turning * (1.0f - g_CurrentPlayer->gunaimdamp)) / (1.0f - gunaimdamp); + g_CurrentPlayer->gunaimdamp = gunaimdamp; + } + for (i = 0; i < g_ClockTimer; i++) + { + g_CurrentPlayer->crosshair_x_pos = (g_CurrentPlayer->crosshair_x_pos * guncrossdamp) + turn_x; + g_CurrentPlayer->crosshair_y_pos = (g_CurrentPlayer->crosshair_y_pos * guncrossdamp) + turn_y; + } + + g_CurrentPlayer->crosshair_angle.f[0] = (g_CurrentPlayer->crosshair_x_pos * (1.0f - guncrossdamp) * screen_width * 0.5f) + (screen_width * 0.5f); + g_CurrentPlayer->crosshair_angle.f[1] = (g_CurrentPlayer->crosshair_y_pos * (1.0f - guncrossdamp) * screen_height * 0.5f) + (screen_height * 0.5f); + + if (g_CurrentPlayer->crosshair_angle.f[0] < 3.0f) + { + g_CurrentPlayer->crosshair_angle.f[0] = 3.0f; + } + else if ((screen_width - 4.0f) < g_CurrentPlayer->crosshair_angle.f[0]) + { + g_CurrentPlayer->crosshair_angle.f[0] = screen_width - 4.0f; + } + + if (g_CurrentPlayer->crosshair_angle.f[1] < 3.0f) + { + g_CurrentPlayer->crosshair_angle.f[1] = 3.0f; + } + else if ((screen_height - 4.0f) < g_CurrentPlayer->crosshair_angle.f[1]) + { + g_CurrentPlayer->crosshair_angle.f[1] = (screen_height - 4.0f); + } + + g_CurrentPlayer->crosshair_angle.f[0] += getPlayer_c_screenleft(); + g_CurrentPlayer->crosshair_angle.f[1] += getPlayer_c_screentop(); + + for (i = 0; i < g_ClockTimer; i++) + { + g_CurrentPlayer->gun_azimuth_angle = (g_CurrentPlayer->gun_azimuth_angle * gunaimdamp) + turn_x; + g_CurrentPlayer->gun_azimuth_turning = (g_CurrentPlayer->gun_azimuth_turning * gunaimdamp) + turn_y; + } + + g_CurrentPlayer->field_FFC.x = (g_CurrentPlayer->gun_azimuth_angle * (1.0f - gunaimdamp) * screen_width * 0.5f) + (screen_width * 0.5f); + g_CurrentPlayer->field_FFC.y = (g_CurrentPlayer->gun_azimuth_turning * (1.0f - gunaimdamp) * screen_height * 0.5f) + (screen_height * 0.5f); + + g_CurrentPlayer->field_FFC.x += getPlayer_c_screenleft(); + g_CurrentPlayer->field_FFC.y += getPlayer_c_screentop(); + + sub_GAME_7F077EEC(&g_CurrentPlayer->field_FFC, &coords, 1000.0f); + sub_GAME_7F067AB4(&coords); } -#else + + + +void sub_GAME_7F067F58(f32 turn_x, f32 turn_y, f32 max_aim_lock_speed) +{ + f32 aim_lock_speed; #if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel caclulate_gun_crosshair_position_rotation -/* 09C6C4 7F067B94 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 09C6C8 7F067B98 F7B60018 */ sdc1 $f22, 0x18($sp) -/* 09C6CC 7F067B9C F7B40010 */ sdc1 $f20, 0x10($sp) -/* 09C6D0 7F067BA0 4486A000 */ mtc1 $a2, $f20 -/* 09C6D4 7F067BA4 4487B000 */ mtc1 $a3, $f22 -/* 09C6D8 7F067BA8 AFBF0024 */ sw $ra, 0x24($sp) -/* 09C6DC 7F067BAC E7AC0058 */ swc1 $f12, 0x58($sp) -/* 09C6E0 7F067BB0 0FC1E129 */ jal getPlayer_c_screenwidth -/* 09C6E4 7F067BB4 E7AE005C */ swc1 $f14, 0x5c($sp) -/* 09C6E8 7F067BB8 0FC1E12D */ jal getPlayer_c_screenheight -/* 09C6EC 7F067BBC E7A00050 */ swc1 $f0, 0x50($sp) -/* 09C6F0 7F067BC0 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 09C6F4 7F067BC4 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 09C6F8 7F067BC8 8CE20000 */ lw $v0, ($a3) -/* 09C6FC 7F067BCC E7A0004C */ swc1 $f0, 0x4c($sp) -/* 09C700 7F067BD0 C7AC0058 */ lwc1 $f12, 0x58($sp) -/* 09C704 7F067BD4 C4520FF8 */ lwc1 $f18, 0xff8($v0) -/* 09C708 7F067BD8 C7AE005C */ lwc1 $f14, 0x5c($sp) -/* 09C70C 7F067BDC 3C048005 */ lui $a0, %hi(g_ClockTimer) -/* 09C710 7F067BE0 4612A032 */ c.eq.s $f20, $f18 -/* 09C714 7F067BE4 00000000 */ nop -/* 09C718 7F067BE8 45010012 */ bc1t .L7F067C34 -/* 09C71C 7F067BEC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09C720 7F067BF0 44818000 */ mtc1 $at, $f16 -/* 09C724 7F067BF4 C4440FF0 */ lwc1 $f4, 0xff0($v0) -/* 09C728 7F067BF8 46128181 */ sub.s $f6, $f16, $f18 -/* 09C72C 7F067BFC 46148081 */ sub.s $f2, $f16, $f20 -/* 09C730 7F067C00 46062202 */ mul.s $f8, $f4, $f6 -/* 09C734 7F067C04 46024283 */ div.s $f10, $f8, $f2 -/* 09C738 7F067C08 E44A0FF0 */ swc1 $f10, 0xff0($v0) -/* 09C73C 7F067C0C 8CE20000 */ lw $v0, ($a3) -/* 09C740 7F067C10 C4460FF8 */ lwc1 $f6, 0xff8($v0) -/* 09C744 7F067C14 C4440FF4 */ lwc1 $f4, 0xff4($v0) -/* 09C748 7F067C18 46068201 */ sub.s $f8, $f16, $f6 -/* 09C74C 7F067C1C 46082282 */ mul.s $f10, $f4, $f8 -/* 09C750 7F067C20 46025183 */ div.s $f6, $f10, $f2 -/* 09C754 7F067C24 E4460FF4 */ swc1 $f6, 0xff4($v0) -/* 09C758 7F067C28 8CEE0000 */ lw $t6, ($a3) -/* 09C75C 7F067C2C E5D40FF8 */ swc1 $f20, 0xff8($t6) -/* 09C760 7F067C30 8CE20000 */ lw $v0, ($a3) -.L7F067C34: -/* 09C764 7F067C34 C452100C */ lwc1 $f18, 0x100c($v0) -/* 09C768 7F067C38 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09C76C 7F067C3C 44818000 */ mtc1 $at, $f16 -/* 09C770 7F067C40 4612B032 */ c.eq.s $f22, $f18 -/* 09C774 7F067C44 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09C778 7F067C48 46148081 */ sub.s $f2, $f16, $f20 -/* 09C77C 7F067C4C 45030014 */ bc1tl .L7F067CA0 -/* 09C780 7F067C50 44812000 */ mtc1 $at, $f4 -/* 09C784 7F067C54 46168101 */ sub.s $f4, $f16, $f22 -/* 09C788 7F067C58 46128281 */ sub.s $f10, $f16, $f18 -/* 09C78C 7F067C5C E7A4002C */ swc1 $f4, 0x2c($sp) -/* 09C790 7F067C60 C4481004 */ lwc1 $f8, 0x1004($v0) -/* 09C794 7F067C64 C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 09C798 7F067C68 460A4182 */ mul.s $f6, $f8, $f10 -/* 09C79C 7F067C6C 46043203 */ div.s $f8, $f6, $f4 -/* 09C7A0 7F067C70 E4481004 */ swc1 $f8, 0x1004($v0) -/* 09C7A4 7F067C74 8CE20000 */ lw $v0, ($a3) -/* 09C7A8 7F067C78 C446100C */ lwc1 $f6, 0x100c($v0) -/* 09C7AC 7F067C7C C44A1008 */ lwc1 $f10, 0x1008($v0) -/* 09C7B0 7F067C80 46068101 */ sub.s $f4, $f16, $f6 -/* 09C7B4 7F067C84 C7A6002C */ lwc1 $f6, 0x2c($sp) -/* 09C7B8 7F067C88 46045202 */ mul.s $f8, $f10, $f4 -/* 09C7BC 7F067C8C 46064283 */ div.s $f10, $f8, $f6 -/* 09C7C0 7F067C90 E44A1008 */ swc1 $f10, 0x1008($v0) -/* 09C7C4 7F067C94 8CEF0000 */ lw $t7, ($a3) -/* 09C7C8 7F067C98 E5F6100C */ swc1 $f22, 0x100c($t7) -/* 09C7CC 7F067C9C 44812000 */ mtc1 $at, $f4 -.L7F067CA0: -/* 09C7D0 7F067CA0 24848374 */ addiu $a0, %lo(g_ClockTimer) # addiu $a0, $a0, -0x7c8c -/* 09C7D4 7F067CA4 8C980000 */ lw $t8, ($a0) -/* 09C7D8 7F067CA8 46162201 */ sub.s $f8, $f4, $f22 -/* 09C7DC 7F067CAC 00001825 */ move $v1, $zero -/* 09C7E0 7F067CB0 1B000011 */ blez $t8, .L7F067CF8 -/* 09C7E4 7F067CB4 E7A80030 */ swc1 $f8, 0x30($sp) -/* 09C7E8 7F067CB8 8CE20000 */ lw $v0, ($a3) -.L7F067CBC: -/* 09C7EC 7F067CBC 24630001 */ addiu $v1, $v1, 1 -/* 09C7F0 7F067CC0 C4460FF0 */ lwc1 $f6, 0xff0($v0) -/* 09C7F4 7F067CC4 46143282 */ mul.s $f10, $f6, $f20 -/* 09C7F8 7F067CC8 460C5100 */ add.s $f4, $f10, $f12 -/* 09C7FC 7F067CCC E4440FF0 */ swc1 $f4, 0xff0($v0) -/* 09C800 7F067CD0 8CE20000 */ lw $v0, ($a3) -/* 09C804 7F067CD4 C4480FF4 */ lwc1 $f8, 0xff4($v0) -/* 09C808 7F067CD8 46144182 */ mul.s $f6, $f8, $f20 -/* 09C80C 7F067CDC 460E3280 */ add.s $f10, $f6, $f14 -/* 09C810 7F067CE0 E44A0FF4 */ swc1 $f10, 0xff4($v0) -/* 09C814 7F067CE4 8C990000 */ lw $t9, ($a0) -/* 09C818 7F067CE8 0079082A */ slt $at, $v1, $t9 -/* 09C81C 7F067CEC 5420FFF3 */ bnezl $at, .L7F067CBC -/* 09C820 7F067CF0 8CE20000 */ lw $v0, ($a3) -/* 09C824 7F067CF4 00001825 */ move $v1, $zero -.L7F067CF8: -/* 09C828 7F067CF8 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 09C82C 7F067CFC 44819000 */ mtc1 $at, $f18 -/* 09C830 7F067D00 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09C834 7F067D04 4481A000 */ mtc1 $at, $f20 -/* 09C838 7F067D08 C7A40050 */ lwc1 $f4, 0x50($sp) -/* 09C83C 7F067D0C 8CE20000 */ lw $v0, ($a3) -/* 09C840 7F067D10 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 09C844 7F067D14 46142202 */ mul.s $f8, $f4, $f20 -/* 09C848 7F067D18 E7A8002C */ swc1 $f8, 0x2c($sp) -/* 09C84C 7F067D1C C4460FF0 */ lwc1 $f6, 0xff0($v0) -/* 09C850 7F067D20 46023282 */ mul.s $f10, $f6, $f2 -/* 09C854 7F067D24 00000000 */ nop -/* 09C858 7F067D28 46045182 */ mul.s $f6, $f10, $f4 -/* 09C85C 7F067D2C 00000000 */ nop -/* 09C860 7F067D30 46143282 */ mul.s $f10, $f6, $f20 -/* 09C864 7F067D34 46085100 */ add.s $f4, $f10, $f8 -/* 09C868 7F067D38 E4440FE8 */ swc1 $f4, 0xfe8($v0) -/* 09C86C 7F067D3C 8CE20000 */ lw $v0, ($a3) -/* 09C870 7F067D40 C4460FF4 */ lwc1 $f6, 0xff4($v0) -/* 09C874 7F067D44 46023282 */ mul.s $f10, $f6, $f2 -/* 09C878 7F067D48 00000000 */ nop -/* 09C87C 7F067D4C 46005202 */ mul.s $f8, $f10, $f0 -/* 09C880 7F067D50 00000000 */ nop -/* 09C884 7F067D54 46144102 */ mul.s $f4, $f8, $f20 -/* 09C888 7F067D58 00000000 */ nop -/* 09C88C 7F067D5C 46140182 */ mul.s $f6, $f0, $f20 -/* 09C890 7F067D60 46062280 */ add.s $f10, $f4, $f6 -/* 09C894 7F067D64 E44A0FEC */ swc1 $f10, 0xfec($v0) -/* 09C898 7F067D68 8CE20000 */ lw $v0, ($a3) -/* 09C89C 7F067D6C C7A80050 */ lwc1 $f8, 0x50($sp) -/* 09C8A0 7F067D70 C4500FE8 */ lwc1 $f16, 0xfe8($v0) -/* 09C8A4 7F067D74 4612803C */ c.lt.s $f16, $f18 -/* 09C8A8 7F067D78 00000000 */ nop -/* 09C8AC 7F067D7C 45000004 */ bc1f .L7F067D90 -/* 09C8B0 7F067D80 00000000 */ nop -/* 09C8B4 7F067D84 E4520FE8 */ swc1 $f18, 0xfe8($v0) -/* 09C8B8 7F067D88 1000000A */ b .L7F067DB4 -/* 09C8BC 7F067D8C 8CE20000 */ lw $v0, ($a3) -.L7F067D90: -/* 09C8C0 7F067D90 44812000 */ mtc1 $at, $f4 -/* 09C8C4 7F067D94 00000000 */ nop -/* 09C8C8 7F067D98 46044081 */ sub.s $f2, $f8, $f4 -/* 09C8CC 7F067D9C 4610103C */ c.lt.s $f2, $f16 -/* 09C8D0 7F067DA0 00000000 */ nop -/* 09C8D4 7F067DA4 45020004 */ bc1fl .L7F067DB8 -/* 09C8D8 7F067DA8 C4420FEC */ lwc1 $f2, 0xfec($v0) -/* 09C8DC 7F067DAC E4420FE8 */ swc1 $f2, 0xfe8($v0) -/* 09C8E0 7F067DB0 8CE20000 */ lw $v0, ($a3) -.L7F067DB4: -/* 09C8E4 7F067DB4 C4420FEC */ lwc1 $f2, 0xfec($v0) -.L7F067DB8: -/* 09C8E8 7F067DB8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 09C8EC 7F067DBC 4612103C */ c.lt.s $f2, $f18 -/* 09C8F0 7F067DC0 00000000 */ nop -/* 09C8F4 7F067DC4 45020004 */ bc1fl .L7F067DD8 -/* 09C8F8 7F067DC8 44813000 */ mtc1 $at, $f6 -/* 09C8FC 7F067DCC 10000009 */ b .L7F067DF4 -/* 09C900 7F067DD0 E4520FEC */ swc1 $f18, 0xfec($v0) -/* 09C904 7F067DD4 44813000 */ mtc1 $at, $f6 -.L7F067DD8: -/* 09C908 7F067DD8 00000000 */ nop -/* 09C90C 7F067DDC 46060401 */ sub.s $f16, $f0, $f6 -/* 09C910 7F067DE0 4602803C */ c.lt.s $f16, $f2 -/* 09C914 7F067DE4 00000000 */ nop -/* 09C918 7F067DE8 45020003 */ bc1fl .L7F067DF8 -/* 09C91C 7F067DEC AFA30054 */ sw $v1, 0x54($sp) -/* 09C920 7F067DF0 E4500FEC */ swc1 $f16, 0xfec($v0) -.L7F067DF4: -/* 09C924 7F067DF4 AFA30054 */ sw $v1, 0x54($sp) -.L7F067DF8: -/* 09C928 7F067DF8 E7AC0058 */ swc1 $f12, 0x58($sp) -/* 09C92C 7F067DFC 0FC1E131 */ jal getPlayer_c_screenleft -/* 09C930 7F067E00 E7AE005C */ swc1 $f14, 0x5c($sp) -/* 09C934 7F067E04 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 09C938 7F067E08 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 09C93C 7F067E0C 8CE20000 */ lw $v0, ($a3) -/* 09C940 7F067E10 C44A0FE8 */ lwc1 $f10, 0xfe8($v0) -/* 09C944 7F067E14 46005200 */ add.s $f8, $f10, $f0 -/* 09C948 7F067E18 0FC1E135 */ jal getPlayer_c_screentop -/* 09C94C 7F067E1C E4480FE8 */ swc1 $f8, 0xfe8($v0) -/* 09C950 7F067E20 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 09C954 7F067E24 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 09C958 7F067E28 8CE20000 */ lw $v0, ($a3) -/* 09C95C 7F067E2C 8FA30054 */ lw $v1, 0x54($sp) -/* 09C960 7F067E30 3C048005 */ lui $a0, %hi(g_ClockTimer) -/* 09C964 7F067E34 C4440FEC */ lwc1 $f4, 0xfec($v0) -/* 09C968 7F067E38 C7AC0058 */ lwc1 $f12, 0x58($sp) -/* 09C96C 7F067E3C C7AE005C */ lwc1 $f14, 0x5c($sp) -/* 09C970 7F067E40 46002180 */ add.s $f6, $f4, $f0 -/* 09C974 7F067E44 24848374 */ addiu $a0, %lo(g_ClockTimer) # addiu $a0, $a0, -0x7c8c -/* 09C978 7F067E48 E4460FEC */ swc1 $f6, 0xfec($v0) -/* 09C97C 7F067E4C 8C880000 */ lw $t0, ($a0) -/* 09C980 7F067E50 59000011 */ blezl $t0, .L7F067E98 -/* 09C984 7F067E54 8CE20000 */ lw $v0, ($a3) -/* 09C988 7F067E58 8CE20000 */ lw $v0, ($a3) -.L7F067E5C: -/* 09C98C 7F067E5C 24630001 */ addiu $v1, $v1, 1 -/* 09C990 7F067E60 C44A1004 */ lwc1 $f10, 0x1004($v0) -/* 09C994 7F067E64 46165202 */ mul.s $f8, $f10, $f22 -/* 09C998 7F067E68 460C4100 */ add.s $f4, $f8, $f12 -/* 09C99C 7F067E6C E4441004 */ swc1 $f4, 0x1004($v0) -/* 09C9A0 7F067E70 8CE20000 */ lw $v0, ($a3) -/* 09C9A4 7F067E74 C4461008 */ lwc1 $f6, 0x1008($v0) -/* 09C9A8 7F067E78 46163282 */ mul.s $f10, $f6, $f22 -/* 09C9AC 7F067E7C 460E5200 */ add.s $f8, $f10, $f14 -/* 09C9B0 7F067E80 E4481008 */ swc1 $f8, 0x1008($v0) -/* 09C9B4 7F067E84 8C890000 */ lw $t1, ($a0) -/* 09C9B8 7F067E88 0069082A */ slt $at, $v1, $t1 -/* 09C9BC 7F067E8C 5420FFF3 */ bnezl $at, .L7F067E5C -/* 09C9C0 7F067E90 8CE20000 */ lw $v0, ($a3) -/* 09C9C4 7F067E94 8CE20000 */ lw $v0, ($a3) -.L7F067E98: -/* 09C9C8 7F067E98 C7A00030 */ lwc1 $f0, 0x30($sp) -/* 09C9CC 7F067E9C C7AA0050 */ lwc1 $f10, 0x50($sp) -/* 09C9D0 7F067EA0 C4441004 */ lwc1 $f4, 0x1004($v0) -/* 09C9D4 7F067EA4 C7A2004C */ lwc1 $f2, 0x4c($sp) -/* 09C9D8 7F067EA8 46002182 */ mul.s $f6, $f4, $f0 -/* 09C9DC 7F067EAC 00000000 */ nop -/* 09C9E0 7F067EB0 460A3202 */ mul.s $f8, $f6, $f10 -/* 09C9E4 7F067EB4 C7A6002C */ lwc1 $f6, 0x2c($sp) -/* 09C9E8 7F067EB8 46144102 */ mul.s $f4, $f8, $f20 -/* 09C9EC 7F067EBC 46062280 */ add.s $f10, $f4, $f6 -/* 09C9F0 7F067EC0 E44A0FFC */ swc1 $f10, 0xffc($v0) -/* 09C9F4 7F067EC4 8CE20000 */ lw $v0, ($a3) -/* 09C9F8 7F067EC8 C4481008 */ lwc1 $f8, 0x1008($v0) -/* 09C9FC 7F067ECC 46004102 */ mul.s $f4, $f8, $f0 -/* 09CA00 7F067ED0 00000000 */ nop -/* 09CA04 7F067ED4 46022182 */ mul.s $f6, $f4, $f2 -/* 09CA08 7F067ED8 00000000 */ nop -/* 09CA0C 7F067EDC 46143282 */ mul.s $f10, $f6, $f20 -/* 09CA10 7F067EE0 00000000 */ nop -/* 09CA14 7F067EE4 46141202 */ mul.s $f8, $f2, $f20 -/* 09CA18 7F067EE8 46085100 */ add.s $f4, $f10, $f8 -/* 09CA1C 7F067EEC 0FC1E131 */ jal getPlayer_c_screenleft -/* 09CA20 7F067EF0 E4441000 */ swc1 $f4, 0x1000($v0) -/* 09CA24 7F067EF4 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 09CA28 7F067EF8 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 09CA2C 7F067EFC 8CE20000 */ lw $v0, ($a3) -/* 09CA30 7F067F00 C4460FFC */ lwc1 $f6, 0xffc($v0) -/* 09CA34 7F067F04 46003280 */ add.s $f10, $f6, $f0 -/* 09CA38 7F067F08 0FC1E135 */ jal getPlayer_c_screentop -/* 09CA3C 7F067F0C E44A0FFC */ swc1 $f10, 0xffc($v0) -/* 09CA40 7F067F10 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 09CA44 7F067F14 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 09CA48 7F067F18 8CE20000 */ lw $v0, ($a3) -/* 09CA4C 7F067F1C 27A50040 */ addiu $a1, $sp, 0x40 -/* 09CA50 7F067F20 3C06447A */ lui $a2, 0x447a -/* 09CA54 7F067F24 C4481000 */ lwc1 $f8, 0x1000($v0) -/* 09CA58 7F067F28 46004100 */ add.s $f4, $f8, $f0 -/* 09CA5C 7F067F2C E4441000 */ swc1 $f4, 0x1000($v0) -/* 09CA60 7F067F30 8CE40000 */ lw $a0, ($a3) -/* 09CA64 7F067F34 0FC1DFBB */ jal sub_GAME_7F077EEC -/* 09CA68 7F067F38 24840FFC */ addiu $a0, $a0, 0xffc -/* 09CA6C 7F067F3C 0FC19EAD */ jal sub_GAME_7F067AB4 -/* 09CA70 7F067F40 27A40040 */ addiu $a0, $sp, 0x40 -/* 09CA74 7F067F44 8FBF0024 */ lw $ra, 0x24($sp) -/* 09CA78 7F067F48 D7B40010 */ ldc1 $f20, 0x10($sp) -/* 09CA7C 7F067F4C D7B60018 */ ldc1 $f22, 0x18($sp) -/* 09CA80 7F067F50 03E00008 */ jr $ra -/* 09CA84 7F067F54 27BD0058 */ addiu $sp, $sp, 0x58 -) + aim_lock_speed = get_ptr_item_statistics(getCurrentPlayerWeaponId(GUNRIGHT))->AimLockSpeed; +#elif defined(VERSION_EU) + aim_lock_speed = get_ptr_item_statistics(getCurrentPlayerWeaponId(GUNRIGHT))->CrosshairSpeed; #endif -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel caclulate_gun_crosshair_position_rotation -/* 09AD2C 7F06833C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 09AD30 7F068340 F7B60018 */ sdc1 $f22, 0x18($sp) -/* 09AD34 7F068344 F7B40010 */ sdc1 $f20, 0x10($sp) -/* 09AD38 7F068348 4486A000 */ mtc1 $a2, $f20 -/* 09AD3C 7F06834C 4487B000 */ mtc1 $a3, $f22 -/* 09AD40 7F068350 AFBF0024 */ sw $ra, 0x24($sp) -/* 09AD44 7F068354 E7AC0058 */ swc1 $f12, 0x58($sp) -/* 09AD48 7F068358 0FC1E149 */ jal getPlayer_c_screenwidth -/* 09AD4C 7F06835C E7AE005C */ swc1 $f14, 0x5c($sp) -/* 09AD50 7F068360 0FC1E14D */ jal getPlayer_c_screenheight -/* 09AD54 7F068364 E7A00050 */ swc1 $f0, 0x50($sp) -/* 09AD58 7F068368 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 09AD5C 7F06836C 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 09AD60 7F068370 8CE20000 */ lw $v0, ($a3) -/* 09AD64 7F068374 E7A0004C */ swc1 $f0, 0x4c($sp) -/* 09AD68 7F068378 C7AC0058 */ lwc1 $f12, 0x58($sp) -/* 09AD6C 7F06837C C4520FF0 */ lwc1 $f18, 0xff0($v0) -/* 09AD70 7F068380 C7AE005C */ lwc1 $f14, 0x5c($sp) -/* 09AD74 7F068384 3C048004 */ lui $a0, %hi(g_ClockTimer) # $a0, 0x8004 -/* 09AD78 7F068388 4612A032 */ c.eq.s $f20, $f18 -/* 09AD7C 7F06838C 00000000 */ nop -/* 09AD80 7F068390 45010012 */ bc1t .L7F0683DC -/* 09AD84 7F068394 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09AD88 7F068398 44818000 */ mtc1 $at, $f16 -/* 09AD8C 7F06839C C4440FE8 */ lwc1 $f4, 0xfe8($v0) -/* 09AD90 7F0683A0 46128181 */ sub.s $f6, $f16, $f18 -/* 09AD94 7F0683A4 46148081 */ sub.s $f2, $f16, $f20 -/* 09AD98 7F0683A8 46062202 */ mul.s $f8, $f4, $f6 -/* 09AD9C 7F0683AC 46024283 */ div.s $f10, $f8, $f2 -/* 09ADA0 7F0683B0 E44A0FE8 */ swc1 $f10, 0xfe8($v0) -/* 09ADA4 7F0683B4 8CE20000 */ lw $v0, ($a3) -/* 09ADA8 7F0683B8 C4460FF0 */ lwc1 $f6, 0xff0($v0) -/* 09ADAC 7F0683BC C4440FEC */ lwc1 $f4, 0xfec($v0) -/* 09ADB0 7F0683C0 46068201 */ sub.s $f8, $f16, $f6 -/* 09ADB4 7F0683C4 46082282 */ mul.s $f10, $f4, $f8 -/* 09ADB8 7F0683C8 46025183 */ div.s $f6, $f10, $f2 -/* 09ADBC 7F0683CC E4460FEC */ swc1 $f6, 0xfec($v0) -/* 09ADC0 7F0683D0 8CEE0000 */ lw $t6, ($a3) -/* 09ADC4 7F0683D4 E5D40FF0 */ swc1 $f20, 0xff0($t6) -/* 09ADC8 7F0683D8 8CE20000 */ lw $v0, ($a3) -.L7F0683DC: -/* 09ADCC 7F0683DC C4521004 */ lwc1 $f18, 0x1004($v0) -/* 09ADD0 7F0683E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09ADD4 7F0683E4 44818000 */ mtc1 $at, $f16 -/* 09ADD8 7F0683E8 4612B032 */ c.eq.s $f22, $f18 -/* 09ADDC 7F0683EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09ADE0 7F0683F0 46148081 */ sub.s $f2, $f16, $f20 -/* 09ADE4 7F0683F4 45030014 */ bc1tl .L7F068448 -/* 09ADE8 7F0683F8 44812000 */ mtc1 $at, $f4 -/* 09ADEC 7F0683FC 46168101 */ sub.s $f4, $f16, $f22 -/* 09ADF0 7F068400 46128281 */ sub.s $f10, $f16, $f18 -/* 09ADF4 7F068404 E7A4002C */ swc1 $f4, 0x2c($sp) -/* 09ADF8 7F068408 C4480FFC */ lwc1 $f8, 0xffc($v0) -/* 09ADFC 7F06840C C7A4002C */ lwc1 $f4, 0x2c($sp) -/* 09AE00 7F068410 460A4182 */ mul.s $f6, $f8, $f10 -/* 09AE04 7F068414 46043203 */ div.s $f8, $f6, $f4 -/* 09AE08 7F068418 E4480FFC */ swc1 $f8, 0xffc($v0) -/* 09AE0C 7F06841C 8CE20000 */ lw $v0, ($a3) -/* 09AE10 7F068420 C4461004 */ lwc1 $f6, 0x1004($v0) -/* 09AE14 7F068424 C44A1000 */ lwc1 $f10, 0x1000($v0) -/* 09AE18 7F068428 46068101 */ sub.s $f4, $f16, $f6 -/* 09AE1C 7F06842C C7A6002C */ lwc1 $f6, 0x2c($sp) -/* 09AE20 7F068430 46045202 */ mul.s $f8, $f10, $f4 -/* 09AE24 7F068434 46064283 */ div.s $f10, $f8, $f6 -/* 09AE28 7F068438 E44A1000 */ swc1 $f10, 0x1000($v0) -/* 09AE2C 7F06843C 8CEF0000 */ lw $t7, ($a3) -/* 09AE30 7F068440 E5F61004 */ swc1 $f22, 0x1004($t7) -/* 09AE34 7F068444 44812000 */ mtc1 $at, $f4 -.L7F068448: -/* 09AE38 7F068448 24840FF4 */ addiu $a0, %lo(g_ClockTimer) # addiu $a0, $a0, 0xff4 -/* 09AE3C 7F06844C 8C980000 */ lw $t8, ($a0) -/* 09AE40 7F068450 46162201 */ sub.s $f8, $f4, $f22 -/* 09AE44 7F068454 00001825 */ move $v1, $zero -/* 09AE48 7F068458 1B000011 */ blez $t8, .L7F0684A0 -/* 09AE4C 7F06845C E7A80030 */ swc1 $f8, 0x30($sp) -/* 09AE50 7F068460 8CE20000 */ lw $v0, ($a3) -.L7F068464: -/* 09AE54 7F068464 24630001 */ addiu $v1, $v1, 1 -/* 09AE58 7F068468 C4460FE8 */ lwc1 $f6, 0xfe8($v0) -/* 09AE5C 7F06846C 46143282 */ mul.s $f10, $f6, $f20 -/* 09AE60 7F068470 460C5100 */ add.s $f4, $f10, $f12 -/* 09AE64 7F068474 E4440FE8 */ swc1 $f4, 0xfe8($v0) -/* 09AE68 7F068478 8CE20000 */ lw $v0, ($a3) -/* 09AE6C 7F06847C C4480FEC */ lwc1 $f8, 0xfec($v0) -/* 09AE70 7F068480 46144182 */ mul.s $f6, $f8, $f20 -/* 09AE74 7F068484 460E3280 */ add.s $f10, $f6, $f14 -/* 09AE78 7F068488 E44A0FEC */ swc1 $f10, 0xfec($v0) -/* 09AE7C 7F06848C 8C990000 */ lw $t9, ($a0) -/* 09AE80 7F068490 0079082A */ slt $at, $v1, $t9 -/* 09AE84 7F068494 5420FFF3 */ bnezl $at, .L7F068464 -/* 09AE88 7F068498 8CE20000 */ lw $v0, ($a3) -/* 09AE8C 7F06849C 00001825 */ move $v1, $zero -.L7F0684A0: -/* 09AE90 7F0684A0 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 09AE94 7F0684A4 44819000 */ mtc1 $at, $f18 -/* 09AE98 7F0684A8 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09AE9C 7F0684AC 4481A000 */ mtc1 $at, $f20 -/* 09AEA0 7F0684B0 C7A40050 */ lwc1 $f4, 0x50($sp) -/* 09AEA4 7F0684B4 8CE20000 */ lw $v0, ($a3) -/* 09AEA8 7F0684B8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 09AEAC 7F0684BC 46142202 */ mul.s $f8, $f4, $f20 -/* 09AEB0 7F0684C0 E7A8002C */ swc1 $f8, 0x2c($sp) -/* 09AEB4 7F0684C4 C4460FE8 */ lwc1 $f6, 0xfe8($v0) -/* 09AEB8 7F0684C8 46023282 */ mul.s $f10, $f6, $f2 -/* 09AEBC 7F0684CC 00000000 */ nop -/* 09AEC0 7F0684D0 46045182 */ mul.s $f6, $f10, $f4 -/* 09AEC4 7F0684D4 00000000 */ nop -/* 09AEC8 7F0684D8 46143282 */ mul.s $f10, $f6, $f20 -/* 09AECC 7F0684DC 46085100 */ add.s $f4, $f10, $f8 -/* 09AED0 7F0684E0 E4440FE0 */ swc1 $f4, 0xfe0($v0) -/* 09AED4 7F0684E4 8CE20000 */ lw $v0, ($a3) -/* 09AED8 7F0684E8 C4460FEC */ lwc1 $f6, 0xfec($v0) -/* 09AEDC 7F0684EC 46023282 */ mul.s $f10, $f6, $f2 -/* 09AEE0 7F0684F0 00000000 */ nop -/* 09AEE4 7F0684F4 46005202 */ mul.s $f8, $f10, $f0 -/* 09AEE8 7F0684F8 00000000 */ nop -/* 09AEEC 7F0684FC 46144102 */ mul.s $f4, $f8, $f20 -/* 09AEF0 7F068500 00000000 */ nop -/* 09AEF4 7F068504 46140182 */ mul.s $f6, $f0, $f20 -/* 09AEF8 7F068508 46062280 */ add.s $f10, $f4, $f6 -/* 09AEFC 7F06850C E44A0FE4 */ swc1 $f10, 0xfe4($v0) -/* 09AF00 7F068510 8CE20000 */ lw $v0, ($a3) -/* 09AF04 7F068514 C7A80050 */ lwc1 $f8, 0x50($sp) -/* 09AF08 7F068518 C4500FE0 */ lwc1 $f16, 0xfe0($v0) -/* 09AF0C 7F06851C 4612803C */ c.lt.s $f16, $f18 -/* 09AF10 7F068520 00000000 */ nop -/* 09AF14 7F068524 45000004 */ bc1f .L7F068538 -/* 09AF18 7F068528 00000000 */ nop -/* 09AF1C 7F06852C E4520FE0 */ swc1 $f18, 0xfe0($v0) -/* 09AF20 7F068530 1000000A */ b .L7F06855C -/* 09AF24 7F068534 8CE20000 */ lw $v0, ($a3) -.L7F068538: -/* 09AF28 7F068538 44812000 */ mtc1 $at, $f4 -/* 09AF2C 7F06853C 00000000 */ nop -/* 09AF30 7F068540 46044081 */ sub.s $f2, $f8, $f4 -/* 09AF34 7F068544 4610103C */ c.lt.s $f2, $f16 -/* 09AF38 7F068548 00000000 */ nop -/* 09AF3C 7F06854C 45020004 */ bc1fl .L7F068560 -/* 09AF40 7F068550 C4420FE4 */ lwc1 $f2, 0xfe4($v0) -/* 09AF44 7F068554 E4420FE0 */ swc1 $f2, 0xfe0($v0) -/* 09AF48 7F068558 8CE20000 */ lw $v0, ($a3) -.L7F06855C: -/* 09AF4C 7F06855C C4420FE4 */ lwc1 $f2, 0xfe4($v0) -.L7F068560: -/* 09AF50 7F068560 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 09AF54 7F068564 4612103C */ c.lt.s $f2, $f18 -/* 09AF58 7F068568 00000000 */ nop -/* 09AF5C 7F06856C 45020004 */ bc1fl .L7F068580 -/* 09AF60 7F068570 44813000 */ mtc1 $at, $f6 -/* 09AF64 7F068574 10000009 */ b .L7F06859C -/* 09AF68 7F068578 E4520FE4 */ swc1 $f18, 0xfe4($v0) -/* 09AF6C 7F06857C 44813000 */ mtc1 $at, $f6 -.L7F068580: -/* 09AF70 7F068580 00000000 */ nop -/* 09AF74 7F068584 46060401 */ sub.s $f16, $f0, $f6 -/* 09AF78 7F068588 4602803C */ c.lt.s $f16, $f2 -/* 09AF7C 7F06858C 00000000 */ nop -/* 09AF80 7F068590 45020003 */ bc1fl .L7F0685A0 -/* 09AF84 7F068594 AFA30054 */ sw $v1, 0x54($sp) -/* 09AF88 7F068598 E4500FE4 */ swc1 $f16, 0xfe4($v0) -.L7F06859C: -/* 09AF8C 7F06859C AFA30054 */ sw $v1, 0x54($sp) -.L7F0685A0: -/* 09AF90 7F0685A0 E7AC0058 */ swc1 $f12, 0x58($sp) -/* 09AF94 7F0685A4 0FC1E151 */ jal getPlayer_c_screenleft -/* 09AF98 7F0685A8 E7AE005C */ swc1 $f14, 0x5c($sp) -/* 09AF9C 7F0685AC 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 09AFA0 7F0685B0 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 09AFA4 7F0685B4 8CE20000 */ lw $v0, ($a3) -/* 09AFA8 7F0685B8 C44A0FE0 */ lwc1 $f10, 0xfe0($v0) -/* 09AFAC 7F0685BC 46005200 */ add.s $f8, $f10, $f0 -/* 09AFB0 7F0685C0 0FC1E155 */ jal getPlayer_c_screentop -/* 09AFB4 7F0685C4 E4480FE0 */ swc1 $f8, 0xfe0($v0) -/* 09AFB8 7F0685C8 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 09AFBC 7F0685CC 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 09AFC0 7F0685D0 8CE20000 */ lw $v0, ($a3) -/* 09AFC4 7F0685D4 8FA30054 */ lw $v1, 0x54($sp) -/* 09AFC8 7F0685D8 3C048004 */ lui $a0, %hi(g_ClockTimer) # $a0, 0x8004 -/* 09AFCC 7F0685DC C4440FE4 */ lwc1 $f4, 0xfe4($v0) -/* 09AFD0 7F0685E0 C7AC0058 */ lwc1 $f12, 0x58($sp) -/* 09AFD4 7F0685E4 C7AE005C */ lwc1 $f14, 0x5c($sp) -/* 09AFD8 7F0685E8 46002180 */ add.s $f6, $f4, $f0 -/* 09AFDC 7F0685EC 24840FF4 */ addiu $a0, %lo(g_ClockTimer) # addiu $a0, $a0, 0xff4 -/* 09AFE0 7F0685F0 E4460FE4 */ swc1 $f6, 0xfe4($v0) -/* 09AFE4 7F0685F4 8C880000 */ lw $t0, ($a0) -/* 09AFE8 7F0685F8 59000011 */ blezl $t0, .L7F068640 -/* 09AFEC 7F0685FC 8CE20000 */ lw $v0, ($a3) -/* 09AFF0 7F068600 8CE20000 */ lw $v0, ($a3) -.L7F068604: -/* 09AFF4 7F068604 24630001 */ addiu $v1, $v1, 1 -/* 09AFF8 7F068608 C44A0FFC */ lwc1 $f10, 0xffc($v0) -/* 09AFFC 7F06860C 46165202 */ mul.s $f8, $f10, $f22 -/* 09B000 7F068610 460C4100 */ add.s $f4, $f8, $f12 -/* 09B004 7F068614 E4440FFC */ swc1 $f4, 0xffc($v0) -/* 09B008 7F068618 8CE20000 */ lw $v0, ($a3) -/* 09B00C 7F06861C C4461000 */ lwc1 $f6, 0x1000($v0) -/* 09B010 7F068620 46163282 */ mul.s $f10, $f6, $f22 -/* 09B014 7F068624 460E5200 */ add.s $f8, $f10, $f14 -/* 09B018 7F068628 E4481000 */ swc1 $f8, 0x1000($v0) -/* 09B01C 7F06862C 8C890000 */ lw $t1, ($a0) -/* 09B020 7F068630 0069082A */ slt $at, $v1, $t1 -/* 09B024 7F068634 5420FFF3 */ bnezl $at, .L7F068604 -/* 09B028 7F068638 8CE20000 */ lw $v0, ($a3) -/* 09B02C 7F06863C 8CE20000 */ lw $v0, ($a3) -.L7F068640: -/* 09B030 7F068640 C7A00030 */ lwc1 $f0, 0x30($sp) -/* 09B034 7F068644 C7AA0050 */ lwc1 $f10, 0x50($sp) -/* 09B038 7F068648 C4440FFC */ lwc1 $f4, 0xffc($v0) -/* 09B03C 7F06864C C7A2004C */ lwc1 $f2, 0x4c($sp) -/* 09B040 7F068650 46002182 */ mul.s $f6, $f4, $f0 -/* 09B044 7F068654 00000000 */ nop -/* 09B048 7F068658 460A3202 */ mul.s $f8, $f6, $f10 -/* 09B04C 7F06865C C7A6002C */ lwc1 $f6, 0x2c($sp) -/* 09B050 7F068660 46144102 */ mul.s $f4, $f8, $f20 -/* 09B054 7F068664 46062280 */ add.s $f10, $f4, $f6 -/* 09B058 7F068668 E44A0FF4 */ swc1 $f10, 0xff4($v0) -/* 09B05C 7F06866C 8CE20000 */ lw $v0, ($a3) -/* 09B060 7F068670 C4481000 */ lwc1 $f8, 0x1000($v0) -/* 09B064 7F068674 46004102 */ mul.s $f4, $f8, $f0 -/* 09B068 7F068678 00000000 */ nop -/* 09B06C 7F06867C 46022182 */ mul.s $f6, $f4, $f2 -/* 09B070 7F068680 00000000 */ nop -/* 09B074 7F068684 46143282 */ mul.s $f10, $f6, $f20 -/* 09B078 7F068688 00000000 */ nop -/* 09B07C 7F06868C 46141202 */ mul.s $f8, $f2, $f20 -/* 09B080 7F068690 46085100 */ add.s $f4, $f10, $f8 -/* 09B084 7F068694 0FC1E151 */ jal getPlayer_c_screenleft -/* 09B088 7F068698 E4440FF8 */ swc1 $f4, 0xff8($v0) -/* 09B08C 7F06869C 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 09B090 7F0686A0 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 09B094 7F0686A4 8CE20000 */ lw $v0, ($a3) -/* 09B098 7F0686A8 C4460FF4 */ lwc1 $f6, 0xff4($v0) -/* 09B09C 7F0686AC 46003280 */ add.s $f10, $f6, $f0 -/* 09B0A0 7F0686B0 0FC1E155 */ jal getPlayer_c_screentop -/* 09B0A4 7F0686B4 E44A0FF4 */ swc1 $f10, 0xff4($v0) -/* 09B0A8 7F0686B8 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 09B0AC 7F0686BC 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 09B0B0 7F0686C0 8CE20000 */ lw $v0, ($a3) -/* 09B0B4 7F0686C4 27A50040 */ addiu $a1, $sp, 0x40 -/* 09B0B8 7F0686C8 3C06447A */ lui $a2, 0x447a -/* 09B0BC 7F0686CC C4480FF8 */ lwc1 $f8, 0xff8($v0) -/* 09B0C0 7F0686D0 46004100 */ add.s $f4, $f8, $f0 -/* 09B0C4 7F0686D4 E4440FF8 */ swc1 $f4, 0xff8($v0) -/* 09B0C8 7F0686D8 8CE40000 */ lw $a0, ($a3) -/* 09B0CC 7F0686DC 0FC1DFDB */ jal sub_GAME_7F077EEC -/* 09B0D0 7F0686E0 24840FF4 */ addiu $a0, $a0, 0xff4 -/* 09B0D4 7F0686E4 0FC1A097 */ jal sub_GAME_7F067AB4 -/* 09B0D8 7F0686E8 27A40040 */ addiu $a0, $sp, 0x40 -/* 09B0DC 7F0686EC 8FBF0024 */ lw $ra, 0x24($sp) -/* 09B0E0 7F0686F0 D7B40010 */ ldc1 $f20, 0x10($sp) -/* 09B0E4 7F0686F4 D7B60018 */ ldc1 $f22, 0x18($sp) -/* 09B0E8 7F0686F8 03E00008 */ jr $ra -/* 09B0EC 7F0686FC 27BD0058 */ addiu $sp, $sp, 0x58 -) -#endif -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F067F58(void) { + if (aim_lock_speed < max_aim_lock_speed) + { + aim_lock_speed = max_aim_lock_speed; + } + caclulate_gun_crosshair_position_rotation(turn_x, turn_y, max_aim_lock_speed, aim_lock_speed); } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F067F58 -/* 09CA88 7F067F58 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09CA8C 7F067F5C AFBF0014 */ sw $ra, 0x14($sp) -/* 09CA90 7F067F60 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 09CA94 7F067F64 E7AE001C */ swc1 $f14, 0x1c($sp) -/* 09CA98 7F067F68 AFA60020 */ sw $a2, 0x20($sp) -/* 09CA9C 7F067F6C 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09CAA0 7F067F70 00002025 */ move $a0, $zero -/* 09CAA4 7F067F74 0FC1722D */ jal get_ptr_item_statistics -/* 09CAA8 7F067F78 00402025 */ move $a0, $v0 -/* 09CAAC 7F067F7C C7A20020 */ lwc1 $f2, 0x20($sp) -/* 09CAB0 7F067F80 C440003C */ lwc1 $f0, 0x3c($v0) -/* 09CAB4 7F067F84 C7AC0018 */ lwc1 $f12, 0x18($sp) -/* 09CAB8 7F067F88 44061000 */ mfc1 $a2, $f2 -/* 09CABC 7F067F8C 4602003C */ c.lt.s $f0, $f2 -/* 09CAC0 7F067F90 00000000 */ nop -/* 09CAC4 7F067F94 45020003 */ bc1fl .L7F067FA4 -/* 09CAC8 7F067F98 44070000 */ mfc1 $a3, $f0 -/* 09CACC 7F067F9C 46001006 */ mov.s $f0, $f2 -/* 09CAD0 7F067FA0 44070000 */ mfc1 $a3, $f0 -.L7F067FA4: -/* 09CAD4 7F067FA4 0FC19EE5 */ jal caclulate_gun_crosshair_position_rotation -/* 09CAD8 7F067FA8 C7AE001C */ lwc1 $f14, 0x1c($sp) -/* 09CADC 7F067FAC 8FBF0014 */ lw $ra, 0x14($sp) -/* 09CAE0 7F067FB0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09CAE4 7F067FB4 03E00008 */ jr $ra -/* 09CAE8 7F067FB8 00000000 */ nop -) + + +void sub_GAME_7F067FBC(f32 turn_x, f32 turn_y) +{ + WeaponStats * item_stats; + f32 guncrossdamp; + f32 gunaimdamp; + + item_stats = get_ptr_item_statistics(getCurrentPlayerWeaponId(GUNRIGHT)); + +#if defined(VERSION_US) + guncrossdamp = item_stats->CrosshairSpeed; + gunaimdamp = item_stats->AimLockSpeed; +#elif defined(VERSION_EU) + guncrossdamp = 0.7651f; + gunaimdamp = item_stats->CrosshairSpeed; +#elif defined(VERSION_JP) + guncrossdamp = 0.8f; + gunaimdamp = item_stats->AimLockSpeed; #endif -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F067F58 -/* 09B0F0 7F068700 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09B0F4 7F068704 AFBF0014 */ sw $ra, 0x14($sp) -/* 09B0F8 7F068708 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 09B0FC 7F06870C E7AE001C */ swc1 $f14, 0x1c($sp) -/* 09B100 7F068710 AFA60020 */ sw $a2, 0x20($sp) -/* 09B104 7F068714 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09B108 7F068718 00002025 */ move $a0, $zero -/* 09B10C 7F06871C 0FC17359 */ jal get_ptr_item_statistics -/* 09B110 7F068720 00402025 */ move $a0, $v0 -/* 09B114 7F068724 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 09B118 7F068728 C4400038 */ lwc1 $f0, 0x38($v0) -/* 09B11C 7F06872C C7AC0018 */ lwc1 $f12, 0x18($sp) -/* 09B120 7F068730 44061000 */ mfc1 $a2, $f2 -/* 09B124 7F068734 4602003C */ c.lt.s $f0, $f2 -/* 09B128 7F068738 00000000 */ nop -/* 09B12C 7F06873C 45020003 */ bc1fl .L7F06874C -/* 09B130 7F068740 44070000 */ mfc1 $a3, $f0 -/* 09B134 7F068744 46001006 */ mov.s $f0, $f2 -/* 09B138 7F068748 44070000 */ mfc1 $a3, $f0 -.L7F06874C: -/* 09B13C 7F06874C 0FC1A0CF */ jal caclulate_gun_crosshair_position_rotation -/* 09B140 7F068750 C7AE001C */ lwc1 $f14, 0x1c($sp) -/* 09B144 7F068754 8FBF0014 */ lw $ra, 0x14($sp) -/* 09B148 7F068758 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09B14C 7F06875C 03E00008 */ jr $ra -/* 09B150 7F068760 00000000 */ nop -) -#endif -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F067FBC(void) { - + caclulate_gun_crosshair_position_rotation(turn_x, turn_y, guncrossdamp, gunaimdamp); } -#else - -#ifdef VERSION_US -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 getCurrentPlayerWeaponId -/* 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 - -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel sub_GAME_7F067FBC -/* 09D104 7F068594 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09D108 7F068598 AFBF0014 */ sw $ra, 0x14($sp) -/* 09D10C 7F06859C E7AC0018 */ swc1 $f12, 0x18($sp) -/* 09D110 7F0685A0 E7AE001C */ swc1 $f14, 0x1c($sp) -/* 09D114 7F0685A4 0FC177BC */ jal getCurrentPlayerWeaponId -/* 09D118 7F0685A8 00002025 */ move $a0, $zero -/* 09D11C 7F0685AC 0FC17375 */ jal get_ptr_item_statistics -/* 09D120 7F0685B0 00402025 */ move $a0, $v0 -/* 09D124 7F0685B4 C440003C */ lwc1 $f0, 0x3c($v0) -/* 09D128 7F0685B8 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c -/* 09D12C 7F0685BC 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd -/* 09D130 7F0685C0 44070000 */ mfc1 $a3, $f0 -/* 09D134 7F0685C4 C7AC0018 */ lwc1 $f12, 0x18($sp) -/* 09D138 7F0685C8 0FC1A05B */ jal caclulate_gun_crosshair_position_rotation -/* 09D13C 7F0685CC C7AE001C */ lwc1 $f14, 0x1c($sp) -/* 09D140 7F0685D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 09D144 7F0685D4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09D148 7F0685D8 03E00008 */ jr $ra -/* 09D14C 7F0685DC 00000000 */ nop -) -#endif - -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel sub_GAME_7F067FBC -/* 09B154 7F068764 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09B158 7F068768 AFBF0014 */ sw $ra, 0x14($sp) -/* 09B15C 7F06876C E7AC0018 */ swc1 $f12, 0x18($sp) -/* 09B160 7F068770 E7AE001C */ swc1 $f14, 0x1c($sp) -/* 09B164 7F068774 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09B168 7F068778 00002025 */ move $a0, $zero -/* 09B16C 7F06877C 0FC17359 */ jal get_ptr_item_statistics -/* 09B170 7F068780 00402025 */ move $a0, $v0 -/* 09B174 7F068784 C4400038 */ lwc1 $f0, 0x38($v0) -/* 09B178 7F068788 3C063F43 */ lui $a2, (0x3F43DD98 >> 16) # lui $a2, 0x3f43 -/* 09B17C 7F06878C 34C6DD98 */ ori $a2, (0x3F43DD98 & 0xFFFF) # ori $a2, $a2, 0xdd98 -/* 09B180 7F068790 44070000 */ mfc1 $a3, $f0 -/* 09B184 7F068794 C7AC0018 */ lwc1 $f12, 0x18($sp) -/* 09B188 7F068798 0FC1A0CF */ jal caclulate_gun_crosshair_position_rotation -/* 09B18C 7F06879C C7AE001C */ lwc1 $f14, 0x1c($sp) -/* 09B190 7F0687A0 8FBF0014 */ lw $ra, 0x14($sp) -/* 09B194 7F0687A4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09B198 7F0687A8 03E00008 */ jr $ra -/* 09B19C 7F0687AC 00000000 */ nop -) -#endif -#endif void get_bullet_angle(f32* horizontal_angle, f32* vertical_angle) { *horizontal_angle = g_CurrentPlayer->crosshair_angle.f[0]; *vertical_angle = g_CurrentPlayer->crosshair_angle.f[1]; } -#ifdef NONMATCHING -void sub_GAME_7F06802C(void) { + +void sub_GAME_7F06802C(void) +{ + coord3d coord; + f32 tmp; + + tmp = getPlayer_c_screenleft() + (getPlayer_c_screenwidth() * 0.5f); + g_CurrentPlayer->crosshair_angle.x = tmp; + g_CurrentPlayer->field_FFC.x = tmp; + + tmp = getPlayer_c_screentop() + (getPlayer_c_screenheight() * 0.5f); + g_CurrentPlayer->crosshair_angle.y = tmp; + g_CurrentPlayer->field_FFC.y = tmp; + + sub_GAME_7F077EEC((coord2d *) &g_CurrentPlayer->field_FFC, &coord, 1000.0f); + sub_GAME_7F067AB4(&coord); } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F06802C -/* 09CB5C 7F06802C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09CB60 7F068030 AFBF0014 */ sw $ra, 0x14($sp) -/* 09CB64 7F068034 0FC1E131 */ jal getPlayer_c_screenleft -/* 09CB68 7F068038 00000000 */ nop -/* 09CB6C 7F06803C 0FC1E129 */ jal getPlayer_c_screenwidth -/* 09CB70 7F068040 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 09CB74 7F068044 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09CB78 7F068048 44812000 */ mtc1 $at, $f4 -/* 09CB7C 7F06804C C7A8001C */ lwc1 $f8, 0x1c($sp) -/* 09CB80 7F068050 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 09CB84 7F068054 46040182 */ mul.s $f6, $f0, $f4 -/* 09CB88 7F068058 2442A0B0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x5f50 -/* 09CB8C 7F06805C 8C4E0000 */ lw $t6, ($v0) -/* 09CB90 7F068060 46083080 */ add.s $f2, $f6, $f8 -/* 09CB94 7F068064 E5C20FE8 */ swc1 $f2, 0xfe8($t6) -/* 09CB98 7F068068 8C4F0000 */ lw $t7, ($v0) -/* 09CB9C 7F06806C 0FC1E135 */ jal getPlayer_c_screentop -/* 09CBA0 7F068070 E5E20FFC */ swc1 $f2, 0xffc($t7) -/* 09CBA4 7F068074 0FC1E12D */ jal getPlayer_c_screenheight -/* 09CBA8 7F068078 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 09CBAC 7F06807C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09CBB0 7F068080 44815000 */ mtc1 $at, $f10 -/* 09CBB4 7F068084 C7B2001C */ lwc1 $f18, 0x1c($sp) -/* 09CBB8 7F068088 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 09CBBC 7F06808C 460A0402 */ mul.s $f16, $f0, $f10 -/* 09CBC0 7F068090 2442A0B0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x5f50 -/* 09CBC4 7F068094 8C580000 */ lw $t8, ($v0) -/* 09CBC8 7F068098 27A50024 */ addiu $a1, $sp, 0x24 -/* 09CBCC 7F06809C 3C06447A */ lui $a2, 0x447a -/* 09CBD0 7F0680A0 46128080 */ add.s $f2, $f16, $f18 -/* 09CBD4 7F0680A4 E7020FEC */ swc1 $f2, 0xfec($t8) -/* 09CBD8 7F0680A8 8C590000 */ lw $t9, ($v0) -/* 09CBDC 7F0680AC E7221000 */ swc1 $f2, 0x1000($t9) -/* 09CBE0 7F0680B0 8C440000 */ lw $a0, ($v0) -/* 09CBE4 7F0680B4 0FC1DFBB */ jal sub_GAME_7F077EEC -/* 09CBE8 7F0680B8 24840FFC */ addiu $a0, $a0, 0xffc -/* 09CBEC 7F0680BC 0FC19EAD */ jal sub_GAME_7F067AB4 -/* 09CBF0 7F0680C0 27A40024 */ addiu $a0, $sp, 0x24 -/* 09CBF4 7F0680C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 09CBF8 7F0680C8 27BD0030 */ addiu $sp, $sp, 0x30 -/* 09CBFC 7F0680CC 03E00008 */ jr $ra -/* 09CC00 7F0680D0 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F06802C -/* 09B1C4 7F0687D4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09B1C8 7F0687D8 AFBF0014 */ sw $ra, 0x14($sp) -/* 09B1CC 7F0687DC 0FC1E151 */ jal getPlayer_c_screenleft -/* 09B1D0 7F0687E0 00000000 */ nop -/* 09B1D4 7F0687E4 0FC1E149 */ jal getPlayer_c_screenwidth -/* 09B1D8 7F0687E8 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 09B1DC 7F0687EC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09B1E0 7F0687F0 44812000 */ mtc1 $at, $f4 -/* 09B1E4 7F0687F4 C7A8001C */ lwc1 $f8, 0x1c($sp) -/* 09B1E8 7F0687F8 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 09B1EC 7F0687FC 46040182 */ mul.s $f6, $f0, $f4 -/* 09B1F0 7F068800 24428BC0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x7440 -/* 09B1F4 7F068804 8C4E0000 */ lw $t6, ($v0) -/* 09B1F8 7F068808 46083080 */ add.s $f2, $f6, $f8 -/* 09B1FC 7F06880C E5C20FE0 */ swc1 $f2, 0xfe0($t6) -/* 09B200 7F068810 8C4F0000 */ lw $t7, ($v0) -/* 09B204 7F068814 0FC1E155 */ jal getPlayer_c_screentop -/* 09B208 7F068818 E5E20FF4 */ swc1 $f2, 0xff4($t7) -/* 09B20C 7F06881C 0FC1E14D */ jal getPlayer_c_screenheight -/* 09B210 7F068820 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 09B214 7F068824 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09B218 7F068828 44815000 */ mtc1 $at, $f10 -/* 09B21C 7F06882C C7B2001C */ lwc1 $f18, 0x1c($sp) -/* 09B220 7F068830 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 09B224 7F068834 460A0402 */ mul.s $f16, $f0, $f10 -/* 09B228 7F068838 24428BC0 */ addiu $v0, %lo(g_CurrentPlayer) # addiu $v0, $v0, -0x7440 -/* 09B22C 7F06883C 8C580000 */ lw $t8, ($v0) -/* 09B230 7F068840 27A50024 */ addiu $a1, $sp, 0x24 -/* 09B234 7F068844 3C06447A */ lui $a2, 0x447a -/* 09B238 7F068848 46128080 */ add.s $f2, $f16, $f18 -/* 09B23C 7F06884C E7020FE4 */ swc1 $f2, 0xfe4($t8) -/* 09B240 7F068850 8C590000 */ lw $t9, ($v0) -/* 09B244 7F068854 E7220FF8 */ swc1 $f2, 0xff8($t9) -/* 09B248 7F068858 8C440000 */ lw $a0, ($v0) -/* 09B24C 7F06885C 0FC1DFDB */ jal sub_GAME_7F077EEC -/* 09B250 7F068860 24840FF4 */ addiu $a0, $a0, 0xff4 -/* 09B254 7F068864 0FC1A097 */ jal sub_GAME_7F067AB4 -/* 09B258 7F068868 27A40024 */ addiu $a0, $sp, 0x24 -/* 09B25C 7F06886C 8FBF0014 */ lw $ra, 0x14($sp) -/* 09B260 7F068870 27BD0030 */ addiu $sp, $sp, 0x30 -/* 09B264 7F068874 03E00008 */ jr $ra -/* 09B268 7F068878 00000000 */ nop -) -#endif -#endif +void sub_GAME_7F0680D4(coord3d * coord) +{ + coord3d tmp; + g_CurrentPlayer->field_1010.x = coord->x; + g_CurrentPlayer->field_1010.y = coord->y; + g_CurrentPlayer->field_1010.z = coord->z; + matrix_4x4_set_rotation_around_xyz(coord->f, &g_CurrentPlayer->field_101C); -#ifdef NONMATCHING -void glabel(void) { + tmp.x = g_CurrentPlayer->field_101C.m[2][0] * 1000.0f; + tmp.y = g_CurrentPlayer->field_101C.m[2][1] * 1000.0f; + tmp.z = g_CurrentPlayer->field_101C.m[2][2] * 1000.0f; + sub_GAME_7F077FF4(&tmp, (coord3d* ) &g_CurrentPlayer->crosshair_angle); + g_CurrentPlayer->field_FFC.x = g_CurrentPlayer->crosshair_angle.x; + g_CurrentPlayer->field_FFC.y = g_CurrentPlayer->crosshair_angle.y; + + sub_GAME_7F067AB4(&tmp); } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0680D4 -/* 09CC04 7F0680D4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09CC08 7F0680D8 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 09CC0C 7F0680DC 2463A0B0 */ addiu $v1, %lo(g_CurrentPlayer) # addiu $v1, $v1, -0x5f50 -/* 09CC10 7F0680E0 AFBF0014 */ sw $ra, 0x14($sp) -/* 09CC14 7F0680E4 C4840000 */ lwc1 $f4, ($a0) -/* 09CC18 7F0680E8 8C6E0000 */ lw $t6, ($v1) -/* 09CC1C 7F0680EC E5C41010 */ swc1 $f4, 0x1010($t6) -/* 09CC20 7F0680F0 8C6F0000 */ lw $t7, ($v1) -/* 09CC24 7F0680F4 C4860004 */ lwc1 $f6, 4($a0) -/* 09CC28 7F0680F8 E5E61014 */ swc1 $f6, 0x1014($t7) -/* 09CC2C 7F0680FC 8C780000 */ lw $t8, ($v1) -/* 09CC30 7F068100 C4880008 */ lwc1 $f8, 8($a0) -/* 09CC34 7F068104 E7081018 */ swc1 $f8, 0x1018($t8) -/* 09CC38 7F068108 8C650000 */ lw $a1, ($v1) -/* 09CC3C 7F06810C 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz -/* 09CC40 7F068110 24A5101C */ addiu $a1, $a1, 0x101c -/* 09CC44 7F068114 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 09CC48 7F068118 2463A0B0 */ addiu $v1, %lo(g_CurrentPlayer) # addiu $v1, $v1, -0x5f50 -/* 09CC4C 7F06811C 8C620000 */ lw $v0, ($v1) -/* 09CC50 7F068120 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 09CC54 7F068124 44810000 */ mtc1 $at, $f0 -/* 09CC58 7F068128 C44A103C */ lwc1 $f10, 0x103c($v0) -/* 09CC5C 7F06812C 27A4001C */ addiu $a0, $sp, 0x1c -/* 09CC60 7F068130 24450FE8 */ addiu $a1, $v0, 0xfe8 -/* 09CC64 7F068134 46005402 */ mul.s $f16, $f10, $f0 -/* 09CC68 7F068138 E7B0001C */ swc1 $f16, 0x1c($sp) -/* 09CC6C 7F06813C C4521040 */ lwc1 $f18, 0x1040($v0) -/* 09CC70 7F068140 46009102 */ mul.s $f4, $f18, $f0 -/* 09CC74 7F068144 E7A40020 */ swc1 $f4, 0x20($sp) -/* 09CC78 7F068148 C4461044 */ lwc1 $f6, 0x1044($v0) -/* 09CC7C 7F06814C 46003202 */ mul.s $f8, $f6, $f0 -/* 09CC80 7F068150 0FC1DFFD */ jal sub_GAME_7F077FF4 -/* 09CC84 7F068154 E7A80024 */ swc1 $f8, 0x24($sp) -/* 09CC88 7F068158 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 09CC8C 7F06815C 2463A0B0 */ addiu $v1, %lo(g_CurrentPlayer) # addiu $v1, $v1, -0x5f50 -/* 09CC90 7F068160 8C620000 */ lw $v0, ($v1) -/* 09CC94 7F068164 27A4001C */ addiu $a0, $sp, 0x1c -/* 09CC98 7F068168 C44A0FE8 */ lwc1 $f10, 0xfe8($v0) -/* 09CC9C 7F06816C E44A0FFC */ swc1 $f10, 0xffc($v0) -/* 09CCA0 7F068170 8C620000 */ lw $v0, ($v1) -/* 09CCA4 7F068174 C4500FEC */ lwc1 $f16, 0xfec($v0) -/* 09CCA8 7F068178 0FC19EAD */ jal sub_GAME_7F067AB4 -/* 09CCAC 7F06817C E4501000 */ swc1 $f16, 0x1000($v0) -/* 09CCB0 7F068180 8FBF0014 */ lw $ra, 0x14($sp) -/* 09CCB4 7F068184 27BD0028 */ addiu $sp, $sp, 0x28 -/* 09CCB8 7F068188 03E00008 */ jr $ra -/* 09CCBC 7F06818C 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0680D4 -/* 09B26C 7F06887C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09B270 7F068880 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 09B274 7F068884 24638BC0 */ addiu $v1, %lo(g_CurrentPlayer) # addiu $v1, $v1, -0x7440 -/* 09B278 7F068888 AFBF0014 */ sw $ra, 0x14($sp) -/* 09B27C 7F06888C C4840000 */ lwc1 $f4, ($a0) -/* 09B280 7F068890 8C6E0000 */ lw $t6, ($v1) -/* 09B284 7F068894 E5C41008 */ swc1 $f4, 0x1008($t6) -/* 09B288 7F068898 8C6F0000 */ lw $t7, ($v1) -/* 09B28C 7F06889C C4860004 */ lwc1 $f6, 4($a0) -/* 09B290 7F0688A0 E5E6100C */ swc1 $f6, 0x100c($t7) -/* 09B294 7F0688A4 8C780000 */ lw $t8, ($v1) -/* 09B298 7F0688A8 C4880008 */ lwc1 $f8, 8($a0) -/* 09B29C 7F0688AC E7081010 */ swc1 $f8, 0x1010($t8) -/* 09B2A0 7F0688B0 8C650000 */ lw $a1, ($v1) -/* 09B2A4 7F0688B4 0FC162EF */ jal matrix_4x4_set_rotation_around_xyz -/* 09B2A8 7F0688B8 24A51014 */ addiu $a1, $a1, 0x1014 -/* 09B2AC 7F0688BC 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 09B2B0 7F0688C0 24638BC0 */ addiu $v1, %lo(g_CurrentPlayer) # addiu $v1, $v1, -0x7440 -/* 09B2B4 7F0688C4 8C620000 */ lw $v0, ($v1) -/* 09B2B8 7F0688C8 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 09B2BC 7F0688CC 44810000 */ mtc1 $at, $f0 -/* 09B2C0 7F0688D0 C44A1034 */ lwc1 $f10, 0x1034($v0) -/* 09B2C4 7F0688D4 27A4001C */ addiu $a0, $sp, 0x1c -/* 09B2C8 7F0688D8 24450FE0 */ addiu $a1, $v0, 0xfe0 -/* 09B2CC 7F0688DC 46005402 */ mul.s $f16, $f10, $f0 -/* 09B2D0 7F0688E0 E7B0001C */ swc1 $f16, 0x1c($sp) -/* 09B2D4 7F0688E4 C4521038 */ lwc1 $f18, 0x1038($v0) -/* 09B2D8 7F0688E8 46009102 */ mul.s $f4, $f18, $f0 -/* 09B2DC 7F0688EC E7A40020 */ swc1 $f4, 0x20($sp) -/* 09B2E0 7F0688F0 C446103C */ lwc1 $f6, 0x103c($v0) -/* 09B2E4 7F0688F4 46003202 */ mul.s $f8, $f6, $f0 -/* 09B2E8 7F0688F8 0FC1E01D */ jal sub_GAME_7F077FF4 -/* 09B2EC 7F0688FC E7A80024 */ swc1 $f8, 0x24($sp) -/* 09B2F0 7F068900 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 09B2F4 7F068904 24638BC0 */ addiu $v1, %lo(g_CurrentPlayer) # addiu $v1, $v1, -0x7440 -/* 09B2F8 7F068908 8C620000 */ lw $v0, ($v1) -/* 09B2FC 7F06890C 27A4001C */ addiu $a0, $sp, 0x1c -/* 09B300 7F068910 C44A0FE0 */ lwc1 $f10, 0xfe0($v0) -/* 09B304 7F068914 E44A0FF4 */ swc1 $f10, 0xff4($v0) -/* 09B308 7F068918 8C620000 */ lw $v0, ($v1) -/* 09B30C 7F06891C C4500FE4 */ lwc1 $f16, 0xfe4($v0) -/* 09B310 7F068920 0FC1A097 */ jal sub_GAME_7F067AB4 -/* 09B314 7F068924 E4500FF8 */ swc1 $f16, 0xff8($v0) -/* 09B318 7F068928 8FBF0014 */ lw $ra, 0x14($sp) -/* 09B31C 7F06892C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 09B320 7F068930 03E00008 */ jr $ra -/* 09B324 7F068934 00000000 */ nop -) -#endif -#endif - - @@ -29070,603 +23248,83 @@ void sub_GAME_7F068190(coord3d *zeropos, coord3d *vec) } +void sub_GAME_7F0681CC(coord3d* arg0, coord3d* arg1, enum GUNHAND arg2) +{ + coord2d crosspos; + s32 unused; + f32 inaccuracy; + f32 scaledspread; + f32 randfactor; + inaccuracy = get_ptr_item_statistics(getCurrentPlayerWeaponId(arg2))->Inaccuracy; + if ((bondwalkItemCheckBitflags(get_item_in_hand_or_watch_menu(arg2), 0x1000U) != 0) && (g_CurrentPlayer->hands[arg2].field_C08 == 1)) + { + inaccuracy *= 0.25f; + } -#ifdef NONMATCHING -void sub_GAME_7F0681CC(void *arg0, s32 arg1, s32 arg2) { - f32 sp18; - s32 sp1C; - f32 sp20; - f32 sp24; - f32 sp28; - f32 sp30; - f32 sp34; - ? temp_ret; - f32 temp_f10; - f32 temp_f16; - ? temp_ret_2; - f32 temp_f8; - f32 temp_f16_2; - f32 phi_f16; - f32 phi_f10; - f32 phi_f16_2; - f32 phi_f8; + scaledspread = (120.0f * inaccuracy) / viGetFovY(); - // Node 0 - sp28 = (f32) get_ptr_item_statistics(getCurrentPlayerWeaponId(arg2))->unk30; - if (bondwalkItemCheckBitflags(get_item_in_hand_or_watch_menu(arg2), 0x1000) != 0) - { - // Node 1 - if ((g_CurrentPlayer + (arg2 * 0x3a8))->unkC08 == 0x3e800000) - { - // Node 2 - sp28 = (f32) (sp28 * 0x3e800000); - } - } - // Node 3 - sp24 = (f32) ((120.0f * sp28) / viGetFovY()); - sp1C = randomGetNext(); - temp_ret = randomGetNext(); - temp_f10 = (f32) sp1C; - phi_f10 = temp_f10; - if (sp1C < 0) - { - // Node 4 - phi_f10 = (temp_f10 + M_U32_MAX_VALUE_F); - } - // Node 5 - temp_f16 = (f32) temp_ret; - phi_f16 = temp_f16; - if (temp_ret < 0) - { - // Node 6 - phi_f16 = (temp_f16 + M_U32_MAX_VALUE_F); - } - // Node 7 - 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)) + g_CurrentPlayer->unkFE8); - sp1C = randomGetNext(); - temp_ret_2 = randomGetNext(); - temp_f8 = (f32) sp1C; - phi_f8 = temp_f8; - if (sp1C < 0) - { - // Node 8 - phi_f8 = (temp_f8 + M_U32_MAX_VALUE_F); - } - // Node 9 - temp_f16_2 = (f32) temp_ret_2; - phi_f16_2 = temp_f16_2; - if (temp_ret_2 < 0) - { - // Node 10 - phi_f16_2 = (temp_f16_2 + M_U32_MAX_VALUE_F); - } - // Node 11 - sp20 = (f32) ((phi_f16_2 * 2.3283064365386963e-10f) * ((phi_f8 * 2.3283064365386963e-10f) - 0.5f)); - sp34 = (f32) (((getPlayer_c_screenheight() * (sp20 * sp24)) / 240.0f) + g_CurrentPlayer->unkFEC); - *arg0 = 0.0f; - arg0->unk4 = 0.0f; - arg0->unk8 = 0.0f; - return sub_GAME_7F077EEC(&sp30, arg1, 0x3f800000); + randfactor = (RANDOMFRAC() - 0.5f) * RANDOMFRAC(); + crosspos.x = g_CurrentPlayer->crosshair_angle.f[0] + randfactor * scaledspread * getPlayer_c_screenwidth() * (PAL ? 1.1764706f : 1.3333334f) + / (getPlayer_c_perspaspect() * 320.0f); + + randfactor = (RANDOMFRAC() - 0.5f) * RANDOMFRAC(); + crosspos.y = g_CurrentPlayer->crosshair_angle.f[1] + randfactor * scaledspread * getPlayer_c_screenheight() + / (PAL ? 272.0f : 240.0f); + + arg0->x = 0.0f; + arg0->y = 0.0f; + arg0->z = 0.0f; + + sub_GAME_7F077EEC(&crosspos, arg1, 1.0f); } + + +CasingRecord* casingCreate(ModelFileHeader* header, Mtxf* mtx) +{ + CasingRecord* entry = g_Casings; + CasingRecord* end = g_Casings + ARRAYCOUNT(g_Casings); + + while (entry < end && entry->header != NULL) + { + entry++; + } + + if (entry < end) + { + entry->header = header; + + entry->pos.x = mtx->m[3][0]; + entry->pos.y = mtx->m[3][1]; + entry->pos.z = mtx->m[3][2]; +#if VERSION_EU + matrix_7f05842c_eu(mtx, entry->unk1C); #else + entry->unk1C.m[0][0] = mtx->m[0][0]; + entry->unk1C.m[0][1] = mtx->m[0][1]; + entry->unk1C.m[0][2] = mtx->m[0][2]; + entry->unk1C.m[0][3] = 0.0f; -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.late_rodata -glabel D_800543B0 -.word 0x3faaaaab /*1.3333334*/ -.text -glabel sub_GAME_7F0681CC -/* 09CCFC 7F0681CC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 09CD00 7F0681D0 AFBF0014 */ sw $ra, 0x14($sp) -/* 09CD04 7F0681D4 AFA40038 */ sw $a0, 0x38($sp) -/* 09CD08 7F0681D8 AFA5003C */ sw $a1, 0x3c($sp) -/* 09CD0C 7F0681DC AFA60040 */ sw $a2, 0x40($sp) -/* 09CD10 7F0681E0 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09CD14 7F0681E4 00C02025 */ move $a0, $a2 -/* 09CD18 7F0681E8 0FC1722D */ jal get_ptr_item_statistics -/* 09CD1C 7F0681EC 00402025 */ move $a0, $v0 -/* 09CD20 7F0681F0 C4440030 */ lwc1 $f4, 0x30($v0) -/* 09CD24 7F0681F4 8FA40040 */ lw $a0, 0x40($sp) -/* 09CD28 7F0681F8 0FC17691 */ jal get_item_in_hand_or_watch_menu -/* 09CD2C 7F0681FC E7A40028 */ swc1 $f4, 0x28($sp) -/* 09CD30 7F068200 00402025 */ move $a0, $v0 -/* 09CD34 7F068204 0FC1782D */ jal bondwalkItemCheckBitflags -/* 09CD38 7F068208 24051000 */ li $a1, 4096 -/* 09CD3C 7F06820C 10400015 */ beqz $v0, .L7F068264 -/* 09CD40 7F068210 00000000 */ nop -/* 09CD44 7F068214 8FAF0040 */ lw $t7, 0x40($sp) -/* 09CD48 7F068218 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 09CD4C 7F06821C 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09CD50 7F068220 000FC0C0 */ sll $t8, $t7, 3 -/* 09CD54 7F068224 030FC023 */ subu $t8, $t8, $t7 -/* 09CD58 7F068228 0018C080 */ sll $t8, $t8, 2 -/* 09CD5C 7F06822C 030FC021 */ addu $t8, $t8, $t7 -/* 09CD60 7F068230 0018C080 */ sll $t8, $t8, 2 -/* 09CD64 7F068234 030FC021 */ addu $t8, $t8, $t7 -/* 09CD68 7F068238 0018C0C0 */ sll $t8, $t8, 3 -/* 09CD6C 7F06823C 01D8C821 */ addu $t9, $t6, $t8 -/* 09CD70 7F068240 8F280C08 */ lw $t0, 0xc08($t9) -/* 09CD74 7F068244 24010001 */ li $at, 1 -/* 09CD78 7F068248 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 09CD7C 7F06824C 15010005 */ bne $t0, $at, .L7F068264 -/* 09CD80 7F068250 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 09CD84 7F068254 44814000 */ mtc1 $at, $f8 -/* 09CD88 7F068258 00000000 */ nop -/* 09CD8C 7F06825C 46083282 */ mul.s $f10, $f6, $f8 -/* 09CD90 7F068260 E7AA0028 */ swc1 $f10, 0x28($sp) -.L7F068264: -/* 09CD94 7F068264 0C001177 */ jal viGetFovY -/* 09CD98 7F068268 00000000 */ nop -/* 09CD9C 7F06826C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 09CDA0 7F068270 44818000 */ mtc1 $at, $f16 -/* 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 randomGetNext -/* 09CDB4 7F068284 E7A60024 */ swc1 $f6, 0x24($sp) -/* 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 -/* 09CDC8 7F068298 44810000 */ mtc1 $at, $f0 -/* 09CDCC 7F06829C 44894000 */ mtc1 $t1, $f8 -/* 09CDD0 7F0682A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09CDD4 7F0682A4 05210004 */ bgez $t1, .L7F0682B8 -/* 09CDD8 7F0682A8 468042A0 */ cvt.s.w $f10, $f8 -/* 09CDDC 7F0682AC 44818000 */ mtc1 $at, $f16 -/* 09CDE0 7F0682B0 00000000 */ nop -/* 09CDE4 7F0682B4 46105280 */ add.s $f10, $f10, $f16 -.L7F0682B8: -/* 09CDE8 7F0682B8 46005482 */ mul.s $f18, $f10, $f0 -/* 09CDEC 7F0682BC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09CDF0 7F0682C0 44812000 */ mtc1 $at, $f4 -/* 09CDF4 7F0682C4 44824000 */ mtc1 $v0, $f8 -/* 09CDF8 7F0682C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09CDFC 7F0682CC 46804420 */ cvt.s.w $f16, $f8 -/* 09CE00 7F0682D0 04410004 */ bgez $v0, .L7F0682E4 -/* 09CE04 7F0682D4 46049181 */ sub.s $f6, $f18, $f4 -/* 09CE08 7F0682D8 44815000 */ mtc1 $at, $f10 -/* 09CE0C 7F0682DC 00000000 */ nop -/* 09CE10 7F0682E0 460A8400 */ add.s $f16, $f16, $f10 -.L7F0682E4: -/* 09CE14 7F0682E4 46008482 */ mul.s $f18, $f16, $f0 -/* 09CE18 7F0682E8 00000000 */ nop -/* 09CE1C 7F0682EC 46069102 */ mul.s $f4, $f18, $f6 -/* 09CE20 7F0682F0 0FC1E129 */ jal getPlayer_c_screenwidth -/* 09CE24 7F0682F4 E7A40020 */ swc1 $f4, 0x20($sp) -/* 09CE28 7F0682F8 0FC1E13D */ jal getPlayer_c_perspaspect -/* 09CE2C 7F0682FC E7A00018 */ swc1 $f0, 0x18($sp) -/* 09CE30 7F068300 C7A80020 */ lwc1 $f8, 0x20($sp) -/* 09CE34 7F068304 C7AA0024 */ lwc1 $f10, 0x24($sp) -/* 09CE38 7F068308 C7B20018 */ lwc1 $f18, 0x18($sp) -/* 09CE3C 7F06830C 3C018005 */ lui $at, %hi(D_800543B0) -/* 09CE40 7F068310 460A4402 */ mul.s $f16, $f8, $f10 -/* 09CE44 7F068314 C42443B0 */ lwc1 $f4, %lo(D_800543B0)($at) -/* 09CE48 7F068318 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 09CE4C 7F06831C 44815000 */ mtc1 $at, $f10 -/* 09CE50 7F068320 3C0A8008 */ lui $t2, %hi(g_CurrentPlayer) -/* 09CE54 7F068324 8D4AA0B0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 09CE58 7F068328 46128182 */ mul.s $f6, $f16, $f18 -/* 09CE5C 7F06832C 00000000 */ nop -/* 09CE60 7F068330 46043202 */ mul.s $f8, $f6, $f4 -/* 09CE64 7F068334 C5460FE8 */ lwc1 $f6, 0xfe8($t2) -/* 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 randomGetNext -/* 09CE78 7F068348 E7A40030 */ swc1 $f4, 0x30($sp) -/* 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 -/* 09CE8C 7F06835C 44810000 */ mtc1 $at, $f0 -/* 09CE90 7F068360 448B5000 */ mtc1 $t3, $f10 -/* 09CE94 7F068364 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09CE98 7F068368 05610004 */ bgez $t3, .L7F06837C -/* 09CE9C 7F06836C 46805220 */ cvt.s.w $f8, $f10 -/* 09CEA0 7F068370 44818000 */ mtc1 $at, $f16 -/* 09CEA4 7F068374 00000000 */ nop -/* 09CEA8 7F068378 46104200 */ add.s $f8, $f8, $f16 -.L7F06837C: -/* 09CEAC 7F06837C 46004482 */ mul.s $f18, $f8, $f0 -/* 09CEB0 7F068380 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09CEB4 7F068384 44813000 */ mtc1 $at, $f6 -/* 09CEB8 7F068388 44825000 */ mtc1 $v0, $f10 -/* 09CEBC 7F06838C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09CEC0 7F068390 46805420 */ cvt.s.w $f16, $f10 -/* 09CEC4 7F068394 04410004 */ bgez $v0, .L7F0683A8 -/* 09CEC8 7F068398 46069101 */ sub.s $f4, $f18, $f6 -/* 09CECC 7F06839C 44814000 */ mtc1 $at, $f8 -/* 09CED0 7F0683A0 00000000 */ nop -/* 09CED4 7F0683A4 46088400 */ add.s $f16, $f16, $f8 -.L7F0683A8: -/* 09CED8 7F0683A8 46008482 */ mul.s $f18, $f16, $f0 -/* 09CEDC 7F0683AC 00000000 */ nop -/* 09CEE0 7F0683B0 46049182 */ mul.s $f6, $f18, $f4 -/* 09CEE4 7F0683B4 0FC1E12D */ jal getPlayer_c_screenheight -/* 09CEE8 7F0683B8 E7A60020 */ swc1 $f6, 0x20($sp) -/* 09CEEC 7F0683BC C7AA0020 */ lwc1 $f10, 0x20($sp) -/* 09CEF0 7F0683C0 C7A80024 */ lwc1 $f8, 0x24($sp) -/* 09CEF4 7F0683C4 3C014370 */ li $at, 0x43700000 # 240.000000 -/* 09CEF8 7F0683C8 44812000 */ mtc1 $at, $f4 -/* 09CEFC 7F0683CC 46085402 */ mul.s $f16, $f10, $f8 -/* 09CF00 7F0683D0 3C0C8008 */ lui $t4, %hi(g_CurrentPlayer) -/* 09CF04 7F0683D4 8D8CA0B0 */ lw $t4, %lo(g_CurrentPlayer)($t4) -/* 09CF08 7F0683D8 8FA20038 */ lw $v0, 0x38($sp) -/* 09CF0C 7F0683DC 44801000 */ mtc1 $zero, $f2 -/* 09CF10 7F0683E0 C58A0FEC */ lwc1 $f10, 0xfec($t4) -/* 09CF14 7F0683E4 27A40030 */ addiu $a0, $sp, 0x30 -/* 09CF18 7F0683E8 46100482 */ mul.s $f18, $f0, $f16 -/* 09CF1C 7F0683EC 3C063F80 */ lui $a2, 0x3f80 -/* 09CF20 7F0683F0 46049183 */ div.s $f6, $f18, $f4 -/* 09CF24 7F0683F4 460A3200 */ add.s $f8, $f6, $f10 -/* 09CF28 7F0683F8 E7A80034 */ swc1 $f8, 0x34($sp) -/* 09CF2C 7F0683FC E4420000 */ swc1 $f2, ($v0) -/* 09CF30 7F068400 E4420004 */ swc1 $f2, 4($v0) -/* 09CF34 7F068404 E4420008 */ swc1 $f2, 8($v0) -/* 09CF38 7F068408 0FC1DFBB */ jal sub_GAME_7F077EEC -/* 09CF3C 7F06840C 8FA5003C */ lw $a1, 0x3c($sp) -/* 09CF40 7F068410 8FBF0014 */ lw $ra, 0x14($sp) -/* 09CF44 7F068414 27BD0038 */ addiu $sp, $sp, 0x38 -/* 09CF48 7F068418 03E00008 */ jr $ra -/* 09CF4C 7F06841C 00000000 */ nop -) + entry->unk1C.m[1][0] = mtx->m[1][0]; + entry->unk1C.m[1][1] = mtx->m[1][1]; + entry->unk1C.m[1][2] = mtx->m[1][2]; + entry->unk1C.m[1][3] = 0.0f; + + entry->unk1C.m[2][0] = mtx->m[2][0]; + entry->unk1C.m[2][1] = mtx->m[2][1]; + entry->unk1C.m[2][2] = mtx->m[2][2]; + entry->unk1C.m[2][3] = 0.0f; + + entry->unk1C.m[3][0] = 0.0f; + entry->unk1C.m[3][1] = 0.0f; + entry->unk1C.m[3][2] = 0.0f; + entry->unk1C.m[3][3] = 1.0f; #endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_800543B0 -.word 0x3f969697 -.text -glabel sub_GAME_7F0681CC -/* 09B364 7F068974 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 09B368 7F068978 AFBF0014 */ sw $ra, 0x14($sp) -/* 09B36C 7F06897C AFA40038 */ sw $a0, 0x38($sp) -/* 09B370 7F068980 AFA5003C */ sw $a1, 0x3c($sp) -/* 09B374 7F068984 AFA60040 */ sw $a2, 0x40($sp) -/* 09B378 7F068988 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09B37C 7F06898C 00C02025 */ move $a0, $a2 -/* 09B380 7F068990 0FC17359 */ jal get_ptr_item_statistics -/* 09B384 7F068994 00402025 */ move $a0, $v0 -/* 09B388 7F068998 C4440030 */ lwc1 $f4, 0x30($v0) -/* 09B38C 7F06899C 8FA40040 */ lw $a0, 0x40($sp) -/* 09B390 7F0689A0 0FC177BF */ jal get_item_in_hand_or_watch_menu -/* 09B394 7F0689A4 E7A40028 */ swc1 $f4, 0x28($sp) -/* 09B398 7F0689A8 00402025 */ move $a0, $v0 -/* 09B39C 7F0689AC 0FC1795B */ jal bondwalkItemCheckBitflags -/* 09B3A0 7F0689B0 24051000 */ li $a1, 4096 -/* 09B3A4 7F0689B4 10400015 */ beqz $v0, .L7F068A0C -/* 09B3A8 7F0689B8 00000000 */ nop -/* 09B3AC 7F0689BC 8FAF0040 */ lw $t7, 0x40($sp) -/* 09B3B0 7F0689C0 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 09B3B4 7F0689C4 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09B3B8 7F0689C8 000FC0C0 */ sll $t8, $t7, 3 -/* 09B3BC 7F0689CC 030FC023 */ subu $t8, $t8, $t7 -/* 09B3C0 7F0689D0 0018C080 */ sll $t8, $t8, 2 -/* 09B3C4 7F0689D4 030FC021 */ addu $t8, $t8, $t7 -/* 09B3C8 7F0689D8 0018C080 */ sll $t8, $t8, 2 -/* 09B3CC 7F0689DC 030FC021 */ addu $t8, $t8, $t7 -/* 09B3D0 7F0689E0 0018C0C0 */ sll $t8, $t8, 3 -/* 09B3D4 7F0689E4 01D8C821 */ addu $t9, $t6, $t8 -/* 09B3D8 7F0689E8 8F280C00 */ lw $t0, 0xc00($t9) -/* 09B3DC 7F0689EC 24010001 */ li $at, 1 -/* 09B3E0 7F0689F0 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 09B3E4 7F0689F4 15010005 */ bne $t0, $at, .L7F068A0C -/* 09B3E8 7F0689F8 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 09B3EC 7F0689FC 44814000 */ mtc1 $at, $f8 -/* 09B3F0 7F068A00 00000000 */ nop -/* 09B3F4 7F068A04 46083282 */ mul.s $f10, $f6, $f8 -/* 09B3F8 7F068A08 E7AA0028 */ swc1 $f10, 0x28($sp) -.L7F068A0C: -/* 09B3FC 7F068A0C 0C00100B */ jal viGetFovY -/* 09B400 7F068A10 00000000 */ nop -/* 09B404 7F068A14 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 09B408 7F068A18 44818000 */ mtc1 $at, $f16 -/* 09B40C 7F068A1C C7B20028 */ lwc1 $f18, 0x28($sp) -/* 09B410 7F068A20 46128102 */ mul.s $f4, $f16, $f18 -/* 09B414 7F068A24 46002183 */ div.s $f6, $f4, $f0 -/* 09B418 7F068A28 0C00262C */ jal randomGetNext -/* 09B41C 7F068A2C E7A60024 */ swc1 $f6, 0x24($sp) -/* 09B420 7F068A30 0C00262C */ jal randomGetNext -/* 09B424 7F068A34 AFA2001C */ sw $v0, 0x1c($sp) -/* 09B428 7F068A38 8FA9001C */ lw $t1, 0x1c($sp) -/* 09B42C 7F068A3C 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 09B430 7F068A40 44810000 */ mtc1 $at, $f0 -/* 09B434 7F068A44 44894000 */ mtc1 $t1, $f8 -/* 09B438 7F068A48 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09B43C 7F068A4C 05210004 */ bgez $t1, .L7F068A60 -/* 09B440 7F068A50 468042A0 */ cvt.s.w $f10, $f8 -/* 09B444 7F068A54 44818000 */ mtc1 $at, $f16 -/* 09B448 7F068A58 00000000 */ nop -/* 09B44C 7F068A5C 46105280 */ add.s $f10, $f10, $f16 -.L7F068A60: -/* 09B450 7F068A60 46005482 */ mul.s $f18, $f10, $f0 -/* 09B454 7F068A64 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09B458 7F068A68 44812000 */ mtc1 $at, $f4 -/* 09B45C 7F068A6C 44824000 */ mtc1 $v0, $f8 -/* 09B460 7F068A70 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09B464 7F068A74 46804420 */ cvt.s.w $f16, $f8 -/* 09B468 7F068A78 04410004 */ bgez $v0, .L7F068A8C -/* 09B46C 7F068A7C 46049181 */ sub.s $f6, $f18, $f4 -/* 09B470 7F068A80 44815000 */ mtc1 $at, $f10 -/* 09B474 7F068A84 00000000 */ nop -/* 09B478 7F068A88 460A8400 */ add.s $f16, $f16, $f10 -.L7F068A8C: -/* 09B47C 7F068A8C 46008482 */ mul.s $f18, $f16, $f0 -/* 09B480 7F068A90 00000000 */ nop -/* 09B484 7F068A94 46069102 */ mul.s $f4, $f18, $f6 -/* 09B488 7F068A98 0FC1E149 */ jal getPlayer_c_screenwidth -/* 09B48C 7F068A9C E7A40020 */ swc1 $f4, 0x20($sp) -/* 09B490 7F068AA0 0FC1E15D */ jal getPlayer_c_perspaspect -/* 09B494 7F068AA4 E7A00018 */ swc1 $f0, 0x18($sp) -/* 09B498 7F068AA8 C7A80020 */ lwc1 $f8, 0x20($sp) -/* 09B49C 7F068AAC C7AA0024 */ lwc1 $f10, 0x24($sp) -/* 09B4A0 7F068AB0 C7B20018 */ lwc1 $f18, 0x18($sp) -/* 09B4A4 7F068AB4 3C018005 */ lui $at, %hi(D_800543B0) # $at, 0x8005 -/* 09B4A8 7F068AB8 460A4402 */ mul.s $f16, $f8, $f10 -/* 09B4AC 7F068ABC C424A4F0 */ lwc1 $f4, %lo(D_800543B0)($at) -/* 09B4B0 7F068AC0 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 09B4B4 7F068AC4 44815000 */ mtc1 $at, $f10 -/* 09B4B8 7F068AC8 3C0A8007 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8007 -/* 09B4BC 7F068ACC 8D4A8BC0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 09B4C0 7F068AD0 46128182 */ mul.s $f6, $f16, $f18 -/* 09B4C4 7F068AD4 00000000 */ nop -/* 09B4C8 7F068AD8 46043202 */ mul.s $f8, $f6, $f4 -/* 09B4CC 7F068ADC C5460FE0 */ lwc1 $f6, 0xfe0($t2) -/* 09B4D0 7F068AE0 460A0402 */ mul.s $f16, $f0, $f10 -/* 09B4D4 7F068AE4 46104483 */ div.s $f18, $f8, $f16 -/* 09B4D8 7F068AE8 46069100 */ add.s $f4, $f18, $f6 -/* 09B4DC 7F068AEC 0C00262C */ jal randomGetNext -/* 09B4E0 7F068AF0 E7A40030 */ swc1 $f4, 0x30($sp) -/* 09B4E4 7F068AF4 0C00262C */ jal randomGetNext -/* 09B4E8 7F068AF8 AFA2001C */ sw $v0, 0x1c($sp) -/* 09B4EC 7F068AFC 8FAB001C */ lw $t3, 0x1c($sp) -/* 09B4F0 7F068B00 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 09B4F4 7F068B04 44810000 */ mtc1 $at, $f0 -/* 09B4F8 7F068B08 448B5000 */ mtc1 $t3, $f10 -/* 09B4FC 7F068B0C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09B500 7F068B10 05610004 */ bgez $t3, .L7F068B24 -/* 09B504 7F068B14 46805220 */ cvt.s.w $f8, $f10 -/* 09B508 7F068B18 44818000 */ mtc1 $at, $f16 -/* 09B50C 7F068B1C 00000000 */ nop -/* 09B510 7F068B20 46104200 */ add.s $f8, $f8, $f16 -.L7F068B24: -/* 09B514 7F068B24 46004482 */ mul.s $f18, $f8, $f0 -/* 09B518 7F068B28 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09B51C 7F068B2C 44813000 */ mtc1 $at, $f6 -/* 09B520 7F068B30 44825000 */ mtc1 $v0, $f10 -/* 09B524 7F068B34 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 09B528 7F068B38 46805420 */ cvt.s.w $f16, $f10 -/* 09B52C 7F068B3C 04410004 */ bgez $v0, .L7F068B50 -/* 09B530 7F068B40 46069101 */ sub.s $f4, $f18, $f6 -/* 09B534 7F068B44 44814000 */ mtc1 $at, $f8 -/* 09B538 7F068B48 00000000 */ nop -/* 09B53C 7F068B4C 46088400 */ add.s $f16, $f16, $f8 -.L7F068B50: -/* 09B540 7F068B50 46008482 */ mul.s $f18, $f16, $f0 -/* 09B544 7F068B54 00000000 */ nop -/* 09B548 7F068B58 46049182 */ mul.s $f6, $f18, $f4 -/* 09B54C 7F068B5C 0FC1E14D */ jal getPlayer_c_screenheight -/* 09B550 7F068B60 E7A60020 */ swc1 $f6, 0x20($sp) -/* 09B554 7F068B64 C7AA0020 */ lwc1 $f10, 0x20($sp) -/* 09B558 7F068B68 C7A80024 */ lwc1 $f8, 0x24($sp) -/* 09B55C 7F068B6C 3C014388 */ li $at, 0x43880000 # 272.000000 -/* 09B560 7F068B70 44812000 */ mtc1 $at, $f4 -/* 09B564 7F068B74 46085402 */ mul.s $f16, $f10, $f8 -/* 09B568 7F068B78 3C0C8007 */ lui $t4, %hi(g_CurrentPlayer) # $t4, 0x8007 -/* 09B56C 7F068B7C 8D8C8BC0 */ lw $t4, %lo(g_CurrentPlayer)($t4) -/* 09B570 7F068B80 8FA20038 */ lw $v0, 0x38($sp) -/* 09B574 7F068B84 44801000 */ mtc1 $zero, $f2 -/* 09B578 7F068B88 C58A0FE4 */ lwc1 $f10, 0xfe4($t4) -/* 09B57C 7F068B8C 27A40030 */ addiu $a0, $sp, 0x30 -/* 09B580 7F068B90 46100482 */ mul.s $f18, $f0, $f16 -/* 09B584 7F068B94 3C063F80 */ lui $a2, 0x3f80 -/* 09B588 7F068B98 46049183 */ div.s $f6, $f18, $f4 -/* 09B58C 7F068B9C 460A3200 */ add.s $f8, $f6, $f10 -/* 09B590 7F068BA0 E7A80034 */ swc1 $f8, 0x34($sp) -/* 09B594 7F068BA4 E4420000 */ swc1 $f2, ($v0) -/* 09B598 7F068BA8 E4420004 */ swc1 $f2, 4($v0) -/* 09B59C 7F068BAC E4420008 */ swc1 $f2, 8($v0) -/* 09B5A0 7F068BB0 0FC1DFDB */ jal sub_GAME_7F077EEC -/* 09B5A4 7F068BB4 8FA5003C */ lw $a1, 0x3c($sp) -/* 09B5A8 7F068BB8 8FBF0014 */ lw $ra, 0x14($sp) -/* 09B5AC 7F068BBC 27BD0038 */ addiu $sp, $sp, 0x38 -/* 09B5B0 7F068BC0 03E00008 */ jr $ra -/* 09B5B4 7F068BC4 00000000 */ nop -) -#endif - -#endif - - - - - -#ifdef NONMATCHING -u32 sub_GAME_7F068420(s32 arg0, void *arg1) { - u32 temp_v1; - u32 phi_v1; - u32 phi_v1_2; - - // Node 0 - phi_v1_2 = &dword_CODE_bss_80075DC8; - if (dword_CODE_bss_80075DC8+0x9C != 0) - { - // Node 1 - phi_v1 = &dword_CODE_bss_80075DC8; - // Node 2 - temp_v1 = (phi_v1 + 0xa0); - phi_v1_2 = temp_v1; - if (temp_v1 < &dword_CODE_bss_80076A48) - { - // Node 3 - phi_v1 = temp_v1; - phi_v1_2 = temp_v1; - if (temp_v1->unk9C != 0) - { - goto loop_2; - } - } + return entry; } - // Node 4 - if ((u32) phi_v1_2 < &dword_CODE_bss_80076A48) - { - // Node 5 - phi_v1_2->unk9C = arg0; - phi_v1_2->unk4 = (f32) arg1->unk30; - phi_v1_2->unk8 = (f32) arg1->unk34; - phi_v1_2->unkC = (f32) arg1->unk38; - phi_v1_2->unk1C = (f32) *arg1; - phi_v1_2->unk20 = (f32) arg1->unk4; - phi_v1_2->unk28 = 0.0f; - phi_v1_2->unk24 = (f32) arg1->unk8; - phi_v1_2->unk2C = (f32) arg1->unk10; - phi_v1_2->unk30 = (f32) arg1->unk14; - phi_v1_2->unk38 = 0.0f; - phi_v1_2->unk34 = (f32) arg1->unk18; - phi_v1_2->unk3C = (f32) arg1->unk20; - phi_v1_2->unk40 = (f32) arg1->unk24; - phi_v1_2->unk48 = 0.0f; - phi_v1_2->unk4C = 0.0f; - phi_v1_2->unk50 = 0.0f; - phi_v1_2->unk54 = 0.0f; - phi_v1_2->unk58 = 1.0f; - phi_v1_2->unk44 = (f32) arg1->unk28; - return phi_v1_2; - } - // Node 6 - return 0U; + + return NULL; } -#else -#ifndef VERSION_EU -GLOBAL_ASM( -.text -glabel sub_GAME_7F068420 -/* 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 -/* 09CF64 7F068434 3C028007 */ lui $v0, %hi(dword_CODE_bss_80076A48) -/* 09CF68 7F068438 24426A48 */ addiu $v0, %lo(dword_CODE_bss_80076A48) # addiu $v0, $v0, 0x6a48 -/* 09CF6C 7F06843C 246300A0 */ addiu $v1, $v1, 0xa0 -.L7F068440: -/* 09CF70 7F068440 0062082B */ sltu $at, $v1, $v0 -/* 09CF74 7F068444 10200004 */ beqz $at, .L7F068458 -/* 09CF78 7F068448 00000000 */ nop -/* 09CF7C 7F06844C 8C6F009C */ lw $t7, 0x9c($v1) -/* 09CF80 7F068450 55E0FFFB */ bnezl $t7, .L7F068440 -/* 09CF84 7F068454 246300A0 */ addiu $v1, $v1, 0xa0 -.L7F068458: -/* 09CF88 7F068458 3C028007 */ lui $v0, %hi(dword_CODE_bss_80076A48) -/* 09CF8C 7F06845C 24426A48 */ addiu $v0, %lo(dword_CODE_bss_80076A48) # addiu $v0, $v0, 0x6a48 -/* 09CF90 7F068460 0062082B */ sltu $at, $v1, $v0 -/* 09CF94 7F068464 10200026 */ beqz $at, .L7F068500 -/* 09CF98 7F068468 00001025 */ move $v0, $zero -/* 09CF9C 7F06846C AC64009C */ sw $a0, 0x9c($v1) -/* 09CFA0 7F068470 C4A40030 */ lwc1 $f4, 0x30($a1) -/* 09CFA4 7F068474 44800000 */ mtc1 $zero, $f0 -/* 09CFA8 7F068478 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09CFAC 7F06847C E4640004 */ swc1 $f4, 4($v1) -/* 09CFB0 7F068480 C4A60034 */ lwc1 $f6, 0x34($a1) -/* 09CFB4 7F068484 00601025 */ move $v0, $v1 -/* 09CFB8 7F068488 E4660008 */ swc1 $f6, 8($v1) -/* 09CFBC 7F06848C C4A80038 */ lwc1 $f8, 0x38($a1) -/* 09CFC0 7F068490 E468000C */ swc1 $f8, 0xc($v1) -/* 09CFC4 7F068494 C4AA0000 */ lwc1 $f10, ($a1) -/* 09CFC8 7F068498 E46A001C */ swc1 $f10, 0x1c($v1) -/* 09CFCC 7F06849C C4B00004 */ lwc1 $f16, 4($a1) -/* 09CFD0 7F0684A0 E4700020 */ swc1 $f16, 0x20($v1) -/* 09CFD4 7F0684A4 C4B20008 */ lwc1 $f18, 8($a1) -/* 09CFD8 7F0684A8 E4600028 */ swc1 $f0, 0x28($v1) -/* 09CFDC 7F0684AC E4720024 */ swc1 $f18, 0x24($v1) -/* 09CFE0 7F0684B0 C4A40010 */ lwc1 $f4, 0x10($a1) -/* 09CFE4 7F0684B4 E464002C */ swc1 $f4, 0x2c($v1) -/* 09CFE8 7F0684B8 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 09CFEC 7F0684BC 44812000 */ mtc1 $at, $f4 -/* 09CFF0 7F0684C0 E4660030 */ swc1 $f6, 0x30($v1) -/* 09CFF4 7F0684C4 C4A80018 */ lwc1 $f8, 0x18($a1) -/* 09CFF8 7F0684C8 E4600038 */ swc1 $f0, 0x38($v1) -/* 09CFFC 7F0684CC E4680034 */ swc1 $f8, 0x34($v1) -/* 09D000 7F0684D0 C4AA0020 */ lwc1 $f10, 0x20($a1) -/* 09D004 7F0684D4 E46A003C */ swc1 $f10, 0x3c($v1) -/* 09D008 7F0684D8 C4B00024 */ lwc1 $f16, 0x24($a1) -/* 09D00C 7F0684DC E4700040 */ swc1 $f16, 0x40($v1) -/* 09D010 7F0684E0 C4B20028 */ lwc1 $f18, 0x28($a1) -/* 09D014 7F0684E4 E4600048 */ swc1 $f0, 0x48($v1) -/* 09D018 7F0684E8 E460004C */ swc1 $f0, 0x4c($v1) -/* 09D01C 7F0684EC E4600050 */ swc1 $f0, 0x50($v1) -/* 09D020 7F0684F0 E4600054 */ swc1 $f0, 0x54($v1) -/* 09D024 7F0684F4 E4640058 */ swc1 $f4, 0x58($v1) -/* 09D028 7F0684F8 03E00008 */ jr $ra -/* 09D02C 7F0684FC E4720044 */ swc1 $f18, 0x44($v1) - -.L7F068500: -/* 09D030 7F068500 03E00008 */ jr $ra -/* 09D034 7F068504 00000000 */ nop -) -#endif - -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel sub_GAME_7F068420 -/* 09B5B8 7F068BC8 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_80075DC8+0x64) # $t6, 0x8006 -/* 09B5BC 7F068BCC 8DCE4D6C */ lw $t6, %lo(dword_CODE_bss_80075DC8+0x64)($t6) -/* 09B5C0 7F068BD0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 09B5C4 7F068BD4 3C038006 */ lui $v1, %hi(dword_CODE_bss_80075DC8) # $v1, 0x8006 -/* 09B5C8 7F068BD8 AFBF0014 */ sw $ra, 0x14($sp) -/* 09B5CC 7F068BDC 00803825 */ move $a3, $a0 -/* 09B5D0 7F068BE0 00A03025 */ move $a2, $a1 -/* 09B5D4 7F068BE4 11C0000A */ beqz $t6, .L7F068C10eu -/* 09B5D8 7F068BE8 24634D08 */ addiu $v1, %lo(dword_CODE_bss_80075DC8) # addiu $v1, $v1, 0x4d08 -/* 09B5DC 7F068BEC 3C028006 */ lui $v0, %hi(dword_CODE_bss_80076A48) # $v0, 0x8006 -/* 09B5E0 7F068BF0 24425528 */ addiu $v0, %lo(dword_CODE_bss_80076A48) # addiu $v0, $v0, 0x5528 -/* 09B5E4 7F068BF4 24630068 */ addiu $v1, $v1, 0x68 -.L7F068BF8eu: -/* 09B5E8 7F068BF8 0062082B */ sltu $at, $v1, $v0 -/* 09B5EC 7F068BFC 10200004 */ beqz $at, .L7F068C10eu -/* 09B5F0 7F068C00 00000000 */ nop -/* 09B5F4 7F068C04 8C6F0064 */ lw $t7, 0x64($v1) -/* 09B5F8 7F068C08 55E0FFFB */ bnezl $t7, .L7F068BF8eu -/* 09B5FC 7F068C0C 24630068 */ addiu $v1, $v1, 0x68 -.L7F068C10eu: -/* 09B600 7F068C10 3C028006 */ lui $v0, %hi(dword_CODE_bss_80076A48) # $v0, 0x8006 -/* 09B604 7F068C14 24425528 */ addiu $v0, %lo(dword_CODE_bss_80076A48) # addiu $v0, $v0, 0x5528 -/* 09B608 7F068C18 0062082B */ sltu $at, $v1, $v0 -/* 09B60C 7F068C1C 1020000E */ beqz $at, .L7F068C58 -/* 09B610 7F068C20 00001025 */ move $v0, $zero -/* 09B614 7F068C24 AC670064 */ sw $a3, 0x64($v1) -/* 09B618 7F068C28 C4C40030 */ lwc1 $f4, 0x30($a2) -/* 09B61C 7F068C2C 00C02025 */ move $a0, $a2 -/* 09B620 7F068C30 2465001C */ addiu $a1, $v1, 0x1c -/* 09B624 7F068C34 E4640004 */ swc1 $f4, 4($v1) -/* 09B628 7F068C38 C4C60034 */ lwc1 $f6, 0x34($a2) -/* 09B62C 7F068C3C E4660008 */ swc1 $f6, 8($v1) -/* 09B630 7F068C40 C4C80038 */ lwc1 $f8, 0x38($a2) -/* 09B634 7F068C44 E468000C */ swc1 $f8, 0xc($v1) -/* 09B638 7F068C48 0FC1610B */ jal matrix_7f05842c_eu -/* 09B63C 7F068C4C AFA3001C */ sw $v1, 0x1c($sp) -/* 09B640 7F068C50 10000001 */ b .L7F068C58 -/* 09B644 7F068C54 8FA2001C */ lw $v0, 0x1c($sp) -.L7F068C58: -/* 09B648 7F068C58 8FBF0014 */ lw $ra, 0x14($sp) -/* 09B64C 7F068C5C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 09B650 7F068C60 03E00008 */ jr $ra -/* 09B654 7F068C64 00000000 */ nop -) -#endif - - -#endif - - - #ifdef NONMATCHING @@ -29787,7 +23445,7 @@ glabel sub_GAME_7F068508 /* 09D138 7F068608 27A5007C */ addiu $a1, $sp, 0x7c /* 09D13C 7F06860C 8FA40070 */ lw $a0, 0x70($sp) .L7F068610: -/* 09D140 7F068610 0FC1A108 */ jal sub_GAME_7F068420 +/* 09D140 7F068610 0FC1A108 */ jal casingCreate /* 09D144 7F068614 27A5007C */ addiu $a1, $sp, 0x7c /* 09D148 7F068618 104001BC */ beqz $v0, .L7F068D0C /* 09D14C 7F06861C 00408025 */ move $s0, $v0 @@ -30375,7 +24033,7 @@ glabel sub_GAME_7F068508 /* 09B760 7F068D70 27A500C4 */ addiu $a1, $sp, 0xc4 /* 09B764 7F068D74 8FA400B8 */ lw $a0, 0xb8($sp) .L7F068D78: -/* 09B768 7F068D78 0FC1A2F2 */ jal sub_GAME_7F068420 +/* 09B768 7F068D78 0FC1A2F2 */ jal casingCreate /* 09B76C 7F068D7C 27A500C4 */ addiu $a1, $sp, 0xc4 /* 09B770 7F068D80 104001C2 */ beqz $v0, .L7F06948C /* 09B774 7F068D84 00408025 */ move $s0, $v0 @@ -30858,391 +24516,63 @@ glabel sub_GAME_7F068508 #endif +void sub_GAME_7F068D20(CasingRecord* casing) +{ + f32 new_val_y; + f32 delta; + s32 i; + struct player* current_player; + delta = g_GlobalTimerDelta; + new_val_y = casing->vel.y - (delta * 0.2777778f); + casing->pos.y += delta * 0.5f * (casing->vel.y + new_val_y); -#ifdef NONMATCHING -void sub_GAME_7F068D20(void) { - -} + if (casing->pos.y < casing->unk00) + { +#if defined(BUGFIX_R1) + if (dword_CODE_bss_80075DB0 == 0 && (g_ClockTimer > 0)) #else - -#ifdef VERSION_US -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(g_GlobalTimerDelta) -/* 09D854 7F068D24 C4228378 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($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(g_CurrentPlayer) -/* 09D8D0 7F068DA0 15C0000F */ bnez $t6, .L7F068DE0 -/* 09D8D4 7F068DA4 00000000 */ nop -/* 09D8D8 7F068DA8 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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(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(g_musicSfxBufferPtr)($a0) -/* 09D904 7F068DD4 0C002382 */ jal sndPlaySfx -/* 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(g_ClockTimer) -/* 09D930 7F068E00 460A1102 */ mul.s $f4, $f2, $f10 -/* 09D934 7F068E04 26738374 */ addiu $s3, %lo(g_ClockTimer) # 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 -) + if (dword_CODE_bss_80075DB0 == 0) #endif + { + if ((g_CurrentPlayer->hands[0].when_detonating_mines_is_0 != 2) && (g_CurrentPlayer->hands[1].when_detonating_mines_is_0 != 2)) + { + sndPlaySfx((struct ALBankAlt_s* ) g_musicSfxBufferPtr, 0x7A, (ALSoundState* ) &dword_CODE_bss_80075DB0); + } + } + casing->header = NULL; + return; + } -#ifdef VERSION_JP -GLOBAL_ASM( -.late_rodata -glabel expended_shell_initial_gravity_modifier_all -.word 0x3e8e38e4 /*0.27777779*/ -.text -glabel sub_GAME_7F068D20 -/* 09DE68 7F0692F8 3C018005 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8005 -/* 09DE6C 7F0692FC C42283B4 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) -/* 09DE70 7F069300 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_all) # $at, 0x8005 -/* 09DE74 7F069304 C4244434 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_all)($at) -/* 09DE78 7F069308 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09DE7C 7F06930C AFBF0024 */ sw $ra, 0x24($sp) -/* 09DE80 7F069310 46041182 */ mul.s $f6, $f2, $f4 -/* 09DE84 7F069314 AFB30020 */ sw $s3, 0x20($sp) -/* 09DE88 7F069318 AFB2001C */ sw $s2, 0x1c($sp) -/* 09DE8C 7F06931C AFB10018 */ sw $s1, 0x18($sp) -/* 09DE90 7F069320 AFB00014 */ sw $s0, 0x14($sp) -/* 09DE94 7F069324 C4800014 */ lwc1 $f0, 0x14($a0) -/* 09DE98 7F069328 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09DE9C 7F06932C 44814000 */ mtc1 $at, $f8 -/* 09DEA0 7F069330 46060301 */ sub.s $f12, $f0, $f6 -/* 09DEA4 7F069334 C4840008 */ lwc1 $f4, 8($a0) -/* 09DEA8 7F069338 46081282 */ mul.s $f10, $f2, $f8 -/* 09DEAC 7F06933C 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075DB0) # $a2, 0x8007 -/* 09DEB0 7F069340 460C0400 */ add.s $f16, $f0, $f12 -/* 09DEB4 7F069344 00803825 */ move $a3, $a0 -/* 09DEB8 7F069348 24C65DF0 */ addiu $a2, %lo(dword_CODE_bss_80075DB0) # addiu $a2, $a2, 0x5df0 -/* 09DEBC 7F06934C 46105482 */ mul.s $f18, $f10, $f16 -/* 09DEC0 7F069350 C48A0000 */ lwc1 $f10, ($a0) -/* 09DEC4 7F069354 46122180 */ add.s $f6, $f4, $f18 -/* 09DEC8 7F069358 E4860008 */ swc1 $f6, 8($a0) -/* 09DECC 7F06935C C4880008 */ lwc1 $f8, 8($a0) -/* 09DED0 7F069360 460A403C */ c.lt.s $f8, $f10 -/* 09DED4 7F069364 00000000 */ nop -/* 09DED8 7F069368 4502001B */ bc1fl .Ljp7F0693D8 -/* 09DEDC 7F06936C C4E40010 */ lwc1 $f4, 0x10($a3) -/* 09DEE0 7F069370 8CCE0000 */ lw $t6, ($a2) -/* 09DEE4 7F069374 3C138005 */ lui $s3, %hi(g_ClockTimer) # $s3, 0x8005 -/* 09DEE8 7F069378 267383A4 */ addiu $s3, %lo(g_ClockTimer) # addiu $s3, $s3, -0x7c5c -/* 09DEEC 7F06937C 15C00013 */ bnez $t6, .Ljp7F0693CC -/* 09DEF0 7F069380 00000000 */ nop -/* 09DEF4 7F069384 8E6F0000 */ lw $t7, ($s3) -/* 09DEF8 7F069388 3C028008 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8008 -/* 09DEFC 7F06938C 19E0000F */ blez $t7, .Ljp7F0693CC -/* 09DF00 7F069390 00000000 */ nop -/* 09DF04 7F069394 8C42A120 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 09DF08 7F069398 24030002 */ li $v1, 2 -/* 09DF0C 7F06939C 8C580894 */ lw $t8, 0x894($v0) -/* 09DF10 7F0693A0 1078000A */ beq $v1, $t8, .Ljp7F0693CC -/* 09DF14 7F0693A4 00000000 */ nop -/* 09DF18 7F0693A8 8C590C3C */ lw $t9, 0xc3c($v0) -/* 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(g_musicSfxBufferPtr)($a0) -/* 09DF30 7F0693C0 0C002386 */ jal sndPlaySfx -/* 09DF34 7F0693C4 AFA70028 */ sw $a3, 0x28($sp) -/* 09DF38 7F0693C8 8FA70028 */ lw $a3, 0x28($sp) -.Ljp7F0693CC: -/* 09DF3C 7F0693CC 1000001B */ b .Ljp7F06943C -/* 09DF40 7F0693D0 ACE0009C */ sw $zero, 0x9c($a3) -/* 09DF44 7F0693D4 C4E40010 */ lwc1 $f4, 0x10($a3) -.Ljp7F0693D8: -/* 09DF48 7F0693D8 C4EA0018 */ lwc1 $f10, 0x18($a3) -/* 09DF4C 7F0693DC C4F00004 */ lwc1 $f16, 4($a3) -/* 09DF50 7F0693E0 46041482 */ mul.s $f18, $f2, $f4 -/* 09DF54 7F0693E4 C4E8000C */ lwc1 $f8, 0xc($a3) -/* 09DF58 7F0693E8 3C138005 */ lui $s3, %hi(g_ClockTimer) # $s3, 0x8005 -/* 09DF5C 7F0693EC 460A1102 */ mul.s $f4, $f2, $f10 -/* 09DF60 7F0693F0 267383A4 */ addiu $s3, %lo(g_ClockTimer) # addiu $s3, $s3, -0x7c5c -/* 09DF64 7F0693F4 E4EC0014 */ swc1 $f12, 0x14($a3) -/* 09DF68 7F0693F8 00008025 */ move $s0, $zero -/* 09DF6C 7F0693FC 24F1005C */ addiu $s1, $a3, 0x5c -/* 09DF70 7F069400 46128180 */ add.s $f6, $f16, $f18 -/* 09DF74 7F069404 24F2001C */ addiu $s2, $a3, 0x1c -/* 09DF78 7F069408 46044400 */ add.s $f16, $f8, $f4 -/* 09DF7C 7F06940C E4E60004 */ swc1 $f6, 4($a3) -/* 09DF80 7F069410 E4F0000C */ swc1 $f16, 0xc($a3) -/* 09DF84 7F069414 8E680000 */ lw $t0, ($s3) -/* 09DF88 7F069418 19000008 */ blez $t0, .Ljp7F06943C -/* 09DF8C 7F06941C 02202025 */ move $a0, $s1 -.Ljp7F069420: -/* 09DF90 7F069420 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place -/* 09DF94 7F069424 02402825 */ move $a1, $s2 -/* 09DF98 7F069428 8E690000 */ lw $t1, ($s3) -/* 09DF9C 7F06942C 26100001 */ addiu $s0, $s0, 1 -/* 09DFA0 7F069430 0209082A */ slt $at, $s0, $t1 -/* 09DFA4 7F069434 5420FFFA */ bnezl $at, .Ljp7F069420 -/* 09DFA8 7F069438 02202025 */ move $a0, $s1 -.Ljp7F06943C: -/* 09DFAC 7F06943C 8FBF0024 */ lw $ra, 0x24($sp) -/* 09DFB0 7F069440 8FB00014 */ lw $s0, 0x14($sp) -/* 09DFB4 7F069444 8FB10018 */ lw $s1, 0x18($sp) -/* 09DFB8 7F069448 8FB2001C */ lw $s2, 0x1c($sp) -/* 09DFBC 7F06944C 8FB30020 */ lw $s3, 0x20($sp) -/* 09DFC0 7F069450 03E00008 */ jr $ra -/* 09DFC4 7F069454 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - -#ifdef VERSION_EU -GLOBAL_ASM( -.late_rodata -glabel expended_shell_initial_gravity_modifier_all -.word 0x3e8e38e4 /*0.27777779*/ -.text -glabel sub_GAME_7F068D20 -/* 09BE90 7F0694A0 3C018004 */ lui $at, %hi(g_GlobalTimerDelta) # $at, 0x8004 -/* 09BE94 7F0694A4 C4221004 */ lwc1 $f2, %lo(g_GlobalTimerDelta)($at) -/* 09BE98 7F0694A8 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_all) # $at, 0x8005 -/* 09BE9C 7F0694AC C424A544 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_all)($at) -/* 09BEA0 7F0694B0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09BEA4 7F0694B4 AFBF0024 */ sw $ra, 0x24($sp) -/* 09BEA8 7F0694B8 46041182 */ mul.s $f6, $f2, $f4 -/* 09BEAC 7F0694BC AFB30020 */ sw $s3, 0x20($sp) -/* 09BEB0 7F0694C0 AFB2001C */ sw $s2, 0x1c($sp) -/* 09BEB4 7F0694C4 AFB10018 */ sw $s1, 0x18($sp) -/* 09BEB8 7F0694C8 AFB00014 */ sw $s0, 0x14($sp) -/* 09BEBC 7F0694CC C4800014 */ lwc1 $f0, 0x14($a0) -/* 09BEC0 7F0694D0 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09BEC4 7F0694D4 44814000 */ mtc1 $at, $f8 -/* 09BEC8 7F0694D8 46060301 */ sub.s $f12, $f0, $f6 -/* 09BECC 7F0694DC C4840008 */ lwc1 $f4, 8($a0) -/* 09BED0 7F0694E0 46081282 */ mul.s $f10, $f2, $f8 -/* 09BED4 7F0694E4 3C068006 */ lui $a2, %hi(dword_CODE_bss_80075DB0) # $a2, 0x8006 -/* 09BED8 7F0694E8 460C0400 */ add.s $f16, $f0, $f12 -/* 09BEDC 7F0694EC 00803825 */ move $a3, $a0 -/* 09BEE0 7F0694F0 24C64CF0 */ addiu $a2, %lo(dword_CODE_bss_80075DB0) # addiu $a2, $a2, 0x4cf0 -/* 09BEE4 7F0694F4 46105482 */ mul.s $f18, $f10, $f16 -/* 09BEE8 7F0694F8 C48A0000 */ lwc1 $f10, ($a0) -/* 09BEEC 7F0694FC 46122180 */ add.s $f6, $f4, $f18 -/* 09BEF0 7F069500 E4860008 */ swc1 $f6, 8($a0) -/* 09BEF4 7F069504 C4880008 */ lwc1 $f8, 8($a0) -/* 09BEF8 7F069508 460A403C */ c.lt.s $f8, $f10 -/* 09BEFC 7F06950C 00000000 */ nop -/* 09BF00 7F069510 4502001B */ bc1fl .L7F069580 -/* 09BF04 7F069514 C4E40010 */ lwc1 $f4, 0x10($a3) -/* 09BF08 7F069518 8CCE0000 */ lw $t6, ($a2) -/* 09BF0C 7F06951C 3C138004 */ lui $s3, %hi(g_ClockTimer) # $s3, 0x8004 -/* 09BF10 7F069520 26730FF4 */ addiu $s3, %lo(g_ClockTimer) # addiu $s3, $s3, 0xff4 -/* 09BF14 7F069524 15C00013 */ bnez $t6, .L7F069574 -/* 09BF18 7F069528 00000000 */ nop -/* 09BF1C 7F06952C 8E6F0000 */ lw $t7, ($s3) -/* 09BF20 7F069530 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 09BF24 7F069534 19E0000F */ blez $t7, .L7F069574 -/* 09BF28 7F069538 00000000 */ nop -/* 09BF2C 7F06953C 8C428BC0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 09BF30 7F069540 24030002 */ li $v1, 2 -/* 09BF34 7F069544 8C58088C */ lw $t8, 0x88c($v0) -/* 09BF38 7F069548 1078000A */ beq $v1, $t8, .L7F069574 -/* 09BF3C 7F06954C 00000000 */ nop -/* 09BF40 7F069550 8C590C34 */ lw $t9, 0xc34($v0) -/* 09BF44 7F069554 3C048005 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8005 -/* 09BF48 7F069558 2405007A */ li $a1, 122 -/* 09BF4C 7F06955C 10790005 */ beq $v1, $t9, .L7F069574 -/* 09BF50 7F069560 00000000 */ nop -/* 09BF54 7F069564 8C846900 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) -/* 09BF58 7F069568 0C00209A */ jal sndPlaySfx -/* 09BF5C 7F06956C AFA70028 */ sw $a3, 0x28($sp) -/* 09BF60 7F069570 8FA70028 */ lw $a3, 0x28($sp) -.L7F069574: -/* 09BF64 7F069574 1000001B */ b .L7F0695E4 -/* 09BF68 7F069578 ACE00064 */ sw $zero, 0x64($a3) -/* 09BF6C 7F06957C C4E40010 */ lwc1 $f4, 0x10($a3) -.L7F069580: -/* 09BF70 7F069580 C4EA0018 */ lwc1 $f10, 0x18($a3) -/* 09BF74 7F069584 C4F00004 */ lwc1 $f16, 4($a3) -/* 09BF78 7F069588 46041482 */ mul.s $f18, $f2, $f4 -/* 09BF7C 7F06958C C4E8000C */ lwc1 $f8, 0xc($a3) -/* 09BF80 7F069590 3C138004 */ lui $s3, %hi(g_ClockTimer) # $s3, 0x8004 -/* 09BF84 7F069594 460A1102 */ mul.s $f4, $f2, $f10 -/* 09BF88 7F069598 26730FF4 */ addiu $s3, %lo(g_ClockTimer) # addiu $s3, $s3, 0xff4 -/* 09BF8C 7F06959C E4EC0014 */ swc1 $f12, 0x14($a3) -/* 09BF90 7F0695A0 00008025 */ move $s0, $zero -/* 09BF94 7F0695A4 24F10040 */ addiu $s1, $a3, 0x40 -/* 09BF98 7F0695A8 46128180 */ add.s $f6, $f16, $f18 -/* 09BF9C 7F0695AC 24F2001C */ addiu $s2, $a3, 0x1c -/* 09BFA0 7F0695B0 46044400 */ add.s $f16, $f8, $f4 -/* 09BFA4 7F0695B4 E4E60004 */ swc1 $f6, 4($a3) -/* 09BFA8 7F0695B8 E4F0000C */ swc1 $f16, 0xc($a3) -/* 09BFAC 7F0695BC 8E680000 */ lw $t0, ($s3) -/* 09BFB0 7F0695C0 19000008 */ blez $t0, .L7F0695E4 -/* 09BFB4 7F0695C4 02202025 */ move $a0, $s1 -.L7F0695C8: -/* 09BFB8 7F0695C8 0FC160C7 */ jal matrix_4x4_multiply_homogeneous_in_place_eu -/* 09BFBC 7F0695CC 02402825 */ move $a1, $s2 -/* 09BFC0 7F0695D0 8E690000 */ lw $t1, ($s3) -/* 09BFC4 7F0695D4 26100001 */ addiu $s0, $s0, 1 -/* 09BFC8 7F0695D8 0209082A */ slt $at, $s0, $t1 -/* 09BFCC 7F0695DC 5420FFFA */ bnezl $at, .L7F0695C8 -/* 09BFD0 7F0695E0 02202025 */ move $a0, $s1 -.L7F0695E4: -/* 09BFD4 7F0695E4 8FBF0024 */ lw $ra, 0x24($sp) -/* 09BFD8 7F0695E8 8FB00014 */ lw $s0, 0x14($sp) -/* 09BFDC 7F0695EC 8FB10018 */ lw $s1, 0x18($sp) -/* 09BFE0 7F0695F0 8FB2001C */ lw $s2, 0x1c($sp) -/* 09BFE4 7F0695F4 8FB30020 */ lw $s3, 0x20($sp) -/* 09BFE8 7F0695F8 03E00008 */ jr $ra -/* 09BFEC 7F0695FC 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - -#endif - - -#ifdef NONMATCHING -void sub_GAME_7F068E6C(void) { - -} -#else + casing->vel.y = new_val_y; + casing->pos.x += delta * casing->vel.x; + casing->pos.z += delta * casing->vel.z; + for (i = 0; i < g_ClockTimer; i++) + { #if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F068E6C -/* 09D99C 7F068E6C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 09D9A0 7F068E70 AFB10018 */ sw $s1, 0x18($sp) -/* 09D9A4 7F068E74 AFB00014 */ sw $s0, 0x14($sp) -/* 09D9A8 7F068E78 3C118007 */ lui $s1, %hi(dword_CODE_bss_80076A48) -/* 09D9AC 7F068E7C 3C108007 */ lui $s0, %hi(dword_CODE_bss_80075DC8) -/* 09D9B0 7F068E80 AFBF001C */ sw $ra, 0x1c($sp) -/* 09D9B4 7F068E84 26316A48 */ addiu $s1, %lo(dword_CODE_bss_80076A48) # addiu $s1, $s1, 0x6a48 -/* 09D9B8 7F068E88 26105DC8 */ addiu $s0, %lo(dword_CODE_bss_80075DC8) # addiu $s0, $s0, 0x5dc8 -/* 09D9BC 7F068E8C 8E0E009C */ lw $t6, 0x9c($s0) -.L7F068E90: -/* 09D9C0 7F068E90 51C00004 */ beql $t6, $zero, .L7F068EA4 -/* 09D9C4 7F068E94 261000A0 */ addiu $s0, $s0, 0xa0 -/* 09D9C8 7F068E98 0FC1A348 */ jal sub_GAME_7F068D20 -/* 09D9CC 7F068E9C 02002025 */ move $a0, $s0 -/* 09D9D0 7F068EA0 261000A0 */ addiu $s0, $s0, 0xa0 -.L7F068EA4: -/* 09D9D4 7F068EA4 0211082B */ sltu $at, $s0, $s1 -/* 09D9D8 7F068EA8 5420FFF9 */ bnezl $at, .L7F068E90 -/* 09D9DC 7F068EAC 8E0E009C */ lw $t6, 0x9c($s0) -/* 09D9E0 7F068EB0 8FBF001C */ lw $ra, 0x1c($sp) -/* 09D9E4 7F068EB4 8FB00014 */ lw $s0, 0x14($sp) -/* 09D9E8 7F068EB8 8FB10018 */ lw $s1, 0x18($sp) -/* 09D9EC 7F068EBC 03E00008 */ jr $ra -/* 09D9F0 7F068EC0 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F068E6C -/* 09BFF0 7F069600 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 09BFF4 7F069604 AFB10018 */ sw $s1, 0x18($sp) -/* 09BFF8 7F069608 AFB00014 */ sw $s0, 0x14($sp) -/* 09BFFC 7F06960C 3C118006 */ lui $s1, %hi(dword_CODE_bss_80076A48) # $s1, 0x8006 -/* 09C000 7F069610 3C108006 */ lui $s0, %hi(dword_CODE_bss_80075DC8) # $s0, 0x8006 -/* 09C004 7F069614 AFBF001C */ sw $ra, 0x1c($sp) -/* 09C008 7F069618 26315528 */ addiu $s1, %lo(dword_CODE_bss_80076A48) # addiu $s1, $s1, 0x5528 -/* 09C00C 7F06961C 26104D08 */ addiu $s0, %lo(dword_CODE_bss_80075DC8) # addiu $s0, $s0, 0x4d08 -/* 09C010 7F069620 8E0E0064 */ lw $t6, 0x64($s0) -.L7F069624: -/* 09C014 7F069624 51C00004 */ beql $t6, $zero, .L7F069638 -/* 09C018 7F069628 26100068 */ addiu $s0, $s0, 0x68 -/* 09C01C 7F06962C 0FC1A528 */ jal sub_GAME_7F068D20 -/* 09C020 7F069630 02002025 */ move $a0, $s0 -/* 09C024 7F069634 26100068 */ addiu $s0, $s0, 0x68 -.L7F069638: -/* 09C028 7F069638 0211082B */ sltu $at, $s0, $s1 -/* 09C02C 7F06963C 5420FFF9 */ bnezl $at, .L7F069624 -/* 09C030 7F069640 8E0E0064 */ lw $t6, 0x64($s0) -/* 09C034 7F069644 8FBF001C */ lw $ra, 0x1c($sp) -/* 09C038 7F069648 8FB00014 */ lw $s0, 0x14($sp) -/* 09C03C 7F06964C 8FB10018 */ lw $s1, 0x18($sp) -/* 09C040 7F069650 03E00008 */ jr $ra -/* 09C044 7F069654 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif + matrix_4x4_multiply_homogeneous_in_place(&casing->unk5C, &casing->unk1C); +#else + matrix_4x4_multiply_homogeneous_in_place_eu(casing->unk40, casing->unk1C); #endif + } +} - +void sub_GAME_7F068E6C(void) +{ + CasingRecord* end = g_Casings + ARRAYCOUNT(g_Casings); + CasingRecord* entry = g_Casings; + while (entry < end) + { + if (entry->header) + { + sub_GAME_7F068D20(entry); + } + entry++; + } +} #ifdef NONMATCHING @@ -31519,84 +24849,20 @@ glabel sub_GAME_7F068EC4 #endif - - - -#ifdef NONMATCHING -void sub_GAME_7F06908C(void) { - +void sub_GAME_7F06908C(Gfx** arg0) +{ + CasingRecord* end = g_Casings + ARRAYCOUNT(g_Casings); + CasingRecord* entry = g_Casings; + while (entry < end) + { + if (entry->header) + { + sub_GAME_7F068EC4(entry, arg0); + } + entry++; + } } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel sub_GAME_7F06908C -/* 09DBBC 7F06908C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09DBC0 7F069090 AFB1001C */ sw $s1, 0x1c($sp) -/* 09DBC4 7F069094 AFB00018 */ sw $s0, 0x18($sp) -/* 09DBC8 7F069098 AFB20020 */ sw $s2, 0x20($sp) -/* 09DBCC 7F06909C 3C118007 */ lui $s1, %hi(dword_CODE_bss_80076A48) -/* 09DBD0 7F0690A0 3C108007 */ lui $s0, %hi(dword_CODE_bss_80075DC8) -/* 09DBD4 7F0690A4 00809025 */ move $s2, $a0 -/* 09DBD8 7F0690A8 AFBF0024 */ sw $ra, 0x24($sp) -/* 09DBDC 7F0690AC 26316A48 */ addiu $s1, %lo(dword_CODE_bss_80076A48) # addiu $s1, $s1, 0x6a48 -/* 09DBE0 7F0690B0 26105DC8 */ addiu $s0, %lo(dword_CODE_bss_80075DC8) # addiu $s0, $s0, 0x5dc8 -/* 09DBE4 7F0690B4 8E0E009C */ lw $t6, 0x9c($s0) -.L7F0690B8: -/* 09DBE8 7F0690B8 02002025 */ move $a0, $s0 -/* 09DBEC 7F0690BC 51C00004 */ beql $t6, $zero, .L7F0690D0 -/* 09DBF0 7F0690C0 261000A0 */ addiu $s0, $s0, 0xa0 -/* 09DBF4 7F0690C4 0FC1A3B1 */ jal sub_GAME_7F068EC4 -/* 09DBF8 7F0690C8 02402825 */ move $a1, $s2 -/* 09DBFC 7F0690CC 261000A0 */ addiu $s0, $s0, 0xa0 -.L7F0690D0: -/* 09DC00 7F0690D0 0211082B */ sltu $at, $s0, $s1 -/* 09DC04 7F0690D4 5420FFF8 */ bnezl $at, .L7F0690B8 -/* 09DC08 7F0690D8 8E0E009C */ lw $t6, 0x9c($s0) -/* 09DC0C 7F0690DC 8FBF0024 */ lw $ra, 0x24($sp) -/* 09DC10 7F0690E0 8FB00018 */ lw $s0, 0x18($sp) -/* 09DC14 7F0690E4 8FB1001C */ lw $s1, 0x1c($sp) -/* 09DC18 7F0690E8 8FB20020 */ lw $s2, 0x20($sp) -/* 09DC1C 7F0690EC 03E00008 */ jr $ra -/* 09DC20 7F0690F0 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel sub_GAME_7F06908C -/* 09C210 7F069820 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09C214 7F069824 AFB1001C */ sw $s1, 0x1c($sp) -/* 09C218 7F069828 AFB00018 */ sw $s0, 0x18($sp) -/* 09C21C 7F06982C AFB20020 */ sw $s2, 0x20($sp) -/* 09C220 7F069830 3C118006 */ lui $s1, %hi(dword_CODE_bss_80076A48) # $s1, 0x8006 -/* 09C224 7F069834 3C108006 */ lui $s0, %hi(dword_CODE_bss_80075DC8) # $s0, 0x8006 -/* 09C228 7F069838 00809025 */ move $s2, $a0 -/* 09C22C 7F06983C AFBF0024 */ sw $ra, 0x24($sp) -/* 09C230 7F069840 26315528 */ addiu $s1, %lo(dword_CODE_bss_80076A48) # addiu $s1, $s1, 0x5528 -/* 09C234 7F069844 26104D08 */ addiu $s0, %lo(dword_CODE_bss_80075DC8) # addiu $s0, $s0, 0x4d08 -/* 09C238 7F069848 8E0E0064 */ lw $t6, 0x64($s0) -.L7F06984C: -/* 09C23C 7F06984C 02002025 */ move $a0, $s0 -/* 09C240 7F069850 51C00004 */ beql $t6, $zero, .L7F069864 -/* 09C244 7F069854 26100068 */ addiu $s0, $s0, 0x68 -/* 09C248 7F069858 0FC1A596 */ jal sub_GAME_7F068EC4 -/* 09C24C 7F06985C 02402825 */ move $a1, $s2 -/* 09C250 7F069860 26100068 */ addiu $s0, $s0, 0x68 -.L7F069864: -/* 09C254 7F069864 0211082B */ sltu $at, $s0, $s1 -/* 09C258 7F069868 5420FFF8 */ bnezl $at, .L7F06984C -/* 09C25C 7F06986C 8E0E0064 */ lw $t6, 0x64($s0) -/* 09C260 7F069870 8FBF0024 */ lw $ra, 0x24($sp) -/* 09C264 7F069874 8FB00018 */ lw $s0, 0x18($sp) -/* 09C268 7F069878 8FB1001C */ lw $s1, 0x1c($sp) -/* 09C26C 7F06987C 8FB20020 */ lw $s2, 0x20($sp) -/* 09C270 7F069880 03E00008 */ jr $ra -/* 09C274 7F069884 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif -#endif void set_unset_ammo_on_screen_setting(s32 flags, bool unset) { @@ -31609,170 +24875,34 @@ void set_unset_ammo_on_screen_setting(s32 flags, bool unset) { g_CurrentPlayer->ammodispflags |= flags; } -#ifdef NONMATCHING -void give_cur_player_ammo(void) { + +void give_cur_player_ammo(s32 ammo_type, s32 ammo_amount) { + enum ITEM_IDS weapon_id; + s32 max_ammo; + + weapon_id = getCurrentPlayerWeaponId(GUNRIGHT); + if ((get_ammo_type_for_weapon(weapon_id) == ammo_type) && (bondwalkItemCheckBitflags(weapon_id, 0x200000U) != 0)) + { + g_CurrentPlayer->hands[0].weapon_ammo_in_magazine += ammo_amount; + if (get_ptr_item_statistics(weapon_id)->MagSize < g_CurrentPlayer->hands[0].weapon_ammo_in_magazine) + { + g_CurrentPlayer->hands[0].weapon_ammo_in_magazine = (s32) get_ptr_item_statistics(weapon_id)->MagSize; + } + g_CurrentPlayer->ammoheldarr[ammo_type] = 0; + return; + } + + max_ammo = ammo_related[ammo_type].MaxAmmo; + if (max_ammo < ammo_amount) + { + g_CurrentPlayer->ammoheldarr[ammo_type] = max_ammo; + return; + } + + g_CurrentPlayer->ammoheldarr[ammo_type] = ammo_amount; } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel give_cur_player_ammo -/* 09DC60 7F069130 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09DC64 7F069134 AFB00018 */ sw $s0, 0x18($sp) -/* 09DC68 7F069138 00808025 */ move $s0, $a0 -/* 09DC6C 7F06913C AFBF001C */ sw $ra, 0x1c($sp) -/* 09DC70 7F069140 AFA5002C */ sw $a1, 0x2c($sp) -/* 09DC74 7F069144 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09DC78 7F069148 00002025 */ move $a0, $zero -/* 09DC7C 7F06914C AFA20024 */ sw $v0, 0x24($sp) -/* 09DC80 7F069150 0FC1A50B */ jal get_ammo_type_for_weapon -/* 09DC84 7F069154 00402025 */ move $a0, $v0 -/* 09DC88 7F069158 1450001F */ bne $v0, $s0, .L7F0691D8 -/* 09DC8C 7F06915C 8FA40024 */ lw $a0, 0x24($sp) -/* 09DC90 7F069160 0FC1782D */ jal bondwalkItemCheckBitflags -/* 09DC94 7F069164 3C050020 */ lui $a1, 0x20 -/* 09DC98 7F069168 1040001B */ beqz $v0, .L7F0691D8 -/* 09DC9C 7F06916C 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 09DCA0 7F069170 8C63A0B0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 09DCA4 7F069174 8FAF002C */ lw $t7, 0x2c($sp) -/* 09DCA8 7F069178 8C6E089C */ lw $t6, 0x89c($v1) -/* 09DCAC 7F06917C 01CFC021 */ addu $t8, $t6, $t7 -/* 09DCB0 7F069180 AC78089C */ sw $t8, 0x89c($v1) -/* 09DCB4 7F069184 0FC1722D */ jal get_ptr_item_statistics -/* 09DCB8 7F069188 8FA40024 */ lw $a0, 0x24($sp) -/* 09DCBC 7F06918C 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 09DCC0 7F069190 8C63A0B0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 09DCC4 7F069194 84590020 */ lh $t9, 0x20($v0) -/* 09DCC8 7F069198 8C68089C */ lw $t0, 0x89c($v1) -/* 09DCCC 7F06919C 0328082A */ slt $at, $t9, $t0 -/* 09DCD0 7F0691A0 5020000A */ beql $at, $zero, .L7F0691CC -/* 09DCD4 7F0691A4 00105880 */ sll $t3, $s0, 2 -/* 09DCD8 7F0691A8 0FC1722D */ jal get_ptr_item_statistics -/* 09DCDC 7F0691AC 8FA40024 */ lw $a0, 0x24($sp) -/* 09DCE0 7F0691B0 3C0A8008 */ lui $t2, %hi(g_CurrentPlayer) -/* 09DCE4 7F0691B4 8D4AA0B0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 09DCE8 7F0691B8 84490020 */ lh $t1, 0x20($v0) -/* 09DCEC 7F0691BC 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 09DCF0 7F0691C0 AD49089C */ sw $t1, 0x89c($t2) -/* 09DCF4 7F0691C4 8C63A0B0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 09DCF8 7F0691C8 00105880 */ sll $t3, $s0, 2 -.L7F0691CC: -/* 09DCFC 7F0691CC 006B6021 */ addu $t4, $v1, $t3 -/* 09DD00 7F0691D0 10000016 */ b .L7F06922C -/* 09DD04 7F0691D4 AD801130 */ sw $zero, 0x1130($t4) -.L7F0691D8: -/* 09DD08 7F0691D8 00106880 */ sll $t5, $s0, 2 -/* 09DD0C 7F0691DC 01B06823 */ subu $t5, $t5, $s0 -/* 09DD10 7F0691E0 000D6880 */ sll $t5, $t5, 2 -/* 09DD14 7F0691E4 3C028003 */ lui $v0, %hi(ammo_related) -/* 09DD18 7F0691E8 004D1021 */ addu $v0, $v0, $t5 -/* 09DD1C 7F0691EC 8FA3002C */ lw $v1, 0x2c($sp) -/* 09DD20 7F0691F0 8C425EF0 */ lw $v0, %lo(ammo_related)($v0) -/* 09DD24 7F0691F4 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 09DD28 7F0691F8 3C198008 */ lui $t9, %hi(g_CurrentPlayer) -/* 09DD2C 7F0691FC 0043082A */ slt $at, $v0, $v1 -/* 09DD30 7F069200 10200006 */ beqz $at, .L7F06921C -/* 09DD34 7F069204 00000000 */ nop -/* 09DD38 7F069208 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09DD3C 7F06920C 00107880 */ sll $t7, $s0, 2 -/* 09DD40 7F069210 01CFC021 */ addu $t8, $t6, $t7 -/* 09DD44 7F069214 10000005 */ b .L7F06922C -/* 09DD48 7F069218 AF021130 */ sw $v0, 0x1130($t8) -.L7F06921C: -/* 09DD4C 7F06921C 8F39A0B0 */ lw $t9, %lo(g_CurrentPlayer)($t9) -/* 09DD50 7F069220 00104080 */ sll $t0, $s0, 2 -/* 09DD54 7F069224 03284821 */ addu $t1, $t9, $t0 -/* 09DD58 7F069228 AD231130 */ sw $v1, 0x1130($t1) -.L7F06922C: -/* 09DD5C 7F06922C 8FBF001C */ lw $ra, 0x1c($sp) -/* 09DD60 7F069230 8FB00018 */ lw $s0, 0x18($sp) -/* 09DD64 7F069234 27BD0028 */ addiu $sp, $sp, 0x28 -/* 09DD68 7F069238 03E00008 */ jr $ra -/* 09DD6C 7F06923C 00000000 */ nop -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel give_cur_player_ammo -/* 09C2B4 7F0698C4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09C2B8 7F0698C8 AFB00018 */ sw $s0, 0x18($sp) -/* 09C2BC 7F0698CC 00808025 */ move $s0, $a0 -/* 09C2C0 7F0698D0 AFBF001C */ sw $ra, 0x1c($sp) -/* 09C2C4 7F0698D4 AFA5002C */ sw $a1, 0x2c($sp) -/* 09C2C8 7F0698D8 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09C2CC 7F0698DC 00002025 */ move $a0, $zero -/* 09C2D0 7F0698E0 AFA20024 */ sw $v0, 0x24($sp) -/* 09C2D4 7F0698E4 0FC1A6F0 */ jal get_ammo_type_for_weapon -/* 09C2D8 7F0698E8 00402025 */ move $a0, $v0 -/* 09C2DC 7F0698EC 1450001F */ bne $v0, $s0, .L7F06996C -/* 09C2E0 7F0698F0 8FA40024 */ lw $a0, 0x24($sp) -/* 09C2E4 7F0698F4 0FC1795B */ jal bondwalkItemCheckBitflags -/* 09C2E8 7F0698F8 3C050020 */ lui $a1, 0x20 -/* 09C2EC 7F0698FC 1040001B */ beqz $v0, .L7F06996C -/* 09C2F0 7F069900 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 09C2F4 7F069904 8C638BC0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 09C2F8 7F069908 8FAF002C */ lw $t7, 0x2c($sp) -/* 09C2FC 7F06990C 8C6E0894 */ lw $t6, 0x894($v1) -/* 09C300 7F069910 01CFC021 */ addu $t8, $t6, $t7 -/* 09C304 7F069914 AC780894 */ sw $t8, 0x894($v1) -/* 09C308 7F069918 0FC17359 */ jal get_ptr_item_statistics -/* 09C30C 7F06991C 8FA40024 */ lw $a0, 0x24($sp) -/* 09C310 7F069920 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 09C314 7F069924 8C638BC0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 09C318 7F069928 84590020 */ lh $t9, 0x20($v0) -/* 09C31C 7F06992C 8C680894 */ lw $t0, 0x894($v1) -/* 09C320 7F069930 0328082A */ slt $at, $t9, $t0 -/* 09C324 7F069934 5020000A */ beql $at, $zero, .L7F069960 -/* 09C328 7F069938 00105880 */ sll $t3, $s0, 2 -/* 09C32C 7F06993C 0FC17359 */ jal get_ptr_item_statistics -/* 09C330 7F069940 8FA40024 */ lw $a0, 0x24($sp) -/* 09C334 7F069944 3C0A8007 */ lui $t2, %hi(g_CurrentPlayer) # $t2, 0x8007 -/* 09C338 7F069948 8D4A8BC0 */ lw $t2, %lo(g_CurrentPlayer)($t2) -/* 09C33C 7F06994C 84490020 */ lh $t1, 0x20($v0) -/* 09C340 7F069950 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 09C344 7F069954 AD490894 */ sw $t1, 0x894($t2) -/* 09C348 7F069958 8C638BC0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 09C34C 7F06995C 00105880 */ sll $t3, $s0, 2 -.L7F069960: -/* 09C350 7F069960 006B6021 */ addu $t4, $v1, $t3 -/* 09C354 7F069964 10000016 */ b .L7F0699C0 -/* 09C358 7F069968 AD801128 */ sw $zero, 0x1128($t4) -.L7F06996C: -/* 09C35C 7F06996C 00106880 */ sll $t5, $s0, 2 -/* 09C360 7F069970 01B06823 */ subu $t5, $t5, $s0 -/* 09C364 7F069974 000D6880 */ sll $t5, $t5, 2 -/* 09C368 7F069978 3C028003 */ lui $v0, %hi(ammo_related) -/* 09C36C 7F06997C 004D1021 */ addu $v0, $v0, $t5 -/* 09C370 7F069980 8FA3002C */ lw $v1, 0x2c($sp) -/* 09C374 7F069984 8C421440 */ lw $v0, %lo(ammo_related)($v0) -/* 09C378 7F069988 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 09C37C 7F06998C 3C198007 */ lui $t9, %hi(g_CurrentPlayer) # $t9, 0x8007 -/* 09C380 7F069990 0043082A */ slt $at, $v0, $v1 -/* 09C384 7F069994 10200006 */ beqz $at, .L7F0699B0 -/* 09C388 7F069998 00000000 */ nop -/* 09C38C 7F06999C 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09C390 7F0699A0 00107880 */ sll $t7, $s0, 2 -/* 09C394 7F0699A4 01CFC021 */ addu $t8, $t6, $t7 -/* 09C398 7F0699A8 10000005 */ b .L7F0699C0 -/* 09C39C 7F0699AC AF021128 */ sw $v0, 0x1128($t8) -.L7F0699B0: -/* 09C3A0 7F0699B0 8F398BC0 */ lw $t9, %lo(g_CurrentPlayer)($t9) -/* 09C3A4 7F0699B4 00104080 */ sll $t0, $s0, 2 -/* 09C3A8 7F0699B8 03284821 */ addu $t1, $t9, $t0 -/* 09C3AC 7F0699BC AD231128 */ sw $v1, 0x1128($t1) -.L7F0699C0: -/* 09C3B0 7F0699C0 8FBF001C */ lw $ra, 0x1c($sp) -/* 09C3B4 7F0699C4 8FB00018 */ lw $s0, 0x18($sp) -/* 09C3B8 7F0699C8 27BD0028 */ addiu $sp, $sp, 0x28 -/* 09C3BC 7F0699CC 03E00008 */ jr $ra -/* 09C3C0 7F0699D0 00000000 */ nop -) -#endif -#endif @@ -31797,234 +24927,58 @@ s32 currentPlayerGetAmmoCount(AMMOTYPE ammotype) { -#ifdef NONMATCHING -void get_max_ammo_for_type(void) { - +s32 get_max_ammo_for_type(s32 arg0) +{ + return ammo_related[arg0].MaxAmmo; } -#else -GLOBAL_ASM( -.text -glabel get_max_ammo_for_type -/* 09DE04 7F0692D4 00047080 */ sll $t6, $a0, 2 -/* 09DE08 7F0692D8 01C47023 */ subu $t6, $t6, $a0 -/* 09DE0C 7F0692DC 000E7080 */ sll $t6, $t6, 2 -/* 09DE10 7F0692E0 3C028003 */ lui $v0, %hi(ammo_related) -/* 09DE14 7F0692E4 004E1021 */ addu $v0, $v0, $t6 -/* 09DE18 7F0692E8 03E00008 */ jr $ra -/* 09DE1C 7F0692EC 8C425EF0 */ lw $v0, %lo(ammo_related)($v0) -) -#endif +void set_max_ammo_for_cur_player(void) +{ + s32 ammo_type; -#ifdef NONMATCHING -void set_max_ammo_for_cur_player(void) { - + for (ammo_type = 0; ammo_type < AMMO_RELATED_MAX; ammo_type++) + { + give_cur_player_ammo(ammo_type, ammo_related[ammo_type].MaxAmmo); + } } -#else -GLOBAL_ASM( -.text -glabel set_max_ammo_for_cur_player -/* 09DE20 7F0692F0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09DE24 7F0692F4 AFB1001C */ sw $s1, 0x1c($sp) -/* 09DE28 7F0692F8 AFB20020 */ sw $s2, 0x20($sp) -/* 09DE2C 7F0692FC AFB00018 */ sw $s0, 0x18($sp) -/* 09DE30 7F069300 3C118003 */ lui $s1, %hi(ammo_related) -/* 09DE34 7F069304 AFBF0024 */ sw $ra, 0x24($sp) -/* 09DE38 7F069308 26315EF0 */ addiu $s1, %lo(ammo_related) # addiu $s1, $s1, 0x5ef0 -/* 09DE3C 7F06930C 00008025 */ move $s0, $zero -/* 09DE40 7F069310 2412001E */ li $s2, 30 -.L7F069314: -/* 09DE44 7F069314 02002025 */ move $a0, $s0 -/* 09DE48 7F069318 0FC1A44C */ jal give_cur_player_ammo -/* 09DE4C 7F06931C 8E250000 */ lw $a1, ($s1) -/* 09DE50 7F069320 26100001 */ addiu $s0, $s0, 1 -/* 09DE54 7F069324 1612FFFB */ bne $s0, $s2, .L7F069314 -/* 09DE58 7F069328 2631000C */ addiu $s1, $s1, 0xc -/* 09DE5C 7F06932C 8FBF0024 */ lw $ra, 0x24($sp) -/* 09DE60 7F069330 8FB00018 */ lw $s0, 0x18($sp) -/* 09DE64 7F069334 8FB1001C */ lw $s1, 0x1c($sp) -/* 09DE68 7F069338 8FB20020 */ lw $s2, 0x20($sp) -/* 09DE6C 7F06933C 03E00008 */ jr $ra -/* 09DE70 7F069340 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - -#ifdef NONMATCHING -void get_ammo_in_hands_magazine(void) { - +s32 get_ammo_in_hands_magazine(GUNHAND hand) { + return g_CurrentPlayer->hands[hand].weapon_ammo_in_magazine; } -#else - -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel get_ammo_in_hands_magazine -/* 09DE74 7F069344 000478C0 */ sll $t7, $a0, 3 -/* 09DE78 7F069348 01E47823 */ subu $t7, $t7, $a0 -/* 09DE7C 7F06934C 000F7880 */ sll $t7, $t7, 2 -/* 09DE80 7F069350 01E47821 */ addu $t7, $t7, $a0 -/* 09DE84 7F069354 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 09DE88 7F069358 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09DE8C 7F06935C 000F7880 */ sll $t7, $t7, 2 -/* 09DE90 7F069360 01E47821 */ addu $t7, $t7, $a0 -/* 09DE94 7F069364 000F78C0 */ sll $t7, $t7, 3 -/* 09DE98 7F069368 01CFC021 */ addu $t8, $t6, $t7 -/* 09DE9C 7F06936C 03E00008 */ jr $ra -/* 09DEA0 7F069370 8F02089C */ lw $v0, 0x89c($t8) -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel get_ammo_in_hands_magazine -/* 09C4C8 7F069AD8 000478C0 */ sll $t7, $a0, 3 -/* 09C4CC 7F069ADC 01E47823 */ subu $t7, $t7, $a0 -/* 09C4D0 7F069AE0 000F7880 */ sll $t7, $t7, 2 -/* 09C4D4 7F069AE4 01E47821 */ addu $t7, $t7, $a0 -/* 09C4D8 7F069AE8 3C0E8007 */ lui $t6, %hi(g_CurrentPlayer) # $t6, 0x8007 -/* 09C4DC 7F069AEC 8DCE8BC0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 09C4E0 7F069AF0 000F7880 */ sll $t7, $t7, 2 -/* 09C4E4 7F069AF4 01E47821 */ addu $t7, $t7, $a0 -/* 09C4E8 7F069AF8 000F78C0 */ sll $t7, $t7, 3 -/* 09C4EC 7F069AFC 01CFC021 */ addu $t8, $t6, $t7 -/* 09C4F0 7F069B00 03E00008 */ jr $ra -/* 09C4F4 7F069B04 8F020894 */ lw $v0, 0x894($t8) -) -#endif -#endif +s32 get_ammo_in_hands_weapon(enum GUNHAND hand) +{ + s32 weapon_id; + s32 ammo_count; + weapon_id = getCurrentPlayerWeaponId(hand); + ammo_count = get_ammo_count_for_weapon(weapon_id); -#ifdef NONMATCHING -void get_ammo_in_hands_weapon(void) { + if ((weapon_id == ITEM_SHOTGUN) || (weapon_id == ITEM_AUTOSHOT)) + { + s32 other_weapon_id; + other_weapon_id = getCurrentPlayerWeaponId(1 - hand); + if ((other_weapon_id == ITEM_SHOTGUN) || (other_weapon_id == ITEM_AUTOSHOT)) + { + return ammo_count - g_CurrentPlayer->hands[1 - hand].field_8A4; + } + + /* I don't know why there's an extra return here, but it's needed to match */ + return ammo_count; + } + + return ammo_count; } -#else -#if defined(VERSION_US) || defined(VERSION_JP) -GLOBAL_ASM( -.text -glabel get_ammo_in_hands_weapon -/* 09DEA4 7F069374 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 09DEA8 7F069378 AFBF0014 */ sw $ra, 0x14($sp) -/* 09DEAC 7F06937C 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09DEB0 7F069380 AFA40020 */ sw $a0, 0x20($sp) -/* 09DEB4 7F069384 00402025 */ move $a0, $v0 -/* 09DEB8 7F069388 0FC1A514 */ jal get_ammo_count_for_weapon -/* 09DEBC 7F06938C AFA2001C */ sw $v0, 0x1c($sp) -/* 09DEC0 7F069390 8FA3001C */ lw $v1, 0x1c($sp) -/* 09DEC4 7F069394 2401000F */ li $at, 15 -/* 09DEC8 7F069398 00402825 */ move $a1, $v0 -/* 09DECC 7F06939C 10610004 */ beq $v1, $at, .L7F0693B0 -/* 09DED0 7F0693A0 8FAE0020 */ lw $t6, 0x20($sp) -/* 09DED4 7F0693A4 24010010 */ li $at, 16 -/* 09DED8 7F0693A8 1461001C */ bne $v1, $at, .L7F06941C -/* 09DEDC 7F0693AC 00A01025 */ move $v0, $a1 -.L7F0693B0: -/* 09DEE0 7F0693B0 240F0001 */ li $t7, 1 -/* 09DEE4 7F0693B4 01EE2023 */ subu $a0, $t7, $t6 -/* 09DEE8 7F0693B8 0FC17674 */ jal getCurrentPlayerWeaponId -/* 09DEEC 7F0693BC AFA50018 */ sw $a1, 0x18($sp) -/* 09DEF0 7F0693C0 2401000F */ li $at, 15 -/* 09DEF4 7F0693C4 10410004 */ beq $v0, $at, .L7F0693D8 -/* 09DEF8 7F0693C8 8FA50018 */ lw $a1, 0x18($sp) -/* 09DEFC 7F0693CC 24010010 */ li $at, 16 -/* 09DF00 7F0693D0 14410010 */ bne $v0, $at, .L7F069414 -/* 09DF04 7F0693D4 00000000 */ nop -.L7F0693D8: -/* 09DF08 7F0693D8 8FB90020 */ lw $t9, 0x20($sp) -/* 09DF0C 7F0693DC 3C188008 */ lui $t8, %hi(g_CurrentPlayer) -/* 09DF10 7F0693E0 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($t8) -/* 09DF14 7F0693E4 001940C0 */ sll $t0, $t9, 3 -/* 09DF18 7F0693E8 01194023 */ subu $t0, $t0, $t9 -/* 09DF1C 7F0693EC 00084080 */ sll $t0, $t0, 2 -/* 09DF20 7F0693F0 01194021 */ addu $t0, $t0, $t9 -/* 09DF24 7F0693F4 00084080 */ sll $t0, $t0, 2 -/* 09DF28 7F0693F8 01194021 */ addu $t0, $t0, $t9 -/* 09DF2C 7F0693FC 000840C0 */ sll $t0, $t0, 3 -/* 09DF30 7F069400 00084823 */ negu $t1, $t0 -/* 09DF34 7F069404 03095021 */ addu $t2, $t8, $t1 -/* 09DF38 7F069408 8D4B0C4C */ lw $t3, 0xc4c($t2) -/* 09DF3C 7F06940C 10000003 */ b .L7F06941C -/* 09DF40 7F069410 00AB1023 */ subu $v0, $a1, $t3 -.L7F069414: -/* 09DF44 7F069414 10000001 */ b .L7F06941C -/* 09DF48 7F069418 00A01025 */ move $v0, $a1 -.L7F06941C: -/* 09DF4C 7F06941C 8FBF0014 */ lw $ra, 0x14($sp) -/* 09DF50 7F069420 27BD0020 */ addiu $sp, $sp, 0x20 -/* 09DF54 7F069424 03E00008 */ jr $ra -/* 09DF58 7F069428 00000000 */ nop -) -#endif -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel get_ammo_in_hands_weapon -/* 09C4F8 7F069B08 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 09C4FC 7F069B0C AFBF0014 */ sw $ra, 0x14($sp) -/* 09C500 7F069B10 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09C504 7F069B14 AFA40020 */ sw $a0, 0x20($sp) -/* 09C508 7F069B18 00402025 */ move $a0, $v0 -/* 09C50C 7F069B1C 0FC1A6F9 */ jal get_ammo_count_for_weapon -/* 09C510 7F069B20 AFA2001C */ sw $v0, 0x1c($sp) -/* 09C514 7F069B24 8FA3001C */ lw $v1, 0x1c($sp) -/* 09C518 7F069B28 2401000F */ li $at, 15 -/* 09C51C 7F069B2C 00402825 */ move $a1, $v0 -/* 09C520 7F069B30 10610004 */ beq $v1, $at, .Leu7F069B44 -/* 09C524 7F069B34 8FAE0020 */ lw $t6, 0x20($sp) -/* 09C528 7F069B38 24010010 */ li $at, 16 -/* 09C52C 7F069B3C 1461001C */ bne $v1, $at, .L7F069BB0 -/* 09C530 7F069B40 00A01025 */ move $v0, $a1 -.Leu7F069B44: -/* 09C534 7F069B44 240F0001 */ li $t7, 1 -/* 09C538 7F069B48 01EE2023 */ subu $a0, $t7, $t6 -/* 09C53C 7F069B4C 0FC177A2 */ jal getCurrentPlayerWeaponId -/* 09C540 7F069B50 AFA50018 */ sw $a1, 0x18($sp) -/* 09C544 7F069B54 2401000F */ li $at, 15 -/* 09C548 7F069B58 10410004 */ beq $v0, $at, .L7F069B6C -/* 09C54C 7F069B5C 8FA50018 */ lw $a1, 0x18($sp) -/* 09C550 7F069B60 24010010 */ li $at, 16 -/* 09C554 7F069B64 14410010 */ bne $v0, $at, .L7F069BA8 -/* 09C558 7F069B68 00000000 */ nop -.L7F069B6C: -/* 09C55C 7F069B6C 8FB90020 */ lw $t9, 0x20($sp) -/* 09C560 7F069B70 3C188007 */ lui $t8, %hi(g_CurrentPlayer) # $t8, 0x8007 -/* 09C564 7F069B74 8F188BC0 */ lw $t8, %lo(g_CurrentPlayer)($t8) -/* 09C568 7F069B78 001940C0 */ sll $t0, $t9, 3 -/* 09C56C 7F069B7C 01194023 */ subu $t0, $t0, $t9 -/* 09C570 7F069B80 00084080 */ sll $t0, $t0, 2 -/* 09C574 7F069B84 01194021 */ addu $t0, $t0, $t9 -/* 09C578 7F069B88 00084080 */ sll $t0, $t0, 2 -/* 09C57C 7F069B8C 01194021 */ addu $t0, $t0, $t9 -/* 09C580 7F069B90 000840C0 */ sll $t0, $t0, 3 -/* 09C584 7F069B94 00084823 */ negu $t1, $t0 -/* 09C588 7F069B98 03095021 */ addu $t2, $t8, $t1 -/* 09C58C 7F069B9C 8D4B0C44 */ lw $t3, 0xc44($t2) -/* 09C590 7F069BA0 10000003 */ b .L7F069BB0 -/* 09C594 7F069BA4 00AB1023 */ subu $v0, $a1, $t3 -.L7F069BA8: -/* 09C598 7F069BA8 10000001 */ b .L7F069BB0 -/* 09C59C 7F069BAC 00A01025 */ move $v0, $a1 -.L7F069BB0: -/* 09C5A0 7F069BB0 8FBF0014 */ lw $ra, 0x14($sp) -/* 09C5A4 7F069BB4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 09C5A8 7F069BB8 03E00008 */ jr $ra -/* 09C5AC 7F069BBC 00000000 */ nop -) -#endif -#endif s32 get_ammo_type_for_weapon(ITEM_IDS weapon) { return get_ptr_item_statistics(weapon)->AmmoType; @@ -32039,32 +24993,10 @@ void add_ammo_to_weapon(ITEM_IDS weapon, s32 ammo) { give_cur_player_ammo(get_ptr_item_statistics(weapon)->AmmoType, ammo); } -#ifdef NONMATCHING -void get_max_ammo_for_weapon(void) { - +s32 get_max_ammo_for_weapon(enum ITEM_IDS weapon) +{ + return ammo_related[get_ptr_item_statistics(weapon)->AmmoType].MaxAmmo; } -#else -GLOBAL_ASM( -.text -glabel get_max_ammo_for_weapon -/* 09DFE0 7F0694B0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09DFE4 7F0694B4 AFBF0014 */ sw $ra, 0x14($sp) -/* 09DFE8 7F0694B8 0FC1722D */ jal get_ptr_item_statistics -/* 09DFEC 7F0694BC 00000000 */ nop -/* 09DFF0 7F0694C0 8C4E001C */ lw $t6, 0x1c($v0) -/* 09DFF4 7F0694C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 09DFF8 7F0694C8 3C028003 */ lui $v0, %hi(ammo_related) -/* 09DFFC 7F0694CC 000E7880 */ sll $t7, $t6, 2 -/* 09E000 7F0694D0 01EE7823 */ subu $t7, $t7, $t6 -/* 09E004 7F0694D4 000F7880 */ sll $t7, $t7, 2 -/* 09E008 7F0694D8 004F1021 */ addu $v0, $v0, $t7 -/* 09E00C 7F0694DC 8C425EF0 */ lw $v0, %lo(ammo_related)($v0) -/* 09E010 7F0694E0 03E00008 */ jr $ra -/* 09E014 7F0694E4 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - - @@ -32894,47 +25826,13 @@ glabel some_kind_of_display_routine - -#if defined(VERSION_US) || defined(VERSION_JP) -Gfx *display_ammo_total_in_a1(Gfx *arg0, s32 amount, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { +Gfx *display_ammo_total_in_a1(Gfx *arg0, s32 amount, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) +{ char buffer[12]; - sprintf(buffer, aD_9, amount); + sprintf(buffer, "%d\n", amount); return some_kind_of_display_routine(arg0, buffer, arg2, arg3, arg4, arg5, arg6); } -#endif -#if defined(VERSION_EU) -GLOBAL_ASM( -.text -glabel display_ammo_total_in_a1 -/* 09CE10 7F06A420 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 09CE14 7F06A424 AFA60040 */ sw $a2, 0x40($sp) -/* 09CE18 7F06A428 00A03025 */ move $a2, $a1 -/* 09CE1C 7F06A42C AFA5003C */ sw $a1, 0x3c($sp) -/* 09CE20 7F06A430 AFBF0024 */ sw $ra, 0x24($sp) -/* 09CE24 7F06A434 AFA40038 */ sw $a0, 0x38($sp) -/* 09CE28 7F06A438 3C058005 */ lui $a1, %hi(aD_9) # $a1, 0x8005 -/* 09CE2C 7F06A43C AFA70044 */ sw $a3, 0x44($sp) -/* 09CE30 7F06A440 24A59D34 */ addiu $a1, %lo(aD_9) # addiu $a1, $a1, -0x62cc -/* 09CE34 7F06A444 0C00283D */ jal sprintf -/* 09CE38 7F06A448 27A4002C */ addiu $a0, $sp, 0x2c -/* 09CE3C 7F06A44C 8FAE0048 */ lw $t6, 0x48($sp) -/* 09CE40 7F06A450 8FAF004C */ lw $t7, 0x4c($sp) -/* 09CE44 7F06A454 8FB80050 */ lw $t8, 0x50($sp) -/* 09CE48 7F06A458 8FA40038 */ lw $a0, 0x38($sp) -/* 09CE4C 7F06A45C 27A5002C */ addiu $a1, $sp, 0x2c -/* 09CE50 7F06A460 8FA60040 */ lw $a2, 0x40($sp) -/* 09CE54 7F06A464 8FA70044 */ lw $a3, 0x44($sp) -/* 09CE58 7F06A468 AFAE0010 */ sw $t6, 0x10($sp) -/* 09CE5C 7F06A46C AFAF0014 */ sw $t7, 0x14($sp) -/* 09CE60 7F06A470 0FC1A879 */ jal some_kind_of_display_routine -/* 09CE64 7F06A474 AFB80018 */ sw $t8, 0x18($sp) -/* 09CE68 7F06A478 8FBF0024 */ lw $ra, 0x24($sp) -/* 09CE6C 7F06A47C 27BD0038 */ addiu $sp, $sp, 0x38 -/* 09CE70 7F06A480 03E00008 */ jr $ra -/* 09CE74 7F06A484 00000000 */ nop -) -#endif @@ -34622,442 +27520,75 @@ s32 get_civilian_casualties(void) return g_playerPerm->killed_civilians; } -#ifdef NONMATCHING -void *increment_num_kills_display_text_in_MP(void) { - s32 sp34; - ? sp40; - void *temp_ret; - s32 temp_v0; - s32 temp_a0; - s32 phi_a0; - void *phi_return_reg; - // Node 0 - g_playerPerm->killcount = (s32) (g_playerPerm->killcount + 1); - g_CurrentPlayer->field_29F8 = (s32) (g_CurrentPlayer->field_29F8 + 1); - temp_ret = getPlayerCount(); - phi_return_reg = temp_ret; - if (temp_ret >= 2) +//D:80053BF8 +const char aSD[] = "%s: %d\n"; + + + +void increment_num_kills_display_text_in_MP(void) +{ + s8 buffer[0x100]; + s32 time_since_kill; + s32 recent_kill_count; + s32 mission_time; + s32 unused; // needed this variable to match + + g_playerPerm->kill_count += 1; + g_CurrentPlayer->field_29F8 += 1; + + if (getPlayerCount() < 2) { return; } + + mission_time = getMissiontimer(); + sprintf(&buffer, aSD, langGet(0x98DA), g_playerPerm->kill_count); + +#if defined(VERSION_US) + hudmsgBottomShow(&buffer); +#elif defined(VERSION_JP) || defined(VERSION_EU) + jp_hudmsgBottomShow(&buffer); +#endif + + if (g_playerPerm->kill_count >= 2) { - // Node 1 - sp34 = getMissiontimer(); - sprintf(&sp40, &aSD, langGet(TEXT(LGUN, 0xDA)), g_playerPerm->killcount); // kill count - hudmsgBottomShow(&sp40); - if (g_playerPerm->killcount >= 2) + time_since_kill = mission_time - g_CurrentPlayer->last_kill_time[0]; + if (g_playerPerm->max_time_between_kills < time_since_kill) { - // Node 2 - temp_v0 = (sp34 - g_CurrentPlayer->last_kill_time); - if (g_playerPerm->slowest2kills < temp_v0) - { - // Node 3 - g_playerPerm->slowest2kills = temp_v0; - } - // Node 4 - if (temp_v0 < g_playerPerm->fastest2kills) - { - // Node 5 - g_playerPerm->fastest2kills = temp_v0; - } + g_playerPerm->max_time_between_kills = time_since_kill; } - // Node 6 - g_CurrentPlayer->unk29F0 = (s32) g_CurrentPlayer->unk29EC; - g_CurrentPlayer->unk29EC = (s32) g_CurrentPlayer->unk29E8; - g_CurrentPlayer->unk29E8 = (s32) g_CurrentPlayer->last_kill_time; - g_CurrentPlayer->last_kill_time = sp34; - phi_a0 = 1; - if (-1 != g_CurrentPlayer->unk29E8) + + if (time_since_kill < g_playerPerm->min_time_between_kills) { - // Node 7 - phi_a0 = 1; - if ((g_CurrentPlayer->last_kill_time - g_CurrentPlayer->unk29E8) < 0x78) - { - // Node 8 - phi_a0 = 2; - if (-1 != g_CurrentPlayer->unk29EC) - { - // Node 9 - phi_a0 = 2; - if ((g_CurrentPlayer->last_kill_time - g_CurrentPlayer->unk29EC) < 0x78) - { - // Node 10 - temp_a0 = (2 + 1); - phi_a0 = temp_a0; - if (-1 != g_CurrentPlayer->unk29F0) - { - // Node 11 - phi_a0 = temp_a0; - if ((g_CurrentPlayer->last_kill_time - g_CurrentPlayer->unk29F0) < 0x78) - { - // Node 12 - phi_a0 = (temp_a0 + 1); - } - } - } - } - } - } - // Node 13 - phi_return_reg = g_CurrentPlayer; - if (g_playerPerm->most_killed_one_time < phi_a0) - { - // Node 14 - g_playerPerm->most_killed_one_time = (s32) phi_a0; - phi_return_reg = g_CurrentPlayer; + g_playerPerm->min_time_between_kills = time_since_kill; } } - // Node 15 - return phi_return_reg; + + recent_kill_count = 1; + g_CurrentPlayer->last_kill_time[3] = g_CurrentPlayer->last_kill_time[2]; + g_CurrentPlayer->last_kill_time[2] = g_CurrentPlayer->last_kill_time[1]; + g_CurrentPlayer->last_kill_time[1] = g_CurrentPlayer->last_kill_time[0]; + g_CurrentPlayer->last_kill_time[0] = mission_time; + + // I tried to turn this into a loop but it didn't match + if (g_CurrentPlayer->last_kill_time[1] != -1 && (g_CurrentPlayer->last_kill_time[0] - g_CurrentPlayer->last_kill_time[1]) < 0x78) + { + recent_kill_count++; + if ((g_CurrentPlayer->last_kill_time[2] != -1) && ((g_CurrentPlayer->last_kill_time[0] - g_CurrentPlayer->last_kill_time[2]) < 0x78)) + { + recent_kill_count++; + if ((g_CurrentPlayer->last_kill_time[3] != -1) && ((g_CurrentPlayer->last_kill_time[0] - g_CurrentPlayer->last_kill_time[3]) < 0x78)) + { + recent_kill_count++; + } + } + } + + if (g_playerPerm->most_killed_one_time < recent_kill_count) + { + g_playerPerm->most_killed_one_time = recent_kill_count; + } } -#else -#ifdef VERSION_US -GLOBAL_ASM( -.text -glabel increment_num_kills_display_text_in_MP -/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(g_playerPerm) -/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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(g_CurrentPlayer) -/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(g_CurrentPlayer) # 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 getMissiontimer -/* 09F2FC 7F06A7CC 00000000 */ nop -/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) -/* 09F304 7F06A7D4 0FC30776 */ jal langGet -/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 -/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(g_playerPerm) -/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(g_playerPerm)($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 hudmsgBottomShow -/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 -/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(g_playerPerm) -/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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(g_playerPerm) -/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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(g_playerPerm) -/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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 -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel increment_num_kills_display_text_in_MP -/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(g_playerPerm) -/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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(g_CurrentPlayer) -/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(g_CurrentPlayer) # 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 getMissiontimer -/* 09F2FC 7F06A7CC 00000000 */ nop -/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) -/* 09F304 7F06A7D4 0FC30776 */ jal langGet -/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 -/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(g_playerPerm) -/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(g_playerPerm)($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 jp_hudmsgBottomShow -/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 -/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(g_playerPerm) -/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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(g_playerPerm) -/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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(g_playerPerm) -/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(g_playerPerm)($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 - -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel increment_num_kills_display_text_in_MP -/* 09D918 7F06AF28 3C038007 */ lui $v1, %hi(g_playerPerm) # $v1, 0x8007 -/* 09D91C 7F06AF2C 8C638BC4 */ lw $v1, %lo(g_playerPerm)($v1) -/* 09D920 7F06AF30 27BDFEC0 */ addiu $sp, $sp, -0x140 -/* 09D924 7F06AF34 AFBF001C */ sw $ra, 0x1c($sp) -/* 09D928 7F06AF38 AFB00018 */ sw $s0, 0x18($sp) -/* 09D92C 7F06AF3C 8C6E001C */ lw $t6, 0x1c($v1) -/* 09D930 7F06AF40 3C108007 */ lui $s0, %hi(g_CurrentPlayer) # $s0, 0x8007 -/* 09D934 7F06AF44 26108BC0 */ addiu $s0, %lo(g_CurrentPlayer) # addiu $s0, $s0, -0x7440 -/* 09D938 7F06AF48 25CF0001 */ addiu $t7, $t6, 1 -/* 09D93C 7F06AF4C AC6F001C */ sw $t7, 0x1c($v1) -/* 09D940 7F06AF50 8E020000 */ lw $v0, ($s0) -/* 09D944 7F06AF54 8C5829F0 */ lw $t8, 0x29f0($v0) -/* 09D948 7F06AF58 27190001 */ addiu $t9, $t8, 1 -/* 09D94C 7F06AF5C 0FC26669 */ jal getPlayerCount -/* 09D950 7F06AF60 AC5929F0 */ sw $t9, 0x29f0($v0) -/* 09D954 7F06AF64 28410002 */ slti $at, $v0, 2 -/* 09D958 7F06AF68 54200054 */ bnezl $at, .L7F06B0BC -/* 09D95C 7F06AF6C 8FBF001C */ lw $ra, 0x1c($sp) -/* 09D960 7F06AF70 0FC230AB */ jal getMissiontimer -/* 09D964 7F06AF74 00000000 */ nop -/* 09D968 7F06AF78 AFA20034 */ sw $v0, 0x34($sp) -/* 09D96C 7F06AF7C 0FC304AE */ jal langGet -/* 09D970 7F06AF80 340498DA */ li $a0, 39130 -/* 09D974 7F06AF84 3C088007 */ lui $t0, %hi(g_playerPerm) # $t0, 0x8007 -/* 09D978 7F06AF88 8D088BC4 */ lw $t0, %lo(g_playerPerm)($t0) -/* 09D97C 7F06AF8C 3C058005 */ lui $a1, %hi(aSD) # $a1, 0x8005 -/* 09D980 7F06AF90 24A59D38 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, -0x62c8 -/* 09D984 7F06AF94 27A40040 */ addiu $a0, $sp, 0x40 -/* 09D988 7F06AF98 00403025 */ move $a2, $v0 -/* 09D98C 7F06AF9C 0C00283D */ jal sprintf -/* 09D990 7F06AFA0 8D07001C */ lw $a3, 0x1c($t0) -/* 09D994 7F06AFA4 0FC229B5 */ jal jp_hudmsgBottomShow -/* 09D998 7F06AFA8 27A40040 */ addiu $a0, $sp, 0x40 -/* 09D99C 7F06AFAC 3C038007 */ lui $v1, %hi(g_playerPerm) # $v1, 0x8007 -/* 09D9A0 7F06AFB0 8C638BC4 */ lw $v1, %lo(g_playerPerm)($v1) -/* 09D9A4 7F06AFB4 8C69001C */ lw $t1, 0x1c($v1) -/* 09D9A8 7F06AFB8 29210002 */ slti $at, $t1, 2 -/* 09D9AC 7F06AFBC 54200012 */ bnezl $at, .L7F06B008 -/* 09D9B0 7F06AFC0 8E020000 */ lw $v0, ($s0) -/* 09D9B4 7F06AFC4 8E0B0000 */ lw $t3, ($s0) -/* 09D9B8 7F06AFC8 8FAA0034 */ lw $t2, 0x34($sp) -/* 09D9BC 7F06AFCC 8C6D0048 */ lw $t5, 0x48($v1) -/* 09D9C0 7F06AFD0 8D6C29DC */ lw $t4, 0x29dc($t3) -/* 09D9C4 7F06AFD4 014C1023 */ subu $v0, $t2, $t4 -/* 09D9C8 7F06AFD8 01A2082A */ slt $at, $t5, $v0 -/* 09D9CC 7F06AFDC 50200005 */ beql $at, $zero, .L7F06AFF4 -/* 09D9D0 7F06AFE0 8C6E0044 */ lw $t6, 0x44($v1) -/* 09D9D4 7F06AFE4 AC620048 */ sw $v0, 0x48($v1) -/* 09D9D8 7F06AFE8 3C038007 */ lui $v1, %hi(g_playerPerm) # $v1, 0x8007 -/* 09D9DC 7F06AFEC 8C638BC4 */ lw $v1, %lo(g_playerPerm)($v1) -/* 09D9E0 7F06AFF0 8C6E0044 */ lw $t6, 0x44($v1) -.L7F06AFF4: -/* 09D9E4 7F06AFF4 004E082A */ slt $at, $v0, $t6 -/* 09D9E8 7F06AFF8 50200003 */ beql $at, $zero, .L7F06B008 -/* 09D9EC 7F06AFFC 8E020000 */ lw $v0, ($s0) -/* 09D9F0 7F06B000 AC620044 */ sw $v0, 0x44($v1) -/* 09D9F4 7F06B004 8E020000 */ lw $v0, ($s0) -.L7F06B008: -/* 09D9F8 7F06B008 2406FFFF */ li $a2, -1 -/* 09D9FC 7F06B00C 24040001 */ li $a0, 1 -/* 09DA00 7F06B010 8C4F29E4 */ lw $t7, 0x29e4($v0) -/* 09DA04 7F06B014 AC4F29E8 */ sw $t7, 0x29e8($v0) -/* 09DA08 7F06B018 8E020000 */ lw $v0, ($s0) -/* 09DA0C 7F06B01C 8C5829E0 */ lw $t8, 0x29e0($v0) -/* 09DA10 7F06B020 AC5829E4 */ sw $t8, 0x29e4($v0) -/* 09DA14 7F06B024 8E020000 */ lw $v0, ($s0) -/* 09DA18 7F06B028 8C5929DC */ lw $t9, 0x29dc($v0) -/* 09DA1C 7F06B02C AC5929E0 */ sw $t9, 0x29e0($v0) -/* 09DA20 7F06B030 8E090000 */ lw $t1, ($s0) -/* 09DA24 7F06B034 8FA80034 */ lw $t0, 0x34($sp) -/* 09DA28 7F06B038 AD2829DC */ sw $t0, 0x29dc($t1) -/* 09DA2C 7F06B03C 8E020000 */ lw $v0, ($s0) -/* 09DA30 7F06B040 8C4529E0 */ lw $a1, 0x29e0($v0) -/* 09DA34 7F06B044 10C50015 */ beq $a2, $a1, .L7F06B09C -/* 09DA38 7F06B048 00000000 */ nop -/* 09DA3C 7F06B04C 8C4329DC */ lw $v1, 0x29dc($v0) -/* 09DA40 7F06B050 00655823 */ subu $t3, $v1, $a1 -/* 09DA44 7F06B054 29610078 */ slti $at, $t3, 0x78 -/* 09DA48 7F06B058 10200010 */ beqz $at, .L7F06B09C -/* 09DA4C 7F06B05C 00000000 */ nop -/* 09DA50 7F06B060 8C4529E4 */ lw $a1, 0x29e4($v0) -/* 09DA54 7F06B064 24040002 */ li $a0, 2 -/* 09DA58 7F06B068 10C5000C */ beq $a2, $a1, .L7F06B09C -/* 09DA5C 7F06B06C 00655023 */ subu $t2, $v1, $a1 -/* 09DA60 7F06B070 29410078 */ slti $at, $t2, 0x78 -/* 09DA64 7F06B074 10200009 */ beqz $at, .L7F06B09C -/* 09DA68 7F06B078 00000000 */ nop -/* 09DA6C 7F06B07C 8C4529E8 */ lw $a1, 0x29e8($v0) -/* 09DA70 7F06B080 24840001 */ addiu $a0, $a0, 1 -/* 09DA74 7F06B084 10C50005 */ beq $a2, $a1, .L7F06B09C -/* 09DA78 7F06B088 00656023 */ subu $t4, $v1, $a1 -/* 09DA7C 7F06B08C 29810078 */ slti $at, $t4, 0x78 -/* 09DA80 7F06B090 10200002 */ beqz $at, .L7F06B09C -/* 09DA84 7F06B094 00000000 */ nop -/* 09DA88 7F06B098 24840001 */ addiu $a0, $a0, 1 -.L7F06B09C: -/* 09DA8C 7F06B09C 3C038007 */ lui $v1, %hi(g_playerPerm) # $v1, 0x8007 -/* 09DA90 7F06B0A0 8C638BC4 */ lw $v1, %lo(g_playerPerm)($v1) -/* 09DA94 7F06B0A4 8C6D0058 */ lw $t5, 0x58($v1) -/* 09DA98 7F06B0A8 01A4082A */ slt $at, $t5, $a0 -/* 09DA9C 7F06B0AC 50200003 */ beql $at, $zero, .L7F06B0BC -/* 09DAA0 7F06B0B0 8FBF001C */ lw $ra, 0x1c($sp) -/* 09DAA4 7F06B0B4 AC640058 */ sw $a0, 0x58($v1) -/* 09DAA8 7F06B0B8 8FBF001C */ lw $ra, 0x1c($sp) -.L7F06B0BC: -/* 09DAAC 7F06B0BC 8FB00018 */ lw $s0, 0x18($sp) -/* 09DAB0 7F06B0C0 27BD0140 */ addiu $sp, $sp, 0x140 -/* 09DAB4 7F06B0C4 03E00008 */ jr $ra -/* 09DAB8 7F06B0C8 00000000 */ nop -) -#endif -#endif s32 get_curplay_killcount(void) { return g_playerPerm->kill_count; @@ -35071,10 +27602,10 @@ s32 get_times_killed_mwtgx(void) { return g_playerPerm->killed_gg_owner_count; } -#ifdef NONMATCHING + void increment_num_deaths(void) { - char acStack256 [256] + char acStack256 [256]; g_CurrentPlayer->deathcount = (s32) (g_CurrentPlayer->deathcount + 1); if (getPlayerCount() >= 2) { @@ -35084,178 +27615,24 @@ void increment_num_deaths(void) } else { - sprintf(acStack256, &aSDS, langGet(TEXT(LGUN, 0xDC))), g_CurrentPlayer->deathcount, langGet(TEXT(LGUN, 0xDD))); //died times + sprintf(acStack256, "%s %d %s\n", langGet(TEXT(LGUN, 0xDC)), g_CurrentPlayer->deathcount, langGet(TEXT(LGUN, 0xDD))); //died times } +#if defined(VERSION_JP) || defined(VERSION_EU) + jp_hudmsgBottomShow(acStack256); +#else hudmsgBottomShow(acStack256); +#endif } } -#else -#ifdef VERSION_US -GLOBAL_ASM( -.text -glabel increment_num_deaths -/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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(g_CurrentPlayer) -/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($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 langGet -/* 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 langGet -/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 -/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) -/* 09F4F4 7F06A9C4 0FC30776 */ jal langGet -/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 -/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(g_CurrentPlayer) -/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(g_CurrentPlayer)($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 hudmsgBottomShow -/* 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 -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel increment_num_deaths -/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(g_CurrentPlayer) -/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(g_CurrentPlayer)($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(g_CurrentPlayer) -/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(g_CurrentPlayer)($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 langGet -/* 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 langGet -/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 -/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) -/* 09F4F4 7F06A9C4 0FC30776 */ jal langGet -/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 -/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(g_CurrentPlayer) -/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(g_CurrentPlayer)($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 jp_hudmsgBottomShow -/* 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 - -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel increment_num_deaths -/* 09DAF4 7F06B104 3C028007 */ lui $v0, %hi(g_CurrentPlayer) # $v0, 0x8007 -/* 09DAF8 7F06B108 8C428BC0 */ lw $v0, %lo(g_CurrentPlayer)($v0) -/* 09DAFC 7F06B10C 27BDFED0 */ addiu $sp, $sp, -0x130 -/* 09DB00 7F06B110 AFBF001C */ sw $ra, 0x1c($sp) -/* 09DB04 7F06B114 8C4E29D0 */ lw $t6, 0x29d0($v0) -/* 09DB08 7F06B118 25CF0001 */ addiu $t7, $t6, 1 -/* 09DB0C 7F06B11C 0FC26669 */ jal getPlayerCount -/* 09DB10 7F06B120 AC4F29D0 */ sw $t7, 0x29d0($v0) -/* 09DB14 7F06B124 28410002 */ slti $at, $v0, 2 -/* 09DB18 7F06B128 1420001D */ bnez $at, .L7F06B1A0 -/* 09DB1C 7F06B12C 3C188007 */ lui $t8, %hi(g_CurrentPlayer) # $t8, 0x8007 -/* 09DB20 7F06B130 8F188BC0 */ lw $t8, %lo(g_CurrentPlayer)($t8) -/* 09DB24 7F06B134 24010001 */ li $at, 1 -/* 09DB28 7F06B138 8F1929D0 */ lw $t9, 0x29d0($t8) -/* 09DB2C 7F06B13C 17210008 */ bne $t9, $at, .L7F06B160 -/* 09DB30 7F06B140 00000000 */ nop -/* 09DB34 7F06B144 0FC304AE */ jal langGet -/* 09DB38 7F06B148 340498DB */ li $a0, 39131 -/* 09DB3C 7F06B14C 27A40030 */ addiu $a0, $sp, 0x30 -/* 09DB40 7F06B150 0C00283D */ jal sprintf -/* 09DB44 7F06B154 00402825 */ move $a1, $v0 -/* 09DB48 7F06B158 1000000F */ b .L7F06B198 -/* 09DB4C 7F06B15C 00000000 */ nop -.L7F06B160: -/* 09DB50 7F06B160 0FC304AE */ jal langGet -/* 09DB54 7F06B164 340498DC */ li $a0, 39132 -/* 09DB58 7F06B168 AFA20028 */ sw $v0, 0x28($sp) -/* 09DB5C 7F06B16C 0FC304AE */ jal langGet -/* 09DB60 7F06B170 340498DD */ li $a0, 39133 -/* 09DB64 7F06B174 3C088007 */ lui $t0, %hi(g_CurrentPlayer) # $t0, 0x8007 -/* 09DB68 7F06B178 8D088BC0 */ lw $t0, %lo(g_CurrentPlayer)($t0) -/* 09DB6C 7F06B17C 3C058005 */ lui $a1, %hi(aSDS) # $a1, 0x8005 -/* 09DB70 7F06B180 24A59D40 */ addiu $a1, %lo(aSDS) # addiu $a1, $a1, -0x62c0 -/* 09DB74 7F06B184 8D0729D0 */ lw $a3, 0x29d0($t0) -/* 09DB78 7F06B188 AFA20010 */ sw $v0, 0x10($sp) -/* 09DB7C 7F06B18C 27A40030 */ addiu $a0, $sp, 0x30 -/* 09DB80 7F06B190 0C00283D */ jal sprintf -/* 09DB84 7F06B194 8FA60028 */ lw $a2, 0x28($sp) -.L7F06B198: -/* 09DB88 7F06B198 0FC229B5 */ jal jp_hudmsgBottomShow -/* 09DB8C 7F06B19C 27A40030 */ addiu $a0, $sp, 0x30 -.L7F06B1A0: -/* 09DB90 7F06B1A0 8FBF001C */ lw $ra, 0x1c($sp) -/* 09DB94 7F06B1A4 27BD0130 */ addiu $sp, $sp, 0x130 -/* 09DB98 7F06B1A8 03E00008 */ jr $ra -/* 09DB9C 7F06B1AC 00000000 */ nop -) -#endif - - -#endif s32 get_curplayer_numdeaths(void) { return g_CurrentPlayer->deathcount; } +//D:80053C0C +const char aSD_0[] = "%s: %d\n"; + #ifdef NONMATCHING void *increment_num_suicides_display_MP(void) { s32 sp34; @@ -35279,7 +27656,7 @@ void *increment_num_suicides_display_MP(void) { if (g_playerPerm->killcount >= 2) { // Node 2 - temp_v1 = (sp34 - g_CurrentPlayer->last_kill_time); + temp_v1 = (sp34 - g_CurrentPlayer->last_kill_time[0]); if (g_playerPerm->slowest2kills < temp_v1) { // Node 3 @@ -35295,14 +27672,14 @@ void *increment_num_suicides_display_MP(void) { // Node 6 g_CurrentPlayer->unk29F0 = (s32) g_CurrentPlayer->unk29EC; g_CurrentPlayer->unk29EC = (s32) g_CurrentPlayer->unk29E8; - g_CurrentPlayer->unk29E8 = (s32) g_CurrentPlayer->last_kill_time; - g_CurrentPlayer->last_kill_time = sp34; + g_CurrentPlayer->unk29E8 = (s32) g_CurrentPlayer->last_kill_time[0]; + g_CurrentPlayer->last_kill_time[0] = sp34; phi_v1 = 1; if (-1 != g_CurrentPlayer->unk29E8) { // Node 7 phi_v1 = 1; - if ((g_CurrentPlayer->last_kill_time - g_CurrentPlayer->unk29E8) < 0x78) + if ((g_CurrentPlayer->last_kill_time[0] - g_CurrentPlayer->unk29E8) < 0x78) { // Node 8 phi_v1 = 2; @@ -35310,7 +27687,7 @@ void *increment_num_suicides_display_MP(void) { { // Node 9 phi_v1 = 2; - if ((g_CurrentPlayer->last_kill_time - g_CurrentPlayer->unk29EC) < 0x78) + if ((g_CurrentPlayer->last_kill_time[0] - g_CurrentPlayer->unk29EC) < 0x78) { // Node 10 temp_v1_2 = (2 + 1); @@ -35319,7 +27696,7 @@ void *increment_num_suicides_display_MP(void) { { // Node 11 phi_v1 = temp_v1_2; - if ((g_CurrentPlayer->last_kill_time - g_CurrentPlayer->unk29F0) < 0x78) + if ((g_CurrentPlayer->last_kill_time[0] - g_CurrentPlayer->unk29F0) < 0x78) { // Node 12 phi_v1 = (temp_v1_2 + 1); diff --git a/src/game/gun.h b/src/game/gun.h index 2f1edaa2..5b8615a7 100644 --- a/src/game/gun.h +++ b/src/game/gun.h @@ -183,6 +183,33 @@ typedef struct WeaponStats u32 BitFlags; } WeaponStats; +typedef struct AmmoStats { + /** + * The maximum amount of ammo. + */ + u32 MaxAmmo; + + /** + * Unknown (field 0x04). + */ + u16 field_04; + + /** + * Unknown (field 0x06). + */ + u16 field_06; + + /** + * Unknown (field 0x08). + */ + u16 field_08; + + /** + * Unknown (field 0x0A). + */ + u16 field_0A; +} AmmoStats; + typedef struct GunModelFileRecord { ModelFileHeader * item_header; @@ -203,16 +230,50 @@ typedef struct GunModelFileRecord f32 equip_watch_z; } GunModelFileRecord; +typedef struct CasingRecord { + f32 unk00; + coord3d pos; + coord3d vel; +#if VERSION_EU + f32 unk1C[3][3]; + f32 unk40[3][3]; +#else + Mtxf unk1C; + Mtxf unk5C; +#endif + ModelFileHeader *header; +} CasingRecord; + typedef struct CartridgeModelFileRecord { ModelFileHeader* header; char * text; } CartridgeModelFileRecord; -#if defined(VERSION_EU) -extern char dword_CODE_bss_80075DC8[20][104]; -#else -extern char dword_CODE_bss_80075DC8[20][160]; -#endif +struct RicochetSoundsSmall { + u16 arr[20]; +}; + +struct PunchSounds { + u16 arr[3]; +}; + +struct BulletFleshSounds { + u16 arr[2]; +}; + +struct LaserRichochetSounds { + u16 arr[2]; +}; + +struct RicochetSoundsLarge { + u16 arr[36]; +}; + +struct EarWhistleSounds { + s16 arr[5]; +}; + +extern CasingRecord g_Casings[20]; f32 bondwalkItemGetForceOfImpact(ITEM_IDS item); @@ -232,7 +293,7 @@ void display_in_game_crosshair(s32 *gdl); WeaponStats *get_ptr_item_statistics(ITEM_IDS item); -s32 getCurrentPlayerWeaponId(GUNHAND hand); +ITEM_IDS getCurrentPlayerWeaponId(GUNHAND hand); s32 currentPlayerEquipWeaponWrapper(GUNHAND hand, s32 next_weapon); void sub_GAME_7F068E6C(void); void attempt_reload_item_in_hand(GUNHAND hand); @@ -249,8 +310,8 @@ f32 bondwalkItemGetDestructionAmount(ITEM_IDS item); u16 bondwalkItemGetSound(ITEM_IDS item); u8 bondwalkItemGetSoundTriggerRate(ITEM_IDS item); -void recall_joy2_hits_edit_detail_edit_flag(s32 arg0, u8 *arg1, s32 arg2); -void recall_joy2_hits_edit_flag(s32 arg0, coord3d *arg1, s32 arg2); +void recall_joy2_hits_edit_detail_edit_flag(enum ITEM_IDS item, PropRecord* prop, s32 texture_index); +void recall_joy2_hits_edit_flag(enum ITEM_IDS item, coord3d* arg1, s32 texture_index); void sub_GAME_7F05EB0C(ObjectRecord *arg0, coord3d *arg1, StandTile *arg2, Mtxf *arg3, coord3d *arg4, Mtxf *arg5, PropRecord *arg6); void sub_GAME_7F061948(struct ChrRecord_f180 *arg0, ITEM_IDS item, coord3d *arg2, coord3d *arg3); void sub_GAME_7F068190(coord3d *arg0, coord3d *arg1); @@ -259,12 +320,17 @@ void inc_curplayer_hitcount_with_weapon(ITEM_IDS item, SHOT_REGISTER shot_regist s8 get_hands_firing_status(GUNHAND hand); void gunFireTankShell(s32 hand); void remove_item_in_hand(GUNHAND hand); -void currentPlayerUnEquipWeaponWrapper(GUNHAND hand, s32 weapid); +void currentPlayerUnEquipWeaponWrapper(enum GUNHAND hand, enum ITEM_IDS weapid); s32 currentPlayerGetAmmoCount(AMMOTYPE ammotype); s32 get_civilian_casualties(void); s32 Gun_hand_without_item(enum GUNHAND arg0); +void sub_GAME_7F05FB00(enum GUNHAND hand); -void bgunCalculateBlend(s32 arg0); +void bgunCalculateBlend(enum GUNHAND handnum); void gunSetBondWeaponSway(f32 arg0, f32 arg1, f32 speed_verta, f32 speed_theta); void gunSetOffsetRelated(f32 param_1); + +s32 get_curplayer_shot_register(SHOT_REGISTER shot_register); +void get_bullet_angle(f32* horizontal_angle, f32* vertical_angle); + #endif diff --git a/src/game/image.c b/src/game/image.c index 37b65c2c..f820c9fa 100644 --- a/src/game/image.c +++ b/src/game/image.c @@ -1,10 +1,15 @@ #include +#include "bondconstants.h" #include "image.h" +#include "image_bank.h" #include +#include +#include "ramrom.h" +#include "decompress.h" // bss //8008C720 -s32 ptr_texture_alloc_start; +struct texpool *ptr_texture_alloc_start; //8008C724 s32 ptr_texture_alloc_end; //8008C728 @@ -12,12 +17,11 @@ s32 ptr_next_available_space; //8008C72C s32 ptr_last_entry_facemapping; //8008C730 -s32 word_CODE_bss_8008C730[0x258]; +struct texcacheitem g_TexCacheItems[150]; //8008D090 -s32 dword_CODE_bss_8008D090; +s32 g_TexCacheCount; //8008D094 -s32 dword_CODE_bss_8008D094; - +s32 g_TexNumToLoad; // data //D:80049170 @@ -26,39 +30,65 @@ u32 bytes = 0x6DDD0; u32 D_80049174 = 0; //D:80049178 #1 #bytes in pixel data for image -s32 pixelbytecounts[] = +s32 g_TexFormatNumChannels[] = { 4, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1 }; //D:800491AC #2 1=alphagrab. Grabs 1 bit of alpha data for each pixel -s32 pixelalphas[] = +s32 g_TexFormatHas1BitAlpha[] = { 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }; //D:800491E0 #3 #bits in 'samples', *2 -1=bitmask -s32 pixelsamplebits[] = +s32 g_TexFormatChannelSizes[] = { 0x100, 0x20, 0x100, 0x20, 0x100, 0x10, 8, 0x100, 0x10, 0x100, 0x10, 0x100, 0x10 }; //D:80049214 #4 bitcount for pixel data -s32 pixelbitcount[] = +s32 g_TexFormatBitsPerPixel[] = { 0x20, 0x10, 0x18, 0xF, 0x10, 8, 4, 8, 4, 0x10, 0x10, 0x10, 0x10, }; //D:80049248 #5 N64 image types (0=color, 1=YUV, 2=indexed, 3=IA, 4=I) -s32 n64imagetypes[] = +s32 g_TexFormatGbiMappings[] = { - 0, 0, 0, 0, 3, 3, 3, 4, 4, 2, 2, 2, 2 + G_IM_FMT_RGBA, G_IM_FMT_RGBA, G_IM_FMT_RGBA, G_IM_FMT_RGBA, + G_IM_FMT_IA, G_IM_FMT_IA, G_IM_FMT_IA, + G_IM_FMT_I, G_IM_FMT_I, + G_IM_FMT_CI, G_IM_FMT_CI, G_IM_FMT_CI, G_IM_FMT_CI, }; //D:8004927C #6 N64 pixel sizes (0=4bit, 1=8bit, 2=16bit, 3=32bit) -s32 n64pixelsizes[] = +s32 g_TexFormatDepths[] = { - 3, 2, 3, 2, 2, 1, 0, 1, 0, 1, 0, 1, 0 + G_IM_SIZ_32b, + G_IM_SIZ_16b, + G_IM_SIZ_32b, + G_IM_SIZ_16b, + G_IM_SIZ_16b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, }; //D:800492B0 #7 imageflip values for indexed types -s32 imgflipvalues[] = -{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x8000, 0x8000, 0xC000, 0xC000 +s32 g_TexFormatLutModes[] = { + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_RGBA16, + G_TT_RGBA16, + G_TT_IA16, + G_TT_IA16, }; //D:800492e4 s32 D_800492E4[] = @@ -70,7 +100,7 @@ s32 D_800492E4[] = //D:80049300 //need way to calculate size at compile time from external data -struct image_entry image_entries[] = { +struct image_entry g_Textures[] = { #include {HIT_DEFAULT, HIT_DEFAULT,0xFFFF,0,0,0,0} }; @@ -82,1260 +112,431 @@ void nullsub_41(s32 arg0) { } +/** + * Inflate images (levels of detail) from a zlib-compressed texture. + * + * Zlib-compressed textures are always paletted and always use 16-bit colours. + * The texture header contains palette information, then each image follows with + * its own header and zlib compresed data. + * + * The texture header is: + * + * ffffffff nnnnnnnn [palette] + * + * f = pixel format (see TEXFORMAT constants) + * n = number of colours in the palette minus 1 + * [palette] = 16 bits * number of colours + * + * Each images's header is: + * + * wwwwwwww hhhhhhhh [data] + * + * w = width in pixels + * h = height in pixels + * [data] = zlib compressed list of indices into the palette + * + * The zlib data is prefixed with the standard 5-byte rarezip header. + */ +s32 texInflateZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct texpool *arg4) +{ + s32 i; + s32 imagebytesout; + s32 numimages; + s32 totalbytesout; + s32 format; + bool foundthething; + bool writetocache; + s32 width; + s32 height; + u8 *end; + u8 *start; + s32 numcolours; + s32 j; + s32 unused; + u8 scratch2[0x800]; + u8 scratch[0x2100]; + u16 palette[0x100]; + + totalbytesout = 0; + writetocache = FALSE; + + texSetBitstring(src); + + if (arg2 && forcenumimages) + { + numimages = forcenumimages; + } + else + { + numimages = 1; + } + + arg4->rightpos->maxlod = forcenumimages; + arg4->rightpos->unk0c_02 = arg2; + + if (arg2) + { + writetocache = TRUE; + + for (i = 0; i < g_TexCacheCount; i++) + { + if (g_TexCacheItems[i].texturenum == arg4->rightpos->texturenum) + { + writetocache = FALSE; + } + } + } + + format = texReadBits(8); + numcolours = texReadBits(8) + 1; + + for (i = 0; i < numcolours; i++) + { + palette[i] = texReadBits(16); + } + + foundthething = FALSE; + + for (j = 0; j < numimages; j++) + { + width = texReadBits(8); + height = texReadBits(8); + + if (j == 0) + { + arg4->rightpos->width = width; + arg4->rightpos->height = height; + arg4->rightpos->unk0a = numcolours - 1; + arg4->rightpos->gbiformat = g_TexFormatGbiMappings[format]; + arg4->rightpos->depth = g_TexFormatDepths[format]; + arg4->rightpos->lutmodeindex = g_TexFormatLutModes[format] >> G_MDSFT_TEXTLUT; + } + else if (writetocache) + { + g_TexCacheItems[g_TexCacheCount].widths[j - 1] = width; + g_TexCacheItems[g_TexCacheCount].heights[j - 1] = height; + } + + if ((width * height) >= 4097) + { + return j * 0; + } + + decompressdata(img_curpos, &scratch2, (struct huft *)&scratch); + imagebytesout = texAlignIndices(scratch2, width, height, format, &dst[totalbytesout]); + texSetBitstring(rzipGetSomething()); + + if ((arg2 == 1) && (forcenumimages > 0)) + { + texSwapAltRowBytes(&dst[totalbytesout], width, height, format); + } + totalbytesout += imagebytesout; + } + + if (writetocache) + { + g_TexCacheItems[g_TexCacheCount].texturenum = arg4->rightpos->texturenum; + + g_TexCacheCount++; + + if (g_TexCacheCount >= ARRAYCOUNT(g_TexCacheItems)) + { + g_TexCacheCount = 0; + } + } + + if (!arg2) + { + if (forcenumimages >= 2) + { + s32 tmpwidth; + s32 tmpheight; + + tmpwidth = width; + tmpheight = height; + + start = dst; + end = &dst[totalbytesout]; + + for (j = 1; j < forcenumimages; j++) + { + imagebytesout = texShrinkPaletted(start, end, tmpwidth, tmpheight, format, palette, numcolours); + + if (totalbytesout + imagebytesout > 0x800) + { + arg4->rightpos->maxlod = j; + break; + } + + texSwapAltRowBytes(start, tmpwidth, tmpheight, format); + + totalbytesout += imagebytesout; + + tmpwidth = (tmpwidth + 1) >> 1; + tmpheight = (tmpheight + 1) >> 1; + + start = end; + end += imagebytesout; + if (1); + } + + texSwapAltRowBytes(start, tmpwidth, tmpheight, format); + } + else if (forcenumimages == 1) + { + texSwapAltRowBytes(dst, width, height, format); + } + } + + for (i = 0; i < numcolours; i++) + { + if ((!totalbytesout) && (!totalbytesout)); + dst[totalbytesout + 0] = palette[i] >> 8; + dst[totalbytesout + 1] = palette[i] & 0xff; + totalbytesout += 2; + } + + totalbytesout = (totalbytesout + 7) & ~7; + + return totalbytesout; +} +/** + * Copy a list of palette indices to the dst buffer, but ensure each row is + * aligned to an 8 byte boundary. + * + * Return the number of output bytes. + */ +s32 texAlignIndices(u8 *src, s32 width, s32 height, s32 format, u8 *dst) +{ + s32 x; + s32 y; + u8 *outptr; + s32 indicesperbyte; + + outptr = dst; + + if (format == TEXFORMAT_RGBA16_CI8 || format == TEXFORMAT_IA16_CI8) + { + indicesperbyte = 1; + } + else if (format == TEXFORMAT_RGBA16_CI4 || format == TEXFORMAT_0C) + { + indicesperbyte = 2; + } + else if (indicesperbyte) + { + } + + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x += indicesperbyte) + { + *outptr = *src; + outptr++; + src++; + } + + outptr = (u8 *)(((u32)outptr + 7) & ~7); + } + + return outptr - dst; +} + + +/** + * Shrink a paletted texture to half its size by averaging each each 2x2 group + * of pixels. + * + * Return the number of bytes written. + */ +s32 texShrinkPaletted(u8 *src, u8 *dst, s32 srcwidth, s32 srcheight, s32 format, u16 *palette, s32 numcolours) +{ + s32 j; + s32 i; + s32 alignedsrcwidth; + s32 aligneddstwidth; + s32 dstheight; + s16 colour1; + s16 colour2; + s16 colour3; + s16 colour4; + s32 r; + s32 g; + s32 b; + s32 a; + s32 nextrow; + u8 *dst8; + s32 nextcol; + s32 c; + u8 *src8; + + dst8 = dst; + src8 = src; + dstheight = (srcheight + 1) >> 1; + + switch (format) + { + case TEXFORMAT_RGBA16_CI8: + case TEXFORMAT_IA16_CI8: + aligneddstwidth = (((srcwidth + 1) >> 1) + 7) & 0xff8; + alignedsrcwidth = (srcwidth + 7) & 0xff8; + break; + + case TEXFORMAT_RGBA16_CI4: + case TEXFORMAT_0C: + aligneddstwidth = (((srcwidth + 1) >> 1) + 15) & 0xff0; + alignedsrcwidth = (srcwidth + 15) & 0xff0; + break; + } + + + switch (format) + { + case TEXFORMAT_RGBA16_CI8: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + colour1 = palette[src8[j]]; + colour2 = palette[src8[nextcol]]; + colour3 = palette[src8[nextrow + j]]; + colour4 = palette[src8[nextrow + nextcol]]; + + r = ((((colour1 >> 0xB) & 0x1F) + ((colour2 >> 0xB) & 0x1F) + ((colour3 >> 0xB) & 0x1F) + ((colour4 >> 0xB) & 0x1F)) >> 2) & 0x1F; + g = ((((colour1 >> 6) & 0x1F) + ((colour2 >> 6) & 0x1F) + ((colour3 >> 6) & 0x1F) + ((colour4 >> 6) & 0x1F)) >> 2) & 0x1F; + b = ((((colour1 >> 1) & 0x1F) + ((colour2 >> 1) & 0x1F) + ((colour3 >> 1) & 0x1F) + ((colour4 >> 1) & 0x1F)) >> 2) & 0x1F; + a = (((colour1 & 1) + (colour2 & 1) + (colour3 & 1) + (colour4 & 1) + 2) >> 2) & 1; + + dst8[j >> 1] = texFindClosestColourIndexRGBA(palette, numcolours, r, g, b, a); + } + + dst8 += aligneddstwidth; + src8 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth; + + case TEXFORMAT_IA16_CI8: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + colour1 = palette[src8[j]]; + colour2 = palette[src8[nextcol]]; + colour3 = palette[src8[nextrow + j]]; + colour4 = palette[src8[nextrow + nextcol]]; + + c = ((((colour1 >> 8) & 0xff) + ((colour2 >> 8) & 0xff) + ((colour3 >> 8) & 0xff) + ((colour4 >> 8) & 0xff)) >> 2) & 0xff; + a = ((((colour1 >> 0) & 0xff) + ((colour2 >> 0) & 0xff) + ((colour3 >> 0) & 0xff) + ((colour4 >> 0) & 0xff) + 1) >> 2) & 0xff; + + dst8[j >> 1] = texFindClosestColourIndexIA(palette, numcolours, c, a); + } + + dst8 += aligneddstwidth; + src8 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth; + + case TEXFORMAT_RGBA16_CI4: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth >> 1 : 0; + + for (j = 0; j < alignedsrcwidth; j += 4) + { + colour1 = palette[(src8[j >> 1] >> 4) & 0xf]; + colour2 = palette[src8[j >> 1] >> ((j + 1 < srcwidth ? 0 : 4)) & 0xf]; + colour3 = palette[(src8[nextrow + (j >> 1)] >> 4) & 0xf]; + colour4 = palette[src8[nextrow + (j >> 1)] >> ((j + 1 < srcwidth ? 0 : 4)) & 0xf]; + + r = ((((colour1 >> 0xB) & 0x1F) + ((colour2 >> 0xB) & 0x1F) + ((colour3 >> 0xB) & 0x1F) + ((colour4 >> 0xB) & 0x1F)) >> 2) & 0x1F; + g = ((((colour1 >> 6) & 0x1F) + ((colour2 >> 6) & 0x1F) + ((colour3 >> 6) & 0x1F) + ((colour4 >> 6) & 0x1F)) >> 2) & 0x1F; + b = ((((colour1 >> 1) & 0x1F) + ((colour2 >> 1) & 0x1F) + ((colour3 >> 1) & 0x1F) + ((colour4 >> 1) & 0x1F)) >> 2) & 0x1F; + a = ((((colour1 & 1) + (colour2 & 1) + (colour3 & 1) + (colour4 & 1) + 2) >> 2) & 1); + + dst8[j >> 2] = (texFindClosestColourIndexRGBA(palette, numcolours, r, g, b, a) * 0x10) & 0xFFFF; + + colour1 = palette[(src8[(j + 2) >> 1] >> 4) & 0xf]; + colour2 = palette[(src8[(j + 2) >> 1] >> (j + 3 < srcwidth ? 0 : 4)) & 0xf]; + colour3 = palette[(src8[nextrow + ((j + 2) >> 1)] >> 4) & 0xf]; + colour4 = palette[(src8[nextrow + ((j + 2) >> 1)] >> (j + 3 < srcwidth ? 0 : 4)) & 0xf]; + + r = ((((colour1 >> 0xB) & 0x1F) + ((colour2 >> 0xB) & 0x1F) + ((colour3 >> 0xB) & 0x1F) + ((colour4 >> 0xB) & 0x1F)) >> 2) & 0x1F; + g = ((((colour1 >> 6) & 0x1F) + ((colour2 >> 6) & 0x1F) + ((colour3 >> 6) & 0x1F) + ((colour4 >> 6) & 0x1F)) >> 2) & 0x1F; + b = ((((colour1 >> 1) & 0x1F) + ((colour2 >> 1) & 0x1F) + ((colour3 >> 1) & 0x1F) + ((colour4 >> 1) & 0x1F)) >> 2) & 0x1F; + a = ((((colour1 & 1) + (colour2 & 1) + (colour3 & 1) + (colour4 & 1) + 2) >> 2) & 1); + + dst8[j >> 2] |= texFindClosestColourIndexRGBA(palette, numcolours, r, g, b, a) & 0xff; + } + + dst8 += aligneddstwidth >> 1; + src8 += alignedsrcwidth; + } + + return (aligneddstwidth >> 1) * dstheight; + + case TEXFORMAT_0C: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth >> 1 : 0; + + for (j = 0; j < alignedsrcwidth; j += 4) + { + // @bug: The brackets are wrong in colour2 and colour4 which + // causes the index shift to be part of the ternary condition. + // It's done correctly in TEXFORMAT_RGBA16_CI4 (above). + // This buggy calculation is repeated further below. + colour1 = palette[(src8[j >> 1] >> 4) & 0xf]; + colour2 = palette[(src8[j >> 1] >> (j + 1 < srcwidth) ? 0 : 4) & 0xf]; + colour3 = palette[(src8[nextrow + (j >> 1)] >> 4) & 0xf]; + colour4 = palette[(src8[nextrow + (j >> 1)] >> (j + 1 < srcwidth) ? 0 : 4) & 0xf]; + + c = ((((colour1 >> 8) & 0xff) + ((colour2 >> 8) & 0xff) + ((colour3 >> 8) & 0xff) + ((colour4 >> 8) & 0xff)) >> 2) & 0xff; + a = ((((colour1 >> 0) & 0xff) + ((colour2 >> 0) & 0xff) + ((colour3 >> 0) & 0xff) + ((colour4 >> 0) & 0xff) + 1) >> 2) & 0xff; + + dst8[j >> 2] = (texFindClosestColourIndexIA(palette, numcolours, c, a) * 0x10) & 0xFFFF; + + colour1 = palette[(src8[(j + 2) >> 1] >> 4) & 0xf]; + colour2 = palette[(src8[(j + 2) >> 1] >> (j + 3 < srcwidth) ? 0 : 4) & 0xf]; + colour3 = palette[(src8[nextrow + ((j + 2) >> 1)] >> 4) & 0xf]; + colour4 = palette[(src8[nextrow + ((j + 2) >> 1)] >> (j + 3 < srcwidth) ? 0 : 4) & 0xf]; + + c = ((((colour1 >> 8) & 0xff) + ((colour2 >> 8) & 0xff) + ((colour3 >> 8) & 0xff) + ((colour4 >> 8) & 0xff)) >> 2) & 0xff; + a = ((((colour1 >> 0) & 0xff) + ((colour2 >> 0) & 0xff) + ((colour3 >> 0) & 0xff) + ((colour4 >> 0) & 0xff) + 1) >> 2) & 0xff; + + dst8[j >> 2] |= texFindClosestColourIndexIA(palette, numcolours, c, a) & 0xff; + } + + dst8 += aligneddstwidth >> 1; + src8 += alignedsrcwidth; + } + + return (aligneddstwidth >> 1) * dstheight; + } + + return 0; +} #ifdef NONMATCHING -void image_related_calls_decompressdata_function(void) { +void texFindClosestColourIndexRGBA(void) { } #else GLOBAL_ASM( .text -glabel image_related_calls_decompressdata_function -/* 0FB188 7F0C6658 27BDD458 */ addiu $sp, $sp, -0x2ba8 -/* 0FB18C 7F0C665C AFBF004C */ sw $ra, 0x4c($sp) -/* 0FB190 7F0C6660 AFB5003C */ sw $s5, 0x3c($sp) -/* 0FB194 7F0C6664 AFB1002C */ sw $s1, 0x2c($sp) -/* 0FB198 7F0C6668 AFBE0048 */ sw $fp, 0x48($sp) -/* 0FB19C 7F0C666C AFB70044 */ sw $s7, 0x44($sp) -/* 0FB1A0 7F0C6670 AFB60040 */ sw $s6, 0x40($sp) -/* 0FB1A4 7F0C6674 AFB40038 */ sw $s4, 0x38($sp) -/* 0FB1A8 7F0C6678 AFB30034 */ sw $s3, 0x34($sp) -/* 0FB1AC 7F0C667C AFB20030 */ sw $s2, 0x30($sp) -/* 0FB1B0 7F0C6680 AFB00028 */ sw $s0, 0x28($sp) -/* 0FB1B4 7F0C6684 AFA52BAC */ sw $a1, 0x2bac($sp) -/* 0FB1B8 7F0C6688 AFA62BB0 */ sw $a2, 0x2bb0($sp) -/* 0FB1BC 7F0C668C AFA72BB4 */ sw $a3, 0x2bb4($sp) -/* 0FB1C0 7F0C6690 00008825 */ move $s1, $zero -/* 0FB1C4 7F0C6694 0FC32FC4 */ jal makeemptyimageatpos -/* 0FB1C8 7F0C6698 0000A825 */ move $s5, $zero -/* 0FB1CC 7F0C669C 8FA62BB0 */ lw $a2, 0x2bb0($sp) -/* 0FB1D0 7F0C66A0 8FA72BB4 */ lw $a3, 0x2bb4($sp) -/* 0FB1D4 7F0C66A4 00004025 */ move $t0, $zero -/* 0FB1D8 7F0C66A8 50C00006 */ beql $a2, $zero, .L7F0C66C4 -/* 0FB1DC 7F0C66AC 240E0001 */ li $t6, 1 -/* 0FB1E0 7F0C66B0 50E00004 */ beql $a3, $zero, .L7F0C66C4 -/* 0FB1E4 7F0C66B4 240E0001 */ li $t6, 1 -/* 0FB1E8 7F0C66B8 10000004 */ b .L7F0C66CC -/* 0FB1EC 7F0C66BC AFA72B9C */ sw $a3, 0x2b9c($sp) -/* 0FB1F0 7F0C66C0 240E0001 */ li $t6, 1 -.L7F0C66C4: -/* 0FB1F4 7F0C66C4 8FA72BB4 */ lw $a3, 0x2bb4($sp) -/* 0FB1F8 7F0C66C8 AFAE2B9C */ sw $t6, 0x2b9c($sp) -.L7F0C66CC: -/* 0FB1FC 7F0C66CC 8FBE2BB8 */ lw $fp, 0x2bb8($sp) -/* 0FB200 7F0C66D0 0007C940 */ sll $t9, $a3, 5 -/* 0FB204 7F0C66D4 00066940 */ sll $t5, $a2, 5 -/* 0FB208 7F0C66D8 8FC3000C */ lw $v1, 0xc($fp) -/* 0FB20C 7F0C66DC 31AE0020 */ andi $t6, $t5, 0x20 -/* 0FB210 7F0C66E0 3C058009 */ lui $a1, %hi(dword_CODE_bss_8008D090) -/* 0FB214 7F0C66E4 9069000B */ lbu $t1, 0xb($v1) -/* 0FB218 7F0C66E8 312AFF1F */ andi $t2, $t1, 0xff1f -/* 0FB21C 7F0C66EC 032A5825 */ or $t3, $t9, $t2 -/* 0FB220 7F0C66F0 A06B000B */ sb $t3, 0xb($v1) -/* 0FB224 7F0C66F4 8FC3000C */ lw $v1, 0xc($fp) -/* 0FB228 7F0C66F8 906F000C */ lbu $t7, 0xc($v1) -/* 0FB22C 7F0C66FC 31F8FFDF */ andi $t8, $t7, 0xffdf -/* 0FB230 7F0C6700 01D84825 */ or $t1, $t6, $t8 -/* 0FB234 7F0C6704 10C00015 */ beqz $a2, .L7F0C675C -/* 0FB238 7F0C6708 A069000C */ sb $t1, 0xc($v1) -/* 0FB23C 7F0C670C 8CA5D090 */ lw $a1, %lo(dword_CODE_bss_8008D090)($a1) -/* 0FB240 7F0C6710 24150001 */ li $s5, 1 -/* 0FB244 7F0C6714 18A00011 */ blez $a1, .L7F0C675C -/* 0FB248 7F0C6718 00000000 */ nop -/* 0FB24C 7F0C671C 8FD9000C */ lw $t9, 0xc($fp) -/* 0FB250 7F0C6720 3C0B8009 */ lui $t3, %hi(word_CODE_bss_8008C730) -/* 0FB254 7F0C6724 2562C730 */ addiu $v0, $t3, %lo(word_CODE_bss_8008C730) -/* 0FB258 7F0C6728 8F230000 */ lw $v1, ($t9) -/* 0FB25C 7F0C672C 00056100 */ sll $t4, $a1, 4 -/* 0FB260 7F0C6730 01822021 */ addu $a0, $t4, $v0 -/* 0FB264 7F0C6734 00035502 */ srl $t2, $v1, 0x14 -/* 0FB268 7F0C6738 01401825 */ move $v1, $t2 -/* 0FB26C 7F0C673C 844D0000 */ lh $t5, ($v0) -.L7F0C6740: -/* 0FB270 7F0C6740 24420010 */ addiu $v0, $v0, 0x10 -/* 0FB274 7F0C6744 0044082B */ sltu $at, $v0, $a0 -/* 0FB278 7F0C6748 146D0002 */ bne $v1, $t5, .L7F0C6754 -/* 0FB27C 7F0C674C 00000000 */ nop -/* 0FB280 7F0C6750 0000A825 */ move $s5, $zero -.L7F0C6754: -/* 0FB284 7F0C6754 5420FFFA */ bnezl $at, .L7F0C6740 -/* 0FB288 7F0C6758 844D0000 */ lh $t5, ($v0) -.L7F0C675C: -/* 0FB28C 7F0C675C 0FC32FCB */ jal extractImageBitCount -/* 0FB290 7F0C6760 24040008 */ li $a0, 8 -/* 0FB294 7F0C6764 AFA22B94 */ sw $v0, 0x2b94($sp) -/* 0FB298 7F0C6768 0FC32FCB */ jal extractImageBitCount -/* 0FB29C 7F0C676C 24040008 */ li $a0, 8 -/* 0FB2A0 7F0C6770 24430001 */ addiu $v1, $v0, 1 -/* 0FB2A4 7F0C6774 1860000D */ blez $v1, .L7F0C67AC -/* 0FB2A8 7F0C6778 AFA32B78 */ sw $v1, 0x2b78($sp) -/* 0FB2AC 7F0C677C 8FAE2B78 */ lw $t6, 0x2b78($sp) -/* 0FB2B0 7F0C6780 27A30070 */ addiu $v1, $sp, 0x70 -/* 0FB2B4 7F0C6784 000EC040 */ sll $t8, $t6, 1 -/* 0FB2B8 7F0C6788 03038021 */ addu $s0, $t8, $v1 -.L7F0C678C: -/* 0FB2BC 7F0C678C 24040010 */ li $a0, 16 -/* 0FB2C0 7F0C6790 0FC32FCB */ jal extractImageBitCount -/* 0FB2C4 7F0C6794 AFA3005C */ sw $v1, 0x5c($sp) -/* 0FB2C8 7F0C6798 8FA3005C */ lw $v1, 0x5c($sp) -/* 0FB2CC 7F0C679C 24630002 */ addiu $v1, $v1, 2 -/* 0FB2D0 7F0C67A0 0070082B */ sltu $at, $v1, $s0 -/* 0FB2D4 7F0C67A4 1420FFF9 */ bnez $at, .L7F0C678C -/* 0FB2D8 7F0C67A8 A462FFFE */ sh $v0, -2($v1) -.L7F0C67AC: -/* 0FB2DC 7F0C67AC 8FA92B9C */ lw $t1, 0x2b9c($sp) -/* 0FB2E0 7F0C67B0 3C178005 */ lui $s7, %hi(n64imagetypes) -/* 0FB2E4 7F0C67B4 26F79248 */ addiu $s7, %lo(n64imagetypes) # addiu $s7, $s7, -0x6db8 -/* 0FB2E8 7F0C67B8 19200064 */ blez $t1, .L7F0C694C -/* 0FB2EC 7F0C67BC 00009825 */ move $s3, $zero -/* 0FB2F0 7F0C67C0 27B42370 */ addiu $s4, $sp, 0x2370 -.L7F0C67C4: -/* 0FB2F4 7F0C67C4 0FC32FCB */ jal extractImageBitCount -/* 0FB2F8 7F0C67C8 24040008 */ li $a0, 8 -/* 0FB2FC 7F0C67CC 0040B025 */ move $s6, $v0 -/* 0FB300 7F0C67D0 0FC32FCB */ jal extractImageBitCount -/* 0FB304 7F0C67D4 24040008 */ li $a0, 8 -/* 0FB308 7F0C67D8 16600029 */ bnez $s3, .L7F0C6880 -/* 0FB30C 7F0C67DC AFA22B84 */ sw $v0, 0x2b84($sp) -/* 0FB310 7F0C67E0 8FD9000C */ lw $t9, 0xc($fp) -/* 0FB314 7F0C67E4 A3360008 */ sb $s6, 8($t9) -/* 0FB318 7F0C67E8 8FCA000C */ lw $t2, 0xc($fp) -/* 0FB31C 7F0C67EC A1420009 */ sb $v0, 9($t2) -/* 0FB320 7F0C67F0 8FAC2B78 */ lw $t4, 0x2b78($sp) -/* 0FB324 7F0C67F4 8FCD000C */ lw $t5, 0xc($fp) -/* 0FB328 7F0C67F8 258BFFFF */ addiu $t3, $t4, -1 -/* 0FB32C 7F0C67FC A1AB000A */ sb $t3, 0xa($t5) -/* 0FB330 7F0C6800 8FA42B94 */ lw $a0, 0x2b94($sp) -/* 0FB334 7F0C6804 8FC3000C */ lw $v1, 0xc($fp) -/* 0FB338 7F0C6808 00047080 */ sll $t6, $a0, 2 -/* 0FB33C 7F0C680C 02EEC021 */ addu $t8, $s7, $t6 -/* 0FB340 7F0C6810 8F090000 */ lw $t1, ($t8) -/* 0FB344 7F0C6814 906C000B */ lbu $t4, 0xb($v1) -/* 0FB348 7F0C6818 01C02025 */ move $a0, $t6 -/* 0FB34C 7F0C681C 0009C880 */ sll $t9, $t1, 2 -/* 0FB350 7F0C6820 332A001C */ andi $t2, $t9, 0x1c -/* 0FB354 7F0C6824 318BFFE3 */ andi $t3, $t4, 0xffe3 -/* 0FB358 7F0C6828 014B6825 */ or $t5, $t2, $t3 -/* 0FB35C 7F0C682C A06D000B */ sb $t5, 0xb($v1) -/* 0FB360 7F0C6830 8FC3000C */ lw $v1, 0xc($fp) -/* 0FB364 7F0C6834 3C0E8005 */ lui $t6, %hi(n64pixelsizes) -/* 0FB368 7F0C6838 01C47021 */ addu $t6, $t6, $a0 -/* 0FB36C 7F0C683C 8DD8927C */ lw $t8, %lo(n64pixelsizes)($t6) -/* 0FB370 7F0C6840 9069000B */ lbu $t1, 0xb($v1) -/* 0FB374 7F0C6844 3C0A8005 */ lui $t2, %hi(imgflipvalues) -/* 0FB378 7F0C6848 330F0003 */ andi $t7, $t8, 3 -/* 0FB37C 7F0C684C 3139FFFC */ andi $t9, $t1, 0xfffc -/* 0FB380 7F0C6850 01F96025 */ or $t4, $t7, $t9 -/* 0FB384 7F0C6854 A06C000B */ sb $t4, 0xb($v1) -/* 0FB388 7F0C6858 8FC3000C */ lw $v1, 0xc($fp) -/* 0FB38C 7F0C685C 01445021 */ addu $t2, $t2, $a0 -/* 0FB390 7F0C6860 8D4A92B0 */ lw $t2, %lo(imgflipvalues)($t2) -/* 0FB394 7F0C6864 9069000C */ lbu $t1, 0xc($v1) -/* 0FB398 7F0C6868 000A6B83 */ sra $t5, $t2, 0xe -/* 0FB39C 7F0C686C 000DC180 */ sll $t8, $t5, 6 -/* 0FB3A0 7F0C6870 312FFF3F */ andi $t7, $t1, 0xff3f -/* 0FB3A4 7F0C6874 030FC825 */ or $t9, $t8, $t7 -/* 0FB3A8 7F0C6878 1000000B */ b .L7F0C68A8 -/* 0FB3AC 7F0C687C A079000C */ sb $t9, 0xc($v1) -.L7F0C6880: -/* 0FB3B0 7F0C6880 12A00009 */ beqz $s5, .L7F0C68A8 -/* 0FB3B4 7F0C6884 3C0C8009 */ lui $t4, %hi(dword_CODE_bss_8008D090) -/* 0FB3B8 7F0C6888 8D8CD090 */ lw $t4, %lo(dword_CODE_bss_8008D090)($t4) -/* 0FB3BC 7F0C688C 3C0D8009 */ lui $t5, %hi(word_CODE_bss_8008C730) -/* 0FB3C0 7F0C6890 25ADC730 */ addiu $t5, %lo(word_CODE_bss_8008C730) # addiu $t5, $t5, -0x38d0 -/* 0FB3C4 7F0C6894 000C5100 */ sll $t2, $t4, 4 -/* 0FB3C8 7F0C6898 01535821 */ addu $t3, $t2, $s3 -/* 0FB3CC 7F0C689C 016D1821 */ addu $v1, $t3, $t5 -/* 0FB3D0 7F0C68A0 A0760001 */ sb $s6, 1($v1) -/* 0FB3D4 7F0C68A4 A0620008 */ sb $v0, 8($v1) -.L7F0C68A8: -/* 0FB3D8 7F0C68A8 02C20019 */ multu $s6, $v0 -/* 0FB3DC 7F0C68AC 3C048009 */ lui $a0, %hi(img_curpos) -/* 0FB3E0 7F0C68B0 02802825 */ move $a1, $s4 -/* 0FB3E4 7F0C68B4 27A60270 */ addiu $a2, $sp, 0x270 -/* 0FB3E8 7F0C68B8 00007012 */ mflo $t6 -/* 0FB3EC 7F0C68BC 29C11001 */ slti $at, $t6, 0x1001 -/* 0FB3F0 7F0C68C0 14200003 */ bnez $at, .L7F0C68D0 -/* 0FB3F4 7F0C68C4 00000000 */ nop -/* 0FB3F8 7F0C68C8 100000B3 */ b .L7F0C6B98 -/* 0FB3FC 7F0C68CC 00001025 */ move $v0, $zero -.L7F0C68D0: -/* 0FB400 7F0C68D0 0FC339FC */ jal decompressdata -/* 0FB404 7F0C68D4 8C84D0A0 */ lw $a0, %lo(img_curpos)($a0) -/* 0FB408 7F0C68D8 8FA92BAC */ lw $t1, 0x2bac($sp) -/* 0FB40C 7F0C68DC 02802025 */ move $a0, $s4 -/* 0FB410 7F0C68E0 02C02825 */ move $a1, $s6 -/* 0FB414 7F0C68E4 01318021 */ addu $s0, $t1, $s1 -/* 0FB418 7F0C68E8 AFB00010 */ sw $s0, 0x10($sp) -/* 0FB41C 7F0C68EC 8FA62B84 */ lw $a2, 0x2b84($sp) -/* 0FB420 7F0C68F0 0FC31AF2 */ jal copy_loaded_image_to_final_mem_location -/* 0FB424 7F0C68F4 8FA72B94 */ lw $a3, 0x2b94($sp) -/* 0FB428 7F0C68F8 0FC33A25 */ jal sub_GAME_7F0CE894 -/* 0FB42C 7F0C68FC 00409025 */ move $s2, $v0 -/* 0FB430 7F0C6900 0FC32FC4 */ jal makeemptyimageatpos -/* 0FB434 7F0C6904 00402025 */ move $a0, $v0 -/* 0FB438 7F0C6908 8FB82BB0 */ lw $t8, 0x2bb0($sp) -/* 0FB43C 7F0C690C 24010001 */ li $at, 1 -/* 0FB440 7F0C6910 8FAF2BB4 */ lw $t7, 0x2bb4($sp) -/* 0FB444 7F0C6914 57010008 */ bnel $t8, $at, .L7F0C6938 -/* 0FB448 7F0C6918 8FB92B9C */ lw $t9, 0x2b9c($sp) -/* 0FB44C 7F0C691C 19E00005 */ blez $t7, .L7F0C6934 -/* 0FB450 7F0C6920 02002025 */ move $a0, $s0 -/* 0FB454 7F0C6924 02C02825 */ move $a1, $s6 -/* 0FB458 7F0C6928 8FA62B84 */ lw $a2, 0x2b84($sp) -/* 0FB45C 7F0C692C 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FB460 7F0C6930 8FA72B94 */ lw $a3, 0x2b94($sp) -.L7F0C6934: -/* 0FB464 7F0C6934 8FB92B9C */ lw $t9, 0x2b9c($sp) -.L7F0C6938: -/* 0FB468 7F0C6938 26730001 */ addiu $s3, $s3, 1 -/* 0FB46C 7F0C693C 02328821 */ addu $s1, $s1, $s2 -/* 0FB470 7F0C6940 1679FFA0 */ bne $s3, $t9, .L7F0C67C4 -/* 0FB474 7F0C6944 00000000 */ nop -/* 0FB478 7F0C6948 AFB62B88 */ sw $s6, 0x2b88($sp) -.L7F0C694C: -/* 0FB47C 7F0C694C 8FB62B88 */ lw $s6, 0x2b88($sp) -/* 0FB480 7F0C6950 12A00010 */ beqz $s5, .L7F0C6994 -/* 0FB484 7F0C6954 00004025 */ move $t0, $zero -/* 0FB488 7F0C6958 8FCC000C */ lw $t4, 0xc($fp) -/* 0FB48C 7F0C695C 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D090) -/* 0FB490 7F0C6960 2442D090 */ addiu $v0, %lo(dword_CODE_bss_8008D090) # addiu $v0, $v0, -0x2f70 -/* 0FB494 7F0C6964 8C450000 */ lw $a1, ($v0) -/* 0FB498 7F0C6968 8D8A0000 */ lw $t2, ($t4) -/* 0FB49C 7F0C696C 3C018009 */ lui $at, %hi(word_CODE_bss_8008C730) -/* 0FB4A0 7F0C6970 00056900 */ sll $t5, $a1, 4 -/* 0FB4A4 7F0C6974 002D0821 */ addu $at, $at, $t5 -/* 0FB4A8 7F0C6978 000A5D02 */ srl $t3, $t2, 0x14 -/* 0FB4AC 7F0C697C A42BC730 */ sh $t3, %lo(word_CODE_bss_8008C730)($at) -/* 0FB4B0 7F0C6980 24AE0001 */ addiu $t6, $a1, 1 -/* 0FB4B4 7F0C6984 29C10096 */ slti $at, $t6, 0x96 -/* 0FB4B8 7F0C6988 14200002 */ bnez $at, .L7F0C6994 -/* 0FB4BC 7F0C698C AC4E0000 */ sw $t6, ($v0) -/* 0FB4C0 7F0C6990 AC400000 */ sw $zero, ($v0) -.L7F0C6994: -/* 0FB4C4 7F0C6994 8FB82BB0 */ lw $t8, 0x2bb0($sp) -/* 0FB4C8 7F0C6998 8FAF2BB4 */ lw $t7, 0x2bb4($sp) -/* 0FB4CC 7F0C699C 17000046 */ bnez $t8, .L7F0C6AB8 -/* 0FB4D0 7F0C69A0 29F90002 */ slti $t9, $t7, 2 -/* 0FB4D4 7F0C69A4 3B390001 */ xori $t9, $t9, 1 -/* 0FB4D8 7F0C69A8 1320003A */ beqz $t9, .L7F0C6A94 -/* 0FB4DC 7F0C69AC 8FAE2BB4 */ lw $t6, 0x2bb4($sp) -/* 0FB4E0 7F0C69B0 8FB72BAC */ lw $s7, 0x2bac($sp) -/* 0FB4E4 7F0C69B4 02C0A025 */ move $s4, $s6 -/* 0FB4E8 7F0C69B8 8FB52B84 */ lw $s5, 0x2b84($sp) -/* 0FB4EC 7F0C69BC 24130001 */ li $s3, 1 -/* 0FB4F0 7F0C69C0 1320002C */ beqz $t9, .L7F0C6A74 -/* 0FB4F4 7F0C69C4 02F18021 */ addu $s0, $s7, $s1 -/* 0FB4F8 7F0C69C8 27B60070 */ addiu $s6, $sp, 0x70 -.L7F0C69CC: -/* 0FB4FC 7F0C69CC 8FAA2B94 */ lw $t2, 0x2b94($sp) -/* 0FB500 7F0C69D0 8FAB2B78 */ lw $t3, 0x2b78($sp) -/* 0FB504 7F0C69D4 02E02025 */ move $a0, $s7 -/* 0FB508 7F0C69D8 02002825 */ move $a1, $s0 -/* 0FB50C 7F0C69DC 02803025 */ move $a2, $s4 -/* 0FB510 7F0C69E0 02A03825 */ move $a3, $s5 -/* 0FB514 7F0C69E4 AFB60014 */ sw $s6, 0x14($sp) -/* 0FB518 7F0C69E8 AFA82BA4 */ sw $t0, 0x2ba4($sp) -/* 0FB51C 7F0C69EC AFAA0010 */ sw $t2, 0x10($sp) -/* 0FB520 7F0C69F0 0FC31B1C */ jal sub_GAME_7F0C6C70 -/* 0FB524 7F0C69F4 AFAB0018 */ sw $t3, 0x18($sp) -/* 0FB528 7F0C69F8 02226821 */ addu $t5, $s1, $v0 -/* 0FB52C 7F0C69FC 29A10801 */ slti $at, $t5, 0x801 -/* 0FB530 7F0C6A00 8FA82BA4 */ lw $t0, 0x2ba4($sp) -/* 0FB534 7F0C6A04 14200008 */ bnez $at, .L7F0C6A28 -/* 0FB538 7F0C6A08 00409025 */ move $s2, $v0 -/* 0FB53C 7F0C6A0C 8FC3000C */ lw $v1, 0xc($fp) -/* 0FB540 7F0C6A10 0013C140 */ sll $t8, $s3, 5 -/* 0FB544 7F0C6A14 906F000B */ lbu $t7, 0xb($v1) -/* 0FB548 7F0C6A18 31ECFF1F */ andi $t4, $t7, 0xff1f -/* 0FB54C 7F0C6A1C 030CC825 */ or $t9, $t8, $t4 -/* 0FB550 7F0C6A20 10000014 */ b .L7F0C6A74 -/* 0FB554 7F0C6A24 A079000B */ sb $t9, 0xb($v1) -.L7F0C6A28: -/* 0FB558 7F0C6A28 02E02025 */ move $a0, $s7 -/* 0FB55C 7F0C6A2C 02802825 */ move $a1, $s4 -/* 0FB560 7F0C6A30 02A03025 */ move $a2, $s5 -/* 0FB564 7F0C6A34 8FA72B94 */ lw $a3, 0x2b94($sp) -/* 0FB568 7F0C6A38 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FB56C 7F0C6A3C AFA82BA4 */ sw $t0, 0x2ba4($sp) -/* 0FB570 7F0C6A40 8FAD2BB4 */ lw $t5, 0x2bb4($sp) -/* 0FB574 7F0C6A44 26940001 */ addiu $s4, $s4, 1 -/* 0FB578 7F0C6A48 26B50001 */ addiu $s5, $s5, 1 -/* 0FB57C 7F0C6A4C 26730001 */ addiu $s3, $s3, 1 -/* 0FB580 7F0C6A50 00145043 */ sra $t2, $s4, 1 -/* 0FB584 7F0C6A54 00155843 */ sra $t3, $s5, 1 -/* 0FB588 7F0C6A58 0200B825 */ move $s7, $s0 -/* 0FB58C 7F0C6A5C 8FA82BA4 */ lw $t0, 0x2ba4($sp) -/* 0FB590 7F0C6A60 02328821 */ addu $s1, $s1, $s2 -/* 0FB594 7F0C6A64 0140A025 */ move $s4, $t2 -/* 0FB598 7F0C6A68 0160A825 */ move $s5, $t3 -/* 0FB59C 7F0C6A6C 166DFFD7 */ bne $s3, $t5, .L7F0C69CC -/* 0FB5A0 7F0C6A70 02128021 */ addu $s0, $s0, $s2 -.L7F0C6A74: -/* 0FB5A4 7F0C6A74 02E02025 */ move $a0, $s7 -/* 0FB5A8 7F0C6A78 02802825 */ move $a1, $s4 -/* 0FB5AC 7F0C6A7C 02A03025 */ move $a2, $s5 -/* 0FB5B0 7F0C6A80 8FA72B94 */ lw $a3, 0x2b94($sp) -/* 0FB5B4 7F0C6A84 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FB5B8 7F0C6A88 AFA82BA4 */ sw $t0, 0x2ba4($sp) -/* 0FB5BC 7F0C6A8C 1000000A */ b .L7F0C6AB8 -/* 0FB5C0 7F0C6A90 8FA82BA4 */ lw $t0, 0x2ba4($sp) -.L7F0C6A94: -/* 0FB5C4 7F0C6A94 24010001 */ li $at, 1 -/* 0FB5C8 7F0C6A98 15C10007 */ bne $t6, $at, .L7F0C6AB8 -/* 0FB5CC 7F0C6A9C 8FA42BAC */ lw $a0, 0x2bac($sp) -/* 0FB5D0 7F0C6AA0 02C02825 */ move $a1, $s6 -/* 0FB5D4 7F0C6AA4 8FA62B84 */ lw $a2, 0x2b84($sp) -/* 0FB5D8 7F0C6AA8 8FA72B94 */ lw $a3, 0x2b94($sp) -/* 0FB5DC 7F0C6AAC 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FB5E0 7F0C6AB0 AFA82BA4 */ sw $t0, 0x2ba4($sp) -/* 0FB5E4 7F0C6AB4 8FA82BA4 */ lw $t0, 0x2ba4($sp) -.L7F0C6AB8: -/* 0FB5E8 7F0C6AB8 8FA92B78 */ lw $t1, 0x2b78($sp) -/* 0FB5EC 7F0C6ABC 8FAF2BAC */ lw $t7, 0x2bac($sp) -/* 0FB5F0 7F0C6AC0 2401FFF8 */ li $at, -8 -/* 0FB5F4 7F0C6AC4 19200032 */ blez $t1, .L7F0C6B90 -/* 0FB5F8 7F0C6AC8 31240003 */ andi $a0, $t1, 3 -/* 0FB5FC 7F0C6ACC 10800012 */ beqz $a0, .L7F0C6B18 -/* 0FB600 7F0C6AD0 01F18021 */ addu $s0, $t7, $s1 -/* 0FB604 7F0C6AD4 0008C040 */ sll $t8, $t0, 1 -/* 0FB608 7F0C6AD8 27AC0070 */ addiu $t4, $sp, 0x70 -/* 0FB60C 7F0C6ADC 030C1821 */ addu $v1, $t8, $t4 -/* 0FB610 7F0C6AE0 00801025 */ move $v0, $a0 -.L7F0C6AE4: -/* 0FB614 7F0C6AE4 94790000 */ lhu $t9, ($v1) -/* 0FB618 7F0C6AE8 25080001 */ addiu $t0, $t0, 1 -/* 0FB61C 7F0C6AEC 26310002 */ addiu $s1, $s1, 2 -/* 0FB620 7F0C6AF0 00195203 */ sra $t2, $t9, 8 -/* 0FB624 7F0C6AF4 A20A0000 */ sb $t2, ($s0) -/* 0FB628 7F0C6AF8 946D0000 */ lhu $t5, ($v1) -/* 0FB62C 7F0C6AFC 26100002 */ addiu $s0, $s0, 2 -/* 0FB630 7F0C6B00 24630002 */ addiu $v1, $v1, 2 -/* 0FB634 7F0C6B04 1448FFF7 */ bne $v0, $t0, .L7F0C6AE4 -/* 0FB638 7F0C6B08 A20DFFFF */ sb $t5, -1($s0) -/* 0FB63C 7F0C6B0C 8FAE2B78 */ lw $t6, 0x2b78($sp) -/* 0FB640 7F0C6B10 510E0020 */ beql $t0, $t6, .L7F0C6B94 -/* 0FB644 7F0C6B14 26310007 */ addiu $s1, $s1, 7 -.L7F0C6B18: -/* 0FB648 7F0C6B18 8FB82B78 */ lw $t8, 0x2b78($sp) -/* 0FB64C 7F0C6B1C 27A90070 */ addiu $t1, $sp, 0x70 -/* 0FB650 7F0C6B20 00087840 */ sll $t7, $t0, 1 -/* 0FB654 7F0C6B24 00186040 */ sll $t4, $t8, 1 -/* 0FB658 7F0C6B28 01891021 */ addu $v0, $t4, $t1 -/* 0FB65C 7F0C6B2C 01E91821 */ addu $v1, $t7, $t1 -.L7F0C6B30: -/* 0FB660 7F0C6B30 94790000 */ lhu $t9, ($v1) -/* 0FB664 7F0C6B34 24630008 */ addiu $v1, $v1, 8 -/* 0FB668 7F0C6B38 26310008 */ addiu $s1, $s1, 8 -/* 0FB66C 7F0C6B3C 00195203 */ sra $t2, $t9, 8 -/* 0FB670 7F0C6B40 A20A0000 */ sb $t2, ($s0) -/* 0FB674 7F0C6B44 946DFFF8 */ lhu $t5, -8($v1) -/* 0FB678 7F0C6B48 26100008 */ addiu $s0, $s0, 8 -/* 0FB67C 7F0C6B4C A20DFFF9 */ sb $t5, -7($s0) -/* 0FB680 7F0C6B50 946EFFFA */ lhu $t6, -6($v1) -/* 0FB684 7F0C6B54 000E7A03 */ sra $t7, $t6, 8 -/* 0FB688 7F0C6B58 A20FFFFA */ sb $t7, -6($s0) -/* 0FB68C 7F0C6B5C 946CFFFA */ lhu $t4, -6($v1) -/* 0FB690 7F0C6B60 A20CFFFB */ sb $t4, -5($s0) -/* 0FB694 7F0C6B64 9469FFFC */ lhu $t1, -4($v1) -/* 0FB698 7F0C6B68 0009CA03 */ sra $t9, $t1, 8 -/* 0FB69C 7F0C6B6C A219FFFC */ sb $t9, -4($s0) -/* 0FB6A0 7F0C6B70 946BFFFC */ lhu $t3, -4($v1) -/* 0FB6A4 7F0C6B74 A20BFFFD */ sb $t3, -3($s0) -/* 0FB6A8 7F0C6B78 946DFFFE */ lhu $t5, -2($v1) -/* 0FB6AC 7F0C6B7C 000D7203 */ sra $t6, $t5, 8 -/* 0FB6B0 7F0C6B80 A20EFFFE */ sb $t6, -2($s0) -/* 0FB6B4 7F0C6B84 9478FFFE */ lhu $t8, -2($v1) -/* 0FB6B8 7F0C6B88 1462FFE9 */ bne $v1, $v0, .L7F0C6B30 -/* 0FB6BC 7F0C6B8C A218FFFF */ sb $t8, -1($s0) -.L7F0C6B90: -/* 0FB6C0 7F0C6B90 26310007 */ addiu $s1, $s1, 7 -.L7F0C6B94: -/* 0FB6C4 7F0C6B94 02211024 */ and $v0, $s1, $at -.L7F0C6B98: -/* 0FB6C8 7F0C6B98 8FBF004C */ lw $ra, 0x4c($sp) -/* 0FB6CC 7F0C6B9C 8FB00028 */ lw $s0, 0x28($sp) -/* 0FB6D0 7F0C6BA0 8FB1002C */ lw $s1, 0x2c($sp) -/* 0FB6D4 7F0C6BA4 8FB20030 */ lw $s2, 0x30($sp) -/* 0FB6D8 7F0C6BA8 8FB30034 */ lw $s3, 0x34($sp) -/* 0FB6DC 7F0C6BAC 8FB40038 */ lw $s4, 0x38($sp) -/* 0FB6E0 7F0C6BB0 8FB5003C */ lw $s5, 0x3c($sp) -/* 0FB6E4 7F0C6BB4 8FB60040 */ lw $s6, 0x40($sp) -/* 0FB6E8 7F0C6BB8 8FB70044 */ lw $s7, 0x44($sp) -/* 0FB6EC 7F0C6BBC 8FBE0048 */ lw $fp, 0x48($sp) -/* 0FB6F0 7F0C6BC0 03E00008 */ jr $ra -/* 0FB6F4 7F0C6BC4 27BD2BA8 */ addiu $sp, $sp, 0x2ba8 -) -#endif - - - - - -#ifdef NONMATCHING -void copy_loaded_image_to_final_mem_location(void) { - -} -#else -GLOBAL_ASM( -.text -glabel copy_loaded_image_to_final_mem_location -/* 0FB6F8 7F0C6BC8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0FB6FC 7F0C6BCC AFB1000C */ sw $s1, 0xc($sp) -/* 0FB700 7F0C6BD0 AFB00008 */ sw $s0, 8($sp) -/* 0FB704 7F0C6BD4 24010009 */ li $at, 9 -/* 0FB708 7F0C6BD8 00A08025 */ move $s0, $a1 -/* 0FB70C 7F0C6BDC 00808825 */ move $s1, $a0 -/* 0FB710 7F0C6BE0 10E10004 */ beq $a3, $at, .L7F0C6BF4 -/* 0FB714 7F0C6BE4 8FA30030 */ lw $v1, 0x30($sp) -/* 0FB718 7F0C6BE8 2401000B */ li $at, 11 -/* 0FB71C 7F0C6BEC 54E10004 */ bnel $a3, $at, .L7F0C6C00 -/* 0FB720 7F0C6BF0 2401000A */ li $at, 10 -.L7F0C6BF4: -/* 0FB724 7F0C6BF4 10000008 */ b .L7F0C6C18 -/* 0FB728 7F0C6BF8 24020001 */ li $v0, 1 -/* 0FB72C 7F0C6BFC 2401000A */ li $at, 10 -.L7F0C6C00: -/* 0FB730 7F0C6C00 10E10003 */ beq $a3, $at, .L7F0C6C10 -/* 0FB734 7F0C6C04 2401000C */ li $at, 12 -/* 0FB738 7F0C6C08 14E10003 */ bne $a3, $at, .L7F0C6C18 -/* 0FB73C 7F0C6C0C 8FA20010 */ lw $v0, 0x10($sp) -.L7F0C6C10: -/* 0FB740 7F0C6C10 10000001 */ b .L7F0C6C18 -/* 0FB744 7F0C6C14 24020002 */ li $v0, 2 -.L7F0C6C18: -/* 0FB748 7F0C6C18 18C0000F */ blez $a2, .L7F0C6C58 -/* 0FB74C 7F0C6C1C 00002025 */ move $a0, $zero -/* 0FB750 7F0C6C20 2407FFF8 */ li $a3, -8 -.L7F0C6C24: -/* 0FB754 7F0C6C24 1A000008 */ blez $s0, .L7F0C6C48 -/* 0FB758 7F0C6C28 00002825 */ move $a1, $zero -.L7F0C6C2C: -/* 0FB75C 7F0C6C2C 922E0000 */ lbu $t6, ($s1) -/* 0FB760 7F0C6C30 00A22821 */ addu $a1, $a1, $v0 -/* 0FB764 7F0C6C34 00B0082A */ slt $at, $a1, $s0 -/* 0FB768 7F0C6C38 24630001 */ addiu $v1, $v1, 1 -/* 0FB76C 7F0C6C3C 26310001 */ addiu $s1, $s1, 1 -/* 0FB770 7F0C6C40 1420FFFA */ bnez $at, .L7F0C6C2C -/* 0FB774 7F0C6C44 A06EFFFF */ sb $t6, -1($v1) -.L7F0C6C48: -/* 0FB778 7F0C6C48 24840001 */ addiu $a0, $a0, 1 -/* 0FB77C 7F0C6C4C 246F0007 */ addiu $t7, $v1, 7 -/* 0FB780 7F0C6C50 1486FFF4 */ bne $a0, $a2, .L7F0C6C24 -/* 0FB784 7F0C6C54 01E71824 */ and $v1, $t7, $a3 -.L7F0C6C58: -/* 0FB788 7F0C6C58 8FB80030 */ lw $t8, 0x30($sp) -/* 0FB78C 7F0C6C5C 8FB00008 */ lw $s0, 8($sp) -/* 0FB790 7F0C6C60 8FB1000C */ lw $s1, 0xc($sp) -/* 0FB794 7F0C6C64 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0FB798 7F0C6C68 03E00008 */ jr $ra -/* 0FB79C 7F0C6C6C 00781023 */ subu $v0, $v1, $t8 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0C6C70(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C6C70 -/* 0FB7A0 7F0C6C70 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* 0FB7A4 7F0C6C74 AFB00020 */ sw $s0, 0x20($sp) -/* 0FB7A8 7F0C6C78 8FB000B8 */ lw $s0, 0xb8($sp) -/* 0FB7AC 7F0C6C7C 24EF0001 */ addiu $t7, $a3, 1 -/* 0FB7B0 7F0C6C80 AFBE0040 */ sw $fp, 0x40($sp) -/* 0FB7B4 7F0C6C84 AFB50034 */ sw $s5, 0x34($sp) -/* 0FB7B8 7F0C6C88 24020009 */ li $v0, 9 -/* 0FB7BC 7F0C6C8C 000FC043 */ sra $t8, $t7, 1 -/* 0FB7C0 7F0C6C90 00C0F025 */ move $fp, $a2 -/* 0FB7C4 7F0C6C94 AFBF0044 */ sw $ra, 0x44($sp) -/* 0FB7C8 7F0C6C98 AFB7003C */ sw $s7, 0x3c($sp) -/* 0FB7CC 7F0C6C9C AFB60038 */ sw $s6, 0x38($sp) -/* 0FB7D0 7F0C6CA0 AFB40030 */ sw $s4, 0x30($sp) -/* 0FB7D4 7F0C6CA4 AFB3002C */ sw $s3, 0x2c($sp) -/* 0FB7D8 7F0C6CA8 AFB20028 */ sw $s2, 0x28($sp) -/* 0FB7DC 7F0C6CAC AFB10024 */ sw $s1, 0x24($sp) -/* 0FB7E0 7F0C6CB0 AFA700B4 */ sw $a3, 0xb4($sp) -/* 0FB7E4 7F0C6CB4 AFA50074 */ sw $a1, 0x74($sp) -/* 0FB7E8 7F0C6CB8 0080A825 */ move $s5, $a0 -/* 0FB7EC 7F0C6CBC AFB80060 */ sw $t8, 0x60($sp) -/* 0FB7F0 7F0C6CC0 1202000B */ beq $s0, $v0, .L7F0C6CF0 -/* 0FB7F4 7F0C6CC4 AFB80094 */ sw $t8, 0x94($sp) -/* 0FB7F8 7F0C6CC8 2401000A */ li $at, 10 -/* 0FB7FC 7F0C6CCC 12010011 */ beq $s0, $at, .L7F0C6D14 -/* 0FB800 7F0C6CD0 27CF0001 */ addiu $t7, $fp, 1 -/* 0FB804 7F0C6CD4 2401000B */ li $at, 11 -/* 0FB808 7F0C6CD8 12010005 */ beq $s0, $at, .L7F0C6CF0 -/* 0FB80C 7F0C6CDC 2401000C */ li $at, 12 -/* 0FB810 7F0C6CE0 5201000D */ beql $s0, $at, .L7F0C6D18 -/* 0FB814 7F0C6CE4 000FC043 */ sra $t8, $t7, 1 -/* 0FB818 7F0C6CE8 10000011 */ b .L7F0C6D30 -/* 0FB81C 7F0C6CEC 00000000 */ nop -.L7F0C6CF0: -/* 0FB820 7F0C6CF0 27D90001 */ addiu $t9, $fp, 1 -/* 0FB824 7F0C6CF4 00195043 */ sra $t2, $t9, 1 -/* 0FB828 7F0C6CF8 254B0007 */ addiu $t3, $t2, 7 -/* 0FB82C 7F0C6CFC 27CD0007 */ addiu $t5, $fp, 7 -/* 0FB830 7F0C6D00 316C0FF8 */ andi $t4, $t3, 0xff8 -/* 0FB834 7F0C6D04 31AE0FF8 */ andi $t6, $t5, 0xff8 -/* 0FB838 7F0C6D08 AFAC0098 */ sw $t4, 0x98($sp) -/* 0FB83C 7F0C6D0C 10000008 */ b .L7F0C6D30 -/* 0FB840 7F0C6D10 AFAE009C */ sw $t6, 0x9c($sp) -.L7F0C6D14: -/* 0FB844 7F0C6D14 000FC043 */ sra $t8, $t7, 1 -.L7F0C6D18: -/* 0FB848 7F0C6D18 2719000F */ addiu $t9, $t8, 0xf -/* 0FB84C 7F0C6D1C 27CB000F */ addiu $t3, $fp, 0xf -/* 0FB850 7F0C6D20 332A0FF0 */ andi $t2, $t9, 0xff0 -/* 0FB854 7F0C6D24 316C0FF0 */ andi $t4, $t3, 0xff0 -/* 0FB858 7F0C6D28 AFAA0098 */ sw $t2, 0x98($sp) -/* 0FB85C 7F0C6D2C AFAC009C */ sw $t4, 0x9c($sp) -.L7F0C6D30: -/* 0FB860 7F0C6D30 12020009 */ beq $s0, $v0, .L7F0C6D58 -/* 0FB864 7F0C6D34 2401000A */ li $at, 10 -/* 0FB868 7F0C6D38 120100ED */ beq $s0, $at, .L7F0C70F0 -/* 0FB86C 7F0C6D3C 2401000B */ li $at, 11 -/* 0FB870 7F0C6D40 12010086 */ beq $s0, $at, .L7F0C6F5C -/* 0FB874 7F0C6D44 2401000C */ li $at, 12 -/* 0FB878 7F0C6D48 120101D9 */ beq $s0, $at, .L7F0C74B0 -/* 0FB87C 7F0C6D4C 00001025 */ move $v0, $zero -/* 0FB880 7F0C6D50 1000028A */ b .L7F0C777C -/* 0FB884 7F0C6D54 00000000 */ nop -.L7F0C6D58: -/* 0FB888 7F0C6D58 8FAD00B4 */ lw $t5, 0xb4($sp) -/* 0FB88C 7F0C6D5C 8FAE009C */ lw $t6, 0x9c($sp) -/* 0FB890 7F0C6D60 AFA000A0 */ sw $zero, 0xa0($sp) -/* 0FB894 7F0C6D64 19A00077 */ blez $t5, .L7F0C6F44 -/* 0FB898 7F0C6D68 000E7840 */ sll $t7, $t6, 1 -/* 0FB89C 7F0C6D6C AFAF0050 */ sw $t7, 0x50($sp) -/* 0FB8A0 7F0C6D70 8FB700C0 */ lw $s7, 0xc0($sp) -/* 0FB8A4 7F0C6D74 8FB300BC */ lw $s3, 0xbc($sp) -.L7F0C6D78: -/* 0FB8A8 7F0C6D78 8FB900A0 */ lw $t9, 0xa0($sp) -/* 0FB8AC 7F0C6D7C 8FB800B4 */ lw $t8, 0xb4($sp) -/* 0FB8B0 7F0C6D80 00008825 */ move $s1, $zero -/* 0FB8B4 7F0C6D84 272A0001 */ addiu $t2, $t9, 1 -/* 0FB8B8 7F0C6D88 0158082A */ slt $at, $t2, $t8 -/* 0FB8BC 7F0C6D8C 10200003 */ beqz $at, .L7F0C6D9C -/* 0FB8C0 7F0C6D90 8FAB009C */ lw $t3, 0x9c($sp) -/* 0FB8C4 7F0C6D94 10000002 */ b .L7F0C6DA0 -/* 0FB8C8 7F0C6D98 8FB6009C */ lw $s6, 0x9c($sp) -.L7F0C6D9C: -/* 0FB8CC 7F0C6D9C 0000B025 */ move $s6, $zero -.L7F0C6DA0: -/* 0FB8D0 7F0C6DA0 1960005C */ blez $t3, .L7F0C6F14 -/* 0FB8D4 7F0C6DA4 02A09025 */ move $s2, $s5 -/* 0FB8D8 7F0C6DA8 02D5A021 */ addu $s4, $s6, $s5 -/* 0FB8DC 7F0C6DAC 26220001 */ addiu $v0, $s1, 1 -.L7F0C6DB0: -/* 0FB8E0 7F0C6DB0 005E082A */ slt $at, $v0, $fp -/* 0FB8E4 7F0C6DB4 10200003 */ beqz $at, .L7F0C6DC4 -/* 0FB8E8 7F0C6DB8 02602025 */ move $a0, $s3 -/* 0FB8EC 7F0C6DBC 10000002 */ b .L7F0C6DC8 -/* 0FB8F0 7F0C6DC0 00401825 */ move $v1, $v0 -.L7F0C6DC4: -/* 0FB8F4 7F0C6DC4 02201825 */ move $v1, $s1 -.L7F0C6DC8: -/* 0FB8F8 7F0C6DC8 924C0000 */ lbu $t4, ($s2) -/* 0FB8FC 7F0C6DCC 02A37821 */ addu $t7, $s5, $v1 -/* 0FB900 7F0C6DD0 91F90000 */ lbu $t9, ($t7) -/* 0FB904 7F0C6DD4 000C6840 */ sll $t5, $t4, 1 -/* 0FB908 7F0C6DD8 026D7021 */ addu $t6, $s3, $t5 -/* 0FB90C 7F0C6DDC 85D00000 */ lh $s0, ($t6) -/* 0FB910 7F0C6DE0 02C37021 */ addu $t6, $s6, $v1 -/* 0FB914 7F0C6DE4 928B0000 */ lbu $t3, ($s4) -/* 0FB918 7F0C6DE8 01D57821 */ addu $t7, $t6, $s5 -/* 0FB91C 7F0C6DEC 0019C040 */ sll $t8, $t9, 1 -/* 0FB920 7F0C6DF0 91F90000 */ lbu $t9, ($t7) -/* 0FB924 7F0C6DF4 02785021 */ addu $t2, $s3, $t8 -/* 0FB928 7F0C6DF8 85480000 */ lh $t0, ($t2) -/* 0FB92C 7F0C6DFC 000B6040 */ sll $t4, $t3, 1 -/* 0FB930 7F0C6E00 026C6821 */ addu $t5, $s3, $t4 -/* 0FB934 7F0C6E04 0019C040 */ sll $t8, $t9, 1 -/* 0FB938 7F0C6E08 85A90000 */ lh $t1, ($t5) -/* 0FB93C 7F0C6E0C 02785021 */ addu $t2, $s3, $t8 -/* 0FB940 7F0C6E10 85420000 */ lh $v0, ($t2) -/* 0FB944 7F0C6E14 00105AC3 */ sra $t3, $s0, 0xb -/* 0FB948 7F0C6E18 316C001F */ andi $t4, $t3, 0x1f -/* 0FB94C 7F0C6E1C 00086AC3 */ sra $t5, $t0, 0xb -/* 0FB950 7F0C6E20 31AE001F */ andi $t6, $t5, 0x1f -/* 0FB954 7F0C6E24 0009CAC3 */ sra $t9, $t1, 0xb -/* 0FB958 7F0C6E28 3338001F */ andi $t8, $t9, 0x1f -/* 0FB95C 7F0C6E2C 018E7821 */ addu $t7, $t4, $t6 -/* 0FB960 7F0C6E30 00025AC3 */ sra $t3, $v0, 0xb -/* 0FB964 7F0C6E34 316D001F */ andi $t5, $t3, 0x1f -/* 0FB968 7F0C6E38 01F85021 */ addu $t2, $t7, $t8 -/* 0FB96C 7F0C6E3C 014D3021 */ addu $a2, $t2, $t5 -/* 0FB970 7F0C6E40 0010C983 */ sra $t9, $s0, 6 -/* 0FB974 7F0C6E44 332F001F */ andi $t7, $t9, 0x1f -/* 0FB978 7F0C6E48 00066083 */ sra $t4, $a2, 2 -/* 0FB97C 7F0C6E4C 0008C183 */ sra $t8, $t0, 6 -/* 0FB980 7F0C6E50 330B001F */ andi $t3, $t8, 0x1f -/* 0FB984 7F0C6E54 3186001F */ andi $a2, $t4, 0x1f -/* 0FB988 7F0C6E58 00096983 */ sra $t5, $t1, 6 -/* 0FB98C 7F0C6E5C 31AC001F */ andi $t4, $t5, 0x1f -/* 0FB990 7F0C6E60 01EB5021 */ addu $t2, $t7, $t3 -/* 0FB994 7F0C6E64 0002C983 */ sra $t9, $v0, 6 -/* 0FB998 7F0C6E68 3338001F */ andi $t8, $t9, 0x1f -/* 0FB99C 7F0C6E6C 014C7021 */ addu $t6, $t2, $t4 -/* 0FB9A0 7F0C6E70 01D83821 */ addu $a3, $t6, $t8 -/* 0FB9A4 7F0C6E74 00106843 */ sra $t5, $s0, 1 -/* 0FB9A8 7F0C6E78 31AA001F */ andi $t2, $t5, 0x1f -/* 0FB9AC 7F0C6E7C 00077883 */ sra $t7, $a3, 2 -/* 0FB9B0 7F0C6E80 00086043 */ sra $t4, $t0, 1 -/* 0FB9B4 7F0C6E84 3199001F */ andi $t9, $t4, 0x1f -/* 0FB9B8 7F0C6E88 31E7001F */ andi $a3, $t7, 0x1f -/* 0FB9BC 7F0C6E8C 0009C043 */ sra $t8, $t1, 1 -/* 0FB9C0 7F0C6E90 330F001F */ andi $t7, $t8, 0x1f -/* 0FB9C4 7F0C6E94 01597021 */ addu $t6, $t2, $t9 -/* 0FB9C8 7F0C6E98 00026843 */ sra $t5, $v0, 1 -/* 0FB9CC 7F0C6E9C 31AC001F */ andi $t4, $t5, 0x1f -/* 0FB9D0 7F0C6EA0 01CF5821 */ addu $t3, $t6, $t7 -/* 0FB9D4 7F0C6EA4 016C5021 */ addu $t2, $t3, $t4 -/* 0FB9D8 7F0C6EA8 000AC883 */ sra $t9, $t2, 2 -/* 0FB9DC 7F0C6EAC 320E0001 */ andi $t6, $s0, 1 -/* 0FB9E0 7F0C6EB0 310F0001 */ andi $t7, $t0, 1 -/* 0FB9E4 7F0C6EB4 01CF6821 */ addu $t5, $t6, $t7 -/* 0FB9E8 7F0C6EB8 3338001F */ andi $t8, $t9, 0x1f -/* 0FB9EC 7F0C6EBC 312B0001 */ andi $t3, $t1, 1 -/* 0FB9F0 7F0C6EC0 01AB6021 */ addu $t4, $t5, $t3 -/* 0FB9F4 7F0C6EC4 304A0001 */ andi $t2, $v0, 1 -/* 0FB9F8 7F0C6EC8 018AC821 */ addu $t9, $t4, $t2 -/* 0FB9FC 7F0C6ECC AFB80010 */ sw $t8, 0x10($sp) -/* 0FBA00 7F0C6ED0 27380002 */ addiu $t8, $t9, 2 -/* 0FBA04 7F0C6ED4 00187083 */ sra $t6, $t8, 2 -/* 0FBA08 7F0C6ED8 31CF0001 */ andi $t7, $t6, 1 -/* 0FBA0C 7F0C6EDC AFAF0014 */ sw $t7, 0x14($sp) -/* 0FBA10 7F0C6EE0 0FC31DEB */ jal sub_GAME_7F0C77AC -/* 0FBA14 7F0C6EE4 02E02825 */ move $a1, $s7 -/* 0FBA18 7F0C6EE8 8FAD0074 */ lw $t5, 0x74($sp) -/* 0FBA1C 7F0C6EEC 00115843 */ sra $t3, $s1, 1 -/* 0FBA20 7F0C6EF0 26310002 */ addiu $s1, $s1, 2 -/* 0FBA24 7F0C6EF4 01AB6021 */ addu $t4, $t5, $t3 -/* 0FBA28 7F0C6EF8 A1820000 */ sb $v0, ($t4) -/* 0FBA2C 7F0C6EFC 8FAA009C */ lw $t2, 0x9c($sp) -/* 0FBA30 7F0C6F00 26520002 */ addiu $s2, $s2, 2 -/* 0FBA34 7F0C6F04 26940002 */ addiu $s4, $s4, 2 -/* 0FBA38 7F0C6F08 022A082A */ slt $at, $s1, $t2 -/* 0FBA3C 7F0C6F0C 5420FFA8 */ bnezl $at, .L7F0C6DB0 -/* 0FBA40 7F0C6F10 26220001 */ addiu $v0, $s1, 1 -.L7F0C6F14: -/* 0FBA44 7F0C6F14 8FAD00A0 */ lw $t5, 0xa0($sp) -/* 0FBA48 7F0C6F18 8FAC00B4 */ lw $t4, 0xb4($sp) -/* 0FBA4C 7F0C6F1C 8FB90074 */ lw $t9, 0x74($sp) -/* 0FBA50 7F0C6F20 8FB80098 */ lw $t8, 0x98($sp) -/* 0FBA54 7F0C6F24 8FAF0050 */ lw $t7, 0x50($sp) -/* 0FBA58 7F0C6F28 25AB0002 */ addiu $t3, $t5, 2 -/* 0FBA5C 7F0C6F2C 016C082A */ slt $at, $t3, $t4 -/* 0FBA60 7F0C6F30 03387021 */ addu $t6, $t9, $t8 -/* 0FBA64 7F0C6F34 AFAB00A0 */ sw $t3, 0xa0($sp) -/* 0FBA68 7F0C6F38 AFAE0074 */ sw $t6, 0x74($sp) -/* 0FBA6C 7F0C6F3C 1420FF8E */ bnez $at, .L7F0C6D78 -/* 0FBA70 7F0C6F40 02AFA821 */ addu $s5, $s5, $t7 -.L7F0C6F44: -/* 0FBA74 7F0C6F44 8FAA0060 */ lw $t2, 0x60($sp) -/* 0FBA78 7F0C6F48 8FB90098 */ lw $t9, 0x98($sp) -/* 0FBA7C 7F0C6F4C 01590019 */ multu $t2, $t9 -/* 0FBA80 7F0C6F50 00001012 */ mflo $v0 -/* 0FBA84 7F0C6F54 1000020A */ b .L7F0C7780 -/* 0FBA88 7F0C6F58 8FBF0044 */ lw $ra, 0x44($sp) -.L7F0C6F5C: -/* 0FBA8C 7F0C6F5C 8FB800B4 */ lw $t8, 0xb4($sp) -/* 0FBA90 7F0C6F60 8FAE009C */ lw $t6, 0x9c($sp) -/* 0FBA94 7F0C6F64 AFA000A0 */ sw $zero, 0xa0($sp) -/* 0FBA98 7F0C6F68 1B00005B */ blez $t8, .L7F0C70D8 -/* 0FBA9C 7F0C6F6C 000E7840 */ sll $t7, $t6, 1 -/* 0FBAA0 7F0C6F70 AFAF0050 */ sw $t7, 0x50($sp) -/* 0FBAA4 7F0C6F74 8FB700C0 */ lw $s7, 0xc0($sp) -/* 0FBAA8 7F0C6F78 8FB300BC */ lw $s3, 0xbc($sp) -.L7F0C6F7C: -/* 0FBAAC 7F0C6F7C 8FAB00A0 */ lw $t3, 0xa0($sp) -/* 0FBAB0 7F0C6F80 8FAD00B4 */ lw $t5, 0xb4($sp) -/* 0FBAB4 7F0C6F84 00008825 */ move $s1, $zero -/* 0FBAB8 7F0C6F88 256C0001 */ addiu $t4, $t3, 1 -/* 0FBABC 7F0C6F8C 018D082A */ slt $at, $t4, $t5 -/* 0FBAC0 7F0C6F90 10200003 */ beqz $at, .L7F0C6FA0 -/* 0FBAC4 7F0C6F94 8FAA009C */ lw $t2, 0x9c($sp) -/* 0FBAC8 7F0C6F98 10000002 */ b .L7F0C6FA4 -/* 0FBACC 7F0C6F9C 8FB6009C */ lw $s6, 0x9c($sp) -.L7F0C6FA0: -/* 0FBAD0 7F0C6FA0 0000B025 */ move $s6, $zero -.L7F0C6FA4: -/* 0FBAD4 7F0C6FA4 19400040 */ blez $t2, .L7F0C70A8 -/* 0FBAD8 7F0C6FA8 02A09025 */ move $s2, $s5 -/* 0FBADC 7F0C6FAC 02D5A021 */ addu $s4, $s6, $s5 -/* 0FBAE0 7F0C6FB0 26220001 */ addiu $v0, $s1, 1 -.L7F0C6FB4: -/* 0FBAE4 7F0C6FB4 005E082A */ slt $at, $v0, $fp -/* 0FBAE8 7F0C6FB8 10200003 */ beqz $at, .L7F0C6FC8 -/* 0FBAEC 7F0C6FBC 02602025 */ move $a0, $s3 -/* 0FBAF0 7F0C6FC0 10000002 */ b .L7F0C6FCC -/* 0FBAF4 7F0C6FC4 00401825 */ move $v1, $v0 -.L7F0C6FC8: -/* 0FBAF8 7F0C6FC8 02201825 */ move $v1, $s1 -.L7F0C6FCC: -/* 0FBAFC 7F0C6FCC 92590000 */ lbu $t9, ($s2) -/* 0FBB00 7F0C6FD0 02A37821 */ addu $t7, $s5, $v1 -/* 0FBB04 7F0C6FD4 91EB0000 */ lbu $t3, ($t7) -/* 0FBB08 7F0C6FD8 0019C040 */ sll $t8, $t9, 1 -/* 0FBB0C 7F0C6FDC 02787021 */ addu $t6, $s3, $t8 -/* 0FBB10 7F0C6FE0 85D00000 */ lh $s0, ($t6) -/* 0FBB14 7F0C6FE4 928A0000 */ lbu $t2, ($s4) -/* 0FBB18 7F0C6FE8 02C37021 */ addu $t6, $s6, $v1 -/* 0FBB1C 7F0C6FEC 01D57821 */ addu $t7, $t6, $s5 -/* 0FBB20 7F0C6FF0 000B6840 */ sll $t5, $t3, 1 -/* 0FBB24 7F0C6FF4 91EB0000 */ lbu $t3, ($t7) -/* 0FBB28 7F0C6FF8 026D6021 */ addu $t4, $s3, $t5 -/* 0FBB2C 7F0C6FFC 000AC840 */ sll $t9, $t2, 1 -/* 0FBB30 7F0C7000 85880000 */ lh $t0, ($t4) -/* 0FBB34 7F0C7004 0279C021 */ addu $t8, $s3, $t9 -/* 0FBB38 7F0C7008 87090000 */ lh $t1, ($t8) -/* 0FBB3C 7F0C700C 000B6840 */ sll $t5, $t3, 1 -/* 0FBB40 7F0C7010 026D6021 */ addu $t4, $s3, $t5 -/* 0FBB44 7F0C7014 85820000 */ lh $v0, ($t4) -/* 0FBB48 7F0C7018 00105203 */ sra $t2, $s0, 8 -/* 0FBB4C 7F0C701C 0008C203 */ sra $t8, $t0, 8 -/* 0FBB50 7F0C7020 330E00FF */ andi $t6, $t8, 0xff -/* 0FBB54 7F0C7024 315900FF */ andi $t9, $t2, 0xff -/* 0FBB58 7F0C7028 00095A03 */ sra $t3, $t1, 8 -/* 0FBB5C 7F0C702C 316D00FF */ andi $t5, $t3, 0xff -/* 0FBB60 7F0C7030 032E7821 */ addu $t7, $t9, $t6 -/* 0FBB64 7F0C7034 01ED6021 */ addu $t4, $t7, $t5 -/* 0FBB68 7F0C7038 00025203 */ sra $t2, $v0, 8 -/* 0FBB6C 7F0C703C 315800FF */ andi $t8, $t2, 0xff -/* 0FBB70 7F0C7040 01983021 */ addu $a2, $t4, $t8 -/* 0FBB74 7F0C7044 320B00FF */ andi $t3, $s0, 0xff -/* 0FBB78 7F0C7048 310F00FF */ andi $t7, $t0, 0xff -/* 0FBB7C 7F0C704C 016F6821 */ addu $t5, $t3, $t7 -/* 0FBB80 7F0C7050 312A00FF */ andi $t2, $t1, 0xff -/* 0FBB84 7F0C7054 01AA6021 */ addu $t4, $t5, $t2 -/* 0FBB88 7F0C7058 305800FF */ andi $t8, $v0, 0xff -/* 0FBB8C 7F0C705C 01983821 */ addu $a3, $t4, $t8 -/* 0FBB90 7F0C7060 0006C883 */ sra $t9, $a2, 2 -/* 0FBB94 7F0C7064 332600FF */ andi $a2, $t9, 0xff -/* 0FBB98 7F0C7068 24E70001 */ addiu $a3, $a3, 1 -/* 0FBB9C 7F0C706C 0007C883 */ sra $t9, $a3, 2 -/* 0FBBA0 7F0C7070 332700FF */ andi $a3, $t9, 0xff -/* 0FBBA4 7F0C7074 0FC31EF6 */ jal sub_GAME_7F0C7BD8 -/* 0FBBA8 7F0C7078 02E02825 */ move $a1, $s7 -/* 0FBBAC 7F0C707C 8FAB0074 */ lw $t3, 0x74($sp) -/* 0FBBB0 7F0C7080 00117843 */ sra $t7, $s1, 1 -/* 0FBBB4 7F0C7084 26310002 */ addiu $s1, $s1, 2 -/* 0FBBB8 7F0C7088 016F6821 */ addu $t5, $t3, $t7 -/* 0FBBBC 7F0C708C A1A20000 */ sb $v0, ($t5) -/* 0FBBC0 7F0C7090 8FAA009C */ lw $t2, 0x9c($sp) -/* 0FBBC4 7F0C7094 26520002 */ addiu $s2, $s2, 2 -/* 0FBBC8 7F0C7098 26940002 */ addiu $s4, $s4, 2 -/* 0FBBCC 7F0C709C 022A082A */ slt $at, $s1, $t2 -/* 0FBBD0 7F0C70A0 5420FFC4 */ bnezl $at, .L7F0C6FB4 -/* 0FBBD4 7F0C70A4 26220001 */ addiu $v0, $s1, 1 -.L7F0C70A8: -/* 0FBBD8 7F0C70A8 8FAB00A0 */ lw $t3, 0xa0($sp) -/* 0FBBDC 7F0C70AC 8FAD00B4 */ lw $t5, 0xb4($sp) -/* 0FBBE0 7F0C70B0 8FAC0074 */ lw $t4, 0x74($sp) -/* 0FBBE4 7F0C70B4 8FB80098 */ lw $t8, 0x98($sp) -/* 0FBBE8 7F0C70B8 8FAE0050 */ lw $t6, 0x50($sp) -/* 0FBBEC 7F0C70BC 256F0002 */ addiu $t7, $t3, 2 -/* 0FBBF0 7F0C70C0 01ED082A */ slt $at, $t7, $t5 -/* 0FBBF4 7F0C70C4 0198C821 */ addu $t9, $t4, $t8 -/* 0FBBF8 7F0C70C8 AFAF00A0 */ sw $t7, 0xa0($sp) -/* 0FBBFC 7F0C70CC AFB90074 */ sw $t9, 0x74($sp) -/* 0FBC00 7F0C70D0 1420FFAA */ bnez $at, .L7F0C6F7C -/* 0FBC04 7F0C70D4 02AEA821 */ addu $s5, $s5, $t6 -.L7F0C70D8: -/* 0FBC08 7F0C70D8 8FAA0060 */ lw $t2, 0x60($sp) -/* 0FBC0C 7F0C70DC 8FAC0098 */ lw $t4, 0x98($sp) -/* 0FBC10 7F0C70E0 014C0019 */ multu $t2, $t4 -/* 0FBC14 7F0C70E4 00001012 */ mflo $v0 -/* 0FBC18 7F0C70E8 100001A5 */ b .L7F0C7780 -/* 0FBC1C 7F0C70EC 8FBF0044 */ lw $ra, 0x44($sp) -.L7F0C70F0: -/* 0FBC20 7F0C70F0 8FB800B4 */ lw $t8, 0xb4($sp) -/* 0FBC24 7F0C70F4 8FB90098 */ lw $t9, 0x98($sp) -/* 0FBC28 7F0C70F8 AFA000A0 */ sw $zero, 0xa0($sp) -/* 0FBC2C 7F0C70FC 1B0000E5 */ blez $t8, .L7F0C7494 -/* 0FBC30 7F0C7100 00197043 */ sra $t6, $t9, 1 -/* 0FBC34 7F0C7104 AFAE004C */ sw $t6, 0x4c($sp) -/* 0FBC38 7F0C7108 8FB700C0 */ lw $s7, 0xc0($sp) -/* 0FBC3C 7F0C710C 8FB300BC */ lw $s3, 0xbc($sp) -.L7F0C7110: -/* 0FBC40 7F0C7110 8FAF00A0 */ lw $t7, 0xa0($sp) -/* 0FBC44 7F0C7114 8FAB00B4 */ lw $t3, 0xb4($sp) -/* 0FBC48 7F0C7118 00008825 */ move $s1, $zero -/* 0FBC4C 7F0C711C 25ED0001 */ addiu $t5, $t7, 1 -/* 0FBC50 7F0C7120 01AB082A */ slt $at, $t5, $t3 -/* 0FBC54 7F0C7124 10200005 */ beqz $at, .L7F0C713C -/* 0FBC58 7F0C7128 8FAC009C */ lw $t4, 0x9c($sp) -/* 0FBC5C 7F0C712C 8FB6009C */ lw $s6, 0x9c($sp) -/* 0FBC60 7F0C7130 00165043 */ sra $t2, $s6, 1 -/* 0FBC64 7F0C7134 10000002 */ b .L7F0C7140 -/* 0FBC68 7F0C7138 0140B025 */ move $s6, $t2 -.L7F0C713C: -/* 0FBC6C 7F0C713C 0000B025 */ move $s6, $zero -.L7F0C7140: -/* 0FBC70 7F0C7140 198000C8 */ blez $t4, .L7F0C7464 -/* 0FBC74 7F0C7144 02B6A021 */ addu $s4, $s5, $s6 -/* 0FBC78 7F0C7148 00112843 */ sra $a1, $s1, 1 -.L7F0C714C: -/* 0FBC7C 7F0C714C 00B5C021 */ addu $t8, $a1, $s5 -/* 0FBC80 7F0C7150 93020000 */ lbu $v0, ($t8) -/* 0FBC84 7F0C7154 262D0001 */ addiu $t5, $s1, 1 -/* 0FBC88 7F0C7158 01BE202A */ slt $a0, $t5, $fp -/* 0FBC8C 7F0C715C 0002C903 */ sra $t9, $v0, 4 -/* 0FBC90 7F0C7160 332E000F */ andi $t6, $t9, 0xf -/* 0FBC94 7F0C7164 000E7840 */ sll $t7, $t6, 1 -/* 0FBC98 7F0C7168 026F5821 */ addu $t3, $s3, $t7 -/* 0FBC9C 7F0C716C 10800003 */ beqz $a0, .L7F0C717C -/* 0FBCA0 7F0C7170 85700000 */ lh $s0, ($t3) -/* 0FBCA4 7F0C7174 10000002 */ b .L7F0C7180 -/* 0FBCA8 7F0C7178 00001825 */ move $v1, $zero -.L7F0C717C: -/* 0FBCAC 7F0C717C 24030004 */ li $v1, 4 -.L7F0C7180: -/* 0FBCB0 7F0C7180 00B67021 */ addu $t6, $a1, $s6 -/* 0FBCB4 7F0C7184 01D57821 */ addu $t7, $t6, $s5 -/* 0FBCB8 7F0C7188 91EB0000 */ lbu $t3, ($t7) -/* 0FBCBC 7F0C718C 00625007 */ srav $t2, $v0, $v1 -/* 0FBCC0 7F0C7190 314C000F */ andi $t4, $t2, 0xf -/* 0FBCC4 7F0C7194 000CC040 */ sll $t8, $t4, 1 -/* 0FBCC8 7F0C7198 000B6903 */ sra $t5, $t3, 4 -/* 0FBCCC 7F0C719C 31AA000F */ andi $t2, $t5, 0xf -/* 0FBCD0 7F0C71A0 0278C821 */ addu $t9, $s3, $t8 -/* 0FBCD4 7F0C71A4 000A6040 */ sll $t4, $t2, 1 -/* 0FBCD8 7F0C71A8 026CC021 */ addu $t8, $s3, $t4 -/* 0FBCDC 7F0C71AC 87280000 */ lh $t0, ($t9) -/* 0FBCE0 7F0C71B0 10800003 */ beqz $a0, .L7F0C71C0 -/* 0FBCE4 7F0C71B4 87090000 */ lh $t1, ($t8) -/* 0FBCE8 7F0C71B8 10000002 */ b .L7F0C71C4 -/* 0FBCEC 7F0C71BC 00001825 */ move $v1, $zero -.L7F0C71C0: -/* 0FBCF0 7F0C71C0 24030004 */ li $v1, 4 -.L7F0C71C4: -/* 0FBCF4 7F0C71C4 0285C821 */ addu $t9, $s4, $a1 -/* 0FBCF8 7F0C71C8 932E0000 */ lbu $t6, ($t9) -/* 0FBCFC 7F0C71CC 001062C3 */ sra $t4, $s0, 0xb -/* 0FBD00 7F0C71D0 3198001F */ andi $t8, $t4, 0x1f -/* 0FBD04 7F0C71D4 006E7807 */ srav $t7, $t6, $v1 -/* 0FBD08 7F0C71D8 31EB000F */ andi $t3, $t7, 0xf -/* 0FBD0C 7F0C71DC 000B6840 */ sll $t5, $t3, 1 -/* 0FBD10 7F0C71E0 026D5021 */ addu $t2, $s3, $t5 -/* 0FBD14 7F0C71E4 85420000 */ lh $v0, ($t2) -/* 0FBD18 7F0C71E8 0008CAC3 */ sra $t9, $t0, 0xb -/* 0FBD1C 7F0C71EC 332E001F */ andi $t6, $t9, 0x1f -/* 0FBD20 7F0C71F0 00095AC3 */ sra $t3, $t1, 0xb -/* 0FBD24 7F0C71F4 316D001F */ andi $t5, $t3, 0x1f -/* 0FBD28 7F0C71F8 030E7821 */ addu $t7, $t8, $t6 -/* 0FBD2C 7F0C71FC 000262C3 */ sra $t4, $v0, 0xb -/* 0FBD30 7F0C7200 3199001F */ andi $t9, $t4, 0x1f -/* 0FBD34 7F0C7204 01ED5021 */ addu $t2, $t7, $t5 -/* 0FBD38 7F0C7208 01593021 */ addu $a2, $t2, $t9 -/* 0FBD3C 7F0C720C 00105983 */ sra $t3, $s0, 6 -/* 0FBD40 7F0C7210 316F001F */ andi $t7, $t3, 0x1f -/* 0FBD44 7F0C7214 0006C083 */ sra $t8, $a2, 2 -/* 0FBD48 7F0C7218 00086983 */ sra $t5, $t0, 6 -/* 0FBD4C 7F0C721C 31AC001F */ andi $t4, $t5, 0x1f -/* 0FBD50 7F0C7220 3306001F */ andi $a2, $t8, 0x1f -/* 0FBD54 7F0C7224 0009C983 */ sra $t9, $t1, 6 -/* 0FBD58 7F0C7228 3338001F */ andi $t8, $t9, 0x1f -/* 0FBD5C 7F0C722C 01EC5021 */ addu $t2, $t7, $t4 -/* 0FBD60 7F0C7230 00025983 */ sra $t3, $v0, 6 -/* 0FBD64 7F0C7234 316D001F */ andi $t5, $t3, 0x1f -/* 0FBD68 7F0C7238 01587021 */ addu $t6, $t2, $t8 -/* 0FBD6C 7F0C723C 01CD3821 */ addu $a3, $t6, $t5 -/* 0FBD70 7F0C7240 0010C843 */ sra $t9, $s0, 1 -/* 0FBD74 7F0C7244 332A001F */ andi $t2, $t9, 0x1f -/* 0FBD78 7F0C7248 00077883 */ sra $t7, $a3, 2 -/* 0FBD7C 7F0C724C 0008C043 */ sra $t8, $t0, 1 -/* 0FBD80 7F0C7250 330B001F */ andi $t3, $t8, 0x1f -/* 0FBD84 7F0C7254 31E7001F */ andi $a3, $t7, 0x1f -/* 0FBD88 7F0C7258 00096843 */ sra $t5, $t1, 1 -/* 0FBD8C 7F0C725C 31AF001F */ andi $t7, $t5, 0x1f -/* 0FBD90 7F0C7260 014B7021 */ addu $t6, $t2, $t3 -/* 0FBD94 7F0C7264 0002C843 */ sra $t9, $v0, 1 -/* 0FBD98 7F0C7268 3338001F */ andi $t8, $t9, 0x1f -/* 0FBD9C 7F0C726C 01CF6021 */ addu $t4, $t6, $t7 -/* 0FBDA0 7F0C7270 01985021 */ addu $t2, $t4, $t8 -/* 0FBDA4 7F0C7274 000A5883 */ sra $t3, $t2, 2 -/* 0FBDA8 7F0C7278 310F0001 */ andi $t7, $t0, 1 -/* 0FBDAC 7F0C727C 320E0001 */ andi $t6, $s0, 1 -/* 0FBDB0 7F0C7280 01CFC821 */ addu $t9, $t6, $t7 -/* 0FBDB4 7F0C7284 316D001F */ andi $t5, $t3, 0x1f -/* 0FBDB8 7F0C7288 312C0001 */ andi $t4, $t1, 1 -/* 0FBDBC 7F0C728C 032CC021 */ addu $t8, $t9, $t4 -/* 0FBDC0 7F0C7290 304A0001 */ andi $t2, $v0, 1 -/* 0FBDC4 7F0C7294 030A5821 */ addu $t3, $t8, $t2 -/* 0FBDC8 7F0C7298 AFAD0010 */ sw $t5, 0x10($sp) -/* 0FBDCC 7F0C729C 256D0002 */ addiu $t5, $t3, 2 -/* 0FBDD0 7F0C72A0 000D7083 */ sra $t6, $t5, 2 -/* 0FBDD4 7F0C72A4 31CF0001 */ andi $t7, $t6, 1 -/* 0FBDD8 7F0C72A8 AFAF0014 */ sw $t7, 0x14($sp) -/* 0FBDDC 7F0C72AC 02E02825 */ move $a1, $s7 -/* 0FBDE0 7F0C72B0 0FC31DEB */ jal sub_GAME_7F0C77AC -/* 0FBDE4 7F0C72B4 02602025 */ move $a0, $s3 -/* 0FBDE8 7F0C72B8 8FB90074 */ lw $t9, 0x74($sp) -/* 0FBDEC 7F0C72BC 00116083 */ sra $t4, $s1, 2 -/* 0FBDF0 7F0C72C0 26260002 */ addiu $a2, $s1, 2 -/* 0FBDF4 7F0C72C4 00025100 */ sll $t2, $v0, 4 -/* 0FBDF8 7F0C72C8 00065843 */ sra $t3, $a2, 1 -/* 0FBDFC 7F0C72CC 032C9021 */ addu $s2, $t9, $t4 -/* 0FBE00 7F0C72D0 A24A0000 */ sb $t2, ($s2) -/* 0FBE04 7F0C72D4 01756821 */ addu $t5, $t3, $s5 -/* 0FBE08 7F0C72D8 91A40000 */ lbu $a0, ($t5) -/* 0FBE0C 7F0C72DC 26380003 */ addiu $t8, $s1, 3 -/* 0FBE10 7F0C72E0 031E282A */ slt $a1, $t8, $fp -/* 0FBE14 7F0C72E4 00047103 */ sra $t6, $a0, 4 -/* 0FBE18 7F0C72E8 31CF000F */ andi $t7, $t6, 0xf -/* 0FBE1C 7F0C72EC 000FC840 */ sll $t9, $t7, 1 -/* 0FBE20 7F0C72F0 02796021 */ addu $t4, $s3, $t9 -/* 0FBE24 7F0C72F4 85900000 */ lh $s0, ($t4) -/* 0FBE28 7F0C72F8 10A00003 */ beqz $a1, .L7F0C7308 -/* 0FBE2C 7F0C72FC 01603025 */ move $a2, $t3 -/* 0FBE30 7F0C7300 10000002 */ b .L7F0C730C -/* 0FBE34 7F0C7304 00001825 */ move $v1, $zero -.L7F0C7308: -/* 0FBE38 7F0C7308 24030004 */ li $v1, 4 -.L7F0C730C: -/* 0FBE3C 7F0C730C 00D67821 */ addu $t7, $a2, $s6 -/* 0FBE40 7F0C7310 01F5C821 */ addu $t9, $t7, $s5 -/* 0FBE44 7F0C7314 932C0000 */ lbu $t4, ($t9) -/* 0FBE48 7F0C7318 00645007 */ srav $t2, $a0, $v1 -/* 0FBE4C 7F0C731C 314B000F */ andi $t3, $t2, 0xf -/* 0FBE50 7F0C7320 000B6840 */ sll $t5, $t3, 1 -/* 0FBE54 7F0C7324 000CC103 */ sra $t8, $t4, 4 -/* 0FBE58 7F0C7328 330A000F */ andi $t2, $t8, 0xf -/* 0FBE5C 7F0C732C 026D7021 */ addu $t6, $s3, $t5 -/* 0FBE60 7F0C7330 000A5840 */ sll $t3, $t2, 1 -/* 0FBE64 7F0C7334 026B6821 */ addu $t5, $s3, $t3 -/* 0FBE68 7F0C7338 85C80000 */ lh $t0, ($t6) -/* 0FBE6C 7F0C733C 10A00003 */ beqz $a1, .L7F0C734C -/* 0FBE70 7F0C7340 85A90000 */ lh $t1, ($t5) -/* 0FBE74 7F0C7344 10000002 */ b .L7F0C7350 -/* 0FBE78 7F0C7348 00001825 */ move $v1, $zero -.L7F0C734C: -/* 0FBE7C 7F0C734C 24030004 */ li $v1, 4 -.L7F0C7350: -/* 0FBE80 7F0C7350 02867021 */ addu $t6, $s4, $a2 -/* 0FBE84 7F0C7354 91CF0000 */ lbu $t7, ($t6) -/* 0FBE88 7F0C7358 00105AC3 */ sra $t3, $s0, 0xb -/* 0FBE8C 7F0C735C 316D001F */ andi $t5, $t3, 0x1f -/* 0FBE90 7F0C7360 006FC807 */ srav $t9, $t7, $v1 -/* 0FBE94 7F0C7364 332C000F */ andi $t4, $t9, 0xf -/* 0FBE98 7F0C7368 000CC040 */ sll $t8, $t4, 1 -/* 0FBE9C 7F0C736C 02785021 */ addu $t2, $s3, $t8 -/* 0FBEA0 7F0C7370 85420000 */ lh $v0, ($t2) -/* 0FBEA4 7F0C7374 000872C3 */ sra $t6, $t0, 0xb -/* 0FBEA8 7F0C7378 31CF001F */ andi $t7, $t6, 0x1f -/* 0FBEAC 7F0C737C 000962C3 */ sra $t4, $t1, 0xb -/* 0FBEB0 7F0C7380 3198001F */ andi $t8, $t4, 0x1f -/* 0FBEB4 7F0C7384 01AFC821 */ addu $t9, $t5, $t7 -/* 0FBEB8 7F0C7388 00025AC3 */ sra $t3, $v0, 0xb -/* 0FBEBC 7F0C738C 316E001F */ andi $t6, $t3, 0x1f -/* 0FBEC0 7F0C7390 03385021 */ addu $t2, $t9, $t8 -/* 0FBEC4 7F0C7394 014E3021 */ addu $a2, $t2, $t6 -/* 0FBEC8 7F0C7398 00106183 */ sra $t4, $s0, 6 -/* 0FBECC 7F0C739C 3199001F */ andi $t9, $t4, 0x1f -/* 0FBED0 7F0C73A0 00066883 */ sra $t5, $a2, 2 -/* 0FBED4 7F0C73A4 0008C183 */ sra $t8, $t0, 6 -/* 0FBED8 7F0C73A8 330B001F */ andi $t3, $t8, 0x1f -/* 0FBEDC 7F0C73AC 31A6001F */ andi $a2, $t5, 0x1f -/* 0FBEE0 7F0C73B0 00097183 */ sra $t6, $t1, 6 -/* 0FBEE4 7F0C73B4 31CD001F */ andi $t5, $t6, 0x1f -/* 0FBEE8 7F0C73B8 032B5021 */ addu $t2, $t9, $t3 -/* 0FBEEC 7F0C73BC 00026183 */ sra $t4, $v0, 6 -/* 0FBEF0 7F0C73C0 3198001F */ andi $t8, $t4, 0x1f -/* 0FBEF4 7F0C73C4 014D7821 */ addu $t7, $t2, $t5 -/* 0FBEF8 7F0C73C8 01F83821 */ addu $a3, $t7, $t8 -/* 0FBEFC 7F0C73CC 00107043 */ sra $t6, $s0, 1 -/* 0FBF00 7F0C73D0 31CA001F */ andi $t2, $t6, 0x1f -/* 0FBF04 7F0C73D4 0007C883 */ sra $t9, $a3, 2 -/* 0FBF08 7F0C73D8 00086843 */ sra $t5, $t0, 1 -/* 0FBF0C 7F0C73DC 31AC001F */ andi $t4, $t5, 0x1f -/* 0FBF10 7F0C73E0 3327001F */ andi $a3, $t9, 0x1f -/* 0FBF14 7F0C73E4 0009C043 */ sra $t8, $t1, 1 -/* 0FBF18 7F0C73E8 3319001F */ andi $t9, $t8, 0x1f -/* 0FBF1C 7F0C73EC 014C7821 */ addu $t7, $t2, $t4 -/* 0FBF20 7F0C73F0 00027043 */ sra $t6, $v0, 1 -/* 0FBF24 7F0C73F4 31CD001F */ andi $t5, $t6, 0x1f -/* 0FBF28 7F0C73F8 01F95821 */ addu $t3, $t7, $t9 -/* 0FBF2C 7F0C73FC 016D5021 */ addu $t2, $t3, $t5 -/* 0FBF30 7F0C7400 000A6083 */ sra $t4, $t2, 2 -/* 0FBF34 7F0C7404 31190001 */ andi $t9, $t0, 1 -/* 0FBF38 7F0C7408 320F0001 */ andi $t7, $s0, 1 -/* 0FBF3C 7F0C740C 01F97021 */ addu $t6, $t7, $t9 -/* 0FBF40 7F0C7410 3198001F */ andi $t8, $t4, 0x1f -/* 0FBF44 7F0C7414 312B0001 */ andi $t3, $t1, 1 -/* 0FBF48 7F0C7418 01CB6821 */ addu $t5, $t6, $t3 -/* 0FBF4C 7F0C741C 304A0001 */ andi $t2, $v0, 1 -/* 0FBF50 7F0C7420 01AA6021 */ addu $t4, $t5, $t2 -/* 0FBF54 7F0C7424 AFB80010 */ sw $t8, 0x10($sp) -/* 0FBF58 7F0C7428 25980002 */ addiu $t8, $t4, 2 -/* 0FBF5C 7F0C742C 00187883 */ sra $t7, $t8, 2 -/* 0FBF60 7F0C7430 31F90001 */ andi $t9, $t7, 1 -/* 0FBF64 7F0C7434 AFB90014 */ sw $t9, 0x14($sp) -/* 0FBF68 7F0C7438 02602025 */ move $a0, $s3 -/* 0FBF6C 7F0C743C 0FC31DEB */ jal sub_GAME_7F0C77AC -/* 0FBF70 7F0C7440 02E02825 */ move $a1, $s7 -/* 0FBF74 7F0C7444 924E0000 */ lbu $t6, ($s2) -/* 0FBF78 7F0C7448 26310004 */ addiu $s1, $s1, 4 -/* 0FBF7C 7F0C744C 01C26825 */ or $t5, $t6, $v0 -/* 0FBF80 7F0C7450 A24D0000 */ sb $t5, ($s2) -/* 0FBF84 7F0C7454 8FAA009C */ lw $t2, 0x9c($sp) -/* 0FBF88 7F0C7458 022A082A */ slt $at, $s1, $t2 -/* 0FBF8C 7F0C745C 5420FF3B */ bnezl $at, .L7F0C714C -/* 0FBF90 7F0C7460 00112843 */ sra $a1, $s1, 1 -.L7F0C7464: -/* 0FBF94 7F0C7464 8FAE00A0 */ lw $t6, 0xa0($sp) -/* 0FBF98 7F0C7468 8FAD00B4 */ lw $t5, 0xb4($sp) -/* 0FBF9C 7F0C746C 8FAC0074 */ lw $t4, 0x74($sp) -/* 0FBFA0 7F0C7470 8FB8004C */ lw $t8, 0x4c($sp) -/* 0FBFA4 7F0C7474 8FB9009C */ lw $t9, 0x9c($sp) -/* 0FBFA8 7F0C7478 25CB0002 */ addiu $t3, $t6, 2 -/* 0FBFAC 7F0C747C 016D082A */ slt $at, $t3, $t5 -/* 0FBFB0 7F0C7480 01987821 */ addu $t7, $t4, $t8 -/* 0FBFB4 7F0C7484 AFAB00A0 */ sw $t3, 0xa0($sp) -/* 0FBFB8 7F0C7488 AFAF0074 */ sw $t7, 0x74($sp) -/* 0FBFBC 7F0C748C 1420FF20 */ bnez $at, .L7F0C7110 -/* 0FBFC0 7F0C7490 02B9A821 */ addu $s5, $s5, $t9 -.L7F0C7494: -/* 0FBFC4 7F0C7494 8FAA0098 */ lw $t2, 0x98($sp) -/* 0FBFC8 7F0C7498 8FB80094 */ lw $t8, 0x94($sp) -/* 0FBFCC 7F0C749C 000A6043 */ sra $t4, $t2, 1 -/* 0FBFD0 7F0C74A0 01980019 */ multu $t4, $t8 -/* 0FBFD4 7F0C74A4 00001012 */ mflo $v0 -/* 0FBFD8 7F0C74A8 100000B5 */ b .L7F0C7780 -/* 0FBFDC 7F0C74AC 8FBF0044 */ lw $ra, 0x44($sp) -.L7F0C74B0: -/* 0FBFE0 7F0C74B0 8FAF00B4 */ lw $t7, 0xb4($sp) -/* 0FBFE4 7F0C74B4 8FB90098 */ lw $t9, 0x98($sp) -/* 0FBFE8 7F0C74B8 AFA000A0 */ sw $zero, 0xa0($sp) -/* 0FBFEC 7F0C74BC 19E000A8 */ blez $t7, .L7F0C7760 -/* 0FBFF0 7F0C74C0 00197043 */ sra $t6, $t9, 1 -/* 0FBFF4 7F0C74C4 AFAE004C */ sw $t6, 0x4c($sp) -/* 0FBFF8 7F0C74C8 8FB700C0 */ lw $s7, 0xc0($sp) -/* 0FBFFC 7F0C74CC 8FB300BC */ lw $s3, 0xbc($sp) -.L7F0C74D0: -/* 0FC000 7F0C74D0 8FAD00A0 */ lw $t5, 0xa0($sp) -/* 0FC004 7F0C74D4 8FAB00B4 */ lw $t3, 0xb4($sp) -/* 0FC008 7F0C74D8 00008825 */ move $s1, $zero -/* 0FC00C 7F0C74DC 25AA0001 */ addiu $t2, $t5, 1 -/* 0FC010 7F0C74E0 014B082A */ slt $at, $t2, $t3 -/* 0FC014 7F0C74E4 10200005 */ beqz $at, .L7F0C74FC -/* 0FC018 7F0C74E8 8FB8009C */ lw $t8, 0x9c($sp) -/* 0FC01C 7F0C74EC 8FB6009C */ lw $s6, 0x9c($sp) -/* 0FC020 7F0C74F0 00166043 */ sra $t4, $s6, 1 -/* 0FC024 7F0C74F4 10000002 */ b .L7F0C7500 -/* 0FC028 7F0C74F8 0180B025 */ move $s6, $t4 -.L7F0C74FC: -/* 0FC02C 7F0C74FC 0000B025 */ move $s6, $zero -.L7F0C7500: -/* 0FC030 7F0C7500 1B00008B */ blez $t8, .L7F0C7730 -/* 0FC034 7F0C7504 00112843 */ sra $a1, $s1, 1 -.L7F0C7508: -/* 0FC038 7F0C7508 00B57821 */ addu $t7, $a1, $s5 -/* 0FC03C 7F0C750C 91E20000 */ lbu $v0, ($t7) -/* 0FC040 7F0C7510 262A0001 */ addiu $t2, $s1, 1 -/* 0FC044 7F0C7514 015E202A */ slt $a0, $t2, $fp -/* 0FC048 7F0C7518 0002C903 */ sra $t9, $v0, 4 -/* 0FC04C 7F0C751C 332E000F */ andi $t6, $t9, 0xf -/* 0FC050 7F0C7520 000E6840 */ sll $t5, $t6, 1 -/* 0FC054 7F0C7524 026D5821 */ addu $t3, $s3, $t5 -/* 0FC058 7F0C7528 00826007 */ srav $t4, $v0, $a0 -/* 0FC05C 7F0C752C 11800003 */ beqz $t4, .L7F0C753C -/* 0FC060 7F0C7530 85700000 */ lh $s0, ($t3) -/* 0FC064 7F0C7534 10000002 */ b .L7F0C7540 -/* 0FC068 7F0C7538 00001825 */ move $v1, $zero -.L7F0C753C: -/* 0FC06C 7F0C753C 24030004 */ li $v1, 4 -.L7F0C7540: -/* 0FC070 7F0C7540 00B67021 */ addu $t6, $a1, $s6 -/* 0FC074 7F0C7544 01D56821 */ addu $t5, $t6, $s5 -/* 0FC078 7F0C7548 91A20000 */ lbu $v0, ($t5) -/* 0FC07C 7F0C754C 3078000F */ andi $t8, $v1, 0xf -/* 0FC080 7F0C7550 00187840 */ sll $t7, $t8, 1 -/* 0FC084 7F0C7554 00025903 */ sra $t3, $v0, 4 -/* 0FC088 7F0C7558 316A000F */ andi $t2, $t3, 0xf -/* 0FC08C 7F0C755C 026FC821 */ addu $t9, $s3, $t7 -/* 0FC090 7F0C7560 000A6040 */ sll $t4, $t2, 1 -/* 0FC094 7F0C7564 026CC021 */ addu $t8, $s3, $t4 -/* 0FC098 7F0C7568 00827807 */ srav $t7, $v0, $a0 -/* 0FC09C 7F0C756C 87280000 */ lh $t0, ($t9) -/* 0FC0A0 7F0C7570 11E00003 */ beqz $t7, .L7F0C7580 -/* 0FC0A4 7F0C7574 87090000 */ lh $t1, ($t8) -/* 0FC0A8 7F0C7578 10000002 */ b .L7F0C7584 -/* 0FC0AC 7F0C757C 00001825 */ move $v1, $zero -.L7F0C7580: -/* 0FC0B0 7F0C7580 24030004 */ li $v1, 4 -.L7F0C7584: -/* 0FC0B4 7F0C7584 3079000F */ andi $t9, $v1, 0xf -/* 0FC0B8 7F0C7588 00197040 */ sll $t6, $t9, 1 -/* 0FC0BC 7F0C758C 026E6821 */ addu $t5, $s3, $t6 -/* 0FC0C0 7F0C7590 85A20000 */ lh $v0, ($t5) -/* 0FC0C4 7F0C7594 00105A03 */ sra $t3, $s0, 8 -/* 0FC0C8 7F0C7598 00086203 */ sra $t4, $t0, 8 -/* 0FC0CC 7F0C759C 319800FF */ andi $t8, $t4, 0xff -/* 0FC0D0 7F0C75A0 316A00FF */ andi $t2, $t3, 0xff -/* 0FC0D4 7F0C75A4 0009CA03 */ sra $t9, $t1, 8 -/* 0FC0D8 7F0C75A8 332E00FF */ andi $t6, $t9, 0xff -/* 0FC0DC 7F0C75AC 01587821 */ addu $t7, $t2, $t8 -/* 0FC0E0 7F0C75B0 01EE6821 */ addu $t5, $t7, $t6 -/* 0FC0E4 7F0C75B4 00025A03 */ sra $t3, $v0, 8 -/* 0FC0E8 7F0C75B8 316C00FF */ andi $t4, $t3, 0xff -/* 0FC0EC 7F0C75BC 01AC3021 */ addu $a2, $t5, $t4 -/* 0FC0F0 7F0C75C0 310F00FF */ andi $t7, $t0, 0xff -/* 0FC0F4 7F0C75C4 321900FF */ andi $t9, $s0, 0xff -/* 0FC0F8 7F0C75C8 032F7021 */ addu $t6, $t9, $t7 -/* 0FC0FC 7F0C75CC 312B00FF */ andi $t3, $t1, 0xff -/* 0FC100 7F0C75D0 01CB6821 */ addu $t5, $t6, $t3 -/* 0FC104 7F0C75D4 304C00FF */ andi $t4, $v0, 0xff -/* 0FC108 7F0C75D8 01AC3821 */ addu $a3, $t5, $t4 -/* 0FC10C 7F0C75DC 00065083 */ sra $t2, $a2, 2 -/* 0FC110 7F0C75E0 314600FF */ andi $a2, $t2, 0xff -/* 0FC114 7F0C75E4 24E70001 */ addiu $a3, $a3, 1 -/* 0FC118 7F0C75E8 00075083 */ sra $t2, $a3, 2 -/* 0FC11C 7F0C75EC 314700FF */ andi $a3, $t2, 0xff -/* 0FC120 7F0C75F0 02602025 */ move $a0, $s3 -/* 0FC124 7F0C75F4 0FC31EF6 */ jal sub_GAME_7F0C7BD8 -/* 0FC128 7F0C75F8 02E02825 */ move $a1, $s7 -/* 0FC12C 7F0C75FC 8FB90074 */ lw $t9, 0x74($sp) -/* 0FC130 7F0C7600 00117883 */ sra $t7, $s1, 2 -/* 0FC134 7F0C7604 26260002 */ addiu $a2, $s1, 2 -/* 0FC138 7F0C7608 00025900 */ sll $t3, $v0, 4 -/* 0FC13C 7F0C760C 00066843 */ sra $t5, $a2, 1 -/* 0FC140 7F0C7610 032F9021 */ addu $s2, $t9, $t7 -/* 0FC144 7F0C7614 A24B0000 */ sb $t3, ($s2) -/* 0FC148 7F0C7618 01B56021 */ addu $t4, $t5, $s5 -/* 0FC14C 7F0C761C 91840000 */ lbu $a0, ($t4) -/* 0FC150 7F0C7620 262E0003 */ addiu $t6, $s1, 3 -/* 0FC154 7F0C7624 01DE282A */ slt $a1, $t6, $fp -/* 0FC158 7F0C7628 00045103 */ sra $t2, $a0, 4 -/* 0FC15C 7F0C762C 3158000F */ andi $t8, $t2, 0xf -/* 0FC160 7F0C7630 0018C840 */ sll $t9, $t8, 1 -/* 0FC164 7F0C7634 02797821 */ addu $t7, $s3, $t9 -/* 0FC168 7F0C7638 00A45807 */ srav $t3, $a0, $a1 -/* 0FC16C 7F0C763C 85F00000 */ lh $s0, ($t7) -/* 0FC170 7F0C7640 11600003 */ beqz $t3, .L7F0C7650 -/* 0FC174 7F0C7644 01A03025 */ move $a2, $t5 -/* 0FC178 7F0C7648 10000002 */ b .L7F0C7654 -/* 0FC17C 7F0C764C 00001825 */ move $v1, $zero -.L7F0C7650: -/* 0FC180 7F0C7650 24030004 */ li $v1, 4 -.L7F0C7654: -/* 0FC184 7F0C7654 00D6C021 */ addu $t8, $a2, $s6 -/* 0FC188 7F0C7658 0315C821 */ addu $t9, $t8, $s5 -/* 0FC18C 7F0C765C 93220000 */ lbu $v0, ($t9) -/* 0FC190 7F0C7660 306D000F */ andi $t5, $v1, 0xf -/* 0FC194 7F0C7664 000D6040 */ sll $t4, $t5, 1 -/* 0FC198 7F0C7668 00027903 */ sra $t7, $v0, 4 -/* 0FC19C 7F0C766C 31EE000F */ andi $t6, $t7, 0xf -/* 0FC1A0 7F0C7670 026C5021 */ addu $t2, $s3, $t4 -/* 0FC1A4 7F0C7674 000E5840 */ sll $t3, $t6, 1 -/* 0FC1A8 7F0C7678 026B6821 */ addu $t5, $s3, $t3 -/* 0FC1AC 7F0C767C 00A26007 */ srav $t4, $v0, $a1 -/* 0FC1B0 7F0C7680 85480000 */ lh $t0, ($t2) -/* 0FC1B4 7F0C7684 11800003 */ beqz $t4, .L7F0C7694 -/* 0FC1B8 7F0C7688 85A90000 */ lh $t1, ($t5) -/* 0FC1BC 7F0C768C 10000002 */ b .L7F0C7698 -/* 0FC1C0 7F0C7690 00001825 */ move $v1, $zero -.L7F0C7694: -/* 0FC1C4 7F0C7694 24030004 */ li $v1, 4 -.L7F0C7698: -/* 0FC1C8 7F0C7698 306A000F */ andi $t2, $v1, 0xf -/* 0FC1CC 7F0C769C 000AC040 */ sll $t8, $t2, 1 -/* 0FC1D0 7F0C76A0 0278C821 */ addu $t9, $s3, $t8 -/* 0FC1D4 7F0C76A4 87220000 */ lh $v0, ($t9) -/* 0FC1D8 7F0C76A8 00107A03 */ sra $t7, $s0, 8 -/* 0FC1DC 7F0C76AC 00085A03 */ sra $t3, $t0, 8 -/* 0FC1E0 7F0C76B0 316D00FF */ andi $t5, $t3, 0xff -/* 0FC1E4 7F0C76B4 31EE00FF */ andi $t6, $t7, 0xff -/* 0FC1E8 7F0C76B8 00095203 */ sra $t2, $t1, 8 -/* 0FC1EC 7F0C76BC 315800FF */ andi $t8, $t2, 0xff -/* 0FC1F0 7F0C76C0 01CD6021 */ addu $t4, $t6, $t5 -/* 0FC1F4 7F0C76C4 0198C821 */ addu $t9, $t4, $t8 -/* 0FC1F8 7F0C76C8 00027A03 */ sra $t7, $v0, 8 -/* 0FC1FC 7F0C76CC 31EB00FF */ andi $t3, $t7, 0xff -/* 0FC200 7F0C76D0 032B3021 */ addu $a2, $t9, $t3 -/* 0FC204 7F0C76D4 310C00FF */ andi $t4, $t0, 0xff -/* 0FC208 7F0C76D8 320A00FF */ andi $t2, $s0, 0xff -/* 0FC20C 7F0C76DC 014CC021 */ addu $t8, $t2, $t4 -/* 0FC210 7F0C76E0 312F00FF */ andi $t7, $t1, 0xff -/* 0FC214 7F0C76E4 030FC821 */ addu $t9, $t8, $t7 -/* 0FC218 7F0C76E8 304B00FF */ andi $t3, $v0, 0xff -/* 0FC21C 7F0C76EC 032B3821 */ addu $a3, $t9, $t3 -/* 0FC220 7F0C76F0 00067083 */ sra $t6, $a2, 2 -/* 0FC224 7F0C76F4 31C600FF */ andi $a2, $t6, 0xff -/* 0FC228 7F0C76F8 24E70001 */ addiu $a3, $a3, 1 -/* 0FC22C 7F0C76FC 00077083 */ sra $t6, $a3, 2 -/* 0FC230 7F0C7700 31C700FF */ andi $a3, $t6, 0xff -/* 0FC234 7F0C7704 02602025 */ move $a0, $s3 -/* 0FC238 7F0C7708 0FC31EF6 */ jal sub_GAME_7F0C7BD8 -/* 0FC23C 7F0C770C 02E02825 */ move $a1, $s7 -/* 0FC240 7F0C7710 924A0000 */ lbu $t2, ($s2) -/* 0FC244 7F0C7714 26310004 */ addiu $s1, $s1, 4 -/* 0FC248 7F0C7718 0142C025 */ or $t8, $t2, $v0 -/* 0FC24C 7F0C771C A2580000 */ sb $t8, ($s2) -/* 0FC250 7F0C7720 8FAF009C */ lw $t7, 0x9c($sp) -/* 0FC254 7F0C7724 022F082A */ slt $at, $s1, $t7 -/* 0FC258 7F0C7728 5420FF77 */ bnezl $at, .L7F0C7508 -/* 0FC25C 7F0C772C 00112843 */ sra $a1, $s1, 1 -.L7F0C7730: -/* 0FC260 7F0C7730 8FAA00A0 */ lw $t2, 0xa0($sp) -/* 0FC264 7F0C7734 8FB800B4 */ lw $t8, 0xb4($sp) -/* 0FC268 7F0C7738 8FB90074 */ lw $t9, 0x74($sp) -/* 0FC26C 7F0C773C 8FAB004C */ lw $t3, 0x4c($sp) -/* 0FC270 7F0C7740 8FAD009C */ lw $t5, 0x9c($sp) -/* 0FC274 7F0C7744 254C0002 */ addiu $t4, $t2, 2 -/* 0FC278 7F0C7748 0198082A */ slt $at, $t4, $t8 -/* 0FC27C 7F0C774C 032B7021 */ addu $t6, $t9, $t3 -/* 0FC280 7F0C7750 AFAC00A0 */ sw $t4, 0xa0($sp) -/* 0FC284 7F0C7754 AFAE0074 */ sw $t6, 0x74($sp) -/* 0FC288 7F0C7758 1420FF5D */ bnez $at, .L7F0C74D0 -/* 0FC28C 7F0C775C 02ADA821 */ addu $s5, $s5, $t5 -.L7F0C7760: -/* 0FC290 7F0C7760 8FAF0098 */ lw $t7, 0x98($sp) -/* 0FC294 7F0C7764 8FAB0094 */ lw $t3, 0x94($sp) -/* 0FC298 7F0C7768 000FC843 */ sra $t9, $t7, 1 -/* 0FC29C 7F0C776C 032B0019 */ multu $t9, $t3 -/* 0FC2A0 7F0C7770 00001012 */ mflo $v0 -/* 0FC2A4 7F0C7774 10000002 */ b .L7F0C7780 -/* 0FC2A8 7F0C7778 8FBF0044 */ lw $ra, 0x44($sp) -.L7F0C777C: -/* 0FC2AC 7F0C777C 8FBF0044 */ lw $ra, 0x44($sp) -.L7F0C7780: -/* 0FC2B0 7F0C7780 8FB00020 */ lw $s0, 0x20($sp) -/* 0FC2B4 7F0C7784 8FB10024 */ lw $s1, 0x24($sp) -/* 0FC2B8 7F0C7788 8FB20028 */ lw $s2, 0x28($sp) -/* 0FC2BC 7F0C778C 8FB3002C */ lw $s3, 0x2c($sp) -/* 0FC2C0 7F0C7790 8FB40030 */ lw $s4, 0x30($sp) -/* 0FC2C4 7F0C7794 8FB50034 */ lw $s5, 0x34($sp) -/* 0FC2C8 7F0C7798 8FB60038 */ lw $s6, 0x38($sp) -/* 0FC2CC 7F0C779C 8FB7003C */ lw $s7, 0x3c($sp) -/* 0FC2D0 7F0C77A0 8FBE0040 */ lw $fp, 0x40($sp) -/* 0FC2D4 7F0C77A4 03E00008 */ jr $ra -/* 0FC2D8 7F0C77A8 27BD00A8 */ addiu $sp, $sp, 0xa8 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0C77AC(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C77AC +glabel texFindClosestColourIndexRGBA /* 0FC2DC 7F0C77AC 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0FC2E0 7F0C77B0 AFB2000C */ sw $s2, 0xc($sp) /* 0FC2E4 7F0C77B4 AFB10008 */ sw $s1, 8($sp) @@ -1638,13 +839,107 @@ glabel sub_GAME_7F0C77AC #ifdef NONMATCHING -void sub_GAME_7F0C7BD8(void) { +// 99.38% : regalloc problems +s32 texFindClosestColourIndexIA(u16 *palette, s32 numcolours, s32 intensity, s32 alpha) +{ + s32 loop_start; + s32 loop_end; + + // check palette for existing color + { + s32 i; + s32 colour; + colour = (intensity << 8) | alpha; + for (i = 0; i < numcolours; i++) + { + if (palette[i] == (colour & 0xFFFFU)) + { + return i; + } + } + } + + // binary search for a region + { + s32 low; + s32 colour; + s32 a; + s32 b; + s32 sum; + s32 index; + s32 value; + + low = 0; + loop_end = numcolours - 1; + colour = (intensity * intensity) + (alpha * alpha); + + while ((loop_end - low) >= 2) + { + index = (loop_end + low) >> 1; + value = palette[index]; + a = (((s32) value) >> 8) & 0xFF; + b = value & 0xFF; + sum = (a * a) + (b * b); + if (sum < colour) + { + low = index; + continue; + } + if (colour < sum) + { + loop_end = index; + } + else + { + low = index; + loop_end = index; + } + } + + loop_start = loop_end - 4; + if (loop_start < 0) { loop_start = 0; } + + loop_end += 4; + if (loop_end >= numcolours) { loop_end = numcolours - 1; } + } + + // search for best within the region + { + s32 bestindex; + s32 bestvalue; + s32 value; + s32 a; + s32 b; + u32 sum2; + s32 sum; + s32 index; + + bestindex = 0; + bestvalue = 999999; + + for (index = loop_start; index <= loop_end; index++) + { + value = palette[index]; + a = ((value >> 8) & 0xff) - intensity; + b = (value & 0xff) - alpha; + sum2 = (a * a) + (b * b); + sum = sum2; + if (sum < bestvalue) + { + bestindex = index; + bestvalue = sum; + } + } + + return bestindex; + } } + #else GLOBAL_ASM( .text -glabel sub_GAME_7F0C7BD8 +glabel texFindClosestColourIndexIA /* 0FC708 7F0C7BD8 27BDFFF0 */ addiu $sp, $sp, -0x10 /* 0FC70C 7F0C7BDC AFB1000C */ sw $s1, 0xc($sp) /* 0FC710 7F0C7BE0 AFB00008 */ sw $s0, 8($sp) @@ -1806,2013 +1101,747 @@ glabel sub_GAME_7F0C7BD8 #endif +/** + * Inflate images (levels of detail) from a non-zlib texture. + * + * Each image can have a different compression method and pixel format, + * which is described in a three byte header per image: + * + * ffffwwww wwwwhhhh hhhhcccc + * + * f = pixel format (see TEXFORMAT constants) + * w = width in pixels + * h = height in pixels + * c = compression method (see TEXCOMPMETHOD constants) + */ +s32 texInflateNonZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct texpool *arg4) +{ + u8 scratch[0x2000]; + u8 lookup[0x1000]; + u32 stack; + s32 i; + s32 numimages; + s32 width; + s32 height; + s32 compmethod; + s32 j; + s32 totalbytesout = 0; + s32 imagebytesout; + s32 format; + s32 value; + u8 *start; + u8 *end; + s32 writetocache = FALSE; + texSetBitstring(src); + numimages = arg2 && forcenumimages ? forcenumimages : 1; -#ifdef NONMATCHING -void process_huffman_compressed_images(void) { + arg4->rightpos->maxlod = forcenumimages; + arg4->rightpos->unk0c_02 = arg2; + if (arg2) + { + writetocache = TRUE; + + for (i = 0; i < g_TexCacheCount; i++) + { + if (g_TexCacheItems[i].texturenum == arg4->rightpos->texturenum) + { + writetocache = FALSE; + } + } + } + + for (i = 0; i < numimages; i++) + { + format = texReadBits(4); + width = texReadBits(8); + height = texReadBits(8); + compmethod = texReadBits(4); + + if (i == 0) + { + arg4->rightpos->width = width; + arg4->rightpos->height = height; + arg4->rightpos->gbiformat = g_TexFormatGbiMappings[format]; + arg4->rightpos->depth = g_TexFormatDepths[format]; + arg4->rightpos->lutmodeindex = g_TexFormatLutModes[format] >> G_MDSFT_TEXTLUT; + } + else if (writetocache) + { + g_TexCacheItems[g_TexCacheCount].widths[i - 1] = width; + g_TexCacheItems[g_TexCacheCount].heights[i - 1] = height; + } + + if (width * height > 0x2000) + { + return 0; + } + + switch (compmethod) + { + case TEXCOMPMETHOD_UNCOMPRESSED0: + case TEXCOMPMETHOD_UNCOMPRESSED1: + imagebytesout = texReadUncompressed(&dst[totalbytesout], width, height, format); + break; + + case TEXCOMPMETHOD_HUFFMAN: + texInflateHuffman(scratch, g_TexFormatNumChannels[format] * width * height, g_TexFormatChannelSizes[format]); + + if (g_TexFormatHas1BitAlpha[format]) + { + texReadAlphaBits(&scratch[width * height * 3], width * height); + } + + imagebytesout = texChannelsToPixels(scratch, width, height, &dst[totalbytesout], format); + break; + + case TEXCOMPMETHOD_HUFFMANPERHCHANNEL: + for (j = 0; j < g_TexFormatNumChannels[format]; j++) + { + if (1); + texInflateHuffman(&scratch[width * height * j], width * height, g_TexFormatChannelSizes[format]); + } + + if (g_TexFormatHas1BitAlpha[format]) + { + texReadAlphaBits(&scratch[width * height * 3], width * height); + } + + imagebytesout = texChannelsToPixels(scratch, width, height, &dst[totalbytesout], format); + break; + + case TEXCOMPMETHOD_RLE: + texInflateRle(scratch, g_TexFormatNumChannels[format] * width * height); + + if (g_TexFormatHas1BitAlpha[format]) + { + texReadAlphaBits(&scratch[width * height * 3], width * height); + } + + imagebytesout = texChannelsToPixels(scratch, width, height, &dst[totalbytesout], format); + break; + + case TEXCOMPMETHOD_LOOKUP: + value = texBuildLookup(lookup, g_TexFormatBitsPerPixel[format]); + imagebytesout = texInflateLookup(width, height, &dst[totalbytesout], lookup, value, format); + break; + + case TEXCOMPMETHOD_HUFFMANLOOKUP: + value = texBuildLookup(lookup, g_TexFormatBitsPerPixel[format]); + texInflateHuffman(scratch, width * height, value); + imagebytesout = texInflateLookupFromBuffer(scratch, width, height, &dst[totalbytesout], lookup, value, format); + break; + + case TEXCOMPMETHOD_RLELOOKUP: + value = texBuildLookup(lookup, g_TexFormatBitsPerPixel[format]); + texInflateRle(scratch, width * height); + imagebytesout = texInflateLookupFromBuffer(scratch, width, height, &dst[totalbytesout], lookup, value, format); + break; + + case TEXCOMPMETHOD_HUFFMANBLUR: + stack = texReadBits(3); + texInflateHuffman(scratch, g_TexFormatNumChannels[format] * width * height, g_TexFormatChannelSizes[format]); + texBlur(scratch, width, g_TexFormatNumChannels[format] * height, stack, g_TexFormatChannelSizes[format]); + + if (g_TexFormatHas1BitAlpha[format]) + { + texReadAlphaBits(&scratch[width * height * 3], width * height); + } + + imagebytesout = texChannelsToPixels(scratch, width, height, &dst[totalbytesout], format); + break; + + case TEXCOMPMETHOD_RLEBLUR: + stack = texReadBits(3); + texInflateRle(scratch, g_TexFormatNumChannels[format] * width * height); + texBlur(scratch, width, g_TexFormatNumChannels[format] * height, stack, g_TexFormatChannelSizes[format]); + + if (g_TexFormatHas1BitAlpha[format]) + { + texReadAlphaBits(&scratch[width * height * 3], width * height); + } + + imagebytesout = texChannelsToPixels(scratch, width, height, &dst[totalbytesout], format); + break; + + default: + while (TRUE) + { + // Hang forever! + }; + } + + if (arg2 == 1 && forcenumimages > 0) + { + texSwapAltRowBytes(&dst[totalbytesout], width, height, format); + } + + imagebytesout = (imagebytesout + 7) & ~7; + totalbytesout += imagebytesout; + + if (img_bitcount == 0) + { + img_curpos++; + } + else + { + img_bitcount = 0; + } + } + + if (writetocache) + { + g_TexCacheItems[g_TexCacheCount].texturenum = arg4->rightpos->texturenum; + + g_TexCacheCount++; + + // Resetting this variable to 0 here suggests that the g_TexCacheItems + // array is used in a circular manner, and that g_TexCacheCount is just + // the index of the oldest/next element. But earlier in this function + // there's a loop that iterates up to g_TexCacheCount, which doesn't + // make any sense if this value is used as a pointer in a circular list. + // Could be a @bug, or maybe they intended to reset the cache every time + // it fills up. + if (g_TexCacheCount >= ARRAYCOUNT(g_TexCacheItems)) + { + g_TexCacheCount = 0; + } + } + + if (!arg2) + { + if (forcenumimages >= 2) + { + s32 tmpwidth = width; + s32 tmpheight = height; + + start = dst; + end = &dst[totalbytesout]; + + for (i = 1; i < forcenumimages; i++) + { + imagebytesout = texShrinkNonPaletted(start, end, tmpwidth, tmpheight, format); + + texSwapAltRowBytes(start, tmpwidth, tmpheight, format); + + totalbytesout += imagebytesout; + + tmpwidth = (tmpwidth + 1) >> 1; + tmpheight = (tmpheight + 1) >> 1; + + start = end; + end += imagebytesout; + } + + texSwapAltRowBytes(start, tmpwidth, tmpheight, format); + } + else if (forcenumimages == 1) + { + texSwapAltRowBytes(dst, width, height, format); + } + } + + return totalbytesout; } -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BD30*/ -glabel jpt_8005BD30 -.word huffman_type0_1 -.word huffman_type0_1 -.word huffman_type2 -.word huffman_type3 -.word huffman_type4 -.word huffman_type5 -.word huffman_type6 -.word huffman_type7 -.word huffman_type8 -.word huffman_type9 -.text -glabel process_huffman_compressed_images -/* 0FC92C 7F0C7DFC 27BDCF58 */ addiu $sp, $sp, -0x30a8 -/* 0FC930 7F0C7E00 AFBF004C */ sw $ra, 0x4c($sp) -/* 0FC934 7F0C7E04 AFBE0048 */ sw $fp, 0x48($sp) -/* 0FC938 7F0C7E08 AFB70044 */ sw $s7, 0x44($sp) -/* 0FC93C 7F0C7E0C AFB60040 */ sw $s6, 0x40($sp) -/* 0FC940 7F0C7E10 AFB5003C */ sw $s5, 0x3c($sp) -/* 0FC944 7F0C7E14 AFB40038 */ sw $s4, 0x38($sp) -/* 0FC948 7F0C7E18 AFB30034 */ sw $s3, 0x34($sp) -/* 0FC94C 7F0C7E1C AFB20030 */ sw $s2, 0x30($sp) -/* 0FC950 7F0C7E20 AFB1002C */ sw $s1, 0x2c($sp) -/* 0FC954 7F0C7E24 AFB00028 */ sw $s0, 0x28($sp) -/* 0FC958 7F0C7E28 AFA530AC */ sw $a1, 0x30ac($sp) -/* 0FC95C 7F0C7E2C AFA630B0 */ sw $a2, 0x30b0($sp) -/* 0FC960 7F0C7E30 AFA730B4 */ sw $a3, 0x30b4($sp) -/* 0FC964 7F0C7E34 AFA00088 */ sw $zero, 0x88($sp) -/* 0FC968 7F0C7E38 0FC32FC4 */ jal makeemptyimageatpos -/* 0FC96C 7F0C7E3C AFA00070 */ sw $zero, 0x70($sp) -/* 0FC970 7F0C7E40 8FA930B0 */ lw $t1, 0x30b0($sp) -/* 0FC974 7F0C7E44 8FAA30B4 */ lw $t2, 0x30b4($sp) -/* 0FC978 7F0C7E48 240E0001 */ li $t6, 1 -/* 0FC97C 7F0C7E4C 11200005 */ beqz $t1, .L7F0C7E64 -/* 0FC980 7F0C7E50 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D090) -/* 0FC984 7F0C7E54 51400004 */ beql $t2, $zero, .L7F0C7E68 -/* 0FC988 7F0C7E58 8FAA30B4 */ lw $t2, 0x30b4($sp) -/* 0FC98C 7F0C7E5C 10000003 */ b .L7F0C7E6C -/* 0FC990 7F0C7E60 AFAA009C */ sw $t2, 0x9c($sp) -.L7F0C7E64: -/* 0FC994 7F0C7E64 8FAA30B4 */ lw $t2, 0x30b4($sp) -.L7F0C7E68: -/* 0FC998 7F0C7E68 AFAE009C */ sw $t6, 0x9c($sp) -.L7F0C7E6C: -/* 0FC99C 7F0C7E6C 8FA730B8 */ lw $a3, 0x30b8($sp) -/* 0FC9A0 7F0C7E70 000AC940 */ sll $t9, $t2, 5 -/* 0FC9A4 7F0C7E74 00097940 */ sll $t7, $t1, 5 -/* 0FC9A8 7F0C7E78 8CE3000C */ lw $v1, 0xc($a3) -/* 0FC9AC 7F0C7E7C 31F80020 */ andi $t8, $t7, 0x20 -/* 0FC9B0 7F0C7E80 2508D090 */ addiu $t0, %lo(dword_CODE_bss_8008D090) # addiu $t0, $t0, -0x2f70 -/* 0FC9B4 7F0C7E84 906B000B */ lbu $t3, 0xb($v1) -/* 0FC9B8 7F0C7E88 316CFF1F */ andi $t4, $t3, 0xff1f -/* 0FC9BC 7F0C7E8C 032C6825 */ or $t5, $t9, $t4 -/* 0FC9C0 7F0C7E90 A06D000B */ sb $t5, 0xb($v1) -/* 0FC9C4 7F0C7E94 8CE3000C */ lw $v1, 0xc($a3) -/* 0FC9C8 7F0C7E98 906B000C */ lbu $t3, 0xc($v1) -/* 0FC9CC 7F0C7E9C 3179FFDF */ andi $t9, $t3, 0xffdf -/* 0FC9D0 7F0C7EA0 03196025 */ or $t4, $t8, $t9 -/* 0FC9D4 7F0C7EA4 11200017 */ beqz $t1, .L7F0C7F04 -/* 0FC9D8 7F0C7EA8 A06C000C */ sb $t4, 0xc($v1) -/* 0FC9DC 7F0C7EAC 8D050000 */ lw $a1, ($t0) -/* 0FC9E0 7F0C7EB0 24060001 */ li $a2, 1 -/* 0FC9E4 7F0C7EB4 AFA60070 */ sw $a2, 0x70($sp) -/* 0FC9E8 7F0C7EB8 58A00013 */ blezl $a1, .L7F0C7F08 -/* 0FC9EC 7F0C7EBC 8FB9009C */ lw $t9, 0x9c($sp) -/* 0FC9F0 7F0C7EC0 8CED000C */ lw $t5, 0xc($a3) -/* 0FC9F4 7F0C7EC4 3C0F8009 */ lui $t7, %hi(word_CODE_bss_8008C730) -/* 0FC9F8 7F0C7EC8 25E2C730 */ addiu $v0, $t7, %lo(word_CODE_bss_8008C730) -/* 0FC9FC 7F0C7ECC 8DA30000 */ lw $v1, ($t5) -/* 0FCA00 7F0C7ED0 00055900 */ sll $t3, $a1, 4 -/* 0FCA04 7F0C7ED4 01622021 */ addu $a0, $t3, $v0 -/* 0FCA08 7F0C7ED8 00037502 */ srl $t6, $v1, 0x14 -/* 0FCA0C 7F0C7EDC 01C01825 */ move $v1, $t6 -/* 0FCA10 7F0C7EE0 84580000 */ lh $t8, ($v0) -.L7F0C7EE4: -/* 0FCA14 7F0C7EE4 24420010 */ addiu $v0, $v0, 0x10 -/* 0FCA18 7F0C7EE8 0044082B */ sltu $at, $v0, $a0 -/* 0FCA1C 7F0C7EEC 14780002 */ bne $v1, $t8, .L7F0C7EF8 -/* 0FCA20 7F0C7EF0 00000000 */ nop -/* 0FCA24 7F0C7EF4 00003025 */ move $a2, $zero -.L7F0C7EF8: -/* 0FCA28 7F0C7EF8 5420FFFA */ bnezl $at, .L7F0C7EE4 -/* 0FCA2C 7F0C7EFC 84580000 */ lh $t8, ($v0) -/* 0FCA30 7F0C7F00 AFA60070 */ sw $a2, 0x70($sp) -.L7F0C7F04: -/* 0FCA34 7F0C7F04 8FB9009C */ lw $t9, 0x9c($sp) -.L7F0C7F08: -/* 0FCA38 7F0C7F08 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D090) -/* 0FCA3C 7F0C7F0C 2508D090 */ addiu $t0, %lo(dword_CODE_bss_8008D090) # addiu $t0, $t0, -0x2f70 -/* 0FCA40 7F0C7F10 8FA60070 */ lw $a2, 0x70($sp) -/* 0FCA44 7F0C7F14 1B2001BA */ blez $t9, .L7F0C8600 -/* 0FCA48 7F0C7F18 AFA000A0 */ sw $zero, 0xa0($sp) -/* 0FCA4C 7F0C7F1C AFA60070 */ sw $a2, 0x70($sp) -/* 0FCA50 7F0C7F20 27BE10A8 */ addiu $fp, $sp, 0x10a8 -.L7F0C7F24: -/* 0FCA54 7F0C7F24 0FC32FCB */ jal extractImageBitCount -/* 0FCA58 7F0C7F28 24040004 */ li $a0, 4 -/* 0FCA5C 7F0C7F2C AFA20080 */ sw $v0, 0x80($sp) -/* 0FCA60 7F0C7F30 0FC32FCB */ jal extractImageBitCount -/* 0FCA64 7F0C7F34 24040008 */ li $a0, 8 -/* 0FCA68 7F0C7F38 0040B025 */ move $s6, $v0 -/* 0FCA6C 7F0C7F3C 0FC32FCB */ jal extractImageBitCount -/* 0FCA70 7F0C7F40 24040008 */ li $a0, 8 -/* 0FCA74 7F0C7F44 0040B825 */ move $s7, $v0 -/* 0FCA78 7F0C7F48 0FC32FCB */ jal extractImageBitCount -/* 0FCA7C 7F0C7F4C 24040004 */ li $a0, 4 -/* 0FCA80 7F0C7F50 8FA500A0 */ lw $a1, 0xa0($sp) -/* 0FCA84 7F0C7F54 8FA430B8 */ lw $a0, 0x30b8($sp) -/* 0FCA88 7F0C7F58 8FAB0070 */ lw $t3, 0x70($sp) -/* 0FCA8C 7F0C7F5C 14A00026 */ bnez $a1, .L7F0C7FF8 -/* 0FCA90 7F0C7F60 00000000 */ nop -/* 0FCA94 7F0C7F64 8C8C000C */ lw $t4, 0xc($a0) -/* 0FCA98 7F0C7F68 3C0B8005 */ lui $t3, %hi(n64imagetypes) -/* 0FCA9C 7F0C7F6C A1960008 */ sb $s6, 8($t4) -/* 0FCAA0 7F0C7F70 8C8D000C */ lw $t5, 0xc($a0) -/* 0FCAA4 7F0C7F74 A1B70009 */ sb $s7, 9($t5) -/* 0FCAA8 7F0C7F78 8FB40080 */ lw $s4, 0x80($sp) -/* 0FCAAC 7F0C7F7C 8C83000C */ lw $v1, 0xc($a0) -/* 0FCAB0 7F0C7F80 00147080 */ sll $t6, $s4, 2 -/* 0FCAB4 7F0C7F84 016E5821 */ addu $t3, $t3, $t6 -/* 0FCAB8 7F0C7F88 8D6F9248 */ lw $t7, %lo(n64imagetypes)($t3) -/* 0FCABC 7F0C7F8C 906C000B */ lbu $t4, 0xb($v1) -/* 0FCAC0 7F0C7F90 01C0A025 */ move $s4, $t6 -/* 0FCAC4 7F0C7F94 000FC080 */ sll $t8, $t7, 2 -/* 0FCAC8 7F0C7F98 3319001C */ andi $t9, $t8, 0x1c -/* 0FCACC 7F0C7F9C 318DFFE3 */ andi $t5, $t4, 0xffe3 -/* 0FCAD0 7F0C7FA0 032D7025 */ or $t6, $t9, $t5 -/* 0FCAD4 7F0C7FA4 A06E000B */ sb $t6, 0xb($v1) -/* 0FCAD8 7F0C7FA8 8C83000C */ lw $v1, 0xc($a0) -/* 0FCADC 7F0C7FAC 3C0B8005 */ lui $t3, %hi(n64pixelsizes) -/* 0FCAE0 7F0C7FB0 01745821 */ addu $t3, $t3, $s4 -/* 0FCAE4 7F0C7FB4 8D6F927C */ lw $t7, %lo(n64pixelsizes)($t3) -/* 0FCAE8 7F0C7FB8 906C000B */ lbu $t4, 0xb($v1) -/* 0FCAEC 7F0C7FBC 3C0E8005 */ lui $t6, %hi(imgflipvalues) -/* 0FCAF0 7F0C7FC0 31F80003 */ andi $t8, $t7, 3 -/* 0FCAF4 7F0C7FC4 3199FFFC */ andi $t9, $t4, 0xfffc -/* 0FCAF8 7F0C7FC8 03196825 */ or $t5, $t8, $t9 -/* 0FCAFC 7F0C7FCC A06D000B */ sb $t5, 0xb($v1) -/* 0FCB00 7F0C7FD0 8C83000C */ lw $v1, 0xc($a0) -/* 0FCB04 7F0C7FD4 01D47021 */ addu $t6, $t6, $s4 -/* 0FCB08 7F0C7FD8 8DCE92B0 */ lw $t6, %lo(imgflipvalues)($t6) -/* 0FCB0C 7F0C7FDC 9079000C */ lbu $t9, 0xc($v1) -/* 0FCB10 7F0C7FE0 000E7B83 */ sra $t7, $t6, 0xe -/* 0FCB14 7F0C7FE4 000FC180 */ sll $t8, $t7, 6 -/* 0FCB18 7F0C7FE8 332DFF3F */ andi $t5, $t9, 0xff3f -/* 0FCB1C 7F0C7FEC 030D7025 */ or $t6, $t8, $t5 -/* 0FCB20 7F0C7FF0 1000000B */ b .L7F0C8020 -/* 0FCB24 7F0C7FF4 A06E000C */ sb $t6, 0xc($v1) -.L7F0C7FF8: -/* 0FCB28 7F0C7FF8 11600009 */ beqz $t3, .L7F0C8020 -/* 0FCB2C 7F0C7FFC 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D090) -/* 0FCB30 7F0C8000 8DEFD090 */ lw $t7, %lo(dword_CODE_bss_8008D090)($t7) -/* 0FCB34 7F0C8004 3C188009 */ lui $t8, %hi(word_CODE_bss_8008C730) -/* 0FCB38 7F0C8008 2718C730 */ addiu $t8, %lo(word_CODE_bss_8008C730) # addiu $t8, $t8, -0x38d0 -/* 0FCB3C 7F0C800C 000F6100 */ sll $t4, $t7, 4 -/* 0FCB40 7F0C8010 0185C821 */ addu $t9, $t4, $a1 -/* 0FCB44 7F0C8014 03381821 */ addu $v1, $t9, $t8 -/* 0FCB48 7F0C8018 A0760001 */ sb $s6, 1($v1) -/* 0FCB4C 7F0C801C A0770008 */ sb $s7, 8($v1) -.L7F0C8020: -/* 0FCB50 7F0C8020 02D70019 */ multu $s6, $s7 -/* 0FCB54 7F0C8024 00026880 */ sll $t5, $v0, 2 -/* 0FCB58 7F0C8028 0000A812 */ mflo $s5 -/* 0FCB5C 7F0C802C 2AA12001 */ slti $at, $s5, 0x2001 -/* 0FCB60 7F0C8030 54200004 */ bnezl $at, .L7F0C8044 -/* 0FCB64 7F0C8034 2C41000A */ sltiu $at, $v0, 0xa -/* 0FCB68 7F0C8038 100001BA */ b .L7F0C8724 -/* 0FCB6C 7F0C803C 00001025 */ move $v0, $zero -/* 0FCB70 7F0C8040 2C41000A */ sltiu $at, $v0, 0xa -.L7F0C8044: -/* 0FCB74 7F0C8044 1020013B */ beqz $at, .L7F0C8534 -/* 0FCB78 7F0C8048 3C018006 */ lui $at, %hi(jpt_8005BD30) -/* 0FCB7C 7F0C804C 002D0821 */ addu $at, $at, $t5 -/* 0FCB80 7F0C8050 8C2DBD30 */ lw $t5, %lo(jpt_8005BD30)($at) -/* 0FCB84 7F0C8054 01A00008 */ jr $t5 -/* 0FCB88 7F0C8058 00000000 */ nop -huffman_type0_1: -/* 0FCB8C 7F0C805C 8FAE30AC */ lw $t6, 0x30ac($sp) -/* 0FCB90 7F0C8060 8FAB0088 */ lw $t3, 0x88($sp) -/* 0FCB94 7F0C8064 02C02825 */ move $a1, $s6 -/* 0FCB98 7F0C8068 02E03025 */ move $a2, $s7 -/* 0FCB9C 7F0C806C 01CB8021 */ addu $s0, $t6, $t3 -/* 0FCBA0 7F0C8070 02002025 */ move $a0, $s0 -/* 0FCBA4 7F0C8074 0FC326A7 */ jal image_compression0_expand -/* 0FCBA8 7F0C8078 8FA70080 */ lw $a3, 0x80($sp) -/* 0FCBAC 7F0C807C 10000137 */ b .L7F0C855C -/* 0FCBB0 7F0C8080 00408825 */ move $s1, $v0 -huffman_type2: -/* 0FCBB4 7F0C8084 8FB40080 */ lw $s4, 0x80($sp) -/* 0FCBB8 7F0C8088 3C0C8005 */ lui $t4, %hi(pixelbytecounts) -/* 0FCBBC 7F0C808C 3C068005 */ lui $a2, %hi(pixelsamplebits) -/* 0FCBC0 7F0C8090 00147880 */ sll $t7, $s4, 2 -/* 0FCBC4 7F0C8094 018F6021 */ addu $t4, $t4, $t7 -/* 0FCBC8 7F0C8098 8D8C9178 */ lw $t4, %lo(pixelbytecounts)($t4) -/* 0FCBCC 7F0C809C 00CF3021 */ addu $a2, $a2, $t7 -/* 0FCBD0 7F0C80A0 8CC691E0 */ lw $a2, %lo(pixelsamplebits)($a2) -/* 0FCBD4 7F0C80A4 01960019 */ multu $t4, $s6 -/* 0FCBD8 7F0C80A8 01E0A025 */ move $s4, $t7 -/* 0FCBDC 7F0C80AC 03C02025 */ move $a0, $fp -/* 0FCBE0 7F0C80B0 0000C812 */ mflo $t9 -/* 0FCBE4 7F0C80B4 00000000 */ nop -/* 0FCBE8 7F0C80B8 00000000 */ nop -/* 0FCBEC 7F0C80BC 03370019 */ multu $t9, $s7 -/* 0FCBF0 7F0C80C0 00002812 */ mflo $a1 -/* 0FCBF4 7F0C80C4 0FC32474 */ jal generate_sample_table -/* 0FCBF8 7F0C80C8 00000000 */ nop -/* 0FCBFC 7F0C80CC 3C188005 */ lui $t8, %hi(pixelbytecounts+52) -/* 0FCC00 7F0C80D0 0314C021 */ addu $t8, $t8, $s4 -/* 0FCC04 7F0C80D4 8F1891AC */ lw $t8, %lo(pixelbytecounts+52)($t8) -/* 0FCC08 7F0C80D8 00156880 */ sll $t5, $s5, 2 -/* 0FCC0C 7F0C80DC 01B56823 */ subu $t5, $t5, $s5 -/* 0FCC10 7F0C80E0 13000003 */ beqz $t8, .L7F0C80F0 -/* 0FCC14 7F0C80E4 03CD2021 */ addu $a0, $fp, $t5 -/* 0FCC18 7F0C80E8 0FC32692 */ jal image_get_alpha_values -/* 0FCC1C 7F0C80EC 02A02825 */ move $a1, $s5 -.L7F0C80F0: -/* 0FCC20 7F0C80F0 8FAE30AC */ lw $t6, 0x30ac($sp) -/* 0FCC24 7F0C80F4 8FAB0088 */ lw $t3, 0x88($sp) -/* 0FCC28 7F0C80F8 8FAF0080 */ lw $t7, 0x80($sp) -/* 0FCC2C 7F0C80FC 03C02025 */ move $a0, $fp -/* 0FCC30 7F0C8100 01CB8021 */ addu $s0, $t6, $t3 -/* 0FCC34 7F0C8104 02003825 */ move $a3, $s0 -/* 0FCC38 7F0C8108 02C02825 */ move $a1, $s6 -/* 0FCC3C 7F0C810C 02E03025 */ move $a2, $s7 -/* 0FCC40 7F0C8110 0FC32769 */ jal generate_link_final_image -/* 0FCC44 7F0C8114 AFAF0010 */ sw $t7, 0x10($sp) -/* 0FCC48 7F0C8118 10000110 */ b .L7F0C855C -/* 0FCC4C 7F0C811C 00408825 */ move $s1, $v0 -huffman_type3: -/* 0FCC50 7F0C8120 8FB40080 */ lw $s4, 0x80($sp) -/* 0FCC54 7F0C8124 3C198005 */ lui $t9, %hi(pixelbytecounts) -/* 0FCC58 7F0C8128 27399178 */ addiu $t9, %lo(pixelbytecounts) # addiu $t9, $t9, -0x6e88 -/* 0FCC5C 7F0C812C 00146080 */ sll $t4, $s4, 2 -/* 0FCC60 7F0C8130 01999821 */ addu $s3, $t4, $t9 -/* 0FCC64 7F0C8134 8E780000 */ lw $t8, ($s3) -/* 0FCC68 7F0C8138 0180A025 */ move $s4, $t4 -/* 0FCC6C 7F0C813C 00008825 */ move $s1, $zero -/* 0FCC70 7F0C8140 1B000010 */ blez $t8, .L7F0C8184 -/* 0FCC74 7F0C8144 3C0D8005 */ lui $t5, %hi(pixelsamplebits) -/* 0FCC78 7F0C8148 25AD91E0 */ addiu $t5, %lo(pixelsamplebits) # addiu $t5, $t5, -0x6e20 -/* 0FCC7C 7F0C814C 018D9021 */ addu $s2, $t4, $t5 -/* 0FCC80 7F0C8150 03C08025 */ move $s0, $fp -/* 0FCC84 7F0C8154 02002025 */ move $a0, $s0 -.L7F0C8158: -/* 0FCC88 7F0C8158 02A02825 */ move $a1, $s5 -/* 0FCC8C 7F0C815C 0FC32474 */ jal generate_sample_table -/* 0FCC90 7F0C8160 8E460000 */ lw $a2, ($s2) -/* 0FCC94 7F0C8164 02D70019 */ multu $s6, $s7 -/* 0FCC98 7F0C8168 8E6B0000 */ lw $t3, ($s3) -/* 0FCC9C 7F0C816C 26310001 */ addiu $s1, $s1, 1 -/* 0FCCA0 7F0C8170 022B082A */ slt $at, $s1, $t3 -/* 0FCCA4 7F0C8174 00007012 */ mflo $t6 -/* 0FCCA8 7F0C8178 020E8021 */ addu $s0, $s0, $t6 -/* 0FCCAC 7F0C817C 5420FFF6 */ bnezl $at, .L7F0C8158 -/* 0FCCB0 7F0C8180 02002025 */ move $a0, $s0 -.L7F0C8184: -/* 0FCCB4 7F0C8184 3C0F8005 */ lui $t7, %hi(pixelbytecounts+52) -/* 0FCCB8 7F0C8188 01F47821 */ addu $t7, $t7, $s4 -/* 0FCCBC 7F0C818C 8DEF91AC */ lw $t7, %lo(pixelbytecounts+52)($t7) -/* 0FCCC0 7F0C8190 00156080 */ sll $t4, $s5, 2 -/* 0FCCC4 7F0C8194 01956023 */ subu $t4, $t4, $s5 -/* 0FCCC8 7F0C8198 11E00003 */ beqz $t7, .L7F0C81A8 -/* 0FCCCC 7F0C819C 03CC2021 */ addu $a0, $fp, $t4 -/* 0FCCD0 7F0C81A0 0FC32692 */ jal image_get_alpha_values -/* 0FCCD4 7F0C81A4 02A02825 */ move $a1, $s5 -.L7F0C81A8: -/* 0FCCD8 7F0C81A8 8FB930AC */ lw $t9, 0x30ac($sp) -/* 0FCCDC 7F0C81AC 8FB80088 */ lw $t8, 0x88($sp) -/* 0FCCE0 7F0C81B0 8FAD0080 */ lw $t5, 0x80($sp) -/* 0FCCE4 7F0C81B4 03C02025 */ move $a0, $fp -/* 0FCCE8 7F0C81B8 03388021 */ addu $s0, $t9, $t8 -/* 0FCCEC 7F0C81BC 02003825 */ move $a3, $s0 -/* 0FCCF0 7F0C81C0 02C02825 */ move $a1, $s6 -/* 0FCCF4 7F0C81C4 02E03025 */ move $a2, $s7 -/* 0FCCF8 7F0C81C8 0FC32769 */ jal generate_link_final_image -/* 0FCCFC 7F0C81CC AFAD0010 */ sw $t5, 0x10($sp) -/* 0FCD00 7F0C81D0 100000E2 */ b .L7F0C855C -/* 0FCD04 7F0C81D4 00408825 */ move $s1, $v0 -huffman_type4: -/* 0FCD08 7F0C81D8 8FB40080 */ lw $s4, 0x80($sp) -/* 0FCD0C 7F0C81DC 3C0B8005 */ lui $t3, %hi(pixelbytecounts) -/* 0FCD10 7F0C81E0 03C02025 */ move $a0, $fp -/* 0FCD14 7F0C81E4 00147080 */ sll $t6, $s4, 2 -/* 0FCD18 7F0C81E8 016E5821 */ addu $t3, $t3, $t6 -/* 0FCD1C 7F0C81EC 8D6B9178 */ lw $t3, %lo(pixelbytecounts)($t3) -/* 0FCD20 7F0C81F0 01C0A025 */ move $s4, $t6 -/* 0FCD24 7F0C81F4 01760019 */ multu $t3, $s6 -/* 0FCD28 7F0C81F8 00007812 */ mflo $t7 -/* 0FCD2C 7F0C81FC 00000000 */ nop -/* 0FCD30 7F0C8200 00000000 */ nop -/* 0FCD34 7F0C8204 01F70019 */ multu $t7, $s7 -/* 0FCD38 7F0C8208 00002812 */ mflo $a1 -/* 0FCD3C 7F0C820C 0FC325AF */ jal type4_7_9_getsamples -/* 0FCD40 7F0C8210 00000000 */ nop -/* 0FCD44 7F0C8214 3C0C8005 */ lui $t4, %hi(pixelbytecounts+52) -/* 0FCD48 7F0C8218 01946021 */ addu $t4, $t4, $s4 -/* 0FCD4C 7F0C821C 8D8C91AC */ lw $t4, %lo(pixelbytecounts+52)($t4) -/* 0FCD50 7F0C8220 0015C880 */ sll $t9, $s5, 2 -/* 0FCD54 7F0C8224 0335C823 */ subu $t9, $t9, $s5 -/* 0FCD58 7F0C8228 11800003 */ beqz $t4, .L7F0C8238 -/* 0FCD5C 7F0C822C 03D92021 */ addu $a0, $fp, $t9 -/* 0FCD60 7F0C8230 0FC32692 */ jal image_get_alpha_values -/* 0FCD64 7F0C8234 02A02825 */ move $a1, $s5 -.L7F0C8238: -/* 0FCD68 7F0C8238 8FB830AC */ lw $t8, 0x30ac($sp) -/* 0FCD6C 7F0C823C 8FAD0088 */ lw $t5, 0x88($sp) -/* 0FCD70 7F0C8240 8FAE0080 */ lw $t6, 0x80($sp) -/* 0FCD74 7F0C8244 03C02025 */ move $a0, $fp -/* 0FCD78 7F0C8248 030D8021 */ addu $s0, $t8, $t5 -/* 0FCD7C 7F0C824C 02003825 */ move $a3, $s0 -/* 0FCD80 7F0C8250 02C02825 */ move $a1, $s6 -/* 0FCD84 7F0C8254 02E03025 */ move $a2, $s7 -/* 0FCD88 7F0C8258 0FC32769 */ jal generate_link_final_image -/* 0FCD8C 7F0C825C AFAE0010 */ sw $t6, 0x10($sp) -/* 0FCD90 7F0C8260 100000BE */ b .L7F0C855C -/* 0FCD94 7F0C8264 00408825 */ move $s1, $v0 -huffman_type5: -/* 0FCD98 7F0C8268 8FAB0080 */ lw $t3, 0x80($sp) -/* 0FCD9C 7F0C826C 3C058005 */ lui $a1, %hi(pixelsamplebits+52) -/* 0FCDA0 7F0C8270 27A400A8 */ addiu $a0, $sp, 0xa8 -/* 0FCDA4 7F0C8274 000B7880 */ sll $t7, $t3, 2 -/* 0FCDA8 7F0C8278 00AF2821 */ addu $a1, $a1, $t7 -/* 0FCDAC 7F0C827C 0FC32648 */ jal texBuildLookup -/* 0FCDB0 7F0C8280 8CA59214 */ lw $a1, %lo(pixelsamplebits+52)($a1) -/* 0FCDB4 7F0C8284 8FAC30AC */ lw $t4, 0x30ac($sp) -/* 0FCDB8 7F0C8288 8FB90088 */ lw $t9, 0x88($sp) -/* 0FCDBC 7F0C828C 8FB80080 */ lw $t8, 0x80($sp) -/* 0FCDC0 7F0C8290 02C02025 */ move $a0, $s6 -/* 0FCDC4 7F0C8294 01998021 */ addu $s0, $t4, $t9 -/* 0FCDC8 7F0C8298 02003025 */ move $a2, $s0 -/* 0FCDCC 7F0C829C 02E02825 */ move $a1, $s7 -/* 0FCDD0 7F0C82A0 27A700A8 */ addiu $a3, $sp, 0xa8 -/* 0FCDD4 7F0C82A4 AFA20010 */ sw $v0, 0x10($sp) -/* 0FCDD8 7F0C82A8 0FC32A24 */ jal type5_generate_link_final_image -/* 0FCDDC 7F0C82AC AFB80014 */ sw $t8, 0x14($sp) -/* 0FCDE0 7F0C82B0 100000AA */ b .L7F0C855C -/* 0FCDE4 7F0C82B4 00408825 */ move $s1, $v0 -huffman_type6: -/* 0FCDE8 7F0C82B8 8FAD0080 */ lw $t5, 0x80($sp) -/* 0FCDEC 7F0C82BC 3C058005 */ lui $a1, %hi(pixelsamplebits+52) -/* 0FCDF0 7F0C82C0 27A400A8 */ addiu $a0, $sp, 0xa8 -/* 0FCDF4 7F0C82C4 000D7080 */ sll $t6, $t5, 2 -/* 0FCDF8 7F0C82C8 00AE2821 */ addu $a1, $a1, $t6 -/* 0FCDFC 7F0C82CC 0FC32648 */ jal texBuildLookup -/* 0FCE00 7F0C82D0 8CA59214 */ lw $a1, %lo(pixelsamplebits+52)($a1) -/* 0FCE04 7F0C82D4 00408825 */ move $s1, $v0 -/* 0FCE08 7F0C82D8 03C02025 */ move $a0, $fp -/* 0FCE0C 7F0C82DC 02A02825 */ move $a1, $s5 -/* 0FCE10 7F0C82E0 0FC32474 */ jal generate_sample_table -/* 0FCE14 7F0C82E4 00403025 */ move $a2, $v0 -/* 0FCE18 7F0C82E8 8FAB30AC */ lw $t3, 0x30ac($sp) -/* 0FCE1C 7F0C82EC 8FAF0088 */ lw $t7, 0x88($sp) -/* 0FCE20 7F0C82F0 8FB90080 */ lw $t9, 0x80($sp) -/* 0FCE24 7F0C82F4 27AC00A8 */ addiu $t4, $sp, 0xa8 -/* 0FCE28 7F0C82F8 016F8021 */ addu $s0, $t3, $t7 -/* 0FCE2C 7F0C82FC 02003825 */ move $a3, $s0 -/* 0FCE30 7F0C8300 AFAC0010 */ sw $t4, 0x10($sp) -/* 0FCE34 7F0C8304 03C02025 */ move $a0, $fp -/* 0FCE38 7F0C8308 02C02825 */ move $a1, $s6 -/* 0FCE3C 7F0C830C 02E03025 */ move $a2, $s7 -/* 0FCE40 7F0C8310 AFB10014 */ sw $s1, 0x14($sp) -/* 0FCE44 7F0C8314 0FC32B16 */ jal type6_7_generate_link_final_image -/* 0FCE48 7F0C8318 AFB90018 */ sw $t9, 0x18($sp) -/* 0FCE4C 7F0C831C 1000008F */ b .L7F0C855C -/* 0FCE50 7F0C8320 00408825 */ move $s1, $v0 -huffman_type7: -/* 0FCE54 7F0C8324 8FB80080 */ lw $t8, 0x80($sp) -/* 0FCE58 7F0C8328 3C058005 */ lui $a1, %hi(pixelsamplebits+52) -/* 0FCE5C 7F0C832C 27A400A8 */ addiu $a0, $sp, 0xa8 -/* 0FCE60 7F0C8330 00186880 */ sll $t5, $t8, 2 -/* 0FCE64 7F0C8334 00AD2821 */ addu $a1, $a1, $t5 -/* 0FCE68 7F0C8338 0FC32648 */ jal texBuildLookup -/* 0FCE6C 7F0C833C 8CA59214 */ lw $a1, %lo(pixelsamplebits+52)($a1) -/* 0FCE70 7F0C8340 00408825 */ move $s1, $v0 -/* 0FCE74 7F0C8344 03C02025 */ move $a0, $fp -/* 0FCE78 7F0C8348 0FC325AF */ jal type4_7_9_getsamples -/* 0FCE7C 7F0C834C 02A02825 */ move $a1, $s5 -/* 0FCE80 7F0C8350 8FAE30AC */ lw $t6, 0x30ac($sp) -/* 0FCE84 7F0C8354 8FAB0088 */ lw $t3, 0x88($sp) -/* 0FCE88 7F0C8358 8FAC0080 */ lw $t4, 0x80($sp) -/* 0FCE8C 7F0C835C 27AF00A8 */ addiu $t7, $sp, 0xa8 -/* 0FCE90 7F0C8360 01CB8021 */ addu $s0, $t6, $t3 -/* 0FCE94 7F0C8364 02003825 */ move $a3, $s0 -/* 0FCE98 7F0C8368 AFAF0010 */ sw $t7, 0x10($sp) -/* 0FCE9C 7F0C836C 03C02025 */ move $a0, $fp -/* 0FCEA0 7F0C8370 02C02825 */ move $a1, $s6 -/* 0FCEA4 7F0C8374 02E03025 */ move $a2, $s7 -/* 0FCEA8 7F0C8378 AFB10014 */ sw $s1, 0x14($sp) -/* 0FCEAC 7F0C837C 0FC32B16 */ jal type6_7_generate_link_final_image -/* 0FCEB0 7F0C8380 AFAC0018 */ sw $t4, 0x18($sp) -/* 0FCEB4 7F0C8384 10000075 */ b .L7F0C855C -/* 0FCEB8 7F0C8388 00408825 */ move $s1, $v0 -huffman_type8: -/* 0FCEBC 7F0C838C 8FB40080 */ lw $s4, 0x80($sp) -/* 0FCEC0 7F0C8390 24040003 */ li $a0, 3 -/* 0FCEC4 7F0C8394 0014C880 */ sll $t9, $s4, 2 -/* 0FCEC8 7F0C8398 0FC32FCB */ jal extractImageBitCount -/* 0FCECC 7F0C839C 0320A025 */ move $s4, $t9 -/* 0FCED0 7F0C83A0 3C188005 */ lui $t8, %hi(pixelbytecounts) -/* 0FCED4 7F0C83A4 27189178 */ addiu $t8, %lo(pixelbytecounts) # addiu $t8, $t8, -0x6e88 -/* 0FCED8 7F0C83A8 02989821 */ addu $s3, $s4, $t8 -/* 0FCEDC 7F0C83AC 8E6D0000 */ lw $t5, ($s3) -/* 0FCEE0 7F0C83B0 3C0B8005 */ lui $t3, %hi(pixelsamplebits) -/* 0FCEE4 7F0C83B4 256B91E0 */ addiu $t3, %lo(pixelsamplebits) # addiu $t3, $t3, -0x6e20 -/* 0FCEE8 7F0C83B8 01B60019 */ multu $t5, $s6 -/* 0FCEEC 7F0C83BC 028B9021 */ addu $s2, $s4, $t3 -/* 0FCEF0 7F0C83C0 00408025 */ move $s0, $v0 -/* 0FCEF4 7F0C83C4 8E460000 */ lw $a2, ($s2) -/* 0FCEF8 7F0C83C8 03C02025 */ move $a0, $fp -/* 0FCEFC 7F0C83CC 00007012 */ mflo $t6 -/* 0FCF00 7F0C83D0 00000000 */ nop -/* 0FCF04 7F0C83D4 00000000 */ nop -/* 0FCF08 7F0C83D8 01D70019 */ multu $t6, $s7 -/* 0FCF0C 7F0C83DC 00002812 */ mflo $a1 -/* 0FCF10 7F0C83E0 0FC32474 */ jal generate_sample_table -/* 0FCF14 7F0C83E4 00000000 */ nop -/* 0FCF18 7F0C83E8 8E6F0000 */ lw $t7, ($s3) -/* 0FCF1C 7F0C83EC 8E4C0000 */ lw $t4, ($s2) -/* 0FCF20 7F0C83F0 03C02025 */ move $a0, $fp -/* 0FCF24 7F0C83F4 01F70019 */ multu $t7, $s7 -/* 0FCF28 7F0C83F8 02C02825 */ move $a1, $s6 -/* 0FCF2C 7F0C83FC 02003825 */ move $a3, $s0 -/* 0FCF30 7F0C8400 AFAC0010 */ sw $t4, 0x10($sp) -/* 0FCF34 7F0C8404 00003012 */ mflo $a2 -/* 0FCF38 7F0C8408 0FC32DF8 */ jal type8_9_doohick -/* 0FCF3C 7F0C840C 00000000 */ nop -/* 0FCF40 7F0C8410 3C198005 */ lui $t9, %hi(pixelbytecounts+52) -/* 0FCF44 7F0C8414 0334C821 */ addu $t9, $t9, $s4 -/* 0FCF48 7F0C8418 8F3991AC */ lw $t9, %lo(pixelbytecounts+52)($t9) -/* 0FCF4C 7F0C841C 0015C080 */ sll $t8, $s5, 2 -/* 0FCF50 7F0C8420 0315C023 */ subu $t8, $t8, $s5 -/* 0FCF54 7F0C8424 13200003 */ beqz $t9, .L7F0C8434 -/* 0FCF58 7F0C8428 03D82021 */ addu $a0, $fp, $t8 -/* 0FCF5C 7F0C842C 0FC32692 */ jal image_get_alpha_values -/* 0FCF60 7F0C8430 02A02825 */ move $a1, $s5 -.L7F0C8434: -/* 0FCF64 7F0C8434 8FAD30AC */ lw $t5, 0x30ac($sp) -/* 0FCF68 7F0C8438 8FAE0088 */ lw $t6, 0x88($sp) -/* 0FCF6C 7F0C843C 8FAB0080 */ lw $t3, 0x80($sp) -/* 0FCF70 7F0C8440 03C02025 */ move $a0, $fp -/* 0FCF74 7F0C8444 01AE8021 */ addu $s0, $t5, $t6 -/* 0FCF78 7F0C8448 02003825 */ move $a3, $s0 -/* 0FCF7C 7F0C844C 02C02825 */ move $a1, $s6 -/* 0FCF80 7F0C8450 02E03025 */ move $a2, $s7 -/* 0FCF84 7F0C8454 0FC32769 */ jal generate_link_final_image -/* 0FCF88 7F0C8458 AFAB0010 */ sw $t3, 0x10($sp) -/* 0FCF8C 7F0C845C 1000003F */ b .L7F0C855C -/* 0FCF90 7F0C8460 00408825 */ move $s1, $v0 -huffman_type9: -/* 0FCF94 7F0C8464 8FB40080 */ lw $s4, 0x80($sp) -/* 0FCF98 7F0C8468 24040003 */ li $a0, 3 -/* 0FCF9C 7F0C846C 00147880 */ sll $t7, $s4, 2 -/* 0FCFA0 7F0C8470 0FC32FCB */ jal extractImageBitCount -/* 0FCFA4 7F0C8474 01E0A025 */ move $s4, $t7 -/* 0FCFA8 7F0C8478 3C0C8005 */ lui $t4, %hi(pixelbytecounts) -/* 0FCFAC 7F0C847C 258C9178 */ addiu $t4, %lo(pixelbytecounts) # addiu $t4, $t4, -0x6e88 -/* 0FCFB0 7F0C8480 028C9821 */ addu $s3, $s4, $t4 -/* 0FCFB4 7F0C8484 8E790000 */ lw $t9, ($s3) -/* 0FCFB8 7F0C8488 00408025 */ move $s0, $v0 -/* 0FCFBC 7F0C848C 03C02025 */ move $a0, $fp -/* 0FCFC0 7F0C8490 03360019 */ multu $t9, $s6 -/* 0FCFC4 7F0C8494 0000C012 */ mflo $t8 -/* 0FCFC8 7F0C8498 00000000 */ nop -/* 0FCFCC 7F0C849C 00000000 */ nop -/* 0FCFD0 7F0C84A0 03170019 */ multu $t8, $s7 -/* 0FCFD4 7F0C84A4 00002812 */ mflo $a1 -/* 0FCFD8 7F0C84A8 0FC325AF */ jal type4_7_9_getsamples -/* 0FCFDC 7F0C84AC 00000000 */ nop -/* 0FCFE0 7F0C84B0 8E6D0000 */ lw $t5, ($s3) -/* 0FCFE4 7F0C84B4 3C0E8005 */ lui $t6, %hi(pixelsamplebits) -/* 0FCFE8 7F0C84B8 01D47021 */ addu $t6, $t6, $s4 -/* 0FCFEC 7F0C84BC 01B70019 */ multu $t5, $s7 -/* 0FCFF0 7F0C84C0 8DCE91E0 */ lw $t6, %lo(pixelsamplebits)($t6) -/* 0FCFF4 7F0C84C4 03C02025 */ move $a0, $fp -/* 0FCFF8 7F0C84C8 02C02825 */ move $a1, $s6 -/* 0FCFFC 7F0C84CC 02003825 */ move $a3, $s0 -/* 0FD000 7F0C84D0 AFAE0010 */ sw $t6, 0x10($sp) -/* 0FD004 7F0C84D4 00003012 */ mflo $a2 -/* 0FD008 7F0C84D8 0FC32DF8 */ jal type8_9_doohick -/* 0FD00C 7F0C84DC 00000000 */ nop -/* 0FD010 7F0C84E0 3C0B8005 */ lui $t3, %hi(pixelbytecounts+52) -/* 0FD014 7F0C84E4 01745821 */ addu $t3, $t3, $s4 -/* 0FD018 7F0C84E8 8D6B91AC */ lw $t3, %lo(pixelbytecounts+52)($t3) -/* 0FD01C 7F0C84EC 00157880 */ sll $t7, $s5, 2 -/* 0FD020 7F0C84F0 01F57823 */ subu $t7, $t7, $s5 -/* 0FD024 7F0C84F4 11600003 */ beqz $t3, .L7F0C8504 -/* 0FD028 7F0C84F8 03CF2021 */ addu $a0, $fp, $t7 -/* 0FD02C 7F0C84FC 0FC32692 */ jal image_get_alpha_values -/* 0FD030 7F0C8500 02A02825 */ move $a1, $s5 -.L7F0C8504: -/* 0FD034 7F0C8504 8FAC30AC */ lw $t4, 0x30ac($sp) -/* 0FD038 7F0C8508 8FB90088 */ lw $t9, 0x88($sp) -/* 0FD03C 7F0C850C 8FB80080 */ lw $t8, 0x80($sp) -/* 0FD040 7F0C8510 03C02025 */ move $a0, $fp -/* 0FD044 7F0C8514 01998021 */ addu $s0, $t4, $t9 -/* 0FD048 7F0C8518 02003825 */ move $a3, $s0 -/* 0FD04C 7F0C851C 02C02825 */ move $a1, $s6 -/* 0FD050 7F0C8520 02E03025 */ move $a2, $s7 -/* 0FD054 7F0C8524 0FC32769 */ jal generate_link_final_image -/* 0FD058 7F0C8528 AFB80010 */ sw $t8, 0x10($sp) -/* 0FD05C 7F0C852C 1000000B */ b .L7F0C855C -/* 0FD060 7F0C8530 00408825 */ move $s1, $v0 -def_7F0C8054: -.L7F0C8534: -/* 0FD064 7F0C8534 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D090) -/* 0FD068 7F0C8538 8DADD090 */ lw $t5, %lo(dword_CODE_bss_8008D090)($t5) -/* 0FD06C 7F0C853C 3C0F8009 */ lui $t7, %hi(word_CODE_bss_8008C730) -/* 0FD070 7F0C8540 25EFC730 */ addiu $t7, %lo(word_CODE_bss_8008C730) # addiu $t7, $t7, -0x38d0 -/* 0FD074 7F0C8544 000D7100 */ sll $t6, $t5, 4 -/* 0FD078 7F0C8548 01CF1821 */ addu $v1, $t6, $t7 -/* 0FD07C 7F0C854C A0760001 */ sb $s6, 1($v1) -/* 0FD080 7F0C8550 A0770008 */ sb $s7, 8($v1) -.L7F0C8554: -/* 0FD084 7F0C8554 1000FFFF */ b .L7F0C8554 -/* 0FD088 7F0C8558 00000000 */ nop -.L7F0C855C: -/* 0FD08C 7F0C855C 8FAC30B0 */ lw $t4, 0x30b0($sp) -/* 0FD090 7F0C8560 24010001 */ li $at, 1 -/* 0FD094 7F0C8564 8FB930B4 */ lw $t9, 0x30b4($sp) -/* 0FD098 7F0C8568 15810007 */ bne $t4, $at, .L7F0C8588 -/* 0FD09C 7F0C856C 00000000 */ nop -/* 0FD0A0 7F0C8570 1B200005 */ blez $t9, .L7F0C8588 -/* 0FD0A4 7F0C8574 02002025 */ move $a0, $s0 -/* 0FD0A8 7F0C8578 02C02825 */ move $a1, $s6 -/* 0FD0AC 7F0C857C 02E03025 */ move $a2, $s7 -/* 0FD0B0 7F0C8580 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FD0B4 7F0C8584 8FA70080 */ lw $a3, 0x80($sp) -.L7F0C8588: -/* 0FD0B8 7F0C8588 3C028009 */ lui $v0, %hi(img_bitcount) -/* 0FD0BC 7F0C858C 8FAD0088 */ lw $t5, 0x88($sp) -/* 0FD0C0 7F0C8590 2442D0A8 */ addiu $v0, %lo(img_bitcount) # addiu $v0, $v0, -0x2f58 -/* 0FD0C4 7F0C8594 8C4B0000 */ lw $t3, ($v0) -/* 0FD0C8 7F0C8598 26310007 */ addiu $s1, $s1, 7 -/* 0FD0CC 7F0C859C 2401FFF8 */ li $at, -8 -/* 0FD0D0 7F0C85A0 0221C024 */ and $t8, $s1, $at -/* 0FD0D4 7F0C85A4 01B87021 */ addu $t6, $t5, $t8 -/* 0FD0D8 7F0C85A8 15600007 */ bnez $t3, .L7F0C85C8 -/* 0FD0DC 7F0C85AC AFAE0088 */ sw $t6, 0x88($sp) -/* 0FD0E0 7F0C85B0 3C0F8009 */ lui $t7, %hi(img_curpos) -/* 0FD0E4 7F0C85B4 8DEFD0A0 */ lw $t7, %lo(img_curpos)($t7) -/* 0FD0E8 7F0C85B8 3C018009 */ lui $at, %hi(img_curpos) -/* 0FD0EC 7F0C85BC 25EC0001 */ addiu $t4, $t7, 1 -/* 0FD0F0 7F0C85C0 10000002 */ b .L7F0C85CC -/* 0FD0F4 7F0C85C4 AC2CD0A0 */ sw $t4, %lo(img_curpos)($at) -.L7F0C85C8: -/* 0FD0F8 7F0C85C8 AC400000 */ sw $zero, ($v0) -.L7F0C85CC: -/* 0FD0FC 7F0C85CC 8FB900A0 */ lw $t9, 0xa0($sp) -/* 0FD100 7F0C85D0 8FAD009C */ lw $t5, 0x9c($sp) -/* 0FD104 7F0C85D4 27380001 */ addiu $t8, $t9, 1 -/* 0FD108 7F0C85D8 170DFE52 */ bne $t8, $t5, .L7F0C7F24 -/* 0FD10C 7F0C85DC AFB800A0 */ sw $t8, 0xa0($sp) -/* 0FD110 7F0C85E0 3C088009 */ lui $t0, %hi(dword_CODE_bss_8008D090) -/* 0FD114 7F0C85E4 2508D090 */ addiu $t0, %lo(dword_CODE_bss_8008D090) # addiu $t0, $t0, -0x2f70 -/* 0FD118 7F0C85E8 AFB60098 */ sw $s6, 0x98($sp) -/* 0FD11C 7F0C85EC AFB70094 */ sw $s7, 0x94($sp) -/* 0FD120 7F0C85F0 8FAA30B4 */ lw $t2, 0x30b4($sp) -/* 0FD124 7F0C85F4 8FA930B0 */ lw $t1, 0x30b0($sp) -/* 0FD128 7F0C85F8 8FA730B8 */ lw $a3, 0x30b8($sp) -/* 0FD12C 7F0C85FC 8FA60070 */ lw $a2, 0x70($sp) -.L7F0C8600: -/* 0FD130 7F0C8600 8FB60098 */ lw $s6, 0x98($sp) -/* 0FD134 7F0C8604 10C0000E */ beqz $a2, .L7F0C8640 -/* 0FD138 7F0C8608 8FB70094 */ lw $s7, 0x94($sp) -/* 0FD13C 7F0C860C 8CEE000C */ lw $t6, 0xc($a3) -/* 0FD140 7F0C8610 8D050000 */ lw $a1, ($t0) -/* 0FD144 7F0C8614 3C018009 */ lui $at, %hi(word_CODE_bss_8008C730) -/* 0FD148 7F0C8618 8DCB0000 */ lw $t3, ($t6) -/* 0FD14C 7F0C861C 00056100 */ sll $t4, $a1, 4 -/* 0FD150 7F0C8620 002C0821 */ addu $at, $at, $t4 -/* 0FD154 7F0C8624 000B7D02 */ srl $t7, $t3, 0x14 -/* 0FD158 7F0C8628 A42FC730 */ sh $t7, %lo(word_CODE_bss_8008C730)($at) -/* 0FD15C 7F0C862C 24B90001 */ addiu $t9, $a1, 1 -/* 0FD160 7F0C8630 2B210096 */ slti $at, $t9, 0x96 -/* 0FD164 7F0C8634 14200002 */ bnez $at, .L7F0C8640 -/* 0FD168 7F0C8638 AD190000 */ sw $t9, ($t0) -/* 0FD16C 7F0C863C AD000000 */ sw $zero, ($t0) -.L7F0C8640: -/* 0FD170 7F0C8640 15200037 */ bnez $t1, .L7F0C8720 -/* 0FD174 7F0C8644 29410002 */ slti $at, $t2, 2 -/* 0FD178 7F0C8648 1420002E */ bnez $at, .L7F0C8704 -/* 0FD17C 7F0C864C 8FB430AC */ lw $s4, 0x30ac($sp) -/* 0FD180 7F0C8650 8FAB30B4 */ lw $t3, 0x30b4($sp) -/* 0FD184 7F0C8654 8FAD0088 */ lw $t5, 0x88($sp) -/* 0FD188 7F0C8658 240E0001 */ li $t6, 1 -/* 0FD18C 7F0C865C 29610002 */ slti $at, $t3, 2 -/* 0FD190 7F0C8660 02C09025 */ move $s2, $s6 -/* 0FD194 7F0C8664 02E09825 */ move $s3, $s7 -/* 0FD198 7F0C8668 AFAE00A0 */ sw $t6, 0xa0($sp) -/* 0FD19C 7F0C866C 1420001E */ bnez $at, .L7F0C86E8 -/* 0FD1A0 7F0C8670 028D8021 */ addu $s0, $s4, $t5 -.L7F0C8674: -/* 0FD1A4 7F0C8674 8FAF0080 */ lw $t7, 0x80($sp) -/* 0FD1A8 7F0C8678 02802025 */ move $a0, $s4 -/* 0FD1AC 7F0C867C 02002825 */ move $a1, $s0 -/* 0FD1B0 7F0C8680 02403025 */ move $a2, $s2 -/* 0FD1B4 7F0C8684 02603825 */ move $a3, $s3 -/* 0FD1B8 7F0C8688 0FC321D5 */ jal image_decompresion_related -/* 0FD1BC 7F0C868C AFAF0010 */ sw $t7, 0x10($sp) -/* 0FD1C0 7F0C8690 00408825 */ move $s1, $v0 -/* 0FD1C4 7F0C8694 02802025 */ move $a0, $s4 -/* 0FD1C8 7F0C8698 02402825 */ move $a1, $s2 -/* 0FD1CC 7F0C869C 02603025 */ move $a2, $s3 -/* 0FD1D0 7F0C86A0 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FD1D4 7F0C86A4 8FA70080 */ lw $a3, 0x80($sp) -/* 0FD1D8 7F0C86A8 8FAE00A0 */ lw $t6, 0xa0($sp) -/* 0FD1DC 7F0C86AC 8FAC0088 */ lw $t4, 0x88($sp) -/* 0FD1E0 7F0C86B0 8FAF30B4 */ lw $t7, 0x30b4($sp) -/* 0FD1E4 7F0C86B4 26520001 */ addiu $s2, $s2, 1 -/* 0FD1E8 7F0C86B8 26730001 */ addiu $s3, $s3, 1 -/* 0FD1EC 7F0C86BC 0012C043 */ sra $t8, $s2, 1 -/* 0FD1F0 7F0C86C0 00136843 */ sra $t5, $s3, 1 -/* 0FD1F4 7F0C86C4 0200A025 */ move $s4, $s0 -/* 0FD1F8 7F0C86C8 25CB0001 */ addiu $t3, $t6, 1 -/* 0FD1FC 7F0C86CC 0191C821 */ addu $t9, $t4, $s1 -/* 0FD200 7F0C86D0 AFAB00A0 */ sw $t3, 0xa0($sp) -/* 0FD204 7F0C86D4 AFB90088 */ sw $t9, 0x88($sp) -/* 0FD208 7F0C86D8 03009025 */ move $s2, $t8 -/* 0FD20C 7F0C86DC 01A09825 */ move $s3, $t5 -/* 0FD210 7F0C86E0 156FFFE4 */ bne $t3, $t7, .L7F0C8674 -/* 0FD214 7F0C86E4 02118021 */ addu $s0, $s0, $s1 -.L7F0C86E8: -/* 0FD218 7F0C86E8 02802025 */ move $a0, $s4 -/* 0FD21C 7F0C86EC 02402825 */ move $a1, $s2 -/* 0FD220 7F0C86F0 02603025 */ move $a2, $s3 -/* 0FD224 7F0C86F4 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FD228 7F0C86F8 8FA70080 */ lw $a3, 0x80($sp) -/* 0FD22C 7F0C86FC 10000009 */ b .L7F0C8724 -/* 0FD230 7F0C8700 8FA20088 */ lw $v0, 0x88($sp) -.L7F0C8704: -/* 0FD234 7F0C8704 24010001 */ li $at, 1 -/* 0FD238 7F0C8708 15410005 */ bne $t2, $at, .L7F0C8720 -/* 0FD23C 7F0C870C 8FA430AC */ lw $a0, 0x30ac($sp) -/* 0FD240 7F0C8710 02C02825 */ move $a1, $s6 -/* 0FD244 7F0C8714 02E03025 */ move $a2, $s7 -/* 0FD248 7F0C8718 0FC32D9F */ jal sub_GAME_7F0CB67C -/* 0FD24C 7F0C871C 8FA70080 */ lw $a3, 0x80($sp) -.L7F0C8720: -/* 0FD250 7F0C8720 8FA20088 */ lw $v0, 0x88($sp) -.L7F0C8724: -/* 0FD254 7F0C8724 8FBF004C */ lw $ra, 0x4c($sp) -/* 0FD258 7F0C8728 8FB00028 */ lw $s0, 0x28($sp) -/* 0FD25C 7F0C872C 8FB1002C */ lw $s1, 0x2c($sp) -/* 0FD260 7F0C8730 8FB20030 */ lw $s2, 0x30($sp) -/* 0FD264 7F0C8734 8FB30034 */ lw $s3, 0x34($sp) -/* 0FD268 7F0C8738 8FB40038 */ lw $s4, 0x38($sp) -/* 0FD26C 7F0C873C 8FB5003C */ lw $s5, 0x3c($sp) -/* 0FD270 7F0C8740 8FB60040 */ lw $s6, 0x40($sp) -/* 0FD274 7F0C8744 8FB70044 */ lw $s7, 0x44($sp) -/* 0FD278 7F0C8748 8FBE0048 */ lw $fp, 0x48($sp) -/* 0FD27C 7F0C874C 03E00008 */ jr $ra -/* 0FD280 7F0C8750 27BD30A8 */ addiu $sp, $sp, 0x30a8 -) -#endif +/** + * Shrink a non-paletted texture to half its size by averaging each each 2x2 + * group of pixels. + * + * Return the number of bytes written. + * + * If the source width is an odd number, the destination's final column is + * calculated by sampling the final source column twice. Likewise for the height. + */ +s32 texShrinkNonPaletted(u8 *src, u8 *dst, s32 srcwidth, s32 srcheight, s32 format) +{ + s32 i; + s32 j; + s32 alignedsrcwidth; + s32 aligneddstwidth; + u32 *dst32 = (u32 *) dst; + u16 *dst16 = (u16 *) dst; + u8 *dst8 = dst; + u32 *src32 = (u32 *) src; + u16 *src16 = (u16 *) src; + u8 *src8 = src; + s32 dstheight = (srcheight + 1) >> 1; + s32 r; + s32 g; + s32 b; + s32 a; + s32 c; + u32 tl32; + u32 tr32; + u32 bl32; + u32 br32; + u16 tl16; + u16 tr16; + u16 bl16; + u16 br16; + u8 tl8; + u8 tr8; + u8 bl8; + u8 br8; + s32 nextrow; + s32 nextcol; + switch (format) + { + case TEXFORMAT_RGBA32: + case TEXFORMAT_RGB24: + aligneddstwidth = (((srcwidth + 1) >> 1) + 3) & 0xffc; + alignedsrcwidth = (srcwidth + 3) & 0xffc; + break; + case TEXFORMAT_RGBA16: + case TEXFORMAT_RGB15: + case TEXFORMAT_IA16: + aligneddstwidth = (((srcwidth + 1) >> 1) + 3) & 0xffc; + alignedsrcwidth = (srcwidth + 3) & 0xffc; + break; + case TEXFORMAT_IA8: + case TEXFORMAT_I8: + aligneddstwidth = (((srcwidth + 1) >> 1) + 7) & 0xff8; + alignedsrcwidth = (srcwidth + 7) & 0xff8; + break; + case TEXFORMAT_IA4: + case TEXFORMAT_I4: + aligneddstwidth = (((srcwidth + 1) >> 1) + 15) & 0xff0; + alignedsrcwidth = (srcwidth + 15) & 0xff0; + break; + } -#ifdef NONMATCHING -void image_decompresion_related(void) { + switch (format) + { + case TEXFORMAT_RGBA32: + case TEXFORMAT_RGB24: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + tl32 = src32[j]; + tr32 = src32[nextcol]; + bl32 = src32[nextrow + j]; + br32 = src32[nextrow + nextcol]; + + r = ((((tl32 >> 24) & 0xff) + ((tr32 >> 24) & 0xff) + ((bl32 >> 24) & 0xff) + ((br32 >> 24) & 0xff)) >> 2) & 0xff; + g = ((((tl32 >> 16) & 0xff) + ((tr32 >> 16) & 0xff) + ((bl32 >> 16) & 0xff) + ((br32 >> 16) & 0xff)) >> 2) & 0xff; + b = ((((tl32 >> 8) & 0xff) + ((tr32 >> 8) & 0xff) + ((bl32 >> 8) & 0xff) + ((br32 >> 8) & 0xff)) >> 2) & 0xff; + a = ((((tl32 >> 0) & 0xff) + ((tr32 >> 0) & 0xff) + ((bl32 >> 0) & 0xff) + ((br32 >> 0) & 0xff) + 1) >> 2) & 0xff; + + dst32[j >> 1] = r << 24 | g << 16 | b << 8 | a; + } + + dst32 += aligneddstwidth; + src32 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth * 4; + + case TEXFORMAT_RGBA16: + case TEXFORMAT_RGB15: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + tl16 = src16[j]; + tr16 = src16[nextcol]; + bl16 = src16[nextrow + j]; + br16 = src16[nextrow + nextcol]; + + r = ((((tl16 >> 11) & 0x1f) + ((tr16 >> 11) & 0x1f) + ((bl16 >> 11) & 0x1f) + ((br16 >> 11) & 0x1f)) >> 2) & 0x1f; + g = ((((tl16 >> 6) & 0x1f) + ((tr16 >> 6) & 0x1f) + ((bl16 >> 6) & 0x1f) + ((br16 >> 6) & 0x1f)) >> 2) & 0x1f; + b = ((((tl16 >> 1) & 0x1f) + ((tr16 >> 1) & 0x1f) + ((bl16 >> 1) & 0x1f) + ((br16 >> 1) & 0x1f)) >> 2) & 0x1f; + a = ((((tl16 >> 0) & 0x01) + ((tr16 >> 0) & 0x01) + ((bl16 >> 0) & 0x01) + ((br16 >> 0) & 0x01) + 2) >> 2) & 0x01; + + dst16[j >> 1] = r << 11 | g << 6 | b << 1 | a; + } + + dst16 += aligneddstwidth; + src16 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth * 2; + + case TEXFORMAT_IA16: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + tl16 = src16[j]; + tr16 = src16[nextcol]; + bl16 = src16[nextrow + j]; + br16 = src16[nextrow + nextcol]; + + c = (((tl16 >> 8) & 0xff) + ((tr16 >> 8) & 0xff) + ((bl16 >> 8) & 0xff) + ((br16 >> 8) & 0xff)) >> 2; + a = ((tl16 & 0xff) + (tr16 & 0xff) + (bl16 & 0xff) + (br16 & 0xff) + 1) >> 2; + + dst16[j >> 1] = ((u8)c << 8) | (a & 0xFF); + } + + dst16 += aligneddstwidth; + src16 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth * 2; + + case TEXFORMAT_IA8: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + tl8 = src8[j]; + tr8 = src8[nextcol]; + bl8 = src8[nextrow + j]; + br8 = src8[nextrow + nextcol]; + + c = ((((tl8 >> 4) & 0xf) + ((tr8 >> 4) & 0xf) + ((bl8 >> 4) & 0xf) + ((br8 >> 4) & 0xf)) << 2) & 0xF0; + a = (((tl8 & 0xf) + (tr8 & 0xf) + (bl8 & 0xf) + (br8 & 0xf) + 1) >> 2) & 0xF; + + dst8[j >> 1] = c | a; + } + + dst8 += aligneddstwidth; + src8 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth; + + case TEXFORMAT_I8: + for (i = 0; i < srcheight; i += 2) + { + nextrow = i + 1 < srcheight ? alignedsrcwidth : 0; + + for (j = 0; j < alignedsrcwidth; j += 2) + { + nextcol = j + 1 < srcwidth ? j + 1 : j; + + tl8 = src8[j]; + tr8 = src8[nextcol]; + bl8 = src8[nextrow + j]; + br8 = src8[nextrow + nextcol]; + + c = (u16)((tl8 + tr8 + bl8 + br8 + 1) >> 2); + + dst8[j >> 1] = c; + } + + dst8 += aligneddstwidth; + src8 += alignedsrcwidth * 2; + } + + return dstheight * aligneddstwidth; + + case TEXFORMAT_IA4: + for (i = 0; i < srcheight; i += 2) + { + nextcol = i + 1; + + for (j = 0; j < alignedsrcwidth; j += 4) + { + tl8 = src8[j >> 1]; + tr8 = src8[(nextcol < srcheight ? (alignedsrcwidth >> 1) : 0) + (j >> 1)]; + bl8 = src8[(j >> 1) + 1]; + br8 = src8[(nextcol < srcheight ? (alignedsrcwidth >> 1) : 0) + (j >> 1) + 1]; + + c = (((((tl8 >> 5) & 7) + ((tl8 >> 1) & 7) + ((tr8 >> 5) & 7) + ((tr8 >> 1) & 7)) << 3) & 0xe0) + | (((((bl8 >> 5) & 7) + ((bl8 >> 1) & 7) + ((br8 >> 5) & 7) + ((br8 >> 1) & 7)) >> 1) & 0xe); + + a = (((((tl8 >> 4) & 1) + (tl8 & 1) + ((tr8 >> 4) & 1) + (tr8 & 1) + 1) << 2) & 0x10) + | (((((bl8 >> 4) & 1) + (bl8 & 1) + ((br8 >> 4) & 1) + (br8 & 1) + 1) >> 2) & 1); + + dst8[j >> 2] = c | a; + } + + dst8 += aligneddstwidth >> 1; + src8 += alignedsrcwidth; + } + + return (aligneddstwidth >> 1) * dstheight; + + case TEXFORMAT_I4: + for (i = 0; i < srcheight; i += 2) + { + for (j = 0; j < alignedsrcwidth; j += 4) + { + tl8 = src8[j >> 1]; + tr8 = src8[(i + 1 < srcheight ? (alignedsrcwidth >> 1) : 0) + (j >> 1)]; + bl8 = src8[(j >> 1) + 1]; + br8 = src8[(i + 1 < srcheight ? (alignedsrcwidth >> 1) : 0) + (j >> 1) + 1]; + + c = ((((tl8 >> 4) & 0xf) + (tl8 & 0xf) + ((tr8 >> 4) & 0xf) + (tr8 & 0xf)) << 2) & 0xf0; + a = ((((bl8 >> 4) & 0xf) + (bl8 & 0xf) + ((br8 >> 4) & 0xf) + (br8 & 0xf)) >> 2) & 0xf; + + dst8[j >> 2] = c | a; + } + + dst8 += aligneddstwidth >> 1; + src8 += alignedsrcwidth; + } + + return (aligneddstwidth >> 1) * dstheight; + } + + return 0; } -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BD58*/ -glabel jpt_8005BD58 -.word .L7F0C87CC -.word .L7F0C87F0 -.word .L7F0C87CC -.word .L7F0C87F0 -.word .L7F0C87F0 -.word .L7F0C8814 -.word .L7F0C8838 -.word .L7F0C8814 -.word .L7F0C8838 - -/*D:8005BD7C*/ -glabel jpt_8005BD7C -.word .L7F0C887C -.word .L7F0C8A2C -.word .L7F0C887C -.word .L7F0C8A2C -.word .L7F0C8BE0 -.word .L7F0C8D1C -.word .L7F0C8F00 -.word .L7F0C8E34 -.word .L7F0C9090 -.text -glabel image_decompresion_related -/* 0FD284 7F0C8754 27BDFF48 */ addiu $sp, $sp, -0xb8 -/* 0FD288 7F0C8758 8FA200C8 */ lw $v0, 0xc8($sp) -/* 0FD28C 7F0C875C 24F90001 */ addiu $t9, $a3, 1 -/* 0FD290 7F0C8760 AFB70020 */ sw $s7, 0x20($sp) -/* 0FD294 7F0C8764 AFB6001C */ sw $s6, 0x1c($sp) -/* 0FD298 7F0C8768 AFB50018 */ sw $s5, 0x18($sp) -/* 0FD29C 7F0C876C AFB40014 */ sw $s4, 0x14($sp) -/* 0FD2A0 7F0C8770 AFB10008 */ sw $s1, 8($sp) -/* 0FD2A4 7F0C8774 AFB00004 */ sw $s0, 4($sp) -/* 0FD2A8 7F0C8778 00196043 */ sra $t4, $t9, 1 -/* 0FD2AC 7F0C877C 2C410009 */ sltiu $at, $v0, 9 -/* 0FD2B0 7F0C8780 00C0A825 */ move $s5, $a2 -/* 0FD2B4 7F0C8784 00E0B825 */ move $s7, $a3 -/* 0FD2B8 7F0C8788 AFBE0024 */ sw $fp, 0x24($sp) -/* 0FD2BC 7F0C878C AFB30010 */ sw $s3, 0x10($sp) -/* 0FD2C0 7F0C8790 AFB2000C */ sw $s2, 0xc($sp) -/* 0FD2C4 7F0C8794 00A04825 */ move $t1, $a1 -/* 0FD2C8 7F0C8798 00A0B025 */ move $s6, $a1 -/* 0FD2CC 7F0C879C 00A08825 */ move $s1, $a1 -/* 0FD2D0 7F0C87A0 00801825 */ move $v1, $a0 -/* 0FD2D4 7F0C87A4 0080A025 */ move $s4, $a0 -/* 0FD2D8 7F0C87A8 00808025 */ move $s0, $a0 -/* 0FD2DC 7F0C87AC 1020002A */ beqz $at, .L7F0C8858 -/* 0FD2E0 7F0C87B0 AFAC004C */ sw $t4, 0x4c($sp) -/* 0FD2E4 7F0C87B4 0002C080 */ sll $t8, $v0, 2 -/* 0FD2E8 7F0C87B8 3C018006 */ lui $at, %hi(jpt_8005BD58) -/* 0FD2EC 7F0C87BC 00380821 */ addu $at, $at, $t8 -/* 0FD2F0 7F0C87C0 8C38BD58 */ lw $t8, %lo(jpt_8005BD58)($at) -/* 0FD2F4 7F0C87C4 03000008 */ jr $t8 -/* 0FD2F8 7F0C87C8 00000000 */ nop -.L7F0C87CC: -/* 0FD2FC 7F0C87CC 26AE0001 */ addiu $t6, $s5, 1 -/* 0FD300 7F0C87D0 000EC843 */ sra $t9, $t6, 1 -/* 0FD304 7F0C87D4 272F0003 */ addiu $t7, $t9, 3 -/* 0FD308 7F0C87D8 26B20003 */ addiu $s2, $s5, 3 -/* 0FD30C 7F0C87DC 31F80FFC */ andi $t8, $t7, 0xffc -/* 0FD310 7F0C87E0 324E0FFC */ andi $t6, $s2, 0xffc -/* 0FD314 7F0C87E4 AFB800A8 */ sw $t8, 0xa8($sp) -/* 0FD318 7F0C87E8 1000001B */ b .L7F0C8858 -/* 0FD31C 7F0C87EC AFAE00AC */ sw $t6, 0xac($sp) -.L7F0C87F0: -/* 0FD320 7F0C87F0 26B90001 */ addiu $t9, $s5, 1 -/* 0FD324 7F0C87F4 00197843 */ sra $t7, $t9, 1 -/* 0FD328 7F0C87F8 25F80003 */ addiu $t8, $t7, 3 -/* 0FD32C 7F0C87FC 26B20003 */ addiu $s2, $s5, 3 -/* 0FD330 7F0C8800 330E0FFC */ andi $t6, $t8, 0xffc -/* 0FD334 7F0C8804 32590FFC */ andi $t9, $s2, 0xffc -/* 0FD338 7F0C8808 AFAE00A8 */ sw $t6, 0xa8($sp) -/* 0FD33C 7F0C880C 10000012 */ b .L7F0C8858 -/* 0FD340 7F0C8810 AFB900AC */ sw $t9, 0xac($sp) -.L7F0C8814: -/* 0FD344 7F0C8814 26AF0001 */ addiu $t7, $s5, 1 -/* 0FD348 7F0C8818 000FC043 */ sra $t8, $t7, 1 -/* 0FD34C 7F0C881C 270E0007 */ addiu $t6, $t8, 7 -/* 0FD350 7F0C8820 26B20007 */ addiu $s2, $s5, 7 -/* 0FD354 7F0C8824 31D90FF8 */ andi $t9, $t6, 0xff8 -/* 0FD358 7F0C8828 324F0FF8 */ andi $t7, $s2, 0xff8 -/* 0FD35C 7F0C882C AFB900A8 */ sw $t9, 0xa8($sp) -/* 0FD360 7F0C8830 10000009 */ b .L7F0C8858 -/* 0FD364 7F0C8834 AFAF00AC */ sw $t7, 0xac($sp) -.L7F0C8838: -/* 0FD368 7F0C8838 26B80001 */ addiu $t8, $s5, 1 -/* 0FD36C 7F0C883C 00187043 */ sra $t6, $t8, 1 -/* 0FD370 7F0C8840 25D9000F */ addiu $t9, $t6, 0xf -/* 0FD374 7F0C8844 26B2000F */ addiu $s2, $s5, 0xf -/* 0FD378 7F0C8848 332F0FF0 */ andi $t7, $t9, 0xff0 -/* 0FD37C 7F0C884C 32580FF0 */ andi $t8, $s2, 0xff0 -/* 0FD380 7F0C8850 AFAF00A8 */ sw $t7, 0xa8($sp) -/* 0FD384 7F0C8854 AFB800AC */ sw $t8, 0xac($sp) -def_7F0C87C4: -.L7F0C8858: -/* 0FD388 7F0C8858 2C410009 */ sltiu $at, $v0, 9 -/* 0FD38C 7F0C885C 10200250 */ beqz $at, .L7F0C91A0 -/* 0FD390 7F0C8860 8FB200AC */ lw $s2, 0xac($sp) -/* 0FD394 7F0C8864 00027080 */ sll $t6, $v0, 2 -/* 0FD398 7F0C8868 3C018006 */ lui $at, %hi(jpt_8005BD7C) -/* 0FD39C 7F0C886C 002E0821 */ addu $at, $at, $t6 -/* 0FD3A0 7F0C8870 8C2EBD7C */ lw $t6, %lo(jpt_8005BD7C)($at) -/* 0FD3A4 7F0C8874 01C00008 */ jr $t6 -/* 0FD3A8 7F0C8878 00000000 */ nop -.L7F0C887C: -/* 0FD3AC 7F0C887C 1AE00064 */ blez $s7, .L7F0C8A10 -/* 0FD3B0 7F0C8880 0000F025 */ move $fp, $zero -/* 0FD3B4 7F0C8884 8FA400A8 */ lw $a0, 0xa8($sp) -/* 0FD3B8 7F0C8888 02402825 */ move $a1, $s2 -/* 0FD3BC 7F0C888C 000578C0 */ sll $t7, $a1, 3 -/* 0FD3C0 7F0C8890 0004C880 */ sll $t9, $a0, 2 -/* 0FD3C4 7F0C8894 03202025 */ move $a0, $t9 -/* 0FD3C8 7F0C8898 01E02825 */ move $a1, $t7 -.L7F0C889C: -/* 0FD3CC 7F0C889C 27D80001 */ addiu $t8, $fp, 1 -/* 0FD3D0 7F0C88A0 0317082A */ slt $at, $t8, $s7 -/* 0FD3D4 7F0C88A4 10200003 */ beqz $at, .L7F0C88B4 -/* 0FD3D8 7F0C88A8 00004025 */ move $t0, $zero -/* 0FD3DC 7F0C88AC 10000002 */ b .L7F0C88B8 -/* 0FD3E0 7F0C88B0 02409825 */ move $s3, $s2 -.L7F0C88B4: -/* 0FD3E4 7F0C88B4 00009825 */ move $s3, $zero -.L7F0C88B8: -/* 0FD3E8 7F0C88B8 1A400051 */ blez $s2, .L7F0C8A00 -/* 0FD3EC 7F0C88BC 27DE0002 */ addiu $fp, $fp, 2 -/* 0FD3F0 7F0C88C0 00137080 */ sll $t6, $s3, 2 -/* 0FD3F4 7F0C88C4 006E6821 */ addu $t5, $v1, $t6 -/* 0FD3F8 7F0C88C8 01A08025 */ move $s0, $t5 -/* 0FD3FC 7F0C88CC 00603025 */ move $a2, $v1 -.L7F0C88D0: -/* 0FD400 7F0C88D0 25020001 */ addiu $v0, $t0, 1 -/* 0FD404 7F0C88D4 0055082A */ slt $at, $v0, $s5 -/* 0FD408 7F0C88D8 10200003 */ beqz $at, .L7F0C88E8 -/* 0FD40C 7F0C88DC 01003825 */ move $a3, $t0 -/* 0FD410 7F0C88E0 10000001 */ b .L7F0C88E8 -/* 0FD414 7F0C88E4 00403825 */ move $a3, $v0 -.L7F0C88E8: -/* 0FD418 7F0C88E8 00075880 */ sll $t3, $a3, 2 -/* 0FD41C 7F0C88EC 006BC821 */ addu $t9, $v1, $t3 -/* 0FD420 7F0C88F0 8F2A0000 */ lw $t2, ($t9) -/* 0FD424 7F0C88F4 8CC20000 */ lw $v0, ($a2) -/* 0FD428 7F0C88F8 01AB7821 */ addu $t7, $t5, $t3 -/* 0FD42C 7F0C88FC 8E0C0000 */ lw $t4, ($s0) -/* 0FD430 7F0C8900 8DF10000 */ lw $s1, ($t7) -/* 0FD434 7F0C8904 000ACE02 */ srl $t9, $t2, 0x18 -/* 0FD438 7F0C8908 332F00FF */ andi $t7, $t9, 0xff -/* 0FD43C 7F0C890C 0002C602 */ srl $t8, $v0, 0x18 -/* 0FD440 7F0C8910 330E00FF */ andi $t6, $t8, 0xff -/* 0FD444 7F0C8914 01CFC021 */ addu $t8, $t6, $t7 -/* 0FD448 7F0C8918 000CCE02 */ srl $t9, $t4, 0x18 -/* 0FD44C 7F0C891C 332E00FF */ andi $t6, $t9, 0xff -/* 0FD450 7F0C8920 030E7821 */ addu $t7, $t8, $t6 -/* 0FD454 7F0C8924 0011CE02 */ srl $t9, $s1, 0x18 -/* 0FD458 7F0C8928 333800FF */ andi $t8, $t9, 0xff -/* 0FD45C 7F0C892C 01F87021 */ addu $t6, $t7, $t8 -/* 0FD460 7F0C8930 000E7882 */ srl $t7, $t6, 2 -/* 0FD464 7F0C8934 000FC600 */ sll $t8, $t7, 0x18 -/* 0FD468 7F0C8938 00027402 */ srl $t6, $v0, 0x10 -/* 0FD46C 7F0C893C 31D900FF */ andi $t9, $t6, 0xff -/* 0FD470 7F0C8940 000A7C02 */ srl $t7, $t2, 0x10 -/* 0FD474 7F0C8944 31EE00FF */ andi $t6, $t7, 0xff -/* 0FD478 7F0C8948 032E7821 */ addu $t7, $t9, $t6 -/* 0FD47C 7F0C894C 000CCC02 */ srl $t9, $t4, 0x10 -/* 0FD480 7F0C8950 332E00FF */ andi $t6, $t9, 0xff -/* 0FD484 7F0C8954 01EEC821 */ addu $t9, $t7, $t6 -/* 0FD488 7F0C8958 00117C02 */ srl $t7, $s1, 0x10 -/* 0FD48C 7F0C895C 31EE00FF */ andi $t6, $t7, 0xff -/* 0FD490 7F0C8960 032E7821 */ addu $t7, $t9, $t6 -/* 0FD494 7F0C8964 000FC882 */ srl $t9, $t7, 2 -/* 0FD498 7F0C8968 332E00FF */ andi $t6, $t9, 0xff -/* 0FD49C 7F0C896C 000E7C00 */ sll $t7, $t6, 0x10 -/* 0FD4A0 7F0C8970 030FC825 */ or $t9, $t8, $t7 -/* 0FD4A4 7F0C8974 00027202 */ srl $t6, $v0, 8 -/* 0FD4A8 7F0C8978 31D800FF */ andi $t8, $t6, 0xff -/* 0FD4AC 7F0C897C 000A7A02 */ srl $t7, $t2, 8 -/* 0FD4B0 7F0C8980 31EE00FF */ andi $t6, $t7, 0xff -/* 0FD4B4 7F0C8984 030E7821 */ addu $t7, $t8, $t6 -/* 0FD4B8 7F0C8988 000CC202 */ srl $t8, $t4, 8 -/* 0FD4BC 7F0C898C 330E00FF */ andi $t6, $t8, 0xff -/* 0FD4C0 7F0C8990 01EEC021 */ addu $t8, $t7, $t6 -/* 0FD4C4 7F0C8994 00117A02 */ srl $t7, $s1, 8 -/* 0FD4C8 7F0C8998 31EE00FF */ andi $t6, $t7, 0xff -/* 0FD4CC 7F0C899C 030E7821 */ addu $t7, $t8, $t6 -/* 0FD4D0 7F0C89A0 000FC082 */ srl $t8, $t7, 2 -/* 0FD4D4 7F0C89A4 330E00FF */ andi $t6, $t8, 0xff -/* 0FD4D8 7F0C89A8 000E7A00 */ sll $t7, $t6, 8 -/* 0FD4DC 7F0C89AC 032FC025 */ or $t8, $t9, $t7 -/* 0FD4E0 7F0C89B0 315900FF */ andi $t9, $t2, 0xff -/* 0FD4E4 7F0C89B4 304E00FF */ andi $t6, $v0, 0xff -/* 0FD4E8 7F0C89B8 01D97821 */ addu $t7, $t6, $t9 -/* 0FD4EC 7F0C89BC 318E00FF */ andi $t6, $t4, 0xff -/* 0FD4F0 7F0C89C0 01EEC821 */ addu $t9, $t7, $t6 -/* 0FD4F4 7F0C89C4 322F00FF */ andi $t7, $s1, 0xff -/* 0FD4F8 7F0C89C8 032F7021 */ addu $t6, $t9, $t7 -/* 0FD4FC 7F0C89CC 25D90001 */ addiu $t9, $t6, 1 -/* 0FD500 7F0C89D0 00197882 */ srl $t7, $t9, 2 -/* 0FD504 7F0C89D4 31EE00FF */ andi $t6, $t7, 0xff -/* 0FD508 7F0C89D8 00087843 */ sra $t7, $t0, 1 -/* 0FD50C 7F0C89DC 030EC825 */ or $t9, $t8, $t6 -/* 0FD510 7F0C89E0 25080002 */ addiu $t0, $t0, 2 -/* 0FD514 7F0C89E4 000FC080 */ sll $t8, $t7, 2 -/* 0FD518 7F0C89E8 0112082A */ slt $at, $t0, $s2 -/* 0FD51C 7F0C89EC 01387021 */ addu $t6, $t1, $t8 -/* 0FD520 7F0C89F0 24C60008 */ addiu $a2, $a2, 8 -/* 0FD524 7F0C89F4 26100008 */ addiu $s0, $s0, 8 -/* 0FD528 7F0C89F8 1420FFB5 */ bnez $at, .L7F0C88D0 -/* 0FD52C 7F0C89FC ADD90000 */ sw $t9, ($t6) -.L7F0C8A00: -/* 0FD530 7F0C8A00 03D7082A */ slt $at, $fp, $s7 -/* 0FD534 7F0C8A04 01244821 */ addu $t1, $t1, $a0 -/* 0FD538 7F0C8A08 1420FFA4 */ bnez $at, .L7F0C889C -/* 0FD53C 7F0C8A0C 00651821 */ addu $v1, $v1, $a1 -.L7F0C8A10: -/* 0FD540 7F0C8A10 8FAF004C */ lw $t7, 0x4c($sp) -/* 0FD544 7F0C8A14 8FB800A8 */ lw $t8, 0xa8($sp) -/* 0FD548 7F0C8A18 01F80019 */ multu $t7, $t8 -/* 0FD54C 7F0C8A1C 00001012 */ mflo $v0 -/* 0FD550 7F0C8A20 0002C880 */ sll $t9, $v0, 2 -/* 0FD554 7F0C8A24 100001DF */ b .L7F0C91A4 -/* 0FD558 7F0C8A28 03201025 */ move $v0, $t9 -.L7F0C8A2C: -/* 0FD55C 7F0C8A2C 1AE00065 */ blez $s7, .L7F0C8BC4 -/* 0FD560 7F0C8A30 0000F025 */ move $fp, $zero -/* 0FD564 7F0C8A34 8FAE00A8 */ lw $t6, 0xa8($sp) -/* 0FD568 7F0C8A38 0012C880 */ sll $t9, $s2, 2 -/* 0FD56C 7F0C8A3C AFB90034 */ sw $t9, 0x34($sp) -/* 0FD570 7F0C8A40 000E7840 */ sll $t7, $t6, 1 -/* 0FD574 7F0C8A44 AFAF0038 */ sw $t7, 0x38($sp) -.L7F0C8A48: -/* 0FD578 7F0C8A48 27CE0001 */ addiu $t6, $fp, 1 -/* 0FD57C 7F0C8A4C 01D7082A */ slt $at, $t6, $s7 -/* 0FD580 7F0C8A50 10200003 */ beqz $at, .L7F0C8A60 -/* 0FD584 7F0C8A54 00004025 */ move $t0, $zero -/* 0FD588 7F0C8A58 10000002 */ b .L7F0C8A64 -/* 0FD58C 7F0C8A5C 02409825 */ move $s3, $s2 -.L7F0C8A60: -/* 0FD590 7F0C8A60 00009825 */ move $s3, $zero -.L7F0C8A64: -/* 0FD594 7F0C8A64 1A400051 */ blez $s2, .L7F0C8BAC -/* 0FD598 7F0C8A68 27DE0002 */ addiu $fp, $fp, 2 -/* 0FD59C 7F0C8A6C 00137840 */ sll $t7, $s3, 1 -/* 0FD5A0 7F0C8A70 028F8821 */ addu $s1, $s4, $t7 -/* 0FD5A4 7F0C8A74 02208025 */ move $s0, $s1 -/* 0FD5A8 7F0C8A78 02806825 */ move $t5, $s4 -.L7F0C8A7C: -/* 0FD5AC 7F0C8A7C 25020001 */ addiu $v0, $t0, 1 -/* 0FD5B0 7F0C8A80 0055082A */ slt $at, $v0, $s5 -/* 0FD5B4 7F0C8A84 10200003 */ beqz $at, .L7F0C8A94 -/* 0FD5B8 7F0C8A88 01003825 */ move $a3, $t0 -/* 0FD5BC 7F0C8A8C 10000001 */ b .L7F0C8A94 -/* 0FD5C0 7F0C8A90 00403825 */ move $a3, $v0 -.L7F0C8A94: -/* 0FD5C4 7F0C8A94 00073040 */ sll $a2, $a3, 1 -/* 0FD5C8 7F0C8A98 0286C021 */ addu $t8, $s4, $a2 -/* 0FD5CC 7F0C8A9C 970A0000 */ lhu $t2, ($t8) -/* 0FD5D0 7F0C8AA0 95A90000 */ lhu $t1, ($t5) -/* 0FD5D4 7F0C8AA4 0226C821 */ addu $t9, $s1, $a2 -/* 0FD5D8 7F0C8AA8 960B0000 */ lhu $t3, ($s0) -/* 0FD5DC 7F0C8AAC 972C0000 */ lhu $t4, ($t9) -/* 0FD5E0 7F0C8AB0 000AC2C3 */ sra $t8, $t2, 0xb -/* 0FD5E4 7F0C8AB4 3319001F */ andi $t9, $t8, 0x1f -/* 0FD5E8 7F0C8AB8 000972C3 */ sra $t6, $t1, 0xb -/* 0FD5EC 7F0C8ABC 31CF001F */ andi $t7, $t6, 0x1f -/* 0FD5F0 7F0C8AC0 01F97021 */ addu $t6, $t7, $t9 -/* 0FD5F4 7F0C8AC4 000BC2C3 */ sra $t8, $t3, 0xb -/* 0FD5F8 7F0C8AC8 330F001F */ andi $t7, $t8, 0x1f -/* 0FD5FC 7F0C8ACC 01CFC821 */ addu $t9, $t6, $t7 -/* 0FD600 7F0C8AD0 000CC2C3 */ sra $t8, $t4, 0xb -/* 0FD604 7F0C8AD4 330E001F */ andi $t6, $t8, 0x1f -/* 0FD608 7F0C8AD8 032E7821 */ addu $t7, $t9, $t6 -/* 0FD60C 7F0C8ADC 000FC883 */ sra $t9, $t7, 2 -/* 0FD610 7F0C8AE0 001972C0 */ sll $t6, $t9, 0xb -/* 0FD614 7F0C8AE4 00097983 */ sra $t7, $t1, 6 -/* 0FD618 7F0C8AE8 31F8001F */ andi $t8, $t7, 0x1f -/* 0FD61C 7F0C8AEC 000AC983 */ sra $t9, $t2, 6 -/* 0FD620 7F0C8AF0 332F001F */ andi $t7, $t9, 0x1f -/* 0FD624 7F0C8AF4 030FC821 */ addu $t9, $t8, $t7 -/* 0FD628 7F0C8AF8 000BC183 */ sra $t8, $t3, 6 -/* 0FD62C 7F0C8AFC 330F001F */ andi $t7, $t8, 0x1f -/* 0FD630 7F0C8B00 032FC021 */ addu $t8, $t9, $t7 -/* 0FD634 7F0C8B04 000CC983 */ sra $t9, $t4, 6 -/* 0FD638 7F0C8B08 332F001F */ andi $t7, $t9, 0x1f -/* 0FD63C 7F0C8B0C 030FC821 */ addu $t9, $t8, $t7 -/* 0FD640 7F0C8B10 0019C083 */ sra $t8, $t9, 2 -/* 0FD644 7F0C8B14 330F001F */ andi $t7, $t8, 0x1f -/* 0FD648 7F0C8B18 000FC980 */ sll $t9, $t7, 6 -/* 0FD64C 7F0C8B1C 01D9C025 */ or $t8, $t6, $t9 -/* 0FD650 7F0C8B20 00097843 */ sra $t7, $t1, 1 -/* 0FD654 7F0C8B24 31EE001F */ andi $t6, $t7, 0x1f -/* 0FD658 7F0C8B28 000AC843 */ sra $t9, $t2, 1 -/* 0FD65C 7F0C8B2C 332F001F */ andi $t7, $t9, 0x1f -/* 0FD660 7F0C8B30 01CFC821 */ addu $t9, $t6, $t7 -/* 0FD664 7F0C8B34 000B7043 */ sra $t6, $t3, 1 -/* 0FD668 7F0C8B38 31CF001F */ andi $t7, $t6, 0x1f -/* 0FD66C 7F0C8B3C 032F7021 */ addu $t6, $t9, $t7 -/* 0FD670 7F0C8B40 000CC843 */ sra $t9, $t4, 1 -/* 0FD674 7F0C8B44 332F001F */ andi $t7, $t9, 0x1f -/* 0FD678 7F0C8B48 01CFC821 */ addu $t9, $t6, $t7 -/* 0FD67C 7F0C8B4C 00197083 */ sra $t6, $t9, 2 -/* 0FD680 7F0C8B50 31CF001F */ andi $t7, $t6, 0x1f -/* 0FD684 7F0C8B54 000FC840 */ sll $t9, $t7, 1 -/* 0FD688 7F0C8B58 03197025 */ or $t6, $t8, $t9 -/* 0FD68C 7F0C8B5C 31580001 */ andi $t8, $t2, 1 -/* 0FD690 7F0C8B60 312F0001 */ andi $t7, $t1, 1 -/* 0FD694 7F0C8B64 01F8C821 */ addu $t9, $t7, $t8 -/* 0FD698 7F0C8B68 316F0001 */ andi $t7, $t3, 1 -/* 0FD69C 7F0C8B6C 032FC021 */ addu $t8, $t9, $t7 -/* 0FD6A0 7F0C8B70 31990001 */ andi $t9, $t4, 1 -/* 0FD6A4 7F0C8B74 03197821 */ addu $t7, $t8, $t9 -/* 0FD6A8 7F0C8B78 25F80002 */ addiu $t8, $t7, 2 -/* 0FD6AC 7F0C8B7C 0018C883 */ sra $t9, $t8, 2 -/* 0FD6B0 7F0C8B80 332F0001 */ andi $t7, $t9, 1 -/* 0FD6B4 7F0C8B84 0008C843 */ sra $t9, $t0, 1 -/* 0FD6B8 7F0C8B88 01CFC025 */ or $t8, $t6, $t7 -/* 0FD6BC 7F0C8B8C 25080002 */ addiu $t0, $t0, 2 -/* 0FD6C0 7F0C8B90 00197040 */ sll $t6, $t9, 1 -/* 0FD6C4 7F0C8B94 0112082A */ slt $at, $t0, $s2 -/* 0FD6C8 7F0C8B98 02CE7821 */ addu $t7, $s6, $t6 -/* 0FD6CC 7F0C8B9C 25AD0004 */ addiu $t5, $t5, 4 -/* 0FD6D0 7F0C8BA0 26100004 */ addiu $s0, $s0, 4 -/* 0FD6D4 7F0C8BA4 1420FFB5 */ bnez $at, .L7F0C8A7C -/* 0FD6D8 7F0C8BA8 A5F80000 */ sh $t8, ($t7) -.L7F0C8BAC: -/* 0FD6DC 7F0C8BAC 8FB90038 */ lw $t9, 0x38($sp) -/* 0FD6E0 7F0C8BB0 8FAE0034 */ lw $t6, 0x34($sp) -/* 0FD6E4 7F0C8BB4 03D7082A */ slt $at, $fp, $s7 -/* 0FD6E8 7F0C8BB8 02D9B021 */ addu $s6, $s6, $t9 -/* 0FD6EC 7F0C8BBC 1420FFA2 */ bnez $at, .L7F0C8A48 -/* 0FD6F0 7F0C8BC0 028EA021 */ addu $s4, $s4, $t6 -.L7F0C8BC4: -/* 0FD6F4 7F0C8BC4 8FB8004C */ lw $t8, 0x4c($sp) -/* 0FD6F8 7F0C8BC8 8FAF00A8 */ lw $t7, 0xa8($sp) -/* 0FD6FC 7F0C8BCC 030F0019 */ multu $t8, $t7 -/* 0FD700 7F0C8BD0 00001012 */ mflo $v0 -/* 0FD704 7F0C8BD4 0002C840 */ sll $t9, $v0, 1 -/* 0FD708 7F0C8BD8 10000172 */ b .L7F0C91A4 -/* 0FD70C 7F0C8BDC 03201025 */ move $v0, $t9 -.L7F0C8BE0: -/* 0FD710 7F0C8BE0 1AE00047 */ blez $s7, .L7F0C8D00 -/* 0FD714 7F0C8BE4 0000F025 */ move $fp, $zero -/* 0FD718 7F0C8BE8 8FAE00A8 */ lw $t6, 0xa8($sp) -/* 0FD71C 7F0C8BEC 0012C880 */ sll $t9, $s2, 2 -/* 0FD720 7F0C8BF0 AFB90034 */ sw $t9, 0x34($sp) -/* 0FD724 7F0C8BF4 000EC040 */ sll $t8, $t6, 1 -/* 0FD728 7F0C8BF8 AFB80038 */ sw $t8, 0x38($sp) -.L7F0C8BFC: -/* 0FD72C 7F0C8BFC 27CE0001 */ addiu $t6, $fp, 1 -/* 0FD730 7F0C8C00 01D7082A */ slt $at, $t6, $s7 -/* 0FD734 7F0C8C04 10200003 */ beqz $at, .L7F0C8C14 -/* 0FD738 7F0C8C08 00004025 */ move $t0, $zero -/* 0FD73C 7F0C8C0C 10000002 */ b .L7F0C8C18 -/* 0FD740 7F0C8C10 02409825 */ move $s3, $s2 -.L7F0C8C14: -/* 0FD744 7F0C8C14 00009825 */ move $s3, $zero -.L7F0C8C18: -/* 0FD748 7F0C8C18 1A400033 */ blez $s2, .L7F0C8CE8 -/* 0FD74C 7F0C8C1C 27DE0002 */ addiu $fp, $fp, 2 -/* 0FD750 7F0C8C20 0013C040 */ sll $t8, $s3, 1 -/* 0FD754 7F0C8C24 02988821 */ addu $s1, $s4, $t8 -/* 0FD758 7F0C8C28 02208025 */ move $s0, $s1 -/* 0FD75C 7F0C8C2C 02806825 */ move $t5, $s4 -.L7F0C8C30: -/* 0FD760 7F0C8C30 25020001 */ addiu $v0, $t0, 1 -/* 0FD764 7F0C8C34 0055082A */ slt $at, $v0, $s5 -/* 0FD768 7F0C8C38 10200003 */ beqz $at, .L7F0C8C48 -/* 0FD76C 7F0C8C3C 01003825 */ move $a3, $t0 -/* 0FD770 7F0C8C40 10000001 */ b .L7F0C8C48 -/* 0FD774 7F0C8C44 00403825 */ move $a3, $v0 -.L7F0C8C48: -/* 0FD778 7F0C8C48 00073040 */ sll $a2, $a3, 1 -/* 0FD77C 7F0C8C4C 02867821 */ addu $t7, $s4, $a2 -/* 0FD780 7F0C8C50 95EA0000 */ lhu $t2, ($t7) -/* 0FD784 7F0C8C54 95A90000 */ lhu $t1, ($t5) -/* 0FD788 7F0C8C58 0226C821 */ addu $t9, $s1, $a2 -/* 0FD78C 7F0C8C5C 960B0000 */ lhu $t3, ($s0) -/* 0FD790 7F0C8C60 972C0000 */ lhu $t4, ($t9) -/* 0FD794 7F0C8C64 000A7A03 */ sra $t7, $t2, 8 -/* 0FD798 7F0C8C68 31F900FF */ andi $t9, $t7, 0xff -/* 0FD79C 7F0C8C6C 00097203 */ sra $t6, $t1, 8 -/* 0FD7A0 7F0C8C70 31D800FF */ andi $t8, $t6, 0xff -/* 0FD7A4 7F0C8C74 03197021 */ addu $t6, $t8, $t9 -/* 0FD7A8 7F0C8C78 000B7A03 */ sra $t7, $t3, 8 -/* 0FD7AC 7F0C8C7C 31F800FF */ andi $t8, $t7, 0xff -/* 0FD7B0 7F0C8C80 01D8C821 */ addu $t9, $t6, $t8 -/* 0FD7B4 7F0C8C84 000C7A03 */ sra $t7, $t4, 8 -/* 0FD7B8 7F0C8C88 31EE00FF */ andi $t6, $t7, 0xff -/* 0FD7BC 7F0C8C8C 032EC021 */ addu $t8, $t9, $t6 -/* 0FD7C0 7F0C8C90 0018C883 */ sra $t9, $t8, 2 -/* 0FD7C4 7F0C8C94 00197200 */ sll $t6, $t9, 8 -/* 0FD7C8 7F0C8C98 314F00FF */ andi $t7, $t2, 0xff -/* 0FD7CC 7F0C8C9C 313800FF */ andi $t8, $t1, 0xff -/* 0FD7D0 7F0C8CA0 030FC821 */ addu $t9, $t8, $t7 -/* 0FD7D4 7F0C8CA4 317800FF */ andi $t8, $t3, 0xff -/* 0FD7D8 7F0C8CA8 03387821 */ addu $t7, $t9, $t8 -/* 0FD7DC 7F0C8CAC 319900FF */ andi $t9, $t4, 0xff -/* 0FD7E0 7F0C8CB0 01F9C021 */ addu $t8, $t7, $t9 -/* 0FD7E4 7F0C8CB4 270F0001 */ addiu $t7, $t8, 1 -/* 0FD7E8 7F0C8CB8 000FC883 */ sra $t9, $t7, 2 -/* 0FD7EC 7F0C8CBC 333800FF */ andi $t8, $t9, 0xff -/* 0FD7F0 7F0C8CC0 0008C843 */ sra $t9, $t0, 1 -/* 0FD7F4 7F0C8CC4 01D87825 */ or $t7, $t6, $t8 -/* 0FD7F8 7F0C8CC8 25080002 */ addiu $t0, $t0, 2 -/* 0FD7FC 7F0C8CCC 00197040 */ sll $t6, $t9, 1 -/* 0FD800 7F0C8CD0 0112082A */ slt $at, $t0, $s2 -/* 0FD804 7F0C8CD4 02CEC021 */ addu $t8, $s6, $t6 -/* 0FD808 7F0C8CD8 25AD0004 */ addiu $t5, $t5, 4 -/* 0FD80C 7F0C8CDC 26100004 */ addiu $s0, $s0, 4 -/* 0FD810 7F0C8CE0 1420FFD3 */ bnez $at, .L7F0C8C30 -/* 0FD814 7F0C8CE4 A70F0000 */ sh $t7, ($t8) -.L7F0C8CE8: -/* 0FD818 7F0C8CE8 8FB90038 */ lw $t9, 0x38($sp) -/* 0FD81C 7F0C8CEC 8FAE0034 */ lw $t6, 0x34($sp) -/* 0FD820 7F0C8CF0 03D7082A */ slt $at, $fp, $s7 -/* 0FD824 7F0C8CF4 02D9B021 */ addu $s6, $s6, $t9 -/* 0FD828 7F0C8CF8 1420FFC0 */ bnez $at, .L7F0C8BFC -/* 0FD82C 7F0C8CFC 028EA021 */ addu $s4, $s4, $t6 -.L7F0C8D00: -/* 0FD830 7F0C8D00 8FAF004C */ lw $t7, 0x4c($sp) -/* 0FD834 7F0C8D04 8FB800A8 */ lw $t8, 0xa8($sp) -/* 0FD838 7F0C8D08 01F80019 */ multu $t7, $t8 -/* 0FD83C 7F0C8D0C 00001012 */ mflo $v0 -/* 0FD840 7F0C8D10 0002C840 */ sll $t9, $v0, 1 -/* 0FD844 7F0C8D14 10000123 */ b .L7F0C91A4 -/* 0FD848 7F0C8D18 03201025 */ move $v0, $t9 -.L7F0C8D1C: -/* 0FD84C 7F0C8D1C 1AE0003F */ blez $s7, .L7F0C8E1C -/* 0FD850 7F0C8D20 0000F025 */ move $fp, $zero -/* 0FD854 7F0C8D24 0012A040 */ sll $s4, $s2, 1 -.L7F0C8D28: -/* 0FD858 7F0C8D28 27CE0001 */ addiu $t6, $fp, 1 -/* 0FD85C 7F0C8D2C 01D7082A */ slt $at, $t6, $s7 -/* 0FD860 7F0C8D30 10200003 */ beqz $at, .L7F0C8D40 -/* 0FD864 7F0C8D34 00004025 */ move $t0, $zero -/* 0FD868 7F0C8D38 10000002 */ b .L7F0C8D44 -/* 0FD86C 7F0C8D3C 02409825 */ move $s3, $s2 -.L7F0C8D40: -/* 0FD870 7F0C8D40 00009825 */ move $s3, $zero -.L7F0C8D44: -/* 0FD874 7F0C8D44 1A400030 */ blez $s2, .L7F0C8E08 -/* 0FD878 7F0C8D48 27DE0002 */ addiu $fp, $fp, 2 -/* 0FD87C 7F0C8D4C 02006025 */ move $t4, $s0 -/* 0FD880 7F0C8D50 02706821 */ addu $t5, $s3, $s0 -.L7F0C8D54: -/* 0FD884 7F0C8D54 25020001 */ addiu $v0, $t0, 1 -/* 0FD888 7F0C8D58 0055082A */ slt $at, $v0, $s5 -/* 0FD88C 7F0C8D5C 10200003 */ beqz $at, .L7F0C8D6C -/* 0FD890 7F0C8D60 01003825 */ move $a3, $t0 -/* 0FD894 7F0C8D64 10000001 */ b .L7F0C8D6C -/* 0FD898 7F0C8D68 00403825 */ move $a3, $v0 -.L7F0C8D6C: -/* 0FD89C 7F0C8D6C 02077821 */ addu $t7, $s0, $a3 -/* 0FD8A0 7F0C8D70 91E90000 */ lbu $t1, ($t7) -/* 0FD8A4 7F0C8D74 0267C021 */ addu $t8, $s3, $a3 -/* 0FD8A8 7F0C8D78 918B0000 */ lbu $t3, ($t4) -/* 0FD8AC 7F0C8D7C 0310C821 */ addu $t9, $t8, $s0 -/* 0FD8B0 7F0C8D80 91AA0000 */ lbu $t2, ($t5) -/* 0FD8B4 7F0C8D84 93260000 */ lbu $a2, ($t9) -/* 0FD8B8 7F0C8D88 0009C103 */ sra $t8, $t1, 4 -/* 0FD8BC 7F0C8D8C 3319000F */ andi $t9, $t8, 0xf -/* 0FD8C0 7F0C8D90 000B7103 */ sra $t6, $t3, 4 -/* 0FD8C4 7F0C8D94 31CF000F */ andi $t7, $t6, 0xf -/* 0FD8C8 7F0C8D98 01F97021 */ addu $t6, $t7, $t9 -/* 0FD8CC 7F0C8D9C 000AC103 */ sra $t8, $t2, 4 -/* 0FD8D0 7F0C8DA0 330F000F */ andi $t7, $t8, 0xf -/* 0FD8D4 7F0C8DA4 01CFC821 */ addu $t9, $t6, $t7 -/* 0FD8D8 7F0C8DA8 0006C103 */ sra $t8, $a2, 4 -/* 0FD8DC 7F0C8DAC 330E000F */ andi $t6, $t8, 0xf -/* 0FD8E0 7F0C8DB0 032E7821 */ addu $t7, $t9, $t6 -/* 0FD8E4 7F0C8DB4 000FC080 */ sll $t8, $t7, 2 -/* 0FD8E8 7F0C8DB8 331900F0 */ andi $t9, $t8, 0xf0 -/* 0FD8EC 7F0C8DBC 312F000F */ andi $t7, $t1, 0xf -/* 0FD8F0 7F0C8DC0 316E000F */ andi $t6, $t3, 0xf -/* 0FD8F4 7F0C8DC4 01CFC021 */ addu $t8, $t6, $t7 -/* 0FD8F8 7F0C8DC8 314E000F */ andi $t6, $t2, 0xf -/* 0FD8FC 7F0C8DCC 030E7821 */ addu $t7, $t8, $t6 -/* 0FD900 7F0C8DD0 30D8000F */ andi $t8, $a2, 0xf -/* 0FD904 7F0C8DD4 01F87021 */ addu $t6, $t7, $t8 -/* 0FD908 7F0C8DD8 25CF0001 */ addiu $t7, $t6, 1 -/* 0FD90C 7F0C8DDC 000FC083 */ sra $t8, $t7, 2 -/* 0FD910 7F0C8DE0 330E000F */ andi $t6, $t8, 0xf -/* 0FD914 7F0C8DE4 0008C043 */ sra $t8, $t0, 1 -/* 0FD918 7F0C8DE8 25080002 */ addiu $t0, $t0, 2 -/* 0FD91C 7F0C8DEC 032E7825 */ or $t7, $t9, $t6 -/* 0FD920 7F0C8DF0 0112082A */ slt $at, $t0, $s2 -/* 0FD924 7F0C8DF4 0238C821 */ addu $t9, $s1, $t8 -/* 0FD928 7F0C8DF8 258C0002 */ addiu $t4, $t4, 2 -/* 0FD92C 7F0C8DFC 25AD0002 */ addiu $t5, $t5, 2 -/* 0FD930 7F0C8E00 1420FFD4 */ bnez $at, .L7F0C8D54 -/* 0FD934 7F0C8E04 A32F0000 */ sb $t7, ($t9) -.L7F0C8E08: -/* 0FD938 7F0C8E08 8FAE00A8 */ lw $t6, 0xa8($sp) -/* 0FD93C 7F0C8E0C 03D7082A */ slt $at, $fp, $s7 -/* 0FD940 7F0C8E10 02148021 */ addu $s0, $s0, $s4 -/* 0FD944 7F0C8E14 1420FFC4 */ bnez $at, .L7F0C8D28 -/* 0FD948 7F0C8E18 022E8821 */ addu $s1, $s1, $t6 -.L7F0C8E1C: -/* 0FD94C 7F0C8E1C 8FB8004C */ lw $t8, 0x4c($sp) -/* 0FD950 7F0C8E20 8FAF00A8 */ lw $t7, 0xa8($sp) -/* 0FD954 7F0C8E24 030F0019 */ multu $t8, $t7 -/* 0FD958 7F0C8E28 00001012 */ mflo $v0 -/* 0FD95C 7F0C8E2C 100000DE */ b .L7F0C91A8 -/* 0FD960 7F0C8E30 8FB00004 */ lw $s0, 4($sp) -.L7F0C8E34: -/* 0FD964 7F0C8E34 1AE0002C */ blez $s7, .L7F0C8EE8 -/* 0FD968 7F0C8E38 0000F025 */ move $fp, $zero -/* 0FD96C 7F0C8E3C 0012A040 */ sll $s4, $s2, 1 -.L7F0C8E40: -/* 0FD970 7F0C8E40 27D90001 */ addiu $t9, $fp, 1 -/* 0FD974 7F0C8E44 0337082A */ slt $at, $t9, $s7 -/* 0FD978 7F0C8E48 10200003 */ beqz $at, .L7F0C8E58 -/* 0FD97C 7F0C8E4C 00004025 */ move $t0, $zero -/* 0FD980 7F0C8E50 10000002 */ b .L7F0C8E5C -/* 0FD984 7F0C8E54 02409825 */ move $s3, $s2 -.L7F0C8E58: -/* 0FD988 7F0C8E58 00009825 */ move $s3, $zero -.L7F0C8E5C: -/* 0FD98C 7F0C8E5C 1A40001D */ blez $s2, .L7F0C8ED4 -/* 0FD990 7F0C8E60 27DE0002 */ addiu $fp, $fp, 2 -/* 0FD994 7F0C8E64 02006025 */ move $t4, $s0 -/* 0FD998 7F0C8E68 02706821 */ addu $t5, $s3, $s0 -.L7F0C8E6C: -/* 0FD99C 7F0C8E6C 25020001 */ addiu $v0, $t0, 1 -/* 0FD9A0 7F0C8E70 0055082A */ slt $at, $v0, $s5 -/* 0FD9A4 7F0C8E74 10200003 */ beqz $at, .L7F0C8E84 -/* 0FD9A8 7F0C8E78 01003825 */ move $a3, $t0 -/* 0FD9AC 7F0C8E7C 10000001 */ b .L7F0C8E84 -/* 0FD9B0 7F0C8E80 00403825 */ move $a3, $v0 -.L7F0C8E84: -/* 0FD9B4 7F0C8E84 02077021 */ addu $t6, $s0, $a3 -/* 0FD9B8 7F0C8E88 918B0000 */ lbu $t3, ($t4) -/* 0FD9BC 7F0C8E8C 91C90000 */ lbu $t1, ($t6) -/* 0FD9C0 7F0C8E90 0267C021 */ addu $t8, $s3, $a3 -/* 0FD9C4 7F0C8E94 91AA0000 */ lbu $t2, ($t5) -/* 0FD9C8 7F0C8E98 03107821 */ addu $t7, $t8, $s0 -/* 0FD9CC 7F0C8E9C 91E60000 */ lbu $a2, ($t7) -/* 0FD9D0 7F0C8EA0 0169C821 */ addu $t9, $t3, $t1 -/* 0FD9D4 7F0C8EA4 032A7021 */ addu $t6, $t9, $t2 -/* 0FD9D8 7F0C8EA8 01C6C021 */ addu $t8, $t6, $a2 -/* 0FD9DC 7F0C8EAC 270F0001 */ addiu $t7, $t8, 1 -/* 0FD9E0 7F0C8EB0 0008C043 */ sra $t8, $t0, 1 -/* 0FD9E4 7F0C8EB4 25080002 */ addiu $t0, $t0, 2 -/* 0FD9E8 7F0C8EB8 000F7083 */ sra $t6, $t7, 2 -/* 0FD9EC 7F0C8EBC 0112082A */ slt $at, $t0, $s2 -/* 0FD9F0 7F0C8EC0 02387821 */ addu $t7, $s1, $t8 -/* 0FD9F4 7F0C8EC4 258C0002 */ addiu $t4, $t4, 2 -/* 0FD9F8 7F0C8EC8 25AD0002 */ addiu $t5, $t5, 2 -/* 0FD9FC 7F0C8ECC 1420FFE7 */ bnez $at, .L7F0C8E6C -/* 0FDA00 7F0C8ED0 A1EE0000 */ sb $t6, ($t7) -.L7F0C8ED4: -/* 0FDA04 7F0C8ED4 8FB900A8 */ lw $t9, 0xa8($sp) -/* 0FDA08 7F0C8ED8 03D7082A */ slt $at, $fp, $s7 -/* 0FDA0C 7F0C8EDC 02148021 */ addu $s0, $s0, $s4 -/* 0FDA10 7F0C8EE0 1420FFD7 */ bnez $at, .L7F0C8E40 -/* 0FDA14 7F0C8EE4 02398821 */ addu $s1, $s1, $t9 -.L7F0C8EE8: -/* 0FDA18 7F0C8EE8 8FB8004C */ lw $t8, 0x4c($sp) -/* 0FDA1C 7F0C8EEC 8FAE00A8 */ lw $t6, 0xa8($sp) -/* 0FDA20 7F0C8EF0 030E0019 */ multu $t8, $t6 -/* 0FDA24 7F0C8EF4 00001012 */ mflo $v0 -/* 0FDA28 7F0C8EF8 100000AB */ b .L7F0C91A8 -/* 0FDA2C 7F0C8EFC 8FB00004 */ lw $s0, 4($sp) -.L7F0C8F00: -/* 0FDA30 7F0C8F00 1AE0005D */ blez $s7, .L7F0C9078 -/* 0FDA34 7F0C8F04 0000F025 */ move $fp, $zero -/* 0FDA38 7F0C8F08 8FB400A8 */ lw $s4, 0xa8($sp) -/* 0FDA3C 7F0C8F0C 00147843 */ sra $t7, $s4, 1 -/* 0FDA40 7F0C8F10 01E0A025 */ move $s4, $t7 -.L7F0C8F14: -/* 0FDA44 7F0C8F14 1A400053 */ blez $s2, .L7F0C9064 -/* 0FDA48 7F0C8F18 00004025 */ move $t0, $zero -/* 0FDA4C 7F0C8F1C 27C70001 */ addiu $a3, $fp, 1 -.L7F0C8F20: -/* 0FDA50 7F0C8F20 00086843 */ sra $t5, $t0, 1 -/* 0FDA54 7F0C8F24 01B01021 */ addu $v0, $t5, $s0 -/* 0FDA58 7F0C8F28 00F7082A */ slt $at, $a3, $s7 -/* 0FDA5C 7F0C8F2C 10200003 */ beqz $at, .L7F0C8F3C -/* 0FDA60 7F0C8F30 904B0000 */ lbu $t3, ($v0) -/* 0FDA64 7F0C8F34 10000002 */ b .L7F0C8F40 -/* 0FDA68 7F0C8F38 00129843 */ sra $s3, $s2, 1 -.L7F0C8F3C: -/* 0FDA6C 7F0C8F3C 00009825 */ move $s3, $zero -.L7F0C8F40: -/* 0FDA70 7F0C8F40 026DC821 */ addu $t9, $s3, $t5 -/* 0FDA74 7F0C8F44 0330C021 */ addu $t8, $t9, $s0 -/* 0FDA78 7F0C8F48 00F7082A */ slt $at, $a3, $s7 -/* 0FDA7C 7F0C8F4C 93090000 */ lbu $t1, ($t8) -/* 0FDA80 7F0C8F50 10200003 */ beqz $at, .L7F0C8F60 -/* 0FDA84 7F0C8F54 904A0001 */ lbu $t2, 1($v0) -/* 0FDA88 7F0C8F58 10000002 */ b .L7F0C8F64 -/* 0FDA8C 7F0C8F5C 00129843 */ sra $s3, $s2, 1 -.L7F0C8F60: -/* 0FDA90 7F0C8F60 00009825 */ move $s3, $zero -.L7F0C8F64: -/* 0FDA94 7F0C8F64 026D7021 */ addu $t6, $s3, $t5 -/* 0FDA98 7F0C8F68 01D07821 */ addu $t7, $t6, $s0 -/* 0FDA9C 7F0C8F6C 91E60001 */ lbu $a2, 1($t7) -/* 0FDAA0 7F0C8F70 000B7043 */ sra $t6, $t3, 1 -/* 0FDAA4 7F0C8F74 31CF0007 */ andi $t7, $t6, 7 -/* 0FDAA8 7F0C8F78 000BC943 */ sra $t9, $t3, 5 -/* 0FDAAC 7F0C8F7C 33380007 */ andi $t8, $t9, 7 -/* 0FDAB0 7F0C8F80 030FC821 */ addu $t9, $t8, $t7 -/* 0FDAB4 7F0C8F84 00097143 */ sra $t6, $t1, 5 -/* 0FDAB8 7F0C8F88 31D80007 */ andi $t8, $t6, 7 -/* 0FDABC 7F0C8F8C 03387821 */ addu $t7, $t9, $t8 -/* 0FDAC0 7F0C8F90 00097043 */ sra $t6, $t1, 1 -/* 0FDAC4 7F0C8F94 31D90007 */ andi $t9, $t6, 7 -/* 0FDAC8 7F0C8F98 01F9C021 */ addu $t8, $t7, $t9 -/* 0FDACC 7F0C8F9C 001870C0 */ sll $t6, $t8, 3 -/* 0FDAD0 7F0C8FA0 31CF00E0 */ andi $t7, $t6, 0xe0 -/* 0FDAD4 7F0C8FA4 000AC943 */ sra $t9, $t2, 5 -/* 0FDAD8 7F0C8FA8 33380007 */ andi $t8, $t9, 7 -/* 0FDADC 7F0C8FAC 000A7043 */ sra $t6, $t2, 1 -/* 0FDAE0 7F0C8FB0 31D90007 */ andi $t9, $t6, 7 -/* 0FDAE4 7F0C8FB4 03197021 */ addu $t6, $t8, $t9 -/* 0FDAE8 7F0C8FB8 0006C143 */ sra $t8, $a2, 5 -/* 0FDAEC 7F0C8FBC 33190007 */ andi $t9, $t8, 7 -/* 0FDAF0 7F0C8FC0 01D9C021 */ addu $t8, $t6, $t9 -/* 0FDAF4 7F0C8FC4 00067043 */ sra $t6, $a2, 1 -/* 0FDAF8 7F0C8FC8 31D90007 */ andi $t9, $t6, 7 -/* 0FDAFC 7F0C8FCC 03197021 */ addu $t6, $t8, $t9 -/* 0FDB00 7F0C8FD0 000EC043 */ sra $t8, $t6, 1 -/* 0FDB04 7F0C8FD4 3319000E */ andi $t9, $t8, 0xe -/* 0FDB08 7F0C8FD8 01F97025 */ or $t6, $t7, $t9 -/* 0FDB0C 7F0C8FDC 000BC103 */ sra $t8, $t3, 4 -/* 0FDB10 7F0C8FE0 330F0001 */ andi $t7, $t8, 1 -/* 0FDB14 7F0C8FE4 31790001 */ andi $t9, $t3, 1 -/* 0FDB18 7F0C8FE8 01F9C021 */ addu $t8, $t7, $t9 -/* 0FDB1C 7F0C8FEC 00097903 */ sra $t7, $t1, 4 -/* 0FDB20 7F0C8FF0 31F90001 */ andi $t9, $t7, 1 -/* 0FDB24 7F0C8FF4 03197821 */ addu $t7, $t8, $t9 -/* 0FDB28 7F0C8FF8 31380001 */ andi $t8, $t1, 1 -/* 0FDB2C 7F0C8FFC 01F8C821 */ addu $t9, $t7, $t8 -/* 0FDB30 7F0C9000 272F0001 */ addiu $t7, $t9, 1 -/* 0FDB34 7F0C9004 000FC080 */ sll $t8, $t7, 2 -/* 0FDB38 7F0C9008 33190010 */ andi $t9, $t8, 0x10 -/* 0FDB3C 7F0C900C 000A7903 */ sra $t7, $t2, 4 -/* 0FDB40 7F0C9010 31F80001 */ andi $t8, $t7, 1 -/* 0FDB44 7F0C9014 314F0001 */ andi $t7, $t2, 1 -/* 0FDB48 7F0C9018 030FC021 */ addu $t8, $t8, $t7 -/* 0FDB4C 7F0C901C AFAE0028 */ sw $t6, 0x28($sp) -/* 0FDB50 7F0C9020 00067903 */ sra $t7, $a2, 4 -/* 0FDB54 7F0C9024 31EE0001 */ andi $t6, $t7, 1 -/* 0FDB58 7F0C9028 030E7021 */ addu $t6, $t8, $t6 -/* 0FDB5C 7F0C902C 30D80001 */ andi $t8, $a2, 1 -/* 0FDB60 7F0C9030 01D87821 */ addu $t7, $t6, $t8 -/* 0FDB64 7F0C9034 25EE0001 */ addiu $t6, $t7, 1 -/* 0FDB68 7F0C9038 000EC083 */ sra $t8, $t6, 2 -/* 0FDB6C 7F0C903C 330F0001 */ andi $t7, $t8, 1 -/* 0FDB70 7F0C9040 8FB80028 */ lw $t8, 0x28($sp) -/* 0FDB74 7F0C9044 032F7025 */ or $t6, $t9, $t7 -/* 0FDB78 7F0C9048 00087883 */ sra $t7, $t0, 2 -/* 0FDB7C 7F0C904C 25080004 */ addiu $t0, $t0, 4 -/* 0FDB80 7F0C9050 030EC825 */ or $t9, $t8, $t6 -/* 0FDB84 7F0C9054 0112082A */ slt $at, $t0, $s2 -/* 0FDB88 7F0C9058 022FC021 */ addu $t8, $s1, $t7 -/* 0FDB8C 7F0C905C 1420FFB0 */ bnez $at, .L7F0C8F20 -/* 0FDB90 7F0C9060 A3190000 */ sb $t9, ($t8) -.L7F0C9064: -/* 0FDB94 7F0C9064 27DE0002 */ addiu $fp, $fp, 2 -/* 0FDB98 7F0C9068 03D7082A */ slt $at, $fp, $s7 -/* 0FDB9C 7F0C906C 02348821 */ addu $s1, $s1, $s4 -/* 0FDBA0 7F0C9070 1420FFA8 */ bnez $at, .L7F0C8F14 -/* 0FDBA4 7F0C9074 02128021 */ addu $s0, $s0, $s2 -.L7F0C9078: -/* 0FDBA8 7F0C9078 8FAE00A8 */ lw $t6, 0xa8($sp) -/* 0FDBAC 7F0C907C 000E7843 */ sra $t7, $t6, 1 -/* 0FDBB0 7F0C9080 01EC0019 */ multu $t7, $t4 -/* 0FDBB4 7F0C9084 00001012 */ mflo $v0 -/* 0FDBB8 7F0C9088 10000047 */ b .L7F0C91A8 -/* 0FDBBC 7F0C908C 8FB00004 */ lw $s0, 4($sp) -.L7F0C9090: -/* 0FDBC0 7F0C9090 1AE0003D */ blez $s7, .L7F0C9188 -/* 0FDBC4 7F0C9094 0000F025 */ move $fp, $zero -/* 0FDBC8 7F0C9098 8FB400A8 */ lw $s4, 0xa8($sp) -/* 0FDBCC 7F0C909C 0014C843 */ sra $t9, $s4, 1 -/* 0FDBD0 7F0C90A0 0320A025 */ move $s4, $t9 -.L7F0C90A4: -/* 0FDBD4 7F0C90A4 1A400033 */ blez $s2, .L7F0C9174 -/* 0FDBD8 7F0C90A8 00004025 */ move $t0, $zero -/* 0FDBDC 7F0C90AC 27C70001 */ addiu $a3, $fp, 1 -.L7F0C90B0: -/* 0FDBE0 7F0C90B0 00086843 */ sra $t5, $t0, 1 -/* 0FDBE4 7F0C90B4 01B01021 */ addu $v0, $t5, $s0 -/* 0FDBE8 7F0C90B8 00F7082A */ slt $at, $a3, $s7 -/* 0FDBEC 7F0C90BC 10200003 */ beqz $at, .L7F0C90CC -/* 0FDBF0 7F0C90C0 904B0000 */ lbu $t3, ($v0) -/* 0FDBF4 7F0C90C4 10000002 */ b .L7F0C90D0 -/* 0FDBF8 7F0C90C8 00129843 */ sra $s3, $s2, 1 -.L7F0C90CC: -/* 0FDBFC 7F0C90CC 00009825 */ move $s3, $zero -.L7F0C90D0: -/* 0FDC00 7F0C90D0 026DC021 */ addu $t8, $s3, $t5 -/* 0FDC04 7F0C90D4 03107021 */ addu $t6, $t8, $s0 -/* 0FDC08 7F0C90D8 00F7082A */ slt $at, $a3, $s7 -/* 0FDC0C 7F0C90DC 91C90000 */ lbu $t1, ($t6) -/* 0FDC10 7F0C90E0 10200003 */ beqz $at, .L7F0C90F0 -/* 0FDC14 7F0C90E4 904A0001 */ lbu $t2, 1($v0) -/* 0FDC18 7F0C90E8 10000002 */ b .L7F0C90F4 -/* 0FDC1C 7F0C90EC 00129843 */ sra $s3, $s2, 1 -.L7F0C90F0: -/* 0FDC20 7F0C90F0 00009825 */ move $s3, $zero -.L7F0C90F4: -/* 0FDC24 7F0C90F4 026D7821 */ addu $t7, $s3, $t5 -/* 0FDC28 7F0C90F8 01F0C821 */ addu $t9, $t7, $s0 -/* 0FDC2C 7F0C90FC 000BC103 */ sra $t8, $t3, 4 -/* 0FDC30 7F0C9100 330E000F */ andi $t6, $t8, 0xf -/* 0FDC34 7F0C9104 93260001 */ lbu $a2, 1($t9) -/* 0FDC38 7F0C9108 316F000F */ andi $t7, $t3, 0xf -/* 0FDC3C 7F0C910C 01CFC821 */ addu $t9, $t6, $t7 -/* 0FDC40 7F0C9110 0009C103 */ sra $t8, $t1, 4 -/* 0FDC44 7F0C9114 330E000F */ andi $t6, $t8, 0xf -/* 0FDC48 7F0C9118 032E7821 */ addu $t7, $t9, $t6 -/* 0FDC4C 7F0C911C 3138000F */ andi $t8, $t1, 0xf -/* 0FDC50 7F0C9120 01F8C821 */ addu $t9, $t7, $t8 -/* 0FDC54 7F0C9124 00197080 */ sll $t6, $t9, 2 -/* 0FDC58 7F0C9128 31CF00F0 */ andi $t7, $t6, 0xf0 -/* 0FDC5C 7F0C912C 000AC103 */ sra $t8, $t2, 4 -/* 0FDC60 7F0C9130 3319000F */ andi $t9, $t8, 0xf -/* 0FDC64 7F0C9134 314E000F */ andi $t6, $t2, 0xf -/* 0FDC68 7F0C9138 032EC021 */ addu $t8, $t9, $t6 -/* 0FDC6C 7F0C913C 0006C903 */ sra $t9, $a2, 4 -/* 0FDC70 7F0C9140 332E000F */ andi $t6, $t9, 0xf -/* 0FDC74 7F0C9144 030EC821 */ addu $t9, $t8, $t6 -/* 0FDC78 7F0C9148 30D8000F */ andi $t8, $a2, 0xf -/* 0FDC7C 7F0C914C 03387021 */ addu $t6, $t9, $t8 -/* 0FDC80 7F0C9150 000EC883 */ sra $t9, $t6, 2 -/* 0FDC84 7F0C9154 3338000F */ andi $t8, $t9, 0xf -/* 0FDC88 7F0C9158 0008C883 */ sra $t9, $t0, 2 -/* 0FDC8C 7F0C915C 25080004 */ addiu $t0, $t0, 4 -/* 0FDC90 7F0C9160 01F87025 */ or $t6, $t7, $t8 -/* 0FDC94 7F0C9164 0112082A */ slt $at, $t0, $s2 -/* 0FDC98 7F0C9168 02397821 */ addu $t7, $s1, $t9 -/* 0FDC9C 7F0C916C 1420FFD0 */ bnez $at, .L7F0C90B0 -/* 0FDCA0 7F0C9170 A1EE0000 */ sb $t6, ($t7) -.L7F0C9174: -/* 0FDCA4 7F0C9174 27DE0002 */ addiu $fp, $fp, 2 -/* 0FDCA8 7F0C9178 03D7082A */ slt $at, $fp, $s7 -/* 0FDCAC 7F0C917C 02348821 */ addu $s1, $s1, $s4 -/* 0FDCB0 7F0C9180 1420FFC8 */ bnez $at, .L7F0C90A4 -/* 0FDCB4 7F0C9184 02128021 */ addu $s0, $s0, $s2 -.L7F0C9188: -/* 0FDCB8 7F0C9188 8FB800A8 */ lw $t8, 0xa8($sp) -/* 0FDCBC 7F0C918C 0018C843 */ sra $t9, $t8, 1 -/* 0FDCC0 7F0C9190 032C0019 */ multu $t9, $t4 -/* 0FDCC4 7F0C9194 00001012 */ mflo $v0 -/* 0FDCC8 7F0C9198 10000003 */ b .L7F0C91A8 -/* 0FDCCC 7F0C919C 8FB00004 */ lw $s0, 4($sp) -def_7F0C8874: -.L7F0C91A0: -/* 0FDCD0 7F0C91A0 00001025 */ move $v0, $zero -.L7F0C91A4: -/* 0FDCD4 7F0C91A4 8FB00004 */ lw $s0, 4($sp) -.L7F0C91A8: -/* 0FDCD8 7F0C91A8 8FB10008 */ lw $s1, 8($sp) -/* 0FDCDC 7F0C91AC 8FB2000C */ lw $s2, 0xc($sp) -/* 0FDCE0 7F0C91B0 8FB30010 */ lw $s3, 0x10($sp) -/* 0FDCE4 7F0C91B4 8FB40014 */ lw $s4, 0x14($sp) -/* 0FDCE8 7F0C91B8 8FB50018 */ lw $s5, 0x18($sp) -/* 0FDCEC 7F0C91BC 8FB6001C */ lw $s6, 0x1c($sp) -/* 0FDCF0 7F0C91C0 8FB70020 */ lw $s7, 0x20($sp) -/* 0FDCF4 7F0C91C4 8FBE0024 */ lw $fp, 0x24($sp) -/* 0FDCF8 7F0C91C8 03E00008 */ jr $ra -/* 0FDCFC 7F0C91CC 27BD00B8 */ addiu $sp, $sp, 0xb8 -) -#endif +/** + * Inflate Huffman data. + * + * This function operates on single channels rather than whole colours. + * For example, for an RGBA32 image this function may be called once for each + * channel with chansize = 256. This means the resulting data is in the format + * RRR...GGG...BBB...AAA..., and the caller must convert it into a proper pixel + * format. + * + * A typical Huffman implementation stores a tree, where each node contains + * the lookup value and its frequency (number of uses). However, Rare's + * implementation only stores a list of frequencies. It uses the chansize + * to know how many values there are. + */ +void texInflateHuffman(u8 *dst, s32 numiterations, s32 chansize) +{ + u16 frequencies[2048]; + s16 nodes[2048][2]; + s32 i; + s32 rootindex; + s32 sum; + u16 minfreq1; + u16 minfreq2; + s32 minindex1; // 5c + s32 minindex2; // 58 + s32 done = 0; + // Read the frequencies list + for (i = 0; i < chansize; i++) { + frequencies[i] = texReadBits(8); + } + // Initialise the tree + for (i = 0; i < 2048; i++) { + nodes[i][0] = -1; + nodes[i][1] = -1; + } -#ifdef NONMATCHING -void generate_sample_table(void) { + // Find the two smallest frequencies + minfreq1 = 9999; + minfreq2 = 9999; + for (i = 0; i < chansize; i++) { + if (frequencies[i] < minfreq1) { + if (minfreq2 < minfreq1) { + minfreq1 = frequencies[i]; + minindex1 = i; + } else { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } else if (frequencies[i] < minfreq2) { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } + + // Build the tree. + // For each node in tree, a branch value < 10000 means this branch + // leads to another node, and the value is the target node's index. + // A branch value >= 10000 means the branch is a leaf node, + // and the value is the channel value + 10000. + while (!done) { + sum = frequencies[minindex1] + frequencies[minindex2]; + + if (sum == 0) { + sum = 1; + } + + frequencies[minindex1] = 9999; + frequencies[minindex2] = 9999; + + if (nodes[minindex1][0] < 0 && nodes[minindex1][1] < 0) { + nodes[minindex1][0] = minindex1 + 10000; + rootindex = minindex1; + frequencies[minindex1] = sum; + + if (nodes[minindex2][0] < 0 && nodes[minindex2][1] < 0) { + nodes[minindex1][1] = minindex2 + 10000; + } else { + nodes[minindex1][1] = minindex2; + } + } else if (nodes[minindex2][0] < 0 && nodes[minindex2][1] < 0) { + nodes[minindex2][0] = minindex2 + 10000; + rootindex = minindex2; + frequencies[minindex2] = sum; + + if (nodes[minindex1][0] < 0 && nodes[minindex1][1] < 0) { + nodes[minindex2][1] = minindex1 + 10000; + } else { + nodes[minindex2][1] = minindex1; + } + } else { + for (rootindex = 0; nodes[rootindex][0] >= 0 || nodes[rootindex][1] >= 0 || frequencies[rootindex] < 9999; rootindex++); + + frequencies[rootindex] = sum; + nodes[rootindex][0] = minindex1; + nodes[rootindex][1] = minindex2; + } + + // Find the two smallest frequencies again for the next iteration + minfreq1 = 9999; + minfreq2 = 9999; + + for (i = 0; i < chansize; i++) { + if (frequencies[i] < minfreq1) { + if (minfreq1 > minfreq2) { + minfreq1 = frequencies[i]; + minindex1 = i; + } else { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } else if (frequencies[i] < minfreq2) { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } + + if (minfreq1 == 9999 || minfreq2 == 9999) { + done = 1; + } + } + + // Read bits off the bitstring, traverse the tree + // and write the channel values to dst + for (i = 0; i < numiterations; i++) { + s32 indexorvalue = rootindex; + + while (indexorvalue < 10000) { + indexorvalue = nodes[indexorvalue][texReadBits(1)]; + } + + if (chansize <= 256) { + dst[i] = indexorvalue - 10000; + } else { + u16 *tmp = (u16 *)dst; + tmp[i] = indexorvalue - 10000; + } + } } -#else -GLOBAL_ASM( -.text -glabel generate_sample_table -/* 0FDD00 7F0C91D0 27BDCF88 */ addiu $sp, $sp, -0x3078 -/* 0FDD04 7F0C91D4 AFBF002C */ sw $ra, 0x2c($sp) -/* 0FDD08 7F0C91D8 AFB40028 */ sw $s4, 0x28($sp) -/* 0FDD0C 7F0C91DC AFB1001C */ sw $s1, 0x1c($sp) -/* 0FDD10 7F0C91E0 00C0A025 */ move $s4, $a2 -/* 0FDD14 7F0C91E4 AFB30024 */ sw $s3, 0x24($sp) -/* 0FDD18 7F0C91E8 AFB20020 */ sw $s2, 0x20($sp) -/* 0FDD1C 7F0C91EC AFB00018 */ sw $s0, 0x18($sp) -/* 0FDD20 7F0C91F0 AFA43078 */ sw $a0, 0x3078($sp) -/* 0FDD24 7F0C91F4 AFA5307C */ sw $a1, 0x307c($sp) -/* 0FDD28 7F0C91F8 0000F825 */ move $ra, $zero -/* 0FDD2C 7F0C91FC 18C0000A */ blez $a2, .L7F0C9228 -/* 0FDD30 7F0C9200 00008825 */ move $s1, $zero -/* 0FDD34 7F0C9204 27B02078 */ addiu $s0, $sp, 0x2078 -.L7F0C9208: -/* 0FDD38 7F0C9208 AFBF005C */ sw $ra, 0x5c($sp) -/* 0FDD3C 7F0C920C 0FC32FCB */ jal extractImageBitCount -/* 0FDD40 7F0C9210 24040008 */ li $a0, 8 -/* 0FDD44 7F0C9214 26310001 */ addiu $s1, $s1, 1 -/* 0FDD48 7F0C9218 8FBF005C */ lw $ra, 0x5c($sp) -/* 0FDD4C 7F0C921C 26100002 */ addiu $s0, $s0, 2 -/* 0FDD50 7F0C9220 1634FFF9 */ bne $s1, $s4, .L7F0C9208 -/* 0FDD54 7F0C9224 A602FFFE */ sh $v0, -2($s0) -.L7F0C9228: -/* 0FDD58 7F0C9228 27A20078 */ addiu $v0, $sp, 0x78 -/* 0FDD5C 7F0C922C 27A42078 */ addiu $a0, $sp, 0x2078 -/* 0FDD60 7F0C9230 2403FFFF */ li $v1, -1 -.L7F0C9234: -/* 0FDD64 7F0C9234 24420004 */ addiu $v0, $v0, 4 -/* 0FDD68 7F0C9238 0044082B */ sltu $at, $v0, $a0 -/* 0FDD6C 7F0C923C A443FFFC */ sh $v1, -4($v0) -/* 0FDD70 7F0C9240 1420FFFC */ bnez $at, .L7F0C9234 -/* 0FDD74 7F0C9244 A443FFFE */ sh $v1, -2($v0) -/* 0FDD78 7F0C9248 2408270F */ li $t0, 9999 -/* 0FDD7C 7F0C924C 2406270F */ li $a2, 9999 -/* 0FDD80 7F0C9250 1A800049 */ blez $s4, .L7F0C9378 -/* 0FDD84 7F0C9254 00008825 */ move $s1, $zero -/* 0FDD88 7F0C9258 32820001 */ andi $v0, $s4, 1 -/* 0FDD8C 7F0C925C 10400013 */ beqz $v0, .L7F0C92AC -/* 0FDD90 7F0C9260 27AF2078 */ addiu $t7, $sp, 0x2078 -/* 0FDD94 7F0C9264 97A22078 */ lhu $v0, 0x2078($sp) -/* 0FDD98 7F0C9268 2841270F */ slti $at, $v0, 0x270f -/* 0FDD9C 7F0C926C 50200005 */ beql $at, $zero, .L7F0C9284 -/* 0FDDA0 7F0C9270 2841270F */ slti $at, $v0, 0x270f -/* 0FDDA4 7F0C9274 3046FFFF */ andi $a2, $v0, 0xffff -/* 0FDDA8 7F0C9278 10000006 */ b .L7F0C9294 -/* 0FDDAC 7F0C927C AFA00060 */ sw $zero, 0x60($sp) -/* 0FDDB0 7F0C9280 2841270F */ slti $at, $v0, 0x270f -.L7F0C9284: -/* 0FDDB4 7F0C9284 50200004 */ beql $at, $zero, .L7F0C9298 -/* 0FDDB8 7F0C9288 8FA70060 */ lw $a3, 0x60($sp) -/* 0FDDBC 7F0C928C 97A62078 */ lhu $a2, 0x2078($sp) -/* 0FDDC0 7F0C9290 AFA00060 */ sw $zero, 0x60($sp) -.L7F0C9294: -/* 0FDDC4 7F0C9294 8FA70060 */ lw $a3, 0x60($sp) -.L7F0C9298: -/* 0FDDC8 7F0C9298 8FA90064 */ lw $t1, 0x64($sp) -/* 0FDDCC 7F0C929C 24110001 */ li $s1, 1 -/* 0FDDD0 7F0C92A0 AFA70060 */ sw $a3, 0x60($sp) -/* 0FDDD4 7F0C92A4 12340031 */ beq $s1, $s4, .L7F0C936C -/* 0FDDD8 7F0C92A8 AFA90064 */ sw $t1, 0x64($sp) -.L7F0C92AC: -/* 0FDDDC 7F0C92AC 00117040 */ sll $t6, $s1, 1 -/* 0FDDE0 7F0C92B0 01CF8021 */ addu $s0, $t6, $t7 -/* 0FDDE4 7F0C92B4 8FA70060 */ lw $a3, 0x60($sp) -/* 0FDDE8 7F0C92B8 8FA90064 */ lw $t1, 0x64($sp) -.L7F0C92BC: -/* 0FDDEC 7F0C92BC 96030000 */ lhu $v1, ($s0) -/* 0FDDF0 7F0C92C0 01002825 */ move $a1, $t0 -/* 0FDDF4 7F0C92C4 00C02025 */ move $a0, $a2 -/* 0FDDF8 7F0C92C8 0068082A */ slt $at, $v1, $t0 -/* 0FDDFC 7F0C92CC 1020000C */ beqz $at, .L7F0C9300 -/* 0FDE00 7F0C92D0 00601025 */ move $v0, $v1 -/* 0FDE04 7F0C92D4 0085082A */ slt $at, $a0, $a1 -/* 0FDE08 7F0C92D8 50200006 */ beql $at, $zero, .L7F0C92F4 -/* 0FDE0C 7F0C92DC 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FDE10 7F0C92E0 3068FFFF */ andi $t0, $v1, 0xffff -/* 0FDE14 7F0C92E4 01002825 */ move $a1, $t0 -/* 0FDE18 7F0C92E8 1000000B */ b .L7F0C9318 -/* 0FDE1C 7F0C92EC 02204825 */ move $t1, $s1 -/* 0FDE20 7F0C92F0 3066FFFF */ andi $a2, $v1, 0xffff -.L7F0C92F4: -/* 0FDE24 7F0C92F4 00C02025 */ move $a0, $a2 -/* 0FDE28 7F0C92F8 10000007 */ b .L7F0C9318 -/* 0FDE2C 7F0C92FC 02203825 */ move $a3, $s1 -.L7F0C9300: -/* 0FDE30 7F0C9300 0044082A */ slt $at, $v0, $a0 -/* 0FDE34 7F0C9304 50200005 */ beql $at, $zero, .L7F0C931C -/* 0FDE38 7F0C9308 96030002 */ lhu $v1, 2($s0) -/* 0FDE3C 7F0C930C 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FDE40 7F0C9310 00C02025 */ move $a0, $a2 -/* 0FDE44 7F0C9314 02203825 */ move $a3, $s1 -.L7F0C9318: -/* 0FDE48 7F0C9318 96030002 */ lhu $v1, 2($s0) -.L7F0C931C: -/* 0FDE4C 7F0C931C 0065082A */ slt $at, $v1, $a1 -/* 0FDE50 7F0C9320 1020000A */ beqz $at, .L7F0C934C -/* 0FDE54 7F0C9324 00601025 */ move $v0, $v1 -/* 0FDE58 7F0C9328 0085082A */ slt $at, $a0, $a1 -/* 0FDE5C 7F0C932C 50200005 */ beql $at, $zero, .L7F0C9344 -/* 0FDE60 7F0C9330 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FDE64 7F0C9334 3068FFFF */ andi $t0, $v1, 0xffff -/* 0FDE68 7F0C9338 10000009 */ b .L7F0C9360 -/* 0FDE6C 7F0C933C 26290001 */ addiu $t1, $s1, 1 -/* 0FDE70 7F0C9340 3066FFFF */ andi $a2, $v1, 0xffff -.L7F0C9344: -/* 0FDE74 7F0C9344 10000006 */ b .L7F0C9360 -/* 0FDE78 7F0C9348 26270001 */ addiu $a3, $s1, 1 -.L7F0C934C: -/* 0FDE7C 7F0C934C 0044082A */ slt $at, $v0, $a0 -/* 0FDE80 7F0C9350 50200004 */ beql $at, $zero, .L7F0C9364 -/* 0FDE84 7F0C9354 26310002 */ addiu $s1, $s1, 2 -/* 0FDE88 7F0C9358 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FDE8C 7F0C935C 26270001 */ addiu $a3, $s1, 1 -.L7F0C9360: -/* 0FDE90 7F0C9360 26310002 */ addiu $s1, $s1, 2 -.L7F0C9364: -/* 0FDE94 7F0C9364 1634FFD5 */ bne $s1, $s4, .L7F0C92BC -/* 0FDE98 7F0C9368 26100004 */ addiu $s0, $s0, 4 -.L7F0C936C: -/* 0FDE9C 7F0C936C 00008825 */ move $s1, $zero -/* 0FDEA0 7F0C9370 AFA70060 */ sw $a3, 0x60($sp) -/* 0FDEA4 7F0C9374 AFA90064 */ sw $t1, 0x64($sp) -.L7F0C9378: -/* 0FDEA8 7F0C9378 8FA70060 */ lw $a3, 0x60($sp) -/* 0FDEAC 7F0C937C 8FA90064 */ lw $t1, 0x64($sp) -/* 0FDEB0 7F0C9380 27B30078 */ addiu $s3, $sp, 0x78 -/* 0FDEB4 7F0C9384 240D270F */ li $t5, 9999 -/* 0FDEB8 7F0C9388 240C270F */ li $t4, 9999 -/* 0FDEBC 7F0C938C 27AB2078 */ addiu $t3, $sp, 0x2078 -/* 0FDEC0 7F0C9390 0007C040 */ sll $t8, $a3, 1 -.L7F0C9394: -/* 0FDEC4 7F0C9394 0009C840 */ sll $t9, $t1, 1 -/* 0FDEC8 7F0C9398 01791021 */ addu $v0, $t3, $t9 -/* 0FDECC 7F0C939C 01782821 */ addu $a1, $t3, $t8 -/* 0FDED0 7F0C93A0 94AE0000 */ lhu $t6, ($a1) -/* 0FDED4 7F0C93A4 944F0000 */ lhu $t7, ($v0) -/* 0FDED8 7F0C93A8 0009C080 */ sll $t8, $t1, 2 -/* 0FDEDC 7F0C93AC 0007C880 */ sll $t9, $a3, 2 -/* 0FDEE0 7F0C93B0 01CF5021 */ addu $t2, $t6, $t7 -/* 0FDEE4 7F0C93B4 02792021 */ addu $a0, $s3, $t9 -/* 0FDEE8 7F0C93B8 02781821 */ addu $v1, $s3, $t8 -/* 0FDEEC 7F0C93BC 2408270F */ li $t0, 9999 -/* 0FDEF0 7F0C93C0 15400002 */ bnez $t2, .L7F0C93CC -/* 0FDEF4 7F0C93C4 2406270F */ li $a2, 9999 -/* 0FDEF8 7F0C93C8 240A0001 */ li $t2, 1 -.L7F0C93CC: -/* 0FDEFC 7F0C93CC 846E0000 */ lh $t6, ($v1) -/* 0FDF00 7F0C93D0 A44C0000 */ sh $t4, ($v0) -/* 0FDF04 7F0C93D4 A4AC0000 */ sh $t4, ($a1) -/* 0FDF08 7F0C93D8 05C30014 */ bgezl $t6, .L7F0C942C -/* 0FDF0C 7F0C93DC 84980000 */ lh $t8, ($a0) -/* 0FDF10 7F0C93E0 846F0002 */ lh $t7, 2($v1) -/* 0FDF14 7F0C93E4 25382710 */ addiu $t8, $t1, 0x2710 -/* 0FDF18 7F0C93E8 05E30010 */ bgezl $t7, .L7F0C942C -/* 0FDF1C 7F0C93EC 84980000 */ lh $t8, ($a0) -/* 0FDF20 7F0C93F0 A4780000 */ sh $t8, ($v1) -/* 0FDF24 7F0C93F4 84990000 */ lh $t9, ($a0) -/* 0FDF28 7F0C93F8 01209025 */ move $s2, $t1 -/* 0FDF2C 7F0C93FC A44A0000 */ sh $t2, ($v0) -/* 0FDF30 7F0C9400 07210007 */ bgez $t9, .L7F0C9420 -/* 0FDF34 7F0C9404 00000000 */ nop -/* 0FDF38 7F0C9408 848E0002 */ lh $t6, 2($a0) -/* 0FDF3C 7F0C940C 24EF2710 */ addiu $t7, $a3, 0x2710 -/* 0FDF40 7F0C9410 05C10003 */ bgez $t6, .L7F0C9420 -/* 0FDF44 7F0C9414 00000000 */ nop -/* 0FDF48 7F0C9418 10000037 */ b .L7F0C94F8 -/* 0FDF4C 7F0C941C A46F0002 */ sh $t7, 2($v1) -.L7F0C9420: -/* 0FDF50 7F0C9420 10000035 */ b .L7F0C94F8 -/* 0FDF54 7F0C9424 A4670002 */ sh $a3, 2($v1) -/* 0FDF58 7F0C9428 84980000 */ lh $t8, ($a0) -.L7F0C942C: -/* 0FDF5C 7F0C942C 87AE0078 */ lh $t6, 0x78($sp) -/* 0FDF60 7F0C9430 07010013 */ bgez $t8, .L7F0C9480 -/* 0FDF64 7F0C9434 00000000 */ nop -/* 0FDF68 7F0C9438 84990002 */ lh $t9, 2($a0) -/* 0FDF6C 7F0C943C 07210010 */ bgez $t9, .L7F0C9480 -/* 0FDF70 7F0C9440 00000000 */ nop -/* 0FDF74 7F0C9444 24EE2710 */ addiu $t6, $a3, 0x2710 -/* 0FDF78 7F0C9448 A48E0000 */ sh $t6, ($a0) -/* 0FDF7C 7F0C944C 846F0000 */ lh $t7, ($v1) -/* 0FDF80 7F0C9450 00E09025 */ move $s2, $a3 -/* 0FDF84 7F0C9454 A4AA0000 */ sh $t2, ($a1) -/* 0FDF88 7F0C9458 05E10007 */ bgez $t7, .L7F0C9478 -/* 0FDF8C 7F0C945C 00000000 */ nop -/* 0FDF90 7F0C9460 84780002 */ lh $t8, 2($v1) -/* 0FDF94 7F0C9464 25392710 */ addiu $t9, $t1, 0x2710 -/* 0FDF98 7F0C9468 07010003 */ bgez $t8, .L7F0C9478 -/* 0FDF9C 7F0C946C 00000000 */ nop -/* 0FDFA0 7F0C9470 10000021 */ b .L7F0C94F8 -/* 0FDFA4 7F0C9474 A4990002 */ sh $t9, 2($a0) -.L7F0C9478: -/* 0FDFA8 7F0C9478 1000001F */ b .L7F0C94F8 -/* 0FDFAC 7F0C947C A4890002 */ sh $t1, 2($a0) -.L7F0C9480: -/* 0FDFB0 7F0C9480 05C10009 */ bgez $t6, .L7F0C94A8 -/* 0FDFB4 7F0C9484 00009025 */ move $s2, $zero -/* 0FDFB8 7F0C9488 00007880 */ sll $t7, $zero, 2 -/* 0FDFBC 7F0C948C 026F1021 */ addu $v0, $s3, $t7 -/* 0FDFC0 7F0C9490 84580002 */ lh $t8, 2($v0) -/* 0FDFC4 7F0C9494 97B92078 */ lhu $t9, 0x2078($sp) -/* 0FDFC8 7F0C9498 07010003 */ bgez $t8, .L7F0C94A8 -/* 0FDFCC 7F0C949C 2B21270F */ slti $at, $t9, 0x270f -/* 0FDFD0 7F0C94A0 50200011 */ beql $at, $zero, .L7F0C94E8 -/* 0FDFD4 7F0C94A4 0012C040 */ sll $t8, $s2, 1 -.L7F0C94A8: -/* 0FDFD8 7F0C94A8 26520001 */ addiu $s2, $s2, 1 -.L7F0C94AC: -/* 0FDFDC 7F0C94AC 00127080 */ sll $t6, $s2, 2 -/* 0FDFE0 7F0C94B0 026E1021 */ addu $v0, $s3, $t6 -/* 0FDFE4 7F0C94B4 844F0000 */ lh $t7, ($v0) -/* 0FDFE8 7F0C94B8 05E3FFFC */ bgezl $t7, .L7F0C94AC -/* 0FDFEC 7F0C94BC 26520001 */ addiu $s2, $s2, 1 -/* 0FDFF0 7F0C94C0 84580002 */ lh $t8, 2($v0) -/* 0FDFF4 7F0C94C4 0703FFF9 */ bgezl $t8, .L7F0C94AC -/* 0FDFF8 7F0C94C8 26520001 */ addiu $s2, $s2, 1 -/* 0FDFFC 7F0C94CC 0012C840 */ sll $t9, $s2, 1 -/* 0FE000 7F0C94D0 01797021 */ addu $t6, $t3, $t9 -/* 0FE004 7F0C94D4 95CF0000 */ lhu $t7, ($t6) -/* 0FE008 7F0C94D8 29E1270F */ slti $at, $t7, 0x270f -/* 0FE00C 7F0C94DC 5420FFF3 */ bnezl $at, .L7F0C94AC -/* 0FE010 7F0C94E0 26520001 */ addiu $s2, $s2, 1 -/* 0FE014 7F0C94E4 0012C040 */ sll $t8, $s2, 1 -.L7F0C94E8: -/* 0FE018 7F0C94E8 0178C821 */ addu $t9, $t3, $t8 -/* 0FE01C 7F0C94EC A72A0000 */ sh $t2, ($t9) -/* 0FE020 7F0C94F0 A4490000 */ sh $t1, ($v0) -/* 0FE024 7F0C94F4 A4470002 */ sh $a3, 2($v0) -.L7F0C94F8: -/* 0FE028 7F0C94F8 1A800040 */ blez $s4, .L7F0C95FC -/* 0FE02C 7F0C94FC 32820001 */ andi $v0, $s4, 1 -/* 0FE030 7F0C9500 50400010 */ beql $v0, $zero, .L7F0C9544 -/* 0FE034 7F0C9504 00117040 */ sll $t6, $s1, 1 -/* 0FE038 7F0C9508 97A22078 */ lhu $v0, 0x2078($sp) -/* 0FE03C 7F0C950C 24110001 */ li $s1, 1 -/* 0FE040 7F0C9510 2841270F */ slti $at, $v0, 0x270f -/* 0FE044 7F0C9514 50200005 */ beql $at, $zero, .L7F0C952C -/* 0FE048 7F0C9518 2841270F */ slti $at, $v0, 0x270f -/* 0FE04C 7F0C951C 3046FFFF */ andi $a2, $v0, 0xffff -/* 0FE050 7F0C9520 10000006 */ b .L7F0C953C -/* 0FE054 7F0C9524 00003825 */ move $a3, $zero -/* 0FE058 7F0C9528 2841270F */ slti $at, $v0, 0x270f -.L7F0C952C: -/* 0FE05C 7F0C952C 10200003 */ beqz $at, .L7F0C953C -/* 0FE060 7F0C9530 00000000 */ nop -/* 0FE064 7F0C9534 97A62078 */ lhu $a2, 0x2078($sp) -/* 0FE068 7F0C9538 00003825 */ move $a3, $zero -.L7F0C953C: -/* 0FE06C 7F0C953C 1234002E */ beq $s1, $s4, .L7F0C95F8 -/* 0FE070 7F0C9540 00117040 */ sll $t6, $s1, 1 -.L7F0C9544: -/* 0FE074 7F0C9544 016E8021 */ addu $s0, $t3, $t6 -.L7F0C9548: -/* 0FE078 7F0C9548 96030000 */ lhu $v1, ($s0) -/* 0FE07C 7F0C954C 01002825 */ move $a1, $t0 -/* 0FE080 7F0C9550 00C02025 */ move $a0, $a2 -/* 0FE084 7F0C9554 0068082A */ slt $at, $v1, $t0 -/* 0FE088 7F0C9558 1020000C */ beqz $at, .L7F0C958C -/* 0FE08C 7F0C955C 00601025 */ move $v0, $v1 -/* 0FE090 7F0C9560 0085082A */ slt $at, $a0, $a1 -/* 0FE094 7F0C9564 50200006 */ beql $at, $zero, .L7F0C9580 -/* 0FE098 7F0C9568 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FE09C 7F0C956C 3068FFFF */ andi $t0, $v1, 0xffff -/* 0FE0A0 7F0C9570 01002825 */ move $a1, $t0 -/* 0FE0A4 7F0C9574 1000000B */ b .L7F0C95A4 -/* 0FE0A8 7F0C9578 02204825 */ move $t1, $s1 -/* 0FE0AC 7F0C957C 3066FFFF */ andi $a2, $v1, 0xffff -.L7F0C9580: -/* 0FE0B0 7F0C9580 00C02025 */ move $a0, $a2 -/* 0FE0B4 7F0C9584 10000007 */ b .L7F0C95A4 -/* 0FE0B8 7F0C9588 02203825 */ move $a3, $s1 -.L7F0C958C: -/* 0FE0BC 7F0C958C 0044082A */ slt $at, $v0, $a0 -/* 0FE0C0 7F0C9590 50200005 */ beql $at, $zero, .L7F0C95A8 -/* 0FE0C4 7F0C9594 96030002 */ lhu $v1, 2($s0) -/* 0FE0C8 7F0C9598 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FE0CC 7F0C959C 00C02025 */ move $a0, $a2 -/* 0FE0D0 7F0C95A0 02203825 */ move $a3, $s1 -.L7F0C95A4: -/* 0FE0D4 7F0C95A4 96030002 */ lhu $v1, 2($s0) -.L7F0C95A8: -/* 0FE0D8 7F0C95A8 0065082A */ slt $at, $v1, $a1 -/* 0FE0DC 7F0C95AC 1020000A */ beqz $at, .L7F0C95D8 -/* 0FE0E0 7F0C95B0 00601025 */ move $v0, $v1 -/* 0FE0E4 7F0C95B4 0085082A */ slt $at, $a0, $a1 -/* 0FE0E8 7F0C95B8 50200005 */ beql $at, $zero, .L7F0C95D0 -/* 0FE0EC 7F0C95BC 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FE0F0 7F0C95C0 3068FFFF */ andi $t0, $v1, 0xffff -/* 0FE0F4 7F0C95C4 10000009 */ b .L7F0C95EC -/* 0FE0F8 7F0C95C8 26290001 */ addiu $t1, $s1, 1 -/* 0FE0FC 7F0C95CC 3066FFFF */ andi $a2, $v1, 0xffff -.L7F0C95D0: -/* 0FE100 7F0C95D0 10000006 */ b .L7F0C95EC -/* 0FE104 7F0C95D4 26270001 */ addiu $a3, $s1, 1 -.L7F0C95D8: -/* 0FE108 7F0C95D8 0044082A */ slt $at, $v0, $a0 -/* 0FE10C 7F0C95DC 50200004 */ beql $at, $zero, .L7F0C95F0 -/* 0FE110 7F0C95E0 26310002 */ addiu $s1, $s1, 2 -/* 0FE114 7F0C95E4 3066FFFF */ andi $a2, $v1, 0xffff -/* 0FE118 7F0C95E8 26270001 */ addiu $a3, $s1, 1 -.L7F0C95EC: -/* 0FE11C 7F0C95EC 26310002 */ addiu $s1, $s1, 2 -.L7F0C95F0: -/* 0FE120 7F0C95F0 1634FFD5 */ bne $s1, $s4, .L7F0C9548 -/* 0FE124 7F0C95F4 26100004 */ addiu $s0, $s0, 4 -.L7F0C95F8: -/* 0FE128 7F0C95F8 00008825 */ move $s1, $zero -.L7F0C95FC: -/* 0FE12C 7F0C95FC 51A80004 */ beql $t5, $t0, .L7F0C9610 -/* 0FE130 7F0C9600 241F0001 */ li $ra, 1 -/* 0FE134 7F0C9604 15A60002 */ bne $t5, $a2, .L7F0C9610 -/* 0FE138 7F0C9608 00000000 */ nop -/* 0FE13C 7F0C960C 241F0001 */ li $ra, 1 -.L7F0C9610: -/* 0FE140 7F0C9610 53E0FF60 */ beql $ra, $zero, .L7F0C9394 -/* 0FE144 7F0C9614 0007C040 */ sll $t8, $a3, 1 -/* 0FE148 7F0C9618 8FAF307C */ lw $t7, 0x307c($sp) -/* 0FE14C 7F0C961C AFB20070 */ sw $s2, 0x70($sp) -/* 0FE150 7F0C9620 27B30078 */ addiu $s3, $sp, 0x78 -/* 0FE154 7F0C9624 19E0001D */ blez $t7, .L7F0C969C -/* 0FE158 7F0C9628 8FA23078 */ lw $v0, 0x3078($sp) -/* 0FE15C 7F0C962C 2A412710 */ slti $at, $s2, 0x2710 -.L7F0C9630: -/* 0FE160 7F0C9630 1020000C */ beqz $at, .L7F0C9664 -/* 0FE164 7F0C9634 02408025 */ move $s0, $s2 -.L7F0C9638: -/* 0FE168 7F0C9638 0FC32FCB */ jal extractImageBitCount -/* 0FE16C 7F0C963C 24040001 */ li $a0, 1 -/* 0FE170 7F0C9640 0010C080 */ sll $t8, $s0, 2 -/* 0FE174 7F0C9644 0278C821 */ addu $t9, $s3, $t8 -/* 0FE178 7F0C9648 00027040 */ sll $t6, $v0, 1 -/* 0FE17C 7F0C964C 032E7821 */ addu $t7, $t9, $t6 -/* 0FE180 7F0C9650 85F00000 */ lh $s0, ($t7) -/* 0FE184 7F0C9654 2A012710 */ slti $at, $s0, 0x2710 -/* 0FE188 7F0C9658 1420FFF7 */ bnez $at, .L7F0C9638 -/* 0FE18C 7F0C965C 00000000 */ nop -/* 0FE190 7F0C9660 8FA23078 */ lw $v0, 0x3078($sp) -.L7F0C9664: -/* 0FE194 7F0C9664 2A810101 */ slti $at, $s4, 0x101 -/* 0FE198 7F0C9668 10200005 */ beqz $at, .L7F0C9680 -/* 0FE19C 7F0C966C 260ED8F0 */ addiu $t6, $s0, -0x2710 -/* 0FE1A0 7F0C9670 2618D8F0 */ addiu $t8, $s0, -0x2710 -/* 0FE1A4 7F0C9674 0051C821 */ addu $t9, $v0, $s1 -/* 0FE1A8 7F0C9678 10000004 */ b .L7F0C968C -/* 0FE1AC 7F0C967C A3380000 */ sb $t8, ($t9) -.L7F0C9680: -/* 0FE1B0 7F0C9680 00117840 */ sll $t7, $s1, 1 -/* 0FE1B4 7F0C9684 004FC021 */ addu $t8, $v0, $t7 -/* 0FE1B8 7F0C9688 A70E0000 */ sh $t6, ($t8) -.L7F0C968C: -/* 0FE1BC 7F0C968C 8FB9307C */ lw $t9, 0x307c($sp) -/* 0FE1C0 7F0C9690 26310001 */ addiu $s1, $s1, 1 -/* 0FE1C4 7F0C9694 5639FFE6 */ bnel $s1, $t9, .L7F0C9630 -/* 0FE1C8 7F0C9698 2A412710 */ slti $at, $s2, 0x2710 -.L7F0C969C: -/* 0FE1CC 7F0C969C 8FBF002C */ lw $ra, 0x2c($sp) -/* 0FE1D0 7F0C96A0 8FB00018 */ lw $s0, 0x18($sp) -/* 0FE1D4 7F0C96A4 8FB1001C */ lw $s1, 0x1c($sp) -/* 0FE1D8 7F0C96A8 8FB20020 */ lw $s2, 0x20($sp) -/* 0FE1DC 7F0C96AC 8FB30024 */ lw $s3, 0x24($sp) -/* 0FE1E0 7F0C96B0 8FB40028 */ lw $s4, 0x28($sp) -/* 0FE1E4 7F0C96B4 03E00008 */ jr $ra -/* 0FE1E8 7F0C96B8 27BD3078 */ addiu $sp, $sp, 0x3078 -) -#endif +/** + * Inflate runlength-encoded data. + * + * This data consists of a 10 bit header followed by a list of directives, + * where each directive can either be a literal block or a repeat (run) of + * blocks within a sliding window. + * + * The header format is: + * + * 3 bits btfieldsize: The size in bits of the backtrack distance fields + * 3 bits rlfieldsize: The size in bits of the runlen fields + * 4 bits blocksize: The size in bits of each block of data + * + * In the data, the first bit is 0 if it's a literal block or 1 if it's a run. + * + * For literal blocks, the next bits should be read and appended to + * the output stream. + * + * For runs, the next bits are the backtrack length (in blocks) + * plus one, and the next bits are the run length (in blocks) + * minus a calculated fudge value. + * + * The fudge value is calculated based on the field sizes. For small runs it is + * more space efficient to use multiple literal directives rather than a run + * directive. Because of this, smaller runs are not used and the run lengths + * in the data can be offset accordingly - this offset is the fudge value. + * + * Every run must be followed by a literal block without the 1-bit marker. + * The algorithm does not support back to back runs. + */ +void texInflateRle(u8 *dst, s32 blockstotal) +{ + s32 btfieldsize = texReadBits(3); + s32 rlfieldsize = texReadBits(3); + s32 blocksize = texReadBits(4); + s32 cost; + s32 fudge; + s32 blocksdone; + s32 i; -#ifdef NONMATCHING -void type4_7_9_getsamples(void) { + // Calculate the fudge value + cost = btfieldsize + rlfieldsize + blocksize + 1; + fudge = 0; + while (cost > 0) { + cost = cost - blocksize - 1; + fudge++; + } + + blocksdone = 0; + + while (blocksdone < blockstotal) { + if (texReadBits(1) == 0) { + // Found a literal directive + if (blocksize <= 8) { + dst[blocksdone] = texReadBits(blocksize); + blocksdone++; + } else { + u16 *tmp = (u16 *)dst; + tmp[blocksdone] = texReadBits(blocksize); + blocksdone++; + } + } else { + // Found a run directive + s32 startblockindex = blocksdone - texReadBits(btfieldsize) - 1; + s32 runnumblocks = texReadBits(rlfieldsize) + fudge; + + if (blocksize <= 8) { + for (i = startblockindex; i < startblockindex + runnumblocks; i++) { + dst[blocksdone] = dst[i]; + blocksdone++; + } + + // The next instruction must be a literal + dst[blocksdone] = texReadBits(blocksize); + blocksdone++; + } else { + u16 *tmp = (u16 *)dst; + + for (i = startblockindex; i < startblockindex + runnumblocks; i++) { + tmp[blocksdone] = tmp[i]; + blocksdone++; + } + + // The next instruction must be a literal + tmp[blocksdone] = texReadBits(blocksize); + blocksdone++; + } + } + } } -#else -GLOBAL_ASM( -.text -glabel type4_7_9_getsamples -/* 0FE1EC 7F0C96BC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0FE1F0 7F0C96C0 AFB2001C */ sw $s2, 0x1c($sp) -/* 0FE1F4 7F0C96C4 00809025 */ move $s2, $a0 -/* 0FE1F8 7F0C96C8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0FE1FC 7F0C96CC AFB50028 */ sw $s5, 0x28($sp) -/* 0FE200 7F0C96D0 AFB40024 */ sw $s4, 0x24($sp) -/* 0FE204 7F0C96D4 AFB30020 */ sw $s3, 0x20($sp) -/* 0FE208 7F0C96D8 AFB10018 */ sw $s1, 0x18($sp) -/* 0FE20C 7F0C96DC AFB00014 */ sw $s0, 0x14($sp) -/* 0FE210 7F0C96E0 AFA5003C */ sw $a1, 0x3c($sp) -/* 0FE214 7F0C96E4 0FC32FCB */ jal extractImageBitCount -/* 0FE218 7F0C96E8 24040003 */ li $a0, 3 -/* 0FE21C 7F0C96EC AFA20034 */ sw $v0, 0x34($sp) -/* 0FE220 7F0C96F0 0FC32FCB */ jal extractImageBitCount -/* 0FE224 7F0C96F4 24040003 */ li $a0, 3 -/* 0FE228 7F0C96F8 AFA20030 */ sw $v0, 0x30($sp) -/* 0FE22C 7F0C96FC 0FC32FCB */ jal extractImageBitCount -/* 0FE230 7F0C9700 24040004 */ li $a0, 4 -/* 0FE234 7F0C9704 8FAE0034 */ lw $t6, 0x34($sp) -/* 0FE238 7F0C9708 8FAF0030 */ lw $t7, 0x30($sp) -/* 0FE23C 7F0C970C 0040A025 */ move $s4, $v0 -/* 0FE240 7F0C9710 0000A825 */ move $s5, $zero -/* 0FE244 7F0C9714 01CFC021 */ addu $t8, $t6, $t7 -/* 0FE248 7F0C9718 03022021 */ addu $a0, $t8, $v0 -/* 0FE24C 7F0C971C 24830001 */ addiu $v1, $a0, 1 -/* 0FE250 7F0C9720 18600005 */ blez $v1, .L7F0C9738 -/* 0FE254 7F0C9724 8FB9003C */ lw $t9, 0x3c($sp) -.L7F0C9728: -/* 0FE258 7F0C9728 00621823 */ subu $v1, $v1, $v0 -/* 0FE25C 7F0C972C 2463FFFF */ addiu $v1, $v1, -1 -/* 0FE260 7F0C9730 1C60FFFD */ bgtz $v1, .L7F0C9728 -/* 0FE264 7F0C9734 26B50001 */ addiu $s5, $s5, 1 -.L7F0C9738: -/* 0FE268 7F0C9738 1B200070 */ blez $t9, .L7F0C98FC -/* 0FE26C 7F0C973C 00008825 */ move $s1, $zero -.L7F0C9740: -/* 0FE270 7F0C9740 0FC32FCB */ jal extractImageBitCount -/* 0FE274 7F0C9744 24040001 */ li $a0, 1 -/* 0FE278 7F0C9748 1440000F */ bnez $v0, .L7F0C9788 -/* 0FE27C 7F0C974C 2A810009 */ slti $at, $s4, 9 -/* 0FE280 7F0C9750 10200007 */ beqz $at, .L7F0C9770 -/* 0FE284 7F0C9754 02802025 */ move $a0, $s4 -/* 0FE288 7F0C9758 02802025 */ move $a0, $s4 -/* 0FE28C 7F0C975C 0FC32FCB */ jal extractImageBitCount -/* 0FE290 7F0C9760 02518021 */ addu $s0, $s2, $s1 -/* 0FE294 7F0C9764 A2020000 */ sb $v0, ($s0) -/* 0FE298 7F0C9768 10000060 */ b .L7F0C98EC -/* 0FE29C 7F0C976C 26310001 */ addiu $s1, $s1, 1 -.L7F0C9770: -/* 0FE2A0 7F0C9770 00114040 */ sll $t0, $s1, 1 -/* 0FE2A4 7F0C9774 0FC32FCB */ jal extractImageBitCount -/* 0FE2A8 7F0C9778 02488021 */ addu $s0, $s2, $t0 -/* 0FE2AC 7F0C977C A6020000 */ sh $v0, ($s0) -/* 0FE2B0 7F0C9780 1000005A */ b .L7F0C98EC -/* 0FE2B4 7F0C9784 26310001 */ addiu $s1, $s1, 1 -.L7F0C9788: -/* 0FE2B8 7F0C9788 0FC32FCB */ jal extractImageBitCount -/* 0FE2BC 7F0C978C 8FA40034 */ lw $a0, 0x34($sp) -/* 0FE2C0 7F0C9790 02229823 */ subu $s3, $s1, $v0 -/* 0FE2C4 7F0C9794 2673FFFF */ addiu $s3, $s3, -1 -/* 0FE2C8 7F0C9798 0FC32FCB */ jal extractImageBitCount -/* 0FE2CC 7F0C979C 8FA40030 */ lw $a0, 0x30($sp) -/* 0FE2D0 7F0C97A0 00552021 */ addu $a0, $v0, $s5 -/* 0FE2D4 7F0C97A4 2A810009 */ slti $at, $s4, 9 -/* 0FE2D8 7F0C97A8 10200027 */ beqz $at, .L7F0C9848 -/* 0FE2DC 7F0C97AC 00803825 */ move $a3, $a0 -/* 0FE2E0 7F0C97B0 02643021 */ addu $a2, $s3, $a0 -/* 0FE2E4 7F0C97B4 0266082A */ slt $at, $s3, $a2 -/* 0FE2E8 7F0C97B8 02601825 */ move $v1, $s3 -/* 0FE2EC 7F0C97BC 1020001D */ beqz $at, .L7F0C9834 -/* 0FE2F0 7F0C97C0 02518021 */ addu $s0, $s2, $s1 -/* 0FE2F4 7F0C97C4 00D32823 */ subu $a1, $a2, $s3 -/* 0FE2F8 7F0C97C8 30A90003 */ andi $t1, $a1, 3 -/* 0FE2FC 7F0C97CC 1120000A */ beqz $t1, .L7F0C97F8 -/* 0FE300 7F0C97D0 01332021 */ addu $a0, $t1, $s3 -/* 0FE304 7F0C97D4 02431021 */ addu $v0, $s2, $v1 -.L7F0C97D8: -/* 0FE308 7F0C97D8 904A0000 */ lbu $t2, ($v0) -/* 0FE30C 7F0C97DC 24630001 */ addiu $v1, $v1, 1 -/* 0FE310 7F0C97E0 26310001 */ addiu $s1, $s1, 1 -/* 0FE314 7F0C97E4 26100001 */ addiu $s0, $s0, 1 -/* 0FE318 7F0C97E8 24420001 */ addiu $v0, $v0, 1 -/* 0FE31C 7F0C97EC 1483FFFA */ bne $a0, $v1, .L7F0C97D8 -/* 0FE320 7F0C97F0 A20AFFFF */ sb $t2, -1($s0) -/* 0FE324 7F0C97F4 1066000F */ beq $v1, $a2, .L7F0C9834 -.L7F0C97F8: -/* 0FE328 7F0C97F8 02672021 */ addu $a0, $s3, $a3 -/* 0FE32C 7F0C97FC 02431021 */ addu $v0, $s2, $v1 -.L7F0C9800: -/* 0FE330 7F0C9800 904B0000 */ lbu $t3, ($v0) -/* 0FE334 7F0C9804 24630004 */ addiu $v1, $v1, 4 -/* 0FE338 7F0C9808 26310004 */ addiu $s1, $s1, 4 -/* 0FE33C 7F0C980C A20B0000 */ sb $t3, ($s0) -/* 0FE340 7F0C9810 904C0001 */ lbu $t4, 1($v0) -/* 0FE344 7F0C9814 26100004 */ addiu $s0, $s0, 4 -/* 0FE348 7F0C9818 24420004 */ addiu $v0, $v0, 4 -/* 0FE34C 7F0C981C A20CFFFD */ sb $t4, -3($s0) -/* 0FE350 7F0C9820 904DFFFE */ lbu $t5, -2($v0) -/* 0FE354 7F0C9824 A20DFFFE */ sb $t5, -2($s0) -/* 0FE358 7F0C9828 904EFFFF */ lbu $t6, -1($v0) -/* 0FE35C 7F0C982C 1464FFF4 */ bne $v1, $a0, .L7F0C9800 -/* 0FE360 7F0C9830 A20EFFFF */ sb $t6, -1($s0) -.L7F0C9834: -/* 0FE364 7F0C9834 0FC32FCB */ jal extractImageBitCount -/* 0FE368 7F0C9838 02802025 */ move $a0, $s4 -/* 0FE36C 7F0C983C A2020000 */ sb $v0, ($s0) -/* 0FE370 7F0C9840 1000002A */ b .L7F0C98EC -/* 0FE374 7F0C9844 26310001 */ addiu $s1, $s1, 1 -.L7F0C9848: -/* 0FE378 7F0C9848 02643021 */ addu $a2, $s3, $a0 -/* 0FE37C 7F0C984C 0266082A */ slt $at, $s3, $a2 -/* 0FE380 7F0C9850 00117840 */ sll $t7, $s1, 1 -/* 0FE384 7F0C9854 024F8021 */ addu $s0, $s2, $t7 -/* 0FE388 7F0C9858 10200020 */ beqz $at, .L7F0C98DC -/* 0FE38C 7F0C985C 02601825 */ move $v1, $s3 -/* 0FE390 7F0C9860 00D32823 */ subu $a1, $a2, $s3 -/* 0FE394 7F0C9864 30B80003 */ andi $t8, $a1, 3 -/* 0FE398 7F0C9868 1300000B */ beqz $t8, .L7F0C9898 -/* 0FE39C 7F0C986C 03132021 */ addu $a0, $t8, $s3 -/* 0FE3A0 7F0C9870 0003C840 */ sll $t9, $v1, 1 -/* 0FE3A4 7F0C9874 02591021 */ addu $v0, $s2, $t9 -.L7F0C9878: -/* 0FE3A8 7F0C9878 94480000 */ lhu $t0, ($v0) -/* 0FE3AC 7F0C987C 24630001 */ addiu $v1, $v1, 1 -/* 0FE3B0 7F0C9880 26310001 */ addiu $s1, $s1, 1 -/* 0FE3B4 7F0C9884 26100002 */ addiu $s0, $s0, 2 -/* 0FE3B8 7F0C9888 24420002 */ addiu $v0, $v0, 2 -/* 0FE3BC 7F0C988C 1483FFFA */ bne $a0, $v1, .L7F0C9878 -/* 0FE3C0 7F0C9890 A608FFFE */ sh $t0, -2($s0) -/* 0FE3C4 7F0C9894 10660011 */ beq $v1, $a2, .L7F0C98DC -.L7F0C9898: -/* 0FE3C8 7F0C9898 02672021 */ addu $a0, $s3, $a3 -/* 0FE3CC 7F0C989C 00044840 */ sll $t1, $a0, 1 -/* 0FE3D0 7F0C98A0 00035040 */ sll $t2, $v1, 1 -/* 0FE3D4 7F0C98A4 024A1021 */ addu $v0, $s2, $t2 -/* 0FE3D8 7F0C98A8 01322821 */ addu $a1, $t1, $s2 -.L7F0C98AC: -/* 0FE3DC 7F0C98AC 944B0000 */ lhu $t3, ($v0) -/* 0FE3E0 7F0C98B0 24420008 */ addiu $v0, $v0, 8 -/* 0FE3E4 7F0C98B4 26310004 */ addiu $s1, $s1, 4 -/* 0FE3E8 7F0C98B8 A60B0000 */ sh $t3, ($s0) -/* 0FE3EC 7F0C98BC 944CFFFA */ lhu $t4, -6($v0) -/* 0FE3F0 7F0C98C0 26100008 */ addiu $s0, $s0, 8 -/* 0FE3F4 7F0C98C4 A60CFFFA */ sh $t4, -6($s0) -/* 0FE3F8 7F0C98C8 944DFFFC */ lhu $t5, -4($v0) -/* 0FE3FC 7F0C98CC A60DFFFC */ sh $t5, -4($s0) -/* 0FE400 7F0C98D0 944EFFFE */ lhu $t6, -2($v0) -/* 0FE404 7F0C98D4 1445FFF5 */ bne $v0, $a1, .L7F0C98AC -/* 0FE408 7F0C98D8 A60EFFFE */ sh $t6, -2($s0) -.L7F0C98DC: -/* 0FE40C 7F0C98DC 0FC32FCB */ jal extractImageBitCount -/* 0FE410 7F0C98E0 02802025 */ move $a0, $s4 -/* 0FE414 7F0C98E4 A6020000 */ sh $v0, ($s0) -/* 0FE418 7F0C98E8 26310001 */ addiu $s1, $s1, 1 -.L7F0C98EC: -/* 0FE41C 7F0C98EC 8FAF003C */ lw $t7, 0x3c($sp) -/* 0FE420 7F0C98F0 022F082A */ slt $at, $s1, $t7 -/* 0FE424 7F0C98F4 1420FF92 */ bnez $at, .L7F0C9740 -/* 0FE428 7F0C98F8 00000000 */ nop -.L7F0C98FC: -/* 0FE42C 7F0C98FC 8FBF002C */ lw $ra, 0x2c($sp) -/* 0FE430 7F0C9900 8FB00014 */ lw $s0, 0x14($sp) -/* 0FE434 7F0C9904 8FB10018 */ lw $s1, 0x18($sp) -/* 0FE438 7F0C9908 8FB2001C */ lw $s2, 0x1c($sp) -/* 0FE43C 7F0C990C 8FB30020 */ lw $s3, 0x20($sp) -/* 0FE440 7F0C9910 8FB40024 */ lw $s4, 0x24($sp) -/* 0FE444 7F0C9914 8FB50028 */ lw $s5, 0x28($sp) -/* 0FE448 7F0C9918 03E00008 */ jr $ra -/* 0FE44C 7F0C991C 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - @@ -3828,7 +1857,7 @@ glabel type4_7_9_getsamples */ s32 texBuildLookup(s8 *lookup, s32 bitsperpixel) { - s32 numcolors = extractImageBitCount(11); + s32 numcolors = texReadBits(11); s32 i; if (bitsperpixel <= 16) @@ -3836,7 +1865,7 @@ s32 texBuildLookup(s8 *lookup, s32 bitsperpixel) u16 *image = (u16*)lookup; for (i = 0; i < numcolors; i++) { - image[i] = extractImageBitCount(bitsperpixel); + image[i] = texReadBits(bitsperpixel); } } else if (bitsperpixel <= 24) @@ -3844,7 +1873,7 @@ s32 texBuildLookup(s8 *lookup, s32 bitsperpixel) u32 *image = (u32*)lookup; for (i = 0; i < numcolors; i++) { - image[i] = extractImageBitCount(bitsperpixel); + image[i] = texReadBits(bitsperpixel); } } else @@ -3852,7 +1881,7 @@ s32 texBuildLookup(s8 *lookup, s32 bitsperpixel) u32 *image = (u32*)lookup; for (i = 0; i < numcolors; i++) { - image[i] = extractImageBitCount(24) << 8 | extractImageBitCount(bitsperpixel - 24); + image[i] = texReadBits(24) << 8 | texReadBits(bitsperpixel - 24); } } return numcolors; @@ -3863,3027 +1892,882 @@ s32 texBuildLookup(s8 *lookup, s32 bitsperpixel) -s32 sub_GAME_7F0C9A24(s32 param_1) +s32 texGetBitSize(s32 decimal) { - s32 i; - - i = 0; - for (param_1 += -1; 0 < param_1; param_1 >>= 1) { - i += 1; - } - return i; + s32 count = 0; + + decimal--; + + while (decimal > 0) { + decimal >>= 1; + count++; + } + + return count; } -void image_get_alpha_values(u8 *image,s32 count) +void texReadAlphaBits(u8 *image,s32 count) { int i; for(i = 0; i < count; i++) { - image[i] = extractImageBitCount(1); + image[i] = texReadBits(1); } } - -#ifdef NONMATCHING -s32 image_compression0_expand(u8 *target, s32 width, s32 height, s32 tablenum) +/** + * Read pixel data from the bitstream and write to dst, + * ensuring each row is aligned according to the pixel format. + * + * Return the number of output bytes. + */ +s32 texReadUncompressed(u8 *dst, s32 width, s32 height, s32 format) { - s32 targetplusF; - s32 *temp_s1; + u32 *dst32 = (u32 *)(((u32)dst + 0xf) & ~0xf); + u16 *dst16 = (u16 *)(((u32)dst + 7) & ~7); + u8 *dst8 = (u8 *)(((u32)dst + 7) & ~7); + s32 x; + s32 y; - s32 *poutbits; - s32 w; - s32 h; - s32 _targetplus7; - s32 w; - s32 h; - s32 *ptargetplusF; - void *ptargetplus7; + switch (format) { + case TEXFORMAT_RGBA32: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst32[x] = texReadBits(16) << 16; + dst32[x] |= texReadBits(16); + } + + dst32 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 4; + case TEXFORMAT_RGB24: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst32[x] = texReadBits(24) << 8 | 0xff; + } + + dst32 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 4; + case TEXFORMAT_RGBA16: + case TEXFORMAT_IA16: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst16[x] = texReadBits(16); + } + + dst16 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 2; + case TEXFORMAT_RGB15: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst16[x] = texReadBits(15) << 1 | 1; + } + + dst16 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 2; + case TEXFORMAT_IA8: + case TEXFORMAT_I8: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst8[x] = texReadBits(8); + } + + dst8 += (width + 7) & 0xff8; + } + + return ((width + 7) & 0xff8) * height; + case TEXFORMAT_IA4: + case TEXFORMAT_I4: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x += 2) { + dst8[x >> 1] = texReadBits(8); + } + + dst8 += ((width + 15) & 0xff0) >> 1; + } + + return (((width + 15) & 0xff0) >> 1) * height; + } + + return 0; +} - targetplusF = (s32) (target + 0xF) & ~0xF; - targetplus7 = (s32) (target + 7) & ~7; - _targetplus7 = targetplus7; - ptargetplusF = (s32 *) targetplusF; - ptargetplus7 = (void *) targetplus7; - - switch (tablenum) { - case 0: - for(h = 0; h != height; h++) - { - poutbits = ptargetplusF; - for(w = 0; w != width; w++) - { - *poutbits = (s32) (extractImageBitCount(0x10) << 0x10); +s32 texChannelsToPixels(u8 *src, s32 width, s32 height, u8 *dst, s32 format) +{ + u32 *dst32; + u16 *dst16; + u8 *dst8; + s32 x; + s32 y; + s32 pos; + s32 mult; + s32 rgb_width; - temp_s1 = poutbits + 4; - temp_s1->unk-4 = (s32) (*poutbits | extractImageBitCount(0x10)); - poutbits = temp_s1; + dst32 = (u32 *)dst; + dst16 = (u16 *)dst; + dst8 = (u8 *)dst; - } - ptargetplusF += ((width + 3) & 0xFFC) * 4; - } - return ((width + 3) & 0xFFC) * height * 4; - case 2: - for(h = 0; h != height; h++) - { - poutbits = ptargetplusF; - for(w = 0; w != width; w++) + pos = 0; + mult = width * height; + rgb_width = (width + 3) & 0xffc; + + switch (format) + { + case TEXFORMAT_RGBA32: + for (y = 0; y < height; y++) { - temp_s1 = poutbits + 4; - temp_s1->unk-4 = (s32) ((extractImageBitCount(0x18) << 8) | 0xFF); - poutbits = temp_s1; - } - ptargetplusF += ((width + 3) & 0xFFC) * 4; - } - return ((width + 3) & 0xFFC) * height * 4; - case 1: - case 4: - for(h = 0; h!= height; h++) - { - poutbits = ptargetplus7; - for(w = 0; w != width; w++) - { - temp_s1 = poutbits + 2; - temp_s1->unk-2 = extractImageBitCount(0x10); - poutbits = temp_s1; - } - ptargetplus7 += ((width + 3) & 0xFFC) * 2; - } - return ((width + 3) & 0xFFC) * height * 2; - case 3: - for(h = 0; h!= height; h++) - { - poutbits = ptargetplus7; - for(w = 0; w != width; w++) - { - temp_s1 = poutbits + 2; - temp_s1->unk-2 = (s16) ((extractImageBitCount(0xF) * 2) | 1); - poutbits = temp_s1; + for (x = 0; x < width; x++) + { + dst32[x] = src[pos] << 24 | src[pos + mult] << 16 | src[pos + mult * 2] << 8 | src[pos + mult * 3]; + pos++; + } + + dst32 += rgb_width; } - ptargetplus7 += ((width + 3) & 0xFFC) * 2; - } - return ((width + 3) & 0xFFC) * height * 2; - case 5: - case 7: - for(h = 0; h!= height; h++) - { - poutbits = ptargetplus7; - for(w = 0; w != width; w++) + return (rgb_width) * height * 4; + + case TEXFORMAT_RGB24: + for (y = 0; y < height; y++) { - temp_s1 = poutbits + 1; - temp_s1->unk-1 = extractImageBitCount(8); - poutbits = temp_s1; + for (x = 0; x < width; x++) + { + dst32[x] = src[pos] << 24 | src[pos + mult] << 16 | src[pos + mult * 2] << 8 | 0xff; + pos++; + } + + dst32 += rgb_width; } - ptargetplus7 += (width + 7) & 0xFF8; - } - return ((width + 7) & 0xFF8) * height; - case 6: - case 8: - for(h = 0; h!= height; h++) - { - for(w = 0; w != width; w++) + + return (rgb_width) * height * 4; + + case TEXFORMAT_RGBA16: + for (y = 0; y < height; y++) { - *(_targetplus7 + (w >> 1)) = extractImageBitCount(8); + for (x = 0; x < width; x++) + { + dst16[x] = src[pos] << 11 | src[pos + mult] << 6 | src[pos + mult * 2] << 1 | src[pos + mult * 3]; + pos++; + } + + dst16 += rgb_width; } - _targetplus7 += (s32) ((width + 0xF) & 0xFF0) >> 1; + + return (rgb_width) * height * 2; + + case TEXFORMAT_IA16: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + dst16[x] = src[pos] << 8 | src[pos + mult]; + pos++; + } + + dst16 += rgb_width; + } + + return (rgb_width) * height * 2; + + case TEXFORMAT_RGB15: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + dst16[x] = src[pos] << 11 | src[pos + mult] << 6 | src[pos + mult * 2] << 1 | 1; + pos++; + } + + dst16 += rgb_width; + } + + return (rgb_width) * height * 2; + + case TEXFORMAT_IA8: + for (y = 0; y < height; y++) + { + if ((width + 7) & 0xff8); + + for (x = 0; x < width; x++) + { + dst8[x] = src[pos] << 4 | src[pos + mult]; + pos++; + } + + dst8 += (width + 7) & 0xff8; + } + + return ((width + 7) & 0xff8) * height; + + case TEXFORMAT_I8: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + dst8[x] = src[pos]; + pos++; + } + + dst8 += (width + 7) & 0xff8; + } + + return ((width + 7) & 0xff8) * height; + + case TEXFORMAT_IA4: + for (y = 0; y < height; y++) + { + if ((width + 15) & 0xff0); + + for (x = 0; x < width; x += 2) + { + dst8[x >> 1] = src[pos] << 5 | src[pos + mult * 3] << 4 | src[pos + 1] << 1 | src[pos + mult * 3 + 1]; + pos += 2; + } + + if (width & 1) { pos--; } + + dst8 += (width + 15) & 0xff0; + } + + return (((width + 15) & 0xff0) >> 1) * height; + + case TEXFORMAT_I4: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x += 2) + { + dst8[x >> 1] = src[pos] << 4 | src[pos + 1]; + pos += 2; + } + + if (width & 1) { pos--; } + + dst8 += ((width + 15) & 0xff0) >> 1; + } + + return (((width + 15) & 0xff0) >> 1) * height; + } + + return 0; +} + + +/** + * Inflate a texture using the provided lookup table. + * + * The lookup table is a bitstring of colours in the pixel format described by + * the format argument. The number of colours in the lookup table is given by + * the numcolours argument. + * + * The data in the global source bitstring is expected to be a tightly packed + * list of indices into the lookup table. The number of bits for each index + * is calculated based on the number of colours in the lookup table. For + * example, if the lookup table contains 8 colours then the indices will be 0-7, + * which requires 3 bits per index. + * + * Return the number of bytes written to dst. + */ +s32 texInflateLookup(s32 width, s32 height, u8 *dst, u8 *lookup, s32 numcolours, s32 format) +{ + u32 *lookup32 = (u32 *)lookup; + u16 *lookup16 = (u16 *)lookup; + u32 *dst32 = (u32 *)dst; + u16 *dst16 = (u16 *)dst; + u8 *dst8 = (u8 *)dst; + s32 x; + s32 y; + s32 bitspercolour = texGetBitSize(numcolours); + + switch (format) { + case TEXFORMAT_RGBA32: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst32[x] = lookup32[texReadBits(bitspercolour)]; + } + + dst32 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 4; + case TEXFORMAT_RGB24: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst32[x] = lookup32[texReadBits(bitspercolour)] << 8; + } + + dst32 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 4; + case TEXFORMAT_RGBA16: + case TEXFORMAT_IA16: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst16[x] = lookup16[texReadBits(bitspercolour)]; + } + + dst16 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 2; + case TEXFORMAT_RGB15: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst16[x] = lookup16[texReadBits(bitspercolour)] << 1 | 1; + } + + dst16 += (width + 3) & 0xffc; + } + + return ((width + 3) & 0xffc) * height * 2; + case TEXFORMAT_IA8: + case TEXFORMAT_I8: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst8[x] = lookup16[texReadBits(bitspercolour)]; + } + + dst8 += (width + 7) & 0xff8; + } + + return ((width + 7) & 0xff8) * height; + case TEXFORMAT_IA4: + case TEXFORMAT_I4: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x += 2) { + dst8[x >> 1] = lookup16[texReadBits(bitspercolour)] << 4; + + if (x + 1 < width) { + dst8[x >> 1] |= lookup[(texReadBits(bitspercolour) * 2) + 1]; + } + } + + dst8 += ((width + 15) & 0xff0) >> 1; + } + + return (((width + 15) & 0xff0) >> 1) * height; + } + + return 0; +} + + +/** + * Like texInflateLookup, but the indices are provided in the src argument + * as u8s or u16s rather than read from the global bitstring as tightly packed + * bits. + * + * Whether u8s or u16s are expected depends on whether the number of colours + * in the lookup table. If there are more than 256 colours then it must use + * u16s, otherwise it expects u8s. + */ + +s32 texInflateLookupFromBuffer(u8 *src, s32 width, s32 height, u8 *dst, u8 *lookup, s32 numcolours, s32 format) +{ + s32 x; + s32 y; + u32 *lookup32; + u16 *lookup16; + u8 *src8; + u16 *src16; + u32 *dst32; + u16 *dst16; + u8 *dst8; + u32 basic_and_val; + + lookup32 = (u32 *)lookup; + lookup16 = (u16 *)lookup; + + basic_and_val = 0xffc; + + dst32 = (u32 *)dst; + dst16 = (u16 *)dst; + dst8 = (u8 *)dst; + + if (numcolours <= 256) + { + src8 = (u8 *)src; + } + else + { + src16 = (u16 *)src; + } + + switch (format) + { + case TEXFORMAT_RGBA32: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + if (numcolours <= 256) + { + dst32[x] = lookup32[src8[x]]; + } + else + { + dst32[x] = lookup32[src16[x]]; + } + } + + dst32 += (width + 3) & basic_and_val; + src8 += width; + src16 += width; + } + + return ((width + 3) & basic_and_val) * height * 4; + + case TEXFORMAT_RGB24: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + if (numcolours <= 256) + { + dst32[x] = lookup32[src8[x]] << 8 | 0xff; + } + else + { + dst32[x] = lookup32[src16[x]] << 8 | 0xff; + } + } + + dst32 += (width + 3) & basic_and_val; + src8 += width; + src16 += width; + } + + return ((width + 3) & basic_and_val) * height * 4; + + case TEXFORMAT_RGBA16: + case TEXFORMAT_IA16: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + if (numcolours <= 256) + { + dst16[x] = lookup16[src8[x]]; + } + else + { + dst16[x] = lookup16[src16[x]]; + } + } + + dst16 += (width + 3) & basic_and_val; + src8 += width; + src16 += width; + } + + return ((width + 3) & basic_and_val) * height * 2; + + case TEXFORMAT_RGB15: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + if (numcolours <= 256) + { + dst16[x] = lookup16[src8[x]] << 1 | 1; + } + else + { + dst16[x] = lookup16[src16[x]] << 1 | 1; + } + } + + dst16 += (width + 3) & basic_and_val; + src8 += width; + src16 += width; + } + + return ((width + 3) & basic_and_val) * height * 2; + + case TEXFORMAT_IA8: + case TEXFORMAT_I8: + for (y = 0; y < height; y++) + { + if ((width + 7) & 0xff8); + + for (x = 0; x < width; x++) + { + if (numcolours <= 256) + { + dst8[x] = lookup16[src8[x]]; + } + else + { + dst8[x] = lookup16[src16[x]]; + } + } + + dst8 += (width + 7) & 0xff8; + src8 += width; + src16 += width; + } + + return ((width + 7) & 0xff8) * height; + + case TEXFORMAT_IA4: + case TEXFORMAT_I4: + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x += 2) + { + if (numcolours <= 256) + { + dst8[x >> 1] = lookup16[src8[x]] << 4 | lookup16[src8[x + 1]]; + } + else + { + dst8[x >> 1] = lookup16[src16[x]] << 4 | lookup16[src16[x + 1]]; + } + } + + dst8 += ((width + 15) & 0xff0) >> 1; + src8 += width; + src16 += width; + } + + return (((width + 15) & 0xff0) >> 1) * height; + } + + return 0; +} + + +/** + * For every second row, swap the bytes within that row. + * + * For textures with 32-bit colour values (in GBI format), swap every pair + * within each word. For all other textures, swap every byte within each pair. + */ +void texSwapAltRowBytes(u8 *dst, s32 width, s32 height, s32 format) +{ + s32 x; + s32 y; + s32 alignedwidth; + u32 *row = (u32 *)dst; + s32 tmp; + + switch (format) { + case TEXFORMAT_RGBA32: + case TEXFORMAT_RGB24: + alignedwidth = (width + 3) & 0xffc; + break; + case TEXFORMAT_RGBA16: + case TEXFORMAT_RGB15: + case TEXFORMAT_IA16: + alignedwidth = ((width + 3) & 0xffc) >> 1; + break; + case TEXFORMAT_IA8: + case TEXFORMAT_I8: + case TEXFORMAT_RGBA16_CI8: + case TEXFORMAT_IA16_CI8: + alignedwidth = ((width + 7) & 0xff8) >> 2; + break; + case TEXFORMAT_IA4: + case TEXFORMAT_I4: + case TEXFORMAT_RGBA16_CI4: + case TEXFORMAT_0C: + alignedwidth = ((width + 0xf) & 0xff0) >> 3; + break; + } + + row += alignedwidth; + + if (format == TEXFORMAT_RGBA32 || format == TEXFORMAT_RGB24) { + for (y = 1; y < height; y += 2) { + for (x = 0; x < alignedwidth; x += 4) { + tmp = row[x + 0]; + row[x + 0] = row[x + 2]; + row[x + 2] = tmp; + + tmp = row[x + 1]; + row[x + 1] = row[x + 3]; + row[x + 3] = tmp; + } + + row += alignedwidth * 2; + } + } else { + for (y = 1; y < height; y += 2) { + for (x = 0; x < alignedwidth; x += 2) { + tmp = row[x + 0]; + row[x + 0] = row[x + 1]; + row[x + 1] = tmp; + } + + row += alignedwidth * 2; + } + } +} + + + + + + +/** + * Blur the pixels in the image with the surrounding pixels. + */ +void texBlur(u8 *pixels, s32 width, s32 height, s32 method, s32 chansize) +{ + s32 x; + s32 y; + + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + s32 cur = pixels[y * width + x] + chansize * 2; + s32 left = x > 0 ? pixels[y * width + x - 1] : 0; + s32 above = y > 0 ? pixels[(y - 1) * width + x] : 0; + s32 aboveleft = x > 0 && y > 0 ? pixels[(y - 1) * width + x - 1] : 0; + + switch (method) { + case 0: + pixels[y * width + x] = (cur + left) % chansize; + break; + case 1: + pixels[y * width + x] = (cur + above) % chansize; + break; + case 2: + pixels[y * width + x] = (cur + aboveleft) % chansize; + break; + case 3: + pixels[y * width + x] = (cur + (left + above - aboveleft)) % chansize; + break; + case 4: + pixels[y * width + x] = (cur + ((above - aboveleft) / 2 + left)) % chansize; + break; + case 5: + pixels[y * width + x] = (cur + ((left - aboveleft) / 2 + above)) % chansize; + break; + case 6: + pixels[y * width + x] = (cur + ((left + above) / 2)) % chansize; + break; + } + } + } +} + + +void texInitPool(struct texpool *arg0, u8 *arg1, s32 arg2) +{ + arg0->start = arg1; + arg0->end = (struct tex *)(arg1 + arg2); + arg0->leftpos = arg1; + arg0->rightpos = (struct tex *)(arg1 + arg2); +} + + +struct tex *texFindInPool(s32 texturenum, struct texpool *arg1) +{ + struct tex *end; + struct tex *cur; + s32 i; + + if (arg1 == NULL) + { + arg1 = &ptr_texture_alloc_start; + } + + end = arg1->end; + cur = arg1->rightpos; + + while (cur < end) + { + if (cur->texturenum == texturenum) + { + return cur; } - return ((s32) ((width + 0xF) & 0xFF0) >> 1) * height; - default: - return 0; + + cur++; + } + + return NULL; +} + + +s32 texFreeBytesInBuffer(struct texpool *arg0) +{ + return (u32)arg0->rightpos - (u32)arg0->leftpos; +} + + +void texLoadFromDisplayList(Gfx *gdl, struct texpool *arg1) +{ + u8 *bytes = (u8 *)gdl; + + while (bytes[0] != (u8)G_ENDDL) + { + // Look for GBI sequence: fd...... abcd.... + if (bytes[0] == G_SETTIMG && bytes[4] == 0xab && bytes[5] == 0xcd) + { + texLoad((u32 *)((s32)bytes + 4), arg1); + } + + bytes += 8; } } -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BDA0*/ -glabel jpt_8005BDA0 -.word .L7F0C9B0C -.word .L7F0C9BEC -.word .L7F0C9B84 -.word .L7F0C9C4C -.word .L7F0C9BEC -.word .L7F0C9CB4 -.word .L7F0C9D10 -.word .L7F0C9CB4 -.word .L7F0C9D10 -.text -glabel image_compression0_expand -/* 0FE5CC 7F0C9A9C 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0FE5D0 7F0C9AA0 AFB50028 */ sw $s5, 0x28($sp) -/* 0FE5D4 7F0C9AA4 2495000F */ addiu $s5, $a0, 0xf -/* 0FE5D8 7F0C9AA8 2401FFF0 */ li $at, -16 -/* 0FE5DC 7F0C9AAC 02A17024 */ and $t6, $s5, $at -/* 0FE5E0 7F0C9AB0 AFB30020 */ sw $s3, 0x20($sp) -/* 0FE5E4 7F0C9AB4 2401FFF8 */ li $at, -8 -/* 0FE5E8 7F0C9AB8 24820007 */ addiu $v0, $a0, 7 -/* 0FE5EC 7F0C9ABC 00419824 */ and $s3, $v0, $at -/* 0FE5F0 7F0C9AC0 AFB70030 */ sw $s7, 0x30($sp) -/* 0FE5F4 7F0C9AC4 AFB6002C */ sw $s6, 0x2c($sp) -/* 0FE5F8 7F0C9AC8 AFB2001C */ sw $s2, 0x1c($sp) -/* 0FE5FC 7F0C9ACC 2CE10009 */ sltiu $at, $a3, 9 -/* 0FE600 7F0C9AD0 00A09025 */ move $s2, $a1 -/* 0FE604 7F0C9AD4 00C0B825 */ move $s7, $a2 -/* 0FE608 7F0C9AD8 AFBF0034 */ sw $ra, 0x34($sp) -/* 0FE60C 7F0C9ADC AFB40024 */ sw $s4, 0x24($sp) -/* 0FE610 7F0C9AE0 AFB10018 */ sw $s1, 0x18($sp) -/* 0FE614 7F0C9AE4 AFB00014 */ sw $s0, 0x14($sp) -/* 0FE618 7F0C9AE8 01C0A825 */ move $s5, $t6 -/* 0FE61C 7F0C9AEC 102000A1 */ beqz $at, .L7F0C9D74 -/* 0FE620 7F0C9AF0 0260B025 */ move $s6, $s3 -/* 0FE624 7F0C9AF4 0007C080 */ sll $t8, $a3, 2 -/* 0FE628 7F0C9AF8 3C018006 */ lui $at, %hi(jpt_8005BDA0) -/* 0FE62C 7F0C9AFC 00380821 */ addu $at, $at, $t8 -/* 0FE630 7F0C9B00 8C38BDA0 */ lw $t8, %lo(jpt_8005BDA0)($at) -/* 0FE634 7F0C9B04 03000008 */ jr $t8 -/* 0FE638 7F0C9B08 00000000 */ nop -.L7F0C9B0C: -/* 0FE63C 7F0C9B0C 1AE00016 */ blez $s7, .L7F0C9B68 -/* 0FE640 7F0C9B10 0000A025 */ move $s4, $zero -/* 0FE644 7F0C9B14 26530003 */ addiu $s3, $s2, 3 -/* 0FE648 7F0C9B18 32790FFC */ andi $t9, $s3, 0xffc -/* 0FE64C 7F0C9B1C 00199880 */ sll $s3, $t9, 2 -.L7F0C9B20: -/* 0FE650 7F0C9B20 1A40000E */ blez $s2, .L7F0C9B5C -/* 0FE654 7F0C9B24 00008025 */ move $s0, $zero -/* 0FE658 7F0C9B28 02A08825 */ move $s1, $s5 -.L7F0C9B2C: -/* 0FE65C 7F0C9B2C 0FC32FCB */ jal extractImageBitCount -/* 0FE660 7F0C9B30 24040010 */ li $a0, 16 -/* 0FE664 7F0C9B34 00024C00 */ sll $t1, $v0, 0x10 -/* 0FE668 7F0C9B38 AE290000 */ sw $t1, ($s1) -/* 0FE66C 7F0C9B3C 0FC32FCB */ jal extractImageBitCount -/* 0FE670 7F0C9B40 24040010 */ li $a0, 16 -/* 0FE674 7F0C9B44 8E2A0000 */ lw $t2, ($s1) -/* 0FE678 7F0C9B48 26100001 */ addiu $s0, $s0, 1 -/* 0FE67C 7F0C9B4C 26310004 */ addiu $s1, $s1, 4 -/* 0FE680 7F0C9B50 01425825 */ or $t3, $t2, $v0 -/* 0FE684 7F0C9B54 1612FFF5 */ bne $s0, $s2, .L7F0C9B2C -/* 0FE688 7F0C9B58 AE2BFFFC */ sw $t3, -4($s1) -.L7F0C9B5C: -/* 0FE68C 7F0C9B5C 26940001 */ addiu $s4, $s4, 1 -/* 0FE690 7F0C9B60 1697FFEF */ bne $s4, $s7, .L7F0C9B20 -/* 0FE694 7F0C9B64 02B3A821 */ addu $s5, $s5, $s3 -.L7F0C9B68: -/* 0FE698 7F0C9B68 264C0003 */ addiu $t4, $s2, 3 -/* 0FE69C 7F0C9B6C 318D0FFC */ andi $t5, $t4, 0xffc -/* 0FE6A0 7F0C9B70 01B70019 */ multu $t5, $s7 -/* 0FE6A4 7F0C9B74 00001012 */ mflo $v0 -/* 0FE6A8 7F0C9B78 00027080 */ sll $t6, $v0, 2 -/* 0FE6AC 7F0C9B7C 1000007E */ b .L7F0C9D78 -/* 0FE6B0 7F0C9B80 01C01025 */ move $v0, $t6 -.L7F0C9B84: -/* 0FE6B4 7F0C9B84 1AE00012 */ blez $s7, .L7F0C9BD0 -/* 0FE6B8 7F0C9B88 0000A025 */ move $s4, $zero -/* 0FE6BC 7F0C9B8C 26530003 */ addiu $s3, $s2, 3 -/* 0FE6C0 7F0C9B90 326F0FFC */ andi $t7, $s3, 0xffc -/* 0FE6C4 7F0C9B94 000F9880 */ sll $s3, $t7, 2 -.L7F0C9B98: -/* 0FE6C8 7F0C9B98 1A40000A */ blez $s2, .L7F0C9BC4 -/* 0FE6CC 7F0C9B9C 00008025 */ move $s0, $zero -/* 0FE6D0 7F0C9BA0 02A08825 */ move $s1, $s5 -.L7F0C9BA4: -/* 0FE6D4 7F0C9BA4 0FC32FCB */ jal extractImageBitCount -/* 0FE6D8 7F0C9BA8 24040018 */ li $a0, 24 -/* 0FE6DC 7F0C9BAC 0002CA00 */ sll $t9, $v0, 8 -/* 0FE6E0 7F0C9BB0 26100001 */ addiu $s0, $s0, 1 -/* 0FE6E4 7F0C9BB4 372800FF */ ori $t0, $t9, 0xff -/* 0FE6E8 7F0C9BB8 26310004 */ addiu $s1, $s1, 4 -/* 0FE6EC 7F0C9BBC 1612FFF9 */ bne $s0, $s2, .L7F0C9BA4 -/* 0FE6F0 7F0C9BC0 AE28FFFC */ sw $t0, -4($s1) -.L7F0C9BC4: -/* 0FE6F4 7F0C9BC4 26940001 */ addiu $s4, $s4, 1 -/* 0FE6F8 7F0C9BC8 1697FFF3 */ bne $s4, $s7, .L7F0C9B98 -/* 0FE6FC 7F0C9BCC 02B3A821 */ addu $s5, $s5, $s3 -.L7F0C9BD0: -/* 0FE700 7F0C9BD0 26490003 */ addiu $t1, $s2, 3 -/* 0FE704 7F0C9BD4 312A0FFC */ andi $t2, $t1, 0xffc -/* 0FE708 7F0C9BD8 01570019 */ multu $t2, $s7 -/* 0FE70C 7F0C9BDC 00001012 */ mflo $v0 -/* 0FE710 7F0C9BE0 00025880 */ sll $t3, $v0, 2 -/* 0FE714 7F0C9BE4 10000064 */ b .L7F0C9D78 -/* 0FE718 7F0C9BE8 01601025 */ move $v0, $t3 -.L7F0C9BEC: -/* 0FE71C 7F0C9BEC 1AE00010 */ blez $s7, .L7F0C9C30 -/* 0FE720 7F0C9BF0 0000A025 */ move $s4, $zero -/* 0FE724 7F0C9BF4 26530003 */ addiu $s3, $s2, 3 -/* 0FE728 7F0C9BF8 326C0FFC */ andi $t4, $s3, 0xffc -/* 0FE72C 7F0C9BFC 000C9840 */ sll $s3, $t4, 1 -.L7F0C9C00: -/* 0FE730 7F0C9C00 1A400008 */ blez $s2, .L7F0C9C24 -/* 0FE734 7F0C9C04 00008025 */ move $s0, $zero -/* 0FE738 7F0C9C08 02C08825 */ move $s1, $s6 -.L7F0C9C0C: -/* 0FE73C 7F0C9C0C 0FC32FCB */ jal extractImageBitCount -/* 0FE740 7F0C9C10 24040010 */ li $a0, 16 -/* 0FE744 7F0C9C14 26100001 */ addiu $s0, $s0, 1 -/* 0FE748 7F0C9C18 26310002 */ addiu $s1, $s1, 2 -/* 0FE74C 7F0C9C1C 1612FFFB */ bne $s0, $s2, .L7F0C9C0C -/* 0FE750 7F0C9C20 A622FFFE */ sh $v0, -2($s1) -.L7F0C9C24: -/* 0FE754 7F0C9C24 26940001 */ addiu $s4, $s4, 1 -/* 0FE758 7F0C9C28 1697FFF5 */ bne $s4, $s7, .L7F0C9C00 -/* 0FE75C 7F0C9C2C 02D3B021 */ addu $s6, $s6, $s3 -.L7F0C9C30: -/* 0FE760 7F0C9C30 264E0003 */ addiu $t6, $s2, 3 -/* 0FE764 7F0C9C34 31CF0FFC */ andi $t7, $t6, 0xffc -/* 0FE768 7F0C9C38 01F70019 */ multu $t7, $s7 -/* 0FE76C 7F0C9C3C 00001012 */ mflo $v0 -/* 0FE770 7F0C9C40 0002C040 */ sll $t8, $v0, 1 -/* 0FE774 7F0C9C44 1000004C */ b .L7F0C9D78 -/* 0FE778 7F0C9C48 03001025 */ move $v0, $t8 -.L7F0C9C4C: -/* 0FE77C 7F0C9C4C 1AE00012 */ blez $s7, .L7F0C9C98 -/* 0FE780 7F0C9C50 0000A025 */ move $s4, $zero -/* 0FE784 7F0C9C54 26530003 */ addiu $s3, $s2, 3 -/* 0FE788 7F0C9C58 32790FFC */ andi $t9, $s3, 0xffc -/* 0FE78C 7F0C9C5C 00199840 */ sll $s3, $t9, 1 -.L7F0C9C60: -/* 0FE790 7F0C9C60 1A40000A */ blez $s2, .L7F0C9C8C -/* 0FE794 7F0C9C64 00008025 */ move $s0, $zero -/* 0FE798 7F0C9C68 02C08825 */ move $s1, $s6 -.L7F0C9C6C: -/* 0FE79C 7F0C9C6C 0FC32FCB */ jal extractImageBitCount -/* 0FE7A0 7F0C9C70 2404000F */ li $a0, 15 -/* 0FE7A4 7F0C9C74 00024840 */ sll $t1, $v0, 1 -/* 0FE7A8 7F0C9C78 26100001 */ addiu $s0, $s0, 1 -/* 0FE7AC 7F0C9C7C 352A0001 */ ori $t2, $t1, 1 -/* 0FE7B0 7F0C9C80 26310002 */ addiu $s1, $s1, 2 -/* 0FE7B4 7F0C9C84 1612FFF9 */ bne $s0, $s2, .L7F0C9C6C -/* 0FE7B8 7F0C9C88 A62AFFFE */ sh $t2, -2($s1) -.L7F0C9C8C: -/* 0FE7BC 7F0C9C8C 26940001 */ addiu $s4, $s4, 1 -/* 0FE7C0 7F0C9C90 1697FFF3 */ bne $s4, $s7, .L7F0C9C60 -/* 0FE7C4 7F0C9C94 02D3B021 */ addu $s6, $s6, $s3 -.L7F0C9C98: -/* 0FE7C8 7F0C9C98 264B0003 */ addiu $t3, $s2, 3 -/* 0FE7CC 7F0C9C9C 316C0FFC */ andi $t4, $t3, 0xffc -/* 0FE7D0 7F0C9CA0 01970019 */ multu $t4, $s7 -/* 0FE7D4 7F0C9CA4 00001012 */ mflo $v0 -/* 0FE7D8 7F0C9CA8 00026840 */ sll $t5, $v0, 1 -/* 0FE7DC 7F0C9CAC 10000032 */ b .L7F0C9D78 -/* 0FE7E0 7F0C9CB0 01A01025 */ move $v0, $t5 -.L7F0C9CB4: -/* 0FE7E4 7F0C9CB4 1AE00010 */ blez $s7, .L7F0C9CF8 -/* 0FE7E8 7F0C9CB8 0000A025 */ move $s4, $zero -/* 0FE7EC 7F0C9CBC 26550007 */ addiu $s5, $s2, 7 -/* 0FE7F0 7F0C9CC0 32AE0FF8 */ andi $t6, $s5, 0xff8 -/* 0FE7F4 7F0C9CC4 01C0A825 */ move $s5, $t6 -.L7F0C9CC8: -/* 0FE7F8 7F0C9CC8 1A400008 */ blez $s2, .L7F0C9CEC -/* 0FE7FC 7F0C9CCC 00008025 */ move $s0, $zero -/* 0FE800 7F0C9CD0 02608825 */ move $s1, $s3 -.L7F0C9CD4: -/* 0FE804 7F0C9CD4 0FC32FCB */ jal extractImageBitCount -/* 0FE808 7F0C9CD8 24040008 */ li $a0, 8 -/* 0FE80C 7F0C9CDC 26100001 */ addiu $s0, $s0, 1 -/* 0FE810 7F0C9CE0 26310001 */ addiu $s1, $s1, 1 -/* 0FE814 7F0C9CE4 1612FFFB */ bne $s0, $s2, .L7F0C9CD4 -/* 0FE818 7F0C9CE8 A222FFFF */ sb $v0, -1($s1) -.L7F0C9CEC: -/* 0FE81C 7F0C9CEC 26940001 */ addiu $s4, $s4, 1 -/* 0FE820 7F0C9CF0 1697FFF5 */ bne $s4, $s7, .L7F0C9CC8 -/* 0FE824 7F0C9CF4 02759821 */ addu $s3, $s3, $s5 -.L7F0C9CF8: -/* 0FE828 7F0C9CF8 264F0007 */ addiu $t7, $s2, 7 -/* 0FE82C 7F0C9CFC 31F80FF8 */ andi $t8, $t7, 0xff8 -/* 0FE830 7F0C9D00 03170019 */ multu $t8, $s7 -/* 0FE834 7F0C9D04 00001012 */ mflo $v0 -/* 0FE838 7F0C9D08 1000001C */ b .L7F0C9D7C -/* 0FE83C 7F0C9D0C 8FBF0034 */ lw $ra, 0x34($sp) -.L7F0C9D10: -/* 0FE840 7F0C9D10 1AE00011 */ blez $s7, .L7F0C9D58 -/* 0FE844 7F0C9D14 0000A025 */ move $s4, $zero -/* 0FE848 7F0C9D18 2651000F */ addiu $s1, $s2, 0xf -/* 0FE84C 7F0C9D1C 32390FF0 */ andi $t9, $s1, 0xff0 -/* 0FE850 7F0C9D20 00198843 */ sra $s1, $t9, 1 -.L7F0C9D24: -/* 0FE854 7F0C9D24 1A400009 */ blez $s2, .L7F0C9D4C -/* 0FE858 7F0C9D28 00008025 */ move $s0, $zero -.L7F0C9D2C: -/* 0FE85C 7F0C9D2C 0FC32FCB */ jal extractImageBitCount -/* 0FE860 7F0C9D30 24040008 */ li $a0, 8 -/* 0FE864 7F0C9D34 00104843 */ sra $t1, $s0, 1 -/* 0FE868 7F0C9D38 26100002 */ addiu $s0, $s0, 2 -/* 0FE86C 7F0C9D3C 0212082A */ slt $at, $s0, $s2 -/* 0FE870 7F0C9D40 02695021 */ addu $t2, $s3, $t1 -/* 0FE874 7F0C9D44 1420FFF9 */ bnez $at, .L7F0C9D2C -/* 0FE878 7F0C9D48 A1420000 */ sb $v0, ($t2) -.L7F0C9D4C: -/* 0FE87C 7F0C9D4C 26940001 */ addiu $s4, $s4, 1 -/* 0FE880 7F0C9D50 1697FFF4 */ bne $s4, $s7, .L7F0C9D24 -/* 0FE884 7F0C9D54 02719821 */ addu $s3, $s3, $s1 -.L7F0C9D58: -/* 0FE888 7F0C9D58 264B000F */ addiu $t3, $s2, 0xf -/* 0FE88C 7F0C9D5C 316C0FF0 */ andi $t4, $t3, 0xff0 -/* 0FE890 7F0C9D60 000C6843 */ sra $t5, $t4, 1 -/* 0FE894 7F0C9D64 01B70019 */ multu $t5, $s7 -/* 0FE898 7F0C9D68 00001012 */ mflo $v0 -/* 0FE89C 7F0C9D6C 10000003 */ b .L7F0C9D7C -/* 0FE8A0 7F0C9D70 8FBF0034 */ lw $ra, 0x34($sp) -def_7F0C9B04: -.L7F0C9D74: -/* 0FE8A4 7F0C9D74 00001025 */ move $v0, $zero -.L7F0C9D78: -/* 0FE8A8 7F0C9D78 8FBF0034 */ lw $ra, 0x34($sp) -.L7F0C9D7C: -/* 0FE8AC 7F0C9D7C 8FB00014 */ lw $s0, 0x14($sp) -/* 0FE8B0 7F0C9D80 8FB10018 */ lw $s1, 0x18($sp) -/* 0FE8B4 7F0C9D84 8FB2001C */ lw $s2, 0x1c($sp) -/* 0FE8B8 7F0C9D88 8FB30020 */ lw $s3, 0x20($sp) -/* 0FE8BC 7F0C9D8C 8FB40024 */ lw $s4, 0x24($sp) -/* 0FE8C0 7F0C9D90 8FB50028 */ lw $s5, 0x28($sp) -/* 0FE8C4 7F0C9D94 8FB6002C */ lw $s6, 0x2c($sp) -/* 0FE8C8 7F0C9D98 8FB70030 */ lw $s7, 0x30($sp) -/* 0FE8CC 7F0C9D9C 03E00008 */ jr $ra -/* 0FE8D0 7F0C9DA0 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - - - - -#ifdef NONMATCHING -void generate_link_final_image(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BDC4*/ -glabel jpt_8005BDC4 -.word .L7F0C9DF8 -.word .L7F0CA138 -.word .L7F0C9FAC -.word .L7F0CA400 -.word .L7F0CA2EC -.word .L7F0CA58C -.word .L7F0CA738 -.word .L7F0CA68C -.word .L7F0CA7F0 -.text -glabel generate_link_final_image -/* 0FE8D4 7F0C9DA4 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0FE8D8 7F0C9DA8 8FAE0078 */ lw $t6, 0x78($sp) -/* 0FE8DC 7F0C9DAC AFB20010 */ sw $s2, 0x10($sp) -/* 0FE8E0 7F0C9DB0 AFB1000C */ sw $s1, 0xc($sp) -/* 0FE8E4 7F0C9DB4 AFB00008 */ sw $s0, 8($sp) -/* 0FE8E8 7F0C9DB8 2DC10009 */ sltiu $at, $t6, 9 -/* 0FE8EC 7F0C9DBC 00A08025 */ move $s0, $a1 -/* 0FE8F0 7F0C9DC0 00808825 */ move $s1, $a0 -/* 0FE8F4 7F0C9DC4 00C09025 */ move $s2, $a2 -/* 0FE8F8 7F0C9DC8 AFB30014 */ sw $s3, 0x14($sp) -/* 0FE8FC 7F0C9DCC 00E05025 */ move $t2, $a3 -/* 0FE900 7F0C9DD0 00E04825 */ move $t1, $a3 -/* 0FE904 7F0C9DD4 00E01825 */ move $v1, $a3 -/* 0FE908 7F0C9DD8 102002A6 */ beqz $at, .L7F0CA874 -/* 0FE90C 7F0C9DDC 00004025 */ move $t0, $zero -/* 0FE910 7F0C9DE0 000E7080 */ sll $t6, $t6, 2 -/* 0FE914 7F0C9DE4 3C018006 */ lui $at, %hi(jpt_8005BDC4) -/* 0FE918 7F0C9DE8 002E0821 */ addu $at, $at, $t6 -/* 0FE91C 7F0C9DEC 8C2EBDC4 */ lw $t6, %lo(jpt_8005BDC4)($at) -/* 0FE920 7F0C9DF0 01C00008 */ jr $t6 -/* 0FE924 7F0C9DF4 00000000 */ nop -.L7F0C9DF8: -/* 0FE928 7F0C9DF8 1A400065 */ blez $s2, .L7F0C9F90 -/* 0FE92C 7F0C9DFC 00003825 */ move $a3, $zero -/* 0FE930 7F0C9E00 260F0003 */ addiu $t7, $s0, 3 -/* 0FE934 7F0C9E04 31F80FFC */ andi $t8, $t7, 0xffc -/* 0FE938 7F0C9E08 0018C880 */ sll $t9, $t8, 2 -/* 0FE93C 7F0C9E0C AFB9001C */ sw $t9, 0x1c($sp) -.L7F0C9E10: -/* 0FE940 7F0C9E10 1A00005B */ blez $s0, .L7F0C9F80 -/* 0FE944 7F0C9E14 00002825 */ move $a1, $zero -/* 0FE948 7F0C9E18 02120019 */ multu $s0, $s2 -/* 0FE94C 7F0C9E1C 02286021 */ addu $t4, $s1, $t0 -/* 0FE950 7F0C9E20 32060003 */ andi $a2, $s0, 3 -/* 0FE954 7F0C9E24 0000C880 */ sll $t9, $zero, 2 -/* 0FE958 7F0C9E28 01594821 */ addu $t1, $t2, $t9 -/* 0FE95C 7F0C9E2C 00C06825 */ move $t5, $a2 -/* 0FE960 7F0C9E30 02281021 */ addu $v0, $s1, $t0 -/* 0FE964 7F0C9E34 00005812 */ mflo $t3 -/* 0FE968 7F0C9E38 000B7080 */ sll $t6, $t3, 2 -/* 0FE96C 7F0C9E3C 01CB7023 */ subu $t6, $t6, $t3 -/* 0FE970 7F0C9E40 01C87821 */ addu $t7, $t6, $t0 -/* 0FE974 7F0C9E44 000BC040 */ sll $t8, $t3, 1 -/* 0FE978 7F0C9E48 01989821 */ addu $s3, $t4, $t8 -/* 0FE97C 7F0C9E4C 01F12021 */ addu $a0, $t7, $s1 -/* 0FE980 7F0C9E50 10C00015 */ beqz $a2, .L7F0C9EA8 -/* 0FE984 7F0C9E54 018B1821 */ addu $v1, $t4, $t3 -.L7F0C9E58: -/* 0FE988 7F0C9E58 904F0000 */ lbu $t7, ($v0) -/* 0FE98C 7F0C9E5C 908E0000 */ lbu $t6, ($a0) -/* 0FE990 7F0C9E60 24A50001 */ addiu $a1, $a1, 1 -/* 0FE994 7F0C9E64 000FC600 */ sll $t8, $t7, 0x18 -/* 0FE998 7F0C9E68 906F0000 */ lbu $t7, ($v1) -/* 0FE99C 7F0C9E6C 01D8C825 */ or $t9, $t6, $t8 -/* 0FE9A0 7F0C9E70 25080001 */ addiu $t0, $t0, 1 -/* 0FE9A4 7F0C9E74 000F7400 */ sll $t6, $t7, 0x10 -/* 0FE9A8 7F0C9E78 926F0000 */ lbu $t7, ($s3) -/* 0FE9AC 7F0C9E7C 032EC025 */ or $t8, $t9, $t6 -/* 0FE9B0 7F0C9E80 24420001 */ addiu $v0, $v0, 1 -/* 0FE9B4 7F0C9E84 000FCA00 */ sll $t9, $t7, 8 -/* 0FE9B8 7F0C9E88 03197025 */ or $t6, $t8, $t9 -/* 0FE9BC 7F0C9E8C AD2E0000 */ sw $t6, ($t1) -/* 0FE9C0 7F0C9E90 24840001 */ addiu $a0, $a0, 1 -/* 0FE9C4 7F0C9E94 24630001 */ addiu $v1, $v1, 1 -/* 0FE9C8 7F0C9E98 26730001 */ addiu $s3, $s3, 1 -/* 0FE9CC 7F0C9E9C 15A5FFEE */ bne $t5, $a1, .L7F0C9E58 -/* 0FE9D0 7F0C9EA0 25290004 */ addiu $t1, $t1, 4 -/* 0FE9D4 7F0C9EA4 10B00036 */ beq $a1, $s0, .L7F0C9F80 -.L7F0C9EA8: -/* 0FE9D8 7F0C9EA8 00057880 */ sll $t7, $a1, 2 -/* 0FE9DC 7F0C9EAC 014F4821 */ addu $t1, $t2, $t7 -.L7F0C9EB0: -/* 0FE9E0 7F0C9EB0 90590000 */ lbu $t9, ($v0) -/* 0FE9E4 7F0C9EB4 90980000 */ lbu $t8, ($a0) -/* 0FE9E8 7F0C9EB8 24A50004 */ addiu $a1, $a1, 4 -/* 0FE9EC 7F0C9EBC 00197600 */ sll $t6, $t9, 0x18 -/* 0FE9F0 7F0C9EC0 90790000 */ lbu $t9, ($v1) -/* 0FE9F4 7F0C9EC4 030E7825 */ or $t7, $t8, $t6 -/* 0FE9F8 7F0C9EC8 25080004 */ addiu $t0, $t0, 4 -/* 0FE9FC 7F0C9ECC 0019C400 */ sll $t8, $t9, 0x10 -/* 0FEA00 7F0C9ED0 92790000 */ lbu $t9, ($s3) -/* 0FEA04 7F0C9ED4 01F87025 */ or $t6, $t7, $t8 -/* 0FEA08 7F0C9ED8 24420004 */ addiu $v0, $v0, 4 -/* 0FEA0C 7F0C9EDC 00197A00 */ sll $t7, $t9, 8 -/* 0FEA10 7F0C9EE0 01CFC025 */ or $t8, $t6, $t7 -/* 0FEA14 7F0C9EE4 AD380000 */ sw $t8, ($t1) -/* 0FEA18 7F0C9EE8 904EFFFD */ lbu $t6, -3($v0) -/* 0FEA1C 7F0C9EEC 90990001 */ lbu $t9, 1($a0) -/* 0FEA20 7F0C9EF0 24840004 */ addiu $a0, $a0, 4 -/* 0FEA24 7F0C9EF4 000E7E00 */ sll $t7, $t6, 0x18 -/* 0FEA28 7F0C9EF8 906E0001 */ lbu $t6, 1($v1) -/* 0FEA2C 7F0C9EFC 032FC025 */ or $t8, $t9, $t7 -/* 0FEA30 7F0C9F00 24630004 */ addiu $v1, $v1, 4 -/* 0FEA34 7F0C9F04 000ECC00 */ sll $t9, $t6, 0x10 -/* 0FEA38 7F0C9F08 926E0001 */ lbu $t6, 1($s3) -/* 0FEA3C 7F0C9F0C 03197825 */ or $t7, $t8, $t9 -/* 0FEA40 7F0C9F10 26730004 */ addiu $s3, $s3, 4 -/* 0FEA44 7F0C9F14 000EC200 */ sll $t8, $t6, 8 -/* 0FEA48 7F0C9F18 01F8C825 */ or $t9, $t7, $t8 -/* 0FEA4C 7F0C9F1C AD390004 */ sw $t9, 4($t1) -/* 0FEA50 7F0C9F20 904FFFFE */ lbu $t7, -2($v0) -/* 0FEA54 7F0C9F24 908EFFFE */ lbu $t6, -2($a0) -/* 0FEA58 7F0C9F28 25290010 */ addiu $t1, $t1, 0x10 -/* 0FEA5C 7F0C9F2C 000FC600 */ sll $t8, $t7, 0x18 -/* 0FEA60 7F0C9F30 906FFFFE */ lbu $t7, -2($v1) -/* 0FEA64 7F0C9F34 01D8C825 */ or $t9, $t6, $t8 -/* 0FEA68 7F0C9F38 000F7400 */ sll $t6, $t7, 0x10 -/* 0FEA6C 7F0C9F3C 926FFFFE */ lbu $t7, -2($s3) -/* 0FEA70 7F0C9F40 032EC025 */ or $t8, $t9, $t6 -/* 0FEA74 7F0C9F44 000FCA00 */ sll $t9, $t7, 8 -/* 0FEA78 7F0C9F48 03197025 */ or $t6, $t8, $t9 -/* 0FEA7C 7F0C9F4C AD2EFFF8 */ sw $t6, -8($t1) -/* 0FEA80 7F0C9F50 9058FFFF */ lbu $t8, -1($v0) -/* 0FEA84 7F0C9F54 908FFFFF */ lbu $t7, -1($a0) -/* 0FEA88 7F0C9F58 0018CE00 */ sll $t9, $t8, 0x18 -/* 0FEA8C 7F0C9F5C 9078FFFF */ lbu $t8, -1($v1) -/* 0FEA90 7F0C9F60 01F97025 */ or $t6, $t7, $t9 -/* 0FEA94 7F0C9F64 00187C00 */ sll $t7, $t8, 0x10 -/* 0FEA98 7F0C9F68 9278FFFF */ lbu $t8, -1($s3) -/* 0FEA9C 7F0C9F6C 01CFC825 */ or $t9, $t6, $t7 -/* 0FEAA0 7F0C9F70 00187200 */ sll $t6, $t8, 8 -/* 0FEAA4 7F0C9F74 032E7825 */ or $t7, $t9, $t6 -/* 0FEAA8 7F0C9F78 14B0FFCD */ bne $a1, $s0, .L7F0C9EB0 -/* 0FEAAC 7F0C9F7C AD2FFFFC */ sw $t7, -4($t1) -.L7F0C9F80: -/* 0FEAB0 7F0C9F80 8FB8001C */ lw $t8, 0x1c($sp) -/* 0FEAB4 7F0C9F84 24E70001 */ addiu $a3, $a3, 1 -/* 0FEAB8 7F0C9F88 14F2FFA1 */ bne $a3, $s2, .L7F0C9E10 -/* 0FEABC 7F0C9F8C 01585021 */ addu $t2, $t2, $t8 -.L7F0C9F90: -/* 0FEAC0 7F0C9F90 26190003 */ addiu $t9, $s0, 3 -/* 0FEAC4 7F0C9F94 332E0FFC */ andi $t6, $t9, 0xffc -/* 0FEAC8 7F0C9F98 01D20019 */ multu $t6, $s2 -/* 0FEACC 7F0C9F9C 00001012 */ mflo $v0 -/* 0FEAD0 7F0C9FA0 00027880 */ sll $t7, $v0, 2 -/* 0FEAD4 7F0C9FA4 10000234 */ b .L7F0CA878 -/* 0FEAD8 7F0C9FA8 01E01025 */ move $v0, $t7 -.L7F0C9FAC: -/* 0FEADC 7F0C9FAC 1A40005B */ blez $s2, .L7F0CA11C -/* 0FEAE0 7F0C9FB0 00003825 */ move $a3, $zero -/* 0FEAE4 7F0C9FB4 26180003 */ addiu $t8, $s0, 3 -/* 0FEAE8 7F0C9FB8 33190FFC */ andi $t9, $t8, 0xffc -/* 0FEAEC 7F0C9FBC 00197080 */ sll $t6, $t9, 2 -/* 0FEAF0 7F0C9FC0 AFAE001C */ sw $t6, 0x1c($sp) -.L7F0C9FC4: -/* 0FEAF4 7F0C9FC4 1A000051 */ blez $s0, .L7F0CA10C -/* 0FEAF8 7F0C9FC8 00002825 */ move $a1, $zero -/* 0FEAFC 7F0C9FCC 02120019 */ multu $s0, $s2 -/* 0FEB00 7F0C9FD0 02287821 */ addu $t7, $s1, $t0 -/* 0FEB04 7F0C9FD4 32060003 */ andi $a2, $s0, 3 -/* 0FEB08 7F0C9FD8 00007080 */ sll $t6, $zero, 2 -/* 0FEB0C 7F0C9FDC 014E4821 */ addu $t1, $t2, $t6 -/* 0FEB10 7F0C9FE0 00C02025 */ move $a0, $a2 -/* 0FEB14 7F0C9FE4 02281021 */ addu $v0, $s1, $t0 -/* 0FEB18 7F0C9FE8 00005812 */ mflo $t3 -/* 0FEB1C 7F0C9FEC 000BC040 */ sll $t8, $t3, 1 -/* 0FEB20 7F0C9FF0 0308C821 */ addu $t9, $t8, $t0 -/* 0FEB24 7F0C9FF4 03316021 */ addu $t4, $t9, $s1 -/* 0FEB28 7F0C9FF8 10C00013 */ beqz $a2, .L7F0CA048 -/* 0FEB2C 7F0C9FFC 01EB1821 */ addu $v1, $t7, $t3 -.L7F0CA000: -/* 0FEB30 7F0CA000 90590000 */ lbu $t9, ($v0) -/* 0FEB34 7F0CA004 918F0000 */ lbu $t7, ($t4) -/* 0FEB38 7F0CA008 24A50001 */ addiu $a1, $a1, 1 -/* 0FEB3C 7F0CA00C 00197600 */ sll $t6, $t9, 0x18 -/* 0FEB40 7F0CA010 90790000 */ lbu $t9, ($v1) -/* 0FEB44 7F0CA014 000FC200 */ sll $t8, $t7, 8 -/* 0FEB48 7F0CA018 030E7825 */ or $t7, $t8, $t6 -/* 0FEB4C 7F0CA01C 0019C400 */ sll $t8, $t9, 0x10 -/* 0FEB50 7F0CA020 01F87025 */ or $t6, $t7, $t8 -/* 0FEB54 7F0CA024 35D900FF */ ori $t9, $t6, 0xff -/* 0FEB58 7F0CA028 AD390000 */ sw $t9, ($t1) -/* 0FEB5C 7F0CA02C 25080001 */ addiu $t0, $t0, 1 -/* 0FEB60 7F0CA030 24420001 */ addiu $v0, $v0, 1 -/* 0FEB64 7F0CA034 24630001 */ addiu $v1, $v1, 1 -/* 0FEB68 7F0CA038 258C0001 */ addiu $t4, $t4, 1 -/* 0FEB6C 7F0CA03C 1485FFF0 */ bne $a0, $a1, .L7F0CA000 -/* 0FEB70 7F0CA040 25290004 */ addiu $t1, $t1, 4 -/* 0FEB74 7F0CA044 10B00031 */ beq $a1, $s0, .L7F0CA10C -.L7F0CA048: -/* 0FEB78 7F0CA048 00057880 */ sll $t7, $a1, 2 -/* 0FEB7C 7F0CA04C 014F4821 */ addu $t1, $t2, $t7 -.L7F0CA050: -/* 0FEB80 7F0CA050 90590000 */ lbu $t9, ($v0) -/* 0FEB84 7F0CA054 91980000 */ lbu $t8, ($t4) -/* 0FEB88 7F0CA058 24A50004 */ addiu $a1, $a1, 4 -/* 0FEB8C 7F0CA05C 00197E00 */ sll $t7, $t9, 0x18 -/* 0FEB90 7F0CA060 90790000 */ lbu $t9, ($v1) -/* 0FEB94 7F0CA064 00187200 */ sll $t6, $t8, 8 -/* 0FEB98 7F0CA068 01CFC025 */ or $t8, $t6, $t7 -/* 0FEB9C 7F0CA06C 00197400 */ sll $t6, $t9, 0x10 -/* 0FEBA0 7F0CA070 030E7825 */ or $t7, $t8, $t6 -/* 0FEBA4 7F0CA074 35F900FF */ ori $t9, $t7, 0xff -/* 0FEBA8 7F0CA078 AD390000 */ sw $t9, ($t1) -/* 0FEBAC 7F0CA07C 904F0001 */ lbu $t7, 1($v0) -/* 0FEBB0 7F0CA080 91980001 */ lbu $t8, 1($t4) -/* 0FEBB4 7F0CA084 25080004 */ addiu $t0, $t0, 4 -/* 0FEBB8 7F0CA088 000FCE00 */ sll $t9, $t7, 0x18 -/* 0FEBBC 7F0CA08C 906F0001 */ lbu $t7, 1($v1) -/* 0FEBC0 7F0CA090 00187200 */ sll $t6, $t8, 8 -/* 0FEBC4 7F0CA094 01D9C025 */ or $t8, $t6, $t9 -/* 0FEBC8 7F0CA098 000F7400 */ sll $t6, $t7, 0x10 -/* 0FEBCC 7F0CA09C 030EC825 */ or $t9, $t8, $t6 -/* 0FEBD0 7F0CA0A0 372F00FF */ ori $t7, $t9, 0xff -/* 0FEBD4 7F0CA0A4 AD2F0004 */ sw $t7, 4($t1) -/* 0FEBD8 7F0CA0A8 90590002 */ lbu $t9, 2($v0) -/* 0FEBDC 7F0CA0AC 91980002 */ lbu $t8, 2($t4) -/* 0FEBE0 7F0CA0B0 24420004 */ addiu $v0, $v0, 4 -/* 0FEBE4 7F0CA0B4 00197E00 */ sll $t7, $t9, 0x18 -/* 0FEBE8 7F0CA0B8 90790002 */ lbu $t9, 2($v1) -/* 0FEBEC 7F0CA0BC 00187200 */ sll $t6, $t8, 8 -/* 0FEBF0 7F0CA0C0 01CFC025 */ or $t8, $t6, $t7 -/* 0FEBF4 7F0CA0C4 00197400 */ sll $t6, $t9, 0x10 -/* 0FEBF8 7F0CA0C8 030E7825 */ or $t7, $t8, $t6 -/* 0FEBFC 7F0CA0CC 35F900FF */ ori $t9, $t7, 0xff -/* 0FEC00 7F0CA0D0 AD390008 */ sw $t9, 8($t1) -/* 0FEC04 7F0CA0D4 904FFFFF */ lbu $t7, -1($v0) -/* 0FEC08 7F0CA0D8 91980003 */ lbu $t8, 3($t4) -/* 0FEC0C 7F0CA0DC 24630004 */ addiu $v1, $v1, 4 -/* 0FEC10 7F0CA0E0 000FCE00 */ sll $t9, $t7, 0x18 -/* 0FEC14 7F0CA0E4 906FFFFF */ lbu $t7, -1($v1) -/* 0FEC18 7F0CA0E8 00187200 */ sll $t6, $t8, 8 -/* 0FEC1C 7F0CA0EC 01D9C025 */ or $t8, $t6, $t9 -/* 0FEC20 7F0CA0F0 000F7400 */ sll $t6, $t7, 0x10 -/* 0FEC24 7F0CA0F4 030EC825 */ or $t9, $t8, $t6 -/* 0FEC28 7F0CA0F8 372F00FF */ ori $t7, $t9, 0xff -/* 0FEC2C 7F0CA0FC AD2F000C */ sw $t7, 0xc($t1) -/* 0FEC30 7F0CA100 258C0004 */ addiu $t4, $t4, 4 -/* 0FEC34 7F0CA104 14B0FFD2 */ bne $a1, $s0, .L7F0CA050 -/* 0FEC38 7F0CA108 25290010 */ addiu $t1, $t1, 0x10 -.L7F0CA10C: -/* 0FEC3C 7F0CA10C 8FB8001C */ lw $t8, 0x1c($sp) -/* 0FEC40 7F0CA110 24E70001 */ addiu $a3, $a3, 1 -/* 0FEC44 7F0CA114 14F2FFAB */ bne $a3, $s2, .L7F0C9FC4 -/* 0FEC48 7F0CA118 01585021 */ addu $t2, $t2, $t8 -.L7F0CA11C: -/* 0FEC4C 7F0CA11C 260E0003 */ addiu $t6, $s0, 3 -/* 0FEC50 7F0CA120 31D90FFC */ andi $t9, $t6, 0xffc -/* 0FEC54 7F0CA124 03320019 */ multu $t9, $s2 -/* 0FEC58 7F0CA128 00001012 */ mflo $v0 -/* 0FEC5C 7F0CA12C 00027880 */ sll $t7, $v0, 2 -/* 0FEC60 7F0CA130 100001D1 */ b .L7F0CA878 -/* 0FEC64 7F0CA134 01E01025 */ move $v0, $t7 -.L7F0CA138: -/* 0FEC68 7F0CA138 1A400065 */ blez $s2, .L7F0CA2D0 -/* 0FEC6C 7F0CA13C 00003825 */ move $a3, $zero -/* 0FEC70 7F0CA140 26180003 */ addiu $t8, $s0, 3 -/* 0FEC74 7F0CA144 330E0FFC */ andi $t6, $t8, 0xffc -/* 0FEC78 7F0CA148 000EC840 */ sll $t9, $t6, 1 -/* 0FEC7C 7F0CA14C AFB9001C */ sw $t9, 0x1c($sp) -.L7F0CA150: -/* 0FEC80 7F0CA150 1A00005B */ blez $s0, .L7F0CA2C0 -/* 0FEC84 7F0CA154 00002825 */ move $a1, $zero -/* 0FEC88 7F0CA158 02120019 */ multu $s0, $s2 -/* 0FEC8C 7F0CA15C 02286021 */ addu $t4, $s1, $t0 -/* 0FEC90 7F0CA160 32060003 */ andi $a2, $s0, 3 -/* 0FEC94 7F0CA164 0000C840 */ sll $t9, $zero, 1 -/* 0FEC98 7F0CA168 01395021 */ addu $t2, $t1, $t9 -/* 0FEC9C 7F0CA16C 00C06825 */ move $t5, $a2 -/* 0FECA0 7F0CA170 02281021 */ addu $v0, $s1, $t0 -/* 0FECA4 7F0CA174 00005812 */ mflo $t3 -/* 0FECA8 7F0CA178 000B7880 */ sll $t7, $t3, 2 -/* 0FECAC 7F0CA17C 01EB7823 */ subu $t7, $t7, $t3 -/* 0FECB0 7F0CA180 01E8C021 */ addu $t8, $t7, $t0 -/* 0FECB4 7F0CA184 000B7040 */ sll $t6, $t3, 1 -/* 0FECB8 7F0CA188 018E9821 */ addu $s3, $t4, $t6 -/* 0FECBC 7F0CA18C 03112021 */ addu $a0, $t8, $s1 -/* 0FECC0 7F0CA190 10C00015 */ beqz $a2, .L7F0CA1E8 -/* 0FECC4 7F0CA194 018B1821 */ addu $v1, $t4, $t3 -.L7F0CA198: -/* 0FECC8 7F0CA198 90580000 */ lbu $t8, ($v0) -/* 0FECCC 7F0CA19C 908F0000 */ lbu $t7, ($a0) -/* 0FECD0 7F0CA1A0 24A50001 */ addiu $a1, $a1, 1 -/* 0FECD4 7F0CA1A4 001872C0 */ sll $t6, $t8, 0xb -/* 0FECD8 7F0CA1A8 90780000 */ lbu $t8, ($v1) -/* 0FECDC 7F0CA1AC 01EEC825 */ or $t9, $t7, $t6 -/* 0FECE0 7F0CA1B0 25080001 */ addiu $t0, $t0, 1 -/* 0FECE4 7F0CA1B4 00187980 */ sll $t7, $t8, 6 -/* 0FECE8 7F0CA1B8 92780000 */ lbu $t8, ($s3) -/* 0FECEC 7F0CA1BC 032F7025 */ or $t6, $t9, $t7 -/* 0FECF0 7F0CA1C0 24420001 */ addiu $v0, $v0, 1 -/* 0FECF4 7F0CA1C4 0018C840 */ sll $t9, $t8, 1 -/* 0FECF8 7F0CA1C8 01D97825 */ or $t7, $t6, $t9 -/* 0FECFC 7F0CA1CC A54F0000 */ sh $t7, ($t2) -/* 0FED00 7F0CA1D0 24840001 */ addiu $a0, $a0, 1 -/* 0FED04 7F0CA1D4 24630001 */ addiu $v1, $v1, 1 -/* 0FED08 7F0CA1D8 26730001 */ addiu $s3, $s3, 1 -/* 0FED0C 7F0CA1DC 15A5FFEE */ bne $t5, $a1, .L7F0CA198 -/* 0FED10 7F0CA1E0 254A0002 */ addiu $t2, $t2, 2 -/* 0FED14 7F0CA1E4 10B00036 */ beq $a1, $s0, .L7F0CA2C0 -.L7F0CA1E8: -/* 0FED18 7F0CA1E8 0005C040 */ sll $t8, $a1, 1 -/* 0FED1C 7F0CA1EC 01385021 */ addu $t2, $t1, $t8 -.L7F0CA1F0: -/* 0FED20 7F0CA1F0 90590000 */ lbu $t9, ($v0) -/* 0FED24 7F0CA1F4 908E0000 */ lbu $t6, ($a0) -/* 0FED28 7F0CA1F8 24A50004 */ addiu $a1, $a1, 4 -/* 0FED2C 7F0CA1FC 00197AC0 */ sll $t7, $t9, 0xb -/* 0FED30 7F0CA200 90790000 */ lbu $t9, ($v1) -/* 0FED34 7F0CA204 01CFC025 */ or $t8, $t6, $t7 -/* 0FED38 7F0CA208 25080004 */ addiu $t0, $t0, 4 -/* 0FED3C 7F0CA20C 00197180 */ sll $t6, $t9, 6 -/* 0FED40 7F0CA210 92790000 */ lbu $t9, ($s3) -/* 0FED44 7F0CA214 030E7825 */ or $t7, $t8, $t6 -/* 0FED48 7F0CA218 24420004 */ addiu $v0, $v0, 4 -/* 0FED4C 7F0CA21C 0019C040 */ sll $t8, $t9, 1 -/* 0FED50 7F0CA220 01F87025 */ or $t6, $t7, $t8 -/* 0FED54 7F0CA224 A54E0000 */ sh $t6, ($t2) -/* 0FED58 7F0CA228 904FFFFD */ lbu $t7, -3($v0) -/* 0FED5C 7F0CA22C 90990001 */ lbu $t9, 1($a0) -/* 0FED60 7F0CA230 24840004 */ addiu $a0, $a0, 4 -/* 0FED64 7F0CA234 000FC2C0 */ sll $t8, $t7, 0xb -/* 0FED68 7F0CA238 906F0001 */ lbu $t7, 1($v1) -/* 0FED6C 7F0CA23C 03387025 */ or $t6, $t9, $t8 -/* 0FED70 7F0CA240 24630004 */ addiu $v1, $v1, 4 -/* 0FED74 7F0CA244 000FC980 */ sll $t9, $t7, 6 -/* 0FED78 7F0CA248 926F0001 */ lbu $t7, 1($s3) -/* 0FED7C 7F0CA24C 01D9C025 */ or $t8, $t6, $t9 -/* 0FED80 7F0CA250 26730004 */ addiu $s3, $s3, 4 -/* 0FED84 7F0CA254 000F7040 */ sll $t6, $t7, 1 -/* 0FED88 7F0CA258 030EC825 */ or $t9, $t8, $t6 -/* 0FED8C 7F0CA25C A5590002 */ sh $t9, 2($t2) -/* 0FED90 7F0CA260 9058FFFE */ lbu $t8, -2($v0) -/* 0FED94 7F0CA264 908FFFFE */ lbu $t7, -2($a0) -/* 0FED98 7F0CA268 254A0008 */ addiu $t2, $t2, 8 -/* 0FED9C 7F0CA26C 001872C0 */ sll $t6, $t8, 0xb -/* 0FEDA0 7F0CA270 9078FFFE */ lbu $t8, -2($v1) -/* 0FEDA4 7F0CA274 01EEC825 */ or $t9, $t7, $t6 -/* 0FEDA8 7F0CA278 00187980 */ sll $t7, $t8, 6 -/* 0FEDAC 7F0CA27C 9278FFFE */ lbu $t8, -2($s3) -/* 0FEDB0 7F0CA280 032F7025 */ or $t6, $t9, $t7 -/* 0FEDB4 7F0CA284 0018C840 */ sll $t9, $t8, 1 -/* 0FEDB8 7F0CA288 01D97825 */ or $t7, $t6, $t9 -/* 0FEDBC 7F0CA28C A54FFFFC */ sh $t7, -4($t2) -/* 0FEDC0 7F0CA290 904EFFFF */ lbu $t6, -1($v0) -/* 0FEDC4 7F0CA294 9098FFFF */ lbu $t8, -1($a0) -/* 0FEDC8 7F0CA298 000ECAC0 */ sll $t9, $t6, 0xb -/* 0FEDCC 7F0CA29C 906EFFFF */ lbu $t6, -1($v1) -/* 0FEDD0 7F0CA2A0 03197825 */ or $t7, $t8, $t9 -/* 0FEDD4 7F0CA2A4 000EC180 */ sll $t8, $t6, 6 -/* 0FEDD8 7F0CA2A8 926EFFFF */ lbu $t6, -1($s3) -/* 0FEDDC 7F0CA2AC 01F8C825 */ or $t9, $t7, $t8 -/* 0FEDE0 7F0CA2B0 000E7840 */ sll $t7, $t6, 1 -/* 0FEDE4 7F0CA2B4 032FC025 */ or $t8, $t9, $t7 -/* 0FEDE8 7F0CA2B8 14B0FFCD */ bne $a1, $s0, .L7F0CA1F0 -/* 0FEDEC 7F0CA2BC A558FFFE */ sh $t8, -2($t2) -.L7F0CA2C0: -/* 0FEDF0 7F0CA2C0 8FAE001C */ lw $t6, 0x1c($sp) -/* 0FEDF4 7F0CA2C4 24E70001 */ addiu $a3, $a3, 1 -/* 0FEDF8 7F0CA2C8 14F2FFA1 */ bne $a3, $s2, .L7F0CA150 -/* 0FEDFC 7F0CA2CC 012E4821 */ addu $t1, $t1, $t6 -.L7F0CA2D0: -/* 0FEE00 7F0CA2D0 26190003 */ addiu $t9, $s0, 3 -/* 0FEE04 7F0CA2D4 332F0FFC */ andi $t7, $t9, 0xffc -/* 0FEE08 7F0CA2D8 01F20019 */ multu $t7, $s2 -/* 0FEE0C 7F0CA2DC 00001012 */ mflo $v0 -/* 0FEE10 7F0CA2E0 0002C040 */ sll $t8, $v0, 1 -/* 0FEE14 7F0CA2E4 10000164 */ b .L7F0CA878 -/* 0FEE18 7F0CA2E8 03001025 */ move $v0, $t8 -.L7F0CA2EC: -/* 0FEE1C 7F0CA2EC 1A40003D */ blez $s2, .L7F0CA3E4 -/* 0FEE20 7F0CA2F0 00003825 */ move $a3, $zero -/* 0FEE24 7F0CA2F4 260E0003 */ addiu $t6, $s0, 3 -/* 0FEE28 7F0CA2F8 31D90FFC */ andi $t9, $t6, 0xffc -/* 0FEE2C 7F0CA2FC 00197840 */ sll $t7, $t9, 1 -/* 0FEE30 7F0CA300 AFAF001C */ sw $t7, 0x1c($sp) -.L7F0CA304: -/* 0FEE34 7F0CA304 1A000033 */ blez $s0, .L7F0CA3D4 -/* 0FEE38 7F0CA308 00002825 */ move $a1, $zero -/* 0FEE3C 7F0CA30C 02120019 */ multu $s0, $s2 -/* 0FEE40 7F0CA310 32060003 */ andi $a2, $s0, 3 -/* 0FEE44 7F0CA314 0000C840 */ sll $t9, $zero, 1 -/* 0FEE48 7F0CA318 01395021 */ addu $t2, $t1, $t9 -/* 0FEE4C 7F0CA31C 00C01825 */ move $v1, $a2 -/* 0FEE50 7F0CA320 02281021 */ addu $v0, $s1, $t0 -/* 0FEE54 7F0CA324 0000C012 */ mflo $t8 -/* 0FEE58 7F0CA328 01187021 */ addu $t6, $t0, $t8 -/* 0FEE5C 7F0CA32C 10C0000D */ beqz $a2, .L7F0CA364 -/* 0FEE60 7F0CA330 01D15821 */ addu $t3, $t6, $s1 -.L7F0CA334: -/* 0FEE64 7F0CA334 90580000 */ lbu $t8, ($v0) -/* 0FEE68 7F0CA338 916F0000 */ lbu $t7, ($t3) -/* 0FEE6C 7F0CA33C 24A50001 */ addiu $a1, $a1, 1 -/* 0FEE70 7F0CA340 00187200 */ sll $t6, $t8, 8 -/* 0FEE74 7F0CA344 01EEC825 */ or $t9, $t7, $t6 -/* 0FEE78 7F0CA348 A5590000 */ sh $t9, ($t2) -/* 0FEE7C 7F0CA34C 25080001 */ addiu $t0, $t0, 1 -/* 0FEE80 7F0CA350 24420001 */ addiu $v0, $v0, 1 -/* 0FEE84 7F0CA354 256B0001 */ addiu $t3, $t3, 1 -/* 0FEE88 7F0CA358 1465FFF6 */ bne $v1, $a1, .L7F0CA334 -/* 0FEE8C 7F0CA35C 254A0002 */ addiu $t2, $t2, 2 -/* 0FEE90 7F0CA360 10B0001C */ beq $a1, $s0, .L7F0CA3D4 -.L7F0CA364: -/* 0FEE94 7F0CA364 0005C040 */ sll $t8, $a1, 1 -/* 0FEE98 7F0CA368 01385021 */ addu $t2, $t1, $t8 -.L7F0CA36C: -/* 0FEE9C 7F0CA36C 904E0000 */ lbu $t6, ($v0) -/* 0FEEA0 7F0CA370 916F0000 */ lbu $t7, ($t3) -/* 0FEEA4 7F0CA374 24A50004 */ addiu $a1, $a1, 4 -/* 0FEEA8 7F0CA378 000ECA00 */ sll $t9, $t6, 8 -/* 0FEEAC 7F0CA37C 01F9C025 */ or $t8, $t7, $t9 -/* 0FEEB0 7F0CA380 A5580000 */ sh $t8, ($t2) -/* 0FEEB4 7F0CA384 904F0001 */ lbu $t7, 1($v0) -/* 0FEEB8 7F0CA388 916E0001 */ lbu $t6, 1($t3) -/* 0FEEBC 7F0CA38C 25080004 */ addiu $t0, $t0, 4 -/* 0FEEC0 7F0CA390 000FCA00 */ sll $t9, $t7, 8 -/* 0FEEC4 7F0CA394 01D9C025 */ or $t8, $t6, $t9 -/* 0FEEC8 7F0CA398 A5580002 */ sh $t8, 2($t2) -/* 0FEECC 7F0CA39C 904E0002 */ lbu $t6, 2($v0) -/* 0FEED0 7F0CA3A0 916F0002 */ lbu $t7, 2($t3) -/* 0FEED4 7F0CA3A4 24420004 */ addiu $v0, $v0, 4 -/* 0FEED8 7F0CA3A8 000ECA00 */ sll $t9, $t6, 8 -/* 0FEEDC 7F0CA3AC 01F9C025 */ or $t8, $t7, $t9 -/* 0FEEE0 7F0CA3B0 A5580004 */ sh $t8, 4($t2) -/* 0FEEE4 7F0CA3B4 904FFFFF */ lbu $t7, -1($v0) -/* 0FEEE8 7F0CA3B8 916E0003 */ lbu $t6, 3($t3) -/* 0FEEEC 7F0CA3BC 256B0004 */ addiu $t3, $t3, 4 -/* 0FEEF0 7F0CA3C0 000FCA00 */ sll $t9, $t7, 8 -/* 0FEEF4 7F0CA3C4 01D9C025 */ or $t8, $t6, $t9 -/* 0FEEF8 7F0CA3C8 A5580006 */ sh $t8, 6($t2) -/* 0FEEFC 7F0CA3CC 14B0FFE7 */ bne $a1, $s0, .L7F0CA36C -/* 0FEF00 7F0CA3D0 254A0008 */ addiu $t2, $t2, 8 -.L7F0CA3D4: -/* 0FEF04 7F0CA3D4 8FAF001C */ lw $t7, 0x1c($sp) -/* 0FEF08 7F0CA3D8 24E70001 */ addiu $a3, $a3, 1 -/* 0FEF0C 7F0CA3DC 14F2FFC9 */ bne $a3, $s2, .L7F0CA304 -/* 0FEF10 7F0CA3E0 012F4821 */ addu $t1, $t1, $t7 -.L7F0CA3E4: -/* 0FEF14 7F0CA3E4 260E0003 */ addiu $t6, $s0, 3 -/* 0FEF18 7F0CA3E8 31D90FFC */ andi $t9, $t6, 0xffc -/* 0FEF1C 7F0CA3EC 03320019 */ multu $t9, $s2 -/* 0FEF20 7F0CA3F0 00001012 */ mflo $v0 -/* 0FEF24 7F0CA3F4 0002C040 */ sll $t8, $v0, 1 -/* 0FEF28 7F0CA3F8 1000011F */ b .L7F0CA878 -/* 0FEF2C 7F0CA3FC 03001025 */ move $v0, $t8 -.L7F0CA400: -/* 0FEF30 7F0CA400 1A40005B */ blez $s2, .L7F0CA570 -/* 0FEF34 7F0CA404 00003825 */ move $a3, $zero -/* 0FEF38 7F0CA408 260F0003 */ addiu $t7, $s0, 3 -/* 0FEF3C 7F0CA40C 31EE0FFC */ andi $t6, $t7, 0xffc -/* 0FEF40 7F0CA410 000EC840 */ sll $t9, $t6, 1 -/* 0FEF44 7F0CA414 AFB9001C */ sw $t9, 0x1c($sp) -.L7F0CA418: -/* 0FEF48 7F0CA418 1A000051 */ blez $s0, .L7F0CA560 -/* 0FEF4C 7F0CA41C 00002825 */ move $a1, $zero -/* 0FEF50 7F0CA420 02120019 */ multu $s0, $s2 -/* 0FEF54 7F0CA424 0228C021 */ addu $t8, $s1, $t0 -/* 0FEF58 7F0CA428 32060003 */ andi $a2, $s0, 3 -/* 0FEF5C 7F0CA42C 0000C840 */ sll $t9, $zero, 1 -/* 0FEF60 7F0CA430 01395021 */ addu $t2, $t1, $t9 -/* 0FEF64 7F0CA434 00C02025 */ move $a0, $a2 -/* 0FEF68 7F0CA438 02281021 */ addu $v0, $s1, $t0 -/* 0FEF6C 7F0CA43C 00005812 */ mflo $t3 -/* 0FEF70 7F0CA440 000B7840 */ sll $t7, $t3, 1 -/* 0FEF74 7F0CA444 01E87021 */ addu $t6, $t7, $t0 -/* 0FEF78 7F0CA448 01D16021 */ addu $t4, $t6, $s1 -/* 0FEF7C 7F0CA44C 10C00013 */ beqz $a2, .L7F0CA49C -/* 0FEF80 7F0CA450 030B1821 */ addu $v1, $t8, $t3 -.L7F0CA454: -/* 0FEF84 7F0CA454 904E0000 */ lbu $t6, ($v0) -/* 0FEF88 7F0CA458 91980000 */ lbu $t8, ($t4) -/* 0FEF8C 7F0CA45C 24A50001 */ addiu $a1, $a1, 1 -/* 0FEF90 7F0CA460 000ECAC0 */ sll $t9, $t6, 0xb -/* 0FEF94 7F0CA464 906E0000 */ lbu $t6, ($v1) -/* 0FEF98 7F0CA468 00187840 */ sll $t7, $t8, 1 -/* 0FEF9C 7F0CA46C 01F9C025 */ or $t8, $t7, $t9 -/* 0FEFA0 7F0CA470 000E7980 */ sll $t7, $t6, 6 -/* 0FEFA4 7F0CA474 030FC825 */ or $t9, $t8, $t7 -/* 0FEFA8 7F0CA478 372E0001 */ ori $t6, $t9, 1 -/* 0FEFAC 7F0CA47C A54E0000 */ sh $t6, ($t2) -/* 0FEFB0 7F0CA480 25080001 */ addiu $t0, $t0, 1 -/* 0FEFB4 7F0CA484 24420001 */ addiu $v0, $v0, 1 -/* 0FEFB8 7F0CA488 24630001 */ addiu $v1, $v1, 1 -/* 0FEFBC 7F0CA48C 258C0001 */ addiu $t4, $t4, 1 -/* 0FEFC0 7F0CA490 1485FFF0 */ bne $a0, $a1, .L7F0CA454 -/* 0FEFC4 7F0CA494 254A0002 */ addiu $t2, $t2, 2 -/* 0FEFC8 7F0CA498 10B00031 */ beq $a1, $s0, .L7F0CA560 -.L7F0CA49C: -/* 0FEFCC 7F0CA49C 0005C040 */ sll $t8, $a1, 1 -/* 0FEFD0 7F0CA4A0 01385021 */ addu $t2, $t1, $t8 -.L7F0CA4A4: -/* 0FEFD4 7F0CA4A4 904E0000 */ lbu $t6, ($v0) -/* 0FEFD8 7F0CA4A8 918F0000 */ lbu $t7, ($t4) -/* 0FEFDC 7F0CA4AC 24A50004 */ addiu $a1, $a1, 4 -/* 0FEFE0 7F0CA4B0 000EC2C0 */ sll $t8, $t6, 0xb -/* 0FEFE4 7F0CA4B4 906E0000 */ lbu $t6, ($v1) -/* 0FEFE8 7F0CA4B8 000FC840 */ sll $t9, $t7, 1 -/* 0FEFEC 7F0CA4BC 03387825 */ or $t7, $t9, $t8 -/* 0FEFF0 7F0CA4C0 000EC980 */ sll $t9, $t6, 6 -/* 0FEFF4 7F0CA4C4 01F9C025 */ or $t8, $t7, $t9 -/* 0FEFF8 7F0CA4C8 370E0001 */ ori $t6, $t8, 1 -/* 0FEFFC 7F0CA4CC A54E0000 */ sh $t6, ($t2) -/* 0FF000 7F0CA4D0 90580001 */ lbu $t8, 1($v0) -/* 0FF004 7F0CA4D4 918F0001 */ lbu $t7, 1($t4) -/* 0FF008 7F0CA4D8 25080004 */ addiu $t0, $t0, 4 -/* 0FF00C 7F0CA4DC 001872C0 */ sll $t6, $t8, 0xb -/* 0FF010 7F0CA4E0 90780001 */ lbu $t8, 1($v1) -/* 0FF014 7F0CA4E4 000FC840 */ sll $t9, $t7, 1 -/* 0FF018 7F0CA4E8 032E7825 */ or $t7, $t9, $t6 -/* 0FF01C 7F0CA4EC 0018C980 */ sll $t9, $t8, 6 -/* 0FF020 7F0CA4F0 01F97025 */ or $t6, $t7, $t9 -/* 0FF024 7F0CA4F4 35D80001 */ ori $t8, $t6, 1 -/* 0FF028 7F0CA4F8 A5580002 */ sh $t8, 2($t2) -/* 0FF02C 7F0CA4FC 904E0002 */ lbu $t6, 2($v0) -/* 0FF030 7F0CA500 918F0002 */ lbu $t7, 2($t4) -/* 0FF034 7F0CA504 24420004 */ addiu $v0, $v0, 4 -/* 0FF038 7F0CA508 000EC2C0 */ sll $t8, $t6, 0xb -/* 0FF03C 7F0CA50C 906E0002 */ lbu $t6, 2($v1) -/* 0FF040 7F0CA510 000FC840 */ sll $t9, $t7, 1 -/* 0FF044 7F0CA514 03387825 */ or $t7, $t9, $t8 -/* 0FF048 7F0CA518 000EC980 */ sll $t9, $t6, 6 -/* 0FF04C 7F0CA51C 01F9C025 */ or $t8, $t7, $t9 -/* 0FF050 7F0CA520 370E0001 */ ori $t6, $t8, 1 -/* 0FF054 7F0CA524 A54E0004 */ sh $t6, 4($t2) -/* 0FF058 7F0CA528 9058FFFF */ lbu $t8, -1($v0) -/* 0FF05C 7F0CA52C 918F0003 */ lbu $t7, 3($t4) -/* 0FF060 7F0CA530 24630004 */ addiu $v1, $v1, 4 -/* 0FF064 7F0CA534 001872C0 */ sll $t6, $t8, 0xb -/* 0FF068 7F0CA538 9078FFFF */ lbu $t8, -1($v1) -/* 0FF06C 7F0CA53C 000FC840 */ sll $t9, $t7, 1 -/* 0FF070 7F0CA540 032E7825 */ or $t7, $t9, $t6 -/* 0FF074 7F0CA544 0018C980 */ sll $t9, $t8, 6 -/* 0FF078 7F0CA548 01F97025 */ or $t6, $t7, $t9 -/* 0FF07C 7F0CA54C 35D80001 */ ori $t8, $t6, 1 -/* 0FF080 7F0CA550 A5580006 */ sh $t8, 6($t2) -/* 0FF084 7F0CA554 258C0004 */ addiu $t4, $t4, 4 -/* 0FF088 7F0CA558 14B0FFD2 */ bne $a1, $s0, .L7F0CA4A4 -/* 0FF08C 7F0CA55C 254A0008 */ addiu $t2, $t2, 8 -.L7F0CA560: -/* 0FF090 7F0CA560 8FAF001C */ lw $t7, 0x1c($sp) -/* 0FF094 7F0CA564 24E70001 */ addiu $a3, $a3, 1 -/* 0FF098 7F0CA568 14F2FFAB */ bne $a3, $s2, .L7F0CA418 -/* 0FF09C 7F0CA56C 012F4821 */ addu $t1, $t1, $t7 -.L7F0CA570: -/* 0FF0A0 7F0CA570 26190003 */ addiu $t9, $s0, 3 -/* 0FF0A4 7F0CA574 332E0FFC */ andi $t6, $t9, 0xffc -/* 0FF0A8 7F0CA578 01D20019 */ multu $t6, $s2 -/* 0FF0AC 7F0CA57C 00001012 */ mflo $v0 -/* 0FF0B0 7F0CA580 0002C040 */ sll $t8, $v0, 1 -/* 0FF0B4 7F0CA584 100000BC */ b .L7F0CA878 -/* 0FF0B8 7F0CA588 03001025 */ move $v0, $t8 -.L7F0CA58C: -/* 0FF0BC 7F0CA58C 1A400039 */ blez $s2, .L7F0CA674 -/* 0FF0C0 7F0CA590 00003825 */ move $a3, $zero -/* 0FF0C4 7F0CA594 26040007 */ addiu $a0, $s0, 7 -/* 0FF0C8 7F0CA598 308F0FF8 */ andi $t7, $a0, 0xff8 -/* 0FF0CC 7F0CA59C 01E02025 */ move $a0, $t7 -.L7F0CA5A0: -/* 0FF0D0 7F0CA5A0 1A000031 */ blez $s0, .L7F0CA668 -/* 0FF0D4 7F0CA5A4 00002825 */ move $a1, $zero -/* 0FF0D8 7F0CA5A8 02120019 */ multu $s0, $s2 -/* 0FF0DC 7F0CA5AC 32060003 */ andi $a2, $s0, 3 -/* 0FF0E0 7F0CA5B0 00C05025 */ move $t2, $a2 -/* 0FF0E4 7F0CA5B4 02281021 */ addu $v0, $s1, $t0 -/* 0FF0E8 7F0CA5B8 00604821 */ addu $t1, $v1, $zero -/* 0FF0EC 7F0CA5BC 0000C812 */ mflo $t9 -/* 0FF0F0 7F0CA5C0 01197021 */ addu $t6, $t0, $t9 -/* 0FF0F4 7F0CA5C4 10C0000D */ beqz $a2, .L7F0CA5FC -/* 0FF0F8 7F0CA5C8 01D15821 */ addu $t3, $t6, $s1 -.L7F0CA5CC: -/* 0FF0FC 7F0CA5CC 904F0000 */ lbu $t7, ($v0) -/* 0FF100 7F0CA5D0 91780000 */ lbu $t8, ($t3) -/* 0FF104 7F0CA5D4 24A50001 */ addiu $a1, $a1, 1 -/* 0FF108 7F0CA5D8 000FC900 */ sll $t9, $t7, 4 -/* 0FF10C 7F0CA5DC 03197025 */ or $t6, $t8, $t9 -/* 0FF110 7F0CA5E0 A12E0000 */ sb $t6, ($t1) -/* 0FF114 7F0CA5E4 25080001 */ addiu $t0, $t0, 1 -/* 0FF118 7F0CA5E8 24420001 */ addiu $v0, $v0, 1 -/* 0FF11C 7F0CA5EC 256B0001 */ addiu $t3, $t3, 1 -/* 0FF120 7F0CA5F0 1545FFF6 */ bne $t2, $a1, .L7F0CA5CC -/* 0FF124 7F0CA5F4 25290001 */ addiu $t1, $t1, 1 -/* 0FF128 7F0CA5F8 10B0001B */ beq $a1, $s0, .L7F0CA668 -.L7F0CA5FC: -/* 0FF12C 7F0CA5FC 00654821 */ addu $t1, $v1, $a1 -.L7F0CA600: -/* 0FF130 7F0CA600 90580000 */ lbu $t8, ($v0) -/* 0FF134 7F0CA604 916F0000 */ lbu $t7, ($t3) -/* 0FF138 7F0CA608 24A50004 */ addiu $a1, $a1, 4 -/* 0FF13C 7F0CA60C 0018C900 */ sll $t9, $t8, 4 -/* 0FF140 7F0CA610 01F97025 */ or $t6, $t7, $t9 -/* 0FF144 7F0CA614 A12E0000 */ sb $t6, ($t1) -/* 0FF148 7F0CA618 904F0001 */ lbu $t7, 1($v0) -/* 0FF14C 7F0CA61C 91780001 */ lbu $t8, 1($t3) -/* 0FF150 7F0CA620 25080004 */ addiu $t0, $t0, 4 -/* 0FF154 7F0CA624 000FC900 */ sll $t9, $t7, 4 -/* 0FF158 7F0CA628 03197025 */ or $t6, $t8, $t9 -/* 0FF15C 7F0CA62C A12E0001 */ sb $t6, 1($t1) -/* 0FF160 7F0CA630 90580002 */ lbu $t8, 2($v0) -/* 0FF164 7F0CA634 916F0002 */ lbu $t7, 2($t3) -/* 0FF168 7F0CA638 24420004 */ addiu $v0, $v0, 4 -/* 0FF16C 7F0CA63C 0018C900 */ sll $t9, $t8, 4 -/* 0FF170 7F0CA640 01F97025 */ or $t6, $t7, $t9 -/* 0FF174 7F0CA644 A12E0002 */ sb $t6, 2($t1) -/* 0FF178 7F0CA648 904FFFFF */ lbu $t7, -1($v0) -/* 0FF17C 7F0CA64C 91780003 */ lbu $t8, 3($t3) -/* 0FF180 7F0CA650 256B0004 */ addiu $t3, $t3, 4 -/* 0FF184 7F0CA654 000FC900 */ sll $t9, $t7, 4 -/* 0FF188 7F0CA658 03197025 */ or $t6, $t8, $t9 -/* 0FF18C 7F0CA65C A12E0003 */ sb $t6, 3($t1) -/* 0FF190 7F0CA660 14B0FFE7 */ bne $a1, $s0, .L7F0CA600 -/* 0FF194 7F0CA664 25290004 */ addiu $t1, $t1, 4 -.L7F0CA668: -/* 0FF198 7F0CA668 24E70001 */ addiu $a3, $a3, 1 -/* 0FF19C 7F0CA66C 14F2FFCC */ bne $a3, $s2, .L7F0CA5A0 -/* 0FF1A0 7F0CA670 00641821 */ addu $v1, $v1, $a0 -.L7F0CA674: -/* 0FF1A4 7F0CA674 260F0007 */ addiu $t7, $s0, 7 -/* 0FF1A8 7F0CA678 31F80FF8 */ andi $t8, $t7, 0xff8 -/* 0FF1AC 7F0CA67C 03120019 */ multu $t8, $s2 -/* 0FF1B0 7F0CA680 00001012 */ mflo $v0 -/* 0FF1B4 7F0CA684 1000007D */ b .L7F0CA87C -/* 0FF1B8 7F0CA688 8FB00008 */ lw $s0, 8($sp) -.L7F0CA68C: -/* 0FF1BC 7F0CA68C 1A400024 */ blez $s2, .L7F0CA720 -/* 0FF1C0 7F0CA690 00003825 */ move $a3, $zero -/* 0FF1C4 7F0CA694 26040007 */ addiu $a0, $s0, 7 -/* 0FF1C8 7F0CA698 30990FF8 */ andi $t9, $a0, 0xff8 -/* 0FF1CC 7F0CA69C 03202025 */ move $a0, $t9 -.L7F0CA6A0: -/* 0FF1D0 7F0CA6A0 1A00001C */ blez $s0, .L7F0CA714 -/* 0FF1D4 7F0CA6A4 00002825 */ move $a1, $zero -/* 0FF1D8 7F0CA6A8 32060003 */ andi $a2, $s0, 3 -/* 0FF1DC 7F0CA6AC 10C0000B */ beqz $a2, .L7F0CA6DC -/* 0FF1E0 7F0CA6B0 02281021 */ addu $v0, $s1, $t0 -/* 0FF1E4 7F0CA6B4 00C05025 */ move $t2, $a2 -/* 0FF1E8 7F0CA6B8 00604821 */ addu $t1, $v1, $zero -.L7F0CA6BC: -/* 0FF1EC 7F0CA6BC 904E0000 */ lbu $t6, ($v0) -/* 0FF1F0 7F0CA6C0 24A50001 */ addiu $a1, $a1, 1 -/* 0FF1F4 7F0CA6C4 25080001 */ addiu $t0, $t0, 1 -/* 0FF1F8 7F0CA6C8 24420001 */ addiu $v0, $v0, 1 -/* 0FF1FC 7F0CA6CC 25290001 */ addiu $t1, $t1, 1 -/* 0FF200 7F0CA6D0 1545FFFA */ bne $t2, $a1, .L7F0CA6BC -/* 0FF204 7F0CA6D4 A12EFFFF */ sb $t6, -1($t1) -/* 0FF208 7F0CA6D8 10B0000E */ beq $a1, $s0, .L7F0CA714 -.L7F0CA6DC: -/* 0FF20C 7F0CA6DC 00654821 */ addu $t1, $v1, $a1 -.L7F0CA6E0: -/* 0FF210 7F0CA6E0 904F0000 */ lbu $t7, ($v0) -/* 0FF214 7F0CA6E4 24A50004 */ addiu $a1, $a1, 4 -/* 0FF218 7F0CA6E8 25080004 */ addiu $t0, $t0, 4 -/* 0FF21C 7F0CA6EC A12F0000 */ sb $t7, ($t1) -/* 0FF220 7F0CA6F0 90580001 */ lbu $t8, 1($v0) -/* 0FF224 7F0CA6F4 24420004 */ addiu $v0, $v0, 4 -/* 0FF228 7F0CA6F8 25290004 */ addiu $t1, $t1, 4 -/* 0FF22C 7F0CA6FC A138FFFD */ sb $t8, -3($t1) -/* 0FF230 7F0CA700 9059FFFE */ lbu $t9, -2($v0) -/* 0FF234 7F0CA704 A139FFFE */ sb $t9, -2($t1) -/* 0FF238 7F0CA708 904EFFFF */ lbu $t6, -1($v0) -/* 0FF23C 7F0CA70C 14B0FFF4 */ bne $a1, $s0, .L7F0CA6E0 -/* 0FF240 7F0CA710 A12EFFFF */ sb $t6, -1($t1) -.L7F0CA714: -/* 0FF244 7F0CA714 24E70001 */ addiu $a3, $a3, 1 -/* 0FF248 7F0CA718 14F2FFE1 */ bne $a3, $s2, .L7F0CA6A0 -/* 0FF24C 7F0CA71C 00641821 */ addu $v1, $v1, $a0 -.L7F0CA720: -/* 0FF250 7F0CA720 260F0007 */ addiu $t7, $s0, 7 -/* 0FF254 7F0CA724 31F80FF8 */ andi $t8, $t7, 0xff8 -/* 0FF258 7F0CA728 03120019 */ multu $t8, $s2 -/* 0FF25C 7F0CA72C 00001012 */ mflo $v0 -/* 0FF260 7F0CA730 10000052 */ b .L7F0CA87C -/* 0FF264 7F0CA734 8FB00008 */ lw $s0, 8($sp) -.L7F0CA738: -/* 0FF268 7F0CA738 1A400026 */ blez $s2, .L7F0CA7D4 -/* 0FF26C 7F0CA73C 00003825 */ move $a3, $zero -/* 0FF270 7F0CA740 2606000F */ addiu $a2, $s0, 0xf -/* 0FF274 7F0CA744 30D90FF0 */ andi $t9, $a2, 0xff0 -/* 0FF278 7F0CA748 03203025 */ move $a2, $t9 -/* 0FF27C 7F0CA74C 32090001 */ andi $t1, $s0, 1 -.L7F0CA750: -/* 0FF280 7F0CA750 1A00001B */ blez $s0, .L7F0CA7C0 -/* 0FF284 7F0CA754 00002825 */ move $a1, $zero -/* 0FF288 7F0CA758 02120019 */ multu $s0, $s2 -/* 0FF28C 7F0CA75C 02281021 */ addu $v0, $s1, $t0 -/* 0FF290 7F0CA760 00007012 */ mflo $t6 -/* 0FF294 7F0CA764 000E7880 */ sll $t7, $t6, 2 -/* 0FF298 7F0CA768 01EE7823 */ subu $t7, $t7, $t6 -/* 0FF29C 7F0CA76C 01E8C021 */ addu $t8, $t7, $t0 -/* 0FF2A0 7F0CA770 03112021 */ addu $a0, $t8, $s1 -.L7F0CA774: -/* 0FF2A4 7F0CA774 904E0000 */ lbu $t6, ($v0) -/* 0FF2A8 7F0CA778 90990001 */ lbu $t9, 1($a0) -/* 0FF2AC 7F0CA77C 25080002 */ addiu $t0, $t0, 2 -/* 0FF2B0 7F0CA780 000E7940 */ sll $t7, $t6, 5 -/* 0FF2B4 7F0CA784 908E0000 */ lbu $t6, ($a0) -/* 0FF2B8 7F0CA788 032FC025 */ or $t8, $t9, $t7 -/* 0FF2BC 7F0CA78C 24420002 */ addiu $v0, $v0, 2 -/* 0FF2C0 7F0CA790 000EC900 */ sll $t9, $t6, 4 -/* 0FF2C4 7F0CA794 904EFFFF */ lbu $t6, -1($v0) -/* 0FF2C8 7F0CA798 03197825 */ or $t7, $t8, $t9 -/* 0FF2CC 7F0CA79C 24840002 */ addiu $a0, $a0, 2 -/* 0FF2D0 7F0CA7A0 000EC040 */ sll $t8, $t6, 1 -/* 0FF2D4 7F0CA7A4 00057043 */ sra $t6, $a1, 1 -/* 0FF2D8 7F0CA7A8 24A50002 */ addiu $a1, $a1, 2 -/* 0FF2DC 7F0CA7AC 01F8C825 */ or $t9, $t7, $t8 -/* 0FF2E0 7F0CA7B0 00B0082A */ slt $at, $a1, $s0 -/* 0FF2E4 7F0CA7B4 006E7821 */ addu $t7, $v1, $t6 -/* 0FF2E8 7F0CA7B8 1420FFEE */ bnez $at, .L7F0CA774 -/* 0FF2EC 7F0CA7BC A1F90000 */ sb $t9, ($t7) -.L7F0CA7C0: -/* 0FF2F0 7F0CA7C0 11200002 */ beqz $t1, .L7F0CA7CC -/* 0FF2F4 7F0CA7C4 24E70001 */ addiu $a3, $a3, 1 -/* 0FF2F8 7F0CA7C8 2508FFFF */ addiu $t0, $t0, -1 -.L7F0CA7CC: -/* 0FF2FC 7F0CA7CC 14F2FFE0 */ bne $a3, $s2, .L7F0CA750 -/* 0FF300 7F0CA7D0 00661821 */ addu $v1, $v1, $a2 -.L7F0CA7D4: -/* 0FF304 7F0CA7D4 2618000F */ addiu $t8, $s0, 0xf -/* 0FF308 7F0CA7D8 330E0FF0 */ andi $t6, $t8, 0xff0 -/* 0FF30C 7F0CA7DC 000EC843 */ sra $t9, $t6, 1 -/* 0FF310 7F0CA7E0 03320019 */ multu $t9, $s2 -/* 0FF314 7F0CA7E4 00001012 */ mflo $v0 -/* 0FF318 7F0CA7E8 10000024 */ b .L7F0CA87C -/* 0FF31C 7F0CA7EC 8FB00008 */ lw $s0, 8($sp) -.L7F0CA7F0: -/* 0FF320 7F0CA7F0 1A400019 */ blez $s2, .L7F0CA858 -/* 0FF324 7F0CA7F4 00003825 */ move $a3, $zero -/* 0FF328 7F0CA7F8 2604000F */ addiu $a0, $s0, 0xf -/* 0FF32C 7F0CA7FC 308F0FF0 */ andi $t7, $a0, 0xff0 -/* 0FF330 7F0CA800 000F2043 */ sra $a0, $t7, 1 -/* 0FF334 7F0CA804 32090001 */ andi $t1, $s0, 1 -.L7F0CA808: -/* 0FF338 7F0CA808 1A00000E */ blez $s0, .L7F0CA844 -/* 0FF33C 7F0CA80C 00002825 */ move $a1, $zero -/* 0FF340 7F0CA810 02281021 */ addu $v0, $s1, $t0 -.L7F0CA814: -/* 0FF344 7F0CA814 90590000 */ lbu $t9, ($v0) -/* 0FF348 7F0CA818 904E0001 */ lbu $t6, 1($v0) -/* 0FF34C 7F0CA81C 25080002 */ addiu $t0, $t0, 2 -/* 0FF350 7F0CA820 00197900 */ sll $t7, $t9, 4 -/* 0FF354 7F0CA824 0005C843 */ sra $t9, $a1, 1 -/* 0FF358 7F0CA828 24A50002 */ addiu $a1, $a1, 2 -/* 0FF35C 7F0CA82C 01CFC025 */ or $t8, $t6, $t7 -/* 0FF360 7F0CA830 00B0082A */ slt $at, $a1, $s0 -/* 0FF364 7F0CA834 00797021 */ addu $t6, $v1, $t9 -/* 0FF368 7F0CA838 A1D80000 */ sb $t8, ($t6) -/* 0FF36C 7F0CA83C 1420FFF5 */ bnez $at, .L7F0CA814 -/* 0FF370 7F0CA840 24420002 */ addiu $v0, $v0, 2 -.L7F0CA844: -/* 0FF374 7F0CA844 11200002 */ beqz $t1, .L7F0CA850 -/* 0FF378 7F0CA848 24E70001 */ addiu $a3, $a3, 1 -/* 0FF37C 7F0CA84C 2508FFFF */ addiu $t0, $t0, -1 -.L7F0CA850: -/* 0FF380 7F0CA850 14F2FFED */ bne $a3, $s2, .L7F0CA808 -/* 0FF384 7F0CA854 00641821 */ addu $v1, $v1, $a0 -.L7F0CA858: -/* 0FF388 7F0CA858 260F000F */ addiu $t7, $s0, 0xf -/* 0FF38C 7F0CA85C 31F90FF0 */ andi $t9, $t7, 0xff0 -/* 0FF390 7F0CA860 0019C043 */ sra $t8, $t9, 1 -/* 0FF394 7F0CA864 03120019 */ multu $t8, $s2 -/* 0FF398 7F0CA868 00001012 */ mflo $v0 -/* 0FF39C 7F0CA86C 10000003 */ b .L7F0CA87C -/* 0FF3A0 7F0CA870 8FB00008 */ lw $s0, 8($sp) -def_7F0C9DF0: -.L7F0CA874: -/* 0FF3A4 7F0CA874 00001025 */ move $v0, $zero -.L7F0CA878: -/* 0FF3A8 7F0CA878 8FB00008 */ lw $s0, 8($sp) -.L7F0CA87C: -/* 0FF3AC 7F0CA87C 8FB1000C */ lw $s1, 0xc($sp) -/* 0FF3B0 7F0CA880 8FB20010 */ lw $s2, 0x10($sp) -/* 0FF3B4 7F0CA884 8FB30014 */ lw $s3, 0x14($sp) -/* 0FF3B8 7F0CA888 03E00008 */ jr $ra -/* 0FF3BC 7F0CA88C 27BD0068 */ addiu $sp, $sp, 0x68 -) -#endif - - - - - -#ifdef NONMATCHING -void type5_generate_link_final_image(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BDE8*/ -glabel jpt_8005BDE8 -.word .L7F0CA908 -.word .L7F0CA9FC -.word .L7F0CA97C -.word .L7F0CAA78 -.word .L7F0CA9FC -.word .L7F0CAAFC -.word .L7F0CAB74 -.word .L7F0CAAFC -.word .L7F0CAB74 -.text -glabel type5_generate_link_final_image -/* 0FF3C0 7F0CA890 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0FF3C4 7F0CA894 AFB40028 */ sw $s4, 0x28($sp) -/* 0FF3C8 7F0CA898 0080A025 */ move $s4, $a0 -/* 0FF3CC 7F0CA89C AFBF003C */ sw $ra, 0x3c($sp) -/* 0FF3D0 7F0CA8A0 AFBE0038 */ sw $fp, 0x38($sp) -/* 0FF3D4 7F0CA8A4 AFB70034 */ sw $s7, 0x34($sp) -/* 0FF3D8 7F0CA8A8 AFB5002C */ sw $s5, 0x2c($sp) -/* 0FF3DC 7F0CA8AC AFB30024 */ sw $s3, 0x24($sp) -/* 0FF3E0 7F0CA8B0 00E09825 */ move $s3, $a3 -/* 0FF3E4 7F0CA8B4 AFB60030 */ sw $s6, 0x30($sp) -/* 0FF3E8 7F0CA8B8 AFB20020 */ sw $s2, 0x20($sp) -/* 0FF3EC 7F0CA8BC AFB1001C */ sw $s1, 0x1c($sp) -/* 0FF3F0 7F0CA8C0 AFB00018 */ sw $s0, 0x18($sp) -/* 0FF3F4 7F0CA8C4 AFA50044 */ sw $a1, 0x44($sp) -/* 0FF3F8 7F0CA8C8 00C0B825 */ move $s7, $a2 -/* 0FF3FC 7F0CA8CC 00C0F025 */ move $fp, $a2 -/* 0FF400 7F0CA8D0 00C0A825 */ move $s5, $a2 -/* 0FF404 7F0CA8D4 0FC32689 */ jal sub_GAME_7F0C9A24 -/* 0FF408 7F0CA8D8 8FA40050 */ lw $a0, 0x50($sp) -/* 0FF40C 7F0CA8DC 8FAE0054 */ lw $t6, 0x54($sp) -/* 0FF410 7F0CA8E0 00409025 */ move $s2, $v0 -/* 0FF414 7F0CA8E4 00001025 */ move $v0, $zero -/* 0FF418 7F0CA8E8 2DC10009 */ sltiu $at, $t6, 9 -/* 0FF41C 7F0CA8EC 102000CE */ beqz $at, .L7F0CAC28 -/* 0FF420 7F0CA8F0 000E7080 */ sll $t6, $t6, 2 -/* 0FF424 7F0CA8F4 3C018006 */ lui $at, %hi(jpt_8005BDE8) -/* 0FF428 7F0CA8F8 002E0821 */ addu $at, $at, $t6 -/* 0FF42C 7F0CA8FC 8C2EBDE8 */ lw $t6, %lo(jpt_8005BDE8)($at) -/* 0FF430 7F0CA900 01C00008 */ jr $t6 -/* 0FF434 7F0CA904 00000000 */ nop -.L7F0CA908: -/* 0FF438 7F0CA908 8FA30044 */ lw $v1, 0x44($sp) -/* 0FF43C 7F0CA90C 26950003 */ addiu $s5, $s4, 3 -/* 0FF440 7F0CA910 32AF0FFC */ andi $t7, $s5, 0xffc -/* 0FF444 7F0CA914 18600012 */ blez $v1, .L7F0CA960 -/* 0FF448 7F0CA918 0000B025 */ move $s6, $zero -/* 0FF44C 7F0CA91C 000FA880 */ sll $s5, $t7, 2 -.L7F0CA920: -/* 0FF450 7F0CA920 1A80000C */ blez $s4, .L7F0CA954 -/* 0FF454 7F0CA924 00008025 */ move $s0, $zero -/* 0FF458 7F0CA928 02E08825 */ move $s1, $s7 -.L7F0CA92C: -/* 0FF45C 7F0CA92C 0FC32FCB */ jal extractImageBitCount -/* 0FF460 7F0CA930 02402025 */ move $a0, $s2 -/* 0FF464 7F0CA934 0002C880 */ sll $t9, $v0, 2 -/* 0FF468 7F0CA938 02794021 */ addu $t0, $s3, $t9 -/* 0FF46C 7F0CA93C 8D090000 */ lw $t1, ($t0) -/* 0FF470 7F0CA940 26100001 */ addiu $s0, $s0, 1 -/* 0FF474 7F0CA944 26310004 */ addiu $s1, $s1, 4 -/* 0FF478 7F0CA948 1614FFF8 */ bne $s0, $s4, .L7F0CA92C -/* 0FF47C 7F0CA94C AE29FFFC */ sw $t1, -4($s1) -/* 0FF480 7F0CA950 8FA30044 */ lw $v1, 0x44($sp) -.L7F0CA954: -/* 0FF484 7F0CA954 26D60001 */ addiu $s6, $s6, 1 -/* 0FF488 7F0CA958 16C3FFF1 */ bne $s6, $v1, .L7F0CA920 -/* 0FF48C 7F0CA95C 02F5B821 */ addu $s7, $s7, $s5 -.L7F0CA960: -/* 0FF490 7F0CA960 268A0003 */ addiu $t2, $s4, 3 -/* 0FF494 7F0CA964 314B0FFC */ andi $t3, $t2, 0xffc -/* 0FF498 7F0CA968 01630019 */ multu $t3, $v1 -/* 0FF49C 7F0CA96C 00001012 */ mflo $v0 -/* 0FF4A0 7F0CA970 00026080 */ sll $t4, $v0, 2 -/* 0FF4A4 7F0CA974 100000AC */ b .L7F0CAC28 -/* 0FF4A8 7F0CA978 01801025 */ move $v0, $t4 -.L7F0CA97C: -/* 0FF4AC 7F0CA97C 8FAD0044 */ lw $t5, 0x44($sp) -/* 0FF4B0 7F0CA980 26950003 */ addiu $s5, $s4, 3 -/* 0FF4B4 7F0CA984 32AE0FFC */ andi $t6, $s5, 0xffc -/* 0FF4B8 7F0CA988 19A00014 */ blez $t5, .L7F0CA9DC -/* 0FF4BC 7F0CA98C 0000B025 */ move $s6, $zero -/* 0FF4C0 7F0CA990 000EA880 */ sll $s5, $t6, 2 -.L7F0CA994: -/* 0FF4C4 7F0CA994 1A80000C */ blez $s4, .L7F0CA9C8 -/* 0FF4C8 7F0CA998 00008025 */ move $s0, $zero -/* 0FF4CC 7F0CA99C 02E08825 */ move $s1, $s7 -.L7F0CA9A0: -/* 0FF4D0 7F0CA9A0 0FC32FCB */ jal extractImageBitCount -/* 0FF4D4 7F0CA9A4 02402025 */ move $a0, $s2 -/* 0FF4D8 7F0CA9A8 0002C080 */ sll $t8, $v0, 2 -/* 0FF4DC 7F0CA9AC 0278C821 */ addu $t9, $s3, $t8 -/* 0FF4E0 7F0CA9B0 8F280000 */ lw $t0, ($t9) -/* 0FF4E4 7F0CA9B4 26100001 */ addiu $s0, $s0, 1 -/* 0FF4E8 7F0CA9B8 26310004 */ addiu $s1, $s1, 4 -/* 0FF4EC 7F0CA9BC 00084A00 */ sll $t1, $t0, 8 -/* 0FF4F0 7F0CA9C0 1614FFF7 */ bne $s0, $s4, .L7F0CA9A0 -/* 0FF4F4 7F0CA9C4 AE29FFFC */ sw $t1, -4($s1) -.L7F0CA9C8: -/* 0FF4F8 7F0CA9C8 8FAA0044 */ lw $t2, 0x44($sp) -/* 0FF4FC 7F0CA9CC 26D60001 */ addiu $s6, $s6, 1 -/* 0FF500 7F0CA9D0 02F5B821 */ addu $s7, $s7, $s5 -/* 0FF504 7F0CA9D4 16CAFFEF */ bne $s6, $t2, .L7F0CA994 -/* 0FF508 7F0CA9D8 00000000 */ nop -.L7F0CA9DC: -/* 0FF50C 7F0CA9DC 8FAD0044 */ lw $t5, 0x44($sp) -/* 0FF510 7F0CA9E0 268B0003 */ addiu $t3, $s4, 3 -/* 0FF514 7F0CA9E4 316C0FFC */ andi $t4, $t3, 0xffc -/* 0FF518 7F0CA9E8 018D0019 */ multu $t4, $t5 -/* 0FF51C 7F0CA9EC 00001012 */ mflo $v0 -/* 0FF520 7F0CA9F0 00027080 */ sll $t6, $v0, 2 -/* 0FF524 7F0CA9F4 1000008C */ b .L7F0CAC28 -/* 0FF528 7F0CA9F8 01C01025 */ move $v0, $t6 -.L7F0CA9FC: -/* 0FF52C 7F0CA9FC 8FAF0044 */ lw $t7, 0x44($sp) -/* 0FF530 7F0CAA00 26950003 */ addiu $s5, $s4, 3 -/* 0FF534 7F0CAA04 32B80FFC */ andi $t8, $s5, 0xffc -/* 0FF538 7F0CAA08 19E00013 */ blez $t7, .L7F0CAA58 -/* 0FF53C 7F0CAA0C 0000B025 */ move $s6, $zero -/* 0FF540 7F0CAA10 0018A840 */ sll $s5, $t8, 1 -.L7F0CAA14: -/* 0FF544 7F0CAA14 1A80000B */ blez $s4, .L7F0CAA44 -/* 0FF548 7F0CAA18 00008025 */ move $s0, $zero -/* 0FF54C 7F0CAA1C 03C08825 */ move $s1, $fp -.L7F0CAA20: -/* 0FF550 7F0CAA20 0FC32FCB */ jal extractImageBitCount -/* 0FF554 7F0CAA24 02402025 */ move $a0, $s2 -/* 0FF558 7F0CAA28 00024040 */ sll $t0, $v0, 1 -/* 0FF55C 7F0CAA2C 02684821 */ addu $t1, $s3, $t0 -/* 0FF560 7F0CAA30 952A0000 */ lhu $t2, ($t1) -/* 0FF564 7F0CAA34 26100001 */ addiu $s0, $s0, 1 -/* 0FF568 7F0CAA38 26310002 */ addiu $s1, $s1, 2 -/* 0FF56C 7F0CAA3C 1614FFF8 */ bne $s0, $s4, .L7F0CAA20 -/* 0FF570 7F0CAA40 A62AFFFE */ sh $t2, -2($s1) -.L7F0CAA44: -/* 0FF574 7F0CAA44 8FAB0044 */ lw $t3, 0x44($sp) -/* 0FF578 7F0CAA48 26D60001 */ addiu $s6, $s6, 1 -/* 0FF57C 7F0CAA4C 03D5F021 */ addu $fp, $fp, $s5 -/* 0FF580 7F0CAA50 16CBFFF0 */ bne $s6, $t3, .L7F0CAA14 -/* 0FF584 7F0CAA54 00000000 */ nop -.L7F0CAA58: -/* 0FF588 7F0CAA58 8FAE0044 */ lw $t6, 0x44($sp) -/* 0FF58C 7F0CAA5C 268C0003 */ addiu $t4, $s4, 3 -/* 0FF590 7F0CAA60 318D0FFC */ andi $t5, $t4, 0xffc -/* 0FF594 7F0CAA64 01AE0019 */ multu $t5, $t6 -/* 0FF598 7F0CAA68 00001012 */ mflo $v0 -/* 0FF59C 7F0CAA6C 00027840 */ sll $t7, $v0, 1 -/* 0FF5A0 7F0CAA70 1000006D */ b .L7F0CAC28 -/* 0FF5A4 7F0CAA74 01E01025 */ move $v0, $t7 -.L7F0CAA78: -/* 0FF5A8 7F0CAA78 8FB80044 */ lw $t8, 0x44($sp) -/* 0FF5AC 7F0CAA7C 26950003 */ addiu $s5, $s4, 3 -/* 0FF5B0 7F0CAA80 32B90FFC */ andi $t9, $s5, 0xffc -/* 0FF5B4 7F0CAA84 1B000015 */ blez $t8, .L7F0CAADC -/* 0FF5B8 7F0CAA88 0000B025 */ move $s6, $zero -/* 0FF5BC 7F0CAA8C 0019A840 */ sll $s5, $t9, 1 -.L7F0CAA90: -/* 0FF5C0 7F0CAA90 1A80000D */ blez $s4, .L7F0CAAC8 -/* 0FF5C4 7F0CAA94 00008025 */ move $s0, $zero -/* 0FF5C8 7F0CAA98 03C08825 */ move $s1, $fp -.L7F0CAA9C: -/* 0FF5CC 7F0CAA9C 0FC32FCB */ jal extractImageBitCount -/* 0FF5D0 7F0CAAA0 02402025 */ move $a0, $s2 -/* 0FF5D4 7F0CAAA4 00024840 */ sll $t1, $v0, 1 -/* 0FF5D8 7F0CAAA8 02695021 */ addu $t2, $s3, $t1 -/* 0FF5DC 7F0CAAAC 954B0000 */ lhu $t3, ($t2) -/* 0FF5E0 7F0CAAB0 26100001 */ addiu $s0, $s0, 1 -/* 0FF5E4 7F0CAAB4 26310002 */ addiu $s1, $s1, 2 -/* 0FF5E8 7F0CAAB8 000B6040 */ sll $t4, $t3, 1 -/* 0FF5EC 7F0CAABC 358D0001 */ ori $t5, $t4, 1 -/* 0FF5F0 7F0CAAC0 1614FFF6 */ bne $s0, $s4, .L7F0CAA9C -/* 0FF5F4 7F0CAAC4 A62DFFFE */ sh $t5, -2($s1) -.L7F0CAAC8: -/* 0FF5F8 7F0CAAC8 8FAE0044 */ lw $t6, 0x44($sp) -/* 0FF5FC 7F0CAACC 26D60001 */ addiu $s6, $s6, 1 -/* 0FF600 7F0CAAD0 03D5F021 */ addu $fp, $fp, $s5 -/* 0FF604 7F0CAAD4 16CEFFEE */ bne $s6, $t6, .L7F0CAA90 -/* 0FF608 7F0CAAD8 00000000 */ nop -.L7F0CAADC: -/* 0FF60C 7F0CAADC 8FB90044 */ lw $t9, 0x44($sp) -/* 0FF610 7F0CAAE0 268F0003 */ addiu $t7, $s4, 3 -/* 0FF614 7F0CAAE4 31F80FFC */ andi $t8, $t7, 0xffc -/* 0FF618 7F0CAAE8 03190019 */ multu $t8, $t9 -/* 0FF61C 7F0CAAEC 00001012 */ mflo $v0 -/* 0FF620 7F0CAAF0 00024040 */ sll $t0, $v0, 1 -/* 0FF624 7F0CAAF4 1000004C */ b .L7F0CAC28 -/* 0FF628 7F0CAAF8 01001025 */ move $v0, $t0 -.L7F0CAAFC: -/* 0FF62C 7F0CAAFC 8FA90044 */ lw $t1, 0x44($sp) -/* 0FF630 7F0CAB00 26970007 */ addiu $s7, $s4, 7 -/* 0FF634 7F0CAB04 32EA0FF8 */ andi $t2, $s7, 0xff8 -/* 0FF638 7F0CAB08 19200013 */ blez $t1, .L7F0CAB58 -/* 0FF63C 7F0CAB0C 0000B025 */ move $s6, $zero -/* 0FF640 7F0CAB10 0140B825 */ move $s7, $t2 -.L7F0CAB14: -/* 0FF644 7F0CAB14 1A80000B */ blez $s4, .L7F0CAB44 -/* 0FF648 7F0CAB18 00008025 */ move $s0, $zero -/* 0FF64C 7F0CAB1C 02A08825 */ move $s1, $s5 -.L7F0CAB20: -/* 0FF650 7F0CAB20 0FC32FCB */ jal extractImageBitCount -/* 0FF654 7F0CAB24 02402025 */ move $a0, $s2 -/* 0FF658 7F0CAB28 00025840 */ sll $t3, $v0, 1 -/* 0FF65C 7F0CAB2C 026B6021 */ addu $t4, $s3, $t3 -/* 0FF660 7F0CAB30 958D0000 */ lhu $t5, ($t4) -/* 0FF664 7F0CAB34 26100001 */ addiu $s0, $s0, 1 -/* 0FF668 7F0CAB38 26310001 */ addiu $s1, $s1, 1 -/* 0FF66C 7F0CAB3C 1614FFF8 */ bne $s0, $s4, .L7F0CAB20 -/* 0FF670 7F0CAB40 A22DFFFF */ sb $t5, -1($s1) -.L7F0CAB44: -/* 0FF674 7F0CAB44 8FAE0044 */ lw $t6, 0x44($sp) -/* 0FF678 7F0CAB48 26D60001 */ addiu $s6, $s6, 1 -/* 0FF67C 7F0CAB4C 02B7A821 */ addu $s5, $s5, $s7 -/* 0FF680 7F0CAB50 16CEFFF0 */ bne $s6, $t6, .L7F0CAB14 -/* 0FF684 7F0CAB54 00000000 */ nop -.L7F0CAB58: -/* 0FF688 7F0CAB58 8FB90044 */ lw $t9, 0x44($sp) -/* 0FF68C 7F0CAB5C 268F0007 */ addiu $t7, $s4, 7 -/* 0FF690 7F0CAB60 31F80FF8 */ andi $t8, $t7, 0xff8 -/* 0FF694 7F0CAB64 03190019 */ multu $t8, $t9 -/* 0FF698 7F0CAB68 00001012 */ mflo $v0 -/* 0FF69C 7F0CAB6C 1000002F */ b .L7F0CAC2C -/* 0FF6A0 7F0CAB70 8FBF003C */ lw $ra, 0x3c($sp) -.L7F0CAB74: -/* 0FF6A4 7F0CAB74 8FA80044 */ lw $t0, 0x44($sp) -/* 0FF6A8 7F0CAB78 2697000F */ addiu $s7, $s4, 0xf -/* 0FF6AC 7F0CAB7C 32E90FF0 */ andi $t1, $s7, 0xff0 -/* 0FF6B0 7F0CAB80 19000021 */ blez $t0, .L7F0CAC08 -/* 0FF6B4 7F0CAB84 0000B025 */ move $s6, $zero -/* 0FF6B8 7F0CAB88 0009B843 */ sra $s7, $t1, 1 -.L7F0CAB8C: -/* 0FF6BC 7F0CAB8C 1A800019 */ blez $s4, .L7F0CABF4 -/* 0FF6C0 7F0CAB90 00008025 */ move $s0, $zero -.L7F0CAB94: -/* 0FF6C4 7F0CAB94 0FC32FCB */ jal extractImageBitCount -/* 0FF6C8 7F0CAB98 02402025 */ move $a0, $s2 -/* 0FF6CC 7F0CAB9C 00026040 */ sll $t4, $v0, 1 -/* 0FF6D0 7F0CABA0 026C6821 */ addu $t5, $s3, $t4 -/* 0FF6D4 7F0CABA4 95AE0000 */ lhu $t6, ($t5) -/* 0FF6D8 7F0CABA8 00105843 */ sra $t3, $s0, 1 -/* 0FF6DC 7F0CABAC 26180001 */ addiu $t8, $s0, 1 -/* 0FF6E0 7F0CABB0 02AB8821 */ addu $s1, $s5, $t3 -/* 0FF6E4 7F0CABB4 0314082A */ slt $at, $t8, $s4 -/* 0FF6E8 7F0CABB8 000E7900 */ sll $t7, $t6, 4 -/* 0FF6EC 7F0CABBC 10200009 */ beqz $at, .L7F0CABE4 -/* 0FF6F0 7F0CABC0 A22F0000 */ sb $t7, ($s1) -/* 0FF6F4 7F0CABC4 0FC32FCB */ jal extractImageBitCount -/* 0FF6F8 7F0CABC8 02402025 */ move $a0, $s2 -/* 0FF6FC 7F0CABCC 00024040 */ sll $t0, $v0, 1 -/* 0FF700 7F0CABD0 02684821 */ addu $t1, $s3, $t0 -/* 0FF704 7F0CABD4 912A0001 */ lbu $t2, 1($t1) -/* 0FF708 7F0CABD8 92390000 */ lbu $t9, ($s1) -/* 0FF70C 7F0CABDC 032A5825 */ or $t3, $t9, $t2 -/* 0FF710 7F0CABE0 A22B0000 */ sb $t3, ($s1) -.L7F0CABE4: -/* 0FF714 7F0CABE4 26100002 */ addiu $s0, $s0, 2 -/* 0FF718 7F0CABE8 0214082A */ slt $at, $s0, $s4 -/* 0FF71C 7F0CABEC 1420FFE9 */ bnez $at, .L7F0CAB94 -/* 0FF720 7F0CABF0 00000000 */ nop -.L7F0CABF4: -/* 0FF724 7F0CABF4 8FAC0044 */ lw $t4, 0x44($sp) -/* 0FF728 7F0CABF8 26D60001 */ addiu $s6, $s6, 1 -/* 0FF72C 7F0CABFC 02B7A821 */ addu $s5, $s5, $s7 -/* 0FF730 7F0CAC00 16CCFFE2 */ bne $s6, $t4, .L7F0CAB8C -/* 0FF734 7F0CAC04 00000000 */ nop -.L7F0CAC08: -/* 0FF738 7F0CAC08 8FB80044 */ lw $t8, 0x44($sp) -/* 0FF73C 7F0CAC0C 268D000F */ addiu $t5, $s4, 0xf -/* 0FF740 7F0CAC10 31AE0FF0 */ andi $t6, $t5, 0xff0 -/* 0FF744 7F0CAC14 000E7843 */ sra $t7, $t6, 1 -/* 0FF748 7F0CAC18 01F80019 */ multu $t7, $t8 -/* 0FF74C 7F0CAC1C 00001012 */ mflo $v0 -/* 0FF750 7F0CAC20 10000002 */ b .L7F0CAC2C -/* 0FF754 7F0CAC24 8FBF003C */ lw $ra, 0x3c($sp) -def_7F0CA900: -.L7F0CAC28: -/* 0FF758 7F0CAC28 8FBF003C */ lw $ra, 0x3c($sp) -.L7F0CAC2C: -/* 0FF75C 7F0CAC2C 8FB00018 */ lw $s0, 0x18($sp) -/* 0FF760 7F0CAC30 8FB1001C */ lw $s1, 0x1c($sp) -/* 0FF764 7F0CAC34 8FB20020 */ lw $s2, 0x20($sp) -/* 0FF768 7F0CAC38 8FB30024 */ lw $s3, 0x24($sp) -/* 0FF76C 7F0CAC3C 8FB40028 */ lw $s4, 0x28($sp) -/* 0FF770 7F0CAC40 8FB5002C */ lw $s5, 0x2c($sp) -/* 0FF774 7F0CAC44 8FB60030 */ lw $s6, 0x30($sp) -/* 0FF778 7F0CAC48 8FB70034 */ lw $s7, 0x34($sp) -/* 0FF77C 7F0CAC4C 8FBE0038 */ lw $fp, 0x38($sp) -/* 0FF780 7F0CAC50 03E00008 */ jr $ra -/* 0FF784 7F0CAC54 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif - - - - - -#ifdef NONMATCHING -void type6_7_generate_link_final_image(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BE0C*/ -glabel jpt_8005BE0C -.word .L7F0CACC4 -.word .L7F0CB0AC -.word .L7F0CAE90 -.word .L7F0CB26C -.word .L7F0CB0AC -.word .L7F0CB3C4 -.word .L7F0CB584 -.word .L7F0CB3C4 -.word .L7F0CB584 -.text -glabel type6_7_generate_link_final_image -/* 0FF788 7F0CAC58 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0FF78C 7F0CAC5C AFB00004 */ sw $s0, 4($sp) -/* 0FF790 7F0CAC60 8FB0003C */ lw $s0, 0x3c($sp) -/* 0FF794 7F0CAC64 AFB2000C */ sw $s2, 0xc($sp) -/* 0FF798 7F0CAC68 AFB10008 */ sw $s1, 8($sp) -/* 0FF79C 7F0CAC6C 2A010101 */ slti $at, $s0, 0x101 -/* 0FF7A0 7F0CAC70 00A08825 */ move $s1, $a1 -/* 0FF7A4 7F0CAC74 00C09025 */ move $s2, $a2 -/* 0FF7A8 7F0CAC78 AFA40028 */ sw $a0, 0x28($sp) -/* 0FF7AC 7F0CAC7C 00E04825 */ move $t1, $a3 -/* 0FF7B0 7F0CAC80 00E05025 */ move $t2, $a3 -/* 0FF7B4 7F0CAC84 10200003 */ beqz $at, .L7F0CAC94 -/* 0FF7B8 7F0CAC88 00E05825 */ move $t3, $a3 -/* 0FF7BC 7F0CAC8C 10000003 */ b .L7F0CAC9C -/* 0FF7C0 7F0CAC90 8FA50010 */ lw $a1, 0x10($sp) -.L7F0CAC94: -/* 0FF7C4 7F0CAC94 8FA50028 */ lw $a1, 0x28($sp) -/* 0FF7C8 7F0CAC98 8FA40014 */ lw $a0, 0x14($sp) -.L7F0CAC9C: -/* 0FF7CC 7F0CAC9C 8FAE0040 */ lw $t6, 0x40($sp) -/* 0FF7D0 7F0CACA0 00001025 */ move $v0, $zero -/* 0FF7D4 7F0CACA4 2DC10009 */ sltiu $at, $t6, 9 -/* 0FF7D8 7F0CACA8 1020026F */ beqz $at, .L7F0CB668 -/* 0FF7DC 7F0CACAC 000E7080 */ sll $t6, $t6, 2 -/* 0FF7E0 7F0CACB0 3C018006 */ lui $at, %hi(jpt_8005BE0C) -/* 0FF7E4 7F0CACB4 002E0821 */ addu $at, $at, $t6 -/* 0FF7E8 7F0CACB8 8C2EBE0C */ lw $t6, %lo(jpt_8005BE0C)($at) -/* 0FF7EC 7F0CACBC 01C00008 */ jr $t6 -/* 0FF7F0 7F0CACC0 00000000 */ nop -.L7F0CACC4: -/* 0FF7F4 7F0CACC4 1A40006B */ blez $s2, .L7F0CAE74 -/* 0FF7F8 7F0CACC8 00003825 */ move $a3, $zero -/* 0FF7FC 7F0CACCC 262C0003 */ addiu $t4, $s1, 3 -/* 0FF800 7F0CACD0 318F0FFC */ andi $t7, $t4, 0xffc -/* 0FF804 7F0CACD4 000F6080 */ sll $t4, $t7, 2 -/* 0FF808 7F0CACD8 00114040 */ sll $t0, $s1, 1 -/* 0FF80C 7F0CACDC 8FA30038 */ lw $v1, 0x38($sp) -.L7F0CACE0: -/* 0FF810 7F0CACE0 1A20005F */ blez $s1, .L7F0CAE60 -/* 0FF814 7F0CACE4 00001025 */ move $v0, $zero -/* 0FF818 7F0CACE8 32260003 */ andi $a2, $s1, 3 -/* 0FF81C 7F0CACEC 10C00017 */ beqz $a2, .L7F0CAD4C -/* 0FF820 7F0CACF0 00C05825 */ move $t3, $a2 -/* 0FF824 7F0CACF4 0000C880 */ sll $t9, $zero, 2 -/* 0FF828 7F0CACF8 01395021 */ addu $t2, $t1, $t9 -.L7F0CACFC: -/* 0FF82C 7F0CACFC 2A010101 */ slti $at, $s0, 0x101 -/* 0FF830 7F0CAD00 10200008 */ beqz $at, .L7F0CAD24 -/* 0FF834 7F0CAD04 00027840 */ sll $t7, $v0, 1 -/* 0FF838 7F0CAD08 00827021 */ addu $t6, $a0, $v0 -/* 0FF83C 7F0CAD0C 91CF0000 */ lbu $t7, ($t6) -/* 0FF840 7F0CAD10 000FC080 */ sll $t8, $t7, 2 -/* 0FF844 7F0CAD14 0078C821 */ addu $t9, $v1, $t8 -/* 0FF848 7F0CAD18 8F2E0000 */ lw $t6, ($t9) -/* 0FF84C 7F0CAD1C 10000007 */ b .L7F0CAD3C -/* 0FF850 7F0CAD20 AD4E0000 */ sw $t6, ($t2) -.L7F0CAD24: -/* 0FF854 7F0CAD24 00AFC021 */ addu $t8, $a1, $t7 -/* 0FF858 7F0CAD28 97190000 */ lhu $t9, ($t8) -/* 0FF85C 7F0CAD2C 00197080 */ sll $t6, $t9, 2 -/* 0FF860 7F0CAD30 006E7821 */ addu $t7, $v1, $t6 -/* 0FF864 7F0CAD34 8DF80000 */ lw $t8, ($t7) -/* 0FF868 7F0CAD38 AD580000 */ sw $t8, ($t2) -.L7F0CAD3C: -/* 0FF86C 7F0CAD3C 24420001 */ addiu $v0, $v0, 1 -/* 0FF870 7F0CAD40 1562FFEE */ bne $t3, $v0, .L7F0CACFC -/* 0FF874 7F0CAD44 254A0004 */ addiu $t2, $t2, 4 -/* 0FF878 7F0CAD48 10510045 */ beq $v0, $s1, .L7F0CAE60 -.L7F0CAD4C: -/* 0FF87C 7F0CAD4C 0002C880 */ sll $t9, $v0, 2 -/* 0FF880 7F0CAD50 01395021 */ addu $t2, $t1, $t9 -.L7F0CAD54: -/* 0FF884 7F0CAD54 2A010101 */ slti $at, $s0, 0x101 -/* 0FF888 7F0CAD58 10200008 */ beqz $at, .L7F0CAD7C -/* 0FF88C 7F0CAD5C 00027840 */ sll $t7, $v0, 1 -/* 0FF890 7F0CAD60 00827021 */ addu $t6, $a0, $v0 -/* 0FF894 7F0CAD64 91CF0000 */ lbu $t7, ($t6) -/* 0FF898 7F0CAD68 000FC080 */ sll $t8, $t7, 2 -/* 0FF89C 7F0CAD6C 0078C821 */ addu $t9, $v1, $t8 -/* 0FF8A0 7F0CAD70 8F2E0000 */ lw $t6, ($t9) -/* 0FF8A4 7F0CAD74 10000007 */ b .L7F0CAD94 -/* 0FF8A8 7F0CAD78 AD4E0000 */ sw $t6, ($t2) -.L7F0CAD7C: -/* 0FF8AC 7F0CAD7C 00AFC021 */ addu $t8, $a1, $t7 -/* 0FF8B0 7F0CAD80 97190000 */ lhu $t9, ($t8) -/* 0FF8B4 7F0CAD84 00197080 */ sll $t6, $t9, 2 -/* 0FF8B8 7F0CAD88 006E7821 */ addu $t7, $v1, $t6 -/* 0FF8BC 7F0CAD8C 8DF80000 */ lw $t8, ($t7) -/* 0FF8C0 7F0CAD90 AD580000 */ sw $t8, ($t2) -.L7F0CAD94: -/* 0FF8C4 7F0CAD94 2A010101 */ slti $at, $s0, 0x101 -/* 0FF8C8 7F0CAD98 10200008 */ beqz $at, .L7F0CADBC -/* 0FF8CC 7F0CAD9C 00027040 */ sll $t6, $v0, 1 -/* 0FF8D0 7F0CADA0 0082C821 */ addu $t9, $a0, $v0 -/* 0FF8D4 7F0CADA4 932E0001 */ lbu $t6, 1($t9) -/* 0FF8D8 7F0CADA8 000E7880 */ sll $t7, $t6, 2 -/* 0FF8DC 7F0CADAC 006FC021 */ addu $t8, $v1, $t7 -/* 0FF8E0 7F0CADB0 8F190000 */ lw $t9, ($t8) -/* 0FF8E4 7F0CADB4 10000007 */ b .L7F0CADD4 -/* 0FF8E8 7F0CADB8 AD590004 */ sw $t9, 4($t2) -.L7F0CADBC: -/* 0FF8EC 7F0CADBC 00AE7821 */ addu $t7, $a1, $t6 -/* 0FF8F0 7F0CADC0 95F80002 */ lhu $t8, 2($t7) -/* 0FF8F4 7F0CADC4 0018C880 */ sll $t9, $t8, 2 -/* 0FF8F8 7F0CADC8 00797021 */ addu $t6, $v1, $t9 -/* 0FF8FC 7F0CADCC 8DCF0000 */ lw $t7, ($t6) -/* 0FF900 7F0CADD0 AD4F0004 */ sw $t7, 4($t2) -.L7F0CADD4: -/* 0FF904 7F0CADD4 2A010101 */ slti $at, $s0, 0x101 -/* 0FF908 7F0CADD8 10200008 */ beqz $at, .L7F0CADFC -/* 0FF90C 7F0CADDC 0002C840 */ sll $t9, $v0, 1 -/* 0FF910 7F0CADE0 0082C021 */ addu $t8, $a0, $v0 -/* 0FF914 7F0CADE4 93190002 */ lbu $t9, 2($t8) -/* 0FF918 7F0CADE8 00197080 */ sll $t6, $t9, 2 -/* 0FF91C 7F0CADEC 006E7821 */ addu $t7, $v1, $t6 -/* 0FF920 7F0CADF0 8DF80000 */ lw $t8, ($t7) -/* 0FF924 7F0CADF4 10000007 */ b .L7F0CAE14 -/* 0FF928 7F0CADF8 AD580008 */ sw $t8, 8($t2) -.L7F0CADFC: -/* 0FF92C 7F0CADFC 00B97021 */ addu $t6, $a1, $t9 -/* 0FF930 7F0CAE00 95CF0004 */ lhu $t7, 4($t6) -/* 0FF934 7F0CAE04 000FC080 */ sll $t8, $t7, 2 -/* 0FF938 7F0CAE08 0078C821 */ addu $t9, $v1, $t8 -/* 0FF93C 7F0CAE0C 8F2E0000 */ lw $t6, ($t9) -/* 0FF940 7F0CAE10 AD4E0008 */ sw $t6, 8($t2) -.L7F0CAE14: -/* 0FF944 7F0CAE14 2A010101 */ slti $at, $s0, 0x101 -/* 0FF948 7F0CAE18 10200008 */ beqz $at, .L7F0CAE3C -/* 0FF94C 7F0CAE1C 0002C040 */ sll $t8, $v0, 1 -/* 0FF950 7F0CAE20 00827821 */ addu $t7, $a0, $v0 -/* 0FF954 7F0CAE24 91F80003 */ lbu $t8, 3($t7) -/* 0FF958 7F0CAE28 0018C880 */ sll $t9, $t8, 2 -/* 0FF95C 7F0CAE2C 00797021 */ addu $t6, $v1, $t9 -/* 0FF960 7F0CAE30 8DCF0000 */ lw $t7, ($t6) -/* 0FF964 7F0CAE34 10000007 */ b .L7F0CAE54 -/* 0FF968 7F0CAE38 AD4F000C */ sw $t7, 0xc($t2) -.L7F0CAE3C: -/* 0FF96C 7F0CAE3C 00B8C821 */ addu $t9, $a1, $t8 -/* 0FF970 7F0CAE40 972E0006 */ lhu $t6, 6($t9) -/* 0FF974 7F0CAE44 000E7880 */ sll $t7, $t6, 2 -/* 0FF978 7F0CAE48 006FC021 */ addu $t8, $v1, $t7 -/* 0FF97C 7F0CAE4C 8F190000 */ lw $t9, ($t8) -/* 0FF980 7F0CAE50 AD59000C */ sw $t9, 0xc($t2) -.L7F0CAE54: -/* 0FF984 7F0CAE54 24420004 */ addiu $v0, $v0, 4 -/* 0FF988 7F0CAE58 1451FFBE */ bne $v0, $s1, .L7F0CAD54 -/* 0FF98C 7F0CAE5C 254A0010 */ addiu $t2, $t2, 0x10 -.L7F0CAE60: -/* 0FF990 7F0CAE60 24E70001 */ addiu $a3, $a3, 1 -/* 0FF994 7F0CAE64 012C4821 */ addu $t1, $t1, $t4 -/* 0FF998 7F0CAE68 00912021 */ addu $a0, $a0, $s1 -/* 0FF99C 7F0CAE6C 14F2FF9C */ bne $a3, $s2, .L7F0CACE0 -/* 0FF9A0 7F0CAE70 00A82821 */ addu $a1, $a1, $t0 -.L7F0CAE74: -/* 0FF9A4 7F0CAE74 262E0003 */ addiu $t6, $s1, 3 -/* 0FF9A8 7F0CAE78 31CF0FFC */ andi $t7, $t6, 0xffc -/* 0FF9AC 7F0CAE7C 01F20019 */ multu $t7, $s2 -/* 0FF9B0 7F0CAE80 00001012 */ mflo $v0 -/* 0FF9B4 7F0CAE84 0002C080 */ sll $t8, $v0, 2 -/* 0FF9B8 7F0CAE88 100001F7 */ b .L7F0CB668 -/* 0FF9BC 7F0CAE8C 03001025 */ move $v0, $t8 -.L7F0CAE90: -/* 0FF9C0 7F0CAE90 1A40007F */ blez $s2, .L7F0CB090 -/* 0FF9C4 7F0CAE94 00003825 */ move $a3, $zero -/* 0FF9C8 7F0CAE98 262C0003 */ addiu $t4, $s1, 3 -/* 0FF9CC 7F0CAE9C 31990FFC */ andi $t9, $t4, 0xffc -/* 0FF9D0 7F0CAEA0 00196080 */ sll $t4, $t9, 2 -/* 0FF9D4 7F0CAEA4 00114040 */ sll $t0, $s1, 1 -/* 0FF9D8 7F0CAEA8 8FA30038 */ lw $v1, 0x38($sp) -.L7F0CAEAC: -/* 0FF9DC 7F0CAEAC 1A200073 */ blez $s1, .L7F0CB07C -/* 0FF9E0 7F0CAEB0 00001025 */ move $v0, $zero -/* 0FF9E4 7F0CAEB4 32260003 */ andi $a2, $s1, 3 -/* 0FF9E8 7F0CAEB8 10C0001B */ beqz $a2, .L7F0CAF28 -/* 0FF9EC 7F0CAEBC 00C05825 */ move $t3, $a2 -/* 0FF9F0 7F0CAEC0 00007880 */ sll $t7, $zero, 2 -/* 0FF9F4 7F0CAEC4 012F5021 */ addu $t2, $t1, $t7 -.L7F0CAEC8: -/* 0FF9F8 7F0CAEC8 2A010101 */ slti $at, $s0, 0x101 -/* 0FF9FC 7F0CAECC 1020000A */ beqz $at, .L7F0CAEF8 -/* 0FFA00 7F0CAED0 00027840 */ sll $t7, $v0, 1 -/* 0FFA04 7F0CAED4 0082C021 */ addu $t8, $a0, $v0 -/* 0FFA08 7F0CAED8 93190000 */ lbu $t9, ($t8) -/* 0FFA0C 7F0CAEDC 00197080 */ sll $t6, $t9, 2 -/* 0FFA10 7F0CAEE0 006E7821 */ addu $t7, $v1, $t6 -/* 0FFA14 7F0CAEE4 8DF80000 */ lw $t8, ($t7) -/* 0FFA18 7F0CAEE8 0018CA00 */ sll $t9, $t8, 8 -/* 0FFA1C 7F0CAEEC 372E00FF */ ori $t6, $t9, 0xff -/* 0FFA20 7F0CAEF0 10000009 */ b .L7F0CAF18 -/* 0FFA24 7F0CAEF4 AD4E0000 */ sw $t6, ($t2) -.L7F0CAEF8: -/* 0FFA28 7F0CAEF8 00AFC021 */ addu $t8, $a1, $t7 -/* 0FFA2C 7F0CAEFC 97190000 */ lhu $t9, ($t8) -/* 0FFA30 7F0CAF00 00197080 */ sll $t6, $t9, 2 -/* 0FFA34 7F0CAF04 006E7821 */ addu $t7, $v1, $t6 -/* 0FFA38 7F0CAF08 8DF80000 */ lw $t8, ($t7) -/* 0FFA3C 7F0CAF0C 0018CA00 */ sll $t9, $t8, 8 -/* 0FFA40 7F0CAF10 372E00FF */ ori $t6, $t9, 0xff -/* 0FFA44 7F0CAF14 AD4E0000 */ sw $t6, ($t2) -.L7F0CAF18: -/* 0FFA48 7F0CAF18 24420001 */ addiu $v0, $v0, 1 -/* 0FFA4C 7F0CAF1C 1562FFEA */ bne $t3, $v0, .L7F0CAEC8 -/* 0FFA50 7F0CAF20 254A0004 */ addiu $t2, $t2, 4 -/* 0FFA54 7F0CAF24 10510055 */ beq $v0, $s1, .L7F0CB07C -.L7F0CAF28: -/* 0FFA58 7F0CAF28 00027880 */ sll $t7, $v0, 2 -/* 0FFA5C 7F0CAF2C 012F5021 */ addu $t2, $t1, $t7 -.L7F0CAF30: -/* 0FFA60 7F0CAF30 2A010101 */ slti $at, $s0, 0x101 -/* 0FFA64 7F0CAF34 1020000A */ beqz $at, .L7F0CAF60 -/* 0FFA68 7F0CAF38 00027840 */ sll $t7, $v0, 1 -/* 0FFA6C 7F0CAF3C 0082C021 */ addu $t8, $a0, $v0 -/* 0FFA70 7F0CAF40 93190000 */ lbu $t9, ($t8) -/* 0FFA74 7F0CAF44 00197080 */ sll $t6, $t9, 2 -/* 0FFA78 7F0CAF48 006E7821 */ addu $t7, $v1, $t6 -/* 0FFA7C 7F0CAF4C 8DF80000 */ lw $t8, ($t7) -/* 0FFA80 7F0CAF50 0018CA00 */ sll $t9, $t8, 8 -/* 0FFA84 7F0CAF54 372E00FF */ ori $t6, $t9, 0xff -/* 0FFA88 7F0CAF58 10000009 */ b .L7F0CAF80 -/* 0FFA8C 7F0CAF5C AD4E0000 */ sw $t6, ($t2) -.L7F0CAF60: -/* 0FFA90 7F0CAF60 00AFC021 */ addu $t8, $a1, $t7 -/* 0FFA94 7F0CAF64 97190000 */ lhu $t9, ($t8) -/* 0FFA98 7F0CAF68 00197080 */ sll $t6, $t9, 2 -/* 0FFA9C 7F0CAF6C 006E7821 */ addu $t7, $v1, $t6 -/* 0FFAA0 7F0CAF70 8DF80000 */ lw $t8, ($t7) -/* 0FFAA4 7F0CAF74 0018CA00 */ sll $t9, $t8, 8 -/* 0FFAA8 7F0CAF78 372E00FF */ ori $t6, $t9, 0xff -/* 0FFAAC 7F0CAF7C AD4E0000 */ sw $t6, ($t2) -.L7F0CAF80: -/* 0FFAB0 7F0CAF80 2A010101 */ slti $at, $s0, 0x101 -/* 0FFAB4 7F0CAF84 1020000A */ beqz $at, .L7F0CAFB0 -/* 0FFAB8 7F0CAF88 00027040 */ sll $t6, $v0, 1 -/* 0FFABC 7F0CAF8C 00827821 */ addu $t7, $a0, $v0 -/* 0FFAC0 7F0CAF90 91F80001 */ lbu $t8, 1($t7) -/* 0FFAC4 7F0CAF94 0018C880 */ sll $t9, $t8, 2 -/* 0FFAC8 7F0CAF98 00797021 */ addu $t6, $v1, $t9 -/* 0FFACC 7F0CAF9C 8DCF0000 */ lw $t7, ($t6) -/* 0FFAD0 7F0CAFA0 000FC200 */ sll $t8, $t7, 8 -/* 0FFAD4 7F0CAFA4 371900FF */ ori $t9, $t8, 0xff -/* 0FFAD8 7F0CAFA8 10000009 */ b .L7F0CAFD0 -/* 0FFADC 7F0CAFAC AD590004 */ sw $t9, 4($t2) -.L7F0CAFB0: -/* 0FFAE0 7F0CAFB0 00AE7821 */ addu $t7, $a1, $t6 -/* 0FFAE4 7F0CAFB4 95F80002 */ lhu $t8, 2($t7) -/* 0FFAE8 7F0CAFB8 0018C880 */ sll $t9, $t8, 2 -/* 0FFAEC 7F0CAFBC 00797021 */ addu $t6, $v1, $t9 -/* 0FFAF0 7F0CAFC0 8DCF0000 */ lw $t7, ($t6) -/* 0FFAF4 7F0CAFC4 000FC200 */ sll $t8, $t7, 8 -/* 0FFAF8 7F0CAFC8 371900FF */ ori $t9, $t8, 0xff -/* 0FFAFC 7F0CAFCC AD590004 */ sw $t9, 4($t2) -.L7F0CAFD0: -/* 0FFB00 7F0CAFD0 2A010101 */ slti $at, $s0, 0x101 -/* 0FFB04 7F0CAFD4 1020000A */ beqz $at, .L7F0CB000 -/* 0FFB08 7F0CAFD8 0002C840 */ sll $t9, $v0, 1 -/* 0FFB0C 7F0CAFDC 00827021 */ addu $t6, $a0, $v0 -/* 0FFB10 7F0CAFE0 91CF0002 */ lbu $t7, 2($t6) -/* 0FFB14 7F0CAFE4 000FC080 */ sll $t8, $t7, 2 -/* 0FFB18 7F0CAFE8 0078C821 */ addu $t9, $v1, $t8 -/* 0FFB1C 7F0CAFEC 8F2E0000 */ lw $t6, ($t9) -/* 0FFB20 7F0CAFF0 000E7A00 */ sll $t7, $t6, 8 -/* 0FFB24 7F0CAFF4 35F800FF */ ori $t8, $t7, 0xff -/* 0FFB28 7F0CAFF8 10000009 */ b .L7F0CB020 -/* 0FFB2C 7F0CAFFC AD580008 */ sw $t8, 8($t2) -.L7F0CB000: -/* 0FFB30 7F0CB000 00B97021 */ addu $t6, $a1, $t9 -/* 0FFB34 7F0CB004 95CF0004 */ lhu $t7, 4($t6) -/* 0FFB38 7F0CB008 000FC080 */ sll $t8, $t7, 2 -/* 0FFB3C 7F0CB00C 0078C821 */ addu $t9, $v1, $t8 -/* 0FFB40 7F0CB010 8F2E0000 */ lw $t6, ($t9) -/* 0FFB44 7F0CB014 000E7A00 */ sll $t7, $t6, 8 -/* 0FFB48 7F0CB018 35F800FF */ ori $t8, $t7, 0xff -/* 0FFB4C 7F0CB01C AD580008 */ sw $t8, 8($t2) -.L7F0CB020: -/* 0FFB50 7F0CB020 2A010101 */ slti $at, $s0, 0x101 -/* 0FFB54 7F0CB024 1020000A */ beqz $at, .L7F0CB050 -/* 0FFB58 7F0CB028 0002C040 */ sll $t8, $v0, 1 -/* 0FFB5C 7F0CB02C 0082C821 */ addu $t9, $a0, $v0 -/* 0FFB60 7F0CB030 932E0003 */ lbu $t6, 3($t9) -/* 0FFB64 7F0CB034 000E7880 */ sll $t7, $t6, 2 -/* 0FFB68 7F0CB038 006FC021 */ addu $t8, $v1, $t7 -/* 0FFB6C 7F0CB03C 8F190000 */ lw $t9, ($t8) -/* 0FFB70 7F0CB040 00197200 */ sll $t6, $t9, 8 -/* 0FFB74 7F0CB044 35CF00FF */ ori $t7, $t6, 0xff -/* 0FFB78 7F0CB048 10000009 */ b .L7F0CB070 -/* 0FFB7C 7F0CB04C AD4F000C */ sw $t7, 0xc($t2) -.L7F0CB050: -/* 0FFB80 7F0CB050 00B8C821 */ addu $t9, $a1, $t8 -/* 0FFB84 7F0CB054 972E0006 */ lhu $t6, 6($t9) -/* 0FFB88 7F0CB058 000E7880 */ sll $t7, $t6, 2 -/* 0FFB8C 7F0CB05C 006FC021 */ addu $t8, $v1, $t7 -/* 0FFB90 7F0CB060 8F190000 */ lw $t9, ($t8) -/* 0FFB94 7F0CB064 00197200 */ sll $t6, $t9, 8 -/* 0FFB98 7F0CB068 35CF00FF */ ori $t7, $t6, 0xff -/* 0FFB9C 7F0CB06C AD4F000C */ sw $t7, 0xc($t2) -.L7F0CB070: -/* 0FFBA0 7F0CB070 24420004 */ addiu $v0, $v0, 4 -/* 0FFBA4 7F0CB074 1451FFAE */ bne $v0, $s1, .L7F0CAF30 -/* 0FFBA8 7F0CB078 254A0010 */ addiu $t2, $t2, 0x10 -.L7F0CB07C: -/* 0FFBAC 7F0CB07C 24E70001 */ addiu $a3, $a3, 1 -/* 0FFBB0 7F0CB080 012C4821 */ addu $t1, $t1, $t4 -/* 0FFBB4 7F0CB084 00912021 */ addu $a0, $a0, $s1 -/* 0FFBB8 7F0CB088 14F2FF88 */ bne $a3, $s2, .L7F0CAEAC -/* 0FFBBC 7F0CB08C 00A82821 */ addu $a1, $a1, $t0 -.L7F0CB090: -/* 0FFBC0 7F0CB090 26380003 */ addiu $t8, $s1, 3 -/* 0FFBC4 7F0CB094 33190FFC */ andi $t9, $t8, 0xffc -/* 0FFBC8 7F0CB098 03320019 */ multu $t9, $s2 -/* 0FFBCC 7F0CB09C 00001012 */ mflo $v0 -/* 0FFBD0 7F0CB0A0 00027080 */ sll $t6, $v0, 2 -/* 0FFBD4 7F0CB0A4 10000170 */ b .L7F0CB668 -/* 0FFBD8 7F0CB0A8 01C01025 */ move $v0, $t6 -.L7F0CB0AC: -/* 0FFBDC 7F0CB0AC 1A400068 */ blez $s2, .L7F0CB250 -/* 0FFBE0 7F0CB0B0 00003825 */ move $a3, $zero -/* 0FFBE4 7F0CB0B4 262D0003 */ addiu $t5, $s1, 3 -/* 0FFBE8 7F0CB0B8 31AF0FFC */ andi $t7, $t5, 0xffc -/* 0FFBEC 7F0CB0BC 000F6840 */ sll $t5, $t7, 1 -/* 0FFBF0 7F0CB0C0 00114040 */ sll $t0, $s1, 1 -/* 0FFBF4 7F0CB0C4 8FA30038 */ lw $v1, 0x38($sp) -.L7F0CB0C8: -/* 0FFBF8 7F0CB0C8 1A20005C */ blez $s1, .L7F0CB23C -/* 0FFBFC 7F0CB0CC 00001025 */ move $v0, $zero -/* 0FFC00 7F0CB0D0 32260003 */ andi $a2, $s1, 3 -/* 0FFC04 7F0CB0D4 10C00017 */ beqz $a2, .L7F0CB134 -/* 0FFC08 7F0CB0D8 00C06025 */ move $t4, $a2 -/* 0FFC0C 7F0CB0DC 00004840 */ sll $t1, $zero, 1 -/* 0FFC10 7F0CB0E0 01495821 */ addu $t3, $t2, $t1 -.L7F0CB0E4: -/* 0FFC14 7F0CB0E4 2A010101 */ slti $at, $s0, 0x101 -/* 0FFC18 7F0CB0E8 10200008 */ beqz $at, .L7F0CB10C -/* 0FFC1C 7F0CB0EC 00A97021 */ addu $t6, $a1, $t1 -/* 0FFC20 7F0CB0F0 0082C821 */ addu $t9, $a0, $v0 -/* 0FFC24 7F0CB0F4 932E0000 */ lbu $t6, ($t9) -/* 0FFC28 7F0CB0F8 000E7840 */ sll $t7, $t6, 1 -/* 0FFC2C 7F0CB0FC 006FC021 */ addu $t8, $v1, $t7 -/* 0FFC30 7F0CB100 97190000 */ lhu $t9, ($t8) -/* 0FFC34 7F0CB104 10000006 */ b .L7F0CB120 -/* 0FFC38 7F0CB108 A5790000 */ sh $t9, ($t3) -.L7F0CB10C: -/* 0FFC3C 7F0CB10C 95CF0000 */ lhu $t7, ($t6) -/* 0FFC40 7F0CB110 000FC040 */ sll $t8, $t7, 1 -/* 0FFC44 7F0CB114 0078C821 */ addu $t9, $v1, $t8 -/* 0FFC48 7F0CB118 972E0000 */ lhu $t6, ($t9) -/* 0FFC4C 7F0CB11C A56E0000 */ sh $t6, ($t3) -.L7F0CB120: -/* 0FFC50 7F0CB120 24420001 */ addiu $v0, $v0, 1 -/* 0FFC54 7F0CB124 25290002 */ addiu $t1, $t1, 2 -/* 0FFC58 7F0CB128 1582FFEE */ bne $t4, $v0, .L7F0CB0E4 -/* 0FFC5C 7F0CB12C 256B0002 */ addiu $t3, $t3, 2 -/* 0FFC60 7F0CB130 10510042 */ beq $v0, $s1, .L7F0CB23C -.L7F0CB134: -/* 0FFC64 7F0CB134 00024840 */ sll $t1, $v0, 1 -/* 0FFC68 7F0CB138 01495821 */ addu $t3, $t2, $t1 -.L7F0CB13C: -/* 0FFC6C 7F0CB13C 2A010101 */ slti $at, $s0, 0x101 -/* 0FFC70 7F0CB140 10200008 */ beqz $at, .L7F0CB164 -/* 0FFC74 7F0CB144 00A9C021 */ addu $t8, $a1, $t1 -/* 0FFC78 7F0CB148 00827821 */ addu $t7, $a0, $v0 -/* 0FFC7C 7F0CB14C 91F80000 */ lbu $t8, ($t7) -/* 0FFC80 7F0CB150 0018C840 */ sll $t9, $t8, 1 -/* 0FFC84 7F0CB154 00797021 */ addu $t6, $v1, $t9 -/* 0FFC88 7F0CB158 95CF0000 */ lhu $t7, ($t6) -/* 0FFC8C 7F0CB15C 10000006 */ b .L7F0CB178 -/* 0FFC90 7F0CB160 A56F0000 */ sh $t7, ($t3) -.L7F0CB164: -/* 0FFC94 7F0CB164 97190000 */ lhu $t9, ($t8) -/* 0FFC98 7F0CB168 00197040 */ sll $t6, $t9, 1 -/* 0FFC9C 7F0CB16C 006E7821 */ addu $t7, $v1, $t6 -/* 0FFCA0 7F0CB170 95F80000 */ lhu $t8, ($t7) -/* 0FFCA4 7F0CB174 A5780000 */ sh $t8, ($t3) -.L7F0CB178: -/* 0FFCA8 7F0CB178 2A010101 */ slti $at, $s0, 0x101 -/* 0FFCAC 7F0CB17C 10200008 */ beqz $at, .L7F0CB1A0 -/* 0FFCB0 7F0CB180 00A97021 */ addu $t6, $a1, $t1 -/* 0FFCB4 7F0CB184 0082C821 */ addu $t9, $a0, $v0 -/* 0FFCB8 7F0CB188 932E0001 */ lbu $t6, 1($t9) -/* 0FFCBC 7F0CB18C 000E7840 */ sll $t7, $t6, 1 -/* 0FFCC0 7F0CB190 006FC021 */ addu $t8, $v1, $t7 -/* 0FFCC4 7F0CB194 97190000 */ lhu $t9, ($t8) -/* 0FFCC8 7F0CB198 10000006 */ b .L7F0CB1B4 -/* 0FFCCC 7F0CB19C A5790002 */ sh $t9, 2($t3) -.L7F0CB1A0: -/* 0FFCD0 7F0CB1A0 95CF0002 */ lhu $t7, 2($t6) -/* 0FFCD4 7F0CB1A4 000FC040 */ sll $t8, $t7, 1 -/* 0FFCD8 7F0CB1A8 0078C821 */ addu $t9, $v1, $t8 -/* 0FFCDC 7F0CB1AC 972E0000 */ lhu $t6, ($t9) -/* 0FFCE0 7F0CB1B0 A56E0002 */ sh $t6, 2($t3) -.L7F0CB1B4: -/* 0FFCE4 7F0CB1B4 2A010101 */ slti $at, $s0, 0x101 -/* 0FFCE8 7F0CB1B8 10200008 */ beqz $at, .L7F0CB1DC -/* 0FFCEC 7F0CB1BC 00A9C021 */ addu $t8, $a1, $t1 -/* 0FFCF0 7F0CB1C0 00827821 */ addu $t7, $a0, $v0 -/* 0FFCF4 7F0CB1C4 91F80002 */ lbu $t8, 2($t7) -/* 0FFCF8 7F0CB1C8 0018C840 */ sll $t9, $t8, 1 -/* 0FFCFC 7F0CB1CC 00797021 */ addu $t6, $v1, $t9 -/* 0FFD00 7F0CB1D0 95CF0000 */ lhu $t7, ($t6) -/* 0FFD04 7F0CB1D4 10000006 */ b .L7F0CB1F0 -/* 0FFD08 7F0CB1D8 A56F0004 */ sh $t7, 4($t3) -.L7F0CB1DC: -/* 0FFD0C 7F0CB1DC 97190004 */ lhu $t9, 4($t8) -/* 0FFD10 7F0CB1E0 00197040 */ sll $t6, $t9, 1 -/* 0FFD14 7F0CB1E4 006E7821 */ addu $t7, $v1, $t6 -/* 0FFD18 7F0CB1E8 95F80000 */ lhu $t8, ($t7) -/* 0FFD1C 7F0CB1EC A5780004 */ sh $t8, 4($t3) -.L7F0CB1F0: -/* 0FFD20 7F0CB1F0 2A010101 */ slti $at, $s0, 0x101 -/* 0FFD24 7F0CB1F4 10200008 */ beqz $at, .L7F0CB218 -/* 0FFD28 7F0CB1F8 00A97021 */ addu $t6, $a1, $t1 -/* 0FFD2C 7F0CB1FC 0082C821 */ addu $t9, $a0, $v0 -/* 0FFD30 7F0CB200 932E0003 */ lbu $t6, 3($t9) -/* 0FFD34 7F0CB204 000E7840 */ sll $t7, $t6, 1 -/* 0FFD38 7F0CB208 006FC021 */ addu $t8, $v1, $t7 -/* 0FFD3C 7F0CB20C 97190000 */ lhu $t9, ($t8) -/* 0FFD40 7F0CB210 10000006 */ b .L7F0CB22C -/* 0FFD44 7F0CB214 A5790006 */ sh $t9, 6($t3) -.L7F0CB218: -/* 0FFD48 7F0CB218 95CF0006 */ lhu $t7, 6($t6) -/* 0FFD4C 7F0CB21C 000FC040 */ sll $t8, $t7, 1 -/* 0FFD50 7F0CB220 0078C821 */ addu $t9, $v1, $t8 -/* 0FFD54 7F0CB224 972E0000 */ lhu $t6, ($t9) -/* 0FFD58 7F0CB228 A56E0006 */ sh $t6, 6($t3) -.L7F0CB22C: -/* 0FFD5C 7F0CB22C 24420004 */ addiu $v0, $v0, 4 -/* 0FFD60 7F0CB230 25290008 */ addiu $t1, $t1, 8 -/* 0FFD64 7F0CB234 1451FFC1 */ bne $v0, $s1, .L7F0CB13C -/* 0FFD68 7F0CB238 256B0008 */ addiu $t3, $t3, 8 -.L7F0CB23C: -/* 0FFD6C 7F0CB23C 24E70001 */ addiu $a3, $a3, 1 -/* 0FFD70 7F0CB240 014D5021 */ addu $t2, $t2, $t5 -/* 0FFD74 7F0CB244 00912021 */ addu $a0, $a0, $s1 -/* 0FFD78 7F0CB248 14F2FF9F */ bne $a3, $s2, .L7F0CB0C8 -/* 0FFD7C 7F0CB24C 00A82821 */ addu $a1, $a1, $t0 -.L7F0CB250: -/* 0FFD80 7F0CB250 262F0003 */ addiu $t7, $s1, 3 -/* 0FFD84 7F0CB254 31F80FFC */ andi $t8, $t7, 0xffc -/* 0FFD88 7F0CB258 03120019 */ multu $t8, $s2 -/* 0FFD8C 7F0CB25C 00001012 */ mflo $v0 -/* 0FFD90 7F0CB260 0002C840 */ sll $t9, $v0, 1 -/* 0FFD94 7F0CB264 10000100 */ b .L7F0CB668 -/* 0FFD98 7F0CB268 03201025 */ move $v0, $t9 -.L7F0CB26C: -/* 0FFD9C 7F0CB26C 1A40004E */ blez $s2, .L7F0CB3A8 -/* 0FFDA0 7F0CB270 00003825 */ move $a3, $zero -/* 0FFDA4 7F0CB274 262D0003 */ addiu $t5, $s1, 3 -/* 0FFDA8 7F0CB278 31AE0FFC */ andi $t6, $t5, 0xffc -/* 0FFDAC 7F0CB27C 000E6840 */ sll $t5, $t6, 1 -/* 0FFDB0 7F0CB280 00114040 */ sll $t0, $s1, 1 -/* 0FFDB4 7F0CB284 8FA30038 */ lw $v1, 0x38($sp) -.L7F0CB288: -/* 0FFDB8 7F0CB288 1A200042 */ blez $s1, .L7F0CB394 -/* 0FFDBC 7F0CB28C 00001025 */ move $v0, $zero -/* 0FFDC0 7F0CB290 32260001 */ andi $a2, $s1, 1 -/* 0FFDC4 7F0CB294 10C00013 */ beqz $a2, .L7F0CB2E4 -/* 0FFDC8 7F0CB298 2A010101 */ slti $at, $s0, 0x101 -/* 0FFDCC 7F0CB29C 10200009 */ beqz $at, .L7F0CB2C4 -/* 0FFDD0 7F0CB2A0 24020001 */ li $v0, 1 -/* 0FFDD4 7F0CB2A4 90980000 */ lbu $t8, ($a0) -/* 0FFDD8 7F0CB2A8 0018C840 */ sll $t9, $t8, 1 -/* 0FFDDC 7F0CB2AC 00797021 */ addu $t6, $v1, $t9 -/* 0FFDE0 7F0CB2B0 95CF0000 */ lhu $t7, ($t6) -/* 0FFDE4 7F0CB2B4 000FC040 */ sll $t8, $t7, 1 -/* 0FFDE8 7F0CB2B8 37190001 */ ori $t9, $t8, 1 -/* 0FFDEC 7F0CB2BC 10000008 */ b .L7F0CB2E0 -/* 0FFDF0 7F0CB2C0 A5590000 */ sh $t9, ($t2) -.L7F0CB2C4: -/* 0FFDF4 7F0CB2C4 94AE0000 */ lhu $t6, ($a1) -/* 0FFDF8 7F0CB2C8 000E7840 */ sll $t7, $t6, 1 -/* 0FFDFC 7F0CB2CC 006FC021 */ addu $t8, $v1, $t7 -/* 0FFE00 7F0CB2D0 97190000 */ lhu $t9, ($t8) -/* 0FFE04 7F0CB2D4 00197040 */ sll $t6, $t9, 1 -/* 0FFE08 7F0CB2D8 35CF0001 */ ori $t7, $t6, 1 -/* 0FFE0C 7F0CB2DC A54F0000 */ sh $t7, ($t2) -.L7F0CB2E0: -/* 0FFE10 7F0CB2E0 1051002C */ beq $v0, $s1, .L7F0CB394 -.L7F0CB2E4: -/* 0FFE14 7F0CB2E4 00024840 */ sll $t1, $v0, 1 -/* 0FFE18 7F0CB2E8 01495821 */ addu $t3, $t2, $t1 -.L7F0CB2EC: -/* 0FFE1C 7F0CB2EC 2A010101 */ slti $at, $s0, 0x101 -/* 0FFE20 7F0CB2F0 1020000A */ beqz $at, .L7F0CB31C -/* 0FFE24 7F0CB2F4 00A97821 */ addu $t7, $a1, $t1 -/* 0FFE28 7F0CB2F8 0082C021 */ addu $t8, $a0, $v0 -/* 0FFE2C 7F0CB2FC 93190000 */ lbu $t9, ($t8) -/* 0FFE30 7F0CB300 00197040 */ sll $t6, $t9, 1 -/* 0FFE34 7F0CB304 006E7821 */ addu $t7, $v1, $t6 -/* 0FFE38 7F0CB308 95F80000 */ lhu $t8, ($t7) -/* 0FFE3C 7F0CB30C 0018C840 */ sll $t9, $t8, 1 -/* 0FFE40 7F0CB310 372E0001 */ ori $t6, $t9, 1 -/* 0FFE44 7F0CB314 10000008 */ b .L7F0CB338 -/* 0FFE48 7F0CB318 A56E0000 */ sh $t6, ($t3) -.L7F0CB31C: -/* 0FFE4C 7F0CB31C 95F80000 */ lhu $t8, ($t7) -/* 0FFE50 7F0CB320 0018C840 */ sll $t9, $t8, 1 -/* 0FFE54 7F0CB324 00797021 */ addu $t6, $v1, $t9 -/* 0FFE58 7F0CB328 95CF0000 */ lhu $t7, ($t6) -/* 0FFE5C 7F0CB32C 000FC040 */ sll $t8, $t7, 1 -/* 0FFE60 7F0CB330 37190001 */ ori $t9, $t8, 1 -/* 0FFE64 7F0CB334 A5790000 */ sh $t9, ($t3) -.L7F0CB338: -/* 0FFE68 7F0CB338 2A010101 */ slti $at, $s0, 0x101 -/* 0FFE6C 7F0CB33C 1020000A */ beqz $at, .L7F0CB368 -/* 0FFE70 7F0CB340 00A9C821 */ addu $t9, $a1, $t1 -/* 0FFE74 7F0CB344 00827021 */ addu $t6, $a0, $v0 -/* 0FFE78 7F0CB348 91CF0001 */ lbu $t7, 1($t6) -/* 0FFE7C 7F0CB34C 000FC040 */ sll $t8, $t7, 1 -/* 0FFE80 7F0CB350 0078C821 */ addu $t9, $v1, $t8 -/* 0FFE84 7F0CB354 972E0000 */ lhu $t6, ($t9) -/* 0FFE88 7F0CB358 000E7840 */ sll $t7, $t6, 1 -/* 0FFE8C 7F0CB35C 35F80001 */ ori $t8, $t7, 1 -/* 0FFE90 7F0CB360 10000008 */ b .L7F0CB384 -/* 0FFE94 7F0CB364 A5780002 */ sh $t8, 2($t3) -.L7F0CB368: -/* 0FFE98 7F0CB368 972E0002 */ lhu $t6, 2($t9) -/* 0FFE9C 7F0CB36C 000E7840 */ sll $t7, $t6, 1 -/* 0FFEA0 7F0CB370 006FC021 */ addu $t8, $v1, $t7 -/* 0FFEA4 7F0CB374 97190000 */ lhu $t9, ($t8) -/* 0FFEA8 7F0CB378 00197040 */ sll $t6, $t9, 1 -/* 0FFEAC 7F0CB37C 35CF0001 */ ori $t7, $t6, 1 -/* 0FFEB0 7F0CB380 A56F0002 */ sh $t7, 2($t3) -.L7F0CB384: -/* 0FFEB4 7F0CB384 24420002 */ addiu $v0, $v0, 2 -/* 0FFEB8 7F0CB388 25290004 */ addiu $t1, $t1, 4 -/* 0FFEBC 7F0CB38C 1451FFD7 */ bne $v0, $s1, .L7F0CB2EC -/* 0FFEC0 7F0CB390 256B0004 */ addiu $t3, $t3, 4 -.L7F0CB394: -/* 0FFEC4 7F0CB394 24E70001 */ addiu $a3, $a3, 1 -/* 0FFEC8 7F0CB398 014D5021 */ addu $t2, $t2, $t5 -/* 0FFECC 7F0CB39C 00912021 */ addu $a0, $a0, $s1 -/* 0FFED0 7F0CB3A0 14F2FFB9 */ bne $a3, $s2, .L7F0CB288 -/* 0FFED4 7F0CB3A4 00A82821 */ addu $a1, $a1, $t0 -.L7F0CB3A8: -/* 0FFED8 7F0CB3A8 26380003 */ addiu $t8, $s1, 3 -/* 0FFEDC 7F0CB3AC 33190FFC */ andi $t9, $t8, 0xffc -/* 0FFEE0 7F0CB3B0 03320019 */ multu $t9, $s2 -/* 0FFEE4 7F0CB3B4 00001012 */ mflo $v0 -/* 0FFEE8 7F0CB3B8 00027040 */ sll $t6, $v0, 1 -/* 0FFEEC 7F0CB3BC 100000AA */ b .L7F0CB668 -/* 0FFEF0 7F0CB3C0 01C01025 */ move $v0, $t6 -.L7F0CB3C4: -/* 0FFEF4 7F0CB3C4 1A400069 */ blez $s2, .L7F0CB56C -/* 0FFEF8 7F0CB3C8 00003825 */ move $a3, $zero -/* 0FFEFC 7F0CB3CC 26290007 */ addiu $t1, $s1, 7 -/* 0FFF00 7F0CB3D0 312F0FF8 */ andi $t7, $t1, 0xff8 -/* 0FFF04 7F0CB3D4 01E04825 */ move $t1, $t7 -/* 0FFF08 7F0CB3D8 00114040 */ sll $t0, $s1, 1 -/* 0FFF0C 7F0CB3DC 8FA30038 */ lw $v1, 0x38($sp) -.L7F0CB3E0: -/* 0FFF10 7F0CB3E0 1A20005D */ blez $s1, .L7F0CB558 -/* 0FFF14 7F0CB3E4 00001025 */ move $v0, $zero -/* 0FFF18 7F0CB3E8 32260003 */ andi $a2, $s1, 3 -/* 0FFF1C 7F0CB3EC 10C00016 */ beqz $a2, .L7F0CB448 -/* 0FFF20 7F0CB3F0 00C06025 */ move $t4, $a2 -/* 0FFF24 7F0CB3F4 01605021 */ addu $t2, $t3, $zero -.L7F0CB3F8: -/* 0FFF28 7F0CB3F8 2A010101 */ slti $at, $s0, 0x101 -/* 0FFF2C 7F0CB3FC 10200008 */ beqz $at, .L7F0CB420 -/* 0FFF30 7F0CB400 0002C840 */ sll $t9, $v0, 1 -/* 0FFF34 7F0CB404 0082C021 */ addu $t8, $a0, $v0 -/* 0FFF38 7F0CB408 93190000 */ lbu $t9, ($t8) -/* 0FFF3C 7F0CB40C 00197040 */ sll $t6, $t9, 1 -/* 0FFF40 7F0CB410 006E7821 */ addu $t7, $v1, $t6 -/* 0FFF44 7F0CB414 95F80000 */ lhu $t8, ($t7) -/* 0FFF48 7F0CB418 10000007 */ b .L7F0CB438 -/* 0FFF4C 7F0CB41C A1580000 */ sb $t8, ($t2) -.L7F0CB420: -/* 0FFF50 7F0CB420 00B97021 */ addu $t6, $a1, $t9 -/* 0FFF54 7F0CB424 95CF0000 */ lhu $t7, ($t6) -/* 0FFF58 7F0CB428 000FC040 */ sll $t8, $t7, 1 -/* 0FFF5C 7F0CB42C 0078C821 */ addu $t9, $v1, $t8 -/* 0FFF60 7F0CB430 972E0000 */ lhu $t6, ($t9) -/* 0FFF64 7F0CB434 A14E0000 */ sb $t6, ($t2) -.L7F0CB438: -/* 0FFF68 7F0CB438 24420001 */ addiu $v0, $v0, 1 -/* 0FFF6C 7F0CB43C 1582FFEE */ bne $t4, $v0, .L7F0CB3F8 -/* 0FFF70 7F0CB440 254A0001 */ addiu $t2, $t2, 1 -/* 0FFF74 7F0CB444 10510044 */ beq $v0, $s1, .L7F0CB558 -.L7F0CB448: -/* 0FFF78 7F0CB448 01625021 */ addu $t2, $t3, $v0 -.L7F0CB44C: -/* 0FFF7C 7F0CB44C 2A010101 */ slti $at, $s0, 0x101 -/* 0FFF80 7F0CB450 10200008 */ beqz $at, .L7F0CB474 -/* 0FFF84 7F0CB454 0002C040 */ sll $t8, $v0, 1 -/* 0FFF88 7F0CB458 00827821 */ addu $t7, $a0, $v0 -/* 0FFF8C 7F0CB45C 91F80000 */ lbu $t8, ($t7) -/* 0FFF90 7F0CB460 0018C840 */ sll $t9, $t8, 1 -/* 0FFF94 7F0CB464 00797021 */ addu $t6, $v1, $t9 -/* 0FFF98 7F0CB468 95CF0000 */ lhu $t7, ($t6) -/* 0FFF9C 7F0CB46C 10000007 */ b .L7F0CB48C -/* 0FFFA0 7F0CB470 A14F0000 */ sb $t7, ($t2) -.L7F0CB474: -/* 0FFFA4 7F0CB474 00B8C821 */ addu $t9, $a1, $t8 -/* 0FFFA8 7F0CB478 972E0000 */ lhu $t6, ($t9) -/* 0FFFAC 7F0CB47C 000E7840 */ sll $t7, $t6, 1 -/* 0FFFB0 7F0CB480 006FC021 */ addu $t8, $v1, $t7 -/* 0FFFB4 7F0CB484 97190000 */ lhu $t9, ($t8) -/* 0FFFB8 7F0CB488 A1590000 */ sb $t9, ($t2) -.L7F0CB48C: -/* 0FFFBC 7F0CB48C 2A010101 */ slti $at, $s0, 0x101 -/* 0FFFC0 7F0CB490 10200008 */ beqz $at, .L7F0CB4B4 -/* 0FFFC4 7F0CB494 00027840 */ sll $t7, $v0, 1 -/* 0FFFC8 7F0CB498 00827021 */ addu $t6, $a0, $v0 -/* 0FFFCC 7F0CB49C 91CF0001 */ lbu $t7, 1($t6) -/* 0FFFD0 7F0CB4A0 000FC040 */ sll $t8, $t7, 1 -/* 0FFFD4 7F0CB4A4 0078C821 */ addu $t9, $v1, $t8 -/* 0FFFD8 7F0CB4A8 972E0000 */ lhu $t6, ($t9) -/* 0FFFDC 7F0CB4AC 10000007 */ b .L7F0CB4CC -/* 0FFFE0 7F0CB4B0 A14E0001 */ sb $t6, 1($t2) -.L7F0CB4B4: -/* 0FFFE4 7F0CB4B4 00AFC021 */ addu $t8, $a1, $t7 -/* 0FFFE8 7F0CB4B8 97190002 */ lhu $t9, 2($t8) -/* 0FFFEC 7F0CB4BC 00197040 */ sll $t6, $t9, 1 -/* 0FFFF0 7F0CB4C0 006E7821 */ addu $t7, $v1, $t6 -/* 0FFFF4 7F0CB4C4 95F80000 */ lhu $t8, ($t7) -/* 0FFFF8 7F0CB4C8 A1580001 */ sb $t8, 1($t2) -.L7F0CB4CC: -/* 0FFFFC 7F0CB4CC 2A010101 */ slti $at, $s0, 0x101 -/* 100000 7F0CB4D0 10200008 */ beqz $at, .L7F0CB4F4 -/* 100004 7F0CB4D4 00027040 */ sll $t6, $v0, 1 -/* 100008 7F0CB4D8 0082C821 */ addu $t9, $a0, $v0 -/* 10000C 7F0CB4DC 932E0002 */ lbu $t6, 2($t9) -/* 100010 7F0CB4E0 000E7840 */ sll $t7, $t6, 1 -/* 100014 7F0CB4E4 006FC021 */ addu $t8, $v1, $t7 -/* 100018 7F0CB4E8 97190000 */ lhu $t9, ($t8) -/* 10001C 7F0CB4EC 10000007 */ b .L7F0CB50C -/* 100020 7F0CB4F0 A1590002 */ sb $t9, 2($t2) -.L7F0CB4F4: -/* 100024 7F0CB4F4 00AE7821 */ addu $t7, $a1, $t6 -/* 100028 7F0CB4F8 95F80004 */ lhu $t8, 4($t7) -/* 10002C 7F0CB4FC 0018C840 */ sll $t9, $t8, 1 -/* 100030 7F0CB500 00797021 */ addu $t6, $v1, $t9 -/* 100034 7F0CB504 95CF0000 */ lhu $t7, ($t6) -/* 100038 7F0CB508 A14F0002 */ sb $t7, 2($t2) -.L7F0CB50C: -/* 10003C 7F0CB50C 2A010101 */ slti $at, $s0, 0x101 -/* 100040 7F0CB510 10200008 */ beqz $at, .L7F0CB534 -/* 100044 7F0CB514 0002C840 */ sll $t9, $v0, 1 -/* 100048 7F0CB518 0082C021 */ addu $t8, $a0, $v0 -/* 10004C 7F0CB51C 93190003 */ lbu $t9, 3($t8) -/* 100050 7F0CB520 00197040 */ sll $t6, $t9, 1 -/* 100054 7F0CB524 006E7821 */ addu $t7, $v1, $t6 -/* 100058 7F0CB528 95F80000 */ lhu $t8, ($t7) -/* 10005C 7F0CB52C 10000007 */ b .L7F0CB54C -/* 100060 7F0CB530 A1580003 */ sb $t8, 3($t2) -.L7F0CB534: -/* 100064 7F0CB534 00B97021 */ addu $t6, $a1, $t9 -/* 100068 7F0CB538 95CF0006 */ lhu $t7, 6($t6) -/* 10006C 7F0CB53C 000FC040 */ sll $t8, $t7, 1 -/* 100070 7F0CB540 0078C821 */ addu $t9, $v1, $t8 -/* 100074 7F0CB544 972E0000 */ lhu $t6, ($t9) -/* 100078 7F0CB548 A14E0003 */ sb $t6, 3($t2) -.L7F0CB54C: -/* 10007C 7F0CB54C 24420004 */ addiu $v0, $v0, 4 -/* 100080 7F0CB550 1451FFBE */ bne $v0, $s1, .L7F0CB44C -/* 100084 7F0CB554 254A0004 */ addiu $t2, $t2, 4 -.L7F0CB558: -/* 100088 7F0CB558 24E70001 */ addiu $a3, $a3, 1 -/* 10008C 7F0CB55C 01695821 */ addu $t3, $t3, $t1 -/* 100090 7F0CB560 00912021 */ addu $a0, $a0, $s1 -/* 100094 7F0CB564 14F2FF9E */ bne $a3, $s2, .L7F0CB3E0 -/* 100098 7F0CB568 00A82821 */ addu $a1, $a1, $t0 -.L7F0CB56C: -/* 10009C 7F0CB56C 262F0007 */ addiu $t7, $s1, 7 -/* 1000A0 7F0CB570 31F80FF8 */ andi $t8, $t7, 0xff8 -/* 1000A4 7F0CB574 03120019 */ multu $t8, $s2 -/* 1000A8 7F0CB578 00001012 */ mflo $v0 -/* 1000AC 7F0CB57C 1000003B */ b .L7F0CB66C -/* 1000B0 7F0CB580 8FB00004 */ lw $s0, 4($sp) -.L7F0CB584: -/* 1000B4 7F0CB584 1A400031 */ blez $s2, .L7F0CB64C -/* 1000B8 7F0CB588 00003825 */ move $a3, $zero -/* 1000BC 7F0CB58C 2629000F */ addiu $t1, $s1, 0xf -/* 1000C0 7F0CB590 31390FF0 */ andi $t9, $t1, 0xff0 -/* 1000C4 7F0CB594 00194843 */ sra $t1, $t9, 1 -/* 1000C8 7F0CB598 00114040 */ sll $t0, $s1, 1 -/* 1000CC 7F0CB59C 8FA30038 */ lw $v1, 0x38($sp) -.L7F0CB5A0: -/* 1000D0 7F0CB5A0 1A200025 */ blez $s1, .L7F0CB638 -/* 1000D4 7F0CB5A4 00001025 */ move $v0, $zero -/* 1000D8 7F0CB5A8 2A010101 */ slti $at, $s0, 0x101 -.L7F0CB5AC: -/* 1000DC 7F0CB5AC 10200010 */ beqz $at, .L7F0CB5F0 -/* 1000E0 7F0CB5B0 0002C040 */ sll $t8, $v0, 1 -/* 1000E4 7F0CB5B4 00443021 */ addu $a2, $v0, $a0 -/* 1000E8 7F0CB5B8 90CF0001 */ lbu $t7, 1($a2) -/* 1000EC 7F0CB5BC 000FC040 */ sll $t8, $t7, 1 -/* 1000F0 7F0CB5C0 90CF0000 */ lbu $t7, ($a2) -/* 1000F4 7F0CB5C4 0078C821 */ addu $t9, $v1, $t8 -/* 1000F8 7F0CB5C8 972E0000 */ lhu $t6, ($t9) -/* 1000FC 7F0CB5CC 000FC040 */ sll $t8, $t7, 1 -/* 100100 7F0CB5D0 0078C821 */ addu $t9, $v1, $t8 -/* 100104 7F0CB5D4 972F0000 */ lhu $t7, ($t9) -/* 100108 7F0CB5D8 000FC100 */ sll $t8, $t7, 4 -/* 10010C 7F0CB5DC 00027843 */ sra $t7, $v0, 1 -/* 100110 7F0CB5E0 01D8C825 */ or $t9, $t6, $t8 -/* 100114 7F0CB5E4 016F7021 */ addu $t6, $t3, $t7 -/* 100118 7F0CB5E8 1000000F */ b .L7F0CB628 -/* 10011C 7F0CB5EC A1D90000 */ sb $t9, ($t6) -.L7F0CB5F0: -/* 100120 7F0CB5F0 00B83021 */ addu $a2, $a1, $t8 -/* 100124 7F0CB5F4 94CF0002 */ lhu $t7, 2($a2) -/* 100128 7F0CB5F8 000FC840 */ sll $t9, $t7, 1 -/* 10012C 7F0CB5FC 94CF0000 */ lhu $t7, ($a2) -/* 100130 7F0CB600 00797021 */ addu $t6, $v1, $t9 -/* 100134 7F0CB604 95D80000 */ lhu $t8, ($t6) -/* 100138 7F0CB608 000FC840 */ sll $t9, $t7, 1 -/* 10013C 7F0CB60C 00797021 */ addu $t6, $v1, $t9 -/* 100140 7F0CB610 95CF0000 */ lhu $t7, ($t6) -/* 100144 7F0CB614 000FC900 */ sll $t9, $t7, 4 -/* 100148 7F0CB618 00027843 */ sra $t7, $v0, 1 -/* 10014C 7F0CB61C 03197025 */ or $t6, $t8, $t9 -/* 100150 7F0CB620 016FC021 */ addu $t8, $t3, $t7 -/* 100154 7F0CB624 A30E0000 */ sb $t6, ($t8) -.L7F0CB628: -/* 100158 7F0CB628 24420002 */ addiu $v0, $v0, 2 -/* 10015C 7F0CB62C 0051082A */ slt $at, $v0, $s1 -/* 100160 7F0CB630 5420FFDE */ bnezl $at, .L7F0CB5AC -/* 100164 7F0CB634 2A010101 */ slti $at, $s0, 0x101 -.L7F0CB638: -/* 100168 7F0CB638 24E70001 */ addiu $a3, $a3, 1 -/* 10016C 7F0CB63C 01695821 */ addu $t3, $t3, $t1 -/* 100170 7F0CB640 00912021 */ addu $a0, $a0, $s1 -/* 100174 7F0CB644 14F2FFD6 */ bne $a3, $s2, .L7F0CB5A0 -/* 100178 7F0CB648 00A82821 */ addu $a1, $a1, $t0 -.L7F0CB64C: -/* 10017C 7F0CB64C 2639000F */ addiu $t9, $s1, 0xf -/* 100180 7F0CB650 332F0FF0 */ andi $t7, $t9, 0xff0 -/* 100184 7F0CB654 000F7043 */ sra $t6, $t7, 1 -/* 100188 7F0CB658 01D20019 */ multu $t6, $s2 -/* 10018C 7F0CB65C 00001012 */ mflo $v0 -/* 100190 7F0CB660 10000002 */ b .L7F0CB66C -/* 100194 7F0CB664 8FB00004 */ lw $s0, 4($sp) -def_7F0CACBC: -.L7F0CB668: -/* 100198 7F0CB668 8FB00004 */ lw $s0, 4($sp) -.L7F0CB66C: -/* 10019C 7F0CB66C 8FB10008 */ lw $s1, 8($sp) -/* 1001A0 7F0CB670 8FB2000C */ lw $s2, 0xc($sp) -/* 1001A4 7F0CB674 03E00008 */ jr $ra -/* 1001A8 7F0CB678 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CB67C(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BE30*/ -glabel jpt_8005BE30 -.word .L7F0CB6A8 -.word .L7F0CB6BC -.word .L7F0CB6A8 -.word .L7F0CB6BC -.word .L7F0CB6BC -.word .L7F0CB6D4 -.word .L7F0CB6EC -.word .L7F0CB6D4 -.word .L7F0CB6EC -.word .L7F0CB6D4 -.word .L7F0CB6EC -.word .L7F0CB6D4 -.word .L7F0CB6EC -.text -glabel sub_GAME_7F0CB67C -/* 1001AC 7F0CB67C 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 1001B0 7F0CB680 2CE1000D */ sltiu $at, $a3, 0xd -/* 1001B4 7F0CB684 AFA50014 */ sw $a1, 0x14($sp) -/* 1001B8 7F0CB688 1020001D */ beqz $at, .L7F0CB700 -/* 1001BC 7F0CB68C 00E01825 */ move $v1, $a3 -/* 1001C0 7F0CB690 00077080 */ sll $t6, $a3, 2 -/* 1001C4 7F0CB694 3C018006 */ lui $at, %hi(jpt_8005BE30) -/* 1001C8 7F0CB698 002E0821 */ addu $at, $at, $t6 -/* 1001CC 7F0CB69C 8C2EBE30 */ lw $t6, %lo(jpt_8005BE30)($at) -/* 1001D0 7F0CB6A0 01C00008 */ jr $t6 -/* 1001D4 7F0CB6A4 00000000 */ nop -.L7F0CB6A8: -/* 1001D8 7F0CB6A8 8FA50014 */ lw $a1, 0x14($sp) -/* 1001DC 7F0CB6AC 24A50003 */ addiu $a1, $a1, 3 -/* 1001E0 7F0CB6B0 30AF0FFC */ andi $t7, $a1, 0xffc -/* 1001E4 7F0CB6B4 10000012 */ b .L7F0CB700 -/* 1001E8 7F0CB6B8 AFAF0004 */ sw $t7, 4($sp) -.L7F0CB6BC: -/* 1001EC 7F0CB6BC 8FA50014 */ lw $a1, 0x14($sp) -/* 1001F0 7F0CB6C0 24A50003 */ addiu $a1, $a1, 3 -/* 1001F4 7F0CB6C4 30B80FFC */ andi $t8, $a1, 0xffc -/* 1001F8 7F0CB6C8 0018C843 */ sra $t9, $t8, 1 -/* 1001FC 7F0CB6CC 1000000C */ b .L7F0CB700 -/* 100200 7F0CB6D0 AFB90004 */ sw $t9, 4($sp) -.L7F0CB6D4: -/* 100204 7F0CB6D4 8FA50014 */ lw $a1, 0x14($sp) -/* 100208 7F0CB6D8 24A50007 */ addiu $a1, $a1, 7 -/* 10020C 7F0CB6DC 30AA0FF8 */ andi $t2, $a1, 0xff8 -/* 100210 7F0CB6E0 000A5883 */ sra $t3, $t2, 2 -/* 100214 7F0CB6E4 10000006 */ b .L7F0CB700 -/* 100218 7F0CB6E8 AFAB0004 */ sw $t3, 4($sp) -.L7F0CB6EC: -/* 10021C 7F0CB6EC 8FA50014 */ lw $a1, 0x14($sp) -/* 100220 7F0CB6F0 24A5000F */ addiu $a1, $a1, 0xf -/* 100224 7F0CB6F4 30AC0FF0 */ andi $t4, $a1, 0xff0 -/* 100228 7F0CB6F8 000C68C3 */ sra $t5, $t4, 3 -/* 10022C 7F0CB6FC AFAD0004 */ sw $t5, 4($sp) -def_7F0CB6A0: -.L7F0CB700: -/* 100230 7F0CB700 8FA50004 */ lw $a1, 4($sp) -/* 100234 7F0CB704 24010002 */ li $at, 2 -/* 100238 7F0CB708 00057080 */ sll $t6, $a1, 2 -/* 10023C 7F0CB70C 10600002 */ beqz $v1, .L7F0CB718 -/* 100240 7F0CB710 008E1021 */ addu $v0, $a0, $t6 -/* 100244 7F0CB714 1461001B */ bne $v1, $at, .L7F0CB784 -.L7F0CB718: -/* 100248 7F0CB718 28C10002 */ slti $at, $a2, 2 -/* 10024C 7F0CB71C 1420002E */ bnez $at, .L7F0CB7D8 -/* 100250 7F0CB720 24030001 */ li $v1, 1 -/* 100254 7F0CB724 00A04825 */ move $t1, $a1 -/* 100258 7F0CB728 000978C0 */ sll $t7, $t1, 3 -/* 10025C 7F0CB72C 01E04825 */ move $t1, $t7 -.L7F0CB730: -/* 100260 7F0CB730 18A0000E */ blez $a1, .L7F0CB76C -/* 100264 7F0CB734 00002025 */ move $a0, $zero -/* 100268 7F0CB738 00404025 */ move $t0, $v0 -.L7F0CB73C: -/* 10026C 7F0CB73C 8D070000 */ lw $a3, ($t0) -/* 100270 7F0CB740 8D180008 */ lw $t8, 8($t0) -/* 100274 7F0CB744 8D19000C */ lw $t9, 0xc($t0) -/* 100278 7F0CB748 AD070008 */ sw $a3, 8($t0) -/* 10027C 7F0CB74C 8D070004 */ lw $a3, 4($t0) -/* 100280 7F0CB750 24840004 */ addiu $a0, $a0, 4 -/* 100284 7F0CB754 0085082A */ slt $at, $a0, $a1 -/* 100288 7F0CB758 25080010 */ addiu $t0, $t0, 0x10 -/* 10028C 7F0CB75C AD18FFF0 */ sw $t8, -0x10($t0) -/* 100290 7F0CB760 AD19FFF4 */ sw $t9, -0xc($t0) -/* 100294 7F0CB764 1420FFF5 */ bnez $at, .L7F0CB73C -/* 100298 7F0CB768 AD07FFFC */ sw $a3, -4($t0) -.L7F0CB76C: -/* 10029C 7F0CB76C 24630002 */ addiu $v1, $v1, 2 -/* 1002A0 7F0CB770 0066082A */ slt $at, $v1, $a2 -/* 1002A4 7F0CB774 1420FFEE */ bnez $at, .L7F0CB730 -/* 1002A8 7F0CB778 00491021 */ addu $v0, $v0, $t1 -/* 1002AC 7F0CB77C 10000016 */ b .L7F0CB7D8 -/* 1002B0 7F0CB780 00000000 */ nop -.L7F0CB784: -/* 1002B4 7F0CB784 28C10002 */ slti $at, $a2, 2 -/* 1002B8 7F0CB788 14200013 */ bnez $at, .L7F0CB7D8 -/* 1002BC 7F0CB78C 24030001 */ li $v1, 1 -/* 1002C0 7F0CB790 00A04825 */ move $t1, $a1 -/* 1002C4 7F0CB794 000950C0 */ sll $t2, $t1, 3 -/* 1002C8 7F0CB798 01404825 */ move $t1, $t2 -.L7F0CB79C: -/* 1002CC 7F0CB79C 18A0000A */ blez $a1, .L7F0CB7C8 -/* 1002D0 7F0CB7A0 00002025 */ move $a0, $zero -/* 1002D4 7F0CB7A4 00404025 */ move $t0, $v0 -.L7F0CB7A8: -/* 1002D8 7F0CB7A8 8D070000 */ lw $a3, ($t0) -/* 1002DC 7F0CB7AC 8D0B0004 */ lw $t3, 4($t0) -/* 1002E0 7F0CB7B0 24840002 */ addiu $a0, $a0, 2 -/* 1002E4 7F0CB7B4 0085082A */ slt $at, $a0, $a1 -/* 1002E8 7F0CB7B8 25080008 */ addiu $t0, $t0, 8 -/* 1002EC 7F0CB7BC AD07FFFC */ sw $a3, -4($t0) -/* 1002F0 7F0CB7C0 1420FFF9 */ bnez $at, .L7F0CB7A8 -/* 1002F4 7F0CB7C4 AD0BFFF8 */ sw $t3, -8($t0) -.L7F0CB7C8: -/* 1002F8 7F0CB7C8 24630002 */ addiu $v1, $v1, 2 -/* 1002FC 7F0CB7CC 0066082A */ slt $at, $v1, $a2 -/* 100300 7F0CB7D0 1420FFF2 */ bnez $at, .L7F0CB79C -/* 100304 7F0CB7D4 00491021 */ addu $v0, $v0, $t1 -.L7F0CB7D8: -/* 100308 7F0CB7D8 03E00008 */ jr $ra -/* 10030C 7F0CB7DC 27BD0010 */ addiu $sp, $sp, 0x10 -) -#endif - - - - - -#ifdef NONMATCHING -void type8_9_doohick(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BE64*/ -glabel jpt_8005BE64 -.word .L7F0CB8A8 -.word .L7F0CB8EC -.word .L7F0CB930 -.word .L7F0CB974 -.word .L7F0CB9C0 -.word .L7F0CBA1C -.word .L7F0CBA78 -.text -glabel type8_9_doohick -/* 100310 7F0CB7E0 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 100314 7F0CB7E4 AFB10008 */ sw $s1, 8($sp) -/* 100318 7F0CB7E8 AFB00004 */ sw $s0, 4($sp) -/* 10031C 7F0CB7EC 00808025 */ move $s0, $a0 -/* 100320 7F0CB7F0 00E08825 */ move $s1, $a3 -/* 100324 7F0CB7F4 AFB2000C */ sw $s2, 0xc($sp) -/* 100328 7F0CB7F8 18C000B9 */ blez $a2, .L7F0CBAE0 -/* 10032C 7F0CB7FC 00001025 */ move $v0, $zero -/* 100330 7F0CB800 8FA90020 */ lw $t1, 0x20($sp) -.L7F0CB804: -/* 100334 7F0CB804 18A000B3 */ blez $a1, .L7F0CBAD4 -/* 100338 7F0CB808 00001825 */ move $v1, $zero -/* 10033C 7F0CB80C 00450019 */ multu $v0, $a1 -/* 100340 7F0CB810 00095040 */ sll $t2, $t1, 1 -/* 100344 7F0CB814 02209025 */ move $s2, $s1 -/* 100348 7F0CB818 00003812 */ mflo $a3 -/* 10034C 7F0CB81C 00F04021 */ addu $t0, $a3, $s0 -/* 100350 7F0CB820 00000000 */ nop -.L7F0CB824: -/* 100354 7F0CB824 910E0000 */ lbu $t6, ($t0) -/* 100358 7F0CB828 2E410007 */ sltiu $at, $s2, 7 -/* 10035C 7F0CB82C 18600003 */ blez $v1, .L7F0CB83C -/* 100360 7F0CB830 01CA2021 */ addu $a0, $t6, $t2 -/* 100364 7F0CB834 10000002 */ b .L7F0CB840 -/* 100368 7F0CB838 910BFFFF */ lbu $t3, -1($t0) -.L7F0CB83C: -/* 10036C 7F0CB83C 00005825 */ move $t3, $zero -.L7F0CB840: -/* 100370 7F0CB840 18400008 */ blez $v0, .L7F0CB864 -/* 100374 7F0CB844 00006025 */ move $t4, $zero -/* 100378 7F0CB848 244FFFFF */ addiu $t7, $v0, -1 -/* 10037C 7F0CB84C 01E50019 */ multu $t7, $a1 -/* 100380 7F0CB850 0000C012 */ mflo $t8 -/* 100384 7F0CB854 0303C821 */ addu $t9, $t8, $v1 -/* 100388 7F0CB858 03307021 */ addu $t6, $t9, $s0 -/* 10038C 7F0CB85C 10000001 */ b .L7F0CB864 -/* 100390 7F0CB860 91CC0000 */ lbu $t4, ($t6) -.L7F0CB864: -/* 100394 7F0CB864 18600009 */ blez $v1, .L7F0CB88C -/* 100398 7F0CB868 00006825 */ move $t5, $zero -/* 10039C 7F0CB86C 18400007 */ blez $v0, .L7F0CB88C -/* 1003A0 7F0CB870 244FFFFF */ addiu $t7, $v0, -1 -/* 1003A4 7F0CB874 01E50019 */ multu $t7, $a1 -/* 1003A8 7F0CB878 0000C012 */ mflo $t8 -/* 1003AC 7F0CB87C 0303C821 */ addu $t9, $t8, $v1 -/* 1003B0 7F0CB880 03307021 */ addu $t6, $t9, $s0 -/* 1003B4 7F0CB884 10000001 */ b .L7F0CB88C -/* 1003B8 7F0CB888 91CDFFFF */ lbu $t5, -1($t6) -.L7F0CB88C: -/* 1003BC 7F0CB88C 1020008E */ beqz $at, .L7F0CBAC8 -/* 1003C0 7F0CB890 00127880 */ sll $t7, $s2, 2 -/* 1003C4 7F0CB894 3C018006 */ lui $at, %hi(jpt_8005BE64) -/* 1003C8 7F0CB898 002F0821 */ addu $at, $at, $t7 -/* 1003CC 7F0CB89C 8C2FBE64 */ lw $t7, %lo(jpt_8005BE64)($at) -/* 1003D0 7F0CB8A0 01E00008 */ jr $t7 -/* 1003D4 7F0CB8A4 00000000 */ nop -.L7F0CB8A8: -/* 1003D8 7F0CB8A8 008BC021 */ addu $t8, $a0, $t3 -/* 1003DC 7F0CB8AC 0309001A */ div $zero, $t8, $t1 -/* 1003E0 7F0CB8B0 02077021 */ addu $t6, $s0, $a3 -/* 1003E4 7F0CB8B4 01C37821 */ addu $t7, $t6, $v1 -/* 1003E8 7F0CB8B8 0000C810 */ mfhi $t9 -/* 1003EC 7F0CB8BC A1F90000 */ sb $t9, ($t7) -/* 1003F0 7F0CB8C0 15200002 */ bnez $t1, .L7F0CB8CC -/* 1003F4 7F0CB8C4 00000000 */ nop -/* 1003F8 7F0CB8C8 0007000D */ break 7 -.L7F0CB8CC: -/* 1003FC 7F0CB8CC 2401FFFF */ li $at, -1 -/* 100400 7F0CB8D0 15210004 */ bne $t1, $at, .L7F0CB8E4 -/* 100404 7F0CB8D4 3C018000 */ lui $at, 0x8000 -/* 100408 7F0CB8D8 17010002 */ bne $t8, $at, .L7F0CB8E4 -/* 10040C 7F0CB8DC 00000000 */ nop -/* 100410 7F0CB8E0 0006000D */ break 6 -.L7F0CB8E4: -/* 100414 7F0CB8E4 10000079 */ b .L7F0CBACC -/* 100418 7F0CB8E8 24630001 */ addiu $v1, $v1, 1 -.L7F0CB8EC: -/* 10041C 7F0CB8EC 008CC021 */ addu $t8, $a0, $t4 -/* 100420 7F0CB8F0 0309001A */ div $zero, $t8, $t1 -/* 100424 7F0CB8F4 0207C821 */ addu $t9, $s0, $a3 -/* 100428 7F0CB8F8 03237821 */ addu $t7, $t9, $v1 -/* 10042C 7F0CB8FC 00007010 */ mfhi $t6 -/* 100430 7F0CB900 A1EE0000 */ sb $t6, ($t7) -/* 100434 7F0CB904 15200002 */ bnez $t1, .L7F0CB910 -/* 100438 7F0CB908 00000000 */ nop -/* 10043C 7F0CB90C 0007000D */ break 7 -.L7F0CB910: -/* 100440 7F0CB910 2401FFFF */ li $at, -1 -/* 100444 7F0CB914 15210004 */ bne $t1, $at, .L7F0CB928 -/* 100448 7F0CB918 3C018000 */ lui $at, 0x8000 -/* 10044C 7F0CB91C 17010002 */ bne $t8, $at, .L7F0CB928 -/* 100450 7F0CB920 00000000 */ nop -/* 100454 7F0CB924 0006000D */ break 6 -.L7F0CB928: -/* 100458 7F0CB928 10000068 */ b .L7F0CBACC -/* 10045C 7F0CB92C 24630001 */ addiu $v1, $v1, 1 -.L7F0CB930: -/* 100460 7F0CB930 008DC021 */ addu $t8, $a0, $t5 -/* 100464 7F0CB934 0309001A */ div $zero, $t8, $t1 -/* 100468 7F0CB938 02077021 */ addu $t6, $s0, $a3 -/* 10046C 7F0CB93C 01C37821 */ addu $t7, $t6, $v1 -/* 100470 7F0CB940 0000C810 */ mfhi $t9 -/* 100474 7F0CB944 A1F90000 */ sb $t9, ($t7) -/* 100478 7F0CB948 15200002 */ bnez $t1, .L7F0CB954 -/* 10047C 7F0CB94C 00000000 */ nop -/* 100480 7F0CB950 0007000D */ break 7 -.L7F0CB954: -/* 100484 7F0CB954 2401FFFF */ li $at, -1 -/* 100488 7F0CB958 15210004 */ bne $t1, $at, .L7F0CB96C -/* 10048C 7F0CB95C 3C018000 */ lui $at, 0x8000 -/* 100490 7F0CB960 17010002 */ bne $t8, $at, .L7F0CB96C -/* 100494 7F0CB964 00000000 */ nop -/* 100498 7F0CB968 0006000D */ break 6 -.L7F0CB96C: -/* 10049C 7F0CB96C 10000057 */ b .L7F0CBACC -/* 1004A0 7F0CB970 24630001 */ addiu $v1, $v1, 1 -.L7F0CB974: -/* 1004A4 7F0CB974 016CC021 */ addu $t8, $t3, $t4 -/* 1004A8 7F0CB978 030D7023 */ subu $t6, $t8, $t5 -/* 1004AC 7F0CB97C 01C4C821 */ addu $t9, $t6, $a0 -/* 1004B0 7F0CB980 0329001A */ div $zero, $t9, $t1 -/* 1004B4 7F0CB984 0207C021 */ addu $t8, $s0, $a3 -/* 1004B8 7F0CB988 03037021 */ addu $t6, $t8, $v1 -/* 1004BC 7F0CB98C 00007810 */ mfhi $t7 -/* 1004C0 7F0CB990 A1CF0000 */ sb $t7, ($t6) -/* 1004C4 7F0CB994 15200002 */ bnez $t1, .L7F0CB9A0 -/* 1004C8 7F0CB998 00000000 */ nop -/* 1004CC 7F0CB99C 0007000D */ break 7 -.L7F0CB9A0: -/* 1004D0 7F0CB9A0 2401FFFF */ li $at, -1 -/* 1004D4 7F0CB9A4 15210004 */ bne $t1, $at, .L7F0CB9B8 -/* 1004D8 7F0CB9A8 3C018000 */ lui $at, 0x8000 -/* 1004DC 7F0CB9AC 17210002 */ bne $t9, $at, .L7F0CB9B8 -/* 1004E0 7F0CB9B0 00000000 */ nop -/* 1004E4 7F0CB9B4 0006000D */ break 6 -.L7F0CB9B8: -/* 1004E8 7F0CB9B8 10000044 */ b .L7F0CBACC -/* 1004EC 7F0CB9BC 24630001 */ addiu $v1, $v1, 1 -.L7F0CB9C0: -/* 1004F0 7F0CB9C0 018DC823 */ subu $t9, $t4, $t5 -/* 1004F4 7F0CB9C4 07210003 */ bgez $t9, .L7F0CB9D4 -/* 1004F8 7F0CB9C8 0019C043 */ sra $t8, $t9, 1 -/* 1004FC 7F0CB9CC 27210001 */ addiu $at, $t9, 1 -/* 100500 7F0CB9D0 0001C043 */ sra $t8, $at, 1 -.L7F0CB9D4: -/* 100504 7F0CB9D4 030B7821 */ addu $t7, $t8, $t3 -/* 100508 7F0CB9D8 01E47021 */ addu $t6, $t7, $a0 -/* 10050C 7F0CB9DC 01C9001A */ div $zero, $t6, $t1 -/* 100510 7F0CB9E0 0207C021 */ addu $t8, $s0, $a3 -/* 100514 7F0CB9E4 03037821 */ addu $t7, $t8, $v1 -/* 100518 7F0CB9E8 0000C810 */ mfhi $t9 -/* 10051C 7F0CB9EC A1F90000 */ sb $t9, ($t7) -/* 100520 7F0CB9F0 15200002 */ bnez $t1, .L7F0CB9FC -/* 100524 7F0CB9F4 00000000 */ nop -/* 100528 7F0CB9F8 0007000D */ break 7 -.L7F0CB9FC: -/* 10052C 7F0CB9FC 2401FFFF */ li $at, -1 -/* 100530 7F0CBA00 15210004 */ bne $t1, $at, .L7F0CBA14 -/* 100534 7F0CBA04 3C018000 */ lui $at, 0x8000 -/* 100538 7F0CBA08 15C10002 */ bne $t6, $at, .L7F0CBA14 -/* 10053C 7F0CBA0C 00000000 */ nop -/* 100540 7F0CBA10 0006000D */ break 6 -.L7F0CBA14: -/* 100544 7F0CBA14 1000002D */ b .L7F0CBACC -/* 100548 7F0CBA18 24630001 */ addiu $v1, $v1, 1 -.L7F0CBA1C: -/* 10054C 7F0CBA1C 016D7023 */ subu $t6, $t3, $t5 -/* 100550 7F0CBA20 05C10003 */ bgez $t6, .L7F0CBA30 -/* 100554 7F0CBA24 000EC043 */ sra $t8, $t6, 1 -/* 100558 7F0CBA28 25C10001 */ addiu $at, $t6, 1 -/* 10055C 7F0CBA2C 0001C043 */ sra $t8, $at, 1 -.L7F0CBA30: -/* 100560 7F0CBA30 030CC821 */ addu $t9, $t8, $t4 -/* 100564 7F0CBA34 03247821 */ addu $t7, $t9, $a0 -/* 100568 7F0CBA38 01E9001A */ div $zero, $t7, $t1 -/* 10056C 7F0CBA3C 0207C021 */ addu $t8, $s0, $a3 -/* 100570 7F0CBA40 0303C821 */ addu $t9, $t8, $v1 -/* 100574 7F0CBA44 00007010 */ mfhi $t6 -/* 100578 7F0CBA48 A32E0000 */ sb $t6, ($t9) -/* 10057C 7F0CBA4C 15200002 */ bnez $t1, .L7F0CBA58 -/* 100580 7F0CBA50 00000000 */ nop -/* 100584 7F0CBA54 0007000D */ break 7 -.L7F0CBA58: -/* 100588 7F0CBA58 2401FFFF */ li $at, -1 -/* 10058C 7F0CBA5C 15210004 */ bne $t1, $at, .L7F0CBA70 -/* 100590 7F0CBA60 3C018000 */ lui $at, 0x8000 -/* 100594 7F0CBA64 15E10002 */ bne $t7, $at, .L7F0CBA70 -/* 100598 7F0CBA68 00000000 */ nop -/* 10059C 7F0CBA6C 0006000D */ break 6 -.L7F0CBA70: -/* 1005A0 7F0CBA70 10000016 */ b .L7F0CBACC -/* 1005A4 7F0CBA74 24630001 */ addiu $v1, $v1, 1 -.L7F0CBA78: -/* 1005A8 7F0CBA78 016C7821 */ addu $t7, $t3, $t4 -/* 1005AC 7F0CBA7C 05E10003 */ bgez $t7, .L7F0CBA8C -/* 1005B0 7F0CBA80 000FC043 */ sra $t8, $t7, 1 -/* 1005B4 7F0CBA84 25E10001 */ addiu $at, $t7, 1 -/* 1005B8 7F0CBA88 0001C043 */ sra $t8, $at, 1 -.L7F0CBA8C: -/* 1005BC 7F0CBA8C 03047021 */ addu $t6, $t8, $a0 -/* 1005C0 7F0CBA90 01C9001A */ div $zero, $t6, $t1 -/* 1005C4 7F0CBA94 0000C810 */ mfhi $t9 -/* 1005C8 7F0CBA98 02077821 */ addu $t7, $s0, $a3 -/* 1005CC 7F0CBA9C 01E3C021 */ addu $t8, $t7, $v1 -/* 1005D0 7F0CBAA0 A3190000 */ sb $t9, ($t8) -/* 1005D4 7F0CBAA4 15200002 */ bnez $t1, .L7F0CBAB0 -/* 1005D8 7F0CBAA8 00000000 */ nop -/* 1005DC 7F0CBAAC 0007000D */ break 7 -.L7F0CBAB0: -/* 1005E0 7F0CBAB0 2401FFFF */ li $at, -1 -/* 1005E4 7F0CBAB4 15210004 */ bne $t1, $at, .L7F0CBAC8 -/* 1005E8 7F0CBAB8 3C018000 */ lui $at, 0x8000 -/* 1005EC 7F0CBABC 15C10002 */ bne $t6, $at, .L7F0CBAC8 -/* 1005F0 7F0CBAC0 00000000 */ nop -/* 1005F4 7F0CBAC4 0006000D */ break 6 -def_7F0CB8A0: -.L7F0CBAC8: -/* 1005F8 7F0CBAC8 24630001 */ addiu $v1, $v1, 1 -.L7F0CBACC: -/* 1005FC 7F0CBACC 1465FF55 */ bne $v1, $a1, .L7F0CB824 -/* 100600 7F0CBAD0 25080001 */ addiu $t0, $t0, 1 -.L7F0CBAD4: -/* 100604 7F0CBAD4 24420001 */ addiu $v0, $v0, 1 -/* 100608 7F0CBAD8 1446FF4A */ bne $v0, $a2, .L7F0CB804 -/* 10060C 7F0CBADC 00000000 */ nop -.L7F0CBAE0: -/* 100610 7F0CBAE0 8FB00004 */ lw $s0, 4($sp) -/* 100614 7F0CBAE4 8FB10008 */ lw $s1, 8($sp) -/* 100618 7F0CBAE8 8FB2000C */ lw $s2, 0xc($sp) -/* 10061C 7F0CBAEC 03E00008 */ jr $ra -/* 100620 7F0CBAF0 27BD0010 */ addiu $sp, $sp, 0x10 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CBAF4(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CBAF4 -/* 100624 7F0CBAF4 00A61021 */ addu $v0, $a1, $a2 -/* 100628 7F0CBAF8 AC850000 */ sw $a1, ($a0) -/* 10062C 7F0CBAFC AC820004 */ sw $v0, 4($a0) -/* 100630 7F0CBB00 AC850008 */ sw $a1, 8($a0) -/* 100634 7F0CBB04 03E00008 */ jr $ra -/* 100638 7F0CBB08 AC82000C */ sw $v0, 0xc($a0) -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CBB0C(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CBB0C -/* 10063C 7F0CBB0C 54A00004 */ bnezl $a1, .L7F0CBB20 -/* 100640 7F0CBB10 8CA20004 */ lw $v0, 4($a1) -/* 100644 7F0CBB14 3C058009 */ lui $a1, %hi(ptr_texture_alloc_start) -/* 100648 7F0CBB18 24A5C720 */ addiu $a1, %lo(ptr_texture_alloc_start) # addiu $a1, $a1, -0x38e0 -/* 10064C 7F0CBB1C 8CA20004 */ lw $v0, 4($a1) -.L7F0CBB20: -/* 100650 7F0CBB20 8CA3000C */ lw $v1, 0xc($a1) -/* 100654 7F0CBB24 0062082B */ sltu $at, $v1, $v0 -/* 100658 7F0CBB28 5020000C */ beql $at, $zero, .L7F0CBB5C -/* 10065C 7F0CBB2C 00001025 */ move $v0, $zero -/* 100660 7F0CBB30 8C6E0000 */ lw $t6, ($v1) -.L7F0CBB34: -/* 100664 7F0CBB34 000E7D02 */ srl $t7, $t6, 0x14 -/* 100668 7F0CBB38 548F0004 */ bnel $a0, $t7, .L7F0CBB4C -/* 10066C 7F0CBB3C 24630010 */ addiu $v1, $v1, 0x10 -/* 100670 7F0CBB40 03E00008 */ jr $ra -/* 100674 7F0CBB44 00601025 */ move $v0, $v1 - -/* 100678 7F0CBB48 24630010 */ addiu $v1, $v1, 0x10 -.L7F0CBB4C: -/* 10067C 7F0CBB4C 0062082B */ sltu $at, $v1, $v0 -/* 100680 7F0CBB50 5420FFF8 */ bnezl $at, .L7F0CBB34 -/* 100684 7F0CBB54 8C6E0000 */ lw $t6, ($v1) -/* 100688 7F0CBB58 00001025 */ move $v0, $zero -.L7F0CBB5C: -/* 10068C 7F0CBB5C 03E00008 */ jr $ra -/* 100690 7F0CBB60 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CBB64(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CBB64 -/* 100694 7F0CBB64 8C8E000C */ lw $t6, 0xc($a0) -/* 100698 7F0CBB68 8C8F0008 */ lw $t7, 8($a0) -/* 10069C 7F0CBB6C 03E00008 */ jr $ra -/* 1006A0 7F0CBB70 01CF1023 */ subu $v0, $t6, $t7 -) -#endif - - - - - -#ifdef NONMATCHING -void check_load_image_to_buffer(void) { - -} -#else -GLOBAL_ASM( -.text -glabel check_load_image_to_buffer -/* 1006A4 7F0CBB74 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 1006A8 7F0CBB78 AFBF002C */ sw $ra, 0x2c($sp) -/* 1006AC 7F0CBB7C AFB50028 */ sw $s5, 0x28($sp) -/* 1006B0 7F0CBB80 AFB40024 */ sw $s4, 0x24($sp) -/* 1006B4 7F0CBB84 AFB30020 */ sw $s3, 0x20($sp) -/* 1006B8 7F0CBB88 AFB2001C */ sw $s2, 0x1c($sp) -/* 1006BC 7F0CBB8C AFB10018 */ sw $s1, 0x18($sp) -/* 1006C0 7F0CBB90 AFB00014 */ sw $s0, 0x14($sp) -/* 1006C4 7F0CBB94 908E0000 */ lbu $t6, ($a0) -/* 1006C8 7F0CBB98 241200B8 */ li $s2, 184 -/* 1006CC 7F0CBB9C 00A08825 */ move $s1, $a1 -/* 1006D0 7F0CBBA0 124E0014 */ beq $s2, $t6, .L7F0CBBF4 -/* 1006D4 7F0CBBA4 00808025 */ move $s0, $a0 -/* 1006D8 7F0CBBA8 90820000 */ lbu $v0, ($a0) -/* 1006DC 7F0CBBAC 241500CD */ li $s5, 205 -/* 1006E0 7F0CBBB0 241400AB */ li $s4, 171 -/* 1006E4 7F0CBBB4 241300FD */ li $s3, 253 -.L7F0CBBB8: -/* 1006E8 7F0CBBB8 5662000B */ bnel $s3, $v0, .L7F0CBBE8 -/* 1006EC 7F0CBBBC 92020008 */ lbu $v0, 8($s0) -/* 1006F0 7F0CBBC0 920F0004 */ lbu $t7, 4($s0) -/* 1006F4 7F0CBBC4 568F0008 */ bnel $s4, $t7, .L7F0CBBE8 -/* 1006F8 7F0CBBC8 92020008 */ lbu $v0, 8($s0) -/* 1006FC 7F0CBBCC 92180005 */ lbu $t8, 5($s0) -/* 100700 7F0CBBD0 26040004 */ addiu $a0, $s0, 4 -/* 100704 7F0CBBD4 56B80004 */ bnel $s5, $t8, .L7F0CBBE8 -/* 100708 7F0CBBD8 92020008 */ lbu $v0, 8($s0) -/* 10070C 7F0CBBDC 0FC32F06 */ jal load_image_to_buffer -/* 100710 7F0CBBE0 02202825 */ move $a1, $s1 -/* 100714 7F0CBBE4 92020008 */ lbu $v0, 8($s0) -.L7F0CBBE8: -/* 100718 7F0CBBE8 26100008 */ addiu $s0, $s0, 8 -/* 10071C 7F0CBBEC 1642FFF2 */ bne $s2, $v0, .L7F0CBBB8 -/* 100720 7F0CBBF0 00000000 */ nop -.L7F0CBBF4: -/* 100724 7F0CBBF4 8FBF002C */ lw $ra, 0x2c($sp) -/* 100728 7F0CBBF8 8FB00014 */ lw $s0, 0x14($sp) -/* 10072C 7F0CBBFC 8FB10018 */ lw $s1, 0x18($sp) -/* 100730 7F0CBC00 8FB2001C */ lw $s2, 0x1c($sp) -/* 100734 7F0CBC04 8FB30020 */ lw $s3, 0x20($sp) -/* 100738 7F0CBC08 8FB40024 */ lw $s4, 0x24($sp) -/* 10073C 7F0CBC0C 8FB50028 */ lw $s5, 0x28($sp) -/* 100740 7F0CBC10 03E00008 */ jr $ra -/* 100744 7F0CBC14 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - - - -#ifdef NONMATCHING -void load_image_to_buffer(void) { - -} -#else -GLOBAL_ASM( -.text -glabel load_image_to_buffer -/* 100748 7F0CBC18 27BDF008 */ addiu $sp, $sp, -0xff8 -/* 10074C 7F0CBC1C AFB00020 */ sw $s0, 0x20($sp) -/* 100750 7F0CBC20 00A08025 */ move $s0, $a1 -/* 100754 7F0CBC24 AFBF0024 */ sw $ra, 0x24($sp) -/* 100758 7F0CBC28 14A00003 */ bnez $a1, .L7F0CBC38 -/* 10075C 7F0CBC2C AFA40FF8 */ sw $a0, 0xff8($sp) -/* 100760 7F0CBC30 3C108009 */ lui $s0, %hi(ptr_texture_alloc_start) -/* 100764 7F0CBC34 2610C720 */ addiu $s0, %lo(ptr_texture_alloc_start) # addiu $s0, $s0, -0x38e0 -.L7F0CBC38: -/* 100768 7F0CBC38 8FAE0FF8 */ lw $t6, 0xff8($sp) -/* 10076C 7F0CBC3C 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D094) -/* 100770 7F0CBC40 2442D094 */ addiu $v0, %lo(dword_CODE_bss_8008D094) # addiu $v0, $v0, -0x2f6c -/* 100774 7F0CBC44 8DCF0000 */ lw $t7, ($t6) -/* 100778 7F0CBC48 02002825 */ move $a1, $s0 -/* 10077C 7F0CBC4C 31E4FFFF */ andi $a0, $t7, 0xffff -/* 100780 7F0CBC50 0FC32EC3 */ jal sub_GAME_7F0CBB0C -/* 100784 7F0CBC54 AC440000 */ sw $a0, ($v0) -/* 100788 7F0CBC58 14400074 */ bnez $v0, .L7F0CBE2C -/* 10078C 7F0CBC5C 00401825 */ move $v1, $v0 -/* 100790 7F0CBC60 27A30067 */ addiu $v1, $sp, 0x67 -/* 100794 7F0CBC64 0003C902 */ srl $t9, $v1, 4 -/* 100798 7F0CBC68 00194100 */ sll $t0, $t9, 4 -/* 10079C 7F0CBC6C 0C0034C8 */ jal osWritebackDCacheAll -/* 1007A0 7F0CBC70 AFA8002C */ sw $t0, 0x2c($sp) -/* 1007A4 7F0CBC74 8FA4002C */ lw $a0, 0x2c($sp) -/* 1007A8 7F0CBC78 0C0042C8 */ jal osInvalDCache -/* 1007AC 7F0CBC7C 24052000 */ li $a1, 8192 -/* 1007B0 7F0CBC80 3C098009 */ lui $t1, %hi(dword_CODE_bss_8008D094) -/* 1007B4 7F0CBC84 8D29D094 */ lw $t1, %lo(dword_CODE_bss_8008D094)($t1) -/* 1007B8 7F0CBC88 3C0B8005 */ lui $t3, %hi(image_entries) -/* 1007BC 7F0CBC8C 256B9300 */ addiu $t3, %lo(image_entries) # addiu $t3, $t3, -0x6d00 -/* 1007C0 7F0CBC90 000950C0 */ sll $t2, $t1, 3 -/* 1007C4 7F0CBC94 014B1021 */ addu $v0, $t2, $t3 -/* 1007C8 7F0CBC98 8C430000 */ lw $v1, ($v0) -/* 1007CC 7F0CBC9C 8C470008 */ lw $a3, 8($v0) -/* 1007D0 7F0CBCA0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 1007D4 7F0CBCA4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 1007D8 7F0CBCA8 00616024 */ and $t4, $v1, $at -/* 1007DC 7F0CBCAC 00E16824 */ and $t5, $a3, $at -/* 1007E0 7F0CBCB0 01AC3023 */ subu $a2, $t5, $t4 -/* 1007E4 7F0CBCB4 24C6001F */ addiu $a2, $a2, 0x1f -/* 1007E8 7F0CBCB8 2401FFF8 */ li $at, -8 -/* 1007EC 7F0CBCBC 3C0F008F */ lui $t7, %hi(_imagesSegmentRomStart) # $t7, 0x8f -/* 1007F0 7F0CBCC0 25EF7DF0 */ addiu $t7, %lo(_imagesSegmentRomStart) # addiu $t7, $t7, 0x7df0 -/* 1007F4 7F0CBCC4 01817024 */ and $t6, $t4, $at -/* 1007F8 7F0CBCC8 0006C102 */ srl $t8, $a2, 4 -/* 1007FC 7F0CBCCC 00183100 */ sll $a2, $t8, 4 -/* 100800 7F0CBCD0 01CF2821 */ addu $a1, $t6, $t7 -/* 100804 7F0CBCD4 AFAC003C */ sw $t4, 0x3c($sp) -/* 100808 7F0CBCD8 0C001707 */ jal romCopy -/* 10080C 7F0CBCDC 8FA4002C */ lw $a0, 0x2c($sp) -/* 100810 7F0CBCE0 8FA3003C */ lw $v1, 0x3c($sp) -/* 100814 7F0CBCE4 8FA8002C */ lw $t0, 0x2c($sp) -/* 100818 7F0CBCE8 02002025 */ move $a0, $s0 -/* 10081C 7F0CBCEC 30690007 */ andi $t1, $v1, 7 -/* 100820 7F0CBCF0 01095021 */ addu $t2, $t0, $t1 -/* 100824 7F0CBCF4 AFAA0054 */ sw $t2, 0x54($sp) -/* 100828 7F0CBCF8 91420000 */ lbu $v0, ($t2) -/* 10082C 7F0CBCFC 254D0001 */ addiu $t5, $t2, 1 -/* 100830 7F0CBD00 AFAD0054 */ sw $t5, 0x54($sp) -/* 100834 7F0CBD04 30460080 */ andi $a2, $v0, 0x80 -/* 100838 7F0CBD08 30450040 */ andi $a1, $v0, 0x40 -/* 10083C 7F0CBD0C 000659C3 */ sra $t3, $a2, 7 -/* 100840 7F0CBD10 00056183 */ sra $t4, $a1, 6 -/* 100844 7F0CBD14 01603025 */ move $a2, $t3 -/* 100848 7F0CBD18 01802825 */ move $a1, $t4 -/* 10084C 7F0CBD1C 1580000A */ bnez $t4, .L7F0CBD48 -/* 100850 7F0CBD20 3047003F */ andi $a3, $v0, 0x3f -/* 100854 7F0CBD24 AFAC004C */ sw $t4, 0x4c($sp) -/* 100858 7F0CBD28 AFAB0050 */ sw $t3, 0x50($sp) -/* 10085C 7F0CBD2C 0FC32ED9 */ jal sub_GAME_7F0CBB64 -/* 100860 7F0CBD30 AFA70048 */ sw $a3, 0x48($sp) -/* 100864 7F0CBD34 284110CC */ slti $at, $v0, 0x10cc -/* 100868 7F0CBD38 8FA5004C */ lw $a1, 0x4c($sp) -/* 10086C 7F0CBD3C 8FA60050 */ lw $a2, 0x50($sp) -/* 100870 7F0CBD40 1420000C */ bnez $at, .L7F0CBD74 -/* 100874 7F0CBD44 8FA70048 */ lw $a3, 0x48($sp) -.L7F0CBD48: -/* 100878 7F0CBD48 10A0000F */ beqz $a1, .L7F0CBD88 -/* 10087C 7F0CBD4C 02002025 */ move $a0, $s0 -/* 100880 7F0CBD50 AFA5004C */ sw $a1, 0x4c($sp) -/* 100884 7F0CBD54 AFA60050 */ sw $a2, 0x50($sp) -/* 100888 7F0CBD58 0FC32ED9 */ jal sub_GAME_7F0CBB64 -/* 10088C 7F0CBD5C AFA70048 */ sw $a3, 0x48($sp) -/* 100890 7F0CBD60 28410A28 */ slti $at, $v0, 0xa28 -/* 100894 7F0CBD64 8FA5004C */ lw $a1, 0x4c($sp) -/* 100898 7F0CBD68 8FA60050 */ lw $a2, 0x50($sp) -/* 10089C 7F0CBD6C 10200006 */ beqz $at, .L7F0CBD88 -/* 1008A0 7F0CBD70 8FA70048 */ lw $a3, 0x48($sp) -.L7F0CBD74: -/* 1008A4 7F0CBD74 0C003A2C */ jal osVirtualToPhysical -/* 1008A8 7F0CBD78 8E040000 */ lw $a0, ($s0) -/* 1008AC 7F0CBD7C 8FAE0FF8 */ lw $t6, 0xff8($sp) -/* 1008B0 7F0CBD80 1000002E */ b .L7F0CBE3C -/* 1008B4 7F0CBD84 ADC20000 */ sw $v0, ($t6) -.L7F0CBD88: -/* 1008B8 7F0CBD88 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D094) -/* 1008BC 7F0CBD8C 8E020008 */ lw $v0, 8($s0) -/* 1008C0 7F0CBD90 8DEFD094 */ lw $t7, %lo(dword_CODE_bss_8008D094)($t7) -/* 1008C4 7F0CBD94 3C0B8009 */ lui $t3, %hi(dword_CODE_bss_8008D094) -/* 1008C8 7F0CBD98 A44F0000 */ sh $t7, ($v0) -/* 1008CC 7F0CBD9C 8E180008 */ lw $t8, 8($s0) -/* 1008D0 7F0CBDA0 8E08000C */ lw $t0, 0xc($s0) -/* 1008D4 7F0CBDA4 27190008 */ addiu $t9, $t8, 8 -/* 1008D8 7F0CBDA8 2509FFF0 */ addiu $t1, $t0, -0x10 -/* 1008DC 7F0CBDAC AE190008 */ sw $t9, 8($s0) -/* 1008E0 7F0CBDB0 AE09000C */ sw $t1, 0xc($s0) -/* 1008E4 7F0CBDB4 952E0000 */ lhu $t6, ($t1) -/* 1008E8 7F0CBDB8 8D6CD094 */ lw $t4, %lo(dword_CODE_bss_8008D094)($t3) -/* 1008EC 7F0CBDBC 01201825 */ move $v1, $t1 -/* 1008F0 7F0CBDC0 31CF000F */ andi $t7, $t6, 0xf -/* 1008F4 7F0CBDC4 000C6900 */ sll $t5, $t4, 4 -/* 1008F8 7F0CBDC8 01AFC025 */ or $t8, $t5, $t7 -/* 1008FC 7F0CBDCC A5380000 */ sh $t8, ($t1) -/* 100900 7F0CBDD0 8E190008 */ lw $t9, 8($s0) -/* 100904 7F0CBDD4 10A00008 */ beqz $a1, .L7F0CBDF8 -/* 100908 7F0CBDD8 AD390004 */ sw $t9, 4($t1) -/* 10090C 7F0CBDDC 8E050008 */ lw $a1, 8($s0) -/* 100910 7F0CBDE0 AFA90044 */ sw $t1, 0x44($sp) -/* 100914 7F0CBDE4 AFB00010 */ sw $s0, 0x10($sp) -/* 100918 7F0CBDE8 0FC31996 */ jal image_related_calls_decompressdata_function -/* 10091C 7F0CBDEC 8FA40054 */ lw $a0, 0x54($sp) -/* 100920 7F0CBDF0 10000007 */ b .L7F0CBE10 -/* 100924 7F0CBDF4 8FA30044 */ lw $v1, 0x44($sp) -.L7F0CBDF8: -/* 100928 7F0CBDF8 8E050008 */ lw $a1, 8($s0) -/* 10092C 7F0CBDFC AFA30044 */ sw $v1, 0x44($sp) -/* 100930 7F0CBE00 AFB00010 */ sw $s0, 0x10($sp) -/* 100934 7F0CBE04 0FC31F7F */ jal process_huffman_compressed_images -/* 100938 7F0CBE08 8FA40054 */ lw $a0, 0x54($sp) -/* 10093C 7F0CBE0C 8FA30044 */ lw $v1, 0x44($sp) -.L7F0CBE10: -/* 100940 7F0CBE10 8E080008 */ lw $t0, 8($s0) -/* 100944 7F0CBE14 02002025 */ move $a0, $s0 -/* 100948 7F0CBE18 01024821 */ addu $t1, $t0, $v0 -/* 10094C 7F0CBE1C AE090008 */ sw $t1, 8($s0) -/* 100950 7F0CBE20 0FC32ED9 */ jal sub_GAME_7F0CBB64 -/* 100954 7F0CBE24 AFA30044 */ sw $v1, 0x44($sp) -/* 100958 7F0CBE28 8FA30044 */ lw $v1, 0x44($sp) -.L7F0CBE2C: -/* 10095C 7F0CBE2C 0C003A2C */ jal osVirtualToPhysical -/* 100960 7F0CBE30 8C640004 */ lw $a0, 4($v1) -/* 100964 7F0CBE34 8FAB0FF8 */ lw $t3, 0xff8($sp) -/* 100968 7F0CBE38 AD620000 */ sw $v0, ($t3) -.L7F0CBE3C: -/* 10096C 7F0CBE3C 8FBF0024 */ lw $ra, 0x24($sp) -/* 100970 7F0CBE40 8FB00020 */ lw $s0, 0x20($sp) -/* 100974 7F0CBE44 27BD0FF8 */ addiu $sp, $sp, 0xff8 -/* 100978 7F0CBE48 03E00008 */ jr $ra -/* 10097C 7F0CBE4C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CBE50(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CBE50 -/* 100980 7F0CBE50 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 100984 7F0CBE54 AFBF002C */ sw $ra, 0x2c($sp) -/* 100988 7F0CBE58 AFB50028 */ sw $s5, 0x28($sp) -/* 10098C 7F0CBE5C AFB40024 */ sw $s4, 0x24($sp) -/* 100990 7F0CBE60 AFB30020 */ sw $s3, 0x20($sp) -/* 100994 7F0CBE64 AFB2001C */ sw $s2, 0x1c($sp) -/* 100998 7F0CBE68 AFB10018 */ sw $s1, 0x18($sp) -/* 10099C 7F0CBE6C AFB00014 */ sw $s0, 0x14($sp) -/* 1009A0 7F0CBE70 84820016 */ lh $v0, 0x16($a0) -/* 1009A4 7F0CBE74 0080A025 */ move $s4, $a0 -/* 1009A8 7F0CBE78 00A0A825 */ move $s5, $a1 -/* 1009AC 7F0CBE7C 8C930018 */ lw $s3, 0x18($a0) -/* 1009B0 7F0CBE80 18400010 */ blez $v0, .L7F0CBEC4 -/* 1009B4 7F0CBE84 00009025 */ move $s2, $zero -/* 1009B8 7F0CBE88 00008025 */ move $s0, $zero -/* 1009BC 7F0CBE8C 02608825 */ move $s1, $s3 -.L7F0CBE90: -/* 1009C0 7F0CBE90 8E2E0000 */ lw $t6, ($s1) -/* 1009C4 7F0CBE94 02132021 */ addu $a0, $s0, $s3 -/* 1009C8 7F0CBE98 29C10BB9 */ slti $at, $t6, 0xbb9 -/* 1009CC 7F0CBE9C 50200005 */ beql $at, $zero, .L7F0CBEB4 -/* 1009D0 7F0CBEA0 26520001 */ addiu $s2, $s2, 1 -/* 1009D4 7F0CBEA4 0FC32F06 */ jal load_image_to_buffer -/* 1009D8 7F0CBEA8 02A02825 */ move $a1, $s5 -/* 1009DC 7F0CBEAC 86820016 */ lh $v0, 0x16($s4) -/* 1009E0 7F0CBEB0 26520001 */ addiu $s2, $s2, 1 -.L7F0CBEB4: -/* 1009E4 7F0CBEB4 0242082A */ slt $at, $s2, $v0 -/* 1009E8 7F0CBEB8 2610000C */ addiu $s0, $s0, 0xc -/* 1009EC 7F0CBEBC 1420FFF4 */ bnez $at, .L7F0CBE90 -/* 1009F0 7F0CBEC0 2631000C */ addiu $s1, $s1, 0xc -.L7F0CBEC4: -/* 1009F4 7F0CBEC4 8FBF002C */ lw $ra, 0x2c($sp) -/* 1009F8 7F0CBEC8 8FB00014 */ lw $s0, 0x14($sp) -/* 1009FC 7F0CBECC 8FB10018 */ lw $s1, 0x18($sp) -/* 100A00 7F0CBED0 8FB2001C */ lw $s2, 0x1c($sp) -/* 100A04 7F0CBED4 8FB30020 */ lw $s3, 0x20($sp) -/* 100A08 7F0CBED8 8FB40024 */ lw $s4, 0x24($sp) -/* 100A0C 7F0CBEDC 8FB50028 */ lw $s5, 0x28($sp) -/* 100A10 7F0CBEE0 03E00008 */ jr $ra -/* 100A14 7F0CBEE4 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - - - -#ifdef NONMATCHING -void calls_load_image_to_buffer(uint *image,uint *buffer) +extern u8 _imagesSegmentRomStart; + +/** + * Load and decompress a texture from ROM. + * + * The given pointer points to a word which determines what to load. + * The formats of the word are: + * + * abcdxxxx -> load texture number xxxx + * 0000xxxx -> load texture number xxxx + * (memory address) -> the texture is already loaded, so do nothing + * + * After loading and decompressing the texture, the value that's pointed to is + * changed to be a pointer to... something. + * + * There are two types of textures: + * + * - Zlib-compressed textures, which are always paletted + * - Non-zlib textures, which use a variety of (non-zlib) compression methods + * and are sometimes paletted + * + * Both types have support for multiple levels of detail (ie. multiple images + * of varying size) within each texture. There are enough bits in the header + * byte to support 64 levels of detail, but this function caps it to 5. Some + * textures actually specify up to 7 levels of detail. However testing suggests + * that the additional levels of detail are not even read. + * + * This function reads the above information from the first byte of texture data, + * then calls the texInflateZlib or texInflateNonZlib to inflate the images. + * + * The format of the first byte is: + * uzllllll + * + * u = unknown + * z = texture is compressed with zlib + * l = number of levels of detail within the texture + */ +void texLoad(s32 *updateword, struct texpool *pool) { - load_image_to_buffer(&image,buffer); + u8 compbuffer[4000]; + u8 *compptr; + s32 sp14a8; + s32 iszlib; + s32 lod; + struct tex *tex; + u8 *alignedcompbuffer; + s32 thisoffset; + s32 nextoffset; + s16 *texnumptr; + s32 bytesout; + + if (pool == NULL) + { + pool = (struct texpool*) &ptr_texture_alloc_start; + } + + g_TexNumToLoad = *updateword & 0xffff; + tex = texFindInPool(g_TexNumToLoad, pool); + + if (tex == NULL) + { + alignedcompbuffer = (u8 *) (((u32)compbuffer + 0xF) >> 4 << 4); + + if (alignedcompbuffer); + if (tex); + + osWritebackDCacheAll(); + osInvalDCache(alignedcompbuffer, DCACHE_SIZE); + + thisoffset = *((s32*)&g_Textures[g_TexNumToLoad]) & 0xFFFFFF; + nextoffset = (*((s32 *) (&g_Textures[g_TexNumToLoad + 1]))) & ((unsigned long) 0xFFFFFF); + + if (TRUE) + { + // Copy the compressed texture to RAM + romCopy(alignedcompbuffer, + (u32) &_imagesSegmentRomStart + (thisoffset & 0xfffffff8), + ((u32) (nextoffset - thisoffset) + 0x1f) >> 4 << 4); + + compptr = (u8 *) alignedcompbuffer + (thisoffset & 7); + thisoffset = 0; + sp14a8 = (*compptr & 0x80) >> 7; + iszlib = (*compptr & 0x40) >> 6; + lod = *compptr & 0x3f; + compptr++; + + // If there's not enough memory to load the texture, set the texture + // pointer to the start of the pool. It'll be garbage data but the + // only other option is a crash. GBI commands contain texture IDs + // instead of pointers, and they must be replaced with pointers. + if ((!iszlib && (texFreeBytesInBuffer(pool) < 0x10CC)) || (iszlib && texFreeBytesInBuffer(pool) < 0xA28)) { + *updateword = osVirtualToPhysical(pool->start); + return; + } + + // Write the texturenum into the allocation + texnumptr = (s16 *) pool->leftpos; + *texnumptr = g_TexNumToLoad; + pool->leftpos += 8; + + // Write a tex into the allocation + pool->rightpos--; + tex = pool->rightpos; + tex->texturenum = g_TexNumToLoad; + tex->data = pool->leftpos; + + // Extract the texture data to the allocation (pool->leftpos) + if (iszlib) { + bytesout = texInflateZlib(compptr, pool->leftpos, sp14a8, lod, pool); + } else { + bytesout = texInflateNonZlib(compptr, pool->leftpos, sp14a8, lod, pool); + } + + pool->leftpos += bytesout; + } + + texFreeBytesInBuffer(pool); + } + + *updateword = osVirtualToPhysical(tex->data); } -#else -GLOBAL_ASM( -.text -glabel calls_load_image_to_buffer -/* 100A18 7F0CBEE8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 100A1C 7F0CBEEC AFBF0014 */ sw $ra, 0x14($sp) -/* 100A20 7F0CBEF0 AFA4001C */ sw $a0, 0x1c($sp) -/* 100A24 7F0CBEF4 0FC32F06 */ jal load_image_to_buffer -/* 100A28 7F0CBEF8 27A4001C */ addiu $a0, $sp, 0x1c -/* 100A2C 7F0CBEFC 8FBF0014 */ lw $ra, 0x14($sp) -/* 100A30 7F0CBF00 27BD0020 */ addiu $sp, $sp, 0x20 -/* 100A34 7F0CBF04 03E00008 */ jr $ra -/* 100A38 7F0CBF08 00000000 */ nop -) -#endif +void texLoadFromModelFileHeader(ModelFileHeader* arg0, struct texpool* arg1) +{ + s32 i; + ModelFileTextures* textures; + + textures = arg0->Textures; + + for (i = 0; i < arg0->numtextures; i++) + { + if ((s32)textures[i].TextureID < (s32)MAX_TEXTURES) + { + texLoad(&textures[i], arg1); + } + } +} + + +void texLoadFromTextureNum(u32 texturenum, struct texpool *arg1) +{ + u32 texturenumcopy; + texturenumcopy = texturenum; + texLoad(&texturenumcopy, arg1); +} diff --git a/src/game/image.h b/src/game/image.h index 253592f2..49625cd7 100644 --- a/src/game/image.h +++ b/src/game/image.h @@ -3,22 +3,93 @@ #include #include -struct image_entry -{ - HIT_TYPE hitSound : 4; //HitType-Sound - HIT_TYPE hitTexture : 4; //HitType-Texture - s32 size : 24; //this is u32 Size:24 - 24bit size/address - char flag3; //Detailflag1 used once with value 0x38D2 (S/T offset of detail) - char flag4; //DetailFlag2 difference from detail image, to large image, in terms of 2 to the power of value. It is subtracted from the small one, and absolute value or something. (Zoinkity) - char flag5; //padding - char flag6; //padding +#define TEXFORMAT_RGBA32 0x00 // 32-bit RGBA (8/8/8/8) +#define TEXFORMAT_RGBA16 0x01 // 16-bit RGBA (5/5/5/1) +#define TEXFORMAT_RGB24 0x02 // 24-bit RGB (8/8/8) +#define TEXFORMAT_RGB15 0x03 // 15-bit RGB (5/5/5) +#define TEXFORMAT_IA16 0x04 // 16-bit grayscale+alpha +#define TEXFORMAT_IA8 0x05 // 8-bit grayscale+alpha (4/4) +#define TEXFORMAT_IA4 0x06 // 4-bit grayscale+alpha (3/1) +#define TEXFORMAT_I8 0x07 // 8-bit grayscale +#define TEXFORMAT_I4 0x08 // 4-bit grayscale +#define TEXFORMAT_RGBA16_CI8 0x09 // 16-bit 5551 paletted colour with 8-bit palette indexes +#define TEXFORMAT_RGBA16_CI4 0x0a // 16-bit 5551 paletted colour with 4-bit palette indexes +#define TEXFORMAT_IA16_CI8 0x0b // 16-bit 88 paletted greyscale+alpha with 8-bit palette indexes +#define TEXFORMAT_0C 0x0c + +#define TEXCOMPMETHOD_UNCOMPRESSED0 0 +#define TEXCOMPMETHOD_UNCOMPRESSED1 1 +#define TEXCOMPMETHOD_HUFFMAN 2 +#define TEXCOMPMETHOD_HUFFMANPERHCHANNEL 3 +#define TEXCOMPMETHOD_RLE 4 +#define TEXCOMPMETHOD_LOOKUP 5 +#define TEXCOMPMETHOD_HUFFMANLOOKUP 6 +#define TEXCOMPMETHOD_RLELOOKUP 7 +#define TEXCOMPMETHOD_HUFFMANBLUR 8 +#define TEXCOMPMETHOD_RLEBLUR 9 + +struct texpool { + u8 *start; + struct tex *end; + u8 *leftpos; + struct tex *rightpos; }; -extern s32 ptr_texture_alloc_start; -extern struct image_entry image_entries[]; -extern s32 dword_CODE_bss_8008D090; +struct tex { + /*0x00*/ u16 texturenum : 12; + /*0x00*/ u16 unk00_0c : 4; + /*0x04*/ u8* data; + /*0x08*/ u8 width; + /*0x09*/ u8 height; + /*0x0a*/ u8 unk0a; + /*0x0b*/ u8 maxlod : 3; + /*0x0b*/ u8 gbiformat : 3; + /*0x0b*/ u8 depth : 2; + /*0x0c*/ u32 lutmodeindex : 2; + /*0x0c*/ u32 unk0c_02 : 1; + /*0x0c*/ u32 unk0c_03 : 1; + /*0x0c*/ u32 next : 24; +}; + +struct image_entry +{ + u8 hitSound : 4; // HitType-Sound (should be enum HIT_TYPE, but it needs to be unsigned) + HIT_TYPE hitTexture : 4; // HitType-Texture + u32 dataoffset : 24; // this is u32 Size:24 - 24bit size/address + u32 flag3 : 4; // Detailflag1 used once with value 0x38D2 (S/T offset of detail) + u32 flag4 : 4; + u32 flag5 : 4; // DetailFlag2 difference from detail image, to large image, in terms of 2 to the power of value. It is subtracted from the small one, and absolute value or something. (Zoinkity) + u32 flag6 : 4; +}; + +struct texcacheitem { + s16 texturenum; + u8 widths[7]; + u8 heights[7]; +}; + +extern struct texcacheitem g_TexCacheItems[]; +extern struct texpool *ptr_texture_alloc_start; +extern struct image_entry g_Textures[]; +extern s32 g_TexCacheCount; extern u32 bytes; void nullsub_41(s32 arg0); +void texInflateHuffman(u8 *dst, s32 numiterations, s32 chansize); +void texInflateRle(u8 *dst, s32 blockstotal); +void texReadAlphaBits(u8 *image,s32 count); +void texSwapAltRowBytes(u8 *dst, s32 width, s32 height, s32 format); +void texBlur(u8 *pixels, s32 width, s32 height, s32 method, s32 chansize); +s32 texAlignIndices(u8 *src, s32 width, s32 height, s32 format, u8 *dst); +s32 texFindClosestColourIndexRGBA(u16 *palette, s32 numcolours, s32 r, s32 g, s32 b, s32 a); +s32 texFindClosestColourIndexIA(u16 *palette, s32 numcolours, s32 intensity, s32 alpha); +s32 texShrinkPaletted(u8 *src, u8 *dst, s32 srcwidth, s32 srcheight, s32 format, u16 *palette, s32 numcolours); +struct tex *texFindInPool(s32 texturenum, struct texpool *arg1); +s32 texFreeBytesInBuffer(struct texpool *arg0); +s32 texInflateNonZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct texpool *arg4); +s32 texInflateZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct texpool *arg4); +void texLoad(s32 *updateword, struct texpool *pool); +void texInitPool(struct texpool *arg0, u8 *arg1, s32 arg2); + #endif diff --git a/src/game/image_bank.c b/src/game/image_bank.c index 8a3af52a..1d45f4e0 100644 --- a/src/game/image_bank.c +++ b/src/game/image_bank.c @@ -85,7 +85,7 @@ struct sImageTableEntry *mpstageselimages; extern u8* _GlobalimagetableSegmentRomStart; -void makeemptyimageatpos(s32 pos) { +void texSetBitstring(s32 pos) { img_curpos = pos; img_curdatatable = 0; img_bitcount = 0; @@ -93,7 +93,7 @@ void makeemptyimageatpos(s32 pos) { -u32 extractImageBitCount(s32 bitCount) +u32 texReadBits(s32 bitCount) { if (img_bitcount < bitCount) { @@ -164,407 +164,78 @@ extern Gfx* globalDL_0x900; extern Gfx* globalDL_0x9a8; extern Gfx* globalDL_0xa50; -#ifdef NONMATCHING -void load_prepare_global_image_bank(void) +void texReset(void) { - - s32 size; + u32 size; s32 i; - size = &_GlobalimagetableSegmentEnd - &_GlobalimagetableSegmentStart; - pGlobalimagetable = ((mempAllocBytesInBank((size + 0x1000), 4) + 0xfff) & -0x1000); - romCopy(pGlobalimagetable, &_GlobalimagetableSegmentRomStart, size); - globalbank_rdram_offset = pGlobalimagetable + 0xFE000000;; - genericimage = (void *) (globalbank_rdram_offset + &s_genericimage); - impactimages = (void *) (globalbank_rdram_offset + &s_impactimages); - explosion_smokeimages = (void *) (globalbank_rdram_offset + &s_explosion_smokeimages); - scattered_explosions = (void *) (globalbank_rdram_offset + &s_scattered_explosions); - flareimage1 = (void *) (globalbank_rdram_offset + &s_flareimage1); - flareimage2 = (void *) (globalbank_rdram_offset + &s_flareimage2); - flareimage3 = (void *) (globalbank_rdram_offset + &s_flareimage3); - flareimage4 = (void *) (globalbank_rdram_offset + &s_flareimage4); - flareimage5 = (void *) (globalbank_rdram_offset + &s_flareimage5); - ammo9mmimage = (void *) (globalbank_rdram_offset + &s_ammo9mmimage); - rifleammoimage = (void *) (globalbank_rdram_offset + &s_rifleammoimage); - shotgunammoimage = (void *) (globalbank_rdram_offset + &s_shotgunammoimage); - knifeammoimage = (void *) (globalbank_rdram_offset + &s_knifeammoimage); - glaunchammoimage = (void *) (globalbank_rdram_offset + &s_glammoimage); - rocketammoimage = (void *) (globalbank_rdram_offset + &s_rocketammoimage); - genericmineammoimage = (void *) (globalbank_rdram_offset + &s_genericmineammoimage); - grenadeammoimage = (void *) (globalbank_rdram_offset + &s_grenadeammoimage); - magnumammoimage = (void *) (globalbank_rdram_offset + &s_magnumammoimage); - goldengunammoimage = (void *) (globalbank_rdram_offset + &s_goldengunammoimage); - remotemineammoimage = (void *) (globalbank_rdram_offset + &s_remotemineammoimage); - timedmineammoimage = (void *) (globalbank_rdram_offset + &s_timedmineammoimage); - proxmineammoimage = (void *) (globalbank_rdram_offset + &s_proxmineammoimage); - tankammoimage = (void *) (globalbank_rdram_offset + &s_tankammoimage); - crosshairimage = (void *) (globalbank_rdram_offset + &s_crosshairimage); - betacrosshairimage = (void *) (globalbank_rdram_offset + &s_betacrosshairimage); - glassoverlayimage = (void *) (globalbank_rdram_offset + &s_glassoverlayimage); - monitorimages = (void *) (globalbank_rdram_offset + &s_monitorimages); - skywaterimages = (void *) (globalbank_rdram_offset + &s_skywaterimages); - mainfolderimages = (void *) (globalbank_rdram_offset + &s_mainfolderimages); - mpradarimages = (void *) (globalbank_rdram_offset + &s_mpradarimages); - mpcharselimages = (void *) (globalbank_rdram_offset + &s_mpcharselimages); - mpstageselimages = (void *) (globalbank_rdram_offset + &s_mpstageselimages); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x000, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x078, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x120, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x1c8, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x270, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x318, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x3c0, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x468, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x510, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x5b8, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x660, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x708, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x7b0, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x858, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x900, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0x9a8, 0); - check_load_image_to_buffer(globalbank_rdram_offset + &globalDL_0xa50, 0); - load_image_to_buffer(genericimage, 0); + size = (u32)&_GlobalimagetableSegmentEnd - (u32)&_GlobalimagetableSegmentStart; + pGlobalimagetable = mempAllocBytesInBank(size + 0x1000, 4U); + pGlobalimagetable = ((u32)pGlobalimagetable + 0xFFFU) & 0xFFFFF000; - for (i=0; i<0x48; i+=0xC) + romCopy(pGlobalimagetable, &_GlobalimagetableSegmentRomStart, size); + + globalbank_rdram_offset = (u32)pGlobalimagetable + 0xFE000000; + genericimage = (void *) (globalbank_rdram_offset + (u32)&s_genericimage); + impactimages = (void *) (globalbank_rdram_offset + (u32)&s_impactimages); + explosion_smokeimages = (void *) (globalbank_rdram_offset + (u32)&s_explosion_smokeimages); + scattered_explosions = (void *) (globalbank_rdram_offset + (u32)&s_scattered_explosions); + flareimage1 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage1); + flareimage2 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage2); + flareimage3 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage3); + flareimage4 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage4); + flareimage5 = (void *) (globalbank_rdram_offset + (u32)&s_flareimage5); + ammo9mmimage = (void *) (globalbank_rdram_offset + (u32)&s_ammo9mmimage); + rifleammoimage = (void *) (globalbank_rdram_offset + (u32)&s_rifleammoimage); + shotgunammoimage = (void *) (globalbank_rdram_offset + (u32)&s_shotgunammoimage); + knifeammoimage = (void *) (globalbank_rdram_offset + (u32)&s_knifeammoimage); + glaunchammoimage = (void *) (globalbank_rdram_offset + (u32)&s_glammoimage); + rocketammoimage = (void *) (globalbank_rdram_offset + (u32)&s_rocketammoimage); + genericmineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_genericmineammoimage); + grenadeammoimage = (void *) (globalbank_rdram_offset + (u32)&s_grenadeammoimage); + magnumammoimage = (void *) (globalbank_rdram_offset + (u32)&s_magnumammoimage); + goldengunammoimage = (void *) (globalbank_rdram_offset + (u32)&s_goldengunammoimage); + remotemineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_remotemineammoimage); + timedmineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_timedmineammoimage); + proxmineammoimage = (void *) (globalbank_rdram_offset + (u32)&s_proxmineammoimage); + tankammoimage = (void *) (globalbank_rdram_offset + (u32)&s_tankammoimage); + crosshairimage = (void *) (globalbank_rdram_offset + (u32)&s_crosshairimage); + betacrosshairimage = (void *) (globalbank_rdram_offset + (u32)&s_betacrosshairimage); + glassoverlayimage = (void *) (globalbank_rdram_offset + (u32)&s_glassoverlayimage); + monitorimages = (void *) (globalbank_rdram_offset + (u32)&s_monitorimages); + skywaterimages = (void *) (globalbank_rdram_offset + (u32)&s_skywaterimages); + mainfolderimages = (void *) (globalbank_rdram_offset + (u32)&s_mainfolderimages); + mpradarimages = (void *) (globalbank_rdram_offset + (u32)&s_mpradarimages); + mpcharselimages = (void *) (globalbank_rdram_offset + (u32)&s_mpcharselimages); + mpstageselimages = (void *) (globalbank_rdram_offset + (u32)&s_mpstageselimages); + + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x000, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x078, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x120, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x1c8, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x270, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x318, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x3c0, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x468, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x510, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x5b8, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x660, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x708, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x7b0, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x858, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x900, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0x9a8, 0); + texLoadFromDisplayList(globalbank_rdram_offset + (u32)&globalDL_0xa50, 0); + + texLoad(genericimage, 0); + + for (i=0; i < 6; i++) { - load_image_to_buffer(&explosion_smokeimages+i, 0); + texLoad(&explosion_smokeimages[i], 0); } - for (i=0; i<0x48; i+=0xC) + + for (i=0; i < 5; i++) { - load_image_to_buffer(&scattered_explosions+i, 0); + texLoad(&scattered_explosions[i], 0); } } -#else -GLOBAL_ASM( -.text -glabel load_prepare_global_image_bank -/* 100AE0 7F0CBFB0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 100AE4 7F0CBFB4 3C0E0200 */ lui $t6, %hi(_GlobalimagetableSegmentEnd) # $t6, 0x200 -/* 100AE8 7F0CBFB8 3C0F0200 */ lui $t7, %hi(_GlobalimagetableSegmentStart) # $t7, 0x200 -/* 100AEC 7F0CBFBC AFB00014 */ sw $s0, 0x14($sp) -/* 100AF0 7F0CBFC0 25EF0000 */ addiu $t7, %lo(_GlobalimagetableSegmentStart) # addiu $t7, $t7, 0 -/* 100AF4 7F0CBFC4 25CE1400 */ addiu $t6, %lo(_GlobalimagetableSegmentEnd) # addiu $t6, $t6, 0x1400 -/* 100AF8 7F0CBFC8 AFBF0024 */ sw $ra, 0x24($sp) -/* 100AFC 7F0CBFCC 01CF8023 */ subu $s0, $t6, $t7 -/* 100B00 7F0CBFD0 AFB30020 */ sw $s3, 0x20($sp) -/* 100B04 7F0CBFD4 AFB2001C */ sw $s2, 0x1c($sp) -/* 100B08 7F0CBFD8 AFB10018 */ sw $s1, 0x18($sp) -/* 100B0C 7F0CBFDC 26041000 */ addiu $a0, $s0, 0x1000 -/* 100B10 7F0CBFE0 0C0025C8 */ jal mempAllocBytesInBank -/* 100B14 7F0CBFE4 24050004 */ li $a1, 4 -/* 100B18 7F0CBFE8 3C118009 */ lui $s1, %hi(pGlobalimagetable) -/* 100B1C 7F0CBFEC 2631D0B4 */ addiu $s1, %lo(pGlobalimagetable) # addiu $s1, $s1, -0x2f4c -/* 100B20 7F0CBFF0 24590FFF */ addiu $t9, $v0, 0xfff -/* 100B24 7F0CBFF4 2401F000 */ li $at, -4096 -/* 100B28 7F0CBFF8 AE220000 */ sw $v0, ($s1) -/* 100B2C 7F0CBFFC 03212024 */ and $a0, $t9, $at -/* 100B30 7F0CC000 3C05002A */ lui $a1, %hi(_GlobalimagetableSegmentRomStart) # $a1, 0x2a -/* 100B34 7F0CC004 AE240000 */ sw $a0, ($s1) -/* 100B38 7F0CC008 24A5D160 */ addiu $a1, %lo(_GlobalimagetableSegmentRomStart) # addiu $a1, $a1, -0x2ea0 -/* 100B3C 7F0CC00C 0C001707 */ jal romCopy -/* 100B40 7F0CC010 02003025 */ move $a2, $s0 -/* 100B44 7F0CC014 8E290000 */ lw $t1, ($s1) -/* 100B48 7F0CC018 3C01FE00 */ lui $at, 0xfe00 -/* 100B4C 7F0CC01C 3C108009 */ lui $s0, %hi(globalbank_rdram_offset) -/* 100B50 7F0CC020 01211021 */ addu $v0, $t1, $at -/* 100B54 7F0CC024 3C0B0200 */ lui $t3, %hi(s_genericimage) # $t3, 0x200 -/* 100B58 7F0CC028 2610D0B0 */ addiu $s0, %lo(globalbank_rdram_offset) # addiu $s0, $s0, -0x2f50 -/* 100B5C 7F0CC02C 256B0AC8 */ addiu $t3, %lo(s_genericimage) # addiu $t3, $t3, 0xac8 -/* 100B60 7F0CC030 AE020000 */ sw $v0, ($s0) -/* 100B64 7F0CC034 004B6021 */ addu $t4, $v0, $t3 -/* 100B68 7F0CC038 3C018009 */ lui $at, %hi(genericimage) -/* 100B6C 7F0CC03C 3C0D0200 */ lui $t5, %hi(s_impactimages) # $t5, 0x200 -/* 100B70 7F0CC040 AC2CD0B8 */ sw $t4, %lo(genericimage)($at) -/* 100B74 7F0CC044 25AD0AD4 */ addiu $t5, %lo(s_impactimages) # addiu $t5, $t5, 0xad4 -/* 100B78 7F0CC048 004D7021 */ addu $t6, $v0, $t5 -/* 100B7C 7F0CC04C 3C018009 */ lui $at, %hi(impactimages) -/* 100B80 7F0CC050 AC2ED0BC */ sw $t6, %lo(impactimages)($at) -/* 100B84 7F0CC054 3C0F0200 */ lui $t7, %hi(s_explosion_smokeimages) # $t7, 0x200 -/* 100B88 7F0CC058 3C190200 */ lui $t9, %hi(s_scattered_explosions) # $t9, 0x200 -/* 100B8C 7F0CC05C 3C128009 */ lui $s2, %hi(explosion_smokeimages) -/* 100B90 7F0CC060 3C138009 */ lui $s3, %hi(scattered_explosions) -/* 100B94 7F0CC064 25EF0BC4 */ addiu $t7, %lo(s_explosion_smokeimages) # addiu $t7, $t7, 0xbc4 -/* 100B98 7F0CC068 27390C0C */ addiu $t9, %lo(s_scattered_explosions) # addiu $t9, $t9, 0xc0c -/* 100B9C 7F0CC06C 3C090200 */ lui $t1, %hi(s_flareimage1) # $t1, 0x200 -/* 100BA0 7F0CC070 2673D0C4 */ addiu $s3, %lo(scattered_explosions) # addiu $s3, $s3, -0x2f3c -/* 100BA4 7F0CC074 2652D0C0 */ addiu $s2, %lo(explosion_smokeimages) # addiu $s2, $s2, -0x2f40 -/* 100BA8 7F0CC078 004FC021 */ addu $t8, $v0, $t7 -/* 100BAC 7F0CC07C 00594021 */ addu $t0, $v0, $t9 -/* 100BB0 7F0CC080 25290C48 */ addiu $t1, %lo(s_flareimage1) # addiu $t1, $t1, 0xc48 -/* 100BB4 7F0CC084 AE580000 */ sw $t8, ($s2) -/* 100BB8 7F0CC088 AE680000 */ sw $t0, ($s3) -/* 100BBC 7F0CC08C 00495021 */ addu $t2, $v0, $t1 -/* 100BC0 7F0CC090 3C018009 */ lui $at, %hi(flareimage1) -/* 100BC4 7F0CC094 3C0B0200 */ lui $t3, %hi(s_flareimage2) # $t3, 0x200 -/* 100BC8 7F0CC098 AC2AD0C8 */ sw $t2, %lo(flareimage1)($at) -/* 100BCC 7F0CC09C 256B0C54 */ addiu $t3, %lo(s_flareimage2) # addiu $t3, $t3, 0xc54 -/* 100BD0 7F0CC0A0 004B6021 */ addu $t4, $v0, $t3 -/* 100BD4 7F0CC0A4 3C018009 */ lui $at, %hi(flareimage2) -/* 100BD8 7F0CC0A8 3C0D0200 */ lui $t5, %hi(s_flareimage3) # $t5, 0x200 -/* 100BDC 7F0CC0AC AC2CD0CC */ sw $t4, %lo(flareimage2)($at) -/* 100BE0 7F0CC0B0 25AD0C60 */ addiu $t5, %lo(s_flareimage3) # addiu $t5, $t5, 0xc60 -/* 100BE4 7F0CC0B4 004D7021 */ addu $t6, $v0, $t5 -/* 100BE8 7F0CC0B8 3C018009 */ lui $at, %hi(flareimage3) -/* 100BEC 7F0CC0BC 3C0F0200 */ lui $t7, %hi(s_flareimage4) # $t7, 0x200 -/* 100BF0 7F0CC0C0 AC2ED0D0 */ sw $t6, %lo(flareimage3)($at) -/* 100BF4 7F0CC0C4 25EF0C6C */ addiu $t7, %lo(s_flareimage4) # addiu $t7, $t7, 0xc6c -/* 100BF8 7F0CC0C8 004FC021 */ addu $t8, $v0, $t7 -/* 100BFC 7F0CC0CC 3C018009 */ lui $at, %hi(flareimage4) -/* 100C00 7F0CC0D0 3C190200 */ lui $t9, %hi(s_flareimage5) # $t9, 0x200 -/* 100C04 7F0CC0D4 AC38D0D4 */ sw $t8, %lo(flareimage4)($at) -/* 100C08 7F0CC0D8 27390C78 */ addiu $t9, %lo(s_flareimage5) # addiu $t9, $t9, 0xc78 -/* 100C0C 7F0CC0DC 00594021 */ addu $t0, $v0, $t9 -/* 100C10 7F0CC0E0 3C018009 */ lui $at, %hi(flareimage5) -/* 100C14 7F0CC0E4 3C090200 */ lui $t1, %hi(s_ammo9mmimage) # $t1, 0x200 -/* 100C18 7F0CC0E8 AC28D0D8 */ sw $t0, %lo(flareimage5)($at) -/* 100C1C 7F0CC0EC 25290C84 */ addiu $t1, %lo(s_ammo9mmimage) # addiu $t1, $t1, 0xc84 -/* 100C20 7F0CC0F0 00495021 */ addu $t2, $v0, $t1 -/* 100C24 7F0CC0F4 3C018009 */ lui $at, %hi(ammo9mmimage) -/* 100C28 7F0CC0F8 3C0B0200 */ lui $t3, %hi(s_rifleammoimage) # $t3, 0x200 -/* 100C2C 7F0CC0FC AC2AD0DC */ sw $t2, %lo(ammo9mmimage)($at) -/* 100C30 7F0CC100 256B0C90 */ addiu $t3, %lo(s_rifleammoimage) # addiu $t3, $t3, 0xc90 -/* 100C34 7F0CC104 004B6021 */ addu $t4, $v0, $t3 -/* 100C38 7F0CC108 3C018009 */ lui $at, %hi(rifleammoimage) -/* 100C3C 7F0CC10C 3C0D0200 */ lui $t5, %hi(s_shotgunammoimage) # $t5, 0x200 -/* 100C40 7F0CC110 AC2CD0E0 */ sw $t4, %lo(rifleammoimage)($at) -/* 100C44 7F0CC114 25AD0C9C */ addiu $t5, %lo(s_shotgunammoimage) # addiu $t5, $t5, 0xc9c -/* 100C48 7F0CC118 004D7021 */ addu $t6, $v0, $t5 -/* 100C4C 7F0CC11C 3C018009 */ lui $at, %hi(shotgunammoimage) -/* 100C50 7F0CC120 3C0F0200 */ lui $t7, %hi(s_knifeammoimage) # $t7, 0x200 -/* 100C54 7F0CC124 AC2ED0E4 */ sw $t6, %lo(shotgunammoimage)($at) -/* 100C58 7F0CC128 25EF0CA8 */ addiu $t7, %lo(s_knifeammoimage) # addiu $t7, $t7, 0xca8 -/* 100C5C 7F0CC12C 004FC021 */ addu $t8, $v0, $t7 -/* 100C60 7F0CC130 3C018009 */ lui $at, %hi(knifeammoimage) -/* 100C64 7F0CC134 3C190200 */ lui $t9, %hi(s_glammoimage) # $t9, 0x200 -/* 100C68 7F0CC138 AC38D0E8 */ sw $t8, %lo(knifeammoimage)($at) -/* 100C6C 7F0CC13C 27390CB4 */ addiu $t9, %lo(s_glammoimage) # addiu $t9, $t9, 0xcb4 -/* 100C70 7F0CC140 00594021 */ addu $t0, $v0, $t9 -/* 100C74 7F0CC144 3C018009 */ lui $at, %hi(glaunchammoimage) -/* 100C78 7F0CC148 3C090200 */ lui $t1, %hi(s_rocketammoimage) # $t1, 0x200 -/* 100C7C 7F0CC14C AC28D0EC */ sw $t0, %lo(glaunchammoimage)($at) -/* 100C80 7F0CC150 25290CC0 */ addiu $t1, %lo(s_rocketammoimage) # addiu $t1, $t1, 0xcc0 -/* 100C84 7F0CC154 00495021 */ addu $t2, $v0, $t1 -/* 100C88 7F0CC158 3C018009 */ lui $at, %hi(rocketammoimage) -/* 100C8C 7F0CC15C 3C0B0200 */ lui $t3, %hi(s_genericmineammoimage) # $t3, 0x200 -/* 100C90 7F0CC160 AC2AD0F0 */ sw $t2, %lo(rocketammoimage)($at) -/* 100C94 7F0CC164 256B0CCC */ addiu $t3, %lo(s_genericmineammoimage) # addiu $t3, $t3, 0xccc -/* 100C98 7F0CC168 004B6021 */ addu $t4, $v0, $t3 -/* 100C9C 7F0CC16C 3C018009 */ lui $at, %hi(genericmineammoimage) -/* 100CA0 7F0CC170 3C0D0200 */ lui $t5, %hi(s_grenadeammoimage) # $t5, 0x200 -/* 100CA4 7F0CC174 AC2CD0F4 */ sw $t4, %lo(genericmineammoimage)($at) -/* 100CA8 7F0CC178 25AD0CD8 */ addiu $t5, %lo(s_grenadeammoimage) # addiu $t5, $t5, 0xcd8 -/* 100CAC 7F0CC17C 004D7021 */ addu $t6, $v0, $t5 -/* 100CB0 7F0CC180 3C018009 */ lui $at, %hi(grenadeammoimage) -/* 100CB4 7F0CC184 3C0F0200 */ lui $t7, %hi(s_magnumammoimage) # $t7, 0x200 -/* 100CB8 7F0CC188 AC2ED0F8 */ sw $t6, %lo(grenadeammoimage)($at) -/* 100CBC 7F0CC18C 25EF0CE4 */ addiu $t7, %lo(s_magnumammoimage) # addiu $t7, $t7, 0xce4 -/* 100CC0 7F0CC190 004FC021 */ addu $t8, $v0, $t7 -/* 100CC4 7F0CC194 3C018009 */ lui $at, %hi(magnumammoimage) -/* 100CC8 7F0CC198 3C190200 */ lui $t9, %hi(s_goldengunammoimage) # $t9, 0x200 -/* 100CCC 7F0CC19C AC38D0FC */ sw $t8, %lo(magnumammoimage)($at) -/* 100CD0 7F0CC1A0 27390CF0 */ addiu $t9, %lo(s_goldengunammoimage) # addiu $t9, $t9, 0xcf0 -/* 100CD4 7F0CC1A4 00594021 */ addu $t0, $v0, $t9 -/* 100CD8 7F0CC1A8 3C018009 */ lui $at, %hi(goldengunammoimage) -/* 100CDC 7F0CC1AC 3C090200 */ lui $t1, %hi(s_remotemineammoimage) # $t1, 0x200 -/* 100CE0 7F0CC1B0 AC28D100 */ sw $t0, %lo(goldengunammoimage)($at) -/* 100CE4 7F0CC1B4 25290CFC */ addiu $t1, %lo(s_remotemineammoimage) # addiu $t1, $t1, 0xcfc -/* 100CE8 7F0CC1B8 00495021 */ addu $t2, $v0, $t1 -/* 100CEC 7F0CC1BC 3C018009 */ lui $at, %hi(remotemineammoimage) -/* 100CF0 7F0CC1C0 3C0B0200 */ lui $t3, %hi(s_timedmineammoimage) # $t3, 0x200 -/* 100CF4 7F0CC1C4 AC2AD104 */ sw $t2, %lo(remotemineammoimage)($at) -/* 100CF8 7F0CC1C8 256B0D08 */ addiu $t3, %lo(s_timedmineammoimage) # addiu $t3, $t3, 0xd08 -/* 100CFC 7F0CC1CC 004B6021 */ addu $t4, $v0, $t3 -/* 100D00 7F0CC1D0 3C018009 */ lui $at, %hi(timedmineammoimage) -/* 100D04 7F0CC1D4 3C0D0200 */ lui $t5, %hi(s_proxmineammoimage) # $t5, 0x200 -/* 100D08 7F0CC1D8 AC2CD108 */ sw $t4, %lo(timedmineammoimage)($at) -/* 100D0C 7F0CC1DC 25AD0D14 */ addiu $t5, %lo(s_proxmineammoimage) # addiu $t5, $t5, 0xd14 -/* 100D10 7F0CC1E0 004D7021 */ addu $t6, $v0, $t5 -/* 100D14 7F0CC1E4 3C018009 */ lui $at, %hi(proxmineammoimage) -/* 100D18 7F0CC1E8 3C0F0200 */ lui $t7, %hi(s_tankammoimage) # $t7, 0x200 -/* 100D1C 7F0CC1EC AC2ED10C */ sw $t6, %lo(proxmineammoimage)($at) -/* 100D20 7F0CC1F0 25EF0D20 */ addiu $t7, %lo(s_tankammoimage) # addiu $t7, $t7, 0xd20 -/* 100D24 7F0CC1F4 004FC021 */ addu $t8, $v0, $t7 -/* 100D28 7F0CC1F8 3C018009 */ lui $at, %hi(tankammoimage) -/* 100D2C 7F0CC1FC 3C190200 */ lui $t9, %hi(s_crosshairimage) # $t9, 0x200 -/* 100D30 7F0CC200 AC38D110 */ sw $t8, %lo(tankammoimage)($at) -/* 100D34 7F0CC204 27390D2C */ addiu $t9, %lo(s_crosshairimage) # addiu $t9, $t9, 0xd2c -/* 100D38 7F0CC208 00594021 */ addu $t0, $v0, $t9 -/* 100D3C 7F0CC20C 3C018009 */ lui $at, %hi(crosshairimage) -/* 100D40 7F0CC210 3C090200 */ lui $t1, %hi(s_betacrosshairimage) # $t1, 0x200 -/* 100D44 7F0CC214 AC28D114 */ sw $t0, %lo(crosshairimage)($at) -/* 100D48 7F0CC218 25290D38 */ addiu $t1, %lo(s_betacrosshairimage) # addiu $t1, $t1, 0xd38 -/* 100D4C 7F0CC21C 00495021 */ addu $t2, $v0, $t1 -/* 100D50 7F0CC220 3C018009 */ lui $at, %hi(betacrosshairimage) -/* 100D54 7F0CC224 3C0B0200 */ lui $t3, %hi(s_glassoverlayimage) # $t3, 0x200 -/* 100D58 7F0CC228 AC2AD118 */ sw $t2, %lo(betacrosshairimage)($at) -/* 100D5C 7F0CC22C 256B0D44 */ addiu $t3, %lo(s_glassoverlayimage) # addiu $t3, $t3, 0xd44 -/* 100D60 7F0CC230 004B6021 */ addu $t4, $v0, $t3 -/* 100D64 7F0CC234 3C018009 */ lui $at, %hi(glassoverlayimage) -/* 100D68 7F0CC238 3C0D0200 */ lui $t5, %hi(s_monitorimages) # $t5, 0x200 -/* 100D6C 7F0CC23C AC2CD11C */ sw $t4, %lo(glassoverlayimage)($at) -/* 100D70 7F0CC240 25AD0D5C */ addiu $t5, %lo(s_monitorimages) # addiu $t5, $t5, 0xd5c -/* 100D74 7F0CC244 004D7021 */ addu $t6, $v0, $t5 -/* 100D78 7F0CC248 3C018009 */ lui $at, %hi(monitorimages) -/* 100D7C 7F0CC24C 3C0F0200 */ lui $t7, %hi(s_skywaterimages) # $t7, 0x200 -/* 100D80 7F0CC250 AC2ED120 */ sw $t6, %lo(monitorimages)($at) -/* 100D84 7F0CC254 25EF0FB4 */ addiu $t7, %lo(s_skywaterimages) # addiu $t7, $t7, 0xfb4 -/* 100D88 7F0CC258 004FC021 */ addu $t8, $v0, $t7 -/* 100D8C 7F0CC25C 3C018009 */ lui $at, %hi(skywaterimages) -/* 100D90 7F0CC260 3C190200 */ lui $t9, %hi(s_mainfolderimages) # $t9, 0x200 -/* 100D94 7F0CC264 AC38D124 */ sw $t8, %lo(skywaterimages)($at) -/* 100D98 7F0CC268 27390FD8 */ addiu $t9, %lo(s_mainfolderimages) # addiu $t9, $t9, 0xfd8 -/* 100D9C 7F0CC26C 00594021 */ addu $t0, $v0, $t9 -/* 100DA0 7F0CC270 3C018009 */ lui $at, %hi(mainfolderimages) -/* 100DA4 7F0CC274 3C090200 */ lui $t1, %hi(s_mpradarimages) # $t1, 0x200 -/* 100DA8 7F0CC278 AC28D128 */ sw $t0, %lo(mainfolderimages)($at) -/* 100DAC 7F0CC27C 25291020 */ addiu $t1, %lo(s_mpradarimages) # addiu $t1, $t1, 0x1020 -/* 100DB0 7F0CC280 00495021 */ addu $t2, $v0, $t1 -/* 100DB4 7F0CC284 3C018009 */ lui $at, %hi(mpradarimages) -/* 100DB8 7F0CC288 3C0B0200 */ lui $t3, %hi(s_mpcharselimages) # $t3, 0x200 -/* 100DBC 7F0CC28C AC2AD12C */ sw $t2, %lo(mpradarimages)($at) -/* 100DC0 7F0CC290 256B102C */ addiu $t3, %lo(s_mpcharselimages) # addiu $t3, $t3, 0x102c -/* 100DC4 7F0CC294 004B6021 */ addu $t4, $v0, $t3 -/* 100DC8 7F0CC298 3C018009 */ lui $at, %hi(mpcharselimages) -/* 100DCC 7F0CC29C 3C0D0200 */ lui $t5, %hi(s_mpstageselimages) # $t5, 0x200 -/* 100DD0 7F0CC2A0 AC2CD130 */ sw $t4, %lo(mpcharselimages)($at) -/* 100DD4 7F0CC2A4 25AD132C */ addiu $t5, %lo(s_mpstageselimages) # addiu $t5, $t5, 0x132c -/* 100DD8 7F0CC2A8 3C0F0200 */ lui $t7, 0x200 -/* 100DDC 7F0CC2AC 004D7021 */ addu $t6, $v0, $t5 -/* 100DE0 7F0CC2B0 3C018009 */ lui $at, %hi(mpstageselimages) -/* 100DE4 7F0CC2B4 25EF0000 */ addiu $t7, $t7, 0 -/* 100DE8 7F0CC2B8 AC2ED134 */ sw $t6, %lo(mpstageselimages)($at) -/* 100DEC 7F0CC2BC 004F2021 */ addu $a0, $v0, $t7 -/* 100DF0 7F0CC2C0 0FC32EDD */ jal check_load_image_to_buffer -/* 100DF4 7F0CC2C4 00002825 */ move $a1, $zero -/* 100DF8 7F0CC2C8 8E180000 */ lw $t8, ($s0) -/* 100DFC 7F0CC2CC 3C190200 */ lui $t9, %hi(globalDL_0x078) # $t9, 0x200 -/* 100E00 7F0CC2D0 27390078 */ addiu $t9, %lo(globalDL_0x078) # addiu $t9, $t9, 0x78 -/* 100E04 7F0CC2D4 00002825 */ move $a1, $zero -/* 100E08 7F0CC2D8 0FC32EDD */ jal check_load_image_to_buffer -/* 100E0C 7F0CC2DC 03192021 */ addu $a0, $t8, $t9 -/* 100E10 7F0CC2E0 8E080000 */ lw $t0, ($s0) -/* 100E14 7F0CC2E4 3C090200 */ lui $t1, %hi(globalDL_0x120) # $t1, 0x200 -/* 100E18 7F0CC2E8 25290120 */ addiu $t1, %lo(globalDL_0x120) # addiu $t1, $t1, 0x120 -/* 100E1C 7F0CC2EC 00002825 */ move $a1, $zero -/* 100E20 7F0CC2F0 0FC32EDD */ jal check_load_image_to_buffer -/* 100E24 7F0CC2F4 01092021 */ addu $a0, $t0, $t1 -/* 100E28 7F0CC2F8 8E0A0000 */ lw $t2, ($s0) -/* 100E2C 7F0CC2FC 3C0B0200 */ lui $t3, %hi(globalDL_0x1c8) # $t3, 0x200 -/* 100E30 7F0CC300 256B01C8 */ addiu $t3, %lo(globalDL_0x1c8) # addiu $t3, $t3, 0x1c8 -/* 100E34 7F0CC304 00002825 */ move $a1, $zero -/* 100E38 7F0CC308 0FC32EDD */ jal check_load_image_to_buffer -/* 100E3C 7F0CC30C 014B2021 */ addu $a0, $t2, $t3 -/* 100E40 7F0CC310 8E0C0000 */ lw $t4, ($s0) -/* 100E44 7F0CC314 3C0D0200 */ lui $t5, %hi(globalDL_0x270) # $t5, 0x200 -/* 100E48 7F0CC318 25AD0270 */ addiu $t5, %lo(globalDL_0x270) # addiu $t5, $t5, 0x270 -/* 100E4C 7F0CC31C 00002825 */ move $a1, $zero -/* 100E50 7F0CC320 0FC32EDD */ jal check_load_image_to_buffer -/* 100E54 7F0CC324 018D2021 */ addu $a0, $t4, $t5 -/* 100E58 7F0CC328 8E0E0000 */ lw $t6, ($s0) -/* 100E5C 7F0CC32C 3C0F0200 */ lui $t7, %hi(globalDL_0x318) # $t7, 0x200 -/* 100E60 7F0CC330 25EF0318 */ addiu $t7, %lo(globalDL_0x318) # addiu $t7, $t7, 0x318 -/* 100E64 7F0CC334 00002825 */ move $a1, $zero -/* 100E68 7F0CC338 0FC32EDD */ jal check_load_image_to_buffer -/* 100E6C 7F0CC33C 01CF2021 */ addu $a0, $t6, $t7 -/* 100E70 7F0CC340 8E180000 */ lw $t8, ($s0) -/* 100E74 7F0CC344 3C190200 */ lui $t9, %hi(globalDL_0x3c0) # $t9, 0x200 -/* 100E78 7F0CC348 273903C0 */ addiu $t9, %lo(globalDL_0x3c0) # addiu $t9, $t9, 0x3c0 -/* 100E7C 7F0CC34C 00002825 */ move $a1, $zero -/* 100E80 7F0CC350 0FC32EDD */ jal check_load_image_to_buffer -/* 100E84 7F0CC354 03192021 */ addu $a0, $t8, $t9 -/* 100E88 7F0CC358 8E080000 */ lw $t0, ($s0) -/* 100E8C 7F0CC35C 3C090200 */ lui $t1, %hi(globalDL_0x468) # $t1, 0x200 -/* 100E90 7F0CC360 25290468 */ addiu $t1, %lo(globalDL_0x468) # addiu $t1, $t1, 0x468 -/* 100E94 7F0CC364 00002825 */ move $a1, $zero -/* 100E98 7F0CC368 0FC32EDD */ jal check_load_image_to_buffer -/* 100E9C 7F0CC36C 01092021 */ addu $a0, $t0, $t1 -/* 100EA0 7F0CC370 8E0A0000 */ lw $t2, ($s0) -/* 100EA4 7F0CC374 3C0B0200 */ lui $t3, %hi(globalDL_0x510) # $t3, 0x200 -/* 100EA8 7F0CC378 256B0510 */ addiu $t3, %lo(globalDL_0x510) # addiu $t3, $t3, 0x510 -/* 100EAC 7F0CC37C 00002825 */ move $a1, $zero -/* 100EB0 7F0CC380 0FC32EDD */ jal check_load_image_to_buffer -/* 100EB4 7F0CC384 014B2021 */ addu $a0, $t2, $t3 -/* 100EB8 7F0CC388 8E0C0000 */ lw $t4, ($s0) -/* 100EBC 7F0CC38C 3C0D0200 */ lui $t5, %hi(globalDL_0x5b8) # $t5, 0x200 -/* 100EC0 7F0CC390 25AD05B8 */ addiu $t5, %lo(globalDL_0x5b8) # addiu $t5, $t5, 0x5b8 -/* 100EC4 7F0CC394 00002825 */ move $a1, $zero -/* 100EC8 7F0CC398 0FC32EDD */ jal check_load_image_to_buffer -/* 100ECC 7F0CC39C 018D2021 */ addu $a0, $t4, $t5 -/* 100ED0 7F0CC3A0 8E0E0000 */ lw $t6, ($s0) -/* 100ED4 7F0CC3A4 3C0F0200 */ lui $t7, %hi(globalDL_0x660) # $t7, 0x200 -/* 100ED8 7F0CC3A8 25EF0660 */ addiu $t7, %lo(globalDL_0x660) # addiu $t7, $t7, 0x660 -/* 100EDC 7F0CC3AC 00002825 */ move $a1, $zero -/* 100EE0 7F0CC3B0 0FC32EDD */ jal check_load_image_to_buffer -/* 100EE4 7F0CC3B4 01CF2021 */ addu $a0, $t6, $t7 -/* 100EE8 7F0CC3B8 8E180000 */ lw $t8, ($s0) -/* 100EEC 7F0CC3BC 3C190200 */ lui $t9, %hi(globalDL_0x708) # $t9, 0x200 -/* 100EF0 7F0CC3C0 27390708 */ addiu $t9, %lo(globalDL_0x708) # addiu $t9, $t9, 0x708 -/* 100EF4 7F0CC3C4 00002825 */ move $a1, $zero -/* 100EF8 7F0CC3C8 0FC32EDD */ jal check_load_image_to_buffer -/* 100EFC 7F0CC3CC 03192021 */ addu $a0, $t8, $t9 -/* 100F00 7F0CC3D0 8E080000 */ lw $t0, ($s0) -/* 100F04 7F0CC3D4 3C090200 */ lui $t1, %hi(globalDL_0x7b0) # $t1, 0x200 -/* 100F08 7F0CC3D8 252907B0 */ addiu $t1, %lo(globalDL_0x7b0) # addiu $t1, $t1, 0x7b0 -/* 100F0C 7F0CC3DC 00002825 */ move $a1, $zero -/* 100F10 7F0CC3E0 0FC32EDD */ jal check_load_image_to_buffer -/* 100F14 7F0CC3E4 01092021 */ addu $a0, $t0, $t1 -/* 100F18 7F0CC3E8 8E0A0000 */ lw $t2, ($s0) -/* 100F1C 7F0CC3EC 3C0B0200 */ lui $t3, %hi(globalDL_0x858) # $t3, 0x200 -/* 100F20 7F0CC3F0 256B0858 */ addiu $t3, %lo(globalDL_0x858) # addiu $t3, $t3, 0x858 -/* 100F24 7F0CC3F4 00002825 */ move $a1, $zero -/* 100F28 7F0CC3F8 0FC32EDD */ jal check_load_image_to_buffer -/* 100F2C 7F0CC3FC 014B2021 */ addu $a0, $t2, $t3 -/* 100F30 7F0CC400 8E0C0000 */ lw $t4, ($s0) -/* 100F34 7F0CC404 3C0D0200 */ lui $t5, %hi(globalDL_0x900) # $t5, 0x200 -/* 100F38 7F0CC408 25AD0900 */ addiu $t5, %lo(globalDL_0x900) # addiu $t5, $t5, 0x900 -/* 100F3C 7F0CC40C 00002825 */ move $a1, $zero -/* 100F40 7F0CC410 0FC32EDD */ jal check_load_image_to_buffer -/* 100F44 7F0CC414 018D2021 */ addu $a0, $t4, $t5 -/* 100F48 7F0CC418 8E0E0000 */ lw $t6, ($s0) -/* 100F4C 7F0CC41C 3C0F0200 */ lui $t7, %hi(globalDL_0x9a8) # $t7, 0x200 -/* 100F50 7F0CC420 25EF09A8 */ addiu $t7, %lo(globalDL_0x9a8) # addiu $t7, $t7, 0x9a8 -/* 100F54 7F0CC424 00002825 */ move $a1, $zero -/* 100F58 7F0CC428 0FC32EDD */ jal check_load_image_to_buffer -/* 100F5C 7F0CC42C 01CF2021 */ addu $a0, $t6, $t7 -/* 100F60 7F0CC430 8E180000 */ lw $t8, ($s0) -/* 100F64 7F0CC434 3C190200 */ lui $t9, %hi(globalDL_0xa50) # $t9, 0x200 -/* 100F68 7F0CC438 27390A50 */ addiu $t9, %lo(globalDL_0xa50) # addiu $t9, $t9, 0xa50 -/* 100F6C 7F0CC43C 00002825 */ move $a1, $zero -/* 100F70 7F0CC440 0FC32EDD */ jal check_load_image_to_buffer -/* 100F74 7F0CC444 03192021 */ addu $a0, $t8, $t9 -/* 100F78 7F0CC448 3C048009 */ lui $a0, %hi(genericimage) -/* 100F7C 7F0CC44C 8C84D0B8 */ lw $a0, %lo(genericimage)($a0) -/* 100F80 7F0CC450 0FC32F06 */ jal load_image_to_buffer -/* 100F84 7F0CC454 00002825 */ move $a1, $zero -/* 100F88 7F0CC458 00008025 */ move $s0, $zero -/* 100F8C 7F0CC45C 8E480000 */ lw $t0, ($s2) -.L7F0CC460: -/* 100F90 7F0CC460 00002825 */ move $a1, $zero -/* 100F94 7F0CC464 0FC32F06 */ jal load_image_to_buffer -/* 100F98 7F0CC468 02082021 */ addu $a0, $s0, $t0 -/* 100F9C 7F0CC46C 2610000C */ addiu $s0, $s0, 0xc -/* 100FA0 7F0CC470 2A010048 */ slti $at, $s0, 0x48 -/* 100FA4 7F0CC474 5420FFFA */ bnezl $at, .L7F0CC460 -/* 100FA8 7F0CC478 8E480000 */ lw $t0, ($s2) -/* 100FAC 7F0CC47C 00008025 */ move $s0, $zero -/* 100FB0 7F0CC480 2411003C */ li $s1, 60 -/* 100FB4 7F0CC484 8E690000 */ lw $t1, ($s3) -.L7F0CC488: -/* 100FB8 7F0CC488 00002825 */ move $a1, $zero -/* 100FBC 7F0CC48C 0FC32F06 */ jal load_image_to_buffer -/* 100FC0 7F0CC490 02092021 */ addu $a0, $s0, $t1 -/* 100FC4 7F0CC494 2610000C */ addiu $s0, $s0, 0xc -/* 100FC8 7F0CC498 5611FFFB */ bnel $s0, $s1, .L7F0CC488 -/* 100FCC 7F0CC49C 8E690000 */ lw $t1, ($s3) -/* 100FD0 7F0CC4A0 8FBF0024 */ lw $ra, 0x24($sp) -/* 100FD4 7F0CC4A4 8FB00014 */ lw $s0, 0x14($sp) -/* 100FD8 7F0CC4A8 8FB10018 */ lw $s1, 0x18($sp) -/* 100FDC 7F0CC4AC 8FB2001C */ lw $s2, 0x1c($sp) -/* 100FE0 7F0CC4B0 8FB30020 */ lw $s3, 0x20($sp) -/* 100FE4 7F0CC4B4 03E00008 */ jr $ra -/* 100FE8 7F0CC4B8 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - diff --git a/src/game/image_bank.h b/src/game/image_bank.h index d1d20d17..0f19f5ce 100644 --- a/src/game/image_bank.h +++ b/src/game/image_bank.h @@ -8,7 +8,13 @@ extern struct sImageTableEntry *crosshairimage; extern struct sImageTableEntry *mainfolderimages; extern struct sImageTableEntry *genericimage; +extern struct sImageTableEntry *skywaterimages; -void load_prepare_global_image_bank(void); +extern u8* img_curpos; +extern s32 img_bitcount; + +void texReset(void); +u32 texReadBits(s32 bitCount); +void texSetBitstring(s32 pos); #endif diff --git a/src/game/indy_commands.c b/src/game/indy_commands.c index 0398960d..664ad5f6 100644 --- a/src/game/indy_commands.c +++ b/src/game/indy_commands.c @@ -1,7 +1,7 @@ #include #include "indy_commands.h" #include - +#include "rmon.h" // data //D:8004EAC0 s32 D_8004EAC0 = 0; @@ -199,7 +199,7 @@ void indyrescmdSizeNextCmd(s32 readsize,s32 writesize) indy_resource_entry_type1 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 1; + cmd.entry.type = INDY_SIZE; cmd.entry.size = 0x14; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -212,7 +212,7 @@ void indyrescmdSendCmdEnd(s32 readsize,s32 writesize) indy_resource_entry_type2 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 2; + cmd.entry.type = INDY_END; cmd.entry.size = 0x14; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -224,7 +224,7 @@ void indyrescmdInit(s32 readsize,s32 writesize) { indy_resource_entry_type0 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0; + cmd.entry.type = INDY_INIT; cmd.entry.size = 0x14; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -236,7 +236,7 @@ void post_type3_indyrescmd(s32 rsize,s32 wsize,char *strptr) struct indy_resource_entry_type3 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 3; + cmd.entry.type = INDY_RESCMD; cmd.entry.size = 0x114; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; @@ -251,7 +251,7 @@ void post_type4_indyrescmd_data_recieved(s32 readsize,s32 writesize,s32 data) indy_resource_entry_type4 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 4; + cmd.entry.type = INDY_RESCMDDATARCVD; cmd.entry.size = 0x18; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -265,7 +265,7 @@ void indyrescmdCheckFileExists(s32 rsize,s32 wsize,char *name) indy_resource_entry_type5 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 5; + cmd.entry.type = INDY_SENDCHECKFILEEXISTS; cmd.entry.size = 0x114; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; @@ -280,7 +280,7 @@ void post_type6_indyrescmd_printfrecieved(s32 readsize,s32 writesize,u32 data1,u struct indy_resource_entry_type6 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 6; + cmd.entry.type = INDY_RECVCHECKFILEEXISTS; cmd.entry.size = 0x1c; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -295,7 +295,7 @@ void indyrescmdSendFileLoad(u32 rsize,u32 wsize,u8 *filename,u32 size) struct indy_resource_entry_type7 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 7; + cmd.entry.type = INDY_SENDFILELOAD; cmd.entry.size = 0x118; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; @@ -311,7 +311,7 @@ void post_type8_indyrescmd_log_recieved(s32 rsize,s32 wsize,u32 data1,u32 data2, struct indy_resource_entry_type8 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 8; + cmd.entry.type = INDY_LOGRECVD; cmd.entry.size = (cmd2size +3 & ~3)+ 0x20; cmd.entry.readsize = rsize; @@ -329,7 +329,7 @@ void indyrescmdSendDump(s32 rsize,s32 wsize,char *strptr,u32 size2,struct indy_r indy_resource_entry_type9 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 9; + cmd.entry.type = INDY_SENDDUMP; cmd.entry.size = (size2 + 3 & 0xfffffffc) + 0x114; cmd.entry.readsize = rsize; @@ -347,7 +347,7 @@ void post_typeA_indyrescmd_app_command_recieved(s32 readsize,s32 writesize,u32 d indy_resource_entry_typeA cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0xa; + cmd.entry.type = INDY_APPCMDRECVD; cmd.entry.size = 0x18; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -361,7 +361,7 @@ void indyrescmdRamRomLoad(u32 rsize,u32 wsize,char *name,u32 filesize,u32 ptarge indy_resource_entry_typeF cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0xf; + cmd.entry.type = INDY_RAMROMLOAD; cmd.entry.size = 0x11c; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; @@ -380,7 +380,7 @@ void post_type10_indyrescmd_fault_ack_by_host(s32 rsize,s32 wsize,u32 data1,u32 struct indy_resource_entry_type10 cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0x10; + cmd.entry.type = INDY_FAULTACKHOST; cmd.entry.size = 0x20; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; @@ -396,7 +396,7 @@ void indyrescmdSendExportFile(u32 rsize,u32 wsize,u8 *ptrstr,u32 size,u8 *hwaddr indy_resource_entry_typeD cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0xd; + cmd.entry.type = INDY_EXPORTFILE; cmd.entry.size = 0x11c; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; @@ -413,7 +413,7 @@ void post_typeE_indyrescmd_prof_recv(s32 readsize,s32 writesize,u32 data) indy_resource_entry_typeE cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0xe; + cmd.entry.type = INDY_PROFILE_RECV; cmd.entry.size = 0x18; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -427,7 +427,7 @@ void indyrescmdSendHostCmd(s32 rsize,s32 wsize,char *strptr) indy_resource_entry_typeB res; res.entry.resourceID = 0x9abf1623; - res.entry.type = 0xb; + res.entry.type = INDY_SENDHOSTCMD; res.entry.size = 0x414; res.entry.readsize = rsize; res.entry.writesize = wsize; @@ -442,7 +442,7 @@ void post_typeC_indyrescmd_prof_send(s32 readsize,s32 writesize,u32 data) indy_resource_entry_typeC cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0xc; + cmd.entry.type = INDY_PROFILE_SEND; cmd.entry.size = 0x18; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; @@ -456,7 +456,7 @@ void post_typeA_indyrescmd_app_data_recieved(s32 readsize,s32 writesize,u32 data indy_resource_entry_typeA cmd; cmd.entry.resourceID = 0x9abf1623; - cmd.entry.type = 0xA; + cmd.entry.type = INDY_APPCMDRECVD; cmd.entry.size = 0x18; cmd.entry.readsize = readsize; cmd.entry.writesize = writesize; diff --git a/src/game/indy_commands.h b/src/game/indy_commands.h index 9f7c4a5e..b16ed38c 100644 --- a/src/game/indy_commands.h +++ b/src/game/indy_commands.h @@ -2,6 +2,26 @@ #define _INDY_COMMANDS_H_ #include +typedef enum INDYCMDTYPE { + INDY_INIT=0, + INDY_SIZE=1, + INDY_END=2, + INDY_RESCMD=3, + INDY_RESCMDDATARCVD=4, + INDY_SENDCHECKFILEEXISTS=5, + INDY_RECVCHECKFILEEXISTS=6, + INDY_SENDFILELOAD=7, + INDY_LOGRECVD=8, + INDY_SENDDUMP=9, + INDY_APPCMDRECVD=10, + INDY_SENDHOSTCMD=11, + INDY_PROFILE_SEND=12, + INDY_EXPORTFILE=13, + INDY_PROFILE_RECV=14, + INDY_RAMROMLOAD=15, + INDY_FAULTACKHOST=16 +} INDYCMDTYPE; + typedef struct indy_resource_entry_header { u32 resourceID; s32 type; diff --git a/src/game/initBondDATA.c b/src/game/initBondDATA.c index 454de6f3..c1e4ee7d 100644 --- a/src/game/initBondDATA.c +++ b/src/game/initBondDATA.c @@ -129,8 +129,8 @@ void init_player_BONDdata_stats(void) { g_CurrentPlayer->crosshair_x_pos = 0.0f; g_CurrentPlayer->crosshair_y_pos = 0.0f; g_CurrentPlayer->guncrossdamp = 0.9f; - g_CurrentPlayer->field_FFC = 0.0f; - g_CurrentPlayer->field_1000 = 0.0f; + g_CurrentPlayer->field_FFC.x = 0.0f; + g_CurrentPlayer->field_FFC.y = 0.0f; g_CurrentPlayer->gun_azimuth_angle = 0.0f; g_CurrentPlayer->gun_azimuth_turning = 0.0f; g_CurrentPlayer->gunaimdamp = 0.9f; @@ -139,10 +139,10 @@ void init_player_BONDdata_stats(void) { g_CurrentPlayer->unk1018 = 0.0f; g_CurrentPlayer->copiedgoldeneye = FALSE; g_CurrentPlayer->magnetattracttime = -1; - g_CurrentPlayer->field_106C = 0.0f; - g_CurrentPlayer->field_1070 = 0.0f; - g_CurrentPlayer->field_1074 = 0.0f; - g_CurrentPlayer->field_1078 = 0; + g_CurrentPlayer->gunsync = 0.0f; + g_CurrentPlayer->syncchange = 0.0f; + g_CurrentPlayer->synccount = 0.0f; + g_CurrentPlayer->syncoffset = 0; g_CurrentPlayer->field_107C = 0.0f; g_CurrentPlayer->field_1080 = 0.0f; bgunCalculateBlend(GUNRIGHT); diff --git a/src/game/initBondDATAdefaults.c b/src/game/initBondDATAdefaults.c index 972e330b..a716a985 100644 --- a/src/game/initBondDATAdefaults.c +++ b/src/game/initBondDATAdefaults.c @@ -80,7 +80,7 @@ void sets_a_bunch_of_BONDdata_values_to_default(void) modelSetScale(&g_CurrentPlayer->model, IDO_POINT_ONE); #if defined (BUGFIX_R1) - sub_GAME_7F06FF18(&g_CurrentPlayer->model, ANIMRATE, 0.0f); + modelSetAnimRateForDuration(&g_CurrentPlayer->model, ANIMRATE, 0.0f); #endif g_CurrentPlayer->headanim = 0; @@ -146,11 +146,11 @@ void sets_a_bunch_of_BONDdata_values_to_default(void) sub_GAME_7F0062C0( // match hack: addu address calculated backwards (void*)((s32)g_BondMoveAnimationSetup[i].anim_id + (s32)&ptr_animation_table->data), - (s32)g_BondMoveAnimationSetup[i].unk04, - (s32)g_BondMoveAnimationSetup[i].unk08, + (s32)g_BondMoveAnimationSetup[i].loopframe, + (s32)g_BondMoveAnimationSetup[i].endframe, &spD0); - g_BondMoveAnimationSetup[i].unk0C = (f32) (((f32) spD0[2] * IDO_POINT_ONE) / (g_BondMoveAnimationSetup[i].unk08 - g_BondMoveAnimationSetup[i].unk04)); + g_BondMoveAnimationSetup[i].unk0C = (f32) (((f32) spD0[2] * IDO_POINT_ONE) / (g_BondMoveAnimationSetup[i].endframe - g_BondMoveAnimationSetup[i].loopframe)); } sp90 = D_8002A790; @@ -161,26 +161,26 @@ void sets_a_bunch_of_BONDdata_values_to_default(void) matrix_4x4_set_identity(&sp50); sp90.unk_matrix = &sp50; - sp90.mtxlist = &g_CurrentPlayer->field_6D0; + sp90.mtxlist = &g_CurrentPlayer->bondheadmatrices[0]; subcalcmatrices(&sp90, &g_CurrentPlayer->model); - g_CurrentPlayer->standheight = g_CurrentPlayer->field_704; + g_CurrentPlayer->standheight = g_CurrentPlayer->bondheadmatrices[0].m[3][1]; g_CurrentPlayer->standbodyoffset.x = 0.0f; - g_CurrentPlayer->standbodyoffset.y = g_CurrentPlayer->field_744 - g_CurrentPlayer->field_704; - g_CurrentPlayer->standbodyoffset.z = g_CurrentPlayer->field_748 - g_CurrentPlayer->field_708; + g_CurrentPlayer->standbodyoffset.y = g_CurrentPlayer->bondheadmatrices[1].m[3][1] - g_CurrentPlayer->bondheadmatrices[0].m[3][1]; + g_CurrentPlayer->standbodyoffset.z = g_CurrentPlayer->bondheadmatrices[1].m[3][2] - g_CurrentPlayer->bondheadmatrices[0].m[3][2]; modelSetAnimation( &g_CurrentPlayer->model, // match hack: addu address calculated backwards (struct ModelAnimation *) ((s32)g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].anim_id + (s32)&ptr_animation_table->data), 0, - g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk04, + g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe, 0.5f, 0.0f); - modelSetAnimLooping(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk04, 0.0f); - modelSetAnimEndFrame(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].unk08); + modelSetAnimLooping(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].loopframe, 0.0f); + modelSetAnimEndFrame(&g_CurrentPlayer->model, g_BondMoveAnimationSetup[g_CurrentPlayer->headanim].endframe); modelSetAnimFlipFunction(&g_CurrentPlayer->model, bheadFlipAnimation); bheadUpdateIdleRoll(); diff --git a/src/game/initactorpropstuff.c b/src/game/initactorpropstuff.c index d39b57b5..96ededeb 100644 --- a/src/game/initactorpropstuff.c +++ b/src/game/initactorpropstuff.c @@ -33,8 +33,23 @@ void reset_counter_rand_body_head(void) #ifdef NONMATCHING -void sub_GAME_7F0001F0(void) { - +//close, ops swapped +//34d80: addu s1,s1,v0 | 34d80: addiu s0,s0,1 +//34d84: addiu s0,s0,1 | 34d84: addu s1,s1,v0 +u32 sub_GAME_7F0001F0(void *ani,int aniid,int param_3) +{ + short asStack8 [4]; + u32 uVar1; + u32 i; + + + i = 0; + while (aniid < param_3) { + uVar1 = sub_GAME_7F06D2E4(0,0,&skeleton_guard,ani,aniid,asStack8); + aniid=1+aniid; + i = i + uVar1 & 0xffff; + } + return i; } #else GLOBAL_ASM( @@ -142,6 +157,7 @@ glabel sub_GAME_7F000290 #ifdef NONMATCHING +//pd is raceInitAnimGroup void sub_GAME_7F00032C(void) { } @@ -244,44 +260,17 @@ glabel sub_GAME_7F00032C #endif +//pd is raceInitAnimGroups +void sub_GAME_7F00046C(struct attackanimgroup **groups) +{ + s32 i; -#ifdef NONMATCHING -void sub_GAME_7F00046C(void) { - // Same as PD's func0f00052c + for (i = 0; i < 32; i++) { + if (groups[i]->len < 0) { + groups[i]->len = sub_GAME_7F00032C(groups[i]->animcfg); + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F00046C -/* 034F9C 7F00046C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 034FA0 7F000470 AFB20020 */ sw $s2, 0x20($sp) -/* 034FA4 7F000474 AFB1001C */ sw $s1, 0x1c($sp) -/* 034FA8 7F000478 AFB00018 */ sw $s0, 0x18($sp) -/* 034FAC 7F00047C AFBF0024 */ sw $ra, 0x24($sp) -/* 034FB0 7F000480 00808025 */ move $s0, $a0 -/* 034FB4 7F000484 00008825 */ move $s1, $zero -/* 034FB8 7F000488 24120080 */ li $s2, 128 -.L7F00048C: -/* 034FBC 7F00048C 8E020000 */ lw $v0, ($s0) -/* 034FC0 7F000490 8C4E0004 */ lw $t6, 4($v0) -/* 034FC4 7F000494 05C30006 */ bgezl $t6, .L7F0004B0 -/* 034FC8 7F000498 26310004 */ addiu $s1, $s1, 4 -/* 034FCC 7F00049C 0FC000CB */ jal sub_GAME_7F00032C -/* 034FD0 7F0004A0 8C440000 */ lw $a0, ($v0) -/* 034FD4 7F0004A4 8E0F0000 */ lw $t7, ($s0) -/* 034FD8 7F0004A8 ADE20004 */ sw $v0, 4($t7) -/* 034FDC 7F0004AC 26310004 */ addiu $s1, $s1, 4 -.L7F0004B0: -/* 034FE0 7F0004B0 1632FFF6 */ bne $s1, $s2, .L7F00048C -/* 034FE4 7F0004B4 26100004 */ addiu $s0, $s0, 4 -/* 034FE8 7F0004B8 8FBF0024 */ lw $ra, 0x24($sp) -/* 034FEC 7F0004BC 8FB00018 */ lw $s0, 0x18($sp) -/* 034FF0 7F0004C0 8FB1001C */ lw $s1, 0x1c($sp) -/* 034FF4 7F0004C4 8FB20020 */ lw $s2, 0x20($sp) -/* 034FF8 7F0004C8 03E00008 */ jr $ra -/* 034FFC 7F0004CC 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif @@ -640,8 +629,8 @@ void sub_GAME_7F000980(void) { #endif void sub_GAME_7F0009A0(void) { - u32 *end = &dword_CODE_bss_80075DC8[20]; - u32 *ptr = &dword_CODE_bss_80075DC8[0]; + u32 *end = &g_Casings[20]; + u32 *ptr = &g_Casings[0]; while(end > ptr) { ptr[POS] = 0; ptr += POS+1; diff --git a/src/game/initactorpropstuff.h b/src/game/initactorpropstuff.h index 957c0f40..e6d96326 100644 --- a/src/game/initactorpropstuff.h +++ b/src/game/initactorpropstuff.h @@ -3,6 +3,31 @@ #include +struct attackanimconfig { + /*0x00*/ s16 animnum; + /*0x04*/ f32 unk04; + /*0x08*/ f32 unk08; + /*0x0c*/ f32 unk0c; + /*0x10*/ f32 unk10; // frame number + /*0x14*/ f32 unk14; // frame number + /*0x18*/ f32 unk18; // frame number + /*0x1c*/ f32 unk1c; // frame number + /*0x20*/ f32 unk20; // frame number + /*0x24*/ f32 unk24; // frame number + /*0x28*/ f32 unk28; // frame number + /*0x2c*/ f32 unk2c; // frame number + /*0x30*/ f32 unk30; + /*0x34*/ f32 unk34; + /*0x38*/ f32 unk38; + /*0x3c*/ f32 unk3c; + /*0x40*/ f32 unk40; + /*0x44*/ f32 unk44; +}; +struct attackanimgroup { + struct attackanimconfig *animcfg; + s32 len; +}; + void sub_GAME_7F0009A0(void); #endif diff --git a/src/game/initanitable.c b/src/game/initanitable.c index e9608627..f41fc750 100644 --- a/src/game/initanitable.c +++ b/src/game/initanitable.c @@ -1,7 +1,7 @@ #include #include #include "initanitable.h" - +#include "objecthandler.h" //bss char dword_CODE_bss_80069170[0x2D0]; @@ -11,7 +11,11 @@ OSMesg animMesg[8]; struct animation_table_data * ptr_animation_table; //data -void * D_80029D60[] = {NULL, &dword_CODE_bss_80069170, &dword_CODE_bss_80069170}; +struct bondstruct_unk_animation_related D_80029D60 = { + NULL, + &dword_CODE_bss_80069170, + &dword_CODE_bss_80069170 +}; s32 animation_table_ptrs1[] = { PTR_ANIM_idle, @@ -268,19 +272,22 @@ glabel expand_ani_table_entries ) #endif - +extern u8* _animation_dataSegmentRomStart; +extern u8* _animation_dataSegmentStart; +extern u8* _animation_dataSegmentEnd; #ifdef NONMATCHING void alloc_load_expand_ani_table(void) { - s32 temp_a2; - ? temp_ret; + //u32 sp18; + u32 size; + //void *temp_v0; - // Node 0 osCreateMesgQueue(&animMsgQ, &animMesg, 8); sub_GAME_7F0009E0(&D_80029D60, &animMsgQ, &dword_CODE_bss_80069458); - temp_a2 = (&0x0000E7E0 - 0); - temp_ret = mempAllocBytesInBank(temp_a2, 6, temp_a2); - ptr_animation_table = temp_ret; - romCopy(temp_ret, &_animation_dataSegmentRomStart, sp18); + size = ((u32)_animation_dataSegmentEnd - (u32)_animation_dataSegmentStart); + //sp18 = size; + //temp_v0 = mempAllocBytesInBank(size, 6U); + ptr_animation_table = mempAllocBytesInBank(size, 6U); + romCopy(ptr_animation_table, &_animation_dataSegmentRomStart, size); expand_ani_table_entries(&animation_table_ptrs1); expand_ani_table_entries(&animation_table_ptrs2); } diff --git a/src/game/initanitable.h b/src/game/initanitable.h index 74cd256c..49b55b00 100644 --- a/src/game/initanitable.h +++ b/src/game/initanitable.h @@ -37,5 +37,4 @@ extern s32 animation_table_ptrs1[]; */ extern s32 animation_table_ptrs2[]; - #endif diff --git a/src/game/initexplosioncasing.c b/src/game/initexplosioncasing.c index a637de02..7984c925 100644 --- a/src/game/initexplosioncasing.c +++ b/src/game/initexplosioncasing.c @@ -12,7 +12,7 @@ void alloc_explosion_smoke_casing_scorch_impact_buffers(void) numExplosionEntries = 0; numSmokeEntries = 0; - numCasingEntries = 0; + numParticleEntries = 0; numScorchEntries = 0; numImpactEntries = 0; D_80040178 = 1.0f; @@ -43,6 +43,7 @@ void alloc_explosion_smoke_casing_scorch_impact_buffers(void) if (getPlayerCount() == 1) { + // scorches are the circle burn marks left on the ground from explosions ptr_scorch_buf = (struct Scorch*)mempAllocBytesInBank(SCORCH_BUFFER_LEN * sizeof(struct Scorch), 4); for (i=0; i> 1; + max_particles = (s32) max_particles >> 1; } - ptr_ejected_casing_buf = (struct EjectedCasing*)mempAllocBytesInBank(((max_casings * sizeof(struct EjectedCasing)) + 0xF) & ~0xF, 4); + ptr_flying_particles_buf = (struct FlyingParticles*)mempAllocBytesInBank(((max_particles * sizeof(struct FlyingParticles)) + 0xF) & ~0xF, 4); - for (i=0; i -extern image_entries; +extern g_Textures; #ifdef NONMATCHING void image_entries_load(void) { @@ -11,13 +11,13 @@ void image_entries_load(void) { uint uVar5; uint uVar6; - piVar1 = image_entries; + piVar1 = g_Textures; uVar3 = 0; - piVar2 = image_entries; - if (image_entries[0].size != -1) //this (& 0xFFFFFF) is auto genrated by bitfield + piVar2 = g_Textures; + if (g_Textures[0].size != -1) //this (& 0xFFFFFF) is auto genrated by bitfield { - uVar5 = image_entries[0].size; - uVar4 = image_entries[0].size; + uVar5 = g_Textures[0].size; + uVar4 = g_Textures[0].size; do { uVar6 = (uVar3 ^ uVar4) ^ uVar4; @@ -37,8 +37,8 @@ void image_entries_load(void) { GLOBAL_ASM( .text glabel image_entries_load -/* 035700 7F000BD0 3C048005 */ lui $a0, %hi(image_entries) -/* 035704 7F000BD4 24829300 */ addiu $v0, $a0, %lo(image_entries) +/* 035700 7F000BD0 3C048005 */ lui $a0, %hi(g_Textures) +/* 035704 7F000BD4 24829300 */ addiu $v0, $a0, %lo(g_Textures) /* 035708 7F000BD8 8C4E0000 */ lw $t6, ($v0) /* 03570C 7F000BDC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff /* 035710 7F000BE0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff @@ -46,8 +46,8 @@ glabel image_entries_load /* 035718 7F000BE8 01C17824 */ and $t7, $t6, $at /* 03571C 7F000BEC 10EF0014 */ beq $a3, $t7, .L7F000C40 /* 035720 7F000BF0 00001825 */ move $v1, $zero -/* 035724 7F000BF4 3C188005 */ lui $t8, %hi(image_entries) -/* 035728 7F000BF8 27189300 */ addiu $t8, %lo(image_entries) # addiu $t8, $t8, -0x6d00 +/* 035724 7F000BF4 3C188005 */ lui $t8, %hi(g_Textures) +/* 035728 7F000BF8 27189300 */ addiu $t8, %lo(g_Textures) # addiu $t8, $t8, -0x6d00 /* 03572C 7F000BFC 8F050000 */ lw $a1, ($t8) /* 035730 7F000C00 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff /* 035734 7F000C04 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff diff --git a/src/game/initmenus.c b/src/game/initmenus.c index ca603508..3ebcf6fd 100644 --- a/src/game/initmenus.c +++ b/src/game/initmenus.c @@ -7,6 +7,7 @@ void init_menus_or_reset(void) { + s32 i; current_menu = ~MENU_LEGAL_SCREEN; maybe_prev_menu = ~MENU_LEGAL_SCREEN; screen_size = SCREEN_SIZE_320x240; @@ -15,9 +16,9 @@ void init_menus_or_reset(void) 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; + tab_start_highlight = FALSE; + tab_next_highlight = FALSE; + tab_prev_highlight = FALSE; maybe_is_in_menu = TRUE; if (prev_keypresses) @@ -35,14 +36,15 @@ void init_menus_or_reset(void) #if defined(VERSION_EU) ptr_menu_videobuffer = mempAllocBytesInBank(0x55040, 4); #else - ptr_menu_videobuffer = mempAllocBytesInBank(0x4b040, 4); + ptr_menu_videobuffer = mempAllocBytesInBank(0x4b040, 4); #endif + ptr_menu_videobuffer = ALIGN64_V1(ptr_menu_videobuffer); - ptr_folder_object_instance = 0x0; - set0_never_used = 0; - set0_never_used_0 = 0; - D_8002A968 = 0; + for (i = 0; i < 4; i++) + { + walletinst[i] = NULL; + } alloc_intro_matrices(); -} +} \ No newline at end of file diff --git a/src/game/initmttex.c b/src/game/initmttex.c index 3262c57a..f1418c44 100644 --- a/src/game/initmttex.c +++ b/src/game/initmttex.c @@ -5,12 +5,12 @@ void set_mt_tex_alloc(void) { - dword_CODE_bss_8008D090 = 0; + g_TexCacheCount = 0; if (tokenFind(1, "-mt")) { bytes = strtol(tokenFind(1, "-mt"), 0x0, 0) << 10; } - sub_GAME_7F0CBAF4(&ptr_texture_alloc_start, mempAllocBytesInBank(bytes, 4), bytes); + texInitPool(&ptr_texture_alloc_start, mempAllocBytesInBank(bytes, 4), bytes); } diff --git a/src/game/initobjects.c b/src/game/initobjects.c index 5f74fd96..8326419b 100644 --- a/src/game/initobjects.c +++ b/src/game/initobjects.c @@ -221,7 +221,7 @@ void initialize_temp_mine_table(void) for (i=0; i<30; i++) { - temp_mine_table[i] = 0; + temp_mine_table[i] = NULL; } } diff --git a/src/game/initpathtablelinks.c b/src/game/initpathtablelinks.c index 8629b9cc..f0038f5b 100644 --- a/src/game/initpathtablelinks.c +++ b/src/game/initpathtablelinks.c @@ -13,8 +13,8 @@ GLOBAL_ASM( glabel init_path_table_links /* 03B3C0 7F006890 27BDFF20 */ addiu $sp, $sp, -0xe0 /* 03B3C4 7F006894 AFB40028 */ sw $s4, 0x28($sp) -/* 03B3C8 7F006898 3C148007 */ lui $s4, %hi(g_chraiCurrentSetup+0) -/* 03B3CC 7F00689C 26945D00 */ addiu $s4, %lo(g_chraiCurrentSetup+0) # addiu $s4, $s4, 0x5d00 +/* 03B3C8 7F006898 3C148007 */ lui $s4, %hi(g_CurrentSetup+0) +/* 03B3CC 7F00689C 26945D00 */ addiu $s4, %lo(g_CurrentSetup+0) # addiu $s4, $s4, 0x5d00 /* 03B3D0 7F0068A0 AFB00018 */ sw $s0, 0x18($sp) /* 03B3D4 7F0068A4 8E900000 */ lw $s0, ($s4) /* 03B3D8 7F0068A8 8E8E0004 */ lw $t6, 4($s4) diff --git a/src/game/initunk_0009E0.c b/src/game/initunk_0009E0.c index fdc81fef..05f277be 100644 --- a/src/game/initunk_0009E0.c +++ b/src/game/initunk_0009E0.c @@ -1,10 +1,9 @@ #include #include "objecthandler.h" - -void sub_GAME_7F0009E0(s32 arg0, s32 arg1, s32 arg2) { +void sub_GAME_7F0009E0(struct bondstruct_unk_animation_related* arg0, OSMesgQueue* mq, s32 arg2) { D_80036414 = arg0; - D_80036418 = arg1; + D_80036418 = mq; D_8003641C = arg2; } diff --git a/src/game/lightfixture.c b/src/game/lightfixture.c index ae33739b..f6461bfa 100644 --- a/src/game/lightfixture.c +++ b/src/game/lightfixture.c @@ -1,147 +1,98 @@ #include #include "lightfixture.h" +#include "bg.h" +#include "unk_0A1DA0.h" #include #include +#include - +#define LIGHTFIXTURE_TABLE_MAX 0x64 +#define DARKENED_LIGHT_TABLE_MAX 0x200 // bss //CODE.bss:80082660 -s_lightfixture light_fixture_table[0x64]; +s_lightfixture light_fixture_table[LIGHTFIXTURE_TABLE_MAX]; //CODE.bss:80082B10 s16 cur_entry_lightfixture_table; //CODE.bss:80082B12 s16 index_of_cur_entry_lightfixture_table; //CODE.bss:80082B14 .align 3 //CODE.bss:80082B18 -s16 word_CODE_bss_80082B18[0x400]; +struct s_darkened_light darkened_light_table[DARKENED_LIGHT_TABLE_MAX]; // a table containing the vertices of lights that were shot, and therefore, darkened //CODE.bss:80083318 s32 dword_CODE_bss_80083318; // data //D:80046030 -s32 D_80046030 = 0; +s32 cur_entry_darkened_light_table = 0; s32 D_80046034[] = {0, 0, 0, 0, 0, 0, 0}; -//this mostly matches 4 bytes different -#ifdef NONMATCHING void init_lightfixture_tables(void) { s32 i; - for (i=0;i<0x64;i++) {light_fixture_table[i].index = 0;} - for (i=0;i<0x400;i++) {word_CODE_bss_80082B18[i] = 0;} - D_80046030[0] = 0; -} -#else -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel init_lightfixture_tables -/* 0F0000 7F0BB4D0 3C038008 */ lui $v1, %hi(light_fixture_table) -/* 0F0004 7F0BB4D4 3C028008 */ lui $v0, %hi(cur_entry_lightfixture_table) -/* 0F0008 7F0BB4D8 24422B10 */ addiu $v0, %lo(cur_entry_lightfixture_table) # addiu $v0, $v0, 0x2b10 -/* 0F000C 7F0BB4DC 24632660 */ addiu $v1, %lo(light_fixture_table) # addiu $v1, $v1, 0x2660 -.L7F0BB4E0: -/* 0F0010 7F0BB4E0 2463000C */ addiu $v1, $v1, 0xc -/* 0F0014 7F0BB4E4 0062082B */ sltu $at, $v1, $v0 -/* 0F0018 7F0BB4E8 1420FFFD */ bnez $at, .L7F0BB4E0 -/* 0F001C 7F0BB4EC A460FFF4 */ sh $zero, -0xc($v1) -/* 0F0020 7F0BB4F0 3C038008 */ lui $v1, %hi(word_CODE_bss_80082B18) -/* 0F0024 7F0BB4F4 3C028008 */ lui $v0, %hi(dword_CODE_bss_80083318) -/* 0F0028 7F0BB4F8 24423318 */ addiu $v0, %lo(dword_CODE_bss_80083318) # addiu $v0, $v0, 0x3318 -/* 0F002C 7F0BB4FC 24632B18 */ addiu $v1, %lo(word_CODE_bss_80082B18) # addiu $v1, $v1, 0x2b18 -.L7F0BB500: - /*v1 offsets don't match*/ -/* 0F0030 7F0BB500 24630010 */ addiu $v1, $v1, 0x10 -/* 0F0034 7F0BB504 A460FFF4 */ sh $zero, -0xc($v1) -/* 0F0038 7F0BB508 A460FFF8 */ sh $zero, -8($v1) -/* 0F003C 7F0BB50C A460FFFC */ sh $zero, -4($v1) -/* 0F0040 7F0BB510 1462FFFB */ bne $v1, $v0, .L7F0BB500 -/* 0F0044 7F0BB514 A460FFF0 */ sh $zero, -0x10($v1) -/* 0F0048 7F0BB518 3C018004 */ lui $at, %hi(D_80046030) -/* 0F004C 7F0BB51C 03E00008 */ jr $ra -/* 0F0050 7F0BB520 AC206030 */ sw $zero, %lo(D_80046030)($at) -) -#endif -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel init_lightfixture_tables -/* 0ED2C0 7F0BA8D0 3C038007 */ lui $v1, %hi(light_fixture_table) # $v1, 0x8007 -/* 0ED2C4 7F0BA8D4 3C028007 */ lui $v0, %hi(cur_entry_lightfixture_table) # $v0, 0x8007 -/* 0ED2C8 7F0BA8D8 2442D480 */ addiu $v0, %lo(cur_entry_lightfixture_table) # addiu $v0, $v0, -0x2b80 -/* 0ED2CC 7F0BA8DC 2463CFD0 */ addiu $v1, %lo(light_fixture_table) # addiu $v1, $v1, -0x3030 -.L7F0BA8E0: -/* 0ED2D0 7F0BA8E0 2463000C */ addiu $v1, $v1, 0xc -/* 0ED2D4 7F0BA8E4 0062082B */ sltu $at, $v1, $v0 -/* 0ED2D8 7F0BA8E8 1420FFFD */ bnez $at, .L7F0BA8E0 -/* 0ED2DC 7F0BA8EC A460FFF4 */ sh $zero, -0xc($v1) -/* 0ED2E0 7F0BA8F0 3C038007 */ lui $v1, %hi(word_CODE_bss_80082B18) # $v1, 0x8007 -/* 0ED2E4 7F0BA8F4 3C028007 */ lui $v0, %hi(dword_CODE_bss_80083318) # $v0, 0x8007 -/* 0ED2E8 7F0BA8F8 2442DC88 */ addiu $v0, %lo(dword_CODE_bss_80083318) # addiu $v0, $v0, -0x2378 -/* 0ED2EC 7F0BA8FC 2463D488 */ addiu $v1, %lo(word_CODE_bss_80082B18) # addiu $v1, $v1, -0x2b78 -.L7F0BA900: -/* 0ED2F0 7F0BA900 24630010 */ addiu $v1, $v1, 0x10 -/* 0ED2F4 7F0BA904 A460FFF4 */ sh $zero, -0xc($v1) -/* 0ED2F8 7F0BA908 A460FFF8 */ sh $zero, -8($v1) -/* 0ED2FC 7F0BA90C A460FFFC */ sh $zero, -4($v1) -/* 0ED300 7F0BA910 1462FFFB */ bne $v1, $v0, .L7F0BA900 -/* 0ED304 7F0BA914 A460FFF0 */ sh $zero, -0x10($v1) -/* 0ED308 7F0BA918 3C018004 */ lui $at, 0x8004 -/* 0ED30C 7F0BA91C 03E00008 */ jr $ra -/* 0ED310 7F0BA920 AC20EAA0 */ sw $zero, -0x1560($at) -) -#endif -#endif + for (i = 0; i < LIGHTFIXTURE_TABLE_MAX; i++) + { + light_fixture_table[i].room_index = 0; + } + + for (i = 0; i < DARKENED_LIGHT_TABLE_MAX; i++) + { + darkened_light_table[i].room_index = 0; + } + + cur_entry_darkened_light_table = 0; +} s32 get_index_of_current_entry_in_init_lightfixture_table(void) { s32 i; - for (i = 0; i != 0x64; i++) + for (i = 0; i != LIGHTFIXTURE_TABLE_MAX; i++) { - if (light_fixture_table[i].index == 0) + if (light_fixture_table[i].room_index == 0) { return i; } } - return 0x64; + return LIGHTFIXTURE_TABLE_MAX; } void add_entry_to_init_lightfixture_table(Gfx *DL) { - cur_entry_lightfixture_table = get_index_of_current_entry_in_init_lightfixture_table(); - if (cur_entry_lightfixture_table != 100) { - light_fixture_table[cur_entry_lightfixture_table].index = index_of_cur_entry_lightfixture_table; - light_fixture_table[cur_entry_lightfixture_table].ptr_start_pertinent_DL = DL; - } + cur_entry_lightfixture_table = get_index_of_current_entry_in_init_lightfixture_table(); + if (cur_entry_lightfixture_table != LIGHTFIXTURE_TABLE_MAX) + { + light_fixture_table[cur_entry_lightfixture_table].room_index = index_of_cur_entry_lightfixture_table; + light_fixture_table[cur_entry_lightfixture_table].ptr_start_pertinent_DL = DL; + } } void save_ptrDL_enpoint_to_current_init_lightfixture_table(Gfx *param_1) { - if (cur_entry_lightfixture_table != 100) { - light_fixture_table[cur_entry_lightfixture_table].ptr_end_pertinent_DL = param_1; - } + if (cur_entry_lightfixture_table != LIGHTFIXTURE_TABLE_MAX) + { + light_fixture_table[cur_entry_lightfixture_table].ptr_end_pertinent_DL = param_1; + } } s32 check_if_imageID_is_light(s32 imageID) { - if ((imageID == IMAGE_WALL_LAMP) || - (imageID == IMAGE_203_LIGHT) || - (imageID == IMAGE_205_LIGHT) || - (imageID == IMAGE_252_LIGHT) || - (imageID == IMAGE_PANEL_LAMP) || - (imageID == IMAGE_255_LIGHT) || - (imageID == IMAGE_256_LIGHT) || - (imageID == IMAGE_HANGING_LAMP) || - (imageID == IMAGE_NEON_LAMP) || + if ((imageID == IMAGE_WALL_LAMP) || + (imageID == IMAGE_203_LIGHT) || + (imageID == IMAGE_205_LIGHT) || + (imageID == IMAGE_252_LIGHT) || + (imageID == IMAGE_PANEL_LAMP) || + (imageID == IMAGE_255_LIGHT) || + (imageID == IMAGE_256_LIGHT) || + (imageID == IMAGE_HANGING_LAMP) || + (imageID == IMAGE_NEON_LAMP) || (imageID == IMAGE_LINEAR_LAMP)) { // Will darken when shot @@ -154,1195 +105,378 @@ s32 check_if_imageID_is_light(s32 imageID) } - - - - -#ifdef NONMATCHING -void return_ptr_vertex_of_entry_room(void) { - -} -#else -GLOBAL_ASM( -.text -glabel return_ptr_vertex_of_entry_room -/* 0F01C4 7F0BB694 808E0000 */ lb $t6, ($a0) -/* 0F01C8 7F0BB698 24020004 */ li $v0, 4 -/* 0F01CC 7F0BB69C 0005C880 */ sll $t9, $a1, 2 -/* 0F01D0 7F0BB6A0 104E0005 */ beq $v0, $t6, .L7F0BB6B8 -/* 0F01D4 7F0BB6A4 0325C821 */ addu $t9, $t9, $a1 -/* 0F01D8 7F0BB6A8 808FFFF8 */ lb $t7, -8($a0) -.L7F0BB6AC: -/* 0F01DC 7F0BB6AC 2484FFF8 */ addiu $a0, $a0, -8 -/* 0F01E0 7F0BB6B0 544FFFFE */ bnel $v0, $t7, .L7F0BB6AC -/* 0F01E4 7F0BB6B4 808FFFF8 */ lb $t7, -8($a0) -.L7F0BB6B8: -/* 0F01E8 7F0BB6B8 8C830004 */ lw $v1, 4($a0) -/* 0F01EC 7F0BB6BC 3C01FF00 */ lui $at, 0xff00 -/* 0F01F0 7F0BB6C0 0019C900 */ sll $t9, $t9, 4 -/* 0F01F4 7F0BB6C4 0061C024 */ and $t8, $v1, $at -/* 0F01F8 7F0BB6C8 3C010E00 */ lui $at, 0xe00 -/* 0F01FC 7F0BB6CC 17010007 */ bne $t8, $at, .L7F0BB6EC -/* 0F0200 7F0BB6D0 3C088004 */ lui $t0, %hi(array_room_info + 0x4) -/* 0F0204 7F0BB6D4 01194021 */ addu $t0, $t0, $t9 -/* 0F0208 7F0BB6D8 8D081418 */ lw $t0, %lo(array_room_info + 0x4)($t0) -/* 0F020C 7F0BB6DC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 0F0210 7F0BB6E0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0F0214 7F0BB6E4 00614824 */ and $t1, $v1, $at -/* 0F0218 7F0BB6E8 01091821 */ addu $v1, $t0, $t1 -.L7F0BB6EC: -/* 0F021C 7F0BB6EC 03E00008 */ jr $ra -/* 0F0220 7F0BB6F0 00601025 */ move $v0, $v1 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BB6F4(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:80058D80*/ -glabel jpt_80058D80 -.word .L7F0BB714 -.word .L7F0BB7C0 -.word .L7F0BB7EC -.word .L7F0BB818 -.word .L7F0BB844 -.text -glabel sub_GAME_7F0BB6F4 -/* 0F0224 7F0BB6F4 2CA10005 */ sltiu $at, $a1, 5 -/* 0F0228 7F0BB6F8 1020005C */ beqz $at, .L7F0BB86C -/* 0F022C 7F0BB6FC 00057080 */ sll $t6, $a1, 2 -/* 0F0230 7F0BB700 3C018006 */ lui $at, %hi(jpt_80058D80) -/* 0F0234 7F0BB704 002E0821 */ addu $at, $at, $t6 -/* 0F0238 7F0BB708 8C2E8D80 */ lw $t6, %lo(jpt_80058D80)($at) -/* 0F023C 7F0BB70C 01C00008 */ jr $t6 -/* 0F0240 7F0BB710 00000000 */ nop -.L7F0BB714: -/* 0F0244 7F0BB714 2402000A */ li $v0, 10 -/* 0F0248 7F0BB718 908F0005 */ lbu $t7, 5($a0) -/* 0F024C 7F0BB71C 01E2001A */ div $zero, $t7, $v0 -/* 0F0250 7F0BB720 0000C012 */ mflo $t8 -/* 0F0254 7F0BB724 ACD80000 */ sw $t8, ($a2) -/* 0F0258 7F0BB728 90990006 */ lbu $t9, 6($a0) -/* 0F025C 7F0BB72C 14400002 */ bnez $v0, .L7F0BB738 -/* 0F0260 7F0BB730 00000000 */ nop -/* 0F0264 7F0BB734 0007000D */ break 7 -.L7F0BB738: -/* 0F0268 7F0BB738 2401FFFF */ li $at, -1 -/* 0F026C 7F0BB73C 14410004 */ bne $v0, $at, .L7F0BB750 -/* 0F0270 7F0BB740 3C018000 */ lui $at, 0x8000 -/* 0F0274 7F0BB744 15E10002 */ bne $t7, $at, .L7F0BB750 -/* 0F0278 7F0BB748 00000000 */ nop -/* 0F027C 7F0BB74C 0006000D */ break 6 -.L7F0BB750: -/* 0F0280 7F0BB750 0322001A */ div $zero, $t9, $v0 -/* 0F0284 7F0BB754 00004012 */ mflo $t0 -/* 0F0288 7F0BB758 ACE80000 */ sw $t0, ($a3) -/* 0F028C 7F0BB75C 90890007 */ lbu $t1, 7($a0) -/* 0F0290 7F0BB760 14400002 */ bnez $v0, .L7F0BB76C -/* 0F0294 7F0BB764 00000000 */ nop -/* 0F0298 7F0BB768 0007000D */ break 7 -.L7F0BB76C: -/* 0F029C 7F0BB76C 2401FFFF */ li $at, -1 -/* 0F02A0 7F0BB770 14410004 */ bne $v0, $at, .L7F0BB784 -/* 0F02A4 7F0BB774 3C018000 */ lui $at, 0x8000 -/* 0F02A8 7F0BB778 17210002 */ bne $t9, $at, .L7F0BB784 -/* 0F02AC 7F0BB77C 00000000 */ nop -/* 0F02B0 7F0BB780 0006000D */ break 6 -.L7F0BB784: -/* 0F02B4 7F0BB784 0122001A */ div $zero, $t1, $v0 -/* 0F02B8 7F0BB788 8FAB0010 */ lw $t3, 0x10($sp) -/* 0F02BC 7F0BB78C 00005012 */ mflo $t2 -/* 0F02C0 7F0BB790 14400002 */ bnez $v0, .L7F0BB79C -/* 0F02C4 7F0BB794 00000000 */ nop -/* 0F02C8 7F0BB798 0007000D */ break 7 -.L7F0BB79C: -/* 0F02CC 7F0BB79C 2401FFFF */ li $at, -1 -/* 0F02D0 7F0BB7A0 14410004 */ bne $v0, $at, .L7F0BB7B4 -/* 0F02D4 7F0BB7A4 3C018000 */ lui $at, 0x8000 -/* 0F02D8 7F0BB7A8 15210002 */ bne $t1, $at, .L7F0BB7B4 -/* 0F02DC 7F0BB7AC 00000000 */ nop -/* 0F02E0 7F0BB7B0 0006000D */ break 6 -.L7F0BB7B4: -/* 0F02E4 7F0BB7B4 AD6A0000 */ sw $t2, ($t3) -/* 0F02E8 7F0BB7B8 03E00008 */ jr $ra -/* 0F02EC 7F0BB7BC 00000000 */ nop -.L7F0BB7C0: -/* 0F02F0 7F0BB7C0 8C8C0004 */ lw $t4, 4($a0) -/* 0F02F4 7F0BB7C4 318D000F */ andi $t5, $t4, 0xf -/* 0F02F8 7F0BB7C8 ACCD0000 */ sw $t5, ($a2) -/* 0F02FC 7F0BB7CC 908E0007 */ lbu $t6, 7($a0) -/* 0F0300 7F0BB7D0 000E7902 */ srl $t7, $t6, 4 -/* 0F0304 7F0BB7D4 ACEF0000 */ sw $t7, ($a3) -/* 0F0308 7F0BB7D8 8C980000 */ lw $t8, ($a0) -/* 0F030C 7F0BB7DC 8FA80010 */ lw $t0, 0x10($sp) -/* 0F0310 7F0BB7E0 3319000F */ andi $t9, $t8, 0xf -/* 0F0314 7F0BB7E4 03E00008 */ jr $ra -/* 0F0318 7F0BB7E8 AD190000 */ sw $t9, ($t0) -.L7F0BB7EC: -/* 0F031C 7F0BB7EC 90890006 */ lbu $t1, 6($a0) -/* 0F0320 7F0BB7F0 312A000F */ andi $t2, $t1, 0xf -/* 0F0324 7F0BB7F4 ACCA0000 */ sw $t2, ($a2) -/* 0F0328 7F0BB7F8 948B0006 */ lhu $t3, 6($a0) -/* 0F032C 7F0BB7FC 000B6302 */ srl $t4, $t3, 0xc -/* 0F0330 7F0BB800 ACEC0000 */ sw $t4, ($a3) -/* 0F0334 7F0BB804 908D0003 */ lbu $t5, 3($a0) -/* 0F0338 7F0BB808 8FAF0010 */ lw $t7, 0x10($sp) -/* 0F033C 7F0BB80C 000D7102 */ srl $t6, $t5, 4 -/* 0F0340 7F0BB810 03E00008 */ jr $ra -/* 0F0344 7F0BB814 ADEE0000 */ sw $t6, ($t7) -.L7F0BB818: -/* 0F0348 7F0BB818 94980004 */ lhu $t8, 4($a0) -/* 0F034C 7F0BB81C 3319000F */ andi $t9, $t8, 0xf -/* 0F0350 7F0BB820 ACD90000 */ sw $t9, ($a2) -/* 0F0354 7F0BB824 90880005 */ lbu $t0, 5($a0) -/* 0F0358 7F0BB828 00084902 */ srl $t1, $t0, 4 -/* 0F035C 7F0BB82C ACE90000 */ sw $t1, ($a3) -/* 0F0360 7F0BB830 908A0002 */ lbu $t2, 2($a0) -/* 0F0364 7F0BB834 8FAC0010 */ lw $t4, 0x10($sp) -/* 0F0368 7F0BB838 314B000F */ andi $t3, $t2, 0xf -/* 0F036C 7F0BB83C 03E00008 */ jr $ra -/* 0F0370 7F0BB840 AD8B0000 */ sw $t3, ($t4) -.L7F0BB844: -/* 0F0374 7F0BB844 908D0004 */ lbu $t5, 4($a0) -/* 0F0378 7F0BB848 31AE000F */ andi $t6, $t5, 0xf -/* 0F037C 7F0BB84C ACCE0000 */ sw $t6, ($a2) -/* 0F0380 7F0BB850 8C8F0004 */ lw $t7, 4($a0) -/* 0F0384 7F0BB854 000FC702 */ srl $t8, $t7, 0x1c -/* 0F0388 7F0BB858 ACF80000 */ sw $t8, ($a3) -/* 0F038C 7F0BB85C 94990002 */ lhu $t9, 2($a0) -/* 0F0390 7F0BB860 8FA90010 */ lw $t1, 0x10($sp) -/* 0F0394 7F0BB864 00194302 */ srl $t0, $t9, 0xc -/* 0F0398 7F0BB868 AD280000 */ sw $t0, ($t1) -def_7F0BB70C: -.L7F0BB86C: -/* 0F039C 7F0BB86C 03E00008 */ jr $ra -/* 0F03A0 7F0BB870 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BB874(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BB874 -/* 0F03A4 7F0BB874 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0F03A8 7F0BB878 AFBF001C */ sw $ra, 0x1c($sp) -/* 0F03AC 7F0BB87C AFA60038 */ sw $a2, 0x38($sp) -/* 0F03B0 7F0BB880 AFA7003C */ sw $a3, 0x3c($sp) -/* 0F03B4 7F0BB884 27AE0024 */ addiu $t6, $sp, 0x24 -/* 0F03B8 7F0BB888 AFA40030 */ sw $a0, 0x30($sp) -/* 0F03BC 7F0BB88C AFAE0010 */ sw $t6, 0x10($sp) -/* 0F03C0 7F0BB890 27A70028 */ addiu $a3, $sp, 0x28 -/* 0F03C4 7F0BB894 0FC2EDBD */ jal sub_GAME_7F0BB6F4 -/* 0F03C8 7F0BB898 27A6002C */ addiu $a2, $sp, 0x2c -/* 0F03CC 7F0BB89C 8FA40030 */ lw $a0, 0x30($sp) -/* 0F03D0 7F0BB8A0 0FC2EDA5 */ jal return_ptr_vertex_of_entry_room -/* 0F03D4 7F0BB8A4 8FA50038 */ lw $a1, 0x38($sp) -/* 0F03D8 7F0BB8A8 8FAF002C */ lw $t7, 0x2c($sp) -/* 0F03DC 7F0BB8AC 8FA5003C */ lw $a1, 0x3c($sp) -/* 0F03E0 7F0BB8B0 8FA30040 */ lw $v1, 0x40($sp) -/* 0F03E4 7F0BB8B4 000FC100 */ sll $t8, $t7, 4 -/* 0F03E8 7F0BB8B8 0058C821 */ addu $t9, $v0, $t8 -/* 0F03EC 7F0BB8BC 87280000 */ lh $t0, ($t9) -/* 0F03F0 7F0BB8C0 8FA40044 */ lw $a0, 0x44($sp) -/* 0F03F4 7F0BB8C4 A4A80000 */ sh $t0, ($a1) -/* 0F03F8 7F0BB8C8 8FA9002C */ lw $t1, 0x2c($sp) -/* 0F03FC 7F0BB8CC 00095100 */ sll $t2, $t1, 4 -/* 0F0400 7F0BB8D0 004A5821 */ addu $t3, $v0, $t2 -/* 0F0404 7F0BB8D4 856C0002 */ lh $t4, 2($t3) -/* 0F0408 7F0BB8D8 A4AC0002 */ sh $t4, 2($a1) -/* 0F040C 7F0BB8DC 8FAD002C */ lw $t5, 0x2c($sp) -/* 0F0410 7F0BB8E0 000D7100 */ sll $t6, $t5, 4 -/* 0F0414 7F0BB8E4 004E7821 */ addu $t7, $v0, $t6 -/* 0F0418 7F0BB8E8 85F80004 */ lh $t8, 4($t7) -/* 0F041C 7F0BB8EC A4B80004 */ sh $t8, 4($a1) -/* 0F0420 7F0BB8F0 8FB90028 */ lw $t9, 0x28($sp) -/* 0F0424 7F0BB8F4 00194100 */ sll $t0, $t9, 4 -/* 0F0428 7F0BB8F8 00484821 */ addu $t1, $v0, $t0 -/* 0F042C 7F0BB8FC 852A0000 */ lh $t2, ($t1) -/* 0F0430 7F0BB900 A46A0000 */ sh $t2, ($v1) -/* 0F0434 7F0BB904 8FAB0028 */ lw $t3, 0x28($sp) -/* 0F0438 7F0BB908 000B6100 */ sll $t4, $t3, 4 -/* 0F043C 7F0BB90C 004C6821 */ addu $t5, $v0, $t4 -/* 0F0440 7F0BB910 85AE0002 */ lh $t6, 2($t5) -/* 0F0444 7F0BB914 A46E0002 */ sh $t6, 2($v1) -/* 0F0448 7F0BB918 8FAF0028 */ lw $t7, 0x28($sp) -/* 0F044C 7F0BB91C 000FC100 */ sll $t8, $t7, 4 -/* 0F0450 7F0BB920 0058C821 */ addu $t9, $v0, $t8 -/* 0F0454 7F0BB924 87280004 */ lh $t0, 4($t9) -/* 0F0458 7F0BB928 A4680004 */ sh $t0, 4($v1) -/* 0F045C 7F0BB92C 8FA90024 */ lw $t1, 0x24($sp) -/* 0F0460 7F0BB930 00095100 */ sll $t2, $t1, 4 -/* 0F0464 7F0BB934 004A5821 */ addu $t3, $v0, $t2 -/* 0F0468 7F0BB938 856C0000 */ lh $t4, ($t3) -/* 0F046C 7F0BB93C A48C0000 */ sh $t4, ($a0) -/* 0F0470 7F0BB940 8FAD0024 */ lw $t5, 0x24($sp) -/* 0F0474 7F0BB944 000D7100 */ sll $t6, $t5, 4 -/* 0F0478 7F0BB948 004E7821 */ addu $t7, $v0, $t6 -/* 0F047C 7F0BB94C 85F80002 */ lh $t8, 2($t7) -/* 0F0480 7F0BB950 A4980002 */ sh $t8, 2($a0) -/* 0F0484 7F0BB954 8FB90024 */ lw $t9, 0x24($sp) -/* 0F0488 7F0BB958 00194100 */ sll $t0, $t9, 4 -/* 0F048C 7F0BB95C 00484821 */ addu $t1, $v0, $t0 -/* 0F0490 7F0BB960 852A0004 */ lh $t2, 4($t1) -/* 0F0494 7F0BB964 A48A0004 */ sh $t2, 4($a0) -/* 0F0498 7F0BB968 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F049C 7F0BB96C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0F04A0 7F0BB970 03E00008 */ jr $ra -/* 0F04A4 7F0BB974 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BB978(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BB978 -/* 0F04A8 7F0BB978 00047080 */ sll $t6, $a0, 2 -/* 0F04AC 7F0BB97C 01C47021 */ addu $t6, $t6, $a0 -/* 0F04B0 7F0BB980 000E7100 */ sll $t6, $t6, 4 -/* 0F04B4 7F0BB984 3C028004 */ lui $v0, %hi(array_room_info + 0x4) -/* 0F04B8 7F0BB988 004E1021 */ addu $v0, $v0, $t6 -/* 0F04BC 7F0BB98C 3C058008 */ lui $a1, %hi(word_CODE_bss_80082B18) -/* 0F04C0 7F0BB990 3C068008 */ lui $a2, %hi(dword_CODE_bss_80083318) -/* 0F04C4 7F0BB994 8C421418 */ lw $v0, %lo(array_room_info + 0x4)($v0) -/* 0F04C8 7F0BB998 24C63318 */ addiu $a2, %lo(dword_CODE_bss_80083318) # addiu $a2, $a2, 0x3318 -/* 0F04CC 7F0BB99C 24A52B18 */ addiu $a1, %lo(word_CODE_bss_80082B18) # addiu $a1, $a1, 0x2b18 -/* 0F04D0 7F0BB9A0 94AF0000 */ lhu $t7, ($a1) -.L7F0BB9A4: -/* 0F04D4 7F0BB9A4 548F001A */ bnel $a0, $t7, .L7F0BBA10 -/* 0F04D8 7F0BB9A8 24A50004 */ addiu $a1, $a1, 4 -/* 0F04DC 7F0BB9AC 94B80002 */ lhu $t8, 2($a1) -/* 0F04E0 7F0BB9B0 0018C900 */ sll $t9, $t8, 4 -/* 0F04E4 7F0BB9B4 00591821 */ addu $v1, $v0, $t9 -/* 0F04E8 7F0BB9B8 9068000C */ lbu $t0, 0xc($v1) -/* 0F04EC 7F0BB9BC 00084882 */ srl $t1, $t0, 2 -/* 0F04F0 7F0BB9C0 A069000C */ sb $t1, 0xc($v1) -/* 0F04F4 7F0BB9C4 94AA0002 */ lhu $t2, 2($a1) -/* 0F04F8 7F0BB9C8 000A5900 */ sll $t3, $t2, 4 -/* 0F04FC 7F0BB9CC 004B1821 */ addu $v1, $v0, $t3 -/* 0F0500 7F0BB9D0 906C000D */ lbu $t4, 0xd($v1) -/* 0F0504 7F0BB9D4 000C6882 */ srl $t5, $t4, 2 -/* 0F0508 7F0BB9D8 A06D000D */ sb $t5, 0xd($v1) -/* 0F050C 7F0BB9DC 94AE0002 */ lhu $t6, 2($a1) -/* 0F0510 7F0BB9E0 000E7900 */ sll $t7, $t6, 4 -/* 0F0514 7F0BB9E4 004F1821 */ addu $v1, $v0, $t7 -/* 0F0518 7F0BB9E8 9078000E */ lbu $t8, 0xe($v1) -/* 0F051C 7F0BB9EC 0018C882 */ srl $t9, $t8, 2 -/* 0F0520 7F0BB9F0 A079000E */ sb $t9, 0xe($v1) -/* 0F0524 7F0BB9F4 94A80002 */ lhu $t0, 2($a1) -/* 0F0528 7F0BB9F8 00084900 */ sll $t1, $t0, 4 -/* 0F052C 7F0BB9FC 00491821 */ addu $v1, $v0, $t1 -/* 0F0530 7F0BBA00 906A000F */ lbu $t2, 0xf($v1) -/* 0F0534 7F0BBA04 000A5882 */ srl $t3, $t2, 2 -/* 0F0538 7F0BBA08 A06B000F */ sb $t3, 0xf($v1) -/* 0F053C 7F0BBA0C 24A50004 */ addiu $a1, $a1, 4 -.L7F0BBA10: -/* 0F0540 7F0BBA10 54A6FFE4 */ bnel $a1, $a2, .L7F0BB9A4 -/* 0F0544 7F0BBA14 94AF0000 */ lhu $t7, ($a1) -/* 0F0548 7F0BBA18 03E00008 */ jr $ra -/* 0F054C 7F0BBA1C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BBA20(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BBA20 -/* 0F0550 7F0BBA20 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F0554 7F0BBA24 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F0558 7F0BBA28 AFA40018 */ sw $a0, 0x18($sp) -/* 0F055C 7F0BBA2C 0FC2EEB7 */ jal sub_GAME_7F0BBADC -/* 0F0560 7F0BBA30 AFA5001C */ sw $a1, 0x1c($sp) -/* 0F0564 7F0BBA34 8FA40018 */ lw $a0, 0x18($sp) -/* 0F0568 7F0BBA38 14400024 */ bnez $v0, .L7F0BBACC -/* 0F056C 7F0BBA3C 8FA6001C */ lw $a2, 0x1c($sp) -/* 0F0570 7F0BBA40 00067080 */ sll $t6, $a2, 2 -/* 0F0574 7F0BBA44 3C058004 */ lui $a1, %hi(D_80046030) -/* 0F0578 7F0BBA48 01C67021 */ addu $t6, $t6, $a2 -/* 0F057C 7F0BBA4C 24A56030 */ addiu $a1, %lo(D_80046030) # addiu $a1, $a1, 0x6030 -/* 0F0580 7F0BBA50 000E7100 */ sll $t6, $t6, 4 -/* 0F0584 7F0BBA54 3C0F8004 */ lui $t7, %hi(array_room_info + 0x4) -/* 0F0588 7F0BBA58 8CB90000 */ lw $t9, ($a1) -/* 0F058C 7F0BBA5C 01EE7821 */ addu $t7, $t7, $t6 -/* 0F0590 7F0BBA60 8DEF1418 */ lw $t7, %lo(array_room_info + 0x4)($t7) -/* 0F0594 7F0BBA64 3C098008 */ lui $t1, %hi(word_CODE_bss_80082B18) -/* 0F0598 7F0BBA68 25292B18 */ addiu $t1, %lo(word_CODE_bss_80082B18) # addiu $t1, $t1, 0x2b18 -/* 0F059C 7F0BBA6C 00194080 */ sll $t0, $t9, 2 -/* 0F05A0 7F0BBA70 01091021 */ addu $v0, $t0, $t1 -/* 0F05A4 7F0BBA74 008F1823 */ subu $v1, $a0, $t7 -/* 0F05A8 7F0BBA78 0003C102 */ srl $t8, $v1, 4 -/* 0F05AC 7F0BBA7C A4460000 */ sh $a2, ($v0) -/* 0F05B0 7F0BBA80 A4580002 */ sh $t8, 2($v0) -/* 0F05B4 7F0BBA84 908A000C */ lbu $t2, 0xc($a0) -/* 0F05B8 7F0BBA88 908C000D */ lbu $t4, 0xd($a0) -/* 0F05BC 7F0BBA8C 908E000E */ lbu $t6, 0xe($a0) -/* 0F05C0 7F0BBA90 9098000F */ lbu $t8, 0xf($a0) -/* 0F05C4 7F0BBA94 000A5882 */ srl $t3, $t2, 2 -/* 0F05C8 7F0BBA98 000C6882 */ srl $t5, $t4, 2 -/* 0F05CC 7F0BBA9C 000E7882 */ srl $t7, $t6, 2 -/* 0F05D0 7F0BBAA0 0018C882 */ srl $t9, $t8, 2 -/* 0F05D4 7F0BBAA4 A08B000C */ sb $t3, 0xc($a0) -/* 0F05D8 7F0BBAA8 A08D000D */ sb $t5, 0xd($a0) -/* 0F05DC 7F0BBAAC A08F000E */ sb $t7, 0xe($a0) -/* 0F05E0 7F0BBAB0 A099000F */ sb $t9, 0xf($a0) -/* 0F05E4 7F0BBAB4 8CA80000 */ lw $t0, ($a1) -/* 0F05E8 7F0BBAB8 25090001 */ addiu $t1, $t0, 1 -/* 0F05EC 7F0BBABC 29210200 */ slti $at, $t1, 0x200 -/* 0F05F0 7F0BBAC0 14200002 */ bnez $at, .L7F0BBACC -/* 0F05F4 7F0BBAC4 ACA90000 */ sw $t1, ($a1) -/* 0F05F8 7F0BBAC8 ACA00000 */ sw $zero, ($a1) -.L7F0BBACC: -/* 0F05FC 7F0BBACC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F0600 7F0BBAD0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F0604 7F0BBAD4 03E00008 */ jr $ra -/* 0F0608 7F0BBAD8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BBADC(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BBADC -/* 0F060C 7F0BBADC 00057080 */ sll $t6, $a1, 2 -/* 0F0610 7F0BBAE0 01C57021 */ addu $t6, $t6, $a1 -/* 0F0614 7F0BBAE4 000E7100 */ sll $t6, $t6, 4 -/* 0F0618 7F0BBAE8 3C0F8004 */ lui $t7, %hi(array_room_info + 0x4) -/* 0F061C 7F0BBAEC 01EE7821 */ addu $t7, $t7, $t6 -/* 0F0620 7F0BBAF0 8DEF1418 */ lw $t7, %lo(array_room_info + 0x4)($t7) -/* 0F0624 7F0BBAF4 3C068008 */ lui $a2, %hi(word_CODE_bss_80082B18) -/* 0F0628 7F0BBAF8 3C038008 */ lui $v1, %hi(dword_CODE_bss_80083318) -/* 0F062C 7F0BBAFC 008F1023 */ subu $v0, $a0, $t7 -/* 0F0630 7F0BBB00 0002C102 */ srl $t8, $v0, 4 -/* 0F0634 7F0BBB04 03001025 */ move $v0, $t8 -/* 0F0638 7F0BBB08 24633318 */ addiu $v1, %lo(dword_CODE_bss_80083318) # addiu $v1, $v1, 0x3318 -/* 0F063C 7F0BBB0C 24C62B18 */ addiu $a2, %lo(word_CODE_bss_80082B18) # addiu $a2, $a2, 0x2b18 -/* 0F0640 7F0BBB10 94D90000 */ lhu $t9, ($a2) -.L7F0BBB14: -/* 0F0644 7F0BBB14 54B90007 */ bnel $a1, $t9, .L7F0BBB34 -/* 0F0648 7F0BBB18 94C90004 */ lhu $t1, 4($a2) -/* 0F064C 7F0BBB1C 94C80002 */ lhu $t0, 2($a2) -/* 0F0650 7F0BBB20 54480004 */ bnel $v0, $t0, .L7F0BBB34 -/* 0F0654 7F0BBB24 94C90004 */ lhu $t1, 4($a2) -/* 0F0658 7F0BBB28 03E00008 */ jr $ra -/* 0F065C 7F0BBB2C 24020001 */ li $v0, 1 - -/* 0F0660 7F0BBB30 94C90004 */ lhu $t1, 4($a2) -.L7F0BBB34: -/* 0F0664 7F0BBB34 54A90007 */ bnel $a1, $t1, .L7F0BBB54 -/* 0F0668 7F0BBB38 94CB0008 */ lhu $t3, 8($a2) -/* 0F066C 7F0BBB3C 94CA0006 */ lhu $t2, 6($a2) -/* 0F0670 7F0BBB40 544A0004 */ bnel $v0, $t2, .L7F0BBB54 -/* 0F0674 7F0BBB44 94CB0008 */ lhu $t3, 8($a2) -/* 0F0678 7F0BBB48 03E00008 */ jr $ra -/* 0F067C 7F0BBB4C 24020001 */ li $v0, 1 - -/* 0F0680 7F0BBB50 94CB0008 */ lhu $t3, 8($a2) -.L7F0BBB54: -/* 0F0684 7F0BBB54 54AB0007 */ bnel $a1, $t3, .L7F0BBB74 -/* 0F0688 7F0BBB58 94CD000C */ lhu $t5, 0xc($a2) -/* 0F068C 7F0BBB5C 94CC000A */ lhu $t4, 0xa($a2) -/* 0F0690 7F0BBB60 544C0004 */ bnel $v0, $t4, .L7F0BBB74 -/* 0F0694 7F0BBB64 94CD000C */ lhu $t5, 0xc($a2) -/* 0F0698 7F0BBB68 03E00008 */ jr $ra -/* 0F069C 7F0BBB6C 24020001 */ li $v0, 1 - -/* 0F06A0 7F0BBB70 94CD000C */ lhu $t5, 0xc($a2) -.L7F0BBB74: -/* 0F06A4 7F0BBB74 54AD0007 */ bnel $a1, $t5, .L7F0BBB94 -/* 0F06A8 7F0BBB78 24C60010 */ addiu $a2, $a2, 0x10 -/* 0F06AC 7F0BBB7C 94CE000E */ lhu $t6, 0xe($a2) -/* 0F06B0 7F0BBB80 544E0004 */ bnel $v0, $t6, .L7F0BBB94 -/* 0F06B4 7F0BBB84 24C60010 */ addiu $a2, $a2, 0x10 -/* 0F06B8 7F0BBB88 03E00008 */ jr $ra -/* 0F06BC 7F0BBB8C 24020001 */ li $v0, 1 - -/* 0F06C0 7F0BBB90 24C60010 */ addiu $a2, $a2, 0x10 -.L7F0BBB94: -/* 0F06C4 7F0BBB94 54C3FFDF */ bnel $a2, $v1, .L7F0BBB14 -/* 0F06C8 7F0BBB98 94D90000 */ lhu $t9, ($a2) -/* 0F06CC 7F0BBB9C 00001025 */ move $v0, $zero -/* 0F06D0 7F0BBBA0 03E00008 */ jr $ra -/* 0F06D4 7F0BBBA4 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BBBA8(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BBBA8 -/* 0F06D8 7F0BBBA8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0F06DC 7F0BBBAC AFBF001C */ sw $ra, 0x1c($sp) -/* 0F06E0 7F0BBBB0 AFA60040 */ sw $a2, 0x40($sp) -/* 0F06E4 7F0BBBB4 27AE0028 */ addiu $t6, $sp, 0x28 -/* 0F06E8 7F0BBBB8 AFA40038 */ sw $a0, 0x38($sp) -/* 0F06EC 7F0BBBBC AFAE0010 */ sw $t6, 0x10($sp) -/* 0F06F0 7F0BBBC0 27A60030 */ addiu $a2, $sp, 0x30 -/* 0F06F4 7F0BBBC4 0FC2EDBD */ jal sub_GAME_7F0BB6F4 -/* 0F06F8 7F0BBBC8 27A7002C */ addiu $a3, $sp, 0x2c -/* 0F06FC 7F0BBBCC 8FA40038 */ lw $a0, 0x38($sp) -/* 0F0700 7F0BBBD0 0FC2EDA5 */ jal return_ptr_vertex_of_entry_room -/* 0F0704 7F0BBBD4 8FA50040 */ lw $a1, 0x40($sp) -/* 0F0708 7F0BBBD8 8FAF0030 */ lw $t7, 0x30($sp) -/* 0F070C 7F0BBBDC AFA20024 */ sw $v0, 0x24($sp) -/* 0F0710 7F0BBBE0 8FA50040 */ lw $a1, 0x40($sp) -/* 0F0714 7F0BBBE4 000FC100 */ sll $t8, $t7, 4 -/* 0F0718 7F0BBBE8 0FC2EE88 */ jal sub_GAME_7F0BBA20 -/* 0F071C 7F0BBBEC 03022021 */ addu $a0, $t8, $v0 -/* 0F0720 7F0BBBF0 8FB9002C */ lw $t9, 0x2c($sp) -/* 0F0724 7F0BBBF4 8FA90024 */ lw $t1, 0x24($sp) -/* 0F0728 7F0BBBF8 8FA50040 */ lw $a1, 0x40($sp) -/* 0F072C 7F0BBBFC 00194100 */ sll $t0, $t9, 4 -/* 0F0730 7F0BBC00 0FC2EE88 */ jal sub_GAME_7F0BBA20 -/* 0F0734 7F0BBC04 01092021 */ addu $a0, $t0, $t1 -/* 0F0738 7F0BBC08 8FAA0028 */ lw $t2, 0x28($sp) -/* 0F073C 7F0BBC0C 8FAC0024 */ lw $t4, 0x24($sp) -/* 0F0740 7F0BBC10 8FA50040 */ lw $a1, 0x40($sp) -/* 0F0744 7F0BBC14 000A5900 */ sll $t3, $t2, 4 -/* 0F0748 7F0BBC18 0FC2EE88 */ jal sub_GAME_7F0BBA20 -/* 0F074C 7F0BBC1C 016C2021 */ addu $a0, $t3, $t4 -/* 0F0750 7F0BBC20 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F0754 7F0BBC24 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0F0758 7F0BBC28 03E00008 */ jr $ra -/* 0F075C 7F0BBC2C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BBC30(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BBC30 -/* 0F0760 7F0BBC30 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0F0764 7F0BBC34 AFBF001C */ sw $ra, 0x1c($sp) -/* 0F0768 7F0BBC38 AFA60048 */ sw $a2, 0x48($sp) -/* 0F076C 7F0BBC3C 27AE0030 */ addiu $t6, $sp, 0x30 -/* 0F0770 7F0BBC40 AFA40040 */ sw $a0, 0x40($sp) -/* 0F0774 7F0BBC44 AFAE0010 */ sw $t6, 0x10($sp) -/* 0F0778 7F0BBC48 27A60038 */ addiu $a2, $sp, 0x38 -/* 0F077C 7F0BBC4C 0FC2EDBD */ jal sub_GAME_7F0BB6F4 -/* 0F0780 7F0BBC50 27A70034 */ addiu $a3, $sp, 0x34 -/* 0F0784 7F0BBC54 8FA40040 */ lw $a0, 0x40($sp) -/* 0F0788 7F0BBC58 0FC2EDA5 */ jal return_ptr_vertex_of_entry_room -/* 0F078C 7F0BBC5C 8FA50048 */ lw $a1, 0x48($sp) -/* 0F0790 7F0BBC60 8FAF0034 */ lw $t7, 0x34($sp) -/* 0F0794 7F0BBC64 AFA2002C */ sw $v0, 0x2c($sp) -/* 0F0798 7F0BBC68 8FA50048 */ lw $a1, 0x48($sp) -/* 0F079C 7F0BBC6C 000FC100 */ sll $t8, $t7, 4 -/* 0F07A0 7F0BBC70 0FC2EEB7 */ jal sub_GAME_7F0BBADC -/* 0F07A4 7F0BBC74 03022021 */ addu $a0, $t8, $v0 -/* 0F07A8 7F0BBC78 8FB90038 */ lw $t9, 0x38($sp) -/* 0F07AC 7F0BBC7C 8FA9002C */ lw $t1, 0x2c($sp) -/* 0F07B0 7F0BBC80 AFA20024 */ sw $v0, 0x24($sp) -/* 0F07B4 7F0BBC84 00194100 */ sll $t0, $t9, 4 -/* 0F07B8 7F0BBC88 8FA50048 */ lw $a1, 0x48($sp) -/* 0F07BC 7F0BBC8C 0FC2EEB7 */ jal sub_GAME_7F0BBADC -/* 0F07C0 7F0BBC90 01092021 */ addu $a0, $t0, $t1 -/* 0F07C4 7F0BBC94 8FAA0030 */ lw $t2, 0x30($sp) -/* 0F07C8 7F0BBC98 8FAC002C */ lw $t4, 0x2c($sp) -/* 0F07CC 7F0BBC9C AFA20028 */ sw $v0, 0x28($sp) -/* 0F07D0 7F0BBCA0 000A5900 */ sll $t3, $t2, 4 -/* 0F07D4 7F0BBCA4 8FA50048 */ lw $a1, 0x48($sp) -/* 0F07D8 7F0BBCA8 0FC2EEB7 */ jal sub_GAME_7F0BBADC -/* 0F07DC 7F0BBCAC 016C2021 */ addu $a0, $t3, $t4 -/* 0F07E0 7F0BBCB0 8FAD0028 */ lw $t5, 0x28($sp) -/* 0F07E4 7F0BBCB4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F07E8 7F0BBCB8 8FAF0024 */ lw $t7, 0x24($sp) -/* 0F07EC 7F0BBCBC 004D7021 */ addu $t6, $v0, $t5 -/* 0F07F0 7F0BBCC0 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0F07F4 7F0BBCC4 03E00008 */ jr $ra -/* 0F07F8 7F0BBCC8 01CF1021 */ addu $v0, $t6, $t7 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BBCCC(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BBCCC -/* 0F07FC 7F0BBCCC 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0F0800 7F0BBCD0 AFBE0040 */ sw $fp, 0x40($sp) -/* 0F0804 7F0BBCD4 AFB60038 */ sw $s6, 0x38($sp) -/* 0F0808 7F0BBCD8 AFB3002C */ sw $s3, 0x2c($sp) -/* 0F080C 7F0BBCDC F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0F0810 7F0BBCE0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0F0814 7F0BBCE4 AFB7003C */ sw $s7, 0x3c($sp) -/* 0F0818 7F0BBCE8 AFB50034 */ sw $s5, 0x34($sp) -/* 0F081C 7F0BBCEC AFB40030 */ sw $s4, 0x30($sp) -/* 0F0820 7F0BBCF0 3C138008 */ lui $s3, %hi(word_CODE_bss_80082B18) -/* 0F0824 7F0BBCF4 3C168004 */ lui $s6, %hi(array_room_info) -/* 0F0828 7F0BBCF8 3C1E8008 */ lui $fp, %hi(dword_CODE_bss_80083318) -/* 0F082C 7F0BBCFC 4481A000 */ mtc1 $at, $f20 -/* 0F0830 7F0BBD00 0080A025 */ move $s4, $a0 -/* 0F0834 7F0BBD04 00A0A825 */ move $s5, $a1 -/* 0F0838 7F0BBD08 AFBF0044 */ sw $ra, 0x44($sp) -/* 0F083C 7F0BBD0C AFB20028 */ sw $s2, 0x28($sp) -/* 0F0840 7F0BBD10 AFB10024 */ sw $s1, 0x24($sp) -/* 0F0844 7F0BBD14 AFB00020 */ sw $s0, 0x20($sp) -/* 0F0848 7F0BBD18 27DE3318 */ addiu $fp, %lo(dword_CODE_bss_80083318) # addiu $fp, $fp, 0x3318 -/* 0F084C 7F0BBD1C 26D61414 */ addiu $s6, %lo(array_room_info) # addiu $s6, $s6, 0x1414 -/* 0F0850 7F0BBD20 26732B18 */ addiu $s3, %lo(word_CODE_bss_80082B18) # addiu $s3, $s3, 0x2b18 -/* 0F0854 7F0BBD24 24170050 */ li $s7, 80 -/* 0F0858 7F0BBD28 966E0000 */ lhu $t6, ($s3) -.L7F0BBD2C: -/* 0F085C 7F0BBD2C 56AE0027 */ bnel $s5, $t6, .L7F0BBDCC -/* 0F0860 7F0BBD30 26730004 */ addiu $s3, $s3, 4 -/* 0F0864 7F0BBD34 02B70019 */ multu $s5, $s7 -/* 0F0868 7F0BBD38 966F0002 */ lhu $t7, 2($s3) -/* 0F086C 7F0BBD3C 868B0000 */ lh $t3, ($s4) -/* 0F0870 7F0BBD40 868D0002 */ lh $t5, 2($s4) -/* 0F0874 7F0BBD44 000FC100 */ sll $t8, $t7, 4 -/* 0F0878 7F0BBD48 868F0004 */ lh $t7, 4($s4) -/* 0F087C 7F0BBD4C 0000C812 */ mflo $t9 -/* 0F0880 7F0BBD50 02D94021 */ addu $t0, $s6, $t9 -/* 0F0884 7F0BBD54 8D090004 */ lw $t1, 4($t0) -/* 0F0888 7F0BBD58 03091021 */ addu $v0, $t8, $t1 -/* 0F088C 7F0BBD5C 844A0000 */ lh $t2, ($v0) -/* 0F0890 7F0BBD60 844C0002 */ lh $t4, 2($v0) -/* 0F0894 7F0BBD64 844E0004 */ lh $t6, 4($v0) -/* 0F0898 7F0BBD68 014B8023 */ subu $s0, $t2, $t3 -/* 0F089C 7F0BBD6C 018D8823 */ subu $s1, $t4, $t5 -/* 0F08A0 7F0BBD70 06010002 */ bgez $s0, .L7F0BBD7C -/* 0F08A4 7F0BBD74 01CF9023 */ subu $s2, $t6, $t7 -/* 0F08A8 7F0BBD78 00108023 */ negu $s0, $s0 -.L7F0BBD7C: -/* 0F08AC 7F0BBD7C 06210002 */ bgez $s1, .L7F0BBD88 -/* 0F08B0 7F0BBD80 00000000 */ nop -/* 0F08B4 7F0BBD84 00118823 */ negu $s1, $s1 -.L7F0BBD88: -/* 0F08B8 7F0BBD88 06410002 */ bgez $s2, .L7F0BBD94 -/* 0F08BC 7F0BBD8C 00000000 */ nop -/* 0F08C0 7F0BBD90 00129023 */ negu $s2, $s2 -.L7F0BBD94: -/* 0F08C4 7F0BBD94 0FC2D20F */ jal get_room_data_float1 -/* 0F08C8 7F0BBD98 00000000 */ nop -/* 0F08CC 7F0BBD9C 46140102 */ mul.s $f4, $f0, $f20 -/* 0F08D0 7F0BBDA0 0211C821 */ addu $t9, $s0, $s1 -/* 0F08D4 7F0BBDA4 03324021 */ addu $t0, $t9, $s2 -/* 0F08D8 7F0BBDA8 4600218D */ trunc.w.s $f6, $f4 -/* 0F08DC 7F0BBDAC 44093000 */ mfc1 $t1, $f6 -/* 0F08E0 7F0BBDB0 00000000 */ nop -/* 0F08E4 7F0BBDB4 0109082A */ slt $at, $t0, $t1 -/* 0F08E8 7F0BBDB8 50200004 */ beql $at, $zero, .L7F0BBDCC -/* 0F08EC 7F0BBDBC 26730004 */ addiu $s3, $s3, 4 -/* 0F08F0 7F0BBDC0 10000005 */ b .L7F0BBDD8 -/* 0F08F4 7F0BBDC4 24020001 */ li $v0, 1 -/* 0F08F8 7F0BBDC8 26730004 */ addiu $s3, $s3, 4 -.L7F0BBDCC: -/* 0F08FC 7F0BBDCC 567EFFD7 */ bnel $s3, $fp, .L7F0BBD2C -/* 0F0900 7F0BBDD0 966E0000 */ lhu $t6, ($s3) -/* 0F0904 7F0BBDD4 00001025 */ move $v0, $zero -.L7F0BBDD8: -/* 0F0908 7F0BBDD8 8FBF0044 */ lw $ra, 0x44($sp) -/* 0F090C 7F0BBDDC D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0F0910 7F0BBDE0 8FB00020 */ lw $s0, 0x20($sp) -/* 0F0914 7F0BBDE4 8FB10024 */ lw $s1, 0x24($sp) -/* 0F0918 7F0BBDE8 8FB20028 */ lw $s2, 0x28($sp) -/* 0F091C 7F0BBDEC 8FB3002C */ lw $s3, 0x2c($sp) -/* 0F0920 7F0BBDF0 8FB40030 */ lw $s4, 0x30($sp) -/* 0F0924 7F0BBDF4 8FB50034 */ lw $s5, 0x34($sp) -/* 0F0928 7F0BBDF8 8FB60038 */ lw $s6, 0x38($sp) -/* 0F092C 7F0BBDFC 8FB7003C */ lw $s7, 0x3c($sp) -/* 0F0930 7F0BBE00 8FBE0040 */ lw $fp, 0x40($sp) -/* 0F0934 7F0BBE04 03E00008 */ jr $ra -/* 0F0938 7F0BBE08 27BD0048 */ addiu $sp, $sp, 0x48 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BBE0C(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BBE0C -/* 0F093C 7F0BBE0C 27BDFF08 */ addiu $sp, $sp, -0xf8 -/* 0F0940 7F0BBE10 AFB20044 */ sw $s2, 0x44($sp) -/* 0F0944 7F0BBE14 AFB10040 */ sw $s1, 0x40($sp) -/* 0F0948 7F0BBE18 AFB0003C */ sw $s0, 0x3c($sp) -/* 0F094C 7F0BBE1C 3C128008 */ lui $s2, %hi(light_fixture_table) -/* 0F0950 7F0BBE20 3C028008 */ lui $v0, %hi(cur_entry_lightfixture_table) -/* 0F0954 7F0BBE24 00808025 */ move $s0, $a0 -/* 0F0958 7F0BBE28 00A08825 */ move $s1, $a1 -/* 0F095C 7F0BBE2C AFBF005C */ sw $ra, 0x5c($sp) -/* 0F0960 7F0BBE30 AFB70058 */ sw $s7, 0x58($sp) -/* 0F0964 7F0BBE34 AFB60054 */ sw $s6, 0x54($sp) -/* 0F0968 7F0BBE38 AFB50050 */ sw $s5, 0x50($sp) -/* 0F096C 7F0BBE3C AFB4004C */ sw $s4, 0x4c($sp) -/* 0F0970 7F0BBE40 AFB30048 */ sw $s3, 0x48($sp) -/* 0F0974 7F0BBE44 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* 0F0978 7F0BBE48 F7B80028 */ sdc1 $f24, 0x28($sp) -/* 0F097C 7F0BBE4C F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0F0980 7F0BBE50 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0F0984 7F0BBE54 00C03825 */ move $a3, $a2 -/* 0F0988 7F0BBE58 24422B10 */ addiu $v0, %lo(cur_entry_lightfixture_table) # addiu $v0, $v0, 0x2b10 -/* 0F098C 7F0BBE5C 26522660 */ addiu $s2, %lo(light_fixture_table) # addiu $s2, $s2, 0x2660 -/* 0F0990 7F0BBE60 86460000 */ lh $a2, ($s2) -.L7F0BBE64: -/* 0F0994 7F0BBE64 54E60186 */ bnel $a3, $a2, .L7F0BC480 -/* 0F0998 7F0BBE68 2652000C */ addiu $s2, $s2, 0xc -/* 0F099C 7F0BBE6C 8E4E0004 */ lw $t6, 4($s2) -/* 0F09A0 7F0BBE70 020E082B */ sltu $at, $s0, $t6 -/* 0F09A4 7F0BBE74 54200182 */ bnezl $at, .L7F0BC480 -/* 0F09A8 7F0BBE78 2652000C */ addiu $s2, $s2, 0xc -/* 0F09AC 7F0BBE7C 8E4F0008 */ lw $t7, 8($s2) -/* 0F09B0 7F0BBE80 020F082B */ sltu $at, $s0, $t7 -/* 0F09B4 7F0BBE84 1020017D */ beqz $at, .L7F0BC47C -/* 0F09B8 7F0BBE88 02002025 */ move $a0, $s0 -/* 0F09BC 7F0BBE8C 0FC2EF0C */ jal sub_GAME_7F0BBC30 -/* 0F09C0 7F0BBE90 02202825 */ move $a1, $s1 -/* 0F09C4 7F0BBE94 1440017C */ bnez $v0, .L7F0BC488 -/* 0F09C8 7F0BBE98 02002025 */ move $a0, $s0 -/* 0F09CC 7F0BBE9C 02202825 */ move $a1, $s1 -/* 0F09D0 7F0BBEA0 0FC2EEEA */ jal sub_GAME_7F0BBBA8 -/* 0F09D4 7F0BBEA4 86460000 */ lh $a2, ($s2) -/* 0F09D8 7F0BBEA8 27B800E8 */ addiu $t8, $sp, 0xe8 -/* 0F09DC 7F0BBEAC 27B900E0 */ addiu $t9, $sp, 0xe0 -/* 0F09E0 7F0BBEB0 AFB90014 */ sw $t9, 0x14($sp) -/* 0F09E4 7F0BBEB4 AFB80010 */ sw $t8, 0x10($sp) -/* 0F09E8 7F0BBEB8 02002025 */ move $a0, $s0 -/* 0F09EC 7F0BBEBC 02202825 */ move $a1, $s1 -/* 0F09F0 7F0BBEC0 86460000 */ lh $a2, ($s2) -/* 0F09F4 7F0BBEC4 0FC2EE1D */ jal sub_GAME_7F0BB874 -/* 0F09F8 7F0BBEC8 27A700F0 */ addiu $a3, $sp, 0xf0 -/* 0F09FC 7F0BBECC 87A200F0 */ lh $v0, 0xf0($sp) -/* 0F0A00 7F0BBED0 87A500E8 */ lh $a1, 0xe8($sp) -/* 0F0A04 7F0BBED4 87A600E0 */ lh $a2, 0xe0($sp) -/* 0F0A08 7F0BBED8 87A300F2 */ lh $v1, 0xf2($sp) -/* 0F0A0C 7F0BBEDC 00458023 */ subu $s0, $v0, $a1 -/* 0F0A10 7F0BBEE0 00105C00 */ sll $t3, $s0, 0x10 -/* 0F0A14 7F0BBEE4 000B8403 */ sra $s0, $t3, 0x10 -/* 0F0A18 7F0BBEE8 02100019 */ multu $s0, $s0 -/* 0F0A1C 7F0BBEEC 87A700EA */ lh $a3, 0xea($sp) -/* 0F0A20 7F0BBEF0 0046A023 */ subu $s4, $v0, $a2 -/* 0F0A24 7F0BBEF4 00146C00 */ sll $t5, $s4, 0x10 -/* 0F0A28 7F0BBEF8 000DA403 */ sra $s4, $t5, 0x10 -/* 0F0A2C 7F0BBEFC 00678823 */ subu $s1, $v1, $a3 -/* 0F0A30 7F0BBF00 0011CC00 */ sll $t9, $s1, 0x10 -/* 0F0A34 7F0BBF04 00198C03 */ sra $s1, $t9, 0x10 -/* 0F0A38 7F0BBF08 87A800E2 */ lh $t0, 0xe2($sp) -/* 0F0A3C 7F0BBF0C 87A400F4 */ lh $a0, 0xf4($sp) -/* 0F0A40 7F0BBF10 00006812 */ mflo $t5 -/* 0F0A44 7F0BBF14 87A900EC */ lh $t1, 0xec($sp) -/* 0F0A48 7F0BBF18 00A6B823 */ subu $s7, $a1, $a2 -/* 0F0A4C 7F0BBF1C 02310019 */ multu $s1, $s1 -/* 0F0A50 7F0BBF20 00E87023 */ subu $t6, $a3, $t0 -/* 0F0A54 7F0BBF24 00177C00 */ sll $t7, $s7, 0x10 -/* 0F0A58 7F0BBF28 A7AE00B4 */ sh $t6, 0xb4($sp) -/* 0F0A5C 7F0BBF2C 000FBC03 */ sra $s7, $t7, 0x10 -/* 0F0A60 7F0BBF30 00899823 */ subu $s3, $a0, $t1 -/* 0F0A64 7F0BBF34 00137C00 */ sll $t7, $s3, 0x10 -/* 0F0A68 7F0BBF38 000F9C03 */ sra $s3, $t7, 0x10 -/* 0F0A6C 7F0BBF3C 87AA00E4 */ lh $t2, 0xe4($sp) -/* 0F0A70 7F0BBF40 0068A823 */ subu $s5, $v1, $t0 -/* 0F0A74 7F0BBF44 00007012 */ mflo $t6 -/* 0F0A78 7F0BBF48 008AB023 */ subu $s6, $a0, $t2 -/* 0F0A7C 7F0BBF4C 0016CC00 */ sll $t9, $s6, 0x10 -/* 0F0A80 7F0BBF50 02730019 */ multu $s3, $s3 -/* 0F0A84 7F0BBF54 0019B403 */ sra $s6, $t9, 0x10 -/* 0F0A88 7F0BBF58 01AE7821 */ addu $t7, $t5, $t6 -/* 0F0A8C 7F0BBF5C 00156400 */ sll $t4, $s5, 0x10 -/* 0F0A90 7F0BBF60 000CAC03 */ sra $s5, $t4, 0x10 -/* 0F0A94 7F0BBF64 012A6023 */ subu $t4, $t1, $t2 -/* 0F0A98 7F0BBF68 A7AC00AE */ sh $t4, 0xae($sp) -/* 0F0A9C 7F0BBF6C 0000C012 */ mflo $t8 -/* 0F0AA0 7F0BBF70 01F8C821 */ addu $t9, $t7, $t8 -/* 0F0AA4 7F0BBF74 44992000 */ mtc1 $t9, $f4 -/* 0F0AA8 7F0BBF78 0C007DF8 */ jal sqrtf -/* 0F0AAC 7F0BBF7C 46802320 */ cvt.s.w $f12, $f4 -/* 0F0AB0 7F0BBF80 0FC2D20C */ jal get_room_data_float2 -/* 0F0AB4 7F0BBF84 46000506 */ mov.s $f20, $f0 -/* 0F0AB8 7F0BBF88 02940019 */ multu $s4, $s4 -/* 0F0ABC 7F0BBF8C 46140182 */ mul.s $f6, $f0, $f20 -/* 0F0AC0 7F0BBF90 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0F0AC4 7F0BBF94 4481D000 */ mtc1 $at, $f26 -/* 0F0AC8 7F0BBF98 00000000 */ nop -/* 0F0ACC 7F0BBF9C 4606D203 */ div.s $f8, $f26, $f6 -/* 0F0AD0 7F0BBFA0 00005812 */ mflo $t3 -/* 0F0AD4 7F0BBFA4 00000000 */ nop -/* 0F0AD8 7F0BBFA8 00000000 */ nop -/* 0F0ADC 7F0BBFAC 02B50019 */ multu $s5, $s5 -/* 0F0AE0 7F0BBFB0 00006012 */ mflo $t4 -/* 0F0AE4 7F0BBFB4 016C6821 */ addu $t5, $t3, $t4 -/* 0F0AE8 7F0BBFB8 00000000 */ nop -/* 0F0AEC 7F0BBFBC 02D60019 */ multu $s6, $s6 -/* 0F0AF0 7F0BBFC0 E7A800A8 */ swc1 $f8, 0xa8($sp) -/* 0F0AF4 7F0BBFC4 00007012 */ mflo $t6 -/* 0F0AF8 7F0BBFC8 01AE7821 */ addu $t7, $t5, $t6 -/* 0F0AFC 7F0BBFCC 448F5000 */ mtc1 $t7, $f10 -/* 0F0B00 7F0BBFD0 0C007DF8 */ jal sqrtf -/* 0F0B04 7F0BBFD4 46805320 */ cvt.s.w $f12, $f10 -/* 0F0B08 7F0BBFD8 0FC2D20C */ jal get_room_data_float2 -/* 0F0B0C 7F0BBFDC 46000506 */ mov.s $f20, $f0 -/* 0F0B10 7F0BBFE0 02F70019 */ multu $s7, $s7 -/* 0F0B14 7F0BBFE4 87A200B4 */ lh $v0, 0xb4($sp) -/* 0F0B18 7F0BBFE8 46140402 */ mul.s $f16, $f0, $f20 -/* 0F0B1C 7F0BBFEC 87A300AE */ lh $v1, 0xae($sp) -/* 0F0B20 7F0BBFF0 4610D483 */ div.s $f18, $f26, $f16 -/* 0F0B24 7F0BBFF4 0000C012 */ mflo $t8 -/* 0F0B28 7F0BBFF8 00000000 */ nop -/* 0F0B2C 7F0BBFFC 00000000 */ nop -/* 0F0B30 7F0BC000 00420019 */ multu $v0, $v0 -/* 0F0B34 7F0BC004 0000C812 */ mflo $t9 -/* 0F0B38 7F0BC008 03195821 */ addu $t3, $t8, $t9 -/* 0F0B3C 7F0BC00C 00000000 */ nop -/* 0F0B40 7F0BC010 00630019 */ multu $v1, $v1 -/* 0F0B44 7F0BC014 E7B200A4 */ swc1 $f18, 0xa4($sp) -/* 0F0B48 7F0BC018 00006012 */ mflo $t4 -/* 0F0B4C 7F0BC01C 016C6821 */ addu $t5, $t3, $t4 -/* 0F0B50 7F0BC020 448D2000 */ mtc1 $t5, $f4 -/* 0F0B54 7F0BC024 0C007DF8 */ jal sqrtf -/* 0F0B58 7F0BC028 46802320 */ cvt.s.w $f12, $f4 -/* 0F0B5C 7F0BC02C 0FC2D20C */ jal get_room_data_float2 -/* 0F0B60 7F0BC030 46000506 */ mov.s $f20, $f0 -/* 0F0B64 7F0BC034 46140182 */ mul.s $f6, $f0, $f20 -/* 0F0B68 7F0BC038 86440000 */ lh $a0, ($s2) -/* 0F0B6C 7F0BC03C 27A50094 */ addiu $a1, $sp, 0x94 -/* 0F0B70 7F0BC040 4606D203 */ div.s $f8, $f26, $f6 -/* 0F0B74 7F0BC044 0FC2F28D */ jal sub_GAME_7F0BCA34 -/* 0F0B78 7F0BC048 E7A800A0 */ swc1 $f8, 0xa0($sp) -/* 0F0B7C 7F0BC04C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F0B80 7F0BC050 4481C000 */ mtc1 $at, $f24 -/* 0F0B84 7F0BC054 4480B000 */ mtc1 $zero, $f22 -/* 0F0B88 7F0BC058 00000000 */ nop -/* 0F0B8C 7F0BC05C 4618B03C */ c.lt.s $f22, $f24 -/* 0F0B90 7F0BC060 4600B506 */ mov.s $f20, $f22 -/* 0F0B94 7F0BC064 45020039 */ bc1fl .L7F0BC14C -/* 0F0B98 7F0BC068 4618B03C */ c.lt.s $f22, $f24 -/* 0F0B9C 7F0BC06C 44905000 */ mtc1 $s0, $f10 -/* 0F0BA0 7F0BC070 44919000 */ mtc1 $s1, $f18 -/* 0F0BA4 7F0BC074 44933000 */ mtc1 $s3, $f6 -/* 0F0BA8 7F0BC078 46805420 */ cvt.s.w $f16, $f10 -/* 0F0BAC 7F0BC07C 27B00088 */ addiu $s0, $sp, 0x88 -/* 0F0BB0 7F0BC080 46809120 */ cvt.s.w $f4, $f18 -/* 0F0BB4 7F0BC084 E7B0006C */ swc1 $f16, 0x6c($sp) -/* 0F0BB8 7F0BC088 46803220 */ cvt.s.w $f8, $f6 -/* 0F0BBC 7F0BC08C E7A40068 */ swc1 $f4, 0x68($sp) -/* 0F0BC0 7F0BC090 E7A80064 */ swc1 $f8, 0x64($sp) -.L7F0BC094: -/* 0F0BC4 7F0BC094 0FC2D20C */ jal get_room_data_float2 -/* 0F0BC8 7F0BC098 00000000 */ nop -/* 0F0BCC 7F0BC09C 87A500E8 */ lh $a1, 0xe8($sp) -/* 0F0BD0 7F0BC0A0 C7B2006C */ lwc1 $f18, 0x6c($sp) -/* 0F0BD4 7F0BC0A4 44855000 */ mtc1 $a1, $f10 -/* 0F0BD8 7F0BC0A8 46149102 */ mul.s $f4, $f18, $f20 -/* 0F0BDC 7F0BC0AC 46805420 */ cvt.s.w $f16, $f10 -/* 0F0BE0 7F0BC0B0 C7AA0094 */ lwc1 $f10, 0x94($sp) -/* 0F0BE4 7F0BC0B4 46048180 */ add.s $f6, $f16, $f4 -/* 0F0BE8 7F0BC0B8 46003202 */ mul.s $f8, $f6, $f0 -/* 0F0BEC 7F0BC0BC 46085480 */ add.s $f18, $f10, $f8 -/* 0F0BF0 7F0BC0C0 0FC2D20C */ jal get_room_data_float2 -/* 0F0BF4 7F0BC0C4 E7B20088 */ swc1 $f18, 0x88($sp) -/* 0F0BF8 7F0BC0C8 87A700EA */ lh $a3, 0xea($sp) -/* 0F0BFC 7F0BC0CC C7A60068 */ lwc1 $f6, 0x68($sp) -/* 0F0C00 7F0BC0D0 44878000 */ mtc1 $a3, $f16 -/* 0F0C04 7F0BC0D4 46143282 */ mul.s $f10, $f6, $f20 -/* 0F0C08 7F0BC0D8 46808120 */ cvt.s.w $f4, $f16 -/* 0F0C0C 7F0BC0DC C7B00098 */ lwc1 $f16, 0x98($sp) -/* 0F0C10 7F0BC0E0 460A2200 */ add.s $f8, $f4, $f10 -/* 0F0C14 7F0BC0E4 46004482 */ mul.s $f18, $f8, $f0 -/* 0F0C18 7F0BC0E8 46128180 */ add.s $f6, $f16, $f18 -/* 0F0C1C 7F0BC0EC 0FC2D20C */ jal get_room_data_float2 -/* 0F0C20 7F0BC0F0 E7A6008C */ swc1 $f6, 0x8c($sp) -/* 0F0C24 7F0BC0F4 87A900EC */ lh $t1, 0xec($sp) -/* 0F0C28 7F0BC0F8 C7A80064 */ lwc1 $f8, 0x64($sp) -/* 0F0C2C 7F0BC0FC 4405B000 */ mfc1 $a1, $f22 -/* 0F0C30 7F0BC100 44892000 */ mtc1 $t1, $f4 -/* 0F0C34 7F0BC104 46144402 */ mul.s $f16, $f8, $f20 -/* 0F0C38 7F0BC108 4406D000 */ mfc1 $a2, $f26 -/* 0F0C3C 7F0BC10C 02002025 */ move $a0, $s0 -/* 0F0C40 7F0BC110 468022A0 */ cvt.s.w $f10, $f4 -/* 0F0C44 7F0BC114 C7A4009C */ lwc1 $f4, 0x9c($sp) -/* 0F0C48 7F0BC118 46105480 */ add.s $f18, $f10, $f16 -/* 0F0C4C 7F0BC11C 46009182 */ mul.s $f6, $f18, $f0 -/* 0F0C50 7F0BC120 46062200 */ add.s $f8, $f4, $f6 -/* 0F0C54 7F0BC124 0FC28858 */ jal sub_GAME_7F0A2160 -/* 0F0C58 7F0BC128 E7A80090 */ swc1 $f8, 0x90($sp) -/* 0F0C5C 7F0BC12C C7AA00A8 */ lwc1 $f10, 0xa8($sp) -/* 0F0C60 7F0BC130 460AA500 */ add.s $f20, $f20, $f10 -/* 0F0C64 7F0BC134 4618A03C */ c.lt.s $f20, $f24 -/* 0F0C68 7F0BC138 00000000 */ nop -/* 0F0C6C 7F0BC13C 4501FFD5 */ bc1t .L7F0BC094 -/* 0F0C70 7F0BC140 00000000 */ nop -/* 0F0C74 7F0BC144 4600B506 */ mov.s $f20, $f22 -/* 0F0C78 7F0BC148 4618B03C */ c.lt.s $f22, $f24 -.L7F0BC14C: -/* 0F0C7C 7F0BC14C 27B00088 */ addiu $s0, $sp, 0x88 -/* 0F0C80 7F0BC150 45020038 */ bc1fl .L7F0BC234 -/* 0F0C84 7F0BC154 4618B03C */ c.lt.s $f22, $f24 -/* 0F0C88 7F0BC158 44948000 */ mtc1 $s4, $f16 -/* 0F0C8C 7F0BC15C 44952000 */ mtc1 $s5, $f4 -/* 0F0C90 7F0BC160 44964000 */ mtc1 $s6, $f8 -/* 0F0C94 7F0BC164 468084A0 */ cvt.s.w $f18, $f16 -/* 0F0C98 7F0BC168 468021A0 */ cvt.s.w $f6, $f4 -/* 0F0C9C 7F0BC16C E7B2006C */ swc1 $f18, 0x6c($sp) -/* 0F0CA0 7F0BC170 468042A0 */ cvt.s.w $f10, $f8 -/* 0F0CA4 7F0BC174 E7A60068 */ swc1 $f6, 0x68($sp) -/* 0F0CA8 7F0BC178 E7AA0064 */ swc1 $f10, 0x64($sp) -.L7F0BC17C: -/* 0F0CAC 7F0BC17C 0FC2D20C */ jal get_room_data_float2 -/* 0F0CB0 7F0BC180 00000000 */ nop -/* 0F0CB4 7F0BC184 87A600E0 */ lh $a2, 0xe0($sp) -/* 0F0CB8 7F0BC188 C7A4006C */ lwc1 $f4, 0x6c($sp) -/* 0F0CBC 7F0BC18C 44868000 */ mtc1 $a2, $f16 -/* 0F0CC0 7F0BC190 46142182 */ mul.s $f6, $f4, $f20 -/* 0F0CC4 7F0BC194 468084A0 */ cvt.s.w $f18, $f16 -/* 0F0CC8 7F0BC198 C7B00094 */ lwc1 $f16, 0x94($sp) -/* 0F0CCC 7F0BC19C 46069200 */ add.s $f8, $f18, $f6 -/* 0F0CD0 7F0BC1A0 46004282 */ mul.s $f10, $f8, $f0 -/* 0F0CD4 7F0BC1A4 460A8100 */ add.s $f4, $f16, $f10 -/* 0F0CD8 7F0BC1A8 0FC2D20C */ jal get_room_data_float2 -/* 0F0CDC 7F0BC1AC E7A40088 */ swc1 $f4, 0x88($sp) -/* 0F0CE0 7F0BC1B0 87A800E2 */ lh $t0, 0xe2($sp) -/* 0F0CE4 7F0BC1B4 C7A80068 */ lwc1 $f8, 0x68($sp) -/* 0F0CE8 7F0BC1B8 44889000 */ mtc1 $t0, $f18 -/* 0F0CEC 7F0BC1BC 46144402 */ mul.s $f16, $f8, $f20 -/* 0F0CF0 7F0BC1C0 468091A0 */ cvt.s.w $f6, $f18 -/* 0F0CF4 7F0BC1C4 C7B20098 */ lwc1 $f18, 0x98($sp) -/* 0F0CF8 7F0BC1C8 46103280 */ add.s $f10, $f6, $f16 -/* 0F0CFC 7F0BC1CC 46005102 */ mul.s $f4, $f10, $f0 -/* 0F0D00 7F0BC1D0 46049200 */ add.s $f8, $f18, $f4 -/* 0F0D04 7F0BC1D4 0FC2D20C */ jal get_room_data_float2 -/* 0F0D08 7F0BC1D8 E7A8008C */ swc1 $f8, 0x8c($sp) -/* 0F0D0C 7F0BC1DC 87AA00E4 */ lh $t2, 0xe4($sp) -/* 0F0D10 7F0BC1E0 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* 0F0D14 7F0BC1E4 4405B000 */ mfc1 $a1, $f22 -/* 0F0D18 7F0BC1E8 448A3000 */ mtc1 $t2, $f6 -/* 0F0D1C 7F0BC1EC 46145482 */ mul.s $f18, $f10, $f20 -/* 0F0D20 7F0BC1F0 4406D000 */ mfc1 $a2, $f26 -/* 0F0D24 7F0BC1F4 02002025 */ move $a0, $s0 -/* 0F0D28 7F0BC1F8 46803420 */ cvt.s.w $f16, $f6 -/* 0F0D2C 7F0BC1FC C7A6009C */ lwc1 $f6, 0x9c($sp) -/* 0F0D30 7F0BC200 46128100 */ add.s $f4, $f16, $f18 -/* 0F0D34 7F0BC204 46002202 */ mul.s $f8, $f4, $f0 -/* 0F0D38 7F0BC208 46083280 */ add.s $f10, $f6, $f8 -/* 0F0D3C 7F0BC20C 0FC28858 */ jal sub_GAME_7F0A2160 -/* 0F0D40 7F0BC210 E7AA0090 */ swc1 $f10, 0x90($sp) -/* 0F0D44 7F0BC214 C7B000A4 */ lwc1 $f16, 0xa4($sp) -/* 0F0D48 7F0BC218 4610A500 */ add.s $f20, $f20, $f16 -/* 0F0D4C 7F0BC21C 4618A03C */ c.lt.s $f20, $f24 -/* 0F0D50 7F0BC220 00000000 */ nop -/* 0F0D54 7F0BC224 4501FFD5 */ bc1t .L7F0BC17C -/* 0F0D58 7F0BC228 00000000 */ nop -/* 0F0D5C 7F0BC22C 4600B506 */ mov.s $f20, $f22 -/* 0F0D60 7F0BC230 4618B03C */ c.lt.s $f22, $f24 -.L7F0BC234: -/* 0F0D64 7F0BC234 00000000 */ nop -/* 0F0D68 7F0BC238 45020039 */ bc1fl .L7F0BC320 -/* 0F0D6C 7F0BC23C 8E530004 */ lw $s3, 4($s2) -/* 0F0D70 7F0BC240 87AE00B4 */ lh $t6, 0xb4($sp) -/* 0F0D74 7F0BC244 87AF00AE */ lh $t7, 0xae($sp) -/* 0F0D78 7F0BC248 44979000 */ mtc1 $s7, $f18 -/* 0F0D7C 7F0BC24C 448E3000 */ mtc1 $t6, $f6 -/* 0F0D80 7F0BC250 448F5000 */ mtc1 $t7, $f10 -/* 0F0D84 7F0BC254 46809120 */ cvt.s.w $f4, $f18 -/* 0F0D88 7F0BC258 46803220 */ cvt.s.w $f8, $f6 -/* 0F0D8C 7F0BC25C E7A4006C */ swc1 $f4, 0x6c($sp) -/* 0F0D90 7F0BC260 46805420 */ cvt.s.w $f16, $f10 -/* 0F0D94 7F0BC264 E7A80068 */ swc1 $f8, 0x68($sp) -/* 0F0D98 7F0BC268 E7B00064 */ swc1 $f16, 0x64($sp) -.L7F0BC26C: -/* 0F0D9C 7F0BC26C 0FC2D20C */ jal get_room_data_float2 -/* 0F0DA0 7F0BC270 00000000 */ nop -/* 0F0DA4 7F0BC274 87A600E0 */ lh $a2, 0xe0($sp) -/* 0F0DA8 7F0BC278 C7A6006C */ lwc1 $f6, 0x6c($sp) -/* 0F0DAC 7F0BC27C 44869000 */ mtc1 $a2, $f18 -/* 0F0DB0 7F0BC280 46143202 */ mul.s $f8, $f6, $f20 -/* 0F0DB4 7F0BC284 46809120 */ cvt.s.w $f4, $f18 -/* 0F0DB8 7F0BC288 C7B20094 */ lwc1 $f18, 0x94($sp) -/* 0F0DBC 7F0BC28C 46082280 */ add.s $f10, $f4, $f8 -/* 0F0DC0 7F0BC290 46005402 */ mul.s $f16, $f10, $f0 -/* 0F0DC4 7F0BC294 46109180 */ add.s $f6, $f18, $f16 -/* 0F0DC8 7F0BC298 0FC2D20C */ jal get_room_data_float2 -/* 0F0DCC 7F0BC29C E7A60088 */ swc1 $f6, 0x88($sp) -/* 0F0DD0 7F0BC2A0 87A800E2 */ lh $t0, 0xe2($sp) -/* 0F0DD4 7F0BC2A4 C7AA0068 */ lwc1 $f10, 0x68($sp) -/* 0F0DD8 7F0BC2A8 44882000 */ mtc1 $t0, $f4 -/* 0F0DDC 7F0BC2AC 46145482 */ mul.s $f18, $f10, $f20 -/* 0F0DE0 7F0BC2B0 46802220 */ cvt.s.w $f8, $f4 -/* 0F0DE4 7F0BC2B4 C7A40098 */ lwc1 $f4, 0x98($sp) -/* 0F0DE8 7F0BC2B8 46124400 */ add.s $f16, $f8, $f18 -/* 0F0DEC 7F0BC2BC 46008182 */ mul.s $f6, $f16, $f0 -/* 0F0DF0 7F0BC2C0 46062280 */ add.s $f10, $f4, $f6 -/* 0F0DF4 7F0BC2C4 0FC2D20C */ jal get_room_data_float2 -/* 0F0DF8 7F0BC2C8 E7AA008C */ swc1 $f10, 0x8c($sp) -/* 0F0DFC 7F0BC2CC 87AA00E4 */ lh $t2, 0xe4($sp) -/* 0F0E00 7F0BC2D0 C7B00064 */ lwc1 $f16, 0x64($sp) -/* 0F0E04 7F0BC2D4 4405B000 */ mfc1 $a1, $f22 -/* 0F0E08 7F0BC2D8 448A4000 */ mtc1 $t2, $f8 -/* 0F0E0C 7F0BC2DC 46148102 */ mul.s $f4, $f16, $f20 -/* 0F0E10 7F0BC2E0 4406D000 */ mfc1 $a2, $f26 -/* 0F0E14 7F0BC2E4 02002025 */ move $a0, $s0 -/* 0F0E18 7F0BC2E8 468044A0 */ cvt.s.w $f18, $f8 -/* 0F0E1C 7F0BC2EC C7A8009C */ lwc1 $f8, 0x9c($sp) -/* 0F0E20 7F0BC2F0 46049180 */ add.s $f6, $f18, $f4 -/* 0F0E24 7F0BC2F4 46003282 */ mul.s $f10, $f6, $f0 -/* 0F0E28 7F0BC2F8 460A4400 */ add.s $f16, $f8, $f10 -/* 0F0E2C 7F0BC2FC 0FC28858 */ jal sub_GAME_7F0A2160 -/* 0F0E30 7F0BC300 E7B00090 */ swc1 $f16, 0x90($sp) -/* 0F0E34 7F0BC304 C7B200A0 */ lwc1 $f18, 0xa0($sp) -/* 0F0E38 7F0BC308 4612A500 */ add.s $f20, $f20, $f18 -/* 0F0E3C 7F0BC30C 4618A03C */ c.lt.s $f20, $f24 -/* 0F0E40 7F0BC310 00000000 */ nop -/* 0F0E44 7F0BC314 4501FFD5 */ bc1t .L7F0BC26C -/* 0F0E48 7F0BC318 00000000 */ nop -/* 0F0E4C 7F0BC31C 8E530004 */ lw $s3, 4($s2) -.L7F0BC320: -/* 0F0E50 7F0BC320 8E430008 */ lw $v1, 8($s2) -/* 0F0E54 7F0BC324 24170004 */ li $s7, 4 -/* 0F0E58 7F0BC328 27B600C8 */ addiu $s6, $sp, 0xc8 -/* 0F0E5C 7F0BC32C 0263082B */ sltu $at, $s3, $v1 -/* 0F0E60 7F0BC330 10200055 */ beqz $at, .L7F0BC488 -/* 0F0E64 7F0BC334 27B500D0 */ addiu $s5, $sp, 0xd0 -/* 0F0E68 7F0BC338 27B400D8 */ addiu $s4, $sp, 0xd8 -/* 0F0E6C 7F0BC33C 82620000 */ lb $v0, ($s3) -.L7F0BC340: -/* 0F0E70 7F0BC340 2401FFBF */ li $at, -65 -/* 0F0E74 7F0BC344 00008025 */ move $s0, $zero -/* 0F0E78 7F0BC348 14410020 */ bne $v0, $at, .L7F0BC3CC -/* 0F0E7C 7F0BC34C 02602025 */ move $a0, $s3 -/* 0F0E80 7F0BC350 00002825 */ move $a1, $zero -/* 0F0E84 7F0BC354 86460000 */ lh $a2, ($s2) -/* 0F0E88 7F0BC358 02803825 */ move $a3, $s4 -/* 0F0E8C 7F0BC35C AFB50010 */ sw $s5, 0x10($sp) -/* 0F0E90 7F0BC360 0FC2EE1D */ jal sub_GAME_7F0BB874 -/* 0F0E94 7F0BC364 AFB60014 */ sw $s6, 0x14($sp) -/* 0F0E98 7F0BC368 02802025 */ move $a0, $s4 -/* 0F0E9C 7F0BC36C 0FC2EF33 */ jal sub_GAME_7F0BBCCC -/* 0F0EA0 7F0BC370 86450000 */ lh $a1, ($s2) -/* 0F0EA4 7F0BC374 10400003 */ beqz $v0, .L7F0BC384 -/* 0F0EA8 7F0BC378 02A02025 */ move $a0, $s5 -/* 0F0EAC 7F0BC37C 1000000C */ b .L7F0BC3B0 -/* 0F0EB0 7F0BC380 24100001 */ li $s0, 1 -.L7F0BC384: -/* 0F0EB4 7F0BC384 0FC2EF33 */ jal sub_GAME_7F0BBCCC -/* 0F0EB8 7F0BC388 86450000 */ lh $a1, ($s2) -/* 0F0EBC 7F0BC38C 10400003 */ beqz $v0, .L7F0BC39C -/* 0F0EC0 7F0BC390 02C02025 */ move $a0, $s6 -/* 0F0EC4 7F0BC394 10000006 */ b .L7F0BC3B0 -/* 0F0EC8 7F0BC398 24100001 */ li $s0, 1 -.L7F0BC39C: -/* 0F0ECC 7F0BC39C 0FC2EF33 */ jal sub_GAME_7F0BBCCC -/* 0F0ED0 7F0BC3A0 86450000 */ lh $a1, ($s2) -/* 0F0ED4 7F0BC3A4 10400002 */ beqz $v0, .L7F0BC3B0 -/* 0F0ED8 7F0BC3A8 00000000 */ nop -/* 0F0EDC 7F0BC3AC 24100001 */ li $s0, 1 -.L7F0BC3B0: -/* 0F0EE0 7F0BC3B0 12000004 */ beqz $s0, .L7F0BC3C4 -/* 0F0EE4 7F0BC3B4 02602025 */ move $a0, $s3 -/* 0F0EE8 7F0BC3B8 00002825 */ move $a1, $zero -/* 0F0EEC 7F0BC3BC 0FC2EEEA */ jal sub_GAME_7F0BBBA8 -/* 0F0EF0 7F0BC3C0 86460000 */ lh $a2, ($s2) -.L7F0BC3C4: -/* 0F0EF4 7F0BC3C4 10000027 */ b .L7F0BC464 -/* 0F0EF8 7F0BC3C8 8E430008 */ lw $v1, 8($s2) -.L7F0BC3CC: -/* 0F0EFC 7F0BC3CC 2401FFB1 */ li $at, -79 -/* 0F0F00 7F0BC3D0 14410024 */ bne $v0, $at, .L7F0BC464 -/* 0F0F04 7F0BC3D4 00001025 */ move $v0, $zero -.L7F0BC3D8: -/* 0F0F08 7F0BC3D8 24510001 */ addiu $s1, $v0, 1 -/* 0F0F0C 7F0BC3DC 00008025 */ move $s0, $zero -/* 0F0F10 7F0BC3E0 02202825 */ move $a1, $s1 -/* 0F0F14 7F0BC3E4 02602025 */ move $a0, $s3 -/* 0F0F18 7F0BC3E8 86460000 */ lh $a2, ($s2) -/* 0F0F1C 7F0BC3EC 02803825 */ move $a3, $s4 -/* 0F0F20 7F0BC3F0 AFB50010 */ sw $s5, 0x10($sp) -/* 0F0F24 7F0BC3F4 0FC2EE1D */ jal sub_GAME_7F0BB874 -/* 0F0F28 7F0BC3F8 AFB60014 */ sw $s6, 0x14($sp) -/* 0F0F2C 7F0BC3FC 02802025 */ move $a0, $s4 -/* 0F0F30 7F0BC400 0FC2EF33 */ jal sub_GAME_7F0BBCCC -/* 0F0F34 7F0BC404 86450000 */ lh $a1, ($s2) -/* 0F0F38 7F0BC408 10400003 */ beqz $v0, .L7F0BC418 -/* 0F0F3C 7F0BC40C 02A02025 */ move $a0, $s5 -/* 0F0F40 7F0BC410 1000000C */ b .L7F0BC444 -/* 0F0F44 7F0BC414 24100001 */ li $s0, 1 -.L7F0BC418: -/* 0F0F48 7F0BC418 0FC2EF33 */ jal sub_GAME_7F0BBCCC -/* 0F0F4C 7F0BC41C 86450000 */ lh $a1, ($s2) -/* 0F0F50 7F0BC420 10400003 */ beqz $v0, .L7F0BC430 -/* 0F0F54 7F0BC424 02C02025 */ move $a0, $s6 -/* 0F0F58 7F0BC428 10000006 */ b .L7F0BC444 -/* 0F0F5C 7F0BC42C 24100001 */ li $s0, 1 -.L7F0BC430: -/* 0F0F60 7F0BC430 0FC2EF33 */ jal sub_GAME_7F0BBCCC -/* 0F0F64 7F0BC434 86450000 */ lh $a1, ($s2) -/* 0F0F68 7F0BC438 10400002 */ beqz $v0, .L7F0BC444 -/* 0F0F6C 7F0BC43C 00000000 */ nop -/* 0F0F70 7F0BC440 24100001 */ li $s0, 1 -.L7F0BC444: -/* 0F0F74 7F0BC444 12000004 */ beqz $s0, .L7F0BC458 -/* 0F0F78 7F0BC448 02602025 */ move $a0, $s3 -/* 0F0F7C 7F0BC44C 02202825 */ move $a1, $s1 -/* 0F0F80 7F0BC450 0FC2EEEA */ jal sub_GAME_7F0BBBA8 -/* 0F0F84 7F0BC454 86460000 */ lh $a2, ($s2) -.L7F0BC458: -/* 0F0F88 7F0BC458 1637FFDF */ bne $s1, $s7, .L7F0BC3D8 -/* 0F0F8C 7F0BC45C 02201025 */ move $v0, $s1 -/* 0F0F90 7F0BC460 8E430008 */ lw $v1, 8($s2) -.L7F0BC464: -/* 0F0F94 7F0BC464 26730008 */ addiu $s3, $s3, 8 -/* 0F0F98 7F0BC468 0263082B */ sltu $at, $s3, $v1 -/* 0F0F9C 7F0BC46C 5420FFB4 */ bnezl $at, .L7F0BC340 -/* 0F0FA0 7F0BC470 82620000 */ lb $v0, ($s3) -/* 0F0FA4 7F0BC474 10000005 */ b .L7F0BC48C -/* 0F0FA8 7F0BC478 8FBF005C */ lw $ra, 0x5c($sp) -.L7F0BC47C: -/* 0F0FAC 7F0BC47C 2652000C */ addiu $s2, $s2, 0xc -.L7F0BC480: -/* 0F0FB0 7F0BC480 5642FE78 */ bnel $s2, $v0, .L7F0BBE64 -/* 0F0FB4 7F0BC484 86460000 */ lh $a2, ($s2) -.L7F0BC488: -/* 0F0FB8 7F0BC488 8FBF005C */ lw $ra, 0x5c($sp) -.L7F0BC48C: -/* 0F0FBC 7F0BC48C D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0F0FC0 7F0BC490 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0F0FC4 7F0BC494 D7B80028 */ ldc1 $f24, 0x28($sp) -/* 0F0FC8 7F0BC498 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* 0F0FCC 7F0BC49C 8FB0003C */ lw $s0, 0x3c($sp) -/* 0F0FD0 7F0BC4A0 8FB10040 */ lw $s1, 0x40($sp) -/* 0F0FD4 7F0BC4A4 8FB20044 */ lw $s2, 0x44($sp) -/* 0F0FD8 7F0BC4A8 8FB30048 */ lw $s3, 0x48($sp) -/* 0F0FDC 7F0BC4AC 8FB4004C */ lw $s4, 0x4c($sp) -/* 0F0FE0 7F0BC4B0 8FB50050 */ lw $s5, 0x50($sp) -/* 0F0FE4 7F0BC4B4 8FB60054 */ lw $s6, 0x54($sp) -/* 0F0FE8 7F0BC4B8 8FB70058 */ lw $s7, 0x58($sp) -/* 0F0FEC 7F0BC4BC 03E00008 */ jr $ra -/* 0F0FF0 7F0BC4C0 27BD00F8 */ addiu $sp, $sp, 0xf8 -) -#endif - - - - -#ifdef NONMATCHING// -void sub_GAME_7F0BC4C4(u16 arg0) +Vtx * return_ptr_vertex_of_entry_room(Gfx * gfx, s32 room_index) { + Vtx * ret; + + while (gfx->dma.cmd != G_VTX ){ gfx--; } + + ret = gfx->dma.addr; + + // weird memory checking, not sure what's going on here + if (((s32) ret & 0xFF000000) == 0x0E000000) { + ret = (s32)array_room_info[room_index].ptr_point_index + ((s32) ret & 0xFFFFFF); + } + + return ret; +} + + +void extract_vertex_indices_from_triangle(Gfx* gfx, u32 tri_type, s32* idx1, s32* idx2, s32* idx3) +{ + switch (tri_type) { + case 0: + *idx1 = (s32) gfx->tri.tri.v[0] / 10; + *idx2 = (s32) gfx->tri.tri.v[1] / 10; + *idx3 = (s32) gfx->tri.tri.v[2] / 10; + break; + // unsure of how to cleanly access the below versions + case 1: + *idx1 = ((u32*)gfx)[1] & 0xF; + *idx2 = ((((u8*)gfx)[7]) & 0xFFFFFFFFu) >> 4; + *idx3 = ((s32*)gfx)[0] & 0xF; + break; + case 2: + *idx1 = ((u8*)gfx)[6] & 0xF; + *idx2 = ((((u16*)gfx)[3]) & 0xFFFFFFFFu) >> 0xC; + *idx3 = ((((u8*)gfx)[3]) & 0xFFFFFFFFu) >> 4; + break; + case 3: + *idx1 = ((u16*)gfx)[2] & 0xF; + *idx2 = ((((u8*)gfx)[5]) & 0xFFFFFFFFu) >> 4; + *idx3 = ((u8*)gfx)[2] & 0xF; + break; + case 4: + *idx1 = ((u8*)gfx)[4] & 0xF; + *idx2 = ((u32*)gfx)[1] >> 0x1C; + *idx3 = ((((u16*)gfx)[1]) & 0xFFFFFFFFu) >> 0xC; + break; + } +} + + +void extract_vertex_coords_from_triangle(Gfx * gfx, u32 tri_type, s32 room_index, coord16 * out1, coord16 * out2, coord16 * out3) +{ + s32 idx1; + s32 idx2; + s32 idx3; + Vtx * vertices; + + extract_vertex_indices_from_triangle(gfx, tri_type, &idx1, &idx2, &idx3); + vertices = return_ptr_vertex_of_entry_room(gfx, room_index); + + out1->AsArray[0] = (s16) vertices[idx1].v.ob[0]; + out1->AsArray[1] = (s16) vertices[idx1].v.ob[1]; + out1->AsArray[2] = (s16) vertices[idx1].v.ob[2]; + + out2->AsArray[0] = (s16) vertices[idx2].v.ob[0]; + out2->AsArray[1] = (s16) vertices[idx2].v.ob[1]; + out2->AsArray[2] = (s16) vertices[idx2].v.ob[2]; + + out3->AsArray[0] = (s16) vertices[idx3].v.ob[0]; + out3->AsArray[1] = (s16) vertices[idx3].v.ob[1]; + out3->AsArray[2] = (s16) vertices[idx3].v.ob[2]; +} + + +void redarken_lights_in_room(s32 room_index) +{ + Vtx * vertex; + s32 i; + struct s_darkened_light* unk; + + vertex = array_room_info[room_index].ptr_point_index; + + for (i = 0; i < DARKENED_LIGHT_TABLE_MAX; i++) + { + unk = &darkened_light_table[i]; + + if (room_index != unk->room_index) { continue; } + + vertex[unk->vtx_index].v.cn[0] >>= 2; + vertex[unk->vtx_index].v.cn[1] >>= 2; + vertex[unk->vtx_index].v.cn[2] >>= 2; + vertex[unk->vtx_index].v.cn[3] >>= 2; + } +} + + +void darken_vertex_in_room(Vtx * vertex, s32 room_index) +{ + s32 vtx_index; + + if (darkened_light_table_contains_vertex(vertex, room_index) != 0) { return; } + + // weird memory stuff going on here + vtx_index = ((u32)vertex - (u32)array_room_info[room_index].ptr_point_index) >> 4; + + darkened_light_table[cur_entry_darkened_light_table].room_index = (u16) room_index; + darkened_light_table[cur_entry_darkened_light_table].vtx_index = vtx_index; + + vertex->v.cn[0] >>= 2; + vertex->v.cn[1] >>= 2; + vertex->v.cn[2] >>= 2; + vertex->v.cn[3] >>= 2; + + cur_entry_darkened_light_table++; + + if (cur_entry_darkened_light_table >= DARKENED_LIGHT_TABLE_MAX) + { + cur_entry_darkened_light_table = 0; + } +} + + +s32 darkened_light_table_contains_vertex(Vtx * vertex, s32 room_index) +{ + u32 vtx_index; s32 i; - for (i=0;i> 4; + + for (i = 0; i < DARKENED_LIGHT_TABLE_MAX; i++) { - if (arg0 == light_fixture_table[i].index) + if ((room_index == darkened_light_table[i].room_index) && ((s32)vtx_index == darkened_light_table[i].vtx_index)) { - light_fixture_table[i].index = 0; - } - if (arg0 == light_fixture_table[i+1].index) - { - light_fixture_table[i+1].index = 0; - } - if (arg0 == light_fixture_table[i+2].index) - { - light_fixture_table[i+2].index = 0; - } - if (arg0 == light_fixture_table[i+3].index) - { - light_fixture_table[i+3].index = 0; + return TRUE; } } - index_of_cur_entry_lightfixture_table = arg0; + + return FALSE; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BC4C4 -/* 0F0FF4 7F0BC4C4 3C038008 */ lui $v1, %hi(light_fixture_table) -/* 0F0FF8 7F0BC4C8 3C028008 */ lui $v0, %hi(cur_entry_lightfixture_table) -/* 0F0FFC 7F0BC4CC 24422B10 */ addiu $v0, %lo(cur_entry_lightfixture_table) # addiu $v0, $v0, 0x2b10 -/* 0F1000 7F0BC4D0 24632660 */ addiu $v1, %lo(light_fixture_table) # addiu $v1, $v1, 0x2660 -/* 0F1004 7F0BC4D4 846E0000 */ lh $t6, ($v1) -.L7F0BC4D8: -/* 0F1008 7F0BC4D8 548E0003 */ bnel $a0, $t6, .L7F0BC4E8 -/* 0F100C 7F0BC4DC 846F000C */ lh $t7, 0xc($v1) -/* 0F1010 7F0BC4E0 A4600000 */ sh $zero, ($v1) -/* 0F1014 7F0BC4E4 846F000C */ lh $t7, 0xc($v1) -.L7F0BC4E8: -/* 0F1018 7F0BC4E8 548F0003 */ bnel $a0, $t7, .L7F0BC4F8 -/* 0F101C 7F0BC4EC 84780018 */ lh $t8, 0x18($v1) -/* 0F1020 7F0BC4F0 A460000C */ sh $zero, 0xc($v1) -/* 0F1024 7F0BC4F4 84780018 */ lh $t8, 0x18($v1) -.L7F0BC4F8: -/* 0F1028 7F0BC4F8 54980003 */ bnel $a0, $t8, .L7F0BC508 -/* 0F102C 7F0BC4FC 84790024 */ lh $t9, 0x24($v1) -/* 0F1030 7F0BC500 A4600018 */ sh $zero, 0x18($v1) -/* 0F1034 7F0BC504 84790024 */ lh $t9, 0x24($v1) -.L7F0BC508: -/* 0F1038 7F0BC508 54990003 */ bnel $a0, $t9, .L7F0BC518 -/* 0F103C 7F0BC50C 24630030 */ addiu $v1, $v1, 0x30 -/* 0F1040 7F0BC510 A4600024 */ sh $zero, 0x24($v1) -/* 0F1044 7F0BC514 24630030 */ addiu $v1, $v1, 0x30 -.L7F0BC518: -/* 0F1048 7F0BC518 5462FFEF */ bnel $v1, $v0, .L7F0BC4D8 -/* 0F104C 7F0BC51C 846E0000 */ lh $t6, ($v1) -/* 0F1050 7F0BC520 3C018008 */ lui $at, %hi(index_of_cur_entry_lightfixture_table) -/* 0F1054 7F0BC524 03E00008 */ jr $ra -/* 0F1058 7F0BC528 A4242B12 */ sh $a0, %lo(index_of_cur_entry_lightfixture_table)($at) -) -#endif + +void darken_triangle_in_room(Gfx *gfx, u32 tri_type, s32 room_index) +{ + Vtx * vertex; + s32 idx1; + s32 idx2; + s32 idx3; + Vtx * vertices; + + extract_vertex_indices_from_triangle(gfx, tri_type, &idx1, &idx2, &idx3); + vertices = return_ptr_vertex_of_entry_room(gfx, room_index); + + darken_vertex_in_room(&vertices[idx1], room_index); + darken_vertex_in_room(&vertices[idx2], room_index); + + vertex = &vertices[idx3]; + darken_vertex_in_room(vertex, room_index); +} +s32 darkened_light_table_contains_triangle(Gfx * gfx, u32 tri_type, s32 room_index) +{ + s32 out3; + s32 idx1; + s32 idx2; + s32 idx3; + Vtx * vertices; + s32 out2; + s32 out1; + + extract_vertex_indices_from_triangle(gfx, tri_type, &idx1, &idx2, &idx3); + vertices = return_ptr_vertex_of_entry_room(gfx, room_index); + out1 = darkened_light_table_contains_vertex(&vertices[idx2], room_index); + out2 = darkened_light_table_contains_vertex(&vertices[idx1], room_index); + out3 = darkened_light_table_contains_vertex(&vertices[idx3], room_index); + return out3 + out2 + out1; +} + + +s32 sub_GAME_7F0BBCCC(coord16 * coord, s32 room_index) +{ + s32 var_s0; + s32 var_s1; + s32 i; + s32 var_s2; + Vtx * vertex; + + i = 0; + do + { + if (room_index == darkened_light_table[i].room_index) + { + vertex = &array_room_info[room_index].ptr_point_index[darkened_light_table[i].vtx_index]; + + var_s0 = vertex->v.ob[0] - coord->AsArray[0]; + var_s1 = vertex->v.ob[1] - coord->AsArray[1]; + var_s2 = vertex->v.ob[2] - coord->AsArray[2]; + + if (var_s0 < 0) { var_s0 = -var_s0; } + if (var_s1 < 0) { var_s1 = -var_s1; } + if (var_s2 < 0) { var_s2 = -var_s2; } + + if ((var_s0 + var_s1 + var_s2) < (s32) (get_room_data_float1() * 100.0f)) + { + return 1; + } + } + } while (++i < DARKENED_LIGHT_TABLE_MAX); + + return 0; +} + + +void sub_GAME_7F0BBE0C(Gfx * gfx, u32 tri_type, s32 room_index) +{ + s16 diff_z_12; + coord16 coord1; + coord16 coord2; + coord16 coord3; + coord16 coord4; + coord16 coord5; + coord16 coord6; + s16 diff_x_13; + s16 diff_x_12; + Gfx *gfx2; + f32 dist_tween; + s32 j; + s8 exec; + s8 exec2; + s16 diff_y_13; + s16 diff_y_12; + s16 diff_x_23; + s16 diff_z_13; + f32 inv_dist_12; + f32 inv_dist_23; + f32 inv_dist_13; + coord3d origin; + coord3d calc_coord; + s32 i; + s16 diff_z_23; + f32 dist_nn; + s16 diff_y_23; + + for (i = 0; i < LIGHTFIXTURE_TABLE_MAX; i++) + { + if (room_index != light_fixture_table[i].room_index) { continue; } + + if (gfx < light_fixture_table[i].ptr_start_pertinent_DL) { continue; } + if (gfx >= light_fixture_table[i].ptr_end_pertinent_DL) { continue; } + + if (darkened_light_table_contains_triangle(gfx, tri_type, light_fixture_table[i].room_index) != 0) { return; } + + darken_triangle_in_room(gfx, tri_type, light_fixture_table[i].room_index); + extract_vertex_coords_from_triangle(gfx, tri_type, light_fixture_table[i].room_index, &coord1, &coord2, &coord3); + + diff_x_12 = coord1.AsArray[0] - coord2.AsArray[0]; + diff_x_23 = coord1.AsArray[0] - coord3.AsArray[0]; + diff_x_13 = coord2.AsArray[0] - coord3.AsArray[0]; + + diff_y_12 = coord1.AsArray[1] - coord2.AsArray[1]; + diff_y_23 = coord1.AsArray[1] - coord3.AsArray[1]; + diff_y_13 = coord2.AsArray[1] - coord3.AsArray[1]; + + diff_z_12 = coord1.AsArray[2] - coord2.AsArray[2]; + diff_z_23 = coord1.AsArray[2] - coord3.AsArray[2]; + diff_z_13 = coord2.AsArray[2] - coord3.AsArray[2]; + + dist_nn = sqrtf((diff_x_12 * diff_x_12) + (diff_y_12 * diff_y_12) + (diff_z_12 * diff_z_12)); + inv_dist_12 = 10.0f / (get_room_data_float2() * dist_nn); + + dist_nn = sqrtf((diff_x_23 * diff_x_23) + (diff_y_23 * diff_y_23) + (diff_z_23 * diff_z_23)); + inv_dist_23 = 10.0f / (get_room_data_float2() * dist_nn); + + dist_nn = sqrtf((diff_x_13 * diff_x_13) + (diff_y_13 * diff_y_13) + (diff_z_13 * diff_z_13)); + inv_dist_13 = 10.0f / (get_room_data_float2() * dist_nn); + + sub_GAME_7F0BCA34(light_fixture_table[i].room_index, &origin); + + for (dist_tween = 0.0f; dist_tween < 1.0f; dist_tween += inv_dist_12) + { + calc_coord.x = ((coord2.AsArray[0] + (diff_x_12 * dist_tween)) * get_room_data_float2()) + origin.f[0]; + calc_coord.y = ((coord2.AsArray[1] + (diff_y_12 * dist_tween)) * get_room_data_float2()) + origin.f[1]; + calc_coord.z = ((coord2.AsArray[2] + (diff_z_12 * dist_tween)) * get_room_data_float2()) + origin.f[2]; + sub_GAME_7F0A2160(&calc_coord, 0.0f, 10.0f); + } + + for (dist_tween = 0.0f; dist_tween < 1.0f; dist_tween += inv_dist_23) + { + calc_coord.x = ((coord3.AsArray[0] + (diff_x_23 * dist_tween)) * get_room_data_float2()) + origin.f[0]; + calc_coord.y = ((coord3.AsArray[1] + (diff_y_23 * dist_tween)) * get_room_data_float2()) + origin.f[1]; + calc_coord.z = ((coord3.AsArray[2] + (diff_z_23 * dist_tween)) * get_room_data_float2()) + origin.f[2]; + sub_GAME_7F0A2160(&calc_coord, 0.0f, 10.0f); + } + + for (dist_tween = 0.0f; dist_tween < 1.0f; dist_tween += inv_dist_13) + { + calc_coord.x = ((coord3.AsArray[0] + (diff_x_13 * dist_tween)) * get_room_data_float2()) + origin.f[0]; + calc_coord.y = ((coord3.AsArray[1] + (diff_y_13 * dist_tween)) * get_room_data_float2()) + origin.f[1]; + calc_coord.z = ((coord3.AsArray[2] + (diff_z_13 * dist_tween)) * get_room_data_float2()) + origin.f[2]; + sub_GAME_7F0A2160(&calc_coord, 0.0f, 10.0f); + } + + for (gfx2 = light_fixture_table[i].ptr_start_pertinent_DL; gfx2 < light_fixture_table[i].ptr_end_pertinent_DL; gfx2++) + { + if (gfx2->dma.cmd == G_TRI1) + { + exec = 0; + + extract_vertex_coords_from_triangle(gfx2, 0U, light_fixture_table[i].room_index, &coord4, &coord5, &coord6); + + if (sub_GAME_7F0BBCCC(&coord4, light_fixture_table[i].room_index) != 0) + { + exec = 1; + } + else if (sub_GAME_7F0BBCCC(&coord5, light_fixture_table[i].room_index) != 0) + { + exec = 1; + } + else if (sub_GAME_7F0BBCCC(&coord6, light_fixture_table[i].room_index) != 0) + { + exec = 1; + } + + if (exec != 0) + { + darken_triangle_in_room(gfx2, 0U, light_fixture_table[i].room_index); + } + } + else if (gfx2->dma.cmd == -0x4f /* G_TRI2 ? */) + { + for (j = 0; j < 4; j++) + { + exec2 = 0; + + extract_vertex_coords_from_triangle(gfx2, j + 1, light_fixture_table[i].room_index, &coord4, &coord5, &coord6); + + if (sub_GAME_7F0BBCCC(&coord4, light_fixture_table[i].room_index) != 0) + { + exec2 = 1; + } + else if (sub_GAME_7F0BBCCC(&coord5, light_fixture_table[i].room_index) != 0) + { + exec2 = 1; + } + else if (sub_GAME_7F0BBCCC(&coord6, light_fixture_table[i].room_index) != 0) + { + exec2 = 1; + } + + if (exec2 != 0) + { + darken_triangle_in_room(gfx2, j + 1, light_fixture_table[i].room_index); + } + } + } + } + return; + } +} + + +void clear_light_fixturetable_in_room(s32 room_index) +{ + s32 i; + for (i = 0; i < LIGHTFIXTURE_TABLE_MAX; i++) + { + if (room_index == light_fixture_table[i].room_index) + { + light_fixture_table[i].room_index = 0; + } + } + index_of_cur_entry_lightfixture_table = room_index; +} + diff --git a/src/game/lightfixture.h b/src/game/lightfixture.h index 07a3ecf5..a10a35a6 100644 --- a/src/game/lightfixture.h +++ b/src/game/lightfixture.h @@ -4,10 +4,15 @@ #include typedef struct s_lightfixture { - s16 index; + s16 room_index; s16 RESERVED; Gfx *ptr_start_pertinent_DL; - void *ptr_end_pertinent_DL; + Gfx *ptr_end_pertinent_DL; } s_lightfixture; +struct s_darkened_light { + u16 room_index; + u16 vtx_index; +}; + #endif diff --git a/src/game/loadobjectmodel.c b/src/game/loadobjectmodel.c index 4b9d4d67..99bf0d7a 100644 --- a/src/game/loadobjectmodel.c +++ b/src/game/loadobjectmodel.c @@ -142,7 +142,7 @@ s32 sizepropdef(PropDefHeaderRecord *pdef) */ ObjectRecord *setupGetPtrToCommandByIndex(s32 index) //#MATCH { - PropDefHeaderRecord *object = g_chraiCurrentSetup.propDefs; //wow, first use of header, cool + PropDefHeaderRecord *object = g_CurrentSetup.propDefs; //wow, first use of header, cool if (index >= 0 && object) { @@ -172,7 +172,7 @@ s32 tagGetCommandIndex(struct ObjectRecord *tag) PropDefHeaderRecord *object; s32 i; - object = g_chraiCurrentSetup.propDefs; + object = g_CurrentSetup.propDefs; if (object != NULL) { @@ -200,7 +200,7 @@ s32 setupGetCommandIndexByProp(struct PropRecord *prop) PropDefHeaderRecord *object; s32 i; - object = g_chraiCurrentSetup.propDefs; + object = g_CurrentSetup.propDefs; if (object != NULL) { @@ -220,7 +220,7 @@ s32 setupGetCommandIndexByProp(struct PropRecord *prop) -s32 modelLoad(u32 modelid) +s32 modelLoad(s32 modelid) { if (PitemZ_entries[modelid].header->RootNode == NULL) { @@ -315,7 +315,7 @@ void setupUpdateObjectRoomPosition(ObjectRecord *obj) /** * Address 0x7F056EA0. */ -struct ObjectRecord *setupCommandGetObject(s32 arg0, s32 index) +struct ObjectRecord *setupCommandGetObject(s32 stageID, s32 index) { struct PropDefHeaderRecord *obj; @@ -390,7 +390,7 @@ struct ObjectRecord *setupCommandGetObject(s32 arg0, s32 index) #ifdef NONMATCHING -PropRecord *setupFindObjForReuse(s32 arg0, PropRecord **arg1, PropRecord **arg2, s32 arg3, s32 arg4, s32 arg5) +PropRecord *setupFindObjForReuse(s32 stageID, PropRecord **arg1, PropRecord **arg2, s32 arg3, s32 arg4, s32 arg5) { PropRecord *temp_s0; PropRecord *temp_s0_2; @@ -407,7 +407,7 @@ PropRecord *setupFindObjForReuse(s32 arg0, PropRecord **arg1, PropRecord **arg2, PropRecord *phi_s3_3; - temp_s0 = g_chraiCurrentSetup.props; + temp_s0 = g_CurrentSetup.props; phi_s0 = temp_s0; phi_s2 = NULL; phi_s3 = NULL; @@ -423,7 +423,7 @@ loop_3: phi_s2_3 = phi_s2; phi_s3_3 = phi_s3; phi_s2_3 = phi_s2; - if ((arg0 & 0xFF) == phi_v1) + if ((stageID & 0xFF) == phi_v1) { temp_v0 = phi_s0->pos.AsArray[2]; if (temp_v0 == 0) @@ -434,7 +434,7 @@ loop_3: } goto block_19; } - if ((arg0 != 8) && ((phi_s0->unk64 & 0x80) == 0) && ((phi_s0->unk2 & 4) == 0) && (temp_v0->unk1C == 0) && ((arg4 == 0) || (sub_GAME_7F06C060(phi_s0->stan, arg5) != 0))) + if ((stageID != 8) && ((phi_s0->unk64 & 0x80) == 0) && ((phi_s0->unk2 & 4) == 0) && (temp_v0->unk1C == 0) && ((arg4 == 0) || (modelmgrCanSlotFitRwdata(phi_s0->stan, arg5) != 0))) { if ((phi_s2 == 0) && ((phi_s0->pos.AsArray[2]->unk1 & 2) == 0)) { @@ -476,8 +476,8 @@ GLOBAL_ASM( glabel setupFindObjForReuse /* 08BA38 7F056F08 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 08BA3C 7F056F0C AFB00018 */ sw $s0, 0x18($sp) -/* 08BA40 7F056F10 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+0x0c) -/* 08BA44 7F056F14 8E105D0C */ lw $s0, %lo(g_chraiCurrentSetup+0x0c)($s0) +/* 08BA40 7F056F10 3C108007 */ lui $s0, %hi(g_CurrentSetup+0x0c) +/* 08BA44 7F056F14 8E105D0C */ lw $s0, %lo(g_CurrentSetup+0x0c)($s0) /* 08BA48 7F056F18 AFBE0038 */ sw $fp, 0x38($sp) /* 08BA4C 7F056F1C AFB70034 */ sw $s7, 0x34($sp) /* 08BA50 7F056F20 AFB30024 */ sw $s3, 0x24($sp) @@ -529,7 +529,7 @@ glabel setupFindObjForReuse /* 08BB00 7F056FD0 00000000 */ nop /* 08BB04 7F056FD4 12200005 */ beqz $s1, .L7F056FEC /* 08BB08 7F056FD8 02A02825 */ move $a1, $s5 -/* 08BB0C 7F056FDC 0FC1B018 */ jal sub_GAME_7F06C060 +/* 08BB0C 7F056FDC 0FC1B018 */ jal modelmgrCanSlotFitRwdata /* 08BB10 7F056FE0 8E040014 */ lw $a0, 0x14($s0) /* 08BB14 7F056FE4 1040000C */ beqz $v0, .L7F057018 /* 08BB18 7F056FE8 00000000 */ nop diff --git a/src/game/loadobjectmodel.h b/src/game/loadobjectmodel.h index 1e3aad18..ff831efa 100644 --- a/src/game/loadobjectmodel.h +++ b/src/game/loadobjectmodel.h @@ -8,4 +8,6 @@ void setupUpdateObjectRoomPosition(ObjectRecord *); s32 sub_GAME_7F056850(PadRecord *arg0, StandTile *arg1, f32 arg2, PadRecord *arg3, StandTile **arg4); ObjectRecord *setupGetPtrToCommandByIndex(s32 index); s32 tagGetCommandIndex(struct ObjectRecord *arg0); +s32 modelLoad(s32 modelid); + #endif diff --git a/src/game/lvl.c b/src/game/lvl.c index d691adf1..ebb0c07e 100644 --- a/src/game/lvl.c +++ b/src/game/lvl.c @@ -383,7 +383,7 @@ void lvlStageLoad(s32 stage) set_contents_of_80036078(1); set_mt_tex_alloc(); sub_GAME_7F0A47D4(); - load_prepare_global_image_bank(); + texReset(); load_font_tables(); /* If title screen, initialize screen and folder setup. @@ -418,7 +418,7 @@ void lvlStageLoad(s32 stage) } load_bg_file(g_CurrentStageToLoad); - store_stagenum_to_copyof_stagenum(g_CurrentStageToLoad); + skySetStageNum(g_CurrentStageToLoad); init_watch_at_start_of_stage(); sub_GAME_7F0C11FC(stage); @@ -509,7 +509,7 @@ void lvlStageLoad(s32 stage) s32 s0; init_path_table_links(); - something_with_ejected_cartridges(); + init_ejected_cartridges(); for (s0 = 0; s0 < getPlayerCount(); s0++) { @@ -599,7 +599,7 @@ glabel lvlStageLoad /* 0F26C4 7F0BDB94 00000000 */ nop /* 0F26C8 7F0BDB98 0FC291F5 */ jal sub_GAME_7F0A47D4 /* 0F26CC 7F0BDB9C 00000000 */ nop -/* 0F26D0 7F0BDBA0 0FC32FEC */ jal load_prepare_global_image_bank +/* 0F26D0 7F0BDBA0 0FC32FEC */ jal texReset /* 0F26D4 7F0BDBA4 00000000 */ nop /* 0F26D8 7F0BDBA8 0FC2B2EB */ jal load_font_tables /* 0F26DC 7F0BDBAC 00000000 */ nop @@ -652,7 +652,7 @@ glabel lvlStageLoad /* 0F2788 7F0BDC58 0FC2D049 */ jal load_bg_file /* 0F278C 7F0BDC5C 00000000 */ nop /* 0F2790 7F0BDC60 3C048005 */ lui $a0, %hi(g_CurrentStageToLoad) -/* 0F2794 7F0BDC64 0FC2510B */ jal store_stagenum_to_copyof_stagenum +/* 0F2794 7F0BDC64 0FC2510B */ jal skySetStageNum /* 0F2798 7F0BDC68 8C848364 */ lw $a0, %lo(g_CurrentStageToLoad)($a0) /* 0F279C 7F0BDC6C 0FC2921A */ jal init_watch_at_start_of_stage /* 0F27A0 7F0BDC70 00000000 */ nop @@ -778,7 +778,7 @@ glabel lvlStageLoad .L7F0BDE34: /* 0F2964 7F0BDE34 0FC01A24 */ jal init_path_table_links /* 0F2968 7F0BDE38 00000000 */ nop -/* 0F296C 7F0BDE3C 0FC01410 */ jal something_with_ejected_cartridges +/* 0F296C 7F0BDE3C 0FC01410 */ jal init_ejected_cartridges /* 0F2970 7F0BDE40 00000000 */ nop /* 0F2974 7F0BDE44 0FC26919 */ jal getPlayerCount /* 0F2978 7F0BDE48 00008025 */ move $s0, $zero @@ -904,7 +904,7 @@ glabel lvlStageLoad /* 0F32C4 7F0BE754 00000000 */ nop /* 0F32C8 7F0BE758 0FC294DD */ jal sub_GAME_7F0A47D4 /* 0F32CC 7F0BE75C 00000000 */ nop -/* 0F32D0 7F0BE760 0FC33324 */ jal load_prepare_global_image_bank +/* 0F32D0 7F0BE760 0FC33324 */ jal texReset /* 0F32D4 7F0BE764 00000000 */ nop /* 0F32D8 7F0BE768 0FC2B5D7 */ jal load_font_tables /* 0F32DC 7F0BE76C 00000000 */ nop @@ -957,7 +957,7 @@ glabel lvlStageLoad /* 0F3388 7F0BE818 0FC2D335 */ jal load_bg_file /* 0F338C 7F0BE81C 00000000 */ nop /* 0F3390 7F0BE820 3C048005 */ lui $a0, %hi(g_CurrentStageToLoad) # $a0, 0x8005 -/* 0F3394 7F0BE824 0FC253F3 */ jal store_stagenum_to_copyof_stagenum +/* 0F3394 7F0BE824 0FC253F3 */ jal skySetStageNum /* 0F3398 7F0BE828 8C848394 */ lw $a0, %lo(g_CurrentStageToLoad)($a0) /* 0F339C 7F0BE82C 0FC29502 */ jal init_watch_at_start_of_stage /* 0F33A0 7F0BE830 00000000 */ nop @@ -1083,7 +1083,7 @@ glabel lvlStageLoad .Ljp7F0BE9F4: /* 0F3564 7F0BE9F4 0FC01A2C */ jal init_path_table_links /* 0F3568 7F0BE9F8 00000000 */ nop -/* 0F356C 7F0BE9FC 0FC01418 */ jal something_with_ejected_cartridges +/* 0F356C 7F0BE9FC 0FC01418 */ jal init_ejected_cartridges /* 0F3570 7F0BEA00 00000000 */ nop /* 0F3574 7F0BEA04 0FC26C01 */ jal getPlayerCount /* 0F3578 7F0BEA08 00008025 */ move $s0, $zero @@ -1226,7 +1226,7 @@ glabel lvlStageLoad /* 0EF944 7F0BCF54 00000000 */ nop /* 0EF948 7F0BCF58 0FC28EC6 */ jal sub_GAME_7F0A45D8 /* 0EF94C 7F0BCF5C 00000000 */ nop -/* 0EF950 7F0BCF60 0FC32D34 */ jal load_prepare_global_image_bank +/* 0EF950 7F0BCF60 0FC32D34 */ jal texReset /* 0EF954 7F0BCF64 00000000 */ nop /* 0EF958 7F0BCF68 0FC2AF9B */ jal load_font_tables /* 0EF95C 7F0BCF6C 00000000 */ nop @@ -1279,7 +1279,7 @@ glabel lvlStageLoad /* 0EFA08 7F0BD018 0FC2CD18 */ jal load_bg_file /* 0EFA0C 7F0BD01C 00000000 */ nop /* 0EFA10 7F0BD020 3C048004 */ lui $a0, %hi(g_CurrentStageToLoad) # $a0, 0x8004 -/* 0EFA14 7F0BD024 0FC24E5B */ jal store_stagenum_to_copyof_stagenum +/* 0EFA14 7F0BD024 0FC24E5B */ jal skySetStageNum /* 0EFA18 7F0BD028 8C840FE4 */ lw $a0, %lo(g_CurrentStageToLoad)($a0) /* 0EFA1C 7F0BD02C 0FC28EE2 */ jal init_watch_at_start_of_stage /* 0EFA20 7F0BD030 00000000 */ nop @@ -1405,7 +1405,7 @@ glabel lvlStageLoad .L7F0BD1F4: /* 0EFBE4 7F0BD1F4 0FC01A04 */ jal init_path_table_links /* 0EFBE8 7F0BD1F8 00000000 */ nop -/* 0EFBEC 7F0BD1FC 0FC013F8 */ jal something_with_ejected_cartridges +/* 0EFBEC 7F0BD1FC 0FC013F8 */ jal init_ejected_cartridges /* 0EFBF0 7F0BD200 00000000 */ nop /* 0EFBF4 7F0BD204 0FC26669 */ jal getPlayerCount /* 0EFBF8 7F0BD208 00008025 */ move $s0, $zero @@ -1907,8 +1907,8 @@ glabel lvlPortalDebug7F0BDF10 Gfx* lvlRender(Gfx* DL) { - gSPSegment(DL++, 0, NULL); - gSPSegment(DL++, 1, osVirtualToPhysical(ptr_font_DL)); + gSPSegment(DL++, SPSEGMENT_PHYSICAL, NULL); + gSPSegment(DL++, SPSEGMENT_UNKNOWN, osVirtualToPhysical(ptr_font_DL)); gSPDisplayList(DL++, &fontDL_0x040); gSPDisplayList(DL++, &fontDL_0x020); @@ -1957,7 +1957,7 @@ Gfx* lvlRender(Gfx* DL) } DL = viSetupScreensForNumPlayers(DL); - DL = sub_GAME_7F094488(DL); + DL = skyRender(DL); sub_GAME_7F0B4884(); determing_type_of_object_and_detection(); chraiUpdateOnscreenPropCount(); @@ -2327,7 +2327,7 @@ void lvlManageMpGame(void) mp_game_time_limit_2 = g_MpTime; if ((current_time_copy < mp_game_time_limit_2) && (sp180 >= mp_game_time_limit_2)) { - end_game_and_show_game_over_menu(0); + mpCalculateAwards(0); } } @@ -2363,7 +2363,7 @@ void lvlManageMpGame(void) if (mp_player_currently_in_dying_animation == 0) { // end game after dying players are finished dying - end_game_and_show_game_over_menu(0); + mpCalculateAwards(0); } else { @@ -2452,7 +2452,7 @@ void lvlManageMpGame(void) temp_v1_7 = var_player_count2 - 1; if (not_dead_count >= temp_v1_7) { - end_game_and_show_game_over_menu(0); + mpCalculateAwards(0); } else if (killed_count >= temp_v1_7) { @@ -2910,7 +2910,7 @@ glabel lvlManageMpGame /* 0F39D0 7F0BEEA0 01C3082A */ slt $at, $t6, $v1 /* 0F39D4 7F0BEEA4 14200003 */ bnez $at, .L7F0BEEB4 /* 0F39D8 7F0BEEA8 00000000 */ nop -/* 0F39DC 7F0BEEAC 0FC3094C */ jal end_game_and_show_game_over_menu +/* 0F39DC 7F0BEEAC 0FC3094C */ jal mpCalculateAwards /* 0F39E0 7F0BEEB0 00002025 */ move $a0, $zero .L7F0BEEB4: /* 0F39E4 7F0BEEB4 3C188005 */ lui $t8, %hi(g_MpPoint) @@ -2977,7 +2977,7 @@ glabel lvlManageMpGame /* 0F3AC4 7F0BEF94 00000000 */ nop /* 0F3AC8 7F0BEF98 14A00005 */ bnez $a1, .L7F0BEFB0 /* 0F3ACC 7F0BEF9C 00000000 */ nop -/* 0F3AD0 7F0BEFA0 0FC3094C */ jal end_game_and_show_game_over_menu +/* 0F3AD0 7F0BEFA0 0FC3094C */ jal mpCalculateAwards /* 0F3AD4 7F0BEFA4 00002025 */ move $a0, $zero /* 0F3AD8 7F0BEFA8 10000003 */ b .L7F0BEFB8 /* 0F3ADC 7F0BEFAC 00000000 */ nop @@ -3128,7 +3128,7 @@ glabel lvlManageMpGame /* 0F3CE0 7F0BF1B0 03E3082A */ slt $at, $ra, $v1 /* 0F3CE4 7F0BF1B4 54200006 */ bnezl $at, .L7F0BF1D0 /* 0F3CE8 7F0BF1B8 01A3082A */ slt $at, $t5, $v1 -/* 0F3CEC 7F0BF1BC 0FC3094C */ jal end_game_and_show_game_over_menu +/* 0F3CEC 7F0BF1BC 0FC3094C */ jal mpCalculateAwards /* 0F3CF0 7F0BF1C0 00002025 */ move $a0, $zero /* 0F3CF4 7F0BF1C4 10000006 */ b .L7F0BF1E0 /* 0F3CF8 7F0BF1C8 00000000 */ nop @@ -3801,7 +3801,7 @@ glabel lvlManageMpGame /* 0F4648 7F0BFAD8 01C3082A */ slt $at, $t6, $v1 /* 0F464C 7F0BFADC 14200003 */ bnez $at, .Ljp7F0BFAEC /* 0F4650 7F0BFAE0 00000000 */ nop -/* 0F4654 7F0BFAE4 0FC30C78 */ jal end_game_and_show_game_over_menu +/* 0F4654 7F0BFAE4 0FC30C78 */ jal mpCalculateAwards /* 0F4658 7F0BFAE8 00002025 */ move $a0, $zero .Ljp7F0BFAEC: /* 0F465C 7F0BFAEC 3C188005 */ lui $t8, %hi(g_MpPoint) # $t8, 0x8005 @@ -3868,7 +3868,7 @@ glabel lvlManageMpGame /* 0F473C 7F0BFBCC 00000000 */ nop /* 0F4740 7F0BFBD0 14A00005 */ bnez $a1, .Ljp7F0BFBE8 /* 0F4744 7F0BFBD4 00000000 */ nop -/* 0F4748 7F0BFBD8 0FC30C78 */ jal end_game_and_show_game_over_menu +/* 0F4748 7F0BFBD8 0FC30C78 */ jal mpCalculateAwards /* 0F474C 7F0BFBDC 00002025 */ move $a0, $zero /* 0F4750 7F0BFBE0 10000003 */ b .Ljp7F0BFBF0 /* 0F4754 7F0BFBE4 00000000 */ nop @@ -4019,7 +4019,7 @@ glabel lvlManageMpGame /* 0F4958 7F0BFDE8 03E3082A */ slt $at, $ra, $v1 /* 0F495C 7F0BFDEC 54200006 */ bnezl $at, .Ljp7F0BFE08 /* 0F4960 7F0BFDF0 01A3082A */ slt $at, $t5, $v1 -/* 0F4964 7F0BFDF4 0FC30C78 */ jal end_game_and_show_game_over_menu +/* 0F4964 7F0BFDF4 0FC30C78 */ jal mpCalculateAwards /* 0F4968 7F0BFDF8 00002025 */ move $a0, $zero /* 0F496C 7F0BFDFC 10000006 */ b .Ljp7F0BFE18 /* 0F4970 7F0BFE00 00000000 */ nop @@ -4685,7 +4685,7 @@ glabel lvlManageMpGame /* 0F0CD4 7F0BE2E4 01C3082A */ slt $at, $t6, $v1 /* 0F0CD8 7F0BE2E8 14200003 */ bnez $at, .Leu7F0BE2F8 /* 0F0CDC 7F0BE2EC 00000000 */ nop -/* 0F0CE0 7F0BE2F0 0FC30684 */ jal end_game_and_show_game_over_menu +/* 0F0CE0 7F0BE2F0 0FC30684 */ jal mpCalculateAwards /* 0F0CE4 7F0BE2F4 00002025 */ move $a0, $zero .Leu7F0BE2F8: /* 0F0CE8 7F0BE2F8 3C188004 */ lui $t8, %hi(g_MpPoint) # $t8, 0x8004 @@ -4752,7 +4752,7 @@ glabel lvlManageMpGame /* 0F0DC8 7F0BE3D8 00000000 */ nop /* 0F0DCC 7F0BE3DC 14A00005 */ bnez $a1, .L7F0BE3F4 /* 0F0DD0 7F0BE3E0 00000000 */ nop -/* 0F0DD4 7F0BE3E4 0FC30684 */ jal end_game_and_show_game_over_menu +/* 0F0DD4 7F0BE3E4 0FC30684 */ jal mpCalculateAwards /* 0F0DD8 7F0BE3E8 00002025 */ move $a0, $zero /* 0F0DDC 7F0BE3EC 10000003 */ b .L7F0BE3FC /* 0F0DE0 7F0BE3F0 00000000 */ nop @@ -4903,7 +4903,7 @@ glabel lvlManageMpGame /* 0F0FE4 7F0BE5F4 03E3082A */ slt $at, $ra, $v1 /* 0F0FE8 7F0BE5F8 54200006 */ bnezl $at, .L7F0BE614 /* 0F0FEC 7F0BE5FC 01A3082A */ slt $at, $t5, $v1 -/* 0F0FF0 7F0BE600 0FC30684 */ jal end_game_and_show_game_over_menu +/* 0F0FF0 7F0BE600 0FC30684 */ jal mpCalculateAwards /* 0F0FF4 7F0BE604 00002025 */ move $a0, $zero /* 0F0FF8 7F0BE608 10000006 */ b .L7F0BE624 /* 0F0FFC 7F0BE60C 00000000 */ nop diff --git a/src/game/lvl_text.c b/src/game/lvl_text.c index 7179e692..a58c52e3 100644 --- a/src/game/lvl_text.c +++ b/src/game/lvl_text.c @@ -616,7 +616,7 @@ int something_with_LnameX(uint param_1) *(ushort *)(ptr_char_registry + iVar4 + 2) = uVar3 | *(ushort *)(ptr_char_registry + iVar4 + 2) & 0xc000; romCopy((char *)(ptr_char_data_buf + iVar9 * 0x60), - (char *)(_efontcharSegmentRomStart + ((int)(param_1 & 0x1fff) >> 1) * 0x20), + (char *)(_efontchardataSegmentRomStart + ((int)(param_1 & 0x1fff) >> 1) * 0x20), 0x80); puVar2 = ptr_char_data_buf + iVar9 * 0x60; } @@ -626,7 +626,7 @@ int something_with_LnameX(uint param_1) *(ushort *)(ptr_char_registry + indexto * 2) = (ushort)indexfrom & 0x3fff | *(ushort *)(ptr_char_registry + indexto * 2) & 0xc000; romCopy((char *)(ptr_char_data_buf + indexto * 0x60), - (char *)(_jfontcharSegmentRomStart + indexfrom * 0x18),0x60); + (char *)(_jfontchardataSegmentRomStart + indexfrom * 0x18),0x60); puVar2 = ptr_char_data_buf + indexto * 0x60; } } @@ -761,8 +761,8 @@ glabel something_with_LnameX /* 0F6718 7F0C1BE8 A46E0000 */ sh $t6, ($v1) /* 0F671C 7F0C1BEC 3C0F8009 */ lui $t7, %hi(ptr_char_data_buf) /* 0F6720 7F0C1BF0 8DEFC6F4 */ lw $t7, %lo(ptr_char_data_buf)($t7) -/* 0F6724 7F0C1BF4 3C190011 */ lui $t9, %hi(_jfontcharSegmentRomStart) # $t9, 0x11 -/* 0F6728 7F0C1BF8 27397940 */ addiu $t9, %lo(_jfontcharSegmentRomStart) # addiu $t9, $t9, 0x7940 +/* 0F6724 7F0C1BF4 3C190011 */ lui $t9, %hi(_jfontchardataSegmentRomStart) # $t9, 0x11 +/* 0F6728 7F0C1BF8 27397940 */ addiu $t9, %lo(_jfontchardataSegmentRomStart) # addiu $t9, $t9, 0x7940 /* 0F672C 7F0C1BFC 0000C012 */ mflo $t8 /* 0F6730 7F0C1C00 03192821 */ addu $a1, $t8, $t9 /* 0F6734 7F0C1C04 AFA80024 */ sw $t0, 0x24($sp) @@ -814,8 +814,8 @@ glabel something_with_LnameX /* 0F67E8 7F0C1CB8 32191FFF */ andi $t9, $s0, 0x1fff /* 0F67EC 7F0C1CBC 00197043 */ sra $t6, $t9, 1 /* 0F67F0 7F0C1CC0 01182021 */ addu $a0, $t0, $t8 -/* 0F67F4 7F0C1CC4 3C180012 */ lui $t8, %hi(_efontcharSegmentRomStart) # $t8, 0x12 -/* 0F67F8 7F0C1CC8 27183040 */ addiu $t8, %lo(_efontcharSegmentRomStart) # addiu $t8, $t8, 0x3040 +/* 0F67F4 7F0C1CC4 3C180012 */ lui $t8, %hi(_efontchardataSegmentRomStart) # $t8, 0x12 +/* 0F67F8 7F0C1CC8 27183040 */ addiu $t8, %lo(_efontchardataSegmentRomStart) # addiu $t8, $t8, 0x3040 /* 0F67FC 7F0C1CCC 000E79C0 */ sll $t7, $t6, 7 /* 0F6800 7F0C1CD0 01F82821 */ addu $a1, $t7, $t8 /* 0F6804 7F0C1CD4 0C001707 */ jal romCopy @@ -862,5 +862,5 @@ u8 * langGet(s32 slotID) u32 output_slot = textslot_offset; /* add the text slot offset to the base ptr to get the ptr to text file's slot */ output_slot += (u32)textbank_ptr; - return (textslot_offset != 0) ? output_slot : NULL; + return (textslot_offset != 0) ? (u8*)output_slot : NULL; } diff --git a/src/game/matrixmath.c b/src/game/matrixmath.c index a07b89c2..a0cac177 100644 --- a/src/game/matrixmath.c +++ b/src/game/matrixmath.c @@ -57,7 +57,7 @@ glabel matrix_4x4_copy_homogeneous_eu #ifdef VERSION_EU #ifdef NONMATCHING -void matrix_4x4_multiply_homogeneous_in_place_eu (Mtxf * src, Mtxf * dst) +void matrix_4x4_multiply_homogeneous_in_place_eu (f32 src[3][3], f32 dst[3][3]) { } @@ -173,11 +173,12 @@ glabel matrix_4x4_copy_eu #ifdef VERSION_EU #ifdef NONMATCHING -void matrix_7f05842c_eu (Mtxf * src, Mtxf * dst) +void matrix_7f05842c_eu (Mtxf * src, f32 dst[3][3]) { } #else +void matrix_7f05842c_eu (Mtxf * src, f32 dst[3][3]); GLOBAL_ASM( .text glabel matrix_7f05842c_eu @@ -269,7 +270,7 @@ void matrix_4x4_multiply(Mtxf *lhs, Mtxf *rhs, Mtxf *result) } } -s32 matrix_4x4_multiply_homogeneous(Mtxf *lhs, Mtxf *rhs, Mtxf *result) +void matrix_4x4_multiply_homogeneous(Mtxf *lhs, Mtxf *rhs, Mtxf *result) { s32 i, j; for (i = 0; i < 3; i++) @@ -1596,83 +1597,29 @@ void matrix_4x4_7F059908(Mtxf *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 matrix_4x4_7F059708(arg0, arg1, arg2, arg3, arg4 - arg1, arg5 - arg2, arg6 - arg3, arg7, arg8, arg9); } -#ifdef NONMATCHING -// > 8e570: move v0,v1 -// 8e570: jr ra 8e574: jr ra -// 8e574: move v0,v1 | 8e578: nop -u16 sub_GAME_7F05997C(f32 arg0, f32 arg1) { - u16 phi_v1; - f32 temp_f0 = arg0 + arg1; - if (temp_f0 <= 2.0f) - return -1; - phi_v1 = (131072.0f / temp_f0); - if (phi_v1 <= 0) - phi_v1 = 1; - return phi_v1; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F05997C -/* 08E4AC 7F05997C 460E6000 */ add.s $f0, $f12, $f14 -/* 08E4B0 7F059980 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 08E4B4 7F059984 44812000 */ mtc1 $at, $f4 -/* 08E4B8 7F059988 3C014800 */ li $at, 0x48000000 # 131072.000000 -/* 08E4BC 7F05998C 4604003E */ c.le.s $f0, $f4 -/* 08E4C0 7F059990 00000000 */ nop -/* 08E4C4 7F059994 45020004 */ bc1fl .L7F0599A8 -/* 08E4C8 7F059998 44813000 */ mtc1 $at, $f6 -/* 08E4CC 7F05999C 03E00008 */ jr $ra -/* 08E4D0 7F0599A0 3402FFFF */ li $v0, 65535 -/* 08E4D4 7F0599A4 44813000 */ mtc1 $at, $f6 -.L7F0599A8: -/* 08E4D8 7F0599A8 24020001 */ li $v0, 1 -/* 08E4DC 7F0599AC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 08E4E0 7F0599B0 46003203 */ div.s $f8, $f6, $f0 -/* 08E4E4 7F0599B4 444EF800 */ cfc1 $t6, $31 -/* 08E4E8 7F0599B8 44C2F800 */ ctc1 $v0, $31 -/* 08E4EC 7F0599BC 00000000 */ nop -/* 08E4F0 7F0599C0 460042A4 */ cvt.w.s $f10, $f8 -/* 08E4F4 7F0599C4 4442F800 */ cfc1 $v0, $31 -/* 08E4F8 7F0599C8 00000000 */ nop -/* 08E4FC 7F0599CC 30420078 */ andi $v0, $v0, 0x78 -/* 08E500 7F0599D0 50400013 */ beql $v0, $zero, .L7F059A20 -/* 08E504 7F0599D4 44025000 */ mfc1 $v0, $f10 -/* 08E508 7F0599D8 44815000 */ mtc1 $at, $f10 -/* 08E50C 7F0599DC 24020001 */ li $v0, 1 -/* 08E510 7F0599E0 460A4281 */ sub.s $f10, $f8, $f10 -/* 08E514 7F0599E4 44C2F800 */ ctc1 $v0, $31 -/* 08E518 7F0599E8 00000000 */ nop -/* 08E51C 7F0599EC 460052A4 */ cvt.w.s $f10, $f10 -/* 08E520 7F0599F0 4442F800 */ cfc1 $v0, $31 -/* 08E524 7F0599F4 00000000 */ nop -/* 08E528 7F0599F8 30420078 */ andi $v0, $v0, 0x78 -/* 08E52C 7F0599FC 14400005 */ bnez $v0, .L7F059A14 -/* 08E530 7F059A00 00000000 */ nop -/* 08E534 7F059A04 44025000 */ mfc1 $v0, $f10 -/* 08E538 7F059A08 3C018000 */ lui $at, 0x8000 -/* 08E53C 7F059A0C 10000007 */ b .L7F059A2C -/* 08E540 7F059A10 00411025 */ or $v0, $v0, $at -.L7F059A14: -/* 08E544 7F059A14 10000005 */ b .L7F059A2C -/* 08E548 7F059A18 2402FFFF */ li $v0, -1 -/* 08E54C 7F059A1C 44025000 */ mfc1 $v0, $f10 -.L7F059A20: -/* 08E550 7F059A20 00000000 */ nop -/* 08E554 7F059A24 0440FFFB */ bltz $v0, .L7F059A14 -/* 08E558 7F059A28 00000000 */ nop -.L7F059A2C: -/* 08E55C 7F059A2C 44CEF800 */ ctc1 $t6, $31 -/* 08E560 7F059A30 304FFFFF */ andi $t7, $v0, 0xffff -/* 08E564 7F059A34 1DE00002 */ bgtz $t7, .L7F059A40 -/* 08E568 7F059A38 3043FFFF */ andi $v1, $v0, 0xffff -/* 08E56C 7F059A3C 24030001 */ li $v1, 1 -.L7F059A40: -/* 08E570 7F059A40 03E00008 */ jr $ra -/* 08E574 7F059A44 00601025 */ move $v0, $v1 -) -#endif +u32 sub_GAME_7F05997C(f32 arg0, f32 arg1) +{ + f32 sum = arg0 + arg1; + u16 result; + + if (sum <= 2) + { + result = 0xffff; + } + else + { + result = 0x20000 / sum; + + if (result <= 0) + { + result = 1; + } + } + + return result; +} + void matrix_4x4_7F059A48(Mtxf *matrix, u16* arg1, f32 angle, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { f32 temp_f12_2 = cosf(angle * 0.5f) / sinf(angle * 0.5f); @@ -1809,199 +1756,35 @@ void matrix_4x4_7F059E64(Mtxf *arg0, Mtxf *arg1) { } -#ifdef NONMATCHING -void sub_GAME_7F059FB8(Mtxf *arg0, Mtxf *arg1) { - f32 temp_f0 = (arg0->m[0][0] * arg0->m[1][1] * arg0->m[2][2]) + (arg0->m[0][1] * arg0->m[1][2] * arg0->m[2][0]) + (arg0->m[0][2] * arg0->m[1][0] * arg0->m[2][1]) - (arg0->m[0][2] * arg0->m[1][1] * arg0->m[2][0]) - (arg0->m[0][1] * arg0->m[1][0] * arg0->m[2][2]) - (arg0->m[0][0] * arg0->m[1][2] * arg0->m[2][1]); - temp_f0 = 1.0f / temp_f0; - arg1->m[0][0] = (((arg0->m[1][1] * arg0->m[2][2]) - (arg0->m[2][1] * arg0->m[1][2])) * temp_f0); - arg1->m[1][0] = (((arg0->m[1][2] * arg0->m[2][0]) - (arg0->m[2][2] * arg0->m[1][0])) * temp_f0); - arg1->m[2][0] = (((arg0->m[1][0] * arg0->m[2][1]) - (arg0->m[2][0] * arg0->m[1][1])) * temp_f0); - arg1->m[0][1] = (((arg0->m[0][2] * arg0->m[2][1]) - (arg0->m[2][2] * arg0->m[0][1])) * temp_f0); - arg1->m[1][1] = (((arg0->m[0][0] * arg0->m[2][2]) - (arg0->m[2][0] * arg0->m[0][2])) * temp_f0); - arg1->m[2][1] = (((arg0->m[0][1] * arg0->m[2][0]) - (arg0->m[2][1] * arg0->m[0][0])) * temp_f0); - arg1->m[0][2] = (((arg0->m[0][1] * arg0->m[1][2]) - (arg0->m[1][1] * arg0->m[0][2])) * temp_f0); - arg1->m[1][2] = (((arg0->m[0][2] * arg0->m[1][0]) - (arg0->m[1][2] * arg0->m[0][0])) * temp_f0); - arg1->m[2][2] = (((arg0->m[0][0] * arg0->m[1][1]) - (arg0->m[1][0] * arg0->m[0][1])) * temp_f0); - arg1->m[3][0] = -((arg1->m[0][0] * arg0->m[3][0]) + (arg1->m[1][0] * arg0->m[3][1]) + (arg1->m[2][0] * arg0->m[3][2])); - arg1->m[3][1] = -((arg1->m[0][1] * arg0->m[3][0]) + (arg1->m[1][1] * arg0->m[3][1]) + (arg1->m[2][1] * arg0->m[3][2])); - arg1->m[3][2] = -((arg1->m[0][2] * arg0->m[3][0]) + (arg1->m[1][2] * arg0->m[3][1]) + (arg1->m[2][2] * arg0->m[3][2])); - arg1->m[3][3] = 1.0f; - arg1->m[0][3] = 0.0f; - arg1->m[1][3] = 0.0f; - arg1->m[2][3] = 0.0f; +void sub_GAME_7F059FB8(f32 arg0[4][4], f32 arg1[4][4]) +{ + f32 f0 = 0.0f; + f0 += arg0[0][0] * arg0[1][1] * arg0[2][2]; + f0 += arg0[0][1] * arg0[1][2] * arg0[2][0]; + f0 += arg0[0][2] * arg0[1][0] * arg0[2][1]; + f0 -= arg0[0][2] * arg0[1][1] * arg0[2][0]; + f0 -= arg0[0][1] * arg0[1][0] * arg0[2][2]; + f0 -= arg0[0][0] * arg0[1][2] * arg0[2][1]; + f0 = 1.0f / f0; + + arg1[0][0] = (arg0[1][1] * arg0[2][2] - arg0[1][2] * arg0[2][1]) * f0; + arg1[1][0] = (arg0[1][2] * arg0[2][0] - arg0[1][0] * arg0[2][2]) * f0; + arg1[2][0] = (arg0[1][0] * arg0[2][1] - arg0[1][1] * arg0[2][0]) * f0; + arg1[0][1] = (arg0[0][2] * arg0[2][1] - arg0[0][1] * arg0[2][2]) * f0; + arg1[1][1] = (arg0[0][0] * arg0[2][2] - arg0[0][2] * arg0[2][0]) * f0; + arg1[2][1] = (arg0[0][1] * arg0[2][0] - arg0[0][0] * arg0[2][1]) * f0; + arg1[0][2] = (arg0[0][1] * arg0[1][2] - arg0[0][2] * arg0[1][1]) * f0; + arg1[1][2] = (arg0[0][2] * arg0[1][0] - arg0[0][0] * arg0[1][2]) * f0; + arg1[2][2] = (arg0[0][0] * arg0[1][1] - arg0[0][1] * arg0[1][0]) * f0; + arg1[3][0] = -(arg0[3][0] * arg1[0][0] + arg0[3][1] * arg1[1][0] + arg0[3][2] * arg1[2][0]); + arg1[3][1] = -(arg0[3][0] * arg1[0][1] + arg0[3][1] * arg1[1][1] + arg0[3][2] * arg1[2][1]); + arg1[3][2] = -(arg0[3][0] * arg1[0][2] + arg0[3][1] * arg1[1][2] + arg0[3][2] * arg1[2][2]); + arg1[0][3] = 0.0f; + arg1[1][3] = 0.0f; + arg1[2][3] = 0.0f; + arg1[3][3] = 1.0f; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F059FB8 -/* 08EAE8 7F059FB8 C4820000 */ lwc1 $f2, ($a0) -/* 08EAEC 7F059FBC C48C0014 */ lwc1 $f12, 0x14($a0) -/* 08EAF0 7F059FC0 C48E0028 */ lwc1 $f14, 0x28($a0) -/* 08EAF4 7F059FC4 C4900004 */ lwc1 $f16, 4($a0) -/* 08EAF8 7F059FC8 460C1102 */ mul.s $f4, $f2, $f12 -/* 08EAFC 7F059FCC C4920018 */ lwc1 $f18, 0x18($a0) -/* 08EB00 7F059FD0 C48A0020 */ lwc1 $f10, 0x20($a0) -/* 08EB04 7F059FD4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 08EB08 7F059FD8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 08EB0C 7F059FDC E7AA0010 */ swc1 $f10, 0x10($sp) -/* 08EB10 7F059FE0 C7A80010 */ lwc1 $f8, 0x10($sp) -/* 08EB14 7F059FE4 460E2002 */ mul.s $f0, $f4, $f14 -/* 08EB18 7F059FE8 C48A0008 */ lwc1 $f10, 8($a0) -/* 08EB1C 7F059FEC 46128182 */ mul.s $f6, $f16, $f18 -/* 08EB20 7F059FF0 E7AA000C */ swc1 $f10, 0xc($sp) -/* 08EB24 7F059FF4 C7AA000C */ lwc1 $f10, 0xc($sp) -/* 08EB28 7F059FF8 46083102 */ mul.s $f4, $f6, $f8 -/* 08EB2C 7F059FFC C4860010 */ lwc1 $f6, 0x10($a0) -/* 08EB30 7F05A000 E7A60008 */ swc1 $f6, 8($sp) -/* 08EB34 7F05A004 C7A60008 */ lwc1 $f6, 8($sp) -/* 08EB38 7F05A008 46040000 */ add.s $f0, $f0, $f4 -/* 08EB3C 7F05A00C C4840024 */ lwc1 $f4, 0x24($a0) -/* 08EB40 7F05A010 E7A80000 */ swc1 $f8, ($sp) -/* 08EB44 7F05A014 E7A4001C */ swc1 $f4, 0x1c($sp) -/* 08EB48 7F05A018 46065102 */ mul.s $f4, $f10, $f6 -/* 08EB4C 7F05A01C C7A8001C */ lwc1 $f8, 0x1c($sp) -/* 08EB50 7F05A020 46082102 */ mul.s $f4, $f4, $f8 -/* 08EB54 7F05A024 46040000 */ add.s $f0, $f0, $f4 -/* 08EB58 7F05A028 460C5102 */ mul.s $f4, $f10, $f12 -/* 08EB5C 7F05A02C C7AA0000 */ lwc1 $f10, ($sp) -/* 08EB60 7F05A030 460A2102 */ mul.s $f4, $f4, $f10 -/* 08EB64 7F05A034 00000000 */ nop -/* 08EB68 7F05A038 46068282 */ mul.s $f10, $f16, $f6 -/* 08EB6C 7F05A03C 46040001 */ sub.s $f0, $f0, $f4 -/* 08EB70 7F05A040 460E5102 */ mul.s $f4, $f10, $f14 -/* 08EB74 7F05A044 00000000 */ nop -/* 08EB78 7F05A048 46121182 */ mul.s $f6, $f2, $f18 -/* 08EB7C 7F05A04C 44811000 */ mtc1 $at, $f2 -/* 08EB80 7F05A050 46040001 */ sub.s $f0, $f0, $f4 -/* 08EB84 7F05A054 46083282 */ mul.s $f10, $f6, $f8 -/* 08EB88 7F05A058 460A0001 */ sub.s $f0, $f0, $f10 -/* 08EB8C 7F05A05C 460E6102 */ mul.s $f4, $f12, $f14 -/* 08EB90 7F05A060 00000000 */ nop -/* 08EB94 7F05A064 46124182 */ mul.s $f6, $f8, $f18 -/* 08EB98 7F05A068 46001003 */ div.s $f0, $f2, $f0 -/* 08EB9C 7F05A06C 46062281 */ sub.s $f10, $f4, $f6 -/* 08EBA0 7F05A070 46005202 */ mul.s $f8, $f10, $f0 -/* 08EBA4 7F05A074 E4A80000 */ swc1 $f8, ($a1) -/* 08EBA8 7F05A078 C4840018 */ lwc1 $f4, 0x18($a0) -/* 08EBAC 7F05A07C C4860020 */ lwc1 $f6, 0x20($a0) -/* 08EBB0 7F05A080 C4880028 */ lwc1 $f8, 0x28($a0) -/* 08EBB4 7F05A084 46062282 */ mul.s $f10, $f4, $f6 -/* 08EBB8 7F05A088 C4840010 */ lwc1 $f4, 0x10($a0) -/* 08EBBC 7F05A08C 46044182 */ mul.s $f6, $f8, $f4 -/* 08EBC0 7F05A090 46065201 */ sub.s $f8, $f10, $f6 -/* 08EBC4 7F05A094 46004102 */ mul.s $f4, $f8, $f0 -/* 08EBC8 7F05A098 E4A40010 */ swc1 $f4, 0x10($a1) -/* 08EBCC 7F05A09C C48A0010 */ lwc1 $f10, 0x10($a0) -/* 08EBD0 7F05A0A0 C4860024 */ lwc1 $f6, 0x24($a0) -/* 08EBD4 7F05A0A4 C4840020 */ lwc1 $f4, 0x20($a0) -/* 08EBD8 7F05A0A8 46065202 */ mul.s $f8, $f10, $f6 -/* 08EBDC 7F05A0AC C48A0014 */ lwc1 $f10, 0x14($a0) -/* 08EBE0 7F05A0B0 460A2182 */ mul.s $f6, $f4, $f10 -/* 08EBE4 7F05A0B4 46064101 */ sub.s $f4, $f8, $f6 -/* 08EBE8 7F05A0B8 46002282 */ mul.s $f10, $f4, $f0 -/* 08EBEC 7F05A0BC E4AA0020 */ swc1 $f10, 0x20($a1) -/* 08EBF0 7F05A0C0 C4880008 */ lwc1 $f8, 8($a0) -/* 08EBF4 7F05A0C4 C4860024 */ lwc1 $f6, 0x24($a0) -/* 08EBF8 7F05A0C8 C48A0028 */ lwc1 $f10, 0x28($a0) -/* 08EBFC 7F05A0CC 46064102 */ mul.s $f4, $f8, $f6 -/* 08EC00 7F05A0D0 C4880004 */ lwc1 $f8, 4($a0) -/* 08EC04 7F05A0D4 46085182 */ mul.s $f6, $f10, $f8 -/* 08EC08 7F05A0D8 46062281 */ sub.s $f10, $f4, $f6 -/* 08EC0C 7F05A0DC 46005202 */ mul.s $f8, $f10, $f0 -/* 08EC10 7F05A0E0 E4A80004 */ swc1 $f8, 4($a1) -/* 08EC14 7F05A0E4 C4840000 */ lwc1 $f4, ($a0) -/* 08EC18 7F05A0E8 C4860028 */ lwc1 $f6, 0x28($a0) -/* 08EC1C 7F05A0EC C4880020 */ lwc1 $f8, 0x20($a0) -/* 08EC20 7F05A0F0 46062282 */ mul.s $f10, $f4, $f6 -/* 08EC24 7F05A0F4 C4840008 */ lwc1 $f4, 8($a0) -/* 08EC28 7F05A0F8 46044182 */ mul.s $f6, $f8, $f4 -/* 08EC2C 7F05A0FC 46065201 */ sub.s $f8, $f10, $f6 -/* 08EC30 7F05A100 46004102 */ mul.s $f4, $f8, $f0 -/* 08EC34 7F05A104 E4A40014 */ swc1 $f4, 0x14($a1) -/* 08EC38 7F05A108 C48A0004 */ lwc1 $f10, 4($a0) -/* 08EC3C 7F05A10C C4860020 */ lwc1 $f6, 0x20($a0) -/* 08EC40 7F05A110 C4840024 */ lwc1 $f4, 0x24($a0) -/* 08EC44 7F05A114 46065202 */ mul.s $f8, $f10, $f6 -/* 08EC48 7F05A118 C48A0000 */ lwc1 $f10, ($a0) -/* 08EC4C 7F05A11C 460A2182 */ mul.s $f6, $f4, $f10 -/* 08EC50 7F05A120 46064101 */ sub.s $f4, $f8, $f6 -/* 08EC54 7F05A124 46002282 */ mul.s $f10, $f4, $f0 -/* 08EC58 7F05A128 E4AA0024 */ swc1 $f10, 0x24($a1) -/* 08EC5C 7F05A12C C4880004 */ lwc1 $f8, 4($a0) -/* 08EC60 7F05A130 C4860018 */ lwc1 $f6, 0x18($a0) -/* 08EC64 7F05A134 C48A0014 */ lwc1 $f10, 0x14($a0) -/* 08EC68 7F05A138 46064102 */ mul.s $f4, $f8, $f6 -/* 08EC6C 7F05A13C C4880008 */ lwc1 $f8, 8($a0) -/* 08EC70 7F05A140 46085182 */ mul.s $f6, $f10, $f8 -/* 08EC74 7F05A144 46062281 */ sub.s $f10, $f4, $f6 -/* 08EC78 7F05A148 46005202 */ mul.s $f8, $f10, $f0 -/* 08EC7C 7F05A14C E4A80008 */ swc1 $f8, 8($a1) -/* 08EC80 7F05A150 C4860010 */ lwc1 $f6, 0x10($a0) -/* 08EC84 7F05A154 C4840008 */ lwc1 $f4, 8($a0) -/* 08EC88 7F05A158 C4880018 */ lwc1 $f8, 0x18($a0) -/* 08EC8C 7F05A15C 46062282 */ mul.s $f10, $f4, $f6 -/* 08EC90 7F05A160 C4840000 */ lwc1 $f4, ($a0) -/* 08EC94 7F05A164 46044182 */ mul.s $f6, $f8, $f4 -/* 08EC98 7F05A168 46065201 */ sub.s $f8, $f10, $f6 -/* 08EC9C 7F05A16C 46004102 */ mul.s $f4, $f8, $f0 -/* 08ECA0 7F05A170 E4A40018 */ swc1 $f4, 0x18($a1) -/* 08ECA4 7F05A174 C4860014 */ lwc1 $f6, 0x14($a0) -/* 08ECA8 7F05A178 C48A0000 */ lwc1 $f10, ($a0) -/* 08ECAC 7F05A17C C4840010 */ lwc1 $f4, 0x10($a0) -/* 08ECB0 7F05A180 46065202 */ mul.s $f8, $f10, $f6 -/* 08ECB4 7F05A184 C48A0004 */ lwc1 $f10, 4($a0) -/* 08ECB8 7F05A188 460A2182 */ mul.s $f6, $f4, $f10 -/* 08ECBC 7F05A18C 46064101 */ sub.s $f4, $f8, $f6 -/* 08ECC0 7F05A190 C4A60000 */ lwc1 $f6, ($a1) -/* 08ECC4 7F05A194 46002282 */ mul.s $f10, $f4, $f0 -/* 08ECC8 7F05A198 44800000 */ mtc1 $zero, $f0 -/* 08ECCC 7F05A19C E4AA0028 */ swc1 $f10, 0x28($a1) -/* 08ECD0 7F05A1A0 C4880030 */ lwc1 $f8, 0x30($a0) -/* 08ECD4 7F05A1A4 C48A0034 */ lwc1 $f10, 0x34($a0) -/* 08ECD8 7F05A1A8 46064102 */ mul.s $f4, $f8, $f6 -/* 08ECDC 7F05A1AC C4A80010 */ lwc1 $f8, 0x10($a1) -/* 08ECE0 7F05A1B0 46085182 */ mul.s $f6, $f10, $f8 -/* 08ECE4 7F05A1B4 C4A80020 */ lwc1 $f8, 0x20($a1) -/* 08ECE8 7F05A1B8 46062280 */ add.s $f10, $f4, $f6 -/* 08ECEC 7F05A1BC C4840038 */ lwc1 $f4, 0x38($a0) -/* 08ECF0 7F05A1C0 46044182 */ mul.s $f6, $f8, $f4 -/* 08ECF4 7F05A1C4 460A3200 */ add.s $f8, $f6, $f10 -/* 08ECF8 7F05A1C8 C4AA0004 */ lwc1 $f10, 4($a1) -/* 08ECFC 7F05A1CC 46004107 */ neg.s $f4, $f8 -/* 08ED00 7F05A1D0 E4A40030 */ swc1 $f4, 0x30($a1) -/* 08ED04 7F05A1D4 C4860030 */ lwc1 $f6, 0x30($a0) -/* 08ED08 7F05A1D8 C4840034 */ lwc1 $f4, 0x34($a0) -/* 08ED0C 7F05A1DC 460A3202 */ mul.s $f8, $f6, $f10 -/* 08ED10 7F05A1E0 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 08ED14 7F05A1E4 46062282 */ mul.s $f10, $f4, $f6 -/* 08ED18 7F05A1E8 C4A60024 */ lwc1 $f6, 0x24($a1) -/* 08ED1C 7F05A1EC 460A4100 */ add.s $f4, $f8, $f10 -/* 08ED20 7F05A1F0 C4880038 */ lwc1 $f8, 0x38($a0) -/* 08ED24 7F05A1F4 46083282 */ mul.s $f10, $f6, $f8 -/* 08ED28 7F05A1F8 46045180 */ add.s $f6, $f10, $f4 -/* 08ED2C 7F05A1FC C4A40008 */ lwc1 $f4, 8($a1) -/* 08ED30 7F05A200 46003207 */ neg.s $f8, $f6 -/* 08ED34 7F05A204 E4A80034 */ swc1 $f8, 0x34($a1) -/* 08ED38 7F05A208 C48A0030 */ lwc1 $f10, 0x30($a0) -/* 08ED3C 7F05A20C C4880034 */ lwc1 $f8, 0x34($a0) -/* 08ED40 7F05A210 46045182 */ mul.s $f6, $f10, $f4 -/* 08ED44 7F05A214 C4AA0018 */ lwc1 $f10, 0x18($a1) -/* 08ED48 7F05A218 460A4102 */ mul.s $f4, $f8, $f10 -/* 08ED4C 7F05A21C C4AA0028 */ lwc1 $f10, 0x28($a1) -/* 08ED50 7F05A220 46043200 */ add.s $f8, $f6, $f4 -/* 08ED54 7F05A224 C4860038 */ lwc1 $f6, 0x38($a0) -/* 08ED58 7F05A228 27BD0030 */ addiu $sp, $sp, 0x30 -/* 08ED5C 7F05A22C E4A2003C */ swc1 $f2, 0x3c($a1) -/* 08ED60 7F05A230 46065102 */ mul.s $f4, $f10, $f6 -/* 08ED64 7F05A234 E4A0000C */ swc1 $f0, 0xc($a1) -/* 08ED68 7F05A238 E4A0001C */ swc1 $f0, 0x1c($a1) -/* 08ED6C 7F05A23C E4A0002C */ swc1 $f0, 0x2c($a1) -/* 08ED70 7F05A240 46082280 */ add.s $f10, $f4, $f8 -/* 08ED74 7F05A244 46005187 */ neg.s $f6, $f10 -/* 08ED78 7F05A248 03E00008 */ jr $ra -/* 08ED7C 7F05A24C E4A60038 */ swc1 $f6, 0x38($a1) -) -#endif + void matrix_4x4_7F05A250(Mtxf *arg0, Mtxf *arg1) { s32 i, j; diff --git a/src/game/matrixmath.h b/src/game/matrixmath.h index 6740cb01..bc933f66 100644 --- a/src/game/matrixmath.h +++ b/src/game/matrixmath.h @@ -10,7 +10,7 @@ void matrix_4x4_7F059694(Mtxf *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 void matrix_4x4_multiply(Mtxf *lhs, Mtxf *rhs, Mtxf *result); void matrix_4x4_set_position(vec3 position, Mtxf *matrix); void matrix_4x4_7F059424(Mtxf *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9); -u16 sub_GAME_7F05997C(f32 arg0, f32 arg1); +u32 sub_GAME_7F05997C(f32 arg0, f32 arg1); void matrix_4x4_7F05A310(Mtxf *arg0, Mtxf *arg1); f32 matrix_4x4_determinant(Mtxf *matrix); @@ -19,7 +19,7 @@ f32 matrix_2x2_determinant(f32 a, f32 c, f32 b, f32 d); void matrix_4x4_7F058C4C(f32 arg0); void matrix_4x4_copy(Mtxf *src, Mtxf *dst); -s32 matrix_4x4_multiply_homogeneous(Mtxf *lhs, Mtxf *rhs, Mtxf *result); +void matrix_4x4_multiply_homogeneous(Mtxf *lhs, Mtxf *rhs, Mtxf *result); void matrix_4x4_f32_to_s32(Mtxf *a, Mtxf *b); void matrix_4x4_multiply_homogeneous_in_place(Mtxf *lhs, Mtxf *rhs); @@ -33,9 +33,14 @@ void matrix_4x4_set_rotation_around_z(f32 angle, Mtxf *matrix); void matrix_4x4_multiply_in_place(Mtxf *lhs, Mtxf *rhs); void matrix_4x4_set_identity_and_position(vec3 position, Mtxf *matrix); void matrix_column_3_scalar_multiply_2(f32 scalar, f32 *matrix); +void matrix_4x4_set_position_and_rotation_around_y(f32 *position, f32 angle, Mtxf *matrix); +void matrix_scalar_multiply_2(f32 scalar, f32 *matrix); +void matrix_4x4_set_rotation_around_xyz(vec3 angles, Mtxf *matrix); // tenative guess void sub_GAME_7F058E78(Mtxf *arg0, Mtxf *arg1); +void matrix_7f05842c_eu (Mtxf * src, f32 dst[3][3]); +void matrix_4x4_multiply_homogeneous_in_place_eu (f32 src[3][3], f32 dst[3][3]); /* matrixmath_misc.h */ diff --git a/src/game/mp_music.h b/src/game/mp_music.h index 729be61d..58f34fe5 100644 --- a/src/game/mp_music.h +++ b/src/game/mp_music.h @@ -12,5 +12,6 @@ void reset_all_music_slots(void); void musicStopSlot(s32 slot); void musicPlaySlot(s32 slot, s32 min, s32 sec); void sub_GAME_7F0C1340(void); +u16 sub_GAME_7F0C0BF0(void); #endif diff --git a/src/game/mp_watch.c b/src/game/mp_watch.c index a9a954d4..13b8c1a8 100644 --- a/src/game/mp_watch.c +++ b/src/game/mp_watch.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include @@ -8,7 +9,14 @@ #include "textrelated.h" #include "unk_0C0A70.h" #include "player.h" +#include "player_2.h" #include "mp_watch.h" +#include "gun.h" +#include "front.h" +#include "lvl.h" +#include "lvl_text.h" +#include "mp_music.h" +#include "file.h" // bss s32 g_stopPlayFlag; @@ -21,7 +29,7 @@ s32 g_pausedFlag; s32 who_paused; // data -u16 loaded_text_index[] = { +u16 g_AwardNames[] = { TEXT(LMPMENU,0),TEXT(LMPMENU,1),TEXT(LMPMENU,2),TEXT(LMPMENU,3),TEXT(LMPMENU,4),TEXT(LMPMENU,5), TEXT(LMPMENU,6),TEXT(LMPMENU,7),TEXT(LMPMENU,8),TEXT(LMPMENU,9),TEXT(LMPMENU,0xA),TEXT(LMPMENU,0xB), TEXT(LMPMENU,0xC),TEXT(LMPMENU,0xD),TEXT(LMPMENU,0xE),TEXT(LMPMENU,0xF),TEXT(LMPMENU,0x10) @@ -113,7 +121,7 @@ void mpwatchUnpauseGame(void) g_pausedFlag = 0; } -s32 sub_GAME_7F0C2024(int numplayers, int param_2, int param_3, int param_4, int param_5) +s32 mpFindMaxInt(int numplayers, int param_2, int param_3, int param_4, int param_5) { s32 aux; s32 result; @@ -150,7 +158,7 @@ s32 sub_GAME_7F0C2024(int numplayers, int param_2, int param_3, int param_4, int } -s32 sub_GAME_7F0C2114(int numplayers, int param_2, int param_3, int param_4, int param_5) +s32 mpFindMinInt(int numplayers, int param_2, int param_3, int param_4, int param_5) { s32 aux; s32 result; @@ -186,7 +194,7 @@ s32 sub_GAME_7F0C2114(int numplayers, int param_2, int param_3, int param_4, int } -s32 sub_GAME_7F0C2204(s32 numplayers, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +s32 mpFindMaxFloat(s32 numplayers, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { s32 aux; s32 result; @@ -221,7 +229,7 @@ s32 sub_GAME_7F0C2204(s32 numplayers, f32 arg1, f32 arg2, f32 arg3, f32 arg4) return result; } -s32 sub_GAME_7F0C234C(s32 numplayers, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +s32 mpFindMinFloat(s32 numplayers, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { s32 aux; s32 result; @@ -284,2345 +292,423 @@ s32 sub_GAME_7F0C24BC(void) } -void mpwatchSetStopPlayFlag(void) { +void mpwatchSetStopPlayFlag(void) +{ g_stopPlayFlag = 1; } +void mpCalculateAwards(s32 arg0) +{ + s32 player_count; + s32 i; + s32 j; + s32 weapon_choice_2; + s32 weapon_choice_1; + s32 prev_player_num; + s32 duration; + struct AwardMetrics metrics[4]; + player_count = getPlayerCount(); + duration = getMissiontimer(); + sndDeactivateAllSfxByFlag_1(); + set_missionstate(MISSION_STATE_0); -#ifdef NONMATCHING -void end_game_and_show_game_over_menu(int arg0) { + musicTrack1ApplySeqpVol(sub_GAME_7F0C0BF0()); + g_musicXTrack1Fade = 0; + musicTrack1Play(0x2C); + pauseAndLockControls(); + + if (arg0 != 0) + { + g_gameOverFlag = (PAL ? 0xFA : 0x12C); + } + else + { + g_gameOverFlag = 1; + } + + time_trigger_alt_gameover_msg = 1; + + dword_CODE_bss_8008C714 = (PAL ? 0x10 : 0x14); + + dword_CODE_bss_8008C708 = 0; + dword_CODE_bss_8008C70C = 0; + + prev_player_num = get_cur_playernum(); + + for (i = 0; i < player_count; i++) + { + + set_cur_player(i); + + g_CurrentPlayer->mpmenuon = 1; + g_CurrentPlayer->mpmenumode = 3; + g_CurrentPlayer->ptr_text_first_mp_award = 0; + g_CurrentPlayer->ptr_text_second_mp_award = 0; + + bondinvGetWeaponOfChoice(&weapon_choice_1, &weapon_choice_2); + store_favorite_weapon_current_player((u32) weapon_choice_1, (u32) weapon_choice_2); + + metrics[i].num_shots = get_curplayer_shot_register(SHOT_REGISTER_TOTAL); + metrics[i].num_headshots = get_curplayer_shot_register(SHOT_REGISTER_HEAD); + metrics[i].num_kills = 0; + metrics[i].num_deaths = 0; + metrics[i].num_suicides = 0; + + for (j = 0; j < get_selected_num_players(); j++) + { + metrics[i].num_deaths += g_playerPlayerData[j].kill_counts[i]; + if (i == j) + { + metrics[i].num_suicides += g_playerPlayerData[i].kill_counts[j]; + } + else + { + metrics[i].num_kills += g_playerPlayerData[i].kill_counts[j]; + } + } + + metrics[i].ks_ratio = metrics[i].num_kills * 100.0f / (metrics[i].num_shots + 1.0f); + metrics[i].kd_ratio = metrics[i].num_kills * 100.0f / (metrics[i].num_deaths + 1.0f); + metrics[i].damage_to_backside = g_playerPlayerData[i].damage_to_backside; + metrics[i].time_other_players_on_screen = g_playerPlayerData[i].time_other_players_on_screen; + metrics[i].avg_km_per_hour = g_playerPlayerData[i].distance_traveled / 100000.0f / ((duration + 1) / (3600.0f * 60.0f)); + metrics[i].body_armor_pickups = g_playerPlayerData[i].body_armor_pickups; + metrics[i].awards = 0; + metrics[i].longest_inning = g_playerPlayerData[i].longest_inning; + metrics[i].shortest_inning = g_playerPlayerData[i].shortest_inning; + } + + set_cur_player(prev_player_num); + + // Choose which players are eligible for which awards + i = mpFindMaxInt(player_count, metrics[0].num_suicides, metrics[1].num_suicides, metrics[2].num_suicides, metrics[3].num_suicides); + + if (metrics[i].num_suicides > 0) + { + metrics[i].awards |= AWARD_MOSTSUICIDAL; + } + + i = mpFindMinInt(player_count, metrics[0].num_shots, metrics[1].num_shots, metrics[2].num_shots, metrics[3].num_shots); + + if (metrics[i].num_shots < 100) + { + metrics[i].awards |= AWARD_WHONEEDSAMMO; + } + + i = mpFindMinFloat(player_count, metrics[0].body_armor_pickups, metrics[1].body_armor_pickups, metrics[2].body_armor_pickups, metrics[3].body_armor_pickups); + + if (metrics[i].body_armor_pickups <= 2.0f) + { + metrics[i].awards |= AWARD_WHERESTHEARMOR; + } + + i = mpFindMaxFloat(player_count, metrics[0].body_armor_pickups, metrics[1].body_armor_pickups, metrics[2].body_armor_pickups, metrics[3].body_armor_pickups); + + if (metrics[i].body_armor_pickups > 6.0f) + { + metrics[i].awards |= AWARD_ACNEGATIVE10; + } + + i = mpFindMaxInt(player_count, metrics[0].num_headshots, metrics[1].num_headshots, metrics[2].num_headshots, metrics[3].num_headshots); + + if (metrics[i].num_headshots > 0) + { + metrics[i].awards |= AWARD_MARKSMANSHIP; + } + + i = mpFindMaxFloat(player_count, metrics[0].ks_ratio, metrics[1].ks_ratio, metrics[2].ks_ratio, metrics[3].ks_ratio); + + if (metrics[i].ks_ratio > 0.0f) + { + metrics[i].awards |= AWARD_MOSTPROFESSIONAL; + } + + i = mpFindMaxFloat(player_count, metrics[0].kd_ratio, metrics[1].kd_ratio, metrics[2].kd_ratio, metrics[3].kd_ratio); + + if (metrics[i].kd_ratio > 0.0f) + { + metrics[i].awards |= AWARD_MOSTDEADLY; + } + + i = mpFindMinFloat(player_count, metrics[0].kd_ratio, metrics[1].kd_ratio, metrics[2].kd_ratio, metrics[3].kd_ratio); + metrics[i].awards |= AWARD_MOSTHARMLESS; + + i = mpFindMinInt(player_count, metrics[0].time_other_players_on_screen, metrics[1].time_other_players_on_screen, metrics[2].time_other_players_on_screen, metrics[3].time_other_players_on_screen); + metrics[i].awards |= AWARD_MOSTCOWARDLY; + + i = mpFindMaxFloat(player_count, metrics[0].avg_km_per_hour, metrics[1].avg_km_per_hour, metrics[2].avg_km_per_hour, metrics[3].avg_km_per_hour); + + if (metrics[i].avg_km_per_hour > 10.0f) + { + metrics[i].awards |= AWARD_MOSTFRANTIC; + } + + i = mpFindMinInt(player_count, metrics[0].damage_to_backside, metrics[1].damage_to_backside, metrics[2].damage_to_backside, metrics[3].damage_to_backside); + metrics[i].awards |= AWARD_MOSTHONORABLE; + + i = mpFindMaxInt(player_count, metrics[0].damage_to_backside, metrics[1].damage_to_backside, metrics[2].damage_to_backside, metrics[3].damage_to_backside); + + if (metrics[i].damage_to_backside > 0 && (metrics[i].awards & AWARD_MOSTHONORABLE) == 0) + { + metrics[i].awards |= AWARD_MOSTDISHONORABLE; + } + + i = mpFindMaxInt(player_count, metrics[0].longest_inning, metrics[1].longest_inning, metrics[2].longest_inning, metrics[3].longest_inning); + + if (metrics[i].longest_inning > 0) + { + metrics[i].awards |= AWARD_LONGESTINNINGS; + } + + i = mpFindMinInt(player_count, metrics[0].shortest_inning, metrics[1].shortest_inning, metrics[2].shortest_inning, metrics[3].shortest_inning); + + if (metrics[i].shortest_inning > 0) + { + metrics[i].awards |= AWARD_SHORTESTINNINGS; + } + + for (i = 0; i < player_count; i++) + { + if (g_playerPlayerData[i].most_killed_one_time == 4) + { + metrics[i].awards |= AWARD_QUADKILL; + } + else if (g_playerPlayerData[i].most_killed_one_time == 3) + { + metrics[i].awards |= AWARD_TRIPLEKILL; + } + else if (g_playerPlayerData[i].most_killed_one_time == 2) + { + metrics[i].awards |= AWARD_DOUBLEKILL; + } + } + + // For each player, choose which two awards to actually give them. + // Note that the first award checked is quad kill, but after that the awards + // are checked randomly. So if a player has quad kill they'll definitely see + // it on the endscreen, but this is not the case for triple kill or any + // other awards. + for (i = 0; i < player_count; i++) + { + s32 numdone = 0; + s32 awardindex = 16; + + while (numdone == 0) + { + if (metrics[i].awards & (1 << awardindex)) + { + metrics[i].awards &= ~(1 << awardindex); + g_playerPointers[i]->ptr_text_first_mp_award = langGet(g_AwardNames[awardindex]); + numdone = 1; + } + + if (metrics[i].awards == 0) + { + numdone = 1; + } + + awardindex = randomGetNext() % 17; + } + + while (numdone < 2) + { + awardindex = randomGetNext() % 17; + + if (metrics[i].awards & (1 << awardindex)) + { + metrics[i].awards &= ~(1 << awardindex); + g_playerPointers[i]->ptr_text_second_mp_award = langGet(g_AwardNames[awardindex]); + numdone = 2; + } + + if (metrics[i].awards == 0) + { + numdone = 2; + } + } + } } -#else -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.late_rodata -glabel D_8005BC80 -.word 0x4852f000 /*216000.0*/ -glabel D_8005BC84 -.word 0x47c35000 /*100000.0*/ -.text -glabel end_game_and_show_game_over_menu -/* 0F7060 7F0C2530 27BDFE98 */ addiu $sp, $sp, -0x168 -/* 0F7064 7F0C2534 AFBF0044 */ sw $ra, 0x44($sp) -/* 0F7068 7F0C2538 AFB10024 */ sw $s1, 0x24($sp) -/* 0F706C 7F0C253C 00808825 */ move $s1, $a0 -/* 0F7070 7F0C2540 AFBE0040 */ sw $fp, 0x40($sp) -/* 0F7074 7F0C2544 AFB7003C */ sw $s7, 0x3c($sp) -/* 0F7078 7F0C2548 AFB60038 */ sw $s6, 0x38($sp) -/* 0F707C 7F0C254C AFB50034 */ sw $s5, 0x34($sp) -/* 0F7080 7F0C2550 AFB40030 */ sw $s4, 0x30($sp) -/* 0F7084 7F0C2554 AFB3002C */ sw $s3, 0x2c($sp) -/* 0F7088 7F0C2558 AFB20028 */ sw $s2, 0x28($sp) -/* 0F708C 7F0C255C 0FC26919 */ jal getPlayerCount -/* 0F7090 7F0C2560 AFB00020 */ sw $s0, 0x20($sp) -/* 0F7094 7F0C2564 0FC22FEE */ jal getMissiontimer -/* 0F7098 7F0C2568 0040F025 */ move $fp, $v0 -/* 0F709C 7F0C256C 0C002449 */ jal sndDeactivateAllSfxByFlag_1 -/* 0F70A0 7F0C2570 00408025 */ move $s0, $v0 -/* 0F70A4 7F0C2574 0FC3030F */ jal set_missionstate -/* 0F70A8 7F0C2578 00002025 */ move $a0, $zero -/* 0F70AC 7F0C257C 0FC302FC */ jal sub_GAME_7F0C0BF0 -/* 0F70B0 7F0C2580 00000000 */ nop -/* 0F70B4 7F0C2584 0C001C0F */ jal musicTrack1ApplySeqpVol -/* 0F70B8 7F0C2588 3044FFFF */ andi $a0, $v0, 0xffff -/* 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 -/* 0F70D0 7F0C25A0 00000000 */ nop -/* 0F70D4 7F0C25A4 12200005 */ beqz $s1, .L7F0C25BC -/* 0F70D8 7F0C25A8 24180001 */ li $t8, 1 -/* 0F70DC 7F0C25AC 240E012C */ li $t6, 300 -/* 0F70E0 7F0C25B0 3C018009 */ lui $at, %hi(g_gameOverFlag) -/* 0F70E4 7F0C25B4 10000004 */ b .L7F0C25C8 -/* 0F70E8 7F0C25B8 AC2EC704 */ sw $t6, %lo(g_gameOverFlag)($at) -.L7F0C25BC: -/* 0F70EC 7F0C25BC 240F0001 */ li $t7, 1 -/* 0F70F0 7F0C25C0 3C018009 */ lui $at, %hi(g_gameOverFlag) -/* 0F70F4 7F0C25C4 AC2FC704 */ sw $t7, %lo(g_gameOverFlag)($at) -.L7F0C25C8: -/* 0F70F8 7F0C25C8 3C018009 */ lui $at, %hi(time_trigger_alt_gameover_msg) -/* 0F70FC 7F0C25CC AC38C710 */ sw $t8, %lo(time_trigger_alt_gameover_msg)($at) -/* 0F7100 7F0C25D0 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C714) -/* 0F7104 7F0C25D4 24190014 */ li $t9, 20 -/* 0F7108 7F0C25D8 AC39C714 */ sw $t9, %lo(dword_CODE_bss_8008C714)($at) -/* 0F710C 7F0C25DC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C708) -/* 0F7110 7F0C25E0 AC20C708 */ sw $zero, %lo(dword_CODE_bss_8008C708)($at) -/* 0F7114 7F0C25E4 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C70C) -/* 0F7118 7F0C25E8 0FC26C54 */ jal get_cur_playernum -/* 0F711C 7F0C25EC AC20C70C */ sw $zero, %lo(dword_CODE_bss_8008C70C)($at) -/* 0F7120 7F0C25F0 AFA20150 */ sw $v0, 0x150($sp) -/* 0F7124 7F0C25F4 1BC00078 */ blez $fp, .L7F0C27D8 -/* 0F7128 7F0C25F8 0000B025 */ move $s6, $zero -/* 0F712C 7F0C25FC 26080001 */ addiu $t0, $s0, 1 -/* 0F7130 7F0C2600 44882000 */ mtc1 $t0, $f4 -/* 0F7134 7F0C2604 3C018006 */ lui $at, %hi(D_8005BC80) -/* 0F7138 7F0C2608 C428BC80 */ lwc1 $f8, %lo(D_8005BC80)($at) -/* 0F713C 7F0C260C 468021A0 */ cvt.s.w $f6, $f4 -/* 0F7140 7F0C2610 3C148008 */ lui $s4, %hi(g_playerPlayerData) -/* 0F7144 7F0C2614 3C158008 */ lui $s5, %hi(g_CurrentPlayer) -/* 0F7148 7F0C2618 26B5A0B0 */ addiu $s5, %lo(g_CurrentPlayer) # addiu $s5, $s5, -0x5f50 -/* 0F714C 7F0C261C 26949EF0 */ addiu $s4, %lo(g_playerPlayerData) # addiu $s4, $s4, -0x6110 -/* 0F7150 7F0C2620 27B2006C */ addiu $s2, $sp, 0x6c -/* 0F7154 7F0C2624 46083283 */ div.s $f10, $f6, $f8 -/* 0F7158 7F0C2628 24170003 */ li $s7, 3 -/* 0F715C 7F0C262C E7AA0048 */ swc1 $f10, 0x48($sp) -.L7F0C2630: -/* 0F7160 7F0C2630 02C02025 */ move $a0, $s6 -/* 0F7164 7F0C2634 0FC26C43 */ jal set_cur_player -/* 0F7168 7F0C2638 00008825 */ move $s1, $zero -/* 0F716C 7F0C263C 8EAA0000 */ lw $t2, ($s5) -/* 0F7170 7F0C2640 24090001 */ li $t1, 1 -/* 0F7174 7F0C2644 27A40154 */ addiu $a0, $sp, 0x154 -/* 0F7178 7F0C2648 AD4929C4 */ sw $t1, 0x29c4($t2) -/* 0F717C 7F0C264C 8EAB0000 */ lw $t3, ($s5) -/* 0F7180 7F0C2650 27A50158 */ addiu $a1, $sp, 0x158 -/* 0F7184 7F0C2654 AD7729C8 */ sw $s7, 0x29c8($t3) -/* 0F7188 7F0C2658 8EAC0000 */ lw $t4, ($s5) -/* 0F718C 7F0C265C AD802A10 */ sw $zero, 0x2a10($t4) -/* 0F7190 7F0C2660 8EAD0000 */ lw $t5, ($s5) -/* 0F7194 7F0C2664 0FC236C2 */ jal bondinvGetWeaponOfChoice -/* 0F7198 7F0C2668 ADA02A14 */ sw $zero, 0x2a14($t5) -/* 0F719C 7F0C266C 8FA40154 */ lw $a0, 0x154($sp) -/* 0F71A0 7F0C2670 0FC075A0 */ jal store_favorite_weapon_current_player -/* 0F71A4 7F0C2674 8FA50158 */ lw $a1, 0x158($sp) -/* 0F71A8 7F0C2678 0FC1A9D0 */ jal get_curplayer_shot_register -/* 0F71AC 7F0C267C 00002025 */ move $a0, $zero -/* 0F71B0 7F0C2680 AE420000 */ sw $v0, ($s2) -/* 0F71B4 7F0C2684 0FC1A9D0 */ jal get_curplayer_shot_register -/* 0F71B8 7F0C2688 24040001 */ li $a0, 1 -/* 0F71BC 7F0C268C AE420004 */ sw $v0, 4($s2) -/* 0F71C0 7F0C2690 AE400008 */ sw $zero, 8($s2) -/* 0F71C4 7F0C2694 AE40000C */ sw $zero, 0xc($s2) -/* 0F71C8 7F0C2698 0FC040A4 */ jal get_selected_num_players -/* 0F71CC 7F0C269C AE400010 */ sw $zero, 0x10($s2) -/* 0F71D0 7F0C26A0 18400023 */ blez $v0, .L7F0C2730 -/* 0F71D4 7F0C26A4 001170C0 */ sll $t6, $s1, 3 -/* 0F71D8 7F0C26A8 001640C0 */ sll $t0, $s6, 3 -/* 0F71DC 7F0C26AC 01164023 */ subu $t0, $t0, $s6 -/* 0F71E0 7F0C26B0 01D17023 */ subu $t6, $t6, $s1 -/* 0F71E4 7F0C26B4 3C198008 */ lui $t9, %hi(g_playerPlayerData) -/* 0F71E8 7F0C26B8 27399EF0 */ addiu $t9, %lo(g_playerPlayerData) # addiu $t9, $t9, -0x6110 -/* 0F71EC 7F0C26BC 000E7100 */ sll $t6, $t6, 4 -/* 0F71F0 7F0C26C0 00084100 */ sll $t0, $t0, 4 -/* 0F71F4 7F0C26C4 00167880 */ sll $t7, $s6, 2 -/* 0F71F8 7F0C26C8 00114880 */ sll $t1, $s1, 2 -/* 0F71FC 7F0C26CC 01095021 */ addu $t2, $t0, $t1 -/* 0F7200 7F0C26D0 01CFC021 */ addu $t8, $t6, $t7 -/* 0F7204 7F0C26D4 03199821 */ addu $s3, $t8, $t9 -/* 0F7208 7F0C26D8 01598021 */ addu $s0, $t2, $t9 -/* 0F720C 7F0C26DC 8E4B000C */ lw $t3, 0xc($s2) -.L7F0C26E0: -/* 0F7210 7F0C26E0 8E6C0024 */ lw $t4, 0x24($s3) -/* 0F7214 7F0C26E4 26730070 */ addiu $s3, $s3, 0x70 -/* 0F7218 7F0C26E8 016C6821 */ addu $t5, $t3, $t4 -/* 0F721C 7F0C26EC 16D10006 */ bne $s6, $s1, .L7F0C2708 -/* 0F7220 7F0C26F0 AE4D000C */ sw $t5, 0xc($s2) -/* 0F7224 7F0C26F4 8E4E0010 */ lw $t6, 0x10($s2) -/* 0F7228 7F0C26F8 8E0F0024 */ lw $t7, 0x24($s0) -/* 0F722C 7F0C26FC 01CFC021 */ addu $t8, $t6, $t7 -/* 0F7230 7F0C2700 10000005 */ b .L7F0C2718 -/* 0F7234 7F0C2704 AE580010 */ sw $t8, 0x10($s2) -.L7F0C2708: -/* 0F7238 7F0C2708 8E480008 */ lw $t0, 8($s2) -/* 0F723C 7F0C270C 8E090024 */ lw $t1, 0x24($s0) -/* 0F7240 7F0C2710 01095021 */ addu $t2, $t0, $t1 -/* 0F7244 7F0C2714 AE4A0008 */ sw $t2, 8($s2) -.L7F0C2718: -/* 0F7248 7F0C2718 26310001 */ addiu $s1, $s1, 1 -/* 0F724C 7F0C271C 0FC040A4 */ jal get_selected_num_players -/* 0F7250 7F0C2720 26100004 */ addiu $s0, $s0, 4 -/* 0F7254 7F0C2724 0222082A */ slt $at, $s1, $v0 -/* 0F7258 7F0C2728 5420FFED */ bnezl $at, .L7F0C26E0 -/* 0F725C 7F0C272C 8E4B000C */ lw $t3, 0xc($s2) -.L7F0C2730: -/* 0F7260 7F0C2730 8E590008 */ lw $t9, 8($s2) -/* 0F7264 7F0C2734 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F7268 7F0C2738 44811000 */ mtc1 $at, $f2 -/* 0F726C 7F0C273C 44998000 */ mtc1 $t9, $f16 -/* 0F7270 7F0C2740 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0F7274 7F0C2744 44812000 */ mtc1 $at, $f4 -/* 0F7278 7F0C2748 468084A0 */ cvt.s.w $f18, $f16 -/* 0F727C 7F0C274C 8E4B0000 */ lw $t3, ($s2) -/* 0F7280 7F0C2750 8E4C000C */ lw $t4, 0xc($s2) -/* 0F7284 7F0C2754 8E8D003C */ lw $t5, 0x3c($s4) -/* 0F7288 7F0C2758 448B3000 */ mtc1 $t3, $f6 -/* 0F728C 7F0C275C 8E8E0034 */ lw $t6, 0x34($s4) -/* 0F7290 7F0C2760 46049002 */ mul.s $f0, $f18, $f4 -/* 0F7294 7F0C2764 448C9000 */ mtc1 $t4, $f18 -/* 0F7298 7F0C2768 3C018006 */ lui $at, %hi(D_8005BC84) -/* 0F729C 7F0C276C AE4D001C */ sw $t5, 0x1c($s2) -/* 0F72A0 7F0C2770 AE4E0020 */ sw $t6, 0x20($s2) -/* 0F72A4 7F0C2774 8E8F004C */ lw $t7, 0x4c($s4) -/* 0F72A8 7F0C2778 46803220 */ cvt.s.w $f8, $f6 -/* 0F72AC 7F0C277C 8E980050 */ lw $t8, 0x50($s4) -/* 0F72B0 7F0C2780 26D60001 */ addiu $s6, $s6, 1 -/* 0F72B4 7F0C2784 26520038 */ addiu $s2, $s2, 0x38 -/* 0F72B8 7F0C2788 26940070 */ addiu $s4, $s4, 0x70 -/* 0F72BC 7F0C278C 46809120 */ cvt.s.w $f4, $f18 -/* 0F72C0 7F0C2790 46024280 */ add.s $f10, $f8, $f2 -/* 0F72C4 7F0C2794 46022180 */ add.s $f6, $f4, $f2 -/* 0F72C8 7F0C2798 460A0403 */ div.s $f16, $f0, $f10 -/* 0F72CC 7F0C279C C68AFFC8 */ lwc1 $f10, -0x38($s4) -/* 0F72D0 7F0C27A0 46060203 */ div.s $f8, $f0, $f6 -/* 0F72D4 7F0C27A4 E650FFDC */ swc1 $f16, -0x24($s2) -/* 0F72D8 7F0C27A8 E648FFE0 */ swc1 $f8, -0x20($s2) -/* 0F72DC 7F0C27AC C430BC84 */ lwc1 $f16, %lo(D_8005BC84)($at) -/* 0F72E0 7F0C27B0 C7A40048 */ lwc1 $f4, 0x48($sp) -/* 0F72E4 7F0C27B4 C688FFD0 */ lwc1 $f8, -0x30($s4) -/* 0F72E8 7F0C27B8 46105483 */ div.s $f18, $f10, $f16 -/* 0F72EC 7F0C27BC AE40FFF4 */ sw $zero, -0xc($s2) -/* 0F72F0 7F0C27C0 AE4FFFF8 */ sw $t7, -8($s2) -/* 0F72F4 7F0C27C4 AE58FFFC */ sw $t8, -4($s2) -/* 0F72F8 7F0C27C8 E648FFF0 */ swc1 $f8, -0x10($s2) -/* 0F72FC 7F0C27CC 46049183 */ div.s $f6, $f18, $f4 -/* 0F7300 7F0C27D0 16DEFF97 */ bne $s6, $fp, .L7F0C2630 -/* 0F7304 7F0C27D4 E646FFEC */ swc1 $f6, -0x14($s2) -.L7F0C27D8: -/* 0F7308 7F0C27D8 24170003 */ li $s7, 3 -/* 0F730C 7F0C27DC 0FC26C43 */ jal set_cur_player -/* 0F7310 7F0C27E0 8FA40150 */ lw $a0, 0x150($sp) -/* 0F7314 7F0C27E4 8FA80124 */ lw $t0, 0x124($sp) -/* 0F7318 7F0C27E8 03C02025 */ move $a0, $fp -/* 0F731C 7F0C27EC 8FA5007C */ lw $a1, 0x7c($sp) -/* 0F7320 7F0C27F0 8FA600B4 */ lw $a2, 0xb4($sp) -/* 0F7324 7F0C27F4 8FA700EC */ lw $a3, 0xec($sp) -/* 0F7328 7F0C27F8 0FC30809 */ jal sub_GAME_7F0C2024 -/* 0F732C 7F0C27FC AFA80010 */ sw $t0, 0x10($sp) -/* 0F7330 7F0C2800 24130038 */ li $s3, 56 -/* 0F7334 7F0C2804 00530019 */ multu $v0, $s3 -/* 0F7338 7F0C2808 27B1006C */ addiu $s1, $sp, 0x6c -/* 0F733C 7F0C280C 03C02025 */ move $a0, $fp -/* 0F7340 7F0C2810 00004812 */ mflo $t1 -/* 0F7344 7F0C2814 02298021 */ addu $s0, $s1, $t1 -/* 0F7348 7F0C2818 8E0A0010 */ lw $t2, 0x10($s0) -/* 0F734C 7F0C281C 59400005 */ blezl $t2, .L7F0C2834 -/* 0F7350 7F0C2820 8FAC0114 */ lw $t4, 0x114($sp) -/* 0F7354 7F0C2824 8E19002C */ lw $t9, 0x2c($s0) -/* 0F7358 7F0C2828 372B0001 */ ori $t3, $t9, 1 -/* 0F735C 7F0C282C AE0B002C */ sw $t3, 0x2c($s0) -/* 0F7360 7F0C2830 8FAC0114 */ lw $t4, 0x114($sp) -.L7F0C2834: -/* 0F7364 7F0C2834 8FA5006C */ lw $a1, 0x6c($sp) -/* 0F7368 7F0C2838 8FA600A4 */ lw $a2, 0xa4($sp) -/* 0F736C 7F0C283C 8FA700DC */ lw $a3, 0xdc($sp) -/* 0F7370 7F0C2840 0FC30845 */ jal sub_GAME_7F0C2114 -/* 0F7374 7F0C2844 AFAC0010 */ sw $t4, 0x10($sp) -/* 0F7378 7F0C2848 00530019 */ multu $v0, $s3 -/* 0F737C 7F0C284C 03C02025 */ move $a0, $fp -/* 0F7380 7F0C2850 00006812 */ mflo $t5 -/* 0F7384 7F0C2854 022D8021 */ addu $s0, $s1, $t5 -/* 0F7388 7F0C2858 8E0E0000 */ lw $t6, ($s0) -/* 0F738C 7F0C285C 29C10064 */ slti $at, $t6, 0x64 -/* 0F7390 7F0C2860 50200005 */ beql $at, $zero, .L7F0C2878 -/* 0F7394 7F0C2864 C7AA013C */ lwc1 $f10, 0x13c($sp) -/* 0F7398 7F0C2868 8E0F002C */ lw $t7, 0x2c($s0) -/* 0F739C 7F0C286C 35F80002 */ ori $t8, $t7, 2 -/* 0F73A0 7F0C2870 AE18002C */ sw $t8, 0x2c($s0) -/* 0F73A4 7F0C2874 C7AA013C */ lwc1 $f10, 0x13c($sp) -.L7F0C2878: -/* 0F73A8 7F0C2878 8FA50094 */ lw $a1, 0x94($sp) -/* 0F73AC 7F0C287C 8FA600CC */ lw $a2, 0xcc($sp) -/* 0F73B0 7F0C2880 8FA70104 */ lw $a3, 0x104($sp) -/* 0F73B4 7F0C2884 0FC308D3 */ jal sub_GAME_7F0C234C -/* 0F73B8 7F0C2888 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0F73BC 7F0C288C 00530019 */ multu $v0, $s3 -/* 0F73C0 7F0C2890 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0F73C4 7F0C2894 44818000 */ mtc1 $at, $f16 -/* 0F73C8 7F0C2898 03C02025 */ move $a0, $fp -/* 0F73CC 7F0C289C 00004012 */ mflo $t0 -/* 0F73D0 7F0C28A0 02288021 */ addu $s0, $s1, $t0 -/* 0F73D4 7F0C28A4 C6120028 */ lwc1 $f18, 0x28($s0) -/* 0F73D8 7F0C28A8 4610903E */ c.le.s $f18, $f16 -/* 0F73DC 7F0C28AC 00000000 */ nop -/* 0F73E0 7F0C28B0 45020005 */ bc1fl .L7F0C28C8 -/* 0F73E4 7F0C28B4 C7A4013C */ lwc1 $f4, 0x13c($sp) -/* 0F73E8 7F0C28B8 8E09002C */ lw $t1, 0x2c($s0) -/* 0F73EC 7F0C28BC 352A0004 */ ori $t2, $t1, 4 -/* 0F73F0 7F0C28C0 AE0A002C */ sw $t2, 0x2c($s0) -/* 0F73F4 7F0C28C4 C7A4013C */ lwc1 $f4, 0x13c($sp) -.L7F0C28C8: -/* 0F73F8 7F0C28C8 8FA50094 */ lw $a1, 0x94($sp) -/* 0F73FC 7F0C28CC 8FA600CC */ lw $a2, 0xcc($sp) -/* 0F7400 7F0C28D0 8FA70104 */ lw $a3, 0x104($sp) -/* 0F7404 7F0C28D4 0FC30881 */ jal sub_GAME_7F0C2204 -/* 0F7408 7F0C28D8 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0F740C 7F0C28DC 00530019 */ multu $v0, $s3 -/* 0F7410 7F0C28E0 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 0F7414 7F0C28E4 44813000 */ mtc1 $at, $f6 -/* 0F7418 7F0C28E8 03C02025 */ move $a0, $fp -/* 0F741C 7F0C28EC 0000C812 */ mflo $t9 -/* 0F7420 7F0C28F0 02398021 */ addu $s0, $s1, $t9 -/* 0F7424 7F0C28F4 C6080028 */ lwc1 $f8, 0x28($s0) -/* 0F7428 7F0C28F8 4608303C */ c.lt.s $f6, $f8 -/* 0F742C 7F0C28FC 00000000 */ nop -/* 0F7430 7F0C2900 45020005 */ bc1fl .L7F0C2918 -/* 0F7434 7F0C2904 8FAD0118 */ lw $t5, 0x118($sp) -/* 0F7438 7F0C2908 8E0B002C */ lw $t3, 0x2c($s0) -/* 0F743C 7F0C290C 356C0008 */ ori $t4, $t3, 8 -/* 0F7440 7F0C2910 AE0C002C */ sw $t4, 0x2c($s0) -/* 0F7444 7F0C2914 8FAD0118 */ lw $t5, 0x118($sp) -.L7F0C2918: -/* 0F7448 7F0C2918 8FA50070 */ lw $a1, 0x70($sp) -/* 0F744C 7F0C291C 8FA600A8 */ lw $a2, 0xa8($sp) -/* 0F7450 7F0C2920 8FA700E0 */ lw $a3, 0xe0($sp) -/* 0F7454 7F0C2924 0FC30809 */ jal sub_GAME_7F0C2024 -/* 0F7458 7F0C2928 AFAD0010 */ sw $t5, 0x10($sp) -/* 0F745C 7F0C292C 00530019 */ multu $v0, $s3 -/* 0F7460 7F0C2930 03C02025 */ move $a0, $fp -/* 0F7464 7F0C2934 00007012 */ mflo $t6 -/* 0F7468 7F0C2938 022E8021 */ addu $s0, $s1, $t6 -/* 0F746C 7F0C293C 8E0F0004 */ lw $t7, 4($s0) -/* 0F7470 7F0C2940 59E00005 */ blezl $t7, .L7F0C2958 -/* 0F7474 7F0C2944 C7AA0128 */ lwc1 $f10, 0x128($sp) -/* 0F7478 7F0C2948 8E18002C */ lw $t8, 0x2c($s0) -/* 0F747C 7F0C294C 37080010 */ ori $t0, $t8, 0x10 -/* 0F7480 7F0C2950 AE08002C */ sw $t0, 0x2c($s0) -/* 0F7484 7F0C2954 C7AA0128 */ lwc1 $f10, 0x128($sp) -.L7F0C2958: -/* 0F7488 7F0C2958 8FA50080 */ lw $a1, 0x80($sp) -/* 0F748C 7F0C295C 8FA600B8 */ lw $a2, 0xb8($sp) -/* 0F7490 7F0C2960 8FA700F0 */ lw $a3, 0xf0($sp) -/* 0F7494 7F0C2964 0FC30881 */ jal sub_GAME_7F0C2204 -/* 0F7498 7F0C2968 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0F749C 7F0C296C 00530019 */ multu $v0, $s3 -/* 0F74A0 7F0C2970 44808000 */ mtc1 $zero, $f16 -/* 0F74A4 7F0C2974 03C02025 */ move $a0, $fp -/* 0F74A8 7F0C2978 00004812 */ mflo $t1 -/* 0F74AC 7F0C297C 02298021 */ addu $s0, $s1, $t1 -/* 0F74B0 7F0C2980 C6120014 */ lwc1 $f18, 0x14($s0) -/* 0F74B4 7F0C2984 4612803C */ c.lt.s $f16, $f18 -/* 0F74B8 7F0C2988 00000000 */ nop -/* 0F74BC 7F0C298C 45020005 */ bc1fl .L7F0C29A4 -/* 0F74C0 7F0C2990 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* 0F74C4 7F0C2994 8E0A002C */ lw $t2, 0x2c($s0) -/* 0F74C8 7F0C2998 35590020 */ ori $t9, $t2, 0x20 -/* 0F74CC 7F0C299C AE19002C */ sw $t9, 0x2c($s0) -/* 0F74D0 7F0C29A0 C7A4012C */ lwc1 $f4, 0x12c($sp) -.L7F0C29A4: -/* 0F74D4 7F0C29A4 8FA50084 */ lw $a1, 0x84($sp) -/* 0F74D8 7F0C29A8 8FA600BC */ lw $a2, 0xbc($sp) -/* 0F74DC 7F0C29AC 8FA700F4 */ lw $a3, 0xf4($sp) -/* 0F74E0 7F0C29B0 0FC30881 */ jal sub_GAME_7F0C2204 -/* 0F74E4 7F0C29B4 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0F74E8 7F0C29B8 00530019 */ multu $v0, $s3 -/* 0F74EC 7F0C29BC 44803000 */ mtc1 $zero, $f6 -/* 0F74F0 7F0C29C0 03C02025 */ move $a0, $fp -/* 0F74F4 7F0C29C4 00005812 */ mflo $t3 -/* 0F74F8 7F0C29C8 022B8021 */ addu $s0, $s1, $t3 -/* 0F74FC 7F0C29CC C6080018 */ lwc1 $f8, 0x18($s0) -/* 0F7500 7F0C29D0 4608303C */ c.lt.s $f6, $f8 -/* 0F7504 7F0C29D4 00000000 */ nop -/* 0F7508 7F0C29D8 45020005 */ bc1fl .L7F0C29F0 -/* 0F750C 7F0C29DC C7AA012C */ lwc1 $f10, 0x12c($sp) -/* 0F7510 7F0C29E0 8E0C002C */ lw $t4, 0x2c($s0) -/* 0F7514 7F0C29E4 358D0040 */ ori $t5, $t4, 0x40 -/* 0F7518 7F0C29E8 AE0D002C */ sw $t5, 0x2c($s0) -/* 0F751C 7F0C29EC C7AA012C */ lwc1 $f10, 0x12c($sp) -.L7F0C29F0: -/* 0F7520 7F0C29F0 8FA50084 */ lw $a1, 0x84($sp) -/* 0F7524 7F0C29F4 8FA600BC */ lw $a2, 0xbc($sp) -/* 0F7528 7F0C29F8 8FA700F4 */ lw $a3, 0xf4($sp) -/* 0F752C 7F0C29FC 0FC308D3 */ jal sub_GAME_7F0C234C -/* 0F7530 7F0C2A00 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0F7534 7F0C2A04 00530019 */ multu $v0, $s3 -/* 0F7538 7F0C2A08 03C02025 */ move $a0, $fp -/* 0F753C 7F0C2A0C 00007012 */ mflo $t6 -/* 0F7540 7F0C2A10 022E8021 */ addu $s0, $s1, $t6 -/* 0F7544 7F0C2A14 8E0F002C */ lw $t7, 0x2c($s0) -/* 0F7548 7F0C2A18 35F80080 */ ori $t8, $t7, 0x80 -/* 0F754C 7F0C2A1C AE18002C */ sw $t8, 0x2c($s0) -/* 0F7550 7F0C2A20 8FA80134 */ lw $t0, 0x134($sp) -/* 0F7554 7F0C2A24 8FA700FC */ lw $a3, 0xfc($sp) -/* 0F7558 7F0C2A28 8FA600C4 */ lw $a2, 0xc4($sp) -/* 0F755C 7F0C2A2C 8FA5008C */ lw $a1, 0x8c($sp) -/* 0F7560 7F0C2A30 0FC30845 */ jal sub_GAME_7F0C2114 -/* 0F7564 7F0C2A34 AFA80010 */ sw $t0, 0x10($sp) -/* 0F7568 7F0C2A38 00530019 */ multu $v0, $s3 -/* 0F756C 7F0C2A3C 03C02025 */ move $a0, $fp -/* 0F7570 7F0C2A40 00004812 */ mflo $t1 -/* 0F7574 7F0C2A44 02298021 */ addu $s0, $s1, $t1 -/* 0F7578 7F0C2A48 8E0A002C */ lw $t2, 0x2c($s0) -/* 0F757C 7F0C2A4C 35590100 */ ori $t9, $t2, 0x100 -/* 0F7580 7F0C2A50 AE19002C */ sw $t9, 0x2c($s0) -/* 0F7584 7F0C2A54 C7B00138 */ lwc1 $f16, 0x138($sp) -/* 0F7588 7F0C2A58 8FA70100 */ lw $a3, 0x100($sp) -/* 0F758C 7F0C2A5C 8FA600C8 */ lw $a2, 0xc8($sp) -/* 0F7590 7F0C2A60 8FA50090 */ lw $a1, 0x90($sp) -/* 0F7594 7F0C2A64 0FC30881 */ jal sub_GAME_7F0C2204 -/* 0F7598 7F0C2A68 E7B00010 */ swc1 $f16, 0x10($sp) -/* 0F759C 7F0C2A6C 00530019 */ multu $v0, $s3 -/* 0F75A0 7F0C2A70 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0F75A4 7F0C2A74 44819000 */ mtc1 $at, $f18 -/* 0F75A8 7F0C2A78 03C02025 */ move $a0, $fp -/* 0F75AC 7F0C2A7C 00005812 */ mflo $t3 -/* 0F75B0 7F0C2A80 022B8021 */ addu $s0, $s1, $t3 -/* 0F75B4 7F0C2A84 C6040024 */ lwc1 $f4, 0x24($s0) -/* 0F75B8 7F0C2A88 4604903C */ c.lt.s $f18, $f4 -/* 0F75BC 7F0C2A8C 00000000 */ nop -/* 0F75C0 7F0C2A90 45020005 */ bc1fl .L7F0C2AA8 -/* 0F75C4 7F0C2A94 8FAE0130 */ lw $t6, 0x130($sp) -/* 0F75C8 7F0C2A98 8E0C002C */ lw $t4, 0x2c($s0) -/* 0F75CC 7F0C2A9C 358D0200 */ ori $t5, $t4, 0x200 -/* 0F75D0 7F0C2AA0 AE0D002C */ sw $t5, 0x2c($s0) -/* 0F75D4 7F0C2AA4 8FAE0130 */ lw $t6, 0x130($sp) -.L7F0C2AA8: -/* 0F75D8 7F0C2AA8 8FA50088 */ lw $a1, 0x88($sp) -/* 0F75DC 7F0C2AAC 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0F75E0 7F0C2AB0 8FA700F8 */ lw $a3, 0xf8($sp) -/* 0F75E4 7F0C2AB4 0FC30845 */ jal sub_GAME_7F0C2114 -/* 0F75E8 7F0C2AB8 AFAE0010 */ sw $t6, 0x10($sp) -/* 0F75EC 7F0C2ABC 00530019 */ multu $v0, $s3 -/* 0F75F0 7F0C2AC0 03C02025 */ move $a0, $fp -/* 0F75F4 7F0C2AC4 00007812 */ mflo $t7 -/* 0F75F8 7F0C2AC8 022F8021 */ addu $s0, $s1, $t7 -/* 0F75FC 7F0C2ACC 8E18002C */ lw $t8, 0x2c($s0) -/* 0F7600 7F0C2AD0 37080400 */ ori $t0, $t8, 0x400 -/* 0F7604 7F0C2AD4 AE08002C */ sw $t0, 0x2c($s0) -/* 0F7608 7F0C2AD8 8FA90130 */ lw $t1, 0x130($sp) -/* 0F760C 7F0C2ADC 8FA700F8 */ lw $a3, 0xf8($sp) -/* 0F7610 7F0C2AE0 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0F7614 7F0C2AE4 8FA50088 */ lw $a1, 0x88($sp) -/* 0F7618 7F0C2AE8 0FC30809 */ jal sub_GAME_7F0C2024 -/* 0F761C 7F0C2AEC AFA90010 */ sw $t1, 0x10($sp) -/* 0F7620 7F0C2AF0 00530019 */ multu $v0, $s3 -/* 0F7624 7F0C2AF4 03C02025 */ move $a0, $fp -/* 0F7628 7F0C2AF8 00005012 */ mflo $t2 -/* 0F762C 7F0C2AFC 022A8021 */ addu $s0, $s1, $t2 -/* 0F7630 7F0C2B00 8E19001C */ lw $t9, 0x1c($s0) -/* 0F7634 7F0C2B04 5B200007 */ blezl $t9, .L7F0C2B24 -/* 0F7638 7F0C2B08 8FAD0144 */ lw $t5, 0x144($sp) -/* 0F763C 7F0C2B0C 8E03002C */ lw $v1, 0x2c($s0) -/* 0F7640 7F0C2B10 306B0400 */ andi $t3, $v1, 0x400 -/* 0F7644 7F0C2B14 15600002 */ bnez $t3, .L7F0C2B20 -/* 0F7648 7F0C2B18 346C0800 */ ori $t4, $v1, 0x800 -/* 0F764C 7F0C2B1C AE0C002C */ sw $t4, 0x2c($s0) -.L7F0C2B20: -/* 0F7650 7F0C2B20 8FAD0144 */ lw $t5, 0x144($sp) -.L7F0C2B24: -/* 0F7654 7F0C2B24 8FA5009C */ lw $a1, 0x9c($sp) -/* 0F7658 7F0C2B28 8FA600D4 */ lw $a2, 0xd4($sp) -/* 0F765C 7F0C2B2C 8FA7010C */ lw $a3, 0x10c($sp) -/* 0F7660 7F0C2B30 0FC30809 */ jal sub_GAME_7F0C2024 -/* 0F7664 7F0C2B34 AFAD0010 */ sw $t5, 0x10($sp) -/* 0F7668 7F0C2B38 00530019 */ multu $v0, $s3 -/* 0F766C 7F0C2B3C 03C02025 */ move $a0, $fp -/* 0F7670 7F0C2B40 00007012 */ mflo $t6 -/* 0F7674 7F0C2B44 022E8021 */ addu $s0, $s1, $t6 -/* 0F7678 7F0C2B48 8E0F0030 */ lw $t7, 0x30($s0) -/* 0F767C 7F0C2B4C 59E00005 */ blezl $t7, .L7F0C2B64 -/* 0F7680 7F0C2B50 8FA90148 */ lw $t1, 0x148($sp) -/* 0F7684 7F0C2B54 8E18002C */ lw $t8, 0x2c($s0) -/* 0F7688 7F0C2B58 37082000 */ ori $t0, $t8, 0x2000 -/* 0F768C 7F0C2B5C AE08002C */ sw $t0, 0x2c($s0) -/* 0F7690 7F0C2B60 8FA90148 */ lw $t1, 0x148($sp) -.L7F0C2B64: -/* 0F7694 7F0C2B64 8FA500A0 */ lw $a1, 0xa0($sp) -/* 0F7698 7F0C2B68 8FA600D8 */ lw $a2, 0xd8($sp) -/* 0F769C 7F0C2B6C 8FA70110 */ lw $a3, 0x110($sp) -/* 0F76A0 7F0C2B70 0FC30845 */ jal sub_GAME_7F0C2114 -/* 0F76A4 7F0C2B74 AFA90010 */ sw $t1, 0x10($sp) -/* 0F76A8 7F0C2B78 00530019 */ multu $v0, $s3 -/* 0F76AC 7F0C2B7C 33C20001 */ andi $v0, $fp, 1 -/* 0F76B0 7F0C2B80 00005012 */ mflo $t2 -/* 0F76B4 7F0C2B84 022A8021 */ addu $s0, $s1, $t2 -/* 0F76B8 7F0C2B88 8E190034 */ lw $t9, 0x34($s0) -/* 0F76BC 7F0C2B8C 1B200004 */ blez $t9, .L7F0C2BA0 -/* 0F76C0 7F0C2B90 00000000 */ nop -/* 0F76C4 7F0C2B94 8E0B002C */ lw $t3, 0x2c($s0) -/* 0F76C8 7F0C2B98 356C1000 */ ori $t4, $t3, 0x1000 -/* 0F76CC 7F0C2B9C AE0C002C */ sw $t4, 0x2c($s0) -.L7F0C2BA0: -/* 0F76D0 7F0C2BA0 1BC0005A */ blez $fp, .L7F0C2D0C -/* 0F76D4 7F0C2BA4 0000B025 */ move $s6, $zero -/* 0F76D8 7F0C2BA8 10400016 */ beqz $v0, .L7F0C2C04 -/* 0F76DC 7F0C2BAC 3C198008 */ lui $t9, %hi(g_playerPlayerData) -/* 0F76E0 7F0C2BB0 3C028008 */ lui $v0, %hi(g_playerPlayerData + 0x58) -/* 0F76E4 7F0C2BB4 8C429F48 */ lw $v0, %lo(g_playerPlayerData + 0x58)($v0) -/* 0F76E8 7F0C2BB8 24030004 */ li $v1, 4 -/* 0F76EC 7F0C2BBC 24160001 */ li $s6, 1 -/* 0F76F0 7F0C2BC0 14620005 */ bne $v1, $v0, .L7F0C2BD8 -/* 0F76F4 7F0C2BC4 8FAD0098 */ lw $t5, 0x98($sp) -/* 0F76F8 7F0C2BC8 3C040001 */ lui $a0, 1 -/* 0F76FC 7F0C2BCC 01A47025 */ or $t6, $t5, $a0 -/* 0F7700 7F0C2BD0 1000000B */ b .L7F0C2C00 -/* 0F7704 7F0C2BD4 AFAE0098 */ sw $t6, 0x98($sp) -.L7F0C2BD8: -/* 0F7708 7F0C2BD8 16E20005 */ bne $s7, $v0, .L7F0C2BF0 -/* 0F770C 7F0C2BDC 24050002 */ li $a1, 2 -/* 0F7710 7F0C2BE0 8FAF0098 */ lw $t7, 0x98($sp) -/* 0F7714 7F0C2BE4 35F88000 */ ori $t8, $t7, 0x8000 -/* 0F7718 7F0C2BE8 10000005 */ b .L7F0C2C00 -/* 0F771C 7F0C2BEC AFB80098 */ sw $t8, 0x98($sp) -.L7F0C2BF0: -/* 0F7720 7F0C2BF0 14A20003 */ bne $a1, $v0, .L7F0C2C00 -/* 0F7724 7F0C2BF4 8FA80098 */ lw $t0, 0x98($sp) -/* 0F7728 7F0C2BF8 35094000 */ ori $t1, $t0, 0x4000 -/* 0F772C 7F0C2BFC AFA90098 */ sw $t1, 0x98($sp) -.L7F0C2C00: -/* 0F7730 7F0C2C00 12DE0041 */ beq $s6, $fp, .L7F0C2D08 -.L7F0C2C04: -/* 0F7734 7F0C2C04 001650C0 */ sll $t2, $s6, 3 -/* 0F7738 7F0C2C08 01565023 */ subu $t2, $t2, $s6 -/* 0F773C 7F0C2C0C 000A5100 */ sll $t2, $t2, 4 -/* 0F7740 7F0C2C10 27399EF0 */ addiu $t9, %lo(g_playerPlayerData) # addiu $t9, $t9, -0x6110 -/* 0F7744 7F0C2C14 0159A021 */ addu $s4, $t2, $t9 -/* 0F7748 7F0C2C18 24030004 */ li $v1, 4 -/* 0F774C 7F0C2C1C 3C040001 */ lui $a0, 1 -/* 0F7750 7F0C2C20 24050002 */ li $a1, 2 -.L7F0C2C24: -/* 0F7754 7F0C2C24 8E820058 */ lw $v0, 0x58($s4) -/* 0F7758 7F0C2C28 14620008 */ bne $v1, $v0, .L7F0C2C4C -/* 0F775C 7F0C2C2C 00000000 */ nop -/* 0F7760 7F0C2C30 02D30019 */ multu $s6, $s3 -/* 0F7764 7F0C2C34 00005812 */ mflo $t3 -/* 0F7768 7F0C2C38 022B9021 */ addu $s2, $s1, $t3 -/* 0F776C 7F0C2C3C 8E4C002C */ lw $t4, 0x2c($s2) -/* 0F7770 7F0C2C40 01846825 */ or $t5, $t4, $a0 -/* 0F7774 7F0C2C44 10000012 */ b .L7F0C2C90 -/* 0F7778 7F0C2C48 AE4D002C */ sw $t5, 0x2c($s2) -.L7F0C2C4C: -/* 0F777C 7F0C2C4C 16E20008 */ bne $s7, $v0, .L7F0C2C70 -/* 0F7780 7F0C2C50 00000000 */ nop -/* 0F7784 7F0C2C54 02D30019 */ multu $s6, $s3 -/* 0F7788 7F0C2C58 00007012 */ mflo $t6 -/* 0F778C 7F0C2C5C 022E9021 */ addu $s2, $s1, $t6 -/* 0F7790 7F0C2C60 8E4F002C */ lw $t7, 0x2c($s2) -/* 0F7794 7F0C2C64 35F88000 */ ori $t8, $t7, 0x8000 -/* 0F7798 7F0C2C68 10000009 */ b .L7F0C2C90 -/* 0F779C 7F0C2C6C AE58002C */ sw $t8, 0x2c($s2) -.L7F0C2C70: -/* 0F77A0 7F0C2C70 54A20008 */ bnel $a1, $v0, .L7F0C2C94 -/* 0F77A4 7F0C2C74 8E8200C8 */ lw $v0, 0xc8($s4) -/* 0F77A8 7F0C2C78 02D30019 */ multu $s6, $s3 -/* 0F77AC 7F0C2C7C 00004012 */ mflo $t0 -/* 0F77B0 7F0C2C80 02289021 */ addu $s2, $s1, $t0 -/* 0F77B4 7F0C2C84 8E49002C */ lw $t1, 0x2c($s2) -/* 0F77B8 7F0C2C88 352A4000 */ ori $t2, $t1, 0x4000 -/* 0F77BC 7F0C2C8C AE4A002C */ sw $t2, 0x2c($s2) -.L7F0C2C90: -/* 0F77C0 7F0C2C90 8E8200C8 */ lw $v0, 0xc8($s4) -.L7F0C2C94: -/* 0F77C4 7F0C2C94 14620008 */ bne $v1, $v0, .L7F0C2CB8 -/* 0F77C8 7F0C2C98 00000000 */ nop -/* 0F77CC 7F0C2C9C 02D30019 */ multu $s6, $s3 -/* 0F77D0 7F0C2CA0 0000C812 */ mflo $t9 -/* 0F77D4 7F0C2CA4 02399021 */ addu $s2, $s1, $t9 -/* 0F77D8 7F0C2CA8 8E4B0064 */ lw $t3, 0x64($s2) -/* 0F77DC 7F0C2CAC 01646025 */ or $t4, $t3, $a0 -/* 0F77E0 7F0C2CB0 10000012 */ b .L7F0C2CFC -/* 0F77E4 7F0C2CB4 AE4C0064 */ sw $t4, 0x64($s2) -.L7F0C2CB8: -/* 0F77E8 7F0C2CB8 16E20008 */ bne $s7, $v0, .L7F0C2CDC -/* 0F77EC 7F0C2CBC 00000000 */ nop -/* 0F77F0 7F0C2CC0 02D30019 */ multu $s6, $s3 -/* 0F77F4 7F0C2CC4 00006812 */ mflo $t5 -/* 0F77F8 7F0C2CC8 022D9021 */ addu $s2, $s1, $t5 -/* 0F77FC 7F0C2CCC 8E4E0064 */ lw $t6, 0x64($s2) -/* 0F7800 7F0C2CD0 35CF8000 */ ori $t7, $t6, 0x8000 -/* 0F7804 7F0C2CD4 10000009 */ b .L7F0C2CFC -/* 0F7808 7F0C2CD8 AE4F0064 */ sw $t7, 0x64($s2) -.L7F0C2CDC: -/* 0F780C 7F0C2CDC 54A20008 */ bnel $a1, $v0, .L7F0C2D00 -/* 0F7810 7F0C2CE0 26D60002 */ addiu $s6, $s6, 2 -/* 0F7814 7F0C2CE4 02D30019 */ multu $s6, $s3 -/* 0F7818 7F0C2CE8 0000C012 */ mflo $t8 -/* 0F781C 7F0C2CEC 02389021 */ addu $s2, $s1, $t8 -/* 0F7820 7F0C2CF0 8E480064 */ lw $t0, 0x64($s2) -/* 0F7824 7F0C2CF4 35094000 */ ori $t1, $t0, 0x4000 -/* 0F7828 7F0C2CF8 AE490064 */ sw $t1, 0x64($s2) -.L7F0C2CFC: -/* 0F782C 7F0C2CFC 26D60002 */ addiu $s6, $s6, 2 -.L7F0C2D00: -/* 0F7830 7F0C2D00 16DEFFC8 */ bne $s6, $fp, .L7F0C2C24 -/* 0F7834 7F0C2D04 269400E0 */ addiu $s4, $s4, 0xe0 -.L7F0C2D08: -/* 0F7838 7F0C2D08 0000B025 */ move $s6, $zero -.L7F0C2D0C: -/* 0F783C 7F0C2D0C 1BC00050 */ blez $fp, .L7F0C2E50 -/* 0F7840 7F0C2D10 3C148005 */ lui $s4, %hi(loaded_text_index) -/* 0F7844 7F0C2D14 26948640 */ addiu $s4, %lo(loaded_text_index) # addiu $s4, $s4, -0x79c0 -/* 0F7848 7F0C2D18 27B2006C */ addiu $s2, $sp, 0x6c -/* 0F784C 7F0C2D1C 24150011 */ li $s5, 17 -.L7F0C2D20: -/* 0F7850 7F0C2D20 00009825 */ move $s3, $zero -/* 0F7854 7F0C2D24 24050010 */ li $a1, 16 -/* 0F7858 7F0C2D28 8E50002C */ lw $s0, 0x2c($s2) -.L7F0C2D2C: -/* 0F785C 7F0C2D2C 240A0001 */ li $t2, 1 -/* 0F7860 7F0C2D30 00AA1004 */ sllv $v0, $t2, $a1 -/* 0F7864 7F0C2D34 0202C824 */ and $t9, $s0, $v0 -/* 0F7868 7F0C2D38 1320000F */ beqz $t9, .L7F0C2D78 -/* 0F786C 7F0C2D3C 00405827 */ not $t3, $v0 -/* 0F7870 7F0C2D40 00056840 */ sll $t5, $a1, 1 -/* 0F7874 7F0C2D44 3C188008 */ lui $t8, %hi(g_playerPointers) -/* 0F7878 7F0C2D48 020B6024 */ and $t4, $s0, $t3 -/* 0F787C 7F0C2D4C 27189EE0 */ addiu $t8, %lo(g_playerPointers) # addiu $t8, $t8, -0x6120 -/* 0F7880 7F0C2D50 028D7021 */ addu $t6, $s4, $t5 -/* 0F7884 7F0C2D54 00167880 */ sll $t7, $s6, 2 -/* 0F7888 7F0C2D58 AE4C002C */ sw $t4, 0x2c($s2) -/* 0F788C 7F0C2D5C 01F88821 */ addu $s1, $t7, $t8 -/* 0F7890 7F0C2D60 95C40000 */ lhu $a0, ($t6) -/* 0F7894 7F0C2D64 0FC30776 */ jal langGet -/* 0F7898 7F0C2D68 24130001 */ li $s3, 1 -/* 0F789C 7F0C2D6C 8E280000 */ lw $t0, ($s1) -/* 0F78A0 7F0C2D70 AD022A10 */ sw $v0, 0x2a10($t0) -/* 0F78A4 7F0C2D74 8E50002C */ lw $s0, 0x2c($s2) -.L7F0C2D78: -/* 0F78A8 7F0C2D78 16000002 */ bnez $s0, .L7F0C2D84 -/* 0F78AC 7F0C2D7C 00000000 */ nop -/* 0F78B0 7F0C2D80 24130001 */ li $s3, 1 -.L7F0C2D84: -/* 0F78B4 7F0C2D84 0C002914 */ jal randomGetNext -/* 0F78B8 7F0C2D88 00000000 */ nop -/* 0F78BC 7F0C2D8C 0055001B */ divu $zero, $v0, $s5 -/* 0F78C0 7F0C2D90 00002810 */ mfhi $a1 -/* 0F78C4 7F0C2D94 16A00002 */ bnez $s5, .L7F0C2DA0 -/* 0F78C8 7F0C2D98 00000000 */ nop -/* 0F78CC 7F0C2D9C 0007000D */ break 7 -.L7F0C2DA0: -/* 0F78D0 7F0C2DA0 5260FFE2 */ beql $s3, $zero, .L7F0C2D2C -/* 0F78D4 7F0C2DA4 8E50002C */ lw $s0, 0x2c($s2) -/* 0F78D8 7F0C2DA8 2A610002 */ slti $at, $s3, 2 -/* 0F78DC 7F0C2DAC 50200026 */ beql $at, $zero, .L7F0C2E48 -/* 0F78E0 7F0C2DB0 26D60001 */ addiu $s6, $s6, 1 -.L7F0C2DB4: -/* 0F78E4 7F0C2DB4 0C002914 */ jal randomGetNext -/* 0F78E8 7F0C2DB8 00000000 */ nop -/* 0F78EC 7F0C2DBC 0055001B */ divu $zero, $v0, $s5 -/* 0F78F0 7F0C2DC0 8E50002C */ lw $s0, 0x2c($s2) -/* 0F78F4 7F0C2DC4 00001810 */ mfhi $v1 -/* 0F78F8 7F0C2DC8 24090001 */ li $t1, 1 -/* 0F78FC 7F0C2DCC 00695004 */ sllv $t2, $t1, $v1 -/* 0F7900 7F0C2DD0 16A00002 */ bnez $s5, .L7F0C2DDC -/* 0F7904 7F0C2DD4 00000000 */ nop -/* 0F7908 7F0C2DD8 0007000D */ break 7 -.L7F0C2DDC: -/* 0F790C 7F0C2DDC 020AC824 */ and $t9, $s0, $t2 -/* 0F7910 7F0C2DE0 13200012 */ beqz $t9, .L7F0C2E2C -/* 0F7914 7F0C2DE4 00602825 */ move $a1, $v1 -/* 0F7918 7F0C2DE8 240B0001 */ li $t3, 1 -/* 0F791C 7F0C2DEC 006B6004 */ sllv $t4, $t3, $v1 -/* 0F7920 7F0C2DF0 01806827 */ not $t5, $t4 -/* 0F7924 7F0C2DF4 00037840 */ sll $t7, $v1, 1 -/* 0F7928 7F0C2DF8 3C098008 */ lui $t1, %hi(g_playerPointers) -/* 0F792C 7F0C2DFC 020D7024 */ and $t6, $s0, $t5 -/* 0F7930 7F0C2E00 25299EE0 */ addiu $t1, %lo(g_playerPointers) # addiu $t1, $t1, -0x6120 -/* 0F7934 7F0C2E04 028FC021 */ addu $t8, $s4, $t7 -/* 0F7938 7F0C2E08 00164080 */ sll $t0, $s6, 2 -/* 0F793C 7F0C2E0C AE4E002C */ sw $t6, 0x2c($s2) -/* 0F7940 7F0C2E10 01098821 */ addu $s1, $t0, $t1 -/* 0F7944 7F0C2E14 97040000 */ lhu $a0, ($t8) -/* 0F7948 7F0C2E18 0FC30776 */ jal langGet -/* 0F794C 7F0C2E1C 24130002 */ li $s3, 2 -/* 0F7950 7F0C2E20 8E2A0000 */ lw $t2, ($s1) -/* 0F7954 7F0C2E24 AD422A14 */ sw $v0, 0x2a14($t2) -/* 0F7958 7F0C2E28 8E50002C */ lw $s0, 0x2c($s2) -.L7F0C2E2C: -/* 0F795C 7F0C2E2C 56000003 */ bnezl $s0, .L7F0C2E3C -/* 0F7960 7F0C2E30 2A610002 */ slti $at, $s3, 2 -/* 0F7964 7F0C2E34 24130002 */ li $s3, 2 -/* 0F7968 7F0C2E38 2A610002 */ slti $at, $s3, 2 -.L7F0C2E3C: -/* 0F796C 7F0C2E3C 1420FFDD */ bnez $at, .L7F0C2DB4 -/* 0F7970 7F0C2E40 00000000 */ nop -/* 0F7974 7F0C2E44 26D60001 */ addiu $s6, $s6, 1 -.L7F0C2E48: -/* 0F7978 7F0C2E48 16DEFFB5 */ bne $s6, $fp, .L7F0C2D20 -/* 0F797C 7F0C2E4C 26520038 */ addiu $s2, $s2, 0x38 -.L7F0C2E50: -/* 0F7980 7F0C2E50 8FBF0044 */ lw $ra, 0x44($sp) -/* 0F7984 7F0C2E54 8FB00020 */ lw $s0, 0x20($sp) -/* 0F7988 7F0C2E58 8FB10024 */ lw $s1, 0x24($sp) -/* 0F798C 7F0C2E5C 8FB20028 */ lw $s2, 0x28($sp) -/* 0F7990 7F0C2E60 8FB3002C */ lw $s3, 0x2c($sp) -/* 0F7994 7F0C2E64 8FB40030 */ lw $s4, 0x30($sp) -/* 0F7998 7F0C2E68 8FB50034 */ lw $s5, 0x34($sp) -/* 0F799C 7F0C2E6C 8FB60038 */ lw $s6, 0x38($sp) -/* 0F79A0 7F0C2E70 8FB7003C */ lw $s7, 0x3c($sp) -/* 0F79A4 7F0C2E74 8FBE0040 */ lw $fp, 0x40($sp) -/* 0F79A8 7F0C2E78 03E00008 */ jr $ra -/* 0F79AC 7F0C2E7C 27BD0168 */ addiu $sp, $sp, 0x168 -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.late_rodata -glabel D_8005BC80 -.word 0x4852f000 /*216000.0*/ -glabel D_8005BC84 -.word 0x47c35000 /*100000.0*/ -.text -glabel end_game_and_show_game_over_menu -/* 0F4400 7F0C1A10 27BDFE98 */ addiu $sp, $sp, -0x168 -/* 0F4404 7F0C1A14 AFBF0044 */ sw $ra, 0x44($sp) -/* 0F4408 7F0C1A18 AFB10024 */ sw $s1, 0x24($sp) -/* 0F440C 7F0C1A1C 00808825 */ move $s1, $a0 -/* 0F4410 7F0C1A20 AFBE0040 */ sw $fp, 0x40($sp) -/* 0F4414 7F0C1A24 AFB7003C */ sw $s7, 0x3c($sp) -/* 0F4418 7F0C1A28 AFB60038 */ sw $s6, 0x38($sp) -/* 0F441C 7F0C1A2C AFB50034 */ sw $s5, 0x34($sp) -/* 0F4420 7F0C1A30 AFB40030 */ sw $s4, 0x30($sp) -/* 0F4424 7F0C1A34 AFB3002C */ sw $s3, 0x2c($sp) -/* 0F4428 7F0C1A38 AFB20028 */ sw $s2, 0x28($sp) -/* 0F442C 7F0C1A3C 0FC26669 */ jal getPlayerCount -/* 0F4430 7F0C1A40 AFB00020 */ sw $s0, 0x20($sp) -/* 0F4434 7F0C1A44 0FC230AB */ jal getMissiontimer -/* 0F4438 7F0C1A48 0040F025 */ move $fp, $v0 -/* 0F443C 7F0C1A4C 0C002161 */ jal sndDeactivateAllSfxByFlag_1 -/* 0F4440 7F0C1A50 00408025 */ move $s0, $v0 -/* 0F4444 7F0C1A54 0FC3003F */ jal set_missionstate -/* 0F4448 7F0C1A58 00002025 */ move $a0, $zero -/* 0F444C 7F0C1A5C 0FC3002C */ jal sub_GAME_7F0C0BF0 -/* 0F4450 7F0C1A60 00000000 */ nop -/* 0F4454 7F0C1A64 0C001927 */ jal musicTrack1ApplySeqpVol -/* 0F4458 7F0C1A68 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F445C 7F0C1A6C 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) # $at, 0x8002 -/* 0F4460 7F0C1A70 AC2021DC */ sw $zero, %lo(g_musicXTrack1Fade)($at) -/* 0F4464 7F0C1A74 0C0018B7 */ jal musicTrack1Play -/* 0F4468 7F0C1A78 2404002C */ li $a0, 44 -/* 0F446C 7F0C1A7C 0FC3065D */ jal pauseAndLockControls -/* 0F4470 7F0C1A80 00000000 */ nop -/* 0F4474 7F0C1A84 12200005 */ beqz $s1, .L7F0C1A9C -/* 0F4478 7F0C1A88 24180001 */ li $t8, 1 -/* 0F447C 7F0C1A8C 240E00FA */ li $t6, 250 -/* 0F4480 7F0C1A90 3C018007 */ lui $at, %hi(g_gameOverFlag) # $at, 0x8007 -/* 0F4484 7F0C1A94 10000004 */ b .L7F0C1AA8 -/* 0F4488 7F0C1A98 AC2E3AE4 */ sw $t6, %lo(g_gameOverFlag)($at) -.L7F0C1A9C: -/* 0F448C 7F0C1A9C 240F0001 */ li $t7, 1 -/* 0F4490 7F0C1AA0 3C018007 */ lui $at, %hi(g_gameOverFlag) # $at, 0x8007 -/* 0F4494 7F0C1AA4 AC2F3AE4 */ sw $t7, %lo(g_gameOverFlag)($at) -.L7F0C1AA8: -/* 0F4498 7F0C1AA8 3C018007 */ lui $at, %hi(time_trigger_alt_gameover_msg) # $at, 0x8007 -/* 0F449C 7F0C1AAC AC383AF0 */ sw $t8, %lo(time_trigger_alt_gameover_msg)($at) -/* 0F44A0 7F0C1AB0 3C018007 */ lui $at, %hi(dword_CODE_bss_8008C714) # $at, 0x8007 -/* 0F44A4 7F0C1AB4 24190010 */ li $t9, 16 -/* 0F44A8 7F0C1AB8 AC393AF4 */ sw $t9, %lo(dword_CODE_bss_8008C714)($at) -/* 0F44AC 7F0C1ABC 3C018007 */ lui $at, %hi(dword_CODE_bss_8008C708) # $at, 0x8007 -/* 0F44B0 7F0C1AC0 AC203AE8 */ sw $zero, %lo(dword_CODE_bss_8008C708)($at) -/* 0F44B4 7F0C1AC4 3C018007 */ lui $at, %hi(dword_CODE_bss_8008C70C) # $at, 0x8007 -/* 0F44B8 7F0C1AC8 0FC269A4 */ jal get_cur_playernum -/* 0F44BC 7F0C1ACC AC203AEC */ sw $zero, %lo(dword_CODE_bss_8008C70C)($at) -/* 0F44C0 7F0C1AD0 AFA20150 */ sw $v0, 0x150($sp) -/* 0F44C4 7F0C1AD4 1BC00078 */ blez $fp, .L7F0C1CB8 -/* 0F44C8 7F0C1AD8 0000B025 */ move $s6, $zero -/* 0F44CC 7F0C1ADC 26080001 */ addiu $t0, $s0, 1 -/* 0F44D0 7F0C1AE0 44882000 */ mtc1 $t0, $f4 -/* 0F44D4 7F0C1AE4 3C018005 */ lui $at, %hi(D_8005BC80) # $at, 0x8005 -/* 0F44D8 7F0C1AE8 C4280840 */ lwc1 $f8, %lo(D_8005BC80)($at) -/* 0F44DC 7F0C1AEC 468021A0 */ cvt.s.w $f6, $f4 -/* 0F44E0 7F0C1AF0 3C148007 */ lui $s4, %hi(g_playerPlayerData) # $s4, 0x8007 -/* 0F44E4 7F0C1AF4 3C158007 */ lui $s5, %hi(g_CurrentPlayer) # $s5, 0x8007 -/* 0F44E8 7F0C1AF8 26B58BC0 */ addiu $s5, %lo(g_CurrentPlayer) # addiu $s5, $s5, -0x7440 -/* 0F44EC 7F0C1AFC 26948A00 */ addiu $s4, %lo(g_playerPlayerData) # addiu $s4, $s4, -0x7600 -/* 0F44F0 7F0C1B00 27B2006C */ addiu $s2, $sp, 0x6c -/* 0F44F4 7F0C1B04 46083283 */ div.s $f10, $f6, $f8 -/* 0F44F8 7F0C1B08 24170003 */ li $s7, 3 -/* 0F44FC 7F0C1B0C E7AA0048 */ swc1 $f10, 0x48($sp) -.L7F0C1B10: -/* 0F4500 7F0C1B10 02C02025 */ move $a0, $s6 -/* 0F4504 7F0C1B14 0FC26993 */ jal set_cur_player -/* 0F4508 7F0C1B18 00008825 */ move $s1, $zero -/* 0F450C 7F0C1B1C 8EAA0000 */ lw $t2, ($s5) -/* 0F4510 7F0C1B20 24090001 */ li $t1, 1 -/* 0F4514 7F0C1B24 27A40154 */ addiu $a0, $sp, 0x154 -/* 0F4518 7F0C1B28 AD4929BC */ sw $t1, 0x29bc($t2) -/* 0F451C 7F0C1B2C 8EAB0000 */ lw $t3, ($s5) -/* 0F4520 7F0C1B30 27A50158 */ addiu $a1, $sp, 0x158 -/* 0F4524 7F0C1B34 AD7729C0 */ sw $s7, 0x29c0($t3) -/* 0F4528 7F0C1B38 8EAC0000 */ lw $t4, ($s5) -/* 0F452C 7F0C1B3C AD802A08 */ sw $zero, 0x2a08($t4) -/* 0F4530 7F0C1B40 8EAD0000 */ lw $t5, ($s5) -/* 0F4534 7F0C1B44 0FC2381C */ jal bondinvGetWeaponOfChoice -/* 0F4538 7F0C1B48 ADA02A0C */ sw $zero, 0x2a0c($t5) -/* 0F453C 7F0C1B4C 8FA40154 */ lw $a0, 0x154($sp) -/* 0F4540 7F0C1B50 0FC07535 */ jal store_favorite_weapon_current_player -/* 0F4544 7F0C1B54 8FA50158 */ lw $a1, 0x158($sp) -/* 0F4548 7F0C1B58 0FC1ABBA */ jal get_curplayer_shot_register -/* 0F454C 7F0C1B5C 00002025 */ move $a0, $zero -/* 0F4550 7F0C1B60 AE420000 */ sw $v0, ($s2) -/* 0F4554 7F0C1B64 0FC1ABBA */ jal get_curplayer_shot_register -/* 0F4558 7F0C1B68 24040001 */ li $a0, 1 -/* 0F455C 7F0C1B6C AE420004 */ sw $v0, 4($s2) -/* 0F4560 7F0C1B70 AE400008 */ sw $zero, 8($s2) -/* 0F4564 7F0C1B74 AE40000C */ sw $zero, 0xc($s2) -/* 0F4568 7F0C1B78 0FC04060 */ jal get_selected_num_players -/* 0F456C 7F0C1B7C AE400010 */ sw $zero, 0x10($s2) -/* 0F4570 7F0C1B80 18400023 */ blez $v0, .L7F0C1C10 -/* 0F4574 7F0C1B84 001170C0 */ sll $t6, $s1, 3 -/* 0F4578 7F0C1B88 001640C0 */ sll $t0, $s6, 3 -/* 0F457C 7F0C1B8C 01164023 */ subu $t0, $t0, $s6 -/* 0F4580 7F0C1B90 01D17023 */ subu $t6, $t6, $s1 -/* 0F4584 7F0C1B94 3C198007 */ lui $t9, %hi(g_playerPlayerData) # $t9, 0x8007 -/* 0F4588 7F0C1B98 27398A00 */ addiu $t9, %lo(g_playerPlayerData) # addiu $t9, $t9, -0x7600 -/* 0F458C 7F0C1B9C 000E7100 */ sll $t6, $t6, 4 -/* 0F4590 7F0C1BA0 00084100 */ sll $t0, $t0, 4 -/* 0F4594 7F0C1BA4 00167880 */ sll $t7, $s6, 2 -/* 0F4598 7F0C1BA8 00114880 */ sll $t1, $s1, 2 -/* 0F459C 7F0C1BAC 01095021 */ addu $t2, $t0, $t1 -/* 0F45A0 7F0C1BB0 01CFC021 */ addu $t8, $t6, $t7 -/* 0F45A4 7F0C1BB4 03199821 */ addu $s3, $t8, $t9 -/* 0F45A8 7F0C1BB8 01598021 */ addu $s0, $t2, $t9 -/* 0F45AC 7F0C1BBC 8E4B000C */ lw $t3, 0xc($s2) -.L7F0C1BC0: -/* 0F45B0 7F0C1BC0 8E6C0024 */ lw $t4, 0x24($s3) -/* 0F45B4 7F0C1BC4 26730070 */ addiu $s3, $s3, 0x70 -/* 0F45B8 7F0C1BC8 016C6821 */ addu $t5, $t3, $t4 -/* 0F45BC 7F0C1BCC 16D10006 */ bne $s6, $s1, .L7F0C1BE8 -/* 0F45C0 7F0C1BD0 AE4D000C */ sw $t5, 0xc($s2) -/* 0F45C4 7F0C1BD4 8E4E0010 */ lw $t6, 0x10($s2) -/* 0F45C8 7F0C1BD8 8E0F0024 */ lw $t7, 0x24($s0) -/* 0F45CC 7F0C1BDC 01CFC021 */ addu $t8, $t6, $t7 -/* 0F45D0 7F0C1BE0 10000005 */ b .L7F0C1BF8 -/* 0F45D4 7F0C1BE4 AE580010 */ sw $t8, 0x10($s2) -.L7F0C1BE8: -/* 0F45D8 7F0C1BE8 8E480008 */ lw $t0, 8($s2) -/* 0F45DC 7F0C1BEC 8E090024 */ lw $t1, 0x24($s0) -/* 0F45E0 7F0C1BF0 01095021 */ addu $t2, $t0, $t1 -/* 0F45E4 7F0C1BF4 AE4A0008 */ sw $t2, 8($s2) -.L7F0C1BF8: -/* 0F45E8 7F0C1BF8 26310001 */ addiu $s1, $s1, 1 -/* 0F45EC 7F0C1BFC 0FC04060 */ jal get_selected_num_players -/* 0F45F0 7F0C1C00 26100004 */ addiu $s0, $s0, 4 -/* 0F45F4 7F0C1C04 0222082A */ slt $at, $s1, $v0 -/* 0F45F8 7F0C1C08 5420FFED */ bnezl $at, .L7F0C1BC0 -/* 0F45FC 7F0C1C0C 8E4B000C */ lw $t3, 0xc($s2) -.L7F0C1C10: -/* 0F4600 7F0C1C10 8E590008 */ lw $t9, 8($s2) -/* 0F4604 7F0C1C14 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F4608 7F0C1C18 44811000 */ mtc1 $at, $f2 -/* 0F460C 7F0C1C1C 44998000 */ mtc1 $t9, $f16 -/* 0F4610 7F0C1C20 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0F4614 7F0C1C24 44812000 */ mtc1 $at, $f4 -/* 0F4618 7F0C1C28 468084A0 */ cvt.s.w $f18, $f16 -/* 0F461C 7F0C1C2C 8E4B0000 */ lw $t3, ($s2) -/* 0F4620 7F0C1C30 8E4C000C */ lw $t4, 0xc($s2) -/* 0F4624 7F0C1C34 8E8D003C */ lw $t5, 0x3c($s4) -/* 0F4628 7F0C1C38 448B3000 */ mtc1 $t3, $f6 -/* 0F462C 7F0C1C3C 8E8E0034 */ lw $t6, 0x34($s4) -/* 0F4630 7F0C1C40 46049002 */ mul.s $f0, $f18, $f4 -/* 0F4634 7F0C1C44 448C9000 */ mtc1 $t4, $f18 -/* 0F4638 7F0C1C48 3C018005 */ lui $at, %hi(D_8005BC84) # $at, 0x8005 -/* 0F463C 7F0C1C4C AE4D001C */ sw $t5, 0x1c($s2) -/* 0F4640 7F0C1C50 AE4E0020 */ sw $t6, 0x20($s2) -/* 0F4644 7F0C1C54 8E8F004C */ lw $t7, 0x4c($s4) -/* 0F4648 7F0C1C58 46803220 */ cvt.s.w $f8, $f6 -/* 0F464C 7F0C1C5C 8E980050 */ lw $t8, 0x50($s4) -/* 0F4650 7F0C1C60 26D60001 */ addiu $s6, $s6, 1 -/* 0F4654 7F0C1C64 26520038 */ addiu $s2, $s2, 0x38 -/* 0F4658 7F0C1C68 26940070 */ addiu $s4, $s4, 0x70 -/* 0F465C 7F0C1C6C 46809120 */ cvt.s.w $f4, $f18 -/* 0F4660 7F0C1C70 46024280 */ add.s $f10, $f8, $f2 -/* 0F4664 7F0C1C74 46022180 */ add.s $f6, $f4, $f2 -/* 0F4668 7F0C1C78 460A0403 */ div.s $f16, $f0, $f10 -/* 0F466C 7F0C1C7C C68AFFC8 */ lwc1 $f10, -0x38($s4) -/* 0F4670 7F0C1C80 46060203 */ div.s $f8, $f0, $f6 -/* 0F4674 7F0C1C84 E650FFDC */ swc1 $f16, -0x24($s2) -/* 0F4678 7F0C1C88 E648FFE0 */ swc1 $f8, -0x20($s2) -/* 0F467C 7F0C1C8C C4300844 */ lwc1 $f16, %lo(D_8005BC84)($at) -/* 0F4680 7F0C1C90 C7A40048 */ lwc1 $f4, 0x48($sp) -/* 0F4684 7F0C1C94 C688FFD0 */ lwc1 $f8, -0x30($s4) -/* 0F4688 7F0C1C98 46105483 */ div.s $f18, $f10, $f16 -/* 0F468C 7F0C1C9C AE40FFF4 */ sw $zero, -0xc($s2) -/* 0F4690 7F0C1CA0 AE4FFFF8 */ sw $t7, -8($s2) -/* 0F4694 7F0C1CA4 AE58FFFC */ sw $t8, -4($s2) -/* 0F4698 7F0C1CA8 E648FFF0 */ swc1 $f8, -0x10($s2) -/* 0F469C 7F0C1CAC 46049183 */ div.s $f6, $f18, $f4 -/* 0F46A0 7F0C1CB0 16DEFF97 */ bne $s6, $fp, .L7F0C1B10 -/* 0F46A4 7F0C1CB4 E646FFEC */ swc1 $f6, -0x14($s2) -.L7F0C1CB8: -/* 0F46A8 7F0C1CB8 24170003 */ li $s7, 3 -/* 0F46AC 7F0C1CBC 0FC26993 */ jal set_cur_player -/* 0F46B0 7F0C1CC0 8FA40150 */ lw $a0, 0x150($sp) -/* 0F46B4 7F0C1CC4 8FA80124 */ lw $t0, 0x124($sp) -/* 0F46B8 7F0C1CC8 03C02025 */ move $a0, $fp -/* 0F46BC 7F0C1CCC 8FA5007C */ lw $a1, 0x7c($sp) -/* 0F46C0 7F0C1CD0 8FA600B4 */ lw $a2, 0xb4($sp) -/* 0F46C4 7F0C1CD4 8FA700EC */ lw $a3, 0xec($sp) -/* 0F46C8 7F0C1CD8 0FC30541 */ jal sub_GAME_7F0C2024 -/* 0F46CC 7F0C1CDC AFA80010 */ sw $t0, 0x10($sp) -/* 0F46D0 7F0C1CE0 24130038 */ li $s3, 56 -/* 0F46D4 7F0C1CE4 00530019 */ multu $v0, $s3 -/* 0F46D8 7F0C1CE8 27B1006C */ addiu $s1, $sp, 0x6c -/* 0F46DC 7F0C1CEC 03C02025 */ move $a0, $fp -/* 0F46E0 7F0C1CF0 00004812 */ mflo $t1 -/* 0F46E4 7F0C1CF4 02298021 */ addu $s0, $s1, $t1 -/* 0F46E8 7F0C1CF8 8E0A0010 */ lw $t2, 0x10($s0) -/* 0F46EC 7F0C1CFC 59400005 */ blezl $t2, .L7F0C1D14 -/* 0F46F0 7F0C1D00 8FAC0114 */ lw $t4, 0x114($sp) -/* 0F46F4 7F0C1D04 8E19002C */ lw $t9, 0x2c($s0) -/* 0F46F8 7F0C1D08 372B0001 */ ori $t3, $t9, 1 -/* 0F46FC 7F0C1D0C AE0B002C */ sw $t3, 0x2c($s0) -/* 0F4700 7F0C1D10 8FAC0114 */ lw $t4, 0x114($sp) -.L7F0C1D14: -/* 0F4704 7F0C1D14 8FA5006C */ lw $a1, 0x6c($sp) -/* 0F4708 7F0C1D18 8FA600A4 */ lw $a2, 0xa4($sp) -/* 0F470C 7F0C1D1C 8FA700DC */ lw $a3, 0xdc($sp) -/* 0F4710 7F0C1D20 0FC3057D */ jal sub_GAME_7F0C2114 -/* 0F4714 7F0C1D24 AFAC0010 */ sw $t4, 0x10($sp) -/* 0F4718 7F0C1D28 00530019 */ multu $v0, $s3 -/* 0F471C 7F0C1D2C 03C02025 */ move $a0, $fp -/* 0F4720 7F0C1D30 00006812 */ mflo $t5 -/* 0F4724 7F0C1D34 022D8021 */ addu $s0, $s1, $t5 -/* 0F4728 7F0C1D38 8E0E0000 */ lw $t6, ($s0) -/* 0F472C 7F0C1D3C 29C10064 */ slti $at, $t6, 0x64 -/* 0F4730 7F0C1D40 50200005 */ beql $at, $zero, .L7F0C1D58 -/* 0F4734 7F0C1D44 C7AA013C */ lwc1 $f10, 0x13c($sp) -/* 0F4738 7F0C1D48 8E0F002C */ lw $t7, 0x2c($s0) -/* 0F473C 7F0C1D4C 35F80002 */ ori $t8, $t7, 2 -/* 0F4740 7F0C1D50 AE18002C */ sw $t8, 0x2c($s0) -/* 0F4744 7F0C1D54 C7AA013C */ lwc1 $f10, 0x13c($sp) -.L7F0C1D58: -/* 0F4748 7F0C1D58 8FA50094 */ lw $a1, 0x94($sp) -/* 0F474C 7F0C1D5C 8FA600CC */ lw $a2, 0xcc($sp) -/* 0F4750 7F0C1D60 8FA70104 */ lw $a3, 0x104($sp) -/* 0F4754 7F0C1D64 0FC3060B */ jal sub_GAME_7F0C234C -/* 0F4758 7F0C1D68 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0F475C 7F0C1D6C 00530019 */ multu $v0, $s3 -/* 0F4760 7F0C1D70 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0F4764 7F0C1D74 44818000 */ mtc1 $at, $f16 -/* 0F4768 7F0C1D78 03C02025 */ move $a0, $fp -/* 0F476C 7F0C1D7C 00004012 */ mflo $t0 -/* 0F4770 7F0C1D80 02288021 */ addu $s0, $s1, $t0 -/* 0F4774 7F0C1D84 C6120028 */ lwc1 $f18, 0x28($s0) -/* 0F4778 7F0C1D88 4610903E */ c.le.s $f18, $f16 -/* 0F477C 7F0C1D8C 00000000 */ nop -/* 0F4780 7F0C1D90 45020005 */ bc1fl .L7F0C1DA8 -/* 0F4784 7F0C1D94 C7A4013C */ lwc1 $f4, 0x13c($sp) -/* 0F4788 7F0C1D98 8E09002C */ lw $t1, 0x2c($s0) -/* 0F478C 7F0C1D9C 352A0004 */ ori $t2, $t1, 4 -/* 0F4790 7F0C1DA0 AE0A002C */ sw $t2, 0x2c($s0) -/* 0F4794 7F0C1DA4 C7A4013C */ lwc1 $f4, 0x13c($sp) -.L7F0C1DA8: -/* 0F4798 7F0C1DA8 8FA50094 */ lw $a1, 0x94($sp) -/* 0F479C 7F0C1DAC 8FA600CC */ lw $a2, 0xcc($sp) -/* 0F47A0 7F0C1DB0 8FA70104 */ lw $a3, 0x104($sp) -/* 0F47A4 7F0C1DB4 0FC305B9 */ jal sub_GAME_7F0C2204 -/* 0F47A8 7F0C1DB8 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0F47AC 7F0C1DBC 00530019 */ multu $v0, $s3 -/* 0F47B0 7F0C1DC0 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 0F47B4 7F0C1DC4 44813000 */ mtc1 $at, $f6 -/* 0F47B8 7F0C1DC8 03C02025 */ move $a0, $fp -/* 0F47BC 7F0C1DCC 0000C812 */ mflo $t9 -/* 0F47C0 7F0C1DD0 02398021 */ addu $s0, $s1, $t9 -/* 0F47C4 7F0C1DD4 C6080028 */ lwc1 $f8, 0x28($s0) -/* 0F47C8 7F0C1DD8 4608303C */ c.lt.s $f6, $f8 -/* 0F47CC 7F0C1DDC 00000000 */ nop -/* 0F47D0 7F0C1DE0 45020005 */ bc1fl .L7F0C1DF8 -/* 0F47D4 7F0C1DE4 8FAD0118 */ lw $t5, 0x118($sp) -/* 0F47D8 7F0C1DE8 8E0B002C */ lw $t3, 0x2c($s0) -/* 0F47DC 7F0C1DEC 356C0008 */ ori $t4, $t3, 8 -/* 0F47E0 7F0C1DF0 AE0C002C */ sw $t4, 0x2c($s0) -/* 0F47E4 7F0C1DF4 8FAD0118 */ lw $t5, 0x118($sp) -.L7F0C1DF8: -/* 0F47E8 7F0C1DF8 8FA50070 */ lw $a1, 0x70($sp) -/* 0F47EC 7F0C1DFC 8FA600A8 */ lw $a2, 0xa8($sp) -/* 0F47F0 7F0C1E00 8FA700E0 */ lw $a3, 0xe0($sp) -/* 0F47F4 7F0C1E04 0FC30541 */ jal sub_GAME_7F0C2024 -/* 0F47F8 7F0C1E08 AFAD0010 */ sw $t5, 0x10($sp) -/* 0F47FC 7F0C1E0C 00530019 */ multu $v0, $s3 -/* 0F4800 7F0C1E10 03C02025 */ move $a0, $fp -/* 0F4804 7F0C1E14 00007012 */ mflo $t6 -/* 0F4808 7F0C1E18 022E8021 */ addu $s0, $s1, $t6 -/* 0F480C 7F0C1E1C 8E0F0004 */ lw $t7, 4($s0) -/* 0F4810 7F0C1E20 59E00005 */ blezl $t7, .L7F0C1E38 -/* 0F4814 7F0C1E24 C7AA0128 */ lwc1 $f10, 0x128($sp) -/* 0F4818 7F0C1E28 8E18002C */ lw $t8, 0x2c($s0) -/* 0F481C 7F0C1E2C 37080010 */ ori $t0, $t8, 0x10 -/* 0F4820 7F0C1E30 AE08002C */ sw $t0, 0x2c($s0) -/* 0F4824 7F0C1E34 C7AA0128 */ lwc1 $f10, 0x128($sp) -.L7F0C1E38: -/* 0F4828 7F0C1E38 8FA50080 */ lw $a1, 0x80($sp) -/* 0F482C 7F0C1E3C 8FA600B8 */ lw $a2, 0xb8($sp) -/* 0F4830 7F0C1E40 8FA700F0 */ lw $a3, 0xf0($sp) -/* 0F4834 7F0C1E44 0FC305B9 */ jal sub_GAME_7F0C2204 -/* 0F4838 7F0C1E48 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0F483C 7F0C1E4C 00530019 */ multu $v0, $s3 -/* 0F4840 7F0C1E50 44808000 */ mtc1 $zero, $f16 -/* 0F4844 7F0C1E54 03C02025 */ move $a0, $fp -/* 0F4848 7F0C1E58 00004812 */ mflo $t1 -/* 0F484C 7F0C1E5C 02298021 */ addu $s0, $s1, $t1 -/* 0F4850 7F0C1E60 C6120014 */ lwc1 $f18, 0x14($s0) -/* 0F4854 7F0C1E64 4612803C */ c.lt.s $f16, $f18 -/* 0F4858 7F0C1E68 00000000 */ nop -/* 0F485C 7F0C1E6C 45020005 */ bc1fl .L7F0C1E84 -/* 0F4860 7F0C1E70 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* 0F4864 7F0C1E74 8E0A002C */ lw $t2, 0x2c($s0) -/* 0F4868 7F0C1E78 35590020 */ ori $t9, $t2, 0x20 -/* 0F486C 7F0C1E7C AE19002C */ sw $t9, 0x2c($s0) -/* 0F4870 7F0C1E80 C7A4012C */ lwc1 $f4, 0x12c($sp) -.L7F0C1E84: -/* 0F4874 7F0C1E84 8FA50084 */ lw $a1, 0x84($sp) -/* 0F4878 7F0C1E88 8FA600BC */ lw $a2, 0xbc($sp) -/* 0F487C 7F0C1E8C 8FA700F4 */ lw $a3, 0xf4($sp) -/* 0F4880 7F0C1E90 0FC305B9 */ jal sub_GAME_7F0C2204 -/* 0F4884 7F0C1E94 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0F4888 7F0C1E98 00530019 */ multu $v0, $s3 -/* 0F488C 7F0C1E9C 44803000 */ mtc1 $zero, $f6 -/* 0F4890 7F0C1EA0 03C02025 */ move $a0, $fp -/* 0F4894 7F0C1EA4 00005812 */ mflo $t3 -/* 0F4898 7F0C1EA8 022B8021 */ addu $s0, $s1, $t3 -/* 0F489C 7F0C1EAC C6080018 */ lwc1 $f8, 0x18($s0) -/* 0F48A0 7F0C1EB0 4608303C */ c.lt.s $f6, $f8 -/* 0F48A4 7F0C1EB4 00000000 */ nop -/* 0F48A8 7F0C1EB8 45020005 */ bc1fl .L7F0C1ED0 -/* 0F48AC 7F0C1EBC C7AA012C */ lwc1 $f10, 0x12c($sp) -/* 0F48B0 7F0C1EC0 8E0C002C */ lw $t4, 0x2c($s0) -/* 0F48B4 7F0C1EC4 358D0040 */ ori $t5, $t4, 0x40 -/* 0F48B8 7F0C1EC8 AE0D002C */ sw $t5, 0x2c($s0) -/* 0F48BC 7F0C1ECC C7AA012C */ lwc1 $f10, 0x12c($sp) -.L7F0C1ED0: -/* 0F48C0 7F0C1ED0 8FA50084 */ lw $a1, 0x84($sp) -/* 0F48C4 7F0C1ED4 8FA600BC */ lw $a2, 0xbc($sp) -/* 0F48C8 7F0C1ED8 8FA700F4 */ lw $a3, 0xf4($sp) -/* 0F48CC 7F0C1EDC 0FC3060B */ jal sub_GAME_7F0C234C -/* 0F48D0 7F0C1EE0 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0F48D4 7F0C1EE4 00530019 */ multu $v0, $s3 -/* 0F48D8 7F0C1EE8 03C02025 */ move $a0, $fp -/* 0F48DC 7F0C1EEC 00007012 */ mflo $t6 -/* 0F48E0 7F0C1EF0 022E8021 */ addu $s0, $s1, $t6 -/* 0F48E4 7F0C1EF4 8E0F002C */ lw $t7, 0x2c($s0) -/* 0F48E8 7F0C1EF8 35F80080 */ ori $t8, $t7, 0x80 -/* 0F48EC 7F0C1EFC AE18002C */ sw $t8, 0x2c($s0) -/* 0F48F0 7F0C1F00 8FA80134 */ lw $t0, 0x134($sp) -/* 0F48F4 7F0C1F04 8FA700FC */ lw $a3, 0xfc($sp) -/* 0F48F8 7F0C1F08 8FA600C4 */ lw $a2, 0xc4($sp) -/* 0F48FC 7F0C1F0C 8FA5008C */ lw $a1, 0x8c($sp) -/* 0F4900 7F0C1F10 0FC3057D */ jal sub_GAME_7F0C2114 -/* 0F4904 7F0C1F14 AFA80010 */ sw $t0, 0x10($sp) -/* 0F4908 7F0C1F18 00530019 */ multu $v0, $s3 -/* 0F490C 7F0C1F1C 03C02025 */ move $a0, $fp -/* 0F4910 7F0C1F20 00004812 */ mflo $t1 -/* 0F4914 7F0C1F24 02298021 */ addu $s0, $s1, $t1 -/* 0F4918 7F0C1F28 8E0A002C */ lw $t2, 0x2c($s0) -/* 0F491C 7F0C1F2C 35590100 */ ori $t9, $t2, 0x100 -/* 0F4920 7F0C1F30 AE19002C */ sw $t9, 0x2c($s0) -/* 0F4924 7F0C1F34 C7B00138 */ lwc1 $f16, 0x138($sp) -/* 0F4928 7F0C1F38 8FA70100 */ lw $a3, 0x100($sp) -/* 0F492C 7F0C1F3C 8FA600C8 */ lw $a2, 0xc8($sp) -/* 0F4930 7F0C1F40 8FA50090 */ lw $a1, 0x90($sp) -/* 0F4934 7F0C1F44 0FC305B9 */ jal sub_GAME_7F0C2204 -/* 0F4938 7F0C1F48 E7B00010 */ swc1 $f16, 0x10($sp) -/* 0F493C 7F0C1F4C 00530019 */ multu $v0, $s3 -/* 0F4940 7F0C1F50 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0F4944 7F0C1F54 44819000 */ mtc1 $at, $f18 -/* 0F4948 7F0C1F58 03C02025 */ move $a0, $fp -/* 0F494C 7F0C1F5C 00005812 */ mflo $t3 -/* 0F4950 7F0C1F60 022B8021 */ addu $s0, $s1, $t3 -/* 0F4954 7F0C1F64 C6040024 */ lwc1 $f4, 0x24($s0) -/* 0F4958 7F0C1F68 4604903C */ c.lt.s $f18, $f4 -/* 0F495C 7F0C1F6C 00000000 */ nop -/* 0F4960 7F0C1F70 45020005 */ bc1fl .L7F0C1F88 -/* 0F4964 7F0C1F74 8FAE0130 */ lw $t6, 0x130($sp) -/* 0F4968 7F0C1F78 8E0C002C */ lw $t4, 0x2c($s0) -/* 0F496C 7F0C1F7C 358D0200 */ ori $t5, $t4, 0x200 -/* 0F4970 7F0C1F80 AE0D002C */ sw $t5, 0x2c($s0) -/* 0F4974 7F0C1F84 8FAE0130 */ lw $t6, 0x130($sp) -.L7F0C1F88: -/* 0F4978 7F0C1F88 8FA50088 */ lw $a1, 0x88($sp) -/* 0F497C 7F0C1F8C 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0F4980 7F0C1F90 8FA700F8 */ lw $a3, 0xf8($sp) -/* 0F4984 7F0C1F94 0FC3057D */ jal sub_GAME_7F0C2114 -/* 0F4988 7F0C1F98 AFAE0010 */ sw $t6, 0x10($sp) -/* 0F498C 7F0C1F9C 00530019 */ multu $v0, $s3 -/* 0F4990 7F0C1FA0 03C02025 */ move $a0, $fp -/* 0F4994 7F0C1FA4 00007812 */ mflo $t7 -/* 0F4998 7F0C1FA8 022F8021 */ addu $s0, $s1, $t7 -/* 0F499C 7F0C1FAC 8E18002C */ lw $t8, 0x2c($s0) -/* 0F49A0 7F0C1FB0 37080400 */ ori $t0, $t8, 0x400 -/* 0F49A4 7F0C1FB4 AE08002C */ sw $t0, 0x2c($s0) -/* 0F49A8 7F0C1FB8 8FA90130 */ lw $t1, 0x130($sp) -/* 0F49AC 7F0C1FBC 8FA700F8 */ lw $a3, 0xf8($sp) -/* 0F49B0 7F0C1FC0 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0F49B4 7F0C1FC4 8FA50088 */ lw $a1, 0x88($sp) -/* 0F49B8 7F0C1FC8 0FC30541 */ jal sub_GAME_7F0C2024 -/* 0F49BC 7F0C1FCC AFA90010 */ sw $t1, 0x10($sp) -/* 0F49C0 7F0C1FD0 00530019 */ multu $v0, $s3 -/* 0F49C4 7F0C1FD4 03C02025 */ move $a0, $fp -/* 0F49C8 7F0C1FD8 00005012 */ mflo $t2 -/* 0F49CC 7F0C1FDC 022A8021 */ addu $s0, $s1, $t2 -/* 0F49D0 7F0C1FE0 8E19001C */ lw $t9, 0x1c($s0) -/* 0F49D4 7F0C1FE4 5B200007 */ blezl $t9, .L7F0C2004 -/* 0F49D8 7F0C1FE8 8FAD0144 */ lw $t5, 0x144($sp) -/* 0F49DC 7F0C1FEC 8E03002C */ lw $v1, 0x2c($s0) -/* 0F49E0 7F0C1FF0 306B0400 */ andi $t3, $v1, 0x400 -/* 0F49E4 7F0C1FF4 15600002 */ bnez $t3, .L7F0C2000 -/* 0F49E8 7F0C1FF8 346C0800 */ ori $t4, $v1, 0x800 -/* 0F49EC 7F0C1FFC AE0C002C */ sw $t4, 0x2c($s0) -.L7F0C2000: -/* 0F49F0 7F0C2000 8FAD0144 */ lw $t5, 0x144($sp) -.L7F0C2004: -/* 0F49F4 7F0C2004 8FA5009C */ lw $a1, 0x9c($sp) -/* 0F49F8 7F0C2008 8FA600D4 */ lw $a2, 0xd4($sp) -/* 0F49FC 7F0C200C 8FA7010C */ lw $a3, 0x10c($sp) -/* 0F4A00 7F0C2010 0FC30541 */ jal sub_GAME_7F0C2024 -/* 0F4A04 7F0C2014 AFAD0010 */ sw $t5, 0x10($sp) -/* 0F4A08 7F0C2018 00530019 */ multu $v0, $s3 -/* 0F4A0C 7F0C201C 03C02025 */ move $a0, $fp -/* 0F4A10 7F0C2020 00007012 */ mflo $t6 -/* 0F4A14 7F0C2024 022E8021 */ addu $s0, $s1, $t6 -/* 0F4A18 7F0C2028 8E0F0030 */ lw $t7, 0x30($s0) -/* 0F4A1C 7F0C202C 59E00005 */ blezl $t7, .L7F0C2044 -/* 0F4A20 7F0C2030 8FA90148 */ lw $t1, 0x148($sp) -/* 0F4A24 7F0C2034 8E18002C */ lw $t8, 0x2c($s0) -/* 0F4A28 7F0C2038 37082000 */ ori $t0, $t8, 0x2000 -/* 0F4A2C 7F0C203C AE08002C */ sw $t0, 0x2c($s0) -/* 0F4A30 7F0C2040 8FA90148 */ lw $t1, 0x148($sp) -.L7F0C2044: -/* 0F4A34 7F0C2044 8FA500A0 */ lw $a1, 0xa0($sp) -/* 0F4A38 7F0C2048 8FA600D8 */ lw $a2, 0xd8($sp) -/* 0F4A3C 7F0C204C 8FA70110 */ lw $a3, 0x110($sp) -/* 0F4A40 7F0C2050 0FC3057D */ jal sub_GAME_7F0C2114 -/* 0F4A44 7F0C2054 AFA90010 */ sw $t1, 0x10($sp) -/* 0F4A48 7F0C2058 00530019 */ multu $v0, $s3 -/* 0F4A4C 7F0C205C 33C20001 */ andi $v0, $fp, 1 -/* 0F4A50 7F0C2060 00005012 */ mflo $t2 -/* 0F4A54 7F0C2064 022A8021 */ addu $s0, $s1, $t2 -/* 0F4A58 7F0C2068 8E190034 */ lw $t9, 0x34($s0) -/* 0F4A5C 7F0C206C 1B200004 */ blez $t9, .L7F0C2080 -/* 0F4A60 7F0C2070 00000000 */ nop -/* 0F4A64 7F0C2074 8E0B002C */ lw $t3, 0x2c($s0) -/* 0F4A68 7F0C2078 356C1000 */ ori $t4, $t3, 0x1000 -/* 0F4A6C 7F0C207C AE0C002C */ sw $t4, 0x2c($s0) -.L7F0C2080: -/* 0F4A70 7F0C2080 1BC0005A */ blez $fp, .L7F0C21EC -/* 0F4A74 7F0C2084 0000B025 */ move $s6, $zero -/* 0F4A78 7F0C2088 10400016 */ beqz $v0, .L7F0C20E4 -/* 0F4A7C 7F0C208C 3C198007 */ lui $t9, %hi(g_playerPlayerData) # $t9, 0x8007 -/* 0F4A80 7F0C2090 3C028007 */ lui $v0, %hi(g_playerPlayerData + 0x58) # $v0, 0x8007 -/* 0F4A84 7F0C2094 8C428A58 */ lw $v0, %lo(g_playerPlayerData + 0x58)($v0) -/* 0F4A88 7F0C2098 24030004 */ li $v1, 4 -/* 0F4A8C 7F0C209C 24160001 */ li $s6, 1 -/* 0F4A90 7F0C20A0 14620005 */ bne $v1, $v0, .L7F0C20B8 -/* 0F4A94 7F0C20A4 8FAD0098 */ lw $t5, 0x98($sp) -/* 0F4A98 7F0C20A8 3C040001 */ lui $a0, 1 -/* 0F4A9C 7F0C20AC 01A47025 */ or $t6, $t5, $a0 -/* 0F4AA0 7F0C20B0 1000000B */ b .L7F0C20E0 -/* 0F4AA4 7F0C20B4 AFAE0098 */ sw $t6, 0x98($sp) -.L7F0C20B8: -/* 0F4AA8 7F0C20B8 16E20005 */ bne $s7, $v0, .L7F0C20D0 -/* 0F4AAC 7F0C20BC 24050002 */ li $a1, 2 -/* 0F4AB0 7F0C20C0 8FAF0098 */ lw $t7, 0x98($sp) -/* 0F4AB4 7F0C20C4 35F88000 */ ori $t8, $t7, 0x8000 -/* 0F4AB8 7F0C20C8 10000005 */ b .L7F0C20E0 -/* 0F4ABC 7F0C20CC AFB80098 */ sw $t8, 0x98($sp) -.L7F0C20D0: -/* 0F4AC0 7F0C20D0 14A20003 */ bne $a1, $v0, .L7F0C20E0 -/* 0F4AC4 7F0C20D4 8FA80098 */ lw $t0, 0x98($sp) -/* 0F4AC8 7F0C20D8 35094000 */ ori $t1, $t0, 0x4000 -/* 0F4ACC 7F0C20DC AFA90098 */ sw $t1, 0x98($sp) -.L7F0C20E0: -/* 0F4AD0 7F0C20E0 12DE0041 */ beq $s6, $fp, .L7F0C21E8 -.L7F0C20E4: -/* 0F4AD4 7F0C20E4 001650C0 */ sll $t2, $s6, 3 -/* 0F4AD8 7F0C20E8 01565023 */ subu $t2, $t2, $s6 -/* 0F4ADC 7F0C20EC 000A5100 */ sll $t2, $t2, 4 -/* 0F4AE0 7F0C20F0 27398A00 */ addiu $t9, %lo(g_playerPlayerData) # addiu $t9, $t9, -0x7600 -/* 0F4AE4 7F0C20F4 0159A021 */ addu $s4, $t2, $t9 -/* 0F4AE8 7F0C20F8 24030004 */ li $v1, 4 -/* 0F4AEC 7F0C20FC 3C040001 */ lui $a0, 1 -/* 0F4AF0 7F0C2100 24050002 */ li $a1, 2 -.L7F0C2104: -/* 0F4AF4 7F0C2104 8E820058 */ lw $v0, 0x58($s4) -/* 0F4AF8 7F0C2108 14620008 */ bne $v1, $v0, .L7F0C212C -/* 0F4AFC 7F0C210C 00000000 */ nop -/* 0F4B00 7F0C2110 02D30019 */ multu $s6, $s3 -/* 0F4B04 7F0C2114 00005812 */ mflo $t3 -/* 0F4B08 7F0C2118 022B9021 */ addu $s2, $s1, $t3 -/* 0F4B0C 7F0C211C 8E4C002C */ lw $t4, 0x2c($s2) -/* 0F4B10 7F0C2120 01846825 */ or $t5, $t4, $a0 -/* 0F4B14 7F0C2124 10000012 */ b .L7F0C2170 -/* 0F4B18 7F0C2128 AE4D002C */ sw $t5, 0x2c($s2) -.L7F0C212C: -/* 0F4B1C 7F0C212C 16E20008 */ bne $s7, $v0, .L7F0C2150 -/* 0F4B20 7F0C2130 00000000 */ nop -/* 0F4B24 7F0C2134 02D30019 */ multu $s6, $s3 -/* 0F4B28 7F0C2138 00007012 */ mflo $t6 -/* 0F4B2C 7F0C213C 022E9021 */ addu $s2, $s1, $t6 -/* 0F4B30 7F0C2140 8E4F002C */ lw $t7, 0x2c($s2) -/* 0F4B34 7F0C2144 35F88000 */ ori $t8, $t7, 0x8000 -/* 0F4B38 7F0C2148 10000009 */ b .L7F0C2170 -/* 0F4B3C 7F0C214C AE58002C */ sw $t8, 0x2c($s2) -.L7F0C2150: -/* 0F4B40 7F0C2150 54A20008 */ bnel $a1, $v0, .L7F0C2174 -/* 0F4B44 7F0C2154 8E8200C8 */ lw $v0, 0xc8($s4) -/* 0F4B48 7F0C2158 02D30019 */ multu $s6, $s3 -/* 0F4B4C 7F0C215C 00004012 */ mflo $t0 -/* 0F4B50 7F0C2160 02289021 */ addu $s2, $s1, $t0 -/* 0F4B54 7F0C2164 8E49002C */ lw $t1, 0x2c($s2) -/* 0F4B58 7F0C2168 352A4000 */ ori $t2, $t1, 0x4000 -/* 0F4B5C 7F0C216C AE4A002C */ sw $t2, 0x2c($s2) -.L7F0C2170: -/* 0F4B60 7F0C2170 8E8200C8 */ lw $v0, 0xc8($s4) -.L7F0C2174: -/* 0F4B64 7F0C2174 14620008 */ bne $v1, $v0, .L7F0C2198 -/* 0F4B68 7F0C2178 00000000 */ nop -/* 0F4B6C 7F0C217C 02D30019 */ multu $s6, $s3 -/* 0F4B70 7F0C2180 0000C812 */ mflo $t9 -/* 0F4B74 7F0C2184 02399021 */ addu $s2, $s1, $t9 -/* 0F4B78 7F0C2188 8E4B0064 */ lw $t3, 0x64($s2) -/* 0F4B7C 7F0C218C 01646025 */ or $t4, $t3, $a0 -/* 0F4B80 7F0C2190 10000012 */ b .L7F0C21DC -/* 0F4B84 7F0C2194 AE4C0064 */ sw $t4, 0x64($s2) -.L7F0C2198: -/* 0F4B88 7F0C2198 16E20008 */ bne $s7, $v0, .L7F0C21BC -/* 0F4B8C 7F0C219C 00000000 */ nop -/* 0F4B90 7F0C21A0 02D30019 */ multu $s6, $s3 -/* 0F4B94 7F0C21A4 00006812 */ mflo $t5 -/* 0F4B98 7F0C21A8 022D9021 */ addu $s2, $s1, $t5 -/* 0F4B9C 7F0C21AC 8E4E0064 */ lw $t6, 0x64($s2) -/* 0F4BA0 7F0C21B0 35CF8000 */ ori $t7, $t6, 0x8000 -/* 0F4BA4 7F0C21B4 10000009 */ b .L7F0C21DC -/* 0F4BA8 7F0C21B8 AE4F0064 */ sw $t7, 0x64($s2) -.L7F0C21BC: -/* 0F4BAC 7F0C21BC 54A20008 */ bnel $a1, $v0, .L7F0C21E0 -/* 0F4BB0 7F0C21C0 26D60002 */ addiu $s6, $s6, 2 -/* 0F4BB4 7F0C21C4 02D30019 */ multu $s6, $s3 -/* 0F4BB8 7F0C21C8 0000C012 */ mflo $t8 -/* 0F4BBC 7F0C21CC 02389021 */ addu $s2, $s1, $t8 -/* 0F4BC0 7F0C21D0 8E480064 */ lw $t0, 0x64($s2) -/* 0F4BC4 7F0C21D4 35094000 */ ori $t1, $t0, 0x4000 -/* 0F4BC8 7F0C21D8 AE490064 */ sw $t1, 0x64($s2) -.L7F0C21DC: -/* 0F4BCC 7F0C21DC 26D60002 */ addiu $s6, $s6, 2 -.L7F0C21E0: -/* 0F4BD0 7F0C21E0 16DEFFC8 */ bne $s6, $fp, .L7F0C2104 -/* 0F4BD4 7F0C21E4 269400E0 */ addiu $s4, $s4, 0xe0 -.L7F0C21E8: -/* 0F4BD8 7F0C21E8 0000B025 */ move $s6, $zero -.L7F0C21EC: -/* 0F4BDC 7F0C21EC 1BC00050 */ blez $fp, .L7F0C2330 -/* 0F4BE0 7F0C21F0 3C148004 */ lui $s4, %hi(loaded_text_index) # $s4, 0x8004 -/* 0F4BE4 7F0C21F4 269412C0 */ addiu $s4, %lo(loaded_text_index) # addiu $s4, $s4, 0x12c0 -/* 0F4BE8 7F0C21F8 27B2006C */ addiu $s2, $sp, 0x6c -/* 0F4BEC 7F0C21FC 24150011 */ li $s5, 17 -.L7F0C2200: -/* 0F4BF0 7F0C2200 00009825 */ move $s3, $zero -/* 0F4BF4 7F0C2204 24050010 */ li $a1, 16 -/* 0F4BF8 7F0C2208 8E50002C */ lw $s0, 0x2c($s2) -.L7F0C220C: -/* 0F4BFC 7F0C220C 240A0001 */ li $t2, 1 -/* 0F4C00 7F0C2210 00AA1004 */ sllv $v0, $t2, $a1 -/* 0F4C04 7F0C2214 0202C824 */ and $t9, $s0, $v0 -/* 0F4C08 7F0C2218 1320000F */ beqz $t9, .L7F0C2258 -/* 0F4C0C 7F0C221C 00405827 */ not $t3, $v0 -/* 0F4C10 7F0C2220 00056840 */ sll $t5, $a1, 1 -/* 0F4C14 7F0C2224 3C188007 */ lui $t8, %hi(g_playerPointers) # $t8, 0x8007 -/* 0F4C18 7F0C2228 020B6024 */ and $t4, $s0, $t3 -/* 0F4C1C 7F0C222C 271889F0 */ addiu $t8, %lo(g_playerPointers) # addiu $t8, $t8, -0x7610 -/* 0F4C20 7F0C2230 028D7021 */ addu $t6, $s4, $t5 -/* 0F4C24 7F0C2234 00167880 */ sll $t7, $s6, 2 -/* 0F4C28 7F0C2238 AE4C002C */ sw $t4, 0x2c($s2) -/* 0F4C2C 7F0C223C 01F88821 */ addu $s1, $t7, $t8 -/* 0F4C30 7F0C2240 95C40000 */ lhu $a0, ($t6) -/* 0F4C34 7F0C2244 0FC304AE */ jal langGet -/* 0F4C38 7F0C2248 24130001 */ li $s3, 1 -/* 0F4C3C 7F0C224C 8E280000 */ lw $t0, ($s1) -/* 0F4C40 7F0C2250 AD022A08 */ sw $v0, 0x2a08($t0) -/* 0F4C44 7F0C2254 8E50002C */ lw $s0, 0x2c($s2) -.L7F0C2258: -/* 0F4C48 7F0C2258 16000002 */ bnez $s0, .L7F0C2264 -/* 0F4C4C 7F0C225C 00000000 */ nop -/* 0F4C50 7F0C2260 24130001 */ li $s3, 1 -.L7F0C2264: -/* 0F4C54 7F0C2264 0C00262C */ jal randomGetNext -/* 0F4C58 7F0C2268 00000000 */ nop -/* 0F4C5C 7F0C226C 0055001B */ divu $zero, $v0, $s5 -/* 0F4C60 7F0C2270 00002810 */ mfhi $a1 -/* 0F4C64 7F0C2274 16A00002 */ bnez $s5, .L7F0C2280 -/* 0F4C68 7F0C2278 00000000 */ nop -/* 0F4C6C 7F0C227C 0007000D */ break 7 -.L7F0C2280: -/* 0F4C70 7F0C2280 5260FFE2 */ beql $s3, $zero, .L7F0C220C -/* 0F4C74 7F0C2284 8E50002C */ lw $s0, 0x2c($s2) -/* 0F4C78 7F0C2288 2A610002 */ slti $at, $s3, 2 -/* 0F4C7C 7F0C228C 50200026 */ beql $at, $zero, .L7F0C2328 -/* 0F4C80 7F0C2290 26D60001 */ addiu $s6, $s6, 1 -.L7F0C2294: -/* 0F4C84 7F0C2294 0C00262C */ jal randomGetNext -/* 0F4C88 7F0C2298 00000000 */ nop -/* 0F4C8C 7F0C229C 0055001B */ divu $zero, $v0, $s5 -/* 0F4C90 7F0C22A0 8E50002C */ lw $s0, 0x2c($s2) -/* 0F4C94 7F0C22A4 00001810 */ mfhi $v1 -/* 0F4C98 7F0C22A8 24090001 */ li $t1, 1 -/* 0F4C9C 7F0C22AC 00695004 */ sllv $t2, $t1, $v1 -/* 0F4CA0 7F0C22B0 16A00002 */ bnez $s5, .L7F0C22BC -/* 0F4CA4 7F0C22B4 00000000 */ nop -/* 0F4CA8 7F0C22B8 0007000D */ break 7 -.L7F0C22BC: -/* 0F4CAC 7F0C22BC 020AC824 */ and $t9, $s0, $t2 -/* 0F4CB0 7F0C22C0 13200012 */ beqz $t9, .L7F0C230C -/* 0F4CB4 7F0C22C4 00602825 */ move $a1, $v1 -/* 0F4CB8 7F0C22C8 240B0001 */ li $t3, 1 -/* 0F4CBC 7F0C22CC 006B6004 */ sllv $t4, $t3, $v1 -/* 0F4CC0 7F0C22D0 01806827 */ not $t5, $t4 -/* 0F4CC4 7F0C22D4 00037840 */ sll $t7, $v1, 1 -/* 0F4CC8 7F0C22D8 3C098007 */ lui $t1, %hi(g_playerPointers) # $t1, 0x8007 -/* 0F4CCC 7F0C22DC 020D7024 */ and $t6, $s0, $t5 -/* 0F4CD0 7F0C22E0 252989F0 */ addiu $t1, %lo(g_playerPointers) # addiu $t1, $t1, -0x7610 -/* 0F4CD4 7F0C22E4 028FC021 */ addu $t8, $s4, $t7 -/* 0F4CD8 7F0C22E8 00164080 */ sll $t0, $s6, 2 -/* 0F4CDC 7F0C22EC AE4E002C */ sw $t6, 0x2c($s2) -/* 0F4CE0 7F0C22F0 01098821 */ addu $s1, $t0, $t1 -/* 0F4CE4 7F0C22F4 97040000 */ lhu $a0, ($t8) -/* 0F4CE8 7F0C22F8 0FC304AE */ jal langGet -/* 0F4CEC 7F0C22FC 24130002 */ li $s3, 2 -/* 0F4CF0 7F0C2300 8E2A0000 */ lw $t2, ($s1) -/* 0F4CF4 7F0C2304 AD422A0C */ sw $v0, 0x2a0c($t2) -/* 0F4CF8 7F0C2308 8E50002C */ lw $s0, 0x2c($s2) -.L7F0C230C: -/* 0F4CFC 7F0C230C 56000003 */ bnezl $s0, .L7F0C231C -/* 0F4D00 7F0C2310 2A610002 */ slti $at, $s3, 2 -/* 0F4D04 7F0C2314 24130002 */ li $s3, 2 -/* 0F4D08 7F0C2318 2A610002 */ slti $at, $s3, 2 -.L7F0C231C: -/* 0F4D0C 7F0C231C 1420FFDD */ bnez $at, .L7F0C2294 -/* 0F4D10 7F0C2320 00000000 */ nop -/* 0F4D14 7F0C2324 26D60001 */ addiu $s6, $s6, 1 -.L7F0C2328: -/* 0F4D18 7F0C2328 16DEFFB5 */ bne $s6, $fp, .L7F0C2200 -/* 0F4D1C 7F0C232C 26520038 */ addiu $s2, $s2, 0x38 -.L7F0C2330: -/* 0F4D20 7F0C2330 8FBF0044 */ lw $ra, 0x44($sp) -/* 0F4D24 7F0C2334 8FB00020 */ lw $s0, 0x20($sp) -/* 0F4D28 7F0C2338 8FB10024 */ lw $s1, 0x24($sp) -/* 0F4D2C 7F0C233C 8FB20028 */ lw $s2, 0x28($sp) -/* 0F4D30 7F0C2340 8FB3002C */ lw $s3, 0x2c($sp) -/* 0F4D34 7F0C2344 8FB40030 */ lw $s4, 0x30($sp) -/* 0F4D38 7F0C2348 8FB50034 */ lw $s5, 0x34($sp) -/* 0F4D3C 7F0C234C 8FB60038 */ lw $s6, 0x38($sp) -/* 0F4D40 7F0C2350 8FB7003C */ lw $s7, 0x3c($sp) -/* 0F4D44 7F0C2354 8FBE0040 */ lw $fp, 0x40($sp) -/* 0F4D48 7F0C2358 03E00008 */ jr $ra -/* 0F4D4C 7F0C235C 27BD0168 */ addiu $sp, $sp, 0x168 -) -#endif -#endif +void sub_GAME_7F0C2E80(void) +{ + s32 player_num; + s32 player_count; + s32 x_centered; + s32 menu_count; + s32 i; + player_num = get_cur_playernum(); + player_count = getPlayerCount(); + x_centered = joyGetStickXInRange(player_num, -2, 1); + if (!sub_GAME_7F09B4D8(player_num) && (g_gameOverFlag >= 2)) + { + g_gameOverFlag -= speedgraphframes; + if (g_gameOverFlag <= 0) { g_gameOverFlag = 1; } + } -#ifdef NONMATCHING -void sub_GAME_7F0C2E80(void) { + if (player_count != 1) + { + if ((g_CurrentPlayer->bonddead != 0) && (g_gameOverFlag == 0)) + { + g_CurrentPlayer->mpmenuon = 0; + g_CurrentPlayer->healthdisplaytime = 0; + return; + } + if (g_gameOverFlag < 2) + { + if (sub_GAME_7F09B4D8(player_num) == 0) + { + dword_CODE_bss_8008C70C += speedgraphframes; + dword_CODE_bss_8008C714 += speedgraphframes; + + if (dword_CODE_bss_8008C70C >= (PAL ? 0x10 : 0x14)) + { + dword_CODE_bss_8008C70C -= (PAL ? 0x10 : 0x14); + dword_CODE_bss_8008C708 = !dword_CODE_bss_8008C708; + } + + if (dword_CODE_bss_8008C714 >= (PAL ? 0x64 : 0x78)) + { + dword_CODE_bss_8008C714 -= (PAL ? 0x64: 0x78); + time_trigger_alt_gameover_msg = !time_trigger_alt_gameover_msg; + } + } + + if (g_playerPerm->most_killed_one_life < g_CurrentPlayer->field_29F8) + { + g_playerPerm->most_killed_one_life = g_CurrentPlayer->field_29F8; + } + + if (g_playerPerm->longest_inning < (getMissiontimer() - g_CurrentPlayer->field_29F4)) + { + g_playerPerm->longest_inning = getMissiontimer() - g_CurrentPlayer->field_29F4; + } + + if (g_CurrentPlayer->mpmenuon != 0) + { + if (mpwatchIsPlayerPressingRight(player_num) && mpwatchMenuCanGoRight()) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpmenumode++; + } + else if (mpwatchIsPlayerPressingLeft(player_num) && mpwatchMenuCanGoLeft()) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpmenumode--; + } + else if (mpwatchIsPlayerPressingRight(player_num) && (g_CurrentPlayer->mpmenumode == 6)) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpquitconfirm = 1; + } + else if (mpwatchIsPlayerPressingLeft(player_num) && (g_CurrentPlayer->mpmenumode == 6)) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpquitconfirm = 0; + } + else if (joyGetButtonsPressedThisFrame(player_num, 0x8000U) && (g_CurrentPlayer->mpmenumode == 4)) + { + mpwatchPlayBeep(); + if (!g_pausedFlag) + { + g_pausedFlag = 1; + who_paused = get_cur_playernum(); + lvlSetControlsLockedFlag(1); + } + else if (get_cur_playernum() == who_paused) + { + g_pausedFlag = 0; + lvlSetControlsLockedFlag(0); + } + } + else if (g_CurrentPlayer->mpmenumode == 7) + { + if (joyGetButtonsPressedThisFrame(player_num, 0x4000U)) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpmenuon = 1; + g_CurrentPlayer->mpmenumode = 3; + } + } + else if (((joyGetButtonsPressedThisFrame(player_num, 0x9000U) != 0) && ((((g_CurrentPlayer->mpmenumode != 5)) && (g_CurrentPlayer->mpmenumode != 6)) || ((g_CurrentPlayer->mpmenumode == 6) && (g_CurrentPlayer->mpquitconfirm != 1)))) || (joyGetButtonsPressedThisFrame(player_num, 0x4000U) != 0)) + { + mpwatchPlayBeep(); + if (g_gameOverFlag != 0) + { + menu_count = 0; + g_CurrentPlayer->mpmenumode = 7; + + for (i = 0; i < player_count; i++) + { + if (g_playerPointers[i]->mpmenumode == 7) + { + menu_count++; + } + } + + if (menu_count == player_count) + { + bossSetLoadedStage(LEVELID_TITLE); + } + } + else + { + g_CurrentPlayer->mpmenuon = 0; + g_CurrentPlayer->healthdisplaytime = (PAL ? 0x32 : 0x3C); + if (get_cur_playernum() == who_paused) + { + g_pausedFlag = 0; + lvlSetControlsLockedFlag(0); + } + } + } + else if ((joyGetButtonsPressedThisFrame(player_num, 0x9000U) != 0) && (g_CurrentPlayer->mpmenumode == 5)) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpmenumode = 6; + g_CurrentPlayer->mpquitconfirm = 0; + } + else if (joyGetButtonsPressedThisFrame(player_num, 0x9000U) != 0) + { + if ((g_CurrentPlayer->mpmenumode == 6) && (g_CurrentPlayer->mpquitconfirm == 1)) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpmenuon = 0; + g_CurrentPlayer->healthdisplaytime = 0; + mpCalculateAwards(0); + } + } + + if ((x_centered == 0) || (x_centered == -1)) + { + g_CurrentPlayer->mpjoywascentre = 1; + return; + } + + g_CurrentPlayer->mpjoywascentre = 0; + return; + } + + if (joyGetButtonsPressedThisFrame(player_num, 0x1000U) != 0) + { + mpwatchPlayBeep(); + g_CurrentPlayer->mpmenuon = 1; + g_CurrentPlayer->mpmenumode = 3; + g_CurrentPlayer->mpjoywascentre = 1; + g_CurrentPlayer->apparenthealth = g_CurrentPlayer->bondhealth; + g_CurrentPlayer->apparentarmour = g_CurrentPlayer->bondarmour; + } + } + } } -#else - -#if defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C2E80 -/* 0F79B0 7F0C2E80 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0F79B4 7F0C2E84 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F79B8 7F0C2E88 0FC26C54 */ jal get_cur_playernum -/* 0F79BC 7F0C2E8C 00000000 */ nop -/* 0F79C0 7F0C2E90 0FC26919 */ jal getPlayerCount -/* 0F79C4 7F0C2E94 AFA20034 */ sw $v0, 0x34($sp) -/* 0F79C8 7F0C2E98 83A40037 */ lb $a0, 0x37($sp) -/* 0F79CC 7F0C2E9C 2405FFFE */ li $a1, -2 -/* 0F79D0 7F0C2EA0 24060001 */ li $a2, 1 -/* 0F79D4 7F0C2EA4 AFA20030 */ sw $v0, 0x30($sp) -/* 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 -/* 0F79E8 7F0C2EB8 8FA40034 */ lw $a0, 0x34($sp) -/* 0F79EC 7F0C2EBC 1440000E */ bnez $v0, .L7F0C2EF8 -/* 0F79F0 7F0C2EC0 8FA80030 */ lw $t0, 0x30($sp) -/* 0F79F4 7F0C2EC4 3C058009 */ lui $a1, %hi(g_gameOverFlag) -/* 0F79F8 7F0C2EC8 24A5C704 */ addiu $a1, %lo(g_gameOverFlag) # addiu $a1, $a1, -0x38fc -/* 0F79FC 7F0C2ECC 8CA20000 */ lw $v0, ($a1) -/* 0F7A00 7F0C2ED0 3C0E8005 */ lui $t6, %hi(speedgraphframes) -/* 0F7A04 7F0C2ED4 28410002 */ slti $at, $v0, 2 -/* 0F7A08 7F0C2ED8 14200007 */ bnez $at, .L7F0C2EF8 -/* 0F7A0C 7F0C2EDC 00000000 */ nop -/* 0F7A10 7F0C2EE0 8DCE8498 */ lw $t6, %lo(speedgraphframes)($t6) -/* 0F7A14 7F0C2EE4 24190001 */ li $t9, 1 -/* 0F7A18 7F0C2EE8 004E7823 */ subu $t7, $v0, $t6 -/* 0F7A1C 7F0C2EEC 1DE00002 */ bgtz $t7, .L7F0C2EF8 -/* 0F7A20 7F0C2EF0 ACAF0000 */ sw $t7, ($a1) -/* 0F7A24 7F0C2EF4 ACB90000 */ sw $t9, ($a1) -.L7F0C2EF8: -/* 0F7A28 7F0C2EF8 3C058009 */ lui $a1, %hi(g_gameOverFlag) -/* 0F7A2C 7F0C2EFC 24010001 */ li $at, 1 -/* 0F7A30 7F0C2F00 110101A3 */ beq $t0, $at, .L7F0C3590 -/* 0F7A34 7F0C2F04 24A5C704 */ addiu $a1, %lo(g_gameOverFlag) # addiu $a1, $a1, -0x38fc -/* 0F7A38 7F0C2F08 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7A3C 7F0C2F0C 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7A40 7F0C2F10 8CE30000 */ lw $v1, ($a3) -/* 0F7A44 7F0C2F14 8CA20000 */ lw $v0, ($a1) -/* 0F7A48 7F0C2F18 8C6900D8 */ lw $t1, 0xd8($v1) -/* 0F7A4C 7F0C2F1C 28410002 */ slti $at, $v0, 2 -/* 0F7A50 7F0C2F20 11200007 */ beqz $t1, .L7F0C2F40 -/* 0F7A54 7F0C2F24 00000000 */ nop -/* 0F7A58 7F0C2F28 14400005 */ bnez $v0, .L7F0C2F40 -/* 0F7A5C 7F0C2F2C 00000000 */ nop -/* 0F7A60 7F0C2F30 AC6029C4 */ sw $zero, 0x29c4($v1) -/* 0F7A64 7F0C2F34 8CEA0000 */ lw $t2, ($a3) -/* 0F7A68 7F0C2F38 10000195 */ b .L7F0C3590 -/* 0F7A6C 7F0C2F3C AD402A00 */ sw $zero, 0x2a00($t2) -.L7F0C2F40: -/* 0F7A70 7F0C2F40 10200193 */ beqz $at, .L7F0C3590 -/* 0F7A74 7F0C2F44 8FA40034 */ lw $a0, 0x34($sp) -/* 0F7A78 7F0C2F48 0FC26D36 */ jal sub_GAME_7F09B4D8 -/* 0F7A7C 7F0C2F4C AFA80030 */ sw $t0, 0x30($sp) -/* 0F7A80 7F0C2F50 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7A84 7F0C2F54 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7A88 7F0C2F58 14400021 */ bnez $v0, .L7F0C2FE0 -/* 0F7A8C 7F0C2F5C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7A90 7F0C2F60 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C70C) -/* 0F7A94 7F0C2F64 2484C70C */ addiu $a0, %lo(dword_CODE_bss_8008C70C) # addiu $a0, $a0, -0x38f4 -/* 0F7A98 7F0C2F68 3C058009 */ lui $a1, %hi(dword_CODE_bss_8008C714) -/* 0F7A9C 7F0C2F6C 3C028005 */ lui $v0, %hi(speedgraphframes) -/* 0F7AA0 7F0C2F70 8C428498 */ lw $v0, %lo(speedgraphframes)($v0) -/* 0F7AA4 7F0C2F74 8C8B0000 */ lw $t3, ($a0) -/* 0F7AA8 7F0C2F78 24A5C714 */ addiu $a1, %lo(dword_CODE_bss_8008C714) # addiu $a1, $a1, -0x38ec -/* 0F7AAC 7F0C2F7C 8CAD0000 */ lw $t5, ($a1) -/* 0F7AB0 7F0C2F80 01626021 */ addu $t4, $t3, $v0 -/* 0F7AB4 7F0C2F84 29810014 */ slti $at, $t4, 0x14 -/* 0F7AB8 7F0C2F88 01A27021 */ addu $t6, $t5, $v0 -/* 0F7ABC 7F0C2F8C AC8C0000 */ sw $t4, ($a0) -/* 0F7AC0 7F0C2F90 14200008 */ bnez $at, .L7F0C2FB4 -/* 0F7AC4 7F0C2F94 ACAE0000 */ sw $t6, ($a1) -/* 0F7AC8 7F0C2F98 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008C708) -/* 0F7ACC 7F0C2F9C 24C6C708 */ addiu $a2, %lo(dword_CODE_bss_8008C708) # addiu $a2, $a2, -0x38f8 -/* 0F7AD0 7F0C2FA0 8CC20000 */ lw $v0, ($a2) -/* 0F7AD4 7F0C2FA4 258FFFEC */ addiu $t7, $t4, -0x14 -/* 0F7AD8 7F0C2FA8 AC8F0000 */ sw $t7, ($a0) -/* 0F7ADC 7F0C2FAC 2C580001 */ sltiu $t8, $v0, 1 -/* 0F7AE0 7F0C2FB0 ACD80000 */ sw $t8, ($a2) -.L7F0C2FB4: -/* 0F7AE4 7F0C2FB4 8CA30000 */ lw $v1, ($a1) -/* 0F7AE8 7F0C2FB8 3C048009 */ lui $a0, %hi(time_trigger_alt_gameover_msg) -/* 0F7AEC 7F0C2FBC 2484C710 */ addiu $a0, %lo(time_trigger_alt_gameover_msg) # addiu $a0, $a0, -0x38f0 -/* 0F7AF0 7F0C2FC0 28610078 */ slti $at, $v1, 0x78 -/* 0F7AF4 7F0C2FC4 14200006 */ bnez $at, .L7F0C2FE0 -/* 0F7AF8 7F0C2FC8 00000000 */ nop -/* 0F7AFC 7F0C2FCC 8C820000 */ lw $v0, ($a0) -/* 0F7B00 7F0C2FD0 2479FF88 */ addiu $t9, $v1, -0x78 -/* 0F7B04 7F0C2FD4 ACB90000 */ sw $t9, ($a1) -/* 0F7B08 7F0C2FD8 2C490001 */ sltiu $t1, $v0, 1 -/* 0F7B0C 7F0C2FDC AC890000 */ sw $t1, ($a0) -.L7F0C2FE0: -/* 0F7B10 7F0C2FE0 3C028008 */ lui $v0, %hi(g_playerPerm) -/* 0F7B14 7F0C2FE4 8C42A0B4 */ lw $v0, %lo(g_playerPerm)($v0) -/* 0F7B18 7F0C2FE8 8CEA0000 */ lw $t2, ($a3) -/* 0F7B1C 7F0C2FEC 8C4B0054 */ lw $t3, 0x54($v0) -/* 0F7B20 7F0C2FF0 8D4329F8 */ lw $v1, 0x29f8($t2) -/* 0F7B24 7F0C2FF4 0163082A */ slt $at, $t3, $v1 -/* 0F7B28 7F0C2FF8 10200002 */ beqz $at, .L7F0C3004 -/* 0F7B2C 7F0C2FFC 00000000 */ nop -/* 0F7B30 7F0C3000 AC430054 */ sw $v1, 0x54($v0) -.L7F0C3004: -/* 0F7B34 7F0C3004 0FC22FEE */ jal getMissiontimer -/* 0F7B38 7F0C3008 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7B3C 7F0C300C 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7B40 7F0C3010 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7B44 7F0C3014 8CE30000 */ lw $v1, ($a3) -/* 0F7B48 7F0C3018 3C0C8008 */ lui $t4, %hi(g_playerPerm) -/* 0F7B4C 7F0C301C 8D8CA0B4 */ lw $t4, %lo(g_playerPerm)($t4) -/* 0F7B50 7F0C3020 8C6E29F4 */ lw $t6, 0x29f4($v1) -/* 0F7B54 7F0C3024 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7B58 7F0C3028 8D8D004C */ lw $t5, 0x4c($t4) -/* 0F7B5C 7F0C302C 004E7823 */ subu $t7, $v0, $t6 -/* 0F7B60 7F0C3030 01AF082A */ slt $at, $t5, $t7 -/* 0F7B64 7F0C3034 5020000E */ beql $at, $zero, .L7F0C3070 -/* 0F7B68 7F0C3038 8C6B29C4 */ lw $t3, 0x29c4($v1) -/* 0F7B6C 7F0C303C 0FC22FEE */ jal getMissiontimer -/* 0F7B70 7F0C3040 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7B74 7F0C3044 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7B78 7F0C3048 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7B7C 7F0C304C 8CF80000 */ lw $t8, ($a3) -/* 0F7B80 7F0C3050 3C0A8008 */ lui $t2, %hi(g_playerPerm) -/* 0F7B84 7F0C3054 8D4AA0B4 */ lw $t2, %lo(g_playerPerm)($t2) -/* 0F7B88 7F0C3058 8F1929F4 */ lw $t9, 0x29f4($t8) -/* 0F7B8C 7F0C305C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7B90 7F0C3060 00594823 */ subu $t1, $v0, $t9 -/* 0F7B94 7F0C3064 AD49004C */ sw $t1, 0x4c($t2) -/* 0F7B98 7F0C3068 8CE30000 */ lw $v1, ($a3) -/* 0F7B9C 7F0C306C 8C6B29C4 */ lw $t3, 0x29c4($v1) -.L7F0C3070: -/* 0F7BA0 7F0C3070 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7BA4 7F0C3074 1160012F */ beqz $t3, .L7F0C3534 -/* 0F7BA8 7F0C3078 00000000 */ nop -/* 0F7BAC 7F0C307C 8FA40034 */ lw $a0, 0x34($sp) -/* 0F7BB0 7F0C3080 0FC307BE */ jal mpwatchIsPlayerPressingRight -/* 0F7BB4 7F0C3084 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7BB8 7F0C3088 1040000E */ beqz $v0, .L7F0C30C4 -/* 0F7BBC 7F0C308C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7BC0 7F0C3090 0FC30788 */ jal mpwatchMenuCanGoRight -/* 0F7BC4 7F0C3094 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7BC8 7F0C3098 1040000A */ beqz $v0, .L7F0C30C4 -/* 0F7BCC 7F0C309C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7BD0 7F0C30A0 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7BD4 7F0C30A4 00000000 */ nop -/* 0F7BD8 7F0C30A8 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7BDC 7F0C30AC 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7BE0 7F0C30B0 8CE30000 */ lw $v1, ($a3) -/* 0F7BE4 7F0C30B4 8C6C29C8 */ lw $t4, 0x29c8($v1) -/* 0F7BE8 7F0C30B8 258E0001 */ addiu $t6, $t4, 1 -/* 0F7BEC 7F0C30BC 10000112 */ b .L7F0C3508 -/* 0F7BF0 7F0C30C0 AC6E29C8 */ sw $t6, 0x29c8($v1) -.L7F0C30C4: -/* 0F7BF4 7F0C30C4 8FA40034 */ lw $a0, 0x34($sp) -/* 0F7BF8 7F0C30C8 0FC307DA */ jal mpwatchIsPlayerPressingLeft -/* 0F7BFC 7F0C30CC AFA80030 */ sw $t0, 0x30($sp) -/* 0F7C00 7F0C30D0 1040000E */ beqz $v0, .L7F0C310C -/* 0F7C04 7F0C30D4 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7C08 7F0C30D8 0FC307A3 */ jal mpwatchMenuCanGoLeft -/* 0F7C0C 7F0C30DC AFA80030 */ sw $t0, 0x30($sp) -/* 0F7C10 7F0C30E0 1040000A */ beqz $v0, .L7F0C310C -/* 0F7C14 7F0C30E4 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7C18 7F0C30E8 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7C1C 7F0C30EC 00000000 */ nop -/* 0F7C20 7F0C30F0 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7C24 7F0C30F4 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7C28 7F0C30F8 8CE30000 */ lw $v1, ($a3) -/* 0F7C2C 7F0C30FC 8C6D29C8 */ lw $t5, 0x29c8($v1) -/* 0F7C30 7F0C3100 25AFFFFF */ addiu $t7, $t5, -1 -/* 0F7C34 7F0C3104 10000100 */ b .L7F0C3508 -/* 0F7C38 7F0C3108 AC6F29C8 */ sw $t7, 0x29c8($v1) -.L7F0C310C: -/* 0F7C3C 7F0C310C 8FA40034 */ lw $a0, 0x34($sp) -/* 0F7C40 7F0C3110 0FC307BE */ jal mpwatchIsPlayerPressingRight -/* 0F7C44 7F0C3114 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7C48 7F0C3118 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7C4C 7F0C311C 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7C50 7F0C3120 1040000E */ beqz $v0, .L7F0C315C -/* 0F7C54 7F0C3124 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7C58 7F0C3128 8CF80000 */ lw $t8, ($a3) -/* 0F7C5C 7F0C312C 24010006 */ li $at, 6 -/* 0F7C60 7F0C3130 8F1929C8 */ lw $t9, 0x29c8($t8) -/* 0F7C64 7F0C3134 5721000A */ bnel $t9, $at, .L7F0C3160 -/* 0F7C68 7F0C3138 8FA40034 */ lw $a0, 0x34($sp) -/* 0F7C6C 7F0C313C 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7C70 7F0C3140 00000000 */ nop -/* 0F7C74 7F0C3144 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7C78 7F0C3148 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7C7C 7F0C314C 8CEA0000 */ lw $t2, ($a3) -/* 0F7C80 7F0C3150 24090001 */ li $t1, 1 -/* 0F7C84 7F0C3154 100000EC */ b .L7F0C3508 -/* 0F7C88 7F0C3158 AD4929CC */ sw $t1, 0x29cc($t2) -.L7F0C315C: -/* 0F7C8C 7F0C315C 8FA40034 */ lw $a0, 0x34($sp) -.L7F0C3160: -/* 0F7C90 7F0C3160 0FC307DA */ jal mpwatchIsPlayerPressingLeft -/* 0F7C94 7F0C3164 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7C98 7F0C3168 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7C9C 7F0C316C 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7CA0 7F0C3170 1040000D */ beqz $v0, .L7F0C31A8 -/* 0F7CA4 7F0C3174 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7CA8 7F0C3178 8CEB0000 */ lw $t3, ($a3) -/* 0F7CAC 7F0C317C 24010006 */ li $at, 6 -/* 0F7CB0 7F0C3180 8D6C29C8 */ lw $t4, 0x29c8($t3) -/* 0F7CB4 7F0C3184 55810009 */ bnel $t4, $at, .L7F0C31AC -/* 0F7CB8 7F0C3188 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7CBC 7F0C318C 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7CC0 7F0C3190 00000000 */ nop -/* 0F7CC4 7F0C3194 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7CC8 7F0C3198 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7CCC 7F0C319C 8CEE0000 */ lw $t6, ($a3) -/* 0F7CD0 7F0C31A0 100000D9 */ b .L7F0C3508 -/* 0F7CD4 7F0C31A4 ADC029CC */ sw $zero, 0x29cc($t6) -.L7F0C31A8: -/* 0F7CD8 7F0C31A8 83A4001B */ lb $a0, 0x1b($sp) -.L7F0C31AC: -/* 0F7CDC 7F0C31AC 34058000 */ li $a1, 32768 -/* 0F7CE0 7F0C31B0 0C0030EB */ jal joyGetButtonsPressedThisFrame -/* 0F7CE4 7F0C31B4 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7CE8 7F0C31B8 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7CEC 7F0C31BC 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7CF0 7F0C31C0 10400022 */ beqz $v0, .L7F0C324C -/* 0F7CF4 7F0C31C4 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7CF8 7F0C31C8 8CED0000 */ lw $t5, ($a3) -/* 0F7CFC 7F0C31CC 24010004 */ li $at, 4 -/* 0F7D00 7F0C31D0 8DAF29C8 */ lw $t7, 0x29c8($t5) -/* 0F7D04 7F0C31D4 55E1001E */ bnel $t7, $at, .L7F0C3250 -/* 0F7D08 7F0C31D8 8CEA0000 */ lw $t2, ($a3) -/* 0F7D0C 7F0C31DC 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7D10 7F0C31E0 00000000 */ nop -/* 0F7D14 7F0C31E4 3C038009 */ lui $v1, %hi(g_pausedFlag) -/* 0F7D18 7F0C31E8 2463C718 */ addiu $v1, %lo(g_pausedFlag) # addiu $v1, $v1, -0x38e8 -/* 0F7D1C 7F0C31EC 8C780000 */ lw $t8, ($v1) -/* 0F7D20 7F0C31F0 24190001 */ li $t9, 1 -/* 0F7D24 7F0C31F4 17000009 */ bnez $t8, .L7F0C321C -/* 0F7D28 7F0C31F8 00000000 */ nop -/* 0F7D2C 7F0C31FC 0FC26C54 */ jal get_cur_playernum -/* 0F7D30 7F0C3200 AC790000 */ sw $t9, ($v1) -/* 0F7D34 7F0C3204 3C018009 */ lui $at, %hi(who_paused) -/* 0F7D38 7F0C3208 AC22C71C */ sw $v0, %lo(who_paused)($at) -/* 0F7D3C 7F0C320C 0FC2FEFE */ jal lvlSetControlsLockedFlag -/* 0F7D40 7F0C3210 24040001 */ li $a0, 1 -/* 0F7D44 7F0C3214 100000BD */ b .L7F0C350C -/* 0F7D48 7F0C3218 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C321C: -/* 0F7D4C 7F0C321C 0FC26C54 */ jal get_cur_playernum -/* 0F7D50 7F0C3220 00000000 */ nop -/* 0F7D54 7F0C3224 3C098009 */ lui $t1, %hi(who_paused) -/* 0F7D58 7F0C3228 8D29C71C */ lw $t1, %lo(who_paused)($t1) -/* 0F7D5C 7F0C322C 3C038009 */ lui $v1, %hi(g_pausedFlag) -/* 0F7D60 7F0C3230 2463C718 */ addiu $v1, %lo(g_pausedFlag) # addiu $v1, $v1, -0x38e8 -/* 0F7D64 7F0C3234 144900B4 */ bne $v0, $t1, .L7F0C3508 -/* 0F7D68 7F0C3238 00002025 */ move $a0, $zero -/* 0F7D6C 7F0C323C 0FC2FEFE */ jal lvlSetControlsLockedFlag -/* 0F7D70 7F0C3240 AC600000 */ sw $zero, ($v1) -/* 0F7D74 7F0C3244 100000B1 */ b .L7F0C350C -/* 0F7D78 7F0C3248 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C324C: -/* 0F7D7C 7F0C324C 8CEA0000 */ lw $t2, ($a3) -.L7F0C3250: -/* 0F7D80 7F0C3250 24060007 */ li $a2, 7 -/* 0F7D84 7F0C3254 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7D88 7F0C3258 8D4B29C8 */ lw $t3, 0x29c8($t2) -/* 0F7D8C 7F0C325C 34059000 */ li $a1, 36864 -/* 0F7D90 7F0C3260 14CB0011 */ bne $a2, $t3, .L7F0C32A8 -/* 0F7D94 7F0C3264 00000000 */ nop -/* 0F7D98 7F0C3268 83A4001B */ lb $a0, 0x1b($sp) -/* 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) -/* 0F7DAC 7F0C327C 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7DB0 7F0C3280 00000000 */ nop -/* 0F7DB4 7F0C3284 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7DB8 7F0C3288 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7DBC 7F0C328C 8CEE0000 */ lw $t6, ($a3) -/* 0F7DC0 7F0C3290 240C0001 */ li $t4, 1 -/* 0F7DC4 7F0C3294 240D0003 */ li $t5, 3 -/* 0F7DC8 7F0C3298 ADCC29C4 */ sw $t4, 0x29c4($t6) -/* 0F7DCC 7F0C329C 8CEF0000 */ lw $t7, ($a3) -/* 0F7DD0 7F0C32A0 10000099 */ b .L7F0C3508 -/* 0F7DD4 7F0C32A4 ADED29C8 */ sw $t5, 0x29c8($t7) -.L7F0C32A8: -/* 0F7DD8 7F0C32A8 0C0030EB */ jal joyGetButtonsPressedThisFrame -/* 0F7DDC 7F0C32AC AFA80030 */ sw $t0, 0x30($sp) -/* 0F7DE0 7F0C32B0 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7DE4 7F0C32B4 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7DE8 7F0C32B8 1040000E */ beqz $v0, .L7F0C32F4 -/* 0F7DEC 7F0C32BC 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7DF0 7F0C32C0 8CE30000 */ lw $v1, ($a3) -/* 0F7DF4 7F0C32C4 24010005 */ li $at, 5 -/* 0F7DF8 7F0C32C8 8C6229C8 */ lw $v0, 0x29c8($v1) -/* 0F7DFC 7F0C32CC 10410002 */ beq $v0, $at, .L7F0C32D8 -/* 0F7E00 7F0C32D0 24010006 */ li $at, 6 -/* 0F7E04 7F0C32D4 1441000D */ bne $v0, $at, .L7F0C330C -.L7F0C32D8: -/* 0F7E08 7F0C32D8 24010006 */ li $at, 6 -/* 0F7E0C 7F0C32DC 54410006 */ bnel $v0, $at, .L7F0C32F8 -/* 0F7E10 7F0C32E0 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7E14 7F0C32E4 8C7829CC */ lw $t8, 0x29cc($v1) -/* 0F7E18 7F0C32E8 24010001 */ li $at, 1 -/* 0F7E1C 7F0C32EC 17010007 */ bne $t8, $at, .L7F0C330C -/* 0F7E20 7F0C32F0 00000000 */ nop -.L7F0C32F4: -/* 0F7E24 7F0C32F4 83A4001B */ lb $a0, 0x1b($sp) -.L7F0C32F8: -/* 0F7E28 7F0C32F8 24054000 */ li $a1, 16384 -/* 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) -.L7F0C330C: -/* 0F7E3C 7F0C330C 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7E40 7F0C3310 AFA80030 */ sw $t0, 0x30($sp) -/* 0F7E44 7F0C3314 3C198009 */ lui $t9, %hi(g_gameOverFlag) -/* 0F7E48 7F0C3318 8F39C704 */ lw $t9, %lo(g_gameOverFlag)($t9) -/* 0F7E4C 7F0C331C 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7E50 7F0C3320 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7E54 7F0C3324 24060007 */ li $a2, 7 -/* 0F7E58 7F0C3328 13200039 */ beqz $t9, .L7F0C3410 -/* 0F7E5C 7F0C332C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F7E60 7F0C3330 8CE90000 */ lw $t1, ($a3) -/* 0F7E64 7F0C3334 00001825 */ move $v1, $zero -/* 0F7E68 7F0C3338 00002025 */ move $a0, $zero -/* 0F7E6C 7F0C333C 1900002E */ blez $t0, .L7F0C33F8 -/* 0F7E70 7F0C3340 AD2629C8 */ sw $a2, 0x29c8($t1) -/* 0F7E74 7F0C3344 31070003 */ andi $a3, $t0, 3 -/* 0F7E78 7F0C3348 10E0000E */ beqz $a3, .L7F0C3384 -/* 0F7E7C 7F0C334C 00E02825 */ move $a1, $a3 -/* 0F7E80 7F0C3350 3C0B8008 */ lui $t3, %hi(g_playerPointers) -/* 0F7E84 7F0C3354 256B9EE0 */ addiu $t3, %lo(g_playerPointers) # addiu $t3, $t3, -0x6120 -/* 0F7E88 7F0C3358 00005080 */ sll $t2, $zero, 2 -/* 0F7E8C 7F0C335C 014B1021 */ addu $v0, $t2, $t3 -.L7F0C3360: -/* 0F7E90 7F0C3360 8C4C0000 */ lw $t4, ($v0) -/* 0F7E94 7F0C3364 24840001 */ addiu $a0, $a0, 1 -/* 0F7E98 7F0C3368 8D8E29C8 */ lw $t6, 0x29c8($t4) -/* 0F7E9C 7F0C336C 14CE0002 */ bne $a2, $t6, .L7F0C3378 -/* 0F7EA0 7F0C3370 00000000 */ nop -/* 0F7EA4 7F0C3374 24630001 */ addiu $v1, $v1, 1 -.L7F0C3378: -/* 0F7EA8 7F0C3378 14A4FFF9 */ bne $a1, $a0, .L7F0C3360 -/* 0F7EAC 7F0C337C 24420004 */ addiu $v0, $v0, 4 -/* 0F7EB0 7F0C3380 1088001D */ beq $a0, $t0, .L7F0C33F8 -.L7F0C3384: -/* 0F7EB4 7F0C3384 3C0F8008 */ lui $t7, %hi(g_playerPointers) -/* 0F7EB8 7F0C3388 25EF9EE0 */ addiu $t7, %lo(g_playerPointers) # addiu $t7, $t7, -0x6120 -/* 0F7EBC 7F0C338C 00046880 */ sll $t5, $a0, 2 -/* 0F7EC0 7F0C3390 0008C080 */ sll $t8, $t0, 2 -/* 0F7EC4 7F0C3394 030F2821 */ addu $a1, $t8, $t7 -/* 0F7EC8 7F0C3398 01AF1021 */ addu $v0, $t5, $t7 -/* 0F7ECC 7F0C339C 8C590000 */ lw $t9, ($v0) -.L7F0C33A0: -/* 0F7ED0 7F0C33A0 8F2929C8 */ lw $t1, 0x29c8($t9) -/* 0F7ED4 7F0C33A4 54C90003 */ bnel $a2, $t1, .L7F0C33B4 -/* 0F7ED8 7F0C33A8 8C4A0004 */ lw $t2, 4($v0) -/* 0F7EDC 7F0C33AC 24630001 */ addiu $v1, $v1, 1 -/* 0F7EE0 7F0C33B0 8C4A0004 */ lw $t2, 4($v0) -.L7F0C33B4: -/* 0F7EE4 7F0C33B4 8D4B29C8 */ lw $t3, 0x29c8($t2) -/* 0F7EE8 7F0C33B8 54CB0003 */ bnel $a2, $t3, .L7F0C33C8 -/* 0F7EEC 7F0C33BC 8C4C0008 */ lw $t4, 8($v0) -/* 0F7EF0 7F0C33C0 24630001 */ addiu $v1, $v1, 1 -/* 0F7EF4 7F0C33C4 8C4C0008 */ lw $t4, 8($v0) -.L7F0C33C8: -/* 0F7EF8 7F0C33C8 8D8E29C8 */ lw $t6, 0x29c8($t4) -/* 0F7EFC 7F0C33CC 54CE0003 */ bnel $a2, $t6, .L7F0C33DC -/* 0F7F00 7F0C33D0 8C4D000C */ lw $t5, 0xc($v0) -/* 0F7F04 7F0C33D4 24630001 */ addiu $v1, $v1, 1 -/* 0F7F08 7F0C33D8 8C4D000C */ lw $t5, 0xc($v0) -.L7F0C33DC: -/* 0F7F0C 7F0C33DC 24420010 */ addiu $v0, $v0, 0x10 -/* 0F7F10 7F0C33E0 8DB829C8 */ lw $t8, 0x29c8($t5) -/* 0F7F14 7F0C33E4 14D80002 */ bne $a2, $t8, .L7F0C33F0 -/* 0F7F18 7F0C33E8 00000000 */ nop -/* 0F7F1C 7F0C33EC 24630001 */ addiu $v1, $v1, 1 -.L7F0C33F0: -/* 0F7F20 7F0C33F0 5445FFEB */ bnel $v0, $a1, .L7F0C33A0 -/* 0F7F24 7F0C33F4 8C590000 */ lw $t9, ($v0) -.L7F0C33F8: -/* 0F7F28 7F0C33F8 54680044 */ bnel $v1, $t0, .L7F0C350C -/* 0F7F2C 7F0C33FC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F7F30 7F0C3400 0C001A54 */ jal bossSetLoadedStage -/* 0F7F34 7F0C3404 2404005A */ li $a0, 90 -/* 0F7F38 7F0C3408 10000040 */ b .L7F0C350C -/* 0F7F3C 7F0C340C 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C3410: -/* 0F7F40 7F0C3410 8CEF0000 */ lw $t7, ($a3) -/* 0F7F44 7F0C3414 2419003C */ li $t9, 60 -/* 0F7F48 7F0C3418 ADE029C4 */ sw $zero, 0x29c4($t7) -/* 0F7F4C 7F0C341C 8CE90000 */ lw $t1, ($a3) -/* 0F7F50 7F0C3420 0FC26C54 */ jal get_cur_playernum -/* 0F7F54 7F0C3424 AD392A00 */ sw $t9, 0x2a00($t1) -/* 0F7F58 7F0C3428 3C0A8009 */ lui $t2, %hi(who_paused) -/* 0F7F5C 7F0C342C 8D4AC71C */ lw $t2, %lo(who_paused)($t2) -/* 0F7F60 7F0C3430 3C038009 */ lui $v1, %hi(g_pausedFlag) -/* 0F7F64 7F0C3434 2463C718 */ addiu $v1, %lo(g_pausedFlag) # addiu $v1, $v1, -0x38e8 -/* 0F7F68 7F0C3438 144A0033 */ bne $v0, $t2, .L7F0C3508 -/* 0F7F6C 7F0C343C 00002025 */ move $a0, $zero -/* 0F7F70 7F0C3440 0FC2FEFE */ jal lvlSetControlsLockedFlag -/* 0F7F74 7F0C3444 AC600000 */ sw $zero, ($v1) -/* 0F7F78 7F0C3448 10000030 */ b .L7F0C350C -/* 0F7F7C 7F0C344C 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C3450: -/* 0F7F80 7F0C3450 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7F84 7F0C3454 0C0030EB */ jal joyGetButtonsPressedThisFrame -/* 0F7F88 7F0C3458 34059000 */ li $a1, 36864 -/* 0F7F8C 7F0C345C 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7F90 7F0C3460 10400010 */ beqz $v0, .L7F0C34A4 -/* 0F7F94 7F0C3464 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7F98 7F0C3468 8CEB0000 */ lw $t3, ($a3) -/* 0F7F9C 7F0C346C 24010005 */ li $at, 5 -/* 0F7FA0 7F0C3470 8D6C29C8 */ lw $t4, 0x29c8($t3) -/* 0F7FA4 7F0C3474 5581000C */ bnel $t4, $at, .L7F0C34A8 -/* 0F7FA8 7F0C3478 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7FAC 7F0C347C 0FC307F7 */ jal mpwatchPlayBeep -/* 0F7FB0 7F0C3480 00000000 */ nop -/* 0F7FB4 7F0C3484 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7FB8 7F0C3488 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7FBC 7F0C348C 8CED0000 */ lw $t5, ($a3) -/* 0F7FC0 7F0C3490 240E0006 */ li $t6, 6 -/* 0F7FC4 7F0C3494 ADAE29C8 */ sw $t6, 0x29c8($t5) -/* 0F7FC8 7F0C3498 8CF80000 */ lw $t8, ($a3) -/* 0F7FCC 7F0C349C 1000001A */ b .L7F0C3508 -/* 0F7FD0 7F0C34A0 AF0029CC */ sw $zero, 0x29cc($t8) -.L7F0C34A4: -/* 0F7FD4 7F0C34A4 83A4001B */ lb $a0, 0x1b($sp) -.L7F0C34A8: -/* 0F7FD8 7F0C34A8 0C0030EB */ jal joyGetButtonsPressedThisFrame -/* 0F7FDC 7F0C34AC 34059000 */ li $a1, 36864 -/* 0F7FE0 7F0C34B0 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F7FE4 7F0C34B4 10400014 */ beqz $v0, .L7F0C3508 -/* 0F7FE8 7F0C34B8 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F7FEC 7F0C34BC 8CE30000 */ lw $v1, ($a3) -/* 0F7FF0 7F0C34C0 24010006 */ li $at, 6 -/* 0F7FF4 7F0C34C4 8C6F29C8 */ lw $t7, 0x29c8($v1) -/* 0F7FF8 7F0C34C8 55E10010 */ bnel $t7, $at, .L7F0C350C -/* 0F7FFC 7F0C34CC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F8000 7F0C34D0 8C7929CC */ lw $t9, 0x29cc($v1) -/* 0F8004 7F0C34D4 24010001 */ li $at, 1 -/* 0F8008 7F0C34D8 5721000C */ bnel $t9, $at, .L7F0C350C -/* 0F800C 7F0C34DC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F8010 7F0C34E0 0FC307F7 */ jal mpwatchPlayBeep -/* 0F8014 7F0C34E4 00000000 */ nop -/* 0F8018 7F0C34E8 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F801C 7F0C34EC 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F8020 7F0C34F0 8CE90000 */ lw $t1, ($a3) -/* 0F8024 7F0C34F4 00002025 */ move $a0, $zero -/* 0F8028 7F0C34F8 AD2029C4 */ sw $zero, 0x29c4($t1) -/* 0F802C 7F0C34FC 8CEA0000 */ lw $t2, ($a3) -/* 0F8030 7F0C3500 0FC3094C */ jal end_game_and_show_game_over_menu -/* 0F8034 7F0C3504 AD402A00 */ sw $zero, 0x2a00($t2) -.L7F0C3508: -/* 0F8038 7F0C3508 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C350C: -/* 0F803C 7F0C350C 3C038008 */ lui $v1, %hi(g_CurrentPlayer) -/* 0F8040 7F0C3510 8C63A0B0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 0F8044 7F0C3514 10400002 */ beqz $v0, .L7F0C3520 -/* 0F8048 7F0C3518 2401FFFF */ li $at, -1 -/* 0F804C 7F0C351C 14410003 */ bne $v0, $at, .L7F0C352C -.L7F0C3520: -/* 0F8050 7F0C3520 240B0001 */ li $t3, 1 -/* 0F8054 7F0C3524 1000001A */ b .L7F0C3590 -/* 0F8058 7F0C3528 AC6B29D0 */ sw $t3, 0x29d0($v1) -.L7F0C352C: -/* 0F805C 7F0C352C 10000018 */ b .L7F0C3590 -/* 0F8060 7F0C3530 AC6029D0 */ sw $zero, 0x29d0($v1) -.L7F0C3534: -/* 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) -/* 0F8074 7F0C3544 0FC307F7 */ jal mpwatchPlayBeep -/* 0F8078 7F0C3548 00000000 */ nop -/* 0F807C 7F0C354C 3C078008 */ lui $a3, %hi(g_CurrentPlayer) -/* 0F8080 7F0C3550 24E7A0B0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x5f50 -/* 0F8084 7F0C3554 8CEE0000 */ lw $t6, ($a3) -/* 0F8088 7F0C3558 240C0001 */ li $t4, 1 -/* 0F808C 7F0C355C 240D0003 */ li $t5, 3 -/* 0F8090 7F0C3560 ADCC29C4 */ sw $t4, 0x29c4($t6) -/* 0F8094 7F0C3564 8CF80000 */ lw $t8, ($a3) -/* 0F8098 7F0C3568 240F0001 */ li $t7, 1 -/* 0F809C 7F0C356C AF0D29C8 */ sw $t5, 0x29c8($t8) -/* 0F80A0 7F0C3570 8CF90000 */ lw $t9, ($a3) -/* 0F80A4 7F0C3574 AF2F29D0 */ sw $t7, 0x29d0($t9) -/* 0F80A8 7F0C3578 8CE30000 */ lw $v1, ($a3) -/* 0F80AC 7F0C357C C46400DC */ lwc1 $f4, 0xdc($v1) -/* 0F80B0 7F0C3580 E46400EC */ swc1 $f4, 0xec($v1) -/* 0F80B4 7F0C3584 8CE30000 */ lw $v1, ($a3) -/* 0F80B8 7F0C3588 C46600E0 */ lwc1 $f6, 0xe0($v1) -/* 0F80BC 7F0C358C E46600F0 */ swc1 $f6, 0xf0($v1) -.L7F0C3590: -/* 0F80C0 7F0C3590 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0C3594: -/* 0F80C4 7F0C3594 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0F80C8 7F0C3598 03E00008 */ jr $ra -/* 0F80CC 7F0C359C 00000000 */ nop -) -#endif - -#if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C2E80 -/* 0F4D50 7F0C2360 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0F4D54 7F0C2364 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F4D58 7F0C2368 0FC269A4 */ jal get_cur_playernum -/* 0F4D5C 7F0C236C 00000000 */ nop -/* 0F4D60 7F0C2370 0FC26669 */ jal getPlayerCount -/* 0F4D64 7F0C2374 AFA20034 */ sw $v0, 0x34($sp) -/* 0F4D68 7F0C2378 83A40037 */ lb $a0, 0x37($sp) -/* 0F4D6C 7F0C237C 2405FFFE */ li $a1, -2 -/* 0F4D70 7F0C2380 24060001 */ li $a2, 1 -/* 0F4D74 7F0C2384 AFA20030 */ sw $v0, 0x30($sp) -/* 0F4D78 7F0C2388 0C002C8A */ jal joyGetStickXInRange -/* 0F4D7C 7F0C238C AFA40018 */ sw $a0, 0x18($sp) -/* 0F4D80 7F0C2390 AFA2002C */ sw $v0, 0x2c($sp) -/* 0F4D84 7F0C2394 0FC26A86 */ jal sub_GAME_7F09B4D8 -/* 0F4D88 7F0C2398 8FA40034 */ lw $a0, 0x34($sp) -/* 0F4D8C 7F0C239C 1440000E */ bnez $v0, .L7F0C23D8 -/* 0F4D90 7F0C23A0 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4D94 7F0C23A4 3C058007 */ lui $a1, %hi(g_gameOverFlag) # $a1, 0x8007 -/* 0F4D98 7F0C23A8 24A53AE4 */ addiu $a1, %lo(g_gameOverFlag) # addiu $a1, $a1, 0x3ae4 -/* 0F4D9C 7F0C23AC 8CA20000 */ lw $v0, ($a1) -/* 0F4DA0 7F0C23B0 3C0E8004 */ lui $t6, %hi(speedgraphframes) # $t6, 0x8004 -/* 0F4DA4 7F0C23B4 28410002 */ slti $at, $v0, 2 -/* 0F4DA8 7F0C23B8 14200007 */ bnez $at, .L7F0C23D8 -/* 0F4DAC 7F0C23BC 00000000 */ nop -/* 0F4DB0 7F0C23C0 8DCE1118 */ lw $t6, %lo(speedgraphframes)($t6) -/* 0F4DB4 7F0C23C4 24190001 */ li $t9, 1 -/* 0F4DB8 7F0C23C8 004E7823 */ subu $t7, $v0, $t6 -/* 0F4DBC 7F0C23CC 1DE00002 */ bgtz $t7, .L7F0C23D8 -/* 0F4DC0 7F0C23D0 ACAF0000 */ sw $t7, ($a1) -/* 0F4DC4 7F0C23D4 ACB90000 */ sw $t9, ($a1) -.L7F0C23D8: -/* 0F4DC8 7F0C23D8 3C058007 */ lui $a1, %hi(g_gameOverFlag) # $a1, 0x8007 -/* 0F4DCC 7F0C23DC 24010001 */ li $at, 1 -/* 0F4DD0 7F0C23E0 110101A3 */ beq $t0, $at, .L7F0C2A70 -/* 0F4DD4 7F0C23E4 24A53AE4 */ addiu $a1, %lo(g_gameOverFlag) # addiu $a1, $a1, 0x3ae4 -/* 0F4DD8 7F0C23E8 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4DDC 7F0C23EC 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4DE0 7F0C23F0 8CE30000 */ lw $v1, ($a3) -/* 0F4DE4 7F0C23F4 8CA20000 */ lw $v0, ($a1) -/* 0F4DE8 7F0C23F8 8C6900D8 */ lw $t1, 0xd8($v1) -/* 0F4DEC 7F0C23FC 28410002 */ slti $at, $v0, 2 -/* 0F4DF0 7F0C2400 11200007 */ beqz $t1, .L7F0C2420 -/* 0F4DF4 7F0C2404 00000000 */ nop -/* 0F4DF8 7F0C2408 14400005 */ bnez $v0, .L7F0C2420 -/* 0F4DFC 7F0C240C 00000000 */ nop -/* 0F4E00 7F0C2410 AC6029BC */ sw $zero, 0x29bc($v1) -/* 0F4E04 7F0C2414 8CEA0000 */ lw $t2, ($a3) -/* 0F4E08 7F0C2418 10000195 */ b .L7F0C2A70 -/* 0F4E0C 7F0C241C AD4029F8 */ sw $zero, 0x29f8($t2) -.L7F0C2420: -/* 0F4E10 7F0C2420 10200193 */ beqz $at, .L7F0C2A70 -/* 0F4E14 7F0C2424 8FA40034 */ lw $a0, 0x34($sp) -/* 0F4E18 7F0C2428 0FC26A86 */ jal sub_GAME_7F09B4D8 -/* 0F4E1C 7F0C242C AFA80030 */ sw $t0, 0x30($sp) -/* 0F4E20 7F0C2430 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4E24 7F0C2434 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4E28 7F0C2438 14400021 */ bnez $v0, .L7F0C24C0 -/* 0F4E2C 7F0C243C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4E30 7F0C2440 3C048007 */ lui $a0, %hi(dword_CODE_bss_8008C70C) # $a0, 0x8007 -/* 0F4E34 7F0C2444 24843AEC */ addiu $a0, %lo(dword_CODE_bss_8008C70C) # addiu $a0, $a0, 0x3aec -/* 0F4E38 7F0C2448 3C058007 */ lui $a1, %hi(dword_CODE_bss_8008C714) # $a1, 0x8007 -/* 0F4E3C 7F0C244C 3C028004 */ lui $v0, %hi(speedgraphframes) # $v0, 0x8004 -/* 0F4E40 7F0C2450 8C421118 */ lw $v0, %lo(speedgraphframes)($v0) -/* 0F4E44 7F0C2454 8C8B0000 */ lw $t3, ($a0) -/* 0F4E48 7F0C2458 24A53AF4 */ addiu $a1, %lo(dword_CODE_bss_8008C714) # addiu $a1, $a1, 0x3af4 -/* 0F4E4C 7F0C245C 8CAD0000 */ lw $t5, ($a1) -/* 0F4E50 7F0C2460 01626021 */ addu $t4, $t3, $v0 -/* 0F4E54 7F0C2464 29810010 */ slti $at, $t4, 0x10 -/* 0F4E58 7F0C2468 01A27021 */ addu $t6, $t5, $v0 -/* 0F4E5C 7F0C246C AC8C0000 */ sw $t4, ($a0) -/* 0F4E60 7F0C2470 14200008 */ bnez $at, .L7F0C2494 -/* 0F4E64 7F0C2474 ACAE0000 */ sw $t6, ($a1) -/* 0F4E68 7F0C2478 3C068007 */ lui $a2, %hi(dword_CODE_bss_8008C708) # $a2, 0x8007 -/* 0F4E6C 7F0C247C 24C63AE8 */ addiu $a2, %lo(dword_CODE_bss_8008C708) # addiu $a2, $a2, 0x3ae8 -/* 0F4E70 7F0C2480 8CC20000 */ lw $v0, ($a2) -/* 0F4E74 7F0C2484 258FFFF0 */ addiu $t7, $t4, -0x10 -/* 0F4E78 7F0C2488 AC8F0000 */ sw $t7, ($a0) -/* 0F4E7C 7F0C248C 2C580001 */ sltiu $t8, $v0, 1 -/* 0F4E80 7F0C2490 ACD80000 */ sw $t8, ($a2) -.L7F0C2494: -/* 0F4E84 7F0C2494 8CA30000 */ lw $v1, ($a1) -/* 0F4E88 7F0C2498 3C048007 */ lui $a0, %hi(time_trigger_alt_gameover_msg) # $a0, 0x8007 -/* 0F4E8C 7F0C249C 24843AF0 */ addiu $a0, %lo(time_trigger_alt_gameover_msg) # addiu $a0, $a0, 0x3af0 -/* 0F4E90 7F0C24A0 28610064 */ slti $at, $v1, 0x64 -/* 0F4E94 7F0C24A4 14200006 */ bnez $at, .L7F0C24C0 -/* 0F4E98 7F0C24A8 00000000 */ nop -/* 0F4E9C 7F0C24AC 8C820000 */ lw $v0, ($a0) -/* 0F4EA0 7F0C24B0 2479FF9C */ addiu $t9, $v1, -0x64 -/* 0F4EA4 7F0C24B4 ACB90000 */ sw $t9, ($a1) -/* 0F4EA8 7F0C24B8 2C490001 */ sltiu $t1, $v0, 1 -/* 0F4EAC 7F0C24BC AC890000 */ sw $t1, ($a0) -.L7F0C24C0: -/* 0F4EB0 7F0C24C0 3C028007 */ lui $v0, %hi(g_playerPerm) # $v0, 0x8007 -/* 0F4EB4 7F0C24C4 8C428BC4 */ lw $v0, %lo(g_playerPerm)($v0) -/* 0F4EB8 7F0C24C8 8CEA0000 */ lw $t2, ($a3) -/* 0F4EBC 7F0C24CC 8C4B0054 */ lw $t3, 0x54($v0) -/* 0F4EC0 7F0C24D0 8D4329F0 */ lw $v1, 0x29f0($t2) -/* 0F4EC4 7F0C24D4 0163082A */ slt $at, $t3, $v1 -/* 0F4EC8 7F0C24D8 10200002 */ beqz $at, .L7F0C24E4 -/* 0F4ECC 7F0C24DC 00000000 */ nop -/* 0F4ED0 7F0C24E0 AC430054 */ sw $v1, 0x54($v0) -.L7F0C24E4: -/* 0F4ED4 7F0C24E4 0FC230AB */ jal getMissiontimer -/* 0F4ED8 7F0C24E8 AFA80030 */ sw $t0, 0x30($sp) -/* 0F4EDC 7F0C24EC 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4EE0 7F0C24F0 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4EE4 7F0C24F4 8CE30000 */ lw $v1, ($a3) -/* 0F4EE8 7F0C24F8 3C0C8007 */ lui $t4, %hi(g_playerPerm) # $t4, 0x8007 -/* 0F4EEC 7F0C24FC 8D8C8BC4 */ lw $t4, %lo(g_playerPerm)($t4) -/* 0F4EF0 7F0C2500 8C6E29EC */ lw $t6, 0x29ec($v1) -/* 0F4EF4 7F0C2504 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4EF8 7F0C2508 8D8D004C */ lw $t5, 0x4c($t4) -/* 0F4EFC 7F0C250C 004E7823 */ subu $t7, $v0, $t6 -/* 0F4F00 7F0C2510 01AF082A */ slt $at, $t5, $t7 -/* 0F4F04 7F0C2514 5020000E */ beql $at, $zero, .L7F0C2550 -/* 0F4F08 7F0C2518 8C6B29BC */ lw $t3, 0x29bc($v1) -/* 0F4F0C 7F0C251C 0FC230AB */ jal getMissiontimer -/* 0F4F10 7F0C2520 AFA80030 */ sw $t0, 0x30($sp) -/* 0F4F14 7F0C2524 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4F18 7F0C2528 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4F1C 7F0C252C 8CF80000 */ lw $t8, ($a3) -/* 0F4F20 7F0C2530 3C0A8007 */ lui $t2, %hi(g_playerPerm) # $t2, 0x8007 -/* 0F4F24 7F0C2534 8D4A8BC4 */ lw $t2, %lo(g_playerPerm)($t2) -/* 0F4F28 7F0C2538 8F1929EC */ lw $t9, 0x29ec($t8) -/* 0F4F2C 7F0C253C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4F30 7F0C2540 00594823 */ subu $t1, $v0, $t9 -/* 0F4F34 7F0C2544 AD49004C */ sw $t1, 0x4c($t2) -/* 0F4F38 7F0C2548 8CE30000 */ lw $v1, ($a3) -/* 0F4F3C 7F0C254C 8C6B29BC */ lw $t3, 0x29bc($v1) -.L7F0C2550: -/* 0F4F40 7F0C2550 83A4001B */ lb $a0, 0x1b($sp) -/* 0F4F44 7F0C2554 1160012F */ beqz $t3, .L7F0C2A14 -/* 0F4F48 7F0C2558 00000000 */ nop -/* 0F4F4C 7F0C255C 8FA40034 */ lw $a0, 0x34($sp) -/* 0F4F50 7F0C2560 0FC304F6 */ jal mpwatchIsPlayerPressingRight -/* 0F4F54 7F0C2564 AFA80030 */ sw $t0, 0x30($sp) -/* 0F4F58 7F0C2568 1040000E */ beqz $v0, .L7F0C25A4 -/* 0F4F5C 7F0C256C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4F60 7F0C2570 0FC304C0 */ jal mpwatchMenuCanGoRight -/* 0F4F64 7F0C2574 AFA80030 */ sw $t0, 0x30($sp) -/* 0F4F68 7F0C2578 1040000A */ beqz $v0, .L7F0C25A4 -/* 0F4F6C 7F0C257C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4F70 7F0C2580 0FC3052F */ jal mpwatchPlayBeep -/* 0F4F74 7F0C2584 00000000 */ nop -/* 0F4F78 7F0C2588 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4F7C 7F0C258C 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4F80 7F0C2590 8CE30000 */ lw $v1, ($a3) -/* 0F4F84 7F0C2594 8C6C29C0 */ lw $t4, 0x29c0($v1) -/* 0F4F88 7F0C2598 258E0001 */ addiu $t6, $t4, 1 -/* 0F4F8C 7F0C259C 10000112 */ b .L7F0C29E8 -/* 0F4F90 7F0C25A0 AC6E29C0 */ sw $t6, 0x29c0($v1) -.L7F0C25A4: -/* 0F4F94 7F0C25A4 8FA40034 */ lw $a0, 0x34($sp) -/* 0F4F98 7F0C25A8 0FC30512 */ jal mpwatchIsPlayerPressingLeft -/* 0F4F9C 7F0C25AC AFA80030 */ sw $t0, 0x30($sp) -/* 0F4FA0 7F0C25B0 1040000E */ beqz $v0, .L7F0C25EC -/* 0F4FA4 7F0C25B4 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4FA8 7F0C25B8 0FC304DB */ jal mpwatchMenuCanGoLeft -/* 0F4FAC 7F0C25BC AFA80030 */ sw $t0, 0x30($sp) -/* 0F4FB0 7F0C25C0 1040000A */ beqz $v0, .L7F0C25EC -/* 0F4FB4 7F0C25C4 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4FB8 7F0C25C8 0FC3052F */ jal mpwatchPlayBeep -/* 0F4FBC 7F0C25CC 00000000 */ nop -/* 0F4FC0 7F0C25D0 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4FC4 7F0C25D4 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4FC8 7F0C25D8 8CE30000 */ lw $v1, ($a3) -/* 0F4FCC 7F0C25DC 8C6D29C0 */ lw $t5, 0x29c0($v1) -/* 0F4FD0 7F0C25E0 25AFFFFF */ addiu $t7, $t5, -1 -/* 0F4FD4 7F0C25E4 10000100 */ b .L7F0C29E8 -/* 0F4FD8 7F0C25E8 AC6F29C0 */ sw $t7, 0x29c0($v1) -.L7F0C25EC: -/* 0F4FDC 7F0C25EC 8FA40034 */ lw $a0, 0x34($sp) -/* 0F4FE0 7F0C25F0 0FC304F6 */ jal mpwatchIsPlayerPressingRight -/* 0F4FE4 7F0C25F4 AFA80030 */ sw $t0, 0x30($sp) -/* 0F4FE8 7F0C25F8 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F4FEC 7F0C25FC 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F4FF0 7F0C2600 1040000E */ beqz $v0, .L7F0C263C -/* 0F4FF4 7F0C2604 8FA80030 */ lw $t0, 0x30($sp) -/* 0F4FF8 7F0C2608 8CF80000 */ lw $t8, ($a3) -/* 0F4FFC 7F0C260C 24010006 */ li $at, 6 -/* 0F5000 7F0C2610 8F1929C0 */ lw $t9, 0x29c0($t8) -/* 0F5004 7F0C2614 5721000A */ bnel $t9, $at, .L7F0C2640 -/* 0F5008 7F0C2618 8FA40034 */ lw $a0, 0x34($sp) -/* 0F500C 7F0C261C 0FC3052F */ jal mpwatchPlayBeep -/* 0F5010 7F0C2620 00000000 */ nop -/* 0F5014 7F0C2624 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5018 7F0C2628 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F501C 7F0C262C 8CEA0000 */ lw $t2, ($a3) -/* 0F5020 7F0C2630 24090001 */ li $t1, 1 -/* 0F5024 7F0C2634 100000EC */ b .L7F0C29E8 -/* 0F5028 7F0C2638 AD4929C4 */ sw $t1, 0x29c4($t2) -.L7F0C263C: -/* 0F502C 7F0C263C 8FA40034 */ lw $a0, 0x34($sp) -.L7F0C2640: -/* 0F5030 7F0C2640 0FC30512 */ jal mpwatchIsPlayerPressingLeft -/* 0F5034 7F0C2644 AFA80030 */ sw $t0, 0x30($sp) -/* 0F5038 7F0C2648 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F503C 7F0C264C 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F5040 7F0C2650 1040000D */ beqz $v0, .L7F0C2688 -/* 0F5044 7F0C2654 8FA80030 */ lw $t0, 0x30($sp) -/* 0F5048 7F0C2658 8CEB0000 */ lw $t3, ($a3) -/* 0F504C 7F0C265C 24010006 */ li $at, 6 -/* 0F5050 7F0C2660 8D6C29C0 */ lw $t4, 0x29c0($t3) -/* 0F5054 7F0C2664 55810009 */ bnel $t4, $at, .L7F0C268C -/* 0F5058 7F0C2668 83A4001B */ lb $a0, 0x1b($sp) -/* 0F505C 7F0C266C 0FC3052F */ jal mpwatchPlayBeep -/* 0F5060 7F0C2670 00000000 */ nop -/* 0F5064 7F0C2674 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5068 7F0C2678 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F506C 7F0C267C 8CEE0000 */ lw $t6, ($a3) -/* 0F5070 7F0C2680 100000D9 */ b .L7F0C29E8 -/* 0F5074 7F0C2684 ADC029C4 */ sw $zero, 0x29c4($t6) -.L7F0C2688: -/* 0F5078 7F0C2688 83A4001B */ lb $a0, 0x1b($sp) -.L7F0C268C: -/* 0F507C 7F0C268C 34058000 */ li $a1, 32768 -/* 0F5080 7F0C2690 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F5084 7F0C2694 AFA80030 */ sw $t0, 0x30($sp) -/* 0F5088 7F0C2698 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F508C 7F0C269C 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F5090 7F0C26A0 10400022 */ beqz $v0, .L7F0C272C -/* 0F5094 7F0C26A4 8FA80030 */ lw $t0, 0x30($sp) -/* 0F5098 7F0C26A8 8CED0000 */ lw $t5, ($a3) -/* 0F509C 7F0C26AC 24010004 */ li $at, 4 -/* 0F50A0 7F0C26B0 8DAF29C0 */ lw $t7, 0x29c0($t5) -/* 0F50A4 7F0C26B4 55E1001E */ bnel $t7, $at, .L7F0C2730 -/* 0F50A8 7F0C26B8 8CEA0000 */ lw $t2, ($a3) -/* 0F50AC 7F0C26BC 0FC3052F */ jal mpwatchPlayBeep -/* 0F50B0 7F0C26C0 00000000 */ nop -/* 0F50B4 7F0C26C4 3C038007 */ lui $v1, %hi(g_pausedFlag) # $v1, 0x8007 -/* 0F50B8 7F0C26C8 24633AF8 */ addiu $v1, %lo(g_pausedFlag) # addiu $v1, $v1, 0x3af8 -/* 0F50BC 7F0C26CC 8C780000 */ lw $t8, ($v1) -/* 0F50C0 7F0C26D0 24190001 */ li $t9, 1 -/* 0F50C4 7F0C26D4 17000009 */ bnez $t8, .L7F0C26FC -/* 0F50C8 7F0C26D8 00000000 */ nop -/* 0F50CC 7F0C26DC 0FC269A4 */ jal get_cur_playernum -/* 0F50D0 7F0C26E0 AC790000 */ sw $t9, ($v1) -/* 0F50D4 7F0C26E4 3C018007 */ lui $at, %hi(who_paused) # $at, 0x8007 -/* 0F50D8 7F0C26E8 AC223AFC */ sw $v0, %lo(who_paused)($at) -/* 0F50DC 7F0C26EC 0FC2FC0F */ jal lvlSetControlsLockedFlag -/* 0F50E0 7F0C26F0 24040001 */ li $a0, 1 -/* 0F50E4 7F0C26F4 100000BD */ b .L7F0C29EC -/* 0F50E8 7F0C26F8 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C26FC: -/* 0F50EC 7F0C26FC 0FC269A4 */ jal get_cur_playernum -/* 0F50F0 7F0C2700 00000000 */ nop -/* 0F50F4 7F0C2704 3C098007 */ lui $t1, %hi(who_paused) # $t1, 0x8007 -/* 0F50F8 7F0C2708 8D293AFC */ lw $t1, %lo(who_paused)($t1) -/* 0F50FC 7F0C270C 3C038007 */ lui $v1, %hi(g_pausedFlag) # $v1, 0x8007 -/* 0F5100 7F0C2710 24633AF8 */ addiu $v1, %lo(g_pausedFlag) # addiu $v1, $v1, 0x3af8 -/* 0F5104 7F0C2714 144900B4 */ bne $v0, $t1, .L7F0C29E8 -/* 0F5108 7F0C2718 00002025 */ move $a0, $zero -/* 0F510C 7F0C271C 0FC2FC0F */ jal lvlSetControlsLockedFlag -/* 0F5110 7F0C2720 AC600000 */ sw $zero, ($v1) -/* 0F5114 7F0C2724 100000B1 */ b .L7F0C29EC -/* 0F5118 7F0C2728 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C272C: -/* 0F511C 7F0C272C 8CEA0000 */ lw $t2, ($a3) -.L7F0C2730: -/* 0F5120 7F0C2730 24060007 */ li $a2, 7 -/* 0F5124 7F0C2734 83A4001B */ lb $a0, 0x1b($sp) -/* 0F5128 7F0C2738 8D4B29C0 */ lw $t3, 0x29c0($t2) -/* 0F512C 7F0C273C 34059000 */ li $a1, 36864 -/* 0F5130 7F0C2740 14CB0011 */ bne $a2, $t3, .L7F0C2788 -/* 0F5134 7F0C2744 00000000 */ nop -/* 0F5138 7F0C2748 83A4001B */ lb $a0, 0x1b($sp) -/* 0F513C 7F0C274C 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F5140 7F0C2750 24054000 */ li $a1, 16384 -/* 0F5144 7F0C2754 504000A5 */ beql $v0, $zero, .L7F0C29EC -/* 0F5148 7F0C2758 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F514C 7F0C275C 0FC3052F */ jal mpwatchPlayBeep -/* 0F5150 7F0C2760 00000000 */ nop -/* 0F5154 7F0C2764 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5158 7F0C2768 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F515C 7F0C276C 8CEE0000 */ lw $t6, ($a3) -/* 0F5160 7F0C2770 240C0001 */ li $t4, 1 -/* 0F5164 7F0C2774 240D0003 */ li $t5, 3 -/* 0F5168 7F0C2778 ADCC29BC */ sw $t4, 0x29bc($t6) -/* 0F516C 7F0C277C 8CEF0000 */ lw $t7, ($a3) -/* 0F5170 7F0C2780 10000099 */ b .L7F0C29E8 -/* 0F5174 7F0C2784 ADED29C0 */ sw $t5, 0x29c0($t7) -.L7F0C2788: -/* 0F5178 7F0C2788 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F517C 7F0C278C AFA80030 */ sw $t0, 0x30($sp) -/* 0F5180 7F0C2790 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5184 7F0C2794 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F5188 7F0C2798 1040000E */ beqz $v0, .L7F0C27D4 -/* 0F518C 7F0C279C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F5190 7F0C27A0 8CE30000 */ lw $v1, ($a3) -/* 0F5194 7F0C27A4 24010005 */ li $at, 5 -/* 0F5198 7F0C27A8 8C6229C0 */ lw $v0, 0x29c0($v1) -/* 0F519C 7F0C27AC 10410002 */ beq $v0, $at, .L7F0C27B8 -/* 0F51A0 7F0C27B0 24010006 */ li $at, 6 -/* 0F51A4 7F0C27B4 1441000D */ bne $v0, $at, .L7F0C27EC -.L7F0C27B8: -/* 0F51A8 7F0C27B8 24010006 */ li $at, 6 -/* 0F51AC 7F0C27BC 54410006 */ bnel $v0, $at, .L7F0C27D8 -/* 0F51B0 7F0C27C0 83A4001B */ lb $a0, 0x1b($sp) -/* 0F51B4 7F0C27C4 8C7829C4 */ lw $t8, 0x29c4($v1) -/* 0F51B8 7F0C27C8 24010001 */ li $at, 1 -/* 0F51BC 7F0C27CC 17010007 */ bne $t8, $at, .L7F0C27EC -/* 0F51C0 7F0C27D0 00000000 */ nop -.L7F0C27D4: -/* 0F51C4 7F0C27D4 83A4001B */ lb $a0, 0x1b($sp) -.L7F0C27D8: -/* 0F51C8 7F0C27D8 24054000 */ li $a1, 16384 -/* 0F51CC 7F0C27DC 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F51D0 7F0C27E0 AFA80030 */ sw $t0, 0x30($sp) -/* 0F51D4 7F0C27E4 10400052 */ beqz $v0, .L7F0C2930 -/* 0F51D8 7F0C27E8 8FA80030 */ lw $t0, 0x30($sp) -.L7F0C27EC: -/* 0F51DC 7F0C27EC 0FC3052F */ jal mpwatchPlayBeep -/* 0F51E0 7F0C27F0 AFA80030 */ sw $t0, 0x30($sp) -/* 0F51E4 7F0C27F4 3C198007 */ lui $t9, %hi(g_gameOverFlag) # $t9, 0x8007 -/* 0F51E8 7F0C27F8 8F393AE4 */ lw $t9, %lo(g_gameOverFlag)($t9) -/* 0F51EC 7F0C27FC 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F51F0 7F0C2800 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F51F4 7F0C2804 24060007 */ li $a2, 7 -/* 0F51F8 7F0C2808 13200039 */ beqz $t9, .L7F0C28F0 -/* 0F51FC 7F0C280C 8FA80030 */ lw $t0, 0x30($sp) -/* 0F5200 7F0C2810 8CE90000 */ lw $t1, ($a3) -/* 0F5204 7F0C2814 00001825 */ move $v1, $zero -/* 0F5208 7F0C2818 00002025 */ move $a0, $zero -/* 0F520C 7F0C281C 1900002E */ blez $t0, .L7F0C28D8 -/* 0F5210 7F0C2820 AD2629C0 */ sw $a2, 0x29c0($t1) -/* 0F5214 7F0C2824 31070003 */ andi $a3, $t0, 3 -/* 0F5218 7F0C2828 10E0000E */ beqz $a3, .L7F0C2864 -/* 0F521C 7F0C282C 00E02825 */ move $a1, $a3 -/* 0F5220 7F0C2830 3C0B8007 */ lui $t3, %hi(g_playerPointers) # $t3, 0x8007 -/* 0F5224 7F0C2834 256B89F0 */ addiu $t3, %lo(g_playerPointers) # addiu $t3, $t3, -0x7610 -/* 0F5228 7F0C2838 00005080 */ sll $t2, $zero, 2 -/* 0F522C 7F0C283C 014B1021 */ addu $v0, $t2, $t3 -.L7F0C2840: -/* 0F5230 7F0C2840 8C4C0000 */ lw $t4, ($v0) -/* 0F5234 7F0C2844 24840001 */ addiu $a0, $a0, 1 -/* 0F5238 7F0C2848 8D8E29C0 */ lw $t6, 0x29c0($t4) -/* 0F523C 7F0C284C 14CE0002 */ bne $a2, $t6, .L7F0C2858 -/* 0F5240 7F0C2850 00000000 */ nop -/* 0F5244 7F0C2854 24630001 */ addiu $v1, $v1, 1 -.L7F0C2858: -/* 0F5248 7F0C2858 14A4FFF9 */ bne $a1, $a0, .L7F0C2840 -/* 0F524C 7F0C285C 24420004 */ addiu $v0, $v0, 4 -/* 0F5250 7F0C2860 1088001D */ beq $a0, $t0, .L7F0C28D8 -.L7F0C2864: -/* 0F5254 7F0C2864 3C0F8007 */ lui $t7, %hi(g_playerPointers) # $t7, 0x8007 -/* 0F5258 7F0C2868 25EF89F0 */ addiu $t7, %lo(g_playerPointers) # addiu $t7, $t7, -0x7610 -/* 0F525C 7F0C286C 00046880 */ sll $t5, $a0, 2 -/* 0F5260 7F0C2870 0008C080 */ sll $t8, $t0, 2 -/* 0F5264 7F0C2874 030F2821 */ addu $a1, $t8, $t7 -/* 0F5268 7F0C2878 01AF1021 */ addu $v0, $t5, $t7 -/* 0F526C 7F0C287C 8C590000 */ lw $t9, ($v0) -.L7F0C2880: -/* 0F5270 7F0C2880 8F2929C0 */ lw $t1, 0x29c0($t9) -/* 0F5274 7F0C2884 54C90003 */ bnel $a2, $t1, .L7F0C2894 -/* 0F5278 7F0C2888 8C4A0004 */ lw $t2, 4($v0) -/* 0F527C 7F0C288C 24630001 */ addiu $v1, $v1, 1 -/* 0F5280 7F0C2890 8C4A0004 */ lw $t2, 4($v0) -.L7F0C2894: -/* 0F5284 7F0C2894 8D4B29C0 */ lw $t3, 0x29c0($t2) -/* 0F5288 7F0C2898 54CB0003 */ bnel $a2, $t3, .L7F0C28A8 -/* 0F528C 7F0C289C 8C4C0008 */ lw $t4, 8($v0) -/* 0F5290 7F0C28A0 24630001 */ addiu $v1, $v1, 1 -/* 0F5294 7F0C28A4 8C4C0008 */ lw $t4, 8($v0) -.L7F0C28A8: -/* 0F5298 7F0C28A8 8D8E29C0 */ lw $t6, 0x29c0($t4) -/* 0F529C 7F0C28AC 54CE0003 */ bnel $a2, $t6, .L7F0C28BC -/* 0F52A0 7F0C28B0 8C4D000C */ lw $t5, 0xc($v0) -/* 0F52A4 7F0C28B4 24630001 */ addiu $v1, $v1, 1 -/* 0F52A8 7F0C28B8 8C4D000C */ lw $t5, 0xc($v0) -.L7F0C28BC: -/* 0F52AC 7F0C28BC 24420010 */ addiu $v0, $v0, 0x10 -/* 0F52B0 7F0C28C0 8DB829C0 */ lw $t8, 0x29c0($t5) -/* 0F52B4 7F0C28C4 14D80002 */ bne $a2, $t8, .L7F0C28D0 -/* 0F52B8 7F0C28C8 00000000 */ nop -/* 0F52BC 7F0C28CC 24630001 */ addiu $v1, $v1, 1 -.L7F0C28D0: -/* 0F52C0 7F0C28D0 5445FFEB */ bnel $v0, $a1, .L7F0C2880 -/* 0F52C4 7F0C28D4 8C590000 */ lw $t9, ($v0) -.L7F0C28D8: -/* 0F52C8 7F0C28D8 54680044 */ bnel $v1, $t0, .L7F0C29EC -/* 0F52CC 7F0C28DC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F52D0 7F0C28E0 0C001766 */ jal bossSetLoadedStage -/* 0F52D4 7F0C28E4 2404005A */ li $a0, 90 -/* 0F52D8 7F0C28E8 10000040 */ b .L7F0C29EC -/* 0F52DC 7F0C28EC 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C28F0: -/* 0F52E0 7F0C28F0 8CEF0000 */ lw $t7, ($a3) -/* 0F52E4 7F0C28F4 24190032 */ li $t9, 50 -/* 0F52E8 7F0C28F8 ADE029BC */ sw $zero, 0x29bc($t7) -/* 0F52EC 7F0C28FC 8CE90000 */ lw $t1, ($a3) -/* 0F52F0 7F0C2900 0FC269A4 */ jal get_cur_playernum -/* 0F52F4 7F0C2904 AD3929F8 */ sw $t9, 0x29f8($t1) -/* 0F52F8 7F0C2908 3C0A8007 */ lui $t2, %hi(who_paused) # $t2, 0x8007 -/* 0F52FC 7F0C290C 8D4A3AFC */ lw $t2, %lo(who_paused)($t2) -/* 0F5300 7F0C2910 3C038007 */ lui $v1, %hi(g_pausedFlag) # $v1, 0x8007 -/* 0F5304 7F0C2914 24633AF8 */ addiu $v1, %lo(g_pausedFlag) # addiu $v1, $v1, 0x3af8 -/* 0F5308 7F0C2918 144A0033 */ bne $v0, $t2, .L7F0C29E8 -/* 0F530C 7F0C291C 00002025 */ move $a0, $zero -/* 0F5310 7F0C2920 0FC2FC0F */ jal lvlSetControlsLockedFlag -/* 0F5314 7F0C2924 AC600000 */ sw $zero, ($v1) -/* 0F5318 7F0C2928 10000030 */ b .L7F0C29EC -/* 0F531C 7F0C292C 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C2930: -/* 0F5320 7F0C2930 83A4001B */ lb $a0, 0x1b($sp) -/* 0F5324 7F0C2934 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F5328 7F0C2938 34059000 */ li $a1, 36864 -/* 0F532C 7F0C293C 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5330 7F0C2940 10400010 */ beqz $v0, .L7F0C2984 -/* 0F5334 7F0C2944 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F5338 7F0C2948 8CEB0000 */ lw $t3, ($a3) -/* 0F533C 7F0C294C 24010005 */ li $at, 5 -/* 0F5340 7F0C2950 8D6C29C0 */ lw $t4, 0x29c0($t3) -/* 0F5344 7F0C2954 5581000C */ bnel $t4, $at, .L7F0C2988 -/* 0F5348 7F0C2958 83A4001B */ lb $a0, 0x1b($sp) -/* 0F534C 7F0C295C 0FC3052F */ jal mpwatchPlayBeep -/* 0F5350 7F0C2960 00000000 */ nop -/* 0F5354 7F0C2964 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5358 7F0C2968 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F535C 7F0C296C 8CED0000 */ lw $t5, ($a3) -/* 0F5360 7F0C2970 240E0006 */ li $t6, 6 -/* 0F5364 7F0C2974 ADAE29C0 */ sw $t6, 0x29c0($t5) -/* 0F5368 7F0C2978 8CF80000 */ lw $t8, ($a3) -/* 0F536C 7F0C297C 1000001A */ b .L7F0C29E8 -/* 0F5370 7F0C2980 AF0029C4 */ sw $zero, 0x29c4($t8) -.L7F0C2984: -/* 0F5374 7F0C2984 83A4001B */ lb $a0, 0x1b($sp) -.L7F0C2988: -/* 0F5378 7F0C2988 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F537C 7F0C298C 34059000 */ li $a1, 36864 -/* 0F5380 7F0C2990 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5384 7F0C2994 10400014 */ beqz $v0, .L7F0C29E8 -/* 0F5388 7F0C2998 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F538C 7F0C299C 8CE30000 */ lw $v1, ($a3) -/* 0F5390 7F0C29A0 24010006 */ li $at, 6 -/* 0F5394 7F0C29A4 8C6F29C0 */ lw $t7, 0x29c0($v1) -/* 0F5398 7F0C29A8 55E10010 */ bnel $t7, $at, .L7F0C29EC -/* 0F539C 7F0C29AC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F53A0 7F0C29B0 8C7929C4 */ lw $t9, 0x29c4($v1) -/* 0F53A4 7F0C29B4 24010001 */ li $at, 1 -/* 0F53A8 7F0C29B8 5721000C */ bnel $t9, $at, .L7F0C29EC -/* 0F53AC 7F0C29BC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F53B0 7F0C29C0 0FC3052F */ jal mpwatchPlayBeep -/* 0F53B4 7F0C29C4 00000000 */ nop -/* 0F53B8 7F0C29C8 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F53BC 7F0C29CC 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F53C0 7F0C29D0 8CE90000 */ lw $t1, ($a3) -/* 0F53C4 7F0C29D4 00002025 */ move $a0, $zero -/* 0F53C8 7F0C29D8 AD2029BC */ sw $zero, 0x29bc($t1) -/* 0F53CC 7F0C29DC 8CEA0000 */ lw $t2, ($a3) -/* 0F53D0 7F0C29E0 0FC30684 */ jal end_game_and_show_game_over_menu -/* 0F53D4 7F0C29E4 AD4029F8 */ sw $zero, 0x29f8($t2) -.L7F0C29E8: -/* 0F53D8 7F0C29E8 8FA2002C */ lw $v0, 0x2c($sp) -.L7F0C29EC: -/* 0F53DC 7F0C29EC 3C038007 */ lui $v1, %hi(g_CurrentPlayer) # $v1, 0x8007 -/* 0F53E0 7F0C29F0 8C638BC0 */ lw $v1, %lo(g_CurrentPlayer)($v1) -/* 0F53E4 7F0C29F4 10400002 */ beqz $v0, .L7F0C2A00 -/* 0F53E8 7F0C29F8 2401FFFF */ li $at, -1 -/* 0F53EC 7F0C29FC 14410003 */ bne $v0, $at, .L7F0C2A0C -.L7F0C2A00: -/* 0F53F0 7F0C2A00 240B0001 */ li $t3, 1 -/* 0F53F4 7F0C2A04 1000001A */ b .L7F0C2A70 -/* 0F53F8 7F0C2A08 AC6B29C8 */ sw $t3, 0x29c8($v1) -.L7F0C2A0C: -/* 0F53FC 7F0C2A0C 10000018 */ b .L7F0C2A70 -/* 0F5400 7F0C2A10 AC6029C8 */ sw $zero, 0x29c8($v1) -.L7F0C2A14: -/* 0F5404 7F0C2A14 0C002C48 */ jal joyGetButtonsPressedThisFrame -/* 0F5408 7F0C2A18 24051000 */ li $a1, 4096 -/* 0F540C 7F0C2A1C 50400015 */ beql $v0, $zero, .L7F0C2A74 -/* 0F5410 7F0C2A20 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F5414 7F0C2A24 0FC3052F */ jal mpwatchPlayBeep -/* 0F5418 7F0C2A28 00000000 */ nop -/* 0F541C 7F0C2A2C 3C078007 */ lui $a3, %hi(g_CurrentPlayer) # $a3, 0x8007 -/* 0F5420 7F0C2A30 24E78BC0 */ addiu $a3, %lo(g_CurrentPlayer) # addiu $a3, $a3, -0x7440 -/* 0F5424 7F0C2A34 8CEE0000 */ lw $t6, ($a3) -/* 0F5428 7F0C2A38 240C0001 */ li $t4, 1 -/* 0F542C 7F0C2A3C 240D0003 */ li $t5, 3 -/* 0F5430 7F0C2A40 ADCC29BC */ sw $t4, 0x29bc($t6) -/* 0F5434 7F0C2A44 8CF80000 */ lw $t8, ($a3) -/* 0F5438 7F0C2A48 240F0001 */ li $t7, 1 -/* 0F543C 7F0C2A4C AF0D29C0 */ sw $t5, 0x29c0($t8) -/* 0F5440 7F0C2A50 8CF90000 */ lw $t9, ($a3) -/* 0F5444 7F0C2A54 AF2F29C8 */ sw $t7, 0x29c8($t9) -/* 0F5448 7F0C2A58 8CE30000 */ lw $v1, ($a3) -/* 0F544C 7F0C2A5C C46400DC */ lwc1 $f4, 0xdc($v1) -/* 0F5450 7F0C2A60 E46400EC */ swc1 $f4, 0xec($v1) -/* 0F5454 7F0C2A64 8CE30000 */ lw $v1, ($a3) -/* 0F5458 7F0C2A68 C46600E0 */ lwc1 $f6, 0xe0($v1) -/* 0F545C 7F0C2A6C E46600F0 */ swc1 $f6, 0xf0($v1) -.L7F0C2A70: -/* 0F5460 7F0C2A70 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0C2A74: -/* 0F5464 7F0C2A74 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0F5468 7F0C2A78 03E00008 */ jr $ra -/* 0F546C 7F0C2A7C 00000000 */ nop -) -#endif -#endif Gfx *display_text_for_playerdata_on_MP_menu(Gfx *gdl, s32 x, s32 y, u16* arg3, TEXTCOLORS text_color) { diff --git a/src/game/mp_watch.h b/src/game/mp_watch.h index 873aadc9..f0d38805 100644 --- a/src/game/mp_watch.h +++ b/src/game/mp_watch.h @@ -11,16 +11,33 @@ typedef enum TEXTCOLORS { BLUE_HIGHLIGHT } TEXTCOLORS; -s32 sub_GAME_7F0C2024(int param_1, int param_2, int param_3, int param_4, int param_5); +struct AwardMetrics { + s32 num_shots; // 0x00 + s32 num_headshots; // 0x04 + s32 num_kills; // 0x08 + s32 num_deaths; // 0x0c + s32 num_suicides; // 0x10 + f32 ks_ratio; // 0x14 + f32 kd_ratio; // 0x18 + s32 damage_to_backside; // 0x1c + s32 time_other_players_on_screen; // 0x20 + f32 avg_km_per_hour; // 0x24 + f32 body_armor_pickups; // 0x28 + u32 awards; // 0x2c + s32 longest_inning; // 0x30 + s32 shortest_inning; // 0x34 +}; -s32 sub_GAME_7F0C2114(int param_1, int param_2, int param_3, int param_4, int param_5); +s32 mpFindMaxInt(int param_1, int param_2, int param_3, int param_4, int param_5); + +s32 mpFindMinInt(int param_1, int param_2, int param_3, int param_4, int param_5); void mpwatchUnpauseGame(void); Gfx *display_text_for_playerdata_on_MP_menu(Gfx *gdl, s32 x, s32 y, u16* arg3, TEXTCOLORS text_color); s32 checkGamePaused(void); -void end_game_and_show_game_over_menu(int arg0); +void mpCalculateAwards(int arg0); s32 get_points_for_mp_player(s32 arg0); void mpwatchSetStopPlayFlag(void); Gfx * mp_watch_menu_display(Gfx *arg0); diff --git a/src/game/ob.c b/src/game/ob.c index 7b438b75..73788c6e 100644 --- a/src/game/ob.c +++ b/src/game/ob.c @@ -10,7 +10,7 @@ //bss //800888b0 -struct resource_lookup_data_entry resource_lookup_data_array[OBJ_INDEX_MAX]; + resource_lookup_data_entry resource_lookup_data_array[OBJ_INDEX_MAX]; // data @@ -32,10 +32,10 @@ s32 file_entry_max = OBJ_INDEX_END; -void load_resource(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata) +void load_resource(u8 *ptrdata, s32 bytes, fileentry *srcfile, resource_lookup_data_entry *lookupdata) { u8 *source; - u8 buffer[0x2100]; + u8 buffer[0x2100]; s32 unused; @@ -47,16 +47,30 @@ void load_resource(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct res source = (ptrdata + bytes) - ((lookupdata->rom_size + 7) & -8); if ((u32) (source - ptrdata) < 8U) { - lookupdata->pc_remaining = 0; + lookupdata->poolRemaining = 0; } else { +#if DEBUG + char sp54[128]; + u32 stack[2]; +#endif + romCopy(source, srcfile->hw_address, lookupdata->rom_size); - lookupdata->pc_remaining = decompressdata(source, ptrdata, buffer);; + lookupdata->poolRemaining = decompressdata(source, ptrdata, buffer);; +#if DEBUG + if (result == 0) + { + sprintf(sp54, "DMA-Crash %s %d Ram: %02x%02x%02x%02x%02x%02x%02x%02x", "ob.c", 204, scratch[0], scratch[1], scratch[2], scratch[3], scratch[4], scratch[5], scratch[6], scratch[7]); + crashSetMessage(sp54); + CRASH(); + } +#endif + } } -void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata) +void resource_load_from_indy(u8 *ptrdata, s32 bytes, fileentry *srcfile, resource_lookup_data_entry *lookupdata) { u8 *pPayload; u8 buffer[8448]; @@ -71,9 +85,9 @@ void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, } indycommHostCheckFileExists(srcfile->filename, &lookupdata->pc_size); pPayload = (ptrdata + bytes) - ((lookupdata->pc_size + 7) & -8); - if ((pPayload - ptrdata) < (u32)8) + if ((pPayload - ptrdata) < 8U) { - lookupdata->pc_remaining = 0; + lookupdata->poolRemaining = 0; } else { @@ -87,7 +101,7 @@ void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, bcopy(pPayload, ptrdata, lookupdata->pc_size); size = lookupdata->pc_size; } - lookupdata->pc_remaining = size; + lookupdata->poolRemaining = size; } } @@ -104,7 +118,7 @@ void obInitDebugNoticeList(void) for (i = 0; i < (file_entry_max - 1); i++) { resource_lookup_data_array[i].rom_size = (file_resource_table[i+1].hw_address - file_resource_table[i].hw_address); - resource_lookup_data_array[i].pc_remaining = 0; + resource_lookup_data_array[i].poolRemaining = 0; resource_lookup_data_array[i].pc_size = 0; resource_lookup_data_array[i].rom_remaining = 0; } @@ -167,7 +181,7 @@ glabel obInitDebugNoticeList void obLoadBGFileBytesAtOffset(u8 *bgname, u8 *target, s32 offset, s32 len) { s32 index; - struct fileentry *fileentry; + fileentry *fileentry; index = get_index_num_of_named_resource(bgname); fileentry = &file_resource_table[index]; @@ -201,14 +215,14 @@ void _load_resource_index_to_membank(int index,s32 param_2,u8 *ptrdata,int size) } #endif -void _load_resource_named_to_membank(u8 *filename, s32 param_2, s32 size, u8 bank) +void _load_resource_named_to_membank(char *filename, FILELOADMETHOD loadMethod, s32 size, u8 bank) { - load_rom_resource_index_to_membank(get_index_num_of_named_resource(filename), param_2, size, bank); + load_rom_resource_index_to_membank(get_index_num_of_named_resource(filename), loadMethod, size, bank); } -void _load_resource_named_to_buffer(u8 *filename, s32 bank, u8 *ptrdata, int size) +void _load_resource_named_to_buffer(char *filename, FILELOADMETHOD loadMethod, u8 *ptrdata, s32 size) { - load_resource_index_to_buffer(get_index_num_of_named_resource(filename), bank, ptrdata, size); + load_resource_index_to_buffer(get_index_num_of_named_resource(filename), loadMethod, ptrdata, size); } #if defined(LEFTOVERDEBUG) @@ -220,7 +234,7 @@ void _load_resource_named_to_buffer(u8 *filename, s32 bank, u8 *ptrdata, int siz void obLoadBGFileBytesAtOffset(u8 *bgname, u8 *target, s32 offset, s32 len) { s32 index; - struct fileentry *fileentry; + fileentry *fileentry; index = get_index_num_of_named_resource(bgname); fileentry = &file_resource_table[index]; @@ -241,229 +255,101 @@ void obLoadBGFileBytesAtOffset(u8 *bgname, u8 *target, s32 offset, s32 len) -#ifdef NONMATCHING -u8 * load_rom_resource_index_to_membank(s32 index,s32 param_2,s32 size,u8 bank) +void *load_rom_resource_index_to_membank(s32 index, FILELOADMETHOD loadMethod, s32 size, u8 bank) //#MATCH https://decomp.me/scratch/uqiBe { - u32 unk; - u32 bytes; - u8 *ptrdata; - - if (((param_2 == 0) || (param_2 == 1)) || (param_2 == 2)) { - bytes = resource_lookup_data_array[index].pc_remaining; - if (bytes == 0) { - bytes = mempGetBankSizeLeft(bank); - resource_lookup_data_array[index].pc_remaining = bytes; - } - ptrdata = mempAllocBytesInBank(bytes,bank); - bytes = resource_lookup_data_array[index].pc_remaining; - resource_lookup_data_array[index].rom_remaining = bytes; - if (file_resource_table[index].hw_address == 0) { - resource_load_from_indy(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); - } - else { - load_resource(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); - } - if (param_2 != 0) { - mempAddEntryOfSizeToBank(ptrdata, resource_lookup_data_array[index].pc_remaining, bank); - } - } - else { - bytes = resource_lookup_data_array[index].pc_remaining; - if (bytes == 0) { - bytes = resource_lookup_data_array[index].rom_size; - if (bytes == 0) { - bytes = resource_lookup_data_array[index].pc_size; - resource_lookup_data_array[index].pc_remaining = bytes; - } - else { - resource_lookup_data_array[index].pc_remaining = bytes; - } - } - ptrdata = mempAllocBytesInBank(bytes,bank); - resource_lookup_data_array[index].rom_remaining = - resource_lookup_data_array[index].pc_remaining; - if (file_resource_table[index].hw_address == 0) { - resource_load_from_indy(ptrdata, 0, &file_resource_table[index], &resource_lookup_data_array[index]); - } - else { - load_resource(ptrdata,0, &file_resource_table[index], &resource_lookup_data_array[index]); - } - if (size == 0) { - resource_lookup_data_array[index].loaded_bank = bank; - } - } - return ptrdata; -} -#else -GLOBAL_ASM( -.text -glabel load_rom_resource_index_to_membank -/* 0F193C 7F0BCE0C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0F1940 7F0BCE10 AFBF001C */ sw $ra, 0x1c($sp) -/* 0F1944 7F0BCE14 AFB10018 */ sw $s1, 0x18($sp) -/* 0F1948 7F0BCE18 AFB00014 */ sw $s0, 0x14($sp) -/* 0F194C 7F0BCE1C AFA40030 */ sw $a0, 0x30($sp) -/* 0F1950 7F0BCE20 AFA50034 */ sw $a1, 0x34($sp) -/* 0F1954 7F0BCE24 AFA60038 */ sw $a2, 0x38($sp) -/* 0F1958 7F0BCE28 10A00006 */ beqz $a1, .L7F0BCE44 -/* 0F195C 7F0BCE2C AFA7003C */ sw $a3, 0x3c($sp) -/* 0F1960 7F0BCE30 24010001 */ li $at, 1 -/* 0F1964 7F0BCE34 10A10003 */ beq $a1, $at, .L7F0BCE44 -/* 0F1968 7F0BCE38 24010002 */ li $at, 2 -/* 0F196C 7F0BCE3C 14A10033 */ bne $a1, $at, .L7F0BCF0C -/* 0F1970 7F0BCE40 8FAD0030 */ lw $t5, 0x30($sp) -.L7F0BCE44: -/* 0F1974 7F0BCE44 8FAF0030 */ lw $t7, 0x30($sp) -/* 0F1978 7F0BCE48 3C198009 */ lui $t9, %hi(resource_lookup_data_array) -/* 0F197C 7F0BCE4C 273988B0 */ addiu $t9, %lo(resource_lookup_data_array) # addiu $t9, $t9, -0x7750 -/* 0F1980 7F0BCE50 000FC080 */ sll $t8, $t7, 2 -/* 0F1984 7F0BCE54 030FC021 */ addu $t8, $t8, $t7 -/* 0F1988 7F0BCE58 0018C080 */ sll $t8, $t8, 2 -/* 0F198C 7F0BCE5C 03198821 */ addu $s1, $t8, $t9 -/* 0F1990 7F0BCE60 8E300004 */ lw $s0, 4($s1) -/* 0F1994 7F0BCE64 56000006 */ bnezl $s0, .L7F0BCE80 -/* 0F1998 7F0BCE68 02002025 */ move $a0, $s0 -/* 0F199C 7F0BCE6C 0C002644 */ jal mempGetBankSizeLeft -/* 0F19A0 7F0BCE70 93A4003F */ lbu $a0, 0x3f($sp) -/* 0F19A4 7F0BCE74 AE220004 */ sw $v0, 4($s1) -/* 0F19A8 7F0BCE78 00408025 */ move $s0, $v0 -/* 0F19AC 7F0BCE7C 02002025 */ move $a0, $s0 -.L7F0BCE80: -/* 0F19B0 7F0BCE80 0C0025C8 */ jal mempAllocBytesInBank -/* 0F19B4 7F0BCE84 93A5003F */ lbu $a1, 0x3f($sp) -/* 0F19B8 7F0BCE88 8E300004 */ lw $s0, 4($s1) -/* 0F19BC 7F0BCE8C 3C0A8004 */ lui $t2, %hi(file_resource_table) -/* 0F19C0 7F0BCE90 254A6054 */ addiu $t2, %lo(file_resource_table) # addiu $t2, $t2, 0x6054 -/* 0F19C4 7F0BCE94 AE30000C */ sw $s0, 0xc($s1) -/* 0F19C8 7F0BCE98 8FA80030 */ lw $t0, 0x30($sp) -/* 0F19CC 7F0BCE9C 00402025 */ move $a0, $v0 -/* 0F19D0 7F0BCEA0 02203825 */ move $a3, $s1 -/* 0F19D4 7F0BCEA4 00084880 */ sll $t1, $t0, 2 -/* 0F19D8 7F0BCEA8 01284823 */ subu $t1, $t1, $t0 -/* 0F19DC 7F0BCEAC 00094880 */ sll $t1, $t1, 2 -/* 0F19E0 7F0BCEB0 012A3021 */ addu $a2, $t1, $t2 -/* 0F19E4 7F0BCEB4 8CCB0008 */ lw $t3, 8($a2) -/* 0F19E8 7F0BCEB8 02002825 */ move $a1, $s0 -/* 0F19EC 7F0BCEBC 15600007 */ bnez $t3, .L7F0BCEDC -/* 0F19F0 7F0BCEC0 00000000 */ nop -/* 0F19F4 7F0BCEC4 02002825 */ move $a1, $s0 -/* 0F19F8 7F0BCEC8 02203825 */ move $a3, $s1 -/* 0F19FC 7F0BCECC 0FC2F2CD */ jal resource_load_from_indy -/* 0F1A00 7F0BCED0 AFA20024 */ sw $v0, 0x24($sp) -/* 0F1A04 7F0BCED4 10000004 */ b .L7F0BCEE8 -/* 0F1A08 7F0BCED8 8FB00024 */ lw $s0, 0x24($sp) -.L7F0BCEDC: -/* 0F1A0C 7F0BCEDC 0FC2F2A8 */ jal load_resource -/* 0F1A10 7F0BCEE0 AFA40024 */ sw $a0, 0x24($sp) -/* 0F1A14 7F0BCEE4 8FB00024 */ lw $s0, 0x24($sp) -.L7F0BCEE8: -/* 0F1A18 7F0BCEE8 8FAC0034 */ lw $t4, 0x34($sp) -/* 0F1A1C 7F0BCEEC 02002025 */ move $a0, $s0 -/* 0F1A20 7F0BCEF0 93A6003F */ lbu $a2, 0x3f($sp) -/* 0F1A24 7F0BCEF4 51800035 */ beql $t4, $zero, .L7F0BCFCC -/* 0F1A28 7F0BCEF8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F1A2C 7F0BCEFC 0C002601 */ jal mempAddEntryOfSizeToBank -/* 0F1A30 7F0BCF00 8E250004 */ lw $a1, 4($s1) -/* 0F1A34 7F0BCF04 10000031 */ b .L7F0BCFCC -/* 0F1A38 7F0BCF08 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0BCF0C: -/* 0F1A3C 7F0BCF0C 000D7080 */ sll $t6, $t5, 2 -/* 0F1A40 7F0BCF10 01CD7021 */ addu $t6, $t6, $t5 -/* 0F1A44 7F0BCF14 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) -/* 0F1A48 7F0BCF18 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 -/* 0F1A4C 7F0BCF1C 000E7080 */ sll $t6, $t6, 2 -/* 0F1A50 7F0BCF20 01CF8821 */ addu $s1, $t6, $t7 -/* 0F1A54 7F0BCF24 8E300004 */ lw $s0, 4($s1) -/* 0F1A58 7F0BCF28 56000009 */ bnezl $s0, .L7F0BCF50 -/* 0F1A5C 7F0BCF2C 02002025 */ move $a0, $s0 -/* 0F1A60 7F0BCF30 8E220000 */ lw $v0, ($s1) -/* 0F1A64 7F0BCF34 10400003 */ beqz $v0, .L7F0BCF44 -/* 0F1A68 7F0BCF38 00408025 */ move $s0, $v0 -/* 0F1A6C 7F0BCF3C 10000003 */ b .L7F0BCF4C -/* 0F1A70 7F0BCF40 AE220004 */ sw $v0, 4($s1) -.L7F0BCF44: -/* 0F1A74 7F0BCF44 8E300008 */ lw $s0, 8($s1) -/* 0F1A78 7F0BCF48 AE300004 */ sw $s0, 4($s1) -.L7F0BCF4C: -/* 0F1A7C 7F0BCF4C 02002025 */ move $a0, $s0 -.L7F0BCF50: -/* 0F1A80 7F0BCF50 0C0025C8 */ jal mempAllocBytesInBank -/* 0F1A84 7F0BCF54 93A5003F */ lbu $a1, 0x3f($sp) -/* 0F1A88 7F0BCF58 8E390004 */ lw $t9, 4($s1) -/* 0F1A8C 7F0BCF5C 3C0A8004 */ lui $t2, %hi(file_resource_table) -/* 0F1A90 7F0BCF60 254A6054 */ addiu $t2, %lo(file_resource_table) # addiu $t2, $t2, 0x6054 -/* 0F1A94 7F0BCF64 AE39000C */ sw $t9, 0xc($s1) -/* 0F1A98 7F0BCF68 8FA80030 */ lw $t0, 0x30($sp) -/* 0F1A9C 7F0BCF6C 00408025 */ move $s0, $v0 -/* 0F1AA0 7F0BCF70 02203825 */ move $a3, $s1 -/* 0F1AA4 7F0BCF74 00084880 */ sll $t1, $t0, 2 -/* 0F1AA8 7F0BCF78 01284823 */ subu $t1, $t1, $t0 -/* 0F1AAC 7F0BCF7C 00094880 */ sll $t1, $t1, 2 -/* 0F1AB0 7F0BCF80 012A3021 */ addu $a2, $t1, $t2 -/* 0F1AB4 7F0BCF84 8CCB0008 */ lw $t3, 8($a2) -/* 0F1AB8 7F0BCF88 02002025 */ move $a0, $s0 -/* 0F1ABC 7F0BCF8C 00002825 */ move $a1, $zero -/* 0F1AC0 7F0BCF90 15600006 */ bnez $t3, .L7F0BCFAC -/* 0F1AC4 7F0BCF94 00000000 */ nop -/* 0F1AC8 7F0BCF98 00402025 */ move $a0, $v0 -/* 0F1ACC 7F0BCF9C 0FC2F2CD */ jal resource_load_from_indy -/* 0F1AD0 7F0BCFA0 00002825 */ move $a1, $zero -/* 0F1AD4 7F0BCFA4 10000004 */ b .L7F0BCFB8 -/* 0F1AD8 7F0BCFA8 8FAC0038 */ lw $t4, 0x38($sp) -.L7F0BCFAC: -/* 0F1ADC 7F0BCFAC 0FC2F2A8 */ jal load_resource -/* 0F1AE0 7F0BCFB0 02203825 */ move $a3, $s1 -/* 0F1AE4 7F0BCFB4 8FAC0038 */ lw $t4, 0x38($sp) -.L7F0BCFB8: -/* 0F1AE8 7F0BCFB8 93AD003F */ lbu $t5, 0x3f($sp) -/* 0F1AEC 7F0BCFBC 55800003 */ bnezl $t4, .L7F0BCFCC -/* 0F1AF0 7F0BCFC0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F1AF4 7F0BCFC4 A22D0010 */ sb $t5, 0x10($s1) -/* 0F1AF8 7F0BCFC8 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0BCFCC: -/* 0F1AFC 7F0BCFCC 02001025 */ move $v0, $s0 -/* 0F1B00 7F0BCFD0 8FB00014 */ lw $s0, 0x14($sp) -/* 0F1B04 7F0BCFD4 8FB10018 */ lw $s1, 0x18($sp) -/* 0F1B08 7F0BCFD8 03E00008 */ jr $ra -/* 0F1B0C 7F0BCFDC 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif + resource_lookup_data_entry *info = &resource_lookup_data_array[index]; + s32 bytes; + void *ptrdata = NULL; - - -/* - *this matches except: -f1bc0: sw t4,0xc(s0) f1bc0: sw t4,0xc(s0) -f1bc4: lw a1,0x2c(sp) r f1bc4: lw a0,0x28(sp) -f1bc8: jal load_resource f1bc8: jal load_resource -f1bcc: lw a0,0x28(sp) r f1bcc: lw a1,0x2c(sp) - */ -#ifdef NONMATCHING -u8* load_resource_index_to_buffer(s32 index,s32 bank,u8 *ptrdata,u32 bytes) -{ - if (resource_lookup_data_array[index].pc_remaining == 0) + if (loadMethod == FILELOADMETHOD_EXTRAMEM || loadMethod == FILELOADMETHOD_DEFAULT || loadMethod == 2) { - if (resource_lookup_data_array[index].rom_size > 0) + // bytes = info->poolRemaining; + if (info->poolRemaining == 0) + { // verify pool remaining is 0 + info->poolRemaining = mempGetBankSizeLeft(bank); + // info->poolRemaining = bytes; + } + // bytes = info->poolRemaining; + ptrdata = mempAllocBytesInBank(info->poolRemaining, bank); // get pointer to allocated space + info->rom_remaining = info->poolRemaining; + + if (file_resource_table[index].hw_address == 0) { - resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].rom_size; + resource_load_from_indy(ptrdata, info->poolRemaining, &file_resource_table[index], info); } else { - resource_lookup_data_array[index].pc_remaining = resource_lookup_data_array[index].pc_size; + load_resource(ptrdata, info->poolRemaining, &file_resource_table[index], info); + } + if (loadMethod != FILELOADMETHOD_EXTRAMEM) + { + // mempRealloc + mempAddEntryOfSizeToBank(ptrdata, info->poolRemaining, bank); } } - if (((bank == 0) || (bank == 1)) || (bank == 2)) + else // skipped in PD + { + if (info->poolRemaining == 0) + { + if (info->rom_size != 0) + { + info->poolRemaining = info->rom_size; + } + else + { + info->poolRemaining = info->pc_size; + } + } + ptrdata = mempAllocBytesInBank(info->poolRemaining, bank); + info->rom_remaining = info->poolRemaining; + + if (file_resource_table[index].hw_address == 0) + { + resource_load_from_indy(ptrdata, 0, &file_resource_table[index], info); + } + else + { + load_resource(ptrdata, 0, &file_resource_table[index], info); + } + if (size == 0) + { + info->loaded_bank = bank; + } + } + return ptrdata; +} + + + + + +void *load_resource_index_to_buffer(s32 index, FILELOADMETHOD loadMethod, void *ptrdata, s32 bytes) //#match https://decomp.me/scratch/YExRh +{ + resource_lookup_data_entry *info = &resource_lookup_data_array[index]; + + if (!info->poolRemaining) + { + if (info->rom_size) + { + info->poolRemaining = info->rom_size; + } + else + { + info->poolRemaining = info->pc_size; + } + } + if (loadMethod == FILELOADMETHOD_EXTRAMEM || loadMethod == FILELOADMETHOD_DEFAULT || loadMethod == 2) { if (!file_resource_table[index].hw_address) { - resource_lookup_data_array[index].rom_remaining = bytes; + info->rom_remaining = bytes; resource_load_from_indy(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); } else { - resource_lookup_data_array[index].rom_remaining = bytes; - //flip happens here + info->rom_remaining = bytes; + //fix a1/a0 inversion by manual pointer "info" load_resource(ptrdata, bytes, &file_resource_table[index], &resource_lookup_data_array[index]); } } @@ -475,97 +361,12 @@ u8* load_resource_index_to_buffer(s32 index,s32 bank,u8 *ptrdata,u32 bytes) } else { - load_resource(ptrdata, 0, &file_resource_table[index], &resource_lookup_data_array[index]); } } + return ptrdata; } -#else -GLOBAL_ASM( -.text -glabel load_resource_index_to_buffer -/* 0F1B10 7F0BCFE0 00047080 */ sll $t6, $a0, 2 -/* 0F1B14 7F0BCFE4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F1B18 7F0BCFE8 01C47021 */ addu $t6, $t6, $a0 -/* 0F1B1C 7F0BCFEC 3C0F8009 */ lui $t7, %hi(resource_lookup_data_array) -/* 0F1B20 7F0BCFF0 AFB00018 */ sw $s0, 0x18($sp) -/* 0F1B24 7F0BCFF4 25EF88B0 */ addiu $t7, %lo(resource_lookup_data_array) # addiu $t7, $t7, -0x7750 -/* 0F1B28 7F0BCFF8 000E7080 */ sll $t6, $t6, 2 -/* 0F1B2C 7F0BCFFC 01CF8021 */ addu $s0, $t6, $t7 -/* 0F1B30 7F0BD000 8E180004 */ lw $t8, 4($s0) -/* 0F1B34 7F0BD004 AFBF001C */ sw $ra, 0x1c($sp) -/* 0F1B38 7F0BD008 AFA60028 */ sw $a2, 0x28($sp) -/* 0F1B3C 7F0BD00C 17000008 */ bnez $t8, .L7F0BD030 -/* 0F1B40 7F0BD010 AFA7002C */ sw $a3, 0x2c($sp) -/* 0F1B44 7F0BD014 8E020000 */ lw $v0, ($s0) -/* 0F1B48 7F0BD018 50400004 */ beql $v0, $zero, .L7F0BD02C -/* 0F1B4C 7F0BD01C 8E190008 */ lw $t9, 8($s0) -/* 0F1B50 7F0BD020 10000003 */ b .L7F0BD030 -/* 0F1B54 7F0BD024 AE020004 */ sw $v0, 4($s0) -/* 0F1B58 7F0BD028 8E190008 */ lw $t9, 8($s0) -.L7F0BD02C: -/* 0F1B5C 7F0BD02C AE190004 */ sw $t9, 4($s0) -.L7F0BD030: -/* 0F1B60 7F0BD030 10A00005 */ beqz $a1, .L7F0BD048 -/* 0F1B64 7F0BD034 24010001 */ li $at, 1 -/* 0F1B68 7F0BD038 10A10003 */ beq $a1, $at, .L7F0BD048 -/* 0F1B6C 7F0BD03C 24010002 */ li $at, 2 -/* 0F1B70 7F0BD040 14A10019 */ bne $a1, $at, .L7F0BD0A8 -/* 0F1B74 7F0BD044 00046880 */ sll $t5, $a0, 2 -.L7F0BD048: -/* 0F1B78 7F0BD048 00044080 */ sll $t0, $a0, 2 -/* 0F1B7C 7F0BD04C 01044023 */ subu $t0, $t0, $a0 -/* 0F1B80 7F0BD050 3C098004 */ lui $t1, %hi(file_resource_table) -/* 0F1B84 7F0BD054 25296054 */ addiu $t1, %lo(file_resource_table) # addiu $t1, $t1, 0x6054 -/* 0F1B88 7F0BD058 00084080 */ sll $t0, $t0, 2 -/* 0F1B8C 7F0BD05C 01093021 */ addu $a2, $t0, $t1 -/* 0F1B90 7F0BD060 8CCA0008 */ lw $t2, 8($a2) -/* 0F1B94 7F0BD064 8FAB002C */ lw $t3, 0x2c($sp) -/* 0F1B98 7F0BD068 8FAC002C */ lw $t4, 0x2c($sp) -/* 0F1B9C 7F0BD06C 15400008 */ bnez $t2, .L7F0BD090 -/* 0F1BA0 7F0BD070 02003825 */ move $a3, $s0 -/* 0F1BA4 7F0BD074 AE0B000C */ sw $t3, 0xc($s0) -/* 0F1BA8 7F0BD078 8FA40028 */ lw $a0, 0x28($sp) -/* 0F1BAC 7F0BD07C 8FA5002C */ lw $a1, 0x2c($sp) -/* 0F1BB0 7F0BD080 0FC2F2CD */ jal resource_load_from_indy -/* 0F1BB4 7F0BD084 02003825 */ move $a3, $s0 -/* 0F1BB8 7F0BD088 10000019 */ b .L7F0BD0F0 -/* 0F1BBC 7F0BD08C 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0BD090: -/* 0F1BC0 7F0BD090 AE0C000C */ sw $t4, 0xc($s0) -/* 0F1BC4 7F0BD094 8FA5002C */ lw $a1, 0x2c($sp) -/* 0F1BC8 7F0BD098 0FC2F2A8 */ jal load_resource -/* 0F1BCC 7F0BD09C 8FA40028 */ lw $a0, 0x28($sp) -/* 0F1BD0 7F0BD0A0 10000013 */ b .L7F0BD0F0 -/* 0F1BD4 7F0BD0A4 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0BD0A8: -/* 0F1BD8 7F0BD0A8 01A46823 */ subu $t5, $t5, $a0 -/* 0F1BDC 7F0BD0AC 3C0E8004 */ lui $t6, %hi(file_resource_table) -/* 0F1BE0 7F0BD0B0 25CE6054 */ addiu $t6, %lo(file_resource_table) # addiu $t6, $t6, 0x6054 -/* 0F1BE4 7F0BD0B4 000D6880 */ sll $t5, $t5, 2 -/* 0F1BE8 7F0BD0B8 01AE3021 */ addu $a2, $t5, $t6 -/* 0F1BEC 7F0BD0BC 8CCF0008 */ lw $t7, 8($a2) -/* 0F1BF0 7F0BD0C0 02003825 */ move $a3, $s0 -/* 0F1BF4 7F0BD0C4 8FA40028 */ lw $a0, 0x28($sp) -/* 0F1BF8 7F0BD0C8 15E00006 */ bnez $t7, .L7F0BD0E4 -/* 0F1BFC 7F0BD0CC 00002825 */ move $a1, $zero -/* 0F1C00 7F0BD0D0 8FA40028 */ lw $a0, 0x28($sp) -/* 0F1C04 7F0BD0D4 0FC2F2CD */ jal resource_load_from_indy -/* 0F1C08 7F0BD0D8 00002825 */ move $a1, $zero -/* 0F1C0C 7F0BD0DC 10000004 */ b .L7F0BD0F0 -/* 0F1C10 7F0BD0E0 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0BD0E4: -/* 0F1C14 7F0BD0E4 0FC2F2A8 */ jal load_resource -/* 0F1C18 7F0BD0E8 02003825 */ move $a3, $s0 -/* 0F1C1C 7F0BD0EC 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0BD0F0: -/* 0F1C20 7F0BD0F0 8FA20028 */ lw $v0, 0x28($sp) -/* 0F1C24 7F0BD0F4 8FB00018 */ lw $s0, 0x18($sp) -/* 0F1C28 7F0BD0F8 03E00008 */ jr $ra -/* 0F1C2C 7F0BD0FC 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif @@ -574,7 +375,7 @@ glabel load_resource_index_to_buffer s32 get_pc_remaining_buffer_for_index(s32 index) { - return resource_lookup_data_array[index].pc_remaining; + return resource_lookup_data_array[index].poolRemaining; } @@ -595,7 +396,7 @@ s32 get_rom_remaining_buffer_for_index(s32 index) //f1c88: sw a1,0x1c(sp) r f1c8c: sw a2,0x20(sp) //extra reg save void sub_GAME_7F0BD138(int index, u8 *ptrdata, u32 size, u32 param_4) { - resource_lookup_data_array[index].pc_remaining = size; + resource_lookup_data_array[index].poolRemaining = size; resource_lookup_data_array[index].rom_remaining = size; @@ -642,7 +443,7 @@ s32 get_pc_buffer_remaining_value(u8 *name) int index; index = get_index_num_of_named_resource(name); - return resource_lookup_data_array[index].pc_remaining; + return resource_lookup_data_array[index].poolRemaining; } @@ -654,7 +455,7 @@ void obBlankResourcesLoadedInBank(u8 bank) resource_lookup_data_array[i].loaded_bank = '\0'; } if (bank == 4) { - resource_lookup_data_array[i].pc_remaining = 0; + resource_lookup_data_array[i].poolRemaining = 0; } } } @@ -697,7 +498,7 @@ int get_index_num_of_named_resource(u8 *resname) resource_lookup_data_array[i].unk_11 = '\0'; file_resource_table[i].hw_address = 0; resource_lookup_data_array[i].rom_size = 0; - resource_lookup_data_array[i].pc_remaining = 0; + resource_lookup_data_array[i].poolRemaining = 0; resource_lookup_data_array[i].rom_remaining = 0; resource_lookup_data_array[i].loaded_bank = '\0'; resource_lookup_data_array[i].pc_size = (size + 0xf | 0xf) ^ 0xf; diff --git a/src/game/ob.h b/src/game/ob.h index 96fd7aea..5dc23978 100644 --- a/src/game/ob.h +++ b/src/game/ob.h @@ -2,27 +2,36 @@ #define _OB_H_ #include -struct resource_lookup_data_entry { +typedef struct resource_lookup_data_entry +{ u32 rom_size; - u32 pc_remaining; + u32 poolRemaining; u32 pc_size; u32 rom_remaining; - u8 loaded_bank; - u8 unk_11; + u8 loaded_bank; + u8 unk_11; u16 reserved; -}; +} resource_lookup_data_entry; -struct fileentry { - s32 index; +typedef struct fileentry +{ + s32 index; char *filename; - u8 *hw_address; -}; + u8 *hw_address; +} fileentry; -void obBlankResourcesLoadedInBank(u8 i); -void obBlankResourcesInBank5(void); -u8* load_resource_index_to_buffer(s32 index,s32 param_2,u8 *ptrdata,u32 bytes); -u8 * load_rom_resource_index_to_membank(s32 index,s32 type,s32 size,u8 bank); -void resource_load_from_indy(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata); -void load_resource(u8 *ptrdata, u32 bytes, struct fileentry *srcfile, struct resource_lookup_data_entry *lookupdata); +typedef enum FILELOADMETHOD +{ + FILELOADMETHOD_EXTRAMEM, + FILELOADMETHOD_DEFAULT, + FILELOADMETHOD_UNK2 +} FILELOADMETHOD; + +void load_resource(u8 *ptrdata, s32 bytes, fileentry *srcfile, resource_lookup_data_entry *lookupdata); +void resource_load_from_indy(u8 *ptrdata, s32 bytes, fileentry *srcfile, resource_lookup_data_entry *lookupdata); +void *load_rom_resource_index_to_membank(s32 index, FILELOADMETHOD loadMethod, s32 size, u8 bank); +void *load_resource_index_to_buffer(s32 index, FILELOADMETHOD loadMethod, void *ptrdata, s32 bytes); +void obBlankResourcesLoadedInBank(u8 i); +void obBlankResourcesInBank5(void); #endif diff --git a/src/game/objecthandler.c b/src/game/objecthandler.c index cd115deb..888db831 100644 --- a/src/game/objecthandler.c +++ b/src/game/objecthandler.c @@ -1,5 +1,6 @@ #include #include +#include "objecthandler.h" // bss //CODE.bss:80076A50 @@ -67,11 +68,11 @@ u32 D_8003607C = 0; //D:80036080 u32 D_80036080 = 0; //D:80036084 -s32 D_80036084 = 0; +s32 g_ModelDistanceDisabled = 0; //D:80036088 -f32 D_80036088 = 1.0; +f32 g_ModelDistanceScale = 1.0; //D:8003608C -s32 vtxallocator = 0; +struct Vertex* (*vtxallocator)(s32 numvertices) = NULL; //D:80036090 u32 D_80036090 = 0; //D:80036094 @@ -99,197 +100,41 @@ u32 D_800360BC = 0; //D:800360C0 u32 D_800360C0 = 0; //D:800360C4 -u32 D_800360C4 = 0; -//D:800360C8 -u32 D_800360C8 = 0; -//D:800360CC -u32 D_800360CC = 0x10; -//D:800360D0 -u32 D_800360D0 = 1; -//D:800360D4 -u32 D_800360D4 = 0x1000; -//D:800360D8 -u32 D_800360D8 = 0xD; -//D:800360DC -u32 D_800360DC = 1; -//D:800360E0 -u32 D_800360E0 = 0x1000; -//D:800360E4 -u32 D_800360E4 = 0xD; -//D:800360E8 -u32 D_800360E8 = 9; -//D:800360EC -u32 D_800360EC = 0x800; -//D:800360F0 -u32 D_800360F0 = 0xC; -//D:800360F4 -u32 D_800360F4 = 9; -//D:800360F8 -u32 D_800360F8 = 0x800; -//D:800360FC -u32 D_800360FC = 0xC; -//D:80036100 -u32 D_80036100 = 0x19; -//D:80036104 -u32 D_80036104 = 0x400; -//D:80036108 -u32 D_80036108 = 0xB; -//D:8003610C -u32 D_8003610C = 0x19; -//D:80036110 -u32 D_80036110 = 0x400; -//D:80036114 -u32 D_80036114 = 0xB; -//D:80036118 -u32 D_80036118 = 0x39; -//D:8003611C -u32 D_8003611C = 0x400; -//D:80036120 -u32 D_80036120 = 0xB; -//D:80036124 -u32 D_80036124 = 0x39; -//D:80036128 -u32 D_80036128 = 0x400; -//D:8003612C -u32 D_8003612C = 0xB; -//D:80036130 -u32 D_80036130 = 0x59; -//D:80036134 -u32 D_80036134 = 0x400; -//D:80036138 -u32 D_80036138 = 0xB; -//D:8003613C -u32 D_8003613C = 0x59; -//D:80036140 -u32 D_80036140 = 0x400; -//D:80036144 -u32 D_80036144 = 0xB; -//D:80036148 -u32 D_80036148 = 0x79; -//D:8003614C -u32 D_8003614C = 0x400; -//D:80036150 -u32 D_80036150 = 0xB; -//D:80036154 -u32 D_80036154 = 0x79; -//D:80036158 -u32 D_80036158 = 0x400; -//D:8003615C -u32 D_8003615C = 0xB; -//D:80036160 -u32 D_80036160 = 0x99; -//D:80036164 -u32 D_80036164 = 0x400; -//D:80036168 -u32 D_80036168 = 0xB; -//D:8003616C -u32 D_8003616C = 0x99; -//D:80036170 -u32 D_80036170 = 0x400; -//D:80036174 -u32 D_80036174 = 0xB; -//D:80036178 -u32 D_80036178 = 0xB9; -//D:8003617C -u32 D_8003617C = 0x400; -//D:80036180 -u32 D_80036180 = 0xB; -//D:80036184 -u32 D_80036184 = 0xB9; -//D:80036188 -u32 D_80036188 = 0x400; -//D:8003618C -u32 D_8003618C = 0xB; -//D:80036190 -u32 D_80036190 = 0xD9; -//D:80036194 -u32 D_80036194 = 0x400; -//D:80036198 -u32 D_80036198 = 0xB; -//D:8003619C -u32 D_8003619C = 0xD9; -//D:800361A0 -u32 D_800361A0 = 0x400; -//D:800361A4 -u32 D_800361A4 = 0xB; -//D:800361A8 -u32 D_800361A8 = 0xF9; -//D:800361AC -u32 D_800361AC = 0x400; -//D:800361B0 -u32 D_800361B0 = 0xB; -//D:800361B4 -u32 D_800361B4 = 0xF9; -//D:800361B8 -u32 D_800361B8 = 0x400; -//D:800361BC -u32 D_800361BC = 0xB; -//D:800361C0 -u32 D_800361C0 = 0x119; -//D:800361C4 -u32 D_800361C4 = 0x400; -//D:800361C8 -u32 D_800361C8 = 0xB; -//D:800361CC -u32 D_800361CC = 0x119; -//D:800361D0 -u32 D_800361D0 = 0x400; -//D:800361D4 -u32 D_800361D4 = 0xB; -//D:800361D8 -u32 D_800361D8 = 0x139; -//D:800361DC -u32 D_800361DC = 0x400; -//D:800361E0 -u32 D_800361E0 = 0xB; -//D:800361E4 -u32 D_800361E4 = 0x139; -//D:800361E8 -u32 D_800361E8 = 0x400; -//D:800361EC -u32 D_800361EC = 0xB; -//D:800361F0 -u32 D_800361F0 = 0x159; -//D:800361F4 -u32 D_800361F4 = 0x400; -//D:800361F8 -u32 D_800361F8 = 0xB; -//D:800361FC -u32 D_800361FC = 0x159; -//D:80036200 -u32 D_80036200 = 0x400; -//D:80036204 -u32 D_80036204 = 0xB; -//D:80036208 -u32 D_80036208 = 0x179; -//D:8003620C -u32 D_8003620C = 0x800; -//D:80036210 -u32 D_80036210 = 0xC; -//D:80036214 -u32 D_80036214 = 0x179; -//D:80036218 -u32 D_80036218 = 0x800; -//D:8003621C -u32 D_8003621C = 0xC; -//D:80036220 -u32 D_80036220 = 0x189; -//D:80036224 -u32 D_80036224 = 0x1000; -//D:80036228 -u32 D_80036228 = 0xD; -//D:8003622C -u32 D_8003622C = 0x189; -//D:80036230 -u32 D_80036230 = 0x1000; -//D:80036234 -u32 D_80036234 = 0xD; -//D:80036238 -u32 D_80036238 = 0x191; -//D:8003623C -u32 D_8003623C = 0; -//D:80036240 -u32 D_80036240 = 0x10; +struct bondstruct_unk_op07_related D_800360C4[32] = { + { 0, 0, 0x10 }, + { 1, 0x1000, 0xD }, + { 1, 0x1000, 0xD }, + { 9, 0x800, 0xC }, + { 9, 0x800, 0xC }, + { 0x19, 0x400, 0xB }, + { 0x19, 0x400, 0xB }, + { 0x39, 0x400, 0xB }, + { 0x39, 0x400, 0xB }, + { 0x59, 0x400, 0xB }, + { 0x59, 0x400, 0xB }, + { 0x79, 0x400, 0xB }, + { 0x79, 0x400, 0xB }, + { 0x99, 0x400, 0xB }, + { 0x99, 0x400, 0xB, }, + { 0xB9, 0x400, 0xB, }, + { 0xB9, 0x400, 0xB, }, + { 0xD9, 0x400, 0xB, }, + { 0xD9, 0x400, 0xB, }, + { 0xF9, 0x400, 0xB, }, + { 0xF9, 0x400, 0xB, }, + { 0x119, 0x400, 0xB, }, + { 0x119, 0x400, 0xB, }, + { 0x139, 0x400, 0xB, }, + { 0x139, 0x400, 0xB, }, + { 0x159, 0x400, 0xB, }, + { 0x159, 0x400, 0xB, }, + { 0x179, 0x800, 0xC, }, + { 0x179, 0x800, 0xC, }, + { 0x189, 0x1000, 0xD }, + { 0x189, 0x1000, 0xD }, + { 0x191, 0, 0x10 }, +}; + //D:80036244 u32 D_80036244 = 0; //D:80036248 @@ -403,14 +248,18 @@ u32 D_8003631C[] = { 0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + //D:800363EC0 -u32 D_800363E0 = 0; -//D:800363E4 -u32 D_800363E4 = 0; -//D:800363E8 -u32 D_800363E8 = 0; -//D:800363EC -u32 D_800363EC = 0xFFFFFFFF; +Vertex D_800363E0 = { + { 0, 0, 0 }, + 0, + { 0, 0 }, + 0xFF, + 0xFF, + 0xFF, + 0xFF +}; + //D:800363F0 u32 D_800363F0 = 0x50; //D:800363F4 @@ -430,7 +279,7 @@ u32 D_8003640C = 0; //D:80036410 s32 D_80036410 = 0; //D:80036414 -s32 D_80036414 = 0; +struct bondstruct_unk_animation_related* D_80036414 = 0; //D:80036418 s32 D_80036418 = 0; //D:8003641C @@ -905,7 +754,7 @@ glabel sub_GAME_7F06B29C /* 0A0174 7F06B644 8E240000 */ lw $a0, ($s1) /* 0A0178 7F06B648 8CC50014 */ lw $a1, 0x14($a2) /* 0A017C 7F06B64C AFA200A0 */ sw $v0, 0xa0($sp) -/* 0A0180 7F06B650 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A0180 7F06B650 0FC1B1E7 */ jal modelGetNodeRwData /* 0A0184 7F06B654 AFA6009C */ sw $a2, 0x9c($sp) /* 0A0188 7F06B658 8FA300A0 */ lw $v1, 0xa0($sp) /* 0A018C 7F06B65C 8FA6009C */ lw $a2, 0x9c($sp) diff --git a/src/game/objecthandler.h b/src/game/objecthandler.h index 6871f9bb..d49b8268 100644 --- a/src/game/objecthandler.h +++ b/src/game/objecthandler.h @@ -3,18 +3,33 @@ #include #include -extern s32 D_80036084; -extern f32 D_80036088; +struct bondstruct_unk_animation_related { + char* unk00; + char* unk04; + char* unk08; +}; + +struct bondstruct_unk_op07_related { + s32 unk00; + s32 unk04; + s32 unk0C; +}; + +extern s32 g_ModelDistanceDisabled; +extern f32 g_ModelDistanceScale; extern u32 D_80036250; extern s32 D_80036410; -extern s32 D_80036414; +extern struct bondstruct_unk_animation_related* D_80036414; extern s32 D_80036418; extern s32 D_8003641C; -extern s32 vtxallocator; +extern u32 D_800363F0; +extern struct Vertex* (*vtxallocator)(s32 numvertices); +extern struct bondstruct_unk_op07_related D_800360C4[]; +extern Vertex D_800363E0; // arg0 unknown pointer void sub_GAME_7F070090(void *arg0, f32 arg1, f32 arg2); -void sub_GAME_7F06FF18(Model *, f32, f32); +void modelSetAnimRateForDuration(Model *, f32, f32); void sub_GAME_7F06FF5C(Model *model, s32 arg1); void modelSetScale(Model*, f32); void getsuboffset(Model *, coord3d *); @@ -30,7 +45,7 @@ void modelSetAnimLooping(Model *, f32, f32); void modelSetAnimEndFrame(Model *, f32); void sub_GAME_7F06CE84(Model *, f32); -void *extract_id_from_object_structure_microcode(Model *Objinst, ModelNode *root); +union ModelRwData* modelGetNodeRwData(Model *Objinst, ModelNode *root); f32 getsubroty(Model *objinst); void setsubroty(Model *objinst, f32 radHeading); void modelSetAnimationWithMerge(Model *, ModelAnimation *, s32, f32, f32, f32, s32); @@ -74,8 +89,8 @@ u32 sub_GAME_7F0701E0(void); // arg0: unknown type. arg1: unknown type. arg5: unknown type, maybe struct. void sub_GAME_7F06D2E4(s32, s32, ModelSkeleton*, void* anim, s32, s16*); -// arg2 unknown type. -void sub_GAME_7F075FAC(Model *, ModelFileHeader *, void *); +void sub_GAME_7F075F68(struct Model *, struct ModelFileHeader *, u32 *); +void sub_GAME_7F075FAC(struct Model *, struct ModelFileHeader *, u32 *); void modelSetAnimFlipFunction(Model *, void *); void subcalcmatrices(struct unk_joint_list *, Model *); void instcalcmatrices(struct unk_joint_list *arg0, Model *arg1); @@ -83,6 +98,8 @@ void load_object_fill_header(struct ModelFileHeader *objheader, u8 *name, void * void* get_obj_instance_controller_for_header(struct ModelFileHeader* arg0); void subdraw(s32 arg0, struct Model *); void sub_GAME_7F06EFC4(struct Model *); +void sub_GAME_7F076030(Model *pmodel, ModelFileHeader *pmodeldef, ModelNode *pnode, ModelFileHeader *cmodeldef); +void modelInitRwData(Model *model, ModelNode *startnode); #ifndef VERSION_EU void return_null(void); diff --git a/src/game/objecthandler_1.c b/src/game/objecthandler_1.c index c401128f..9c1553bf 100644 --- a/src/game/objecthandler_1.c +++ b/src/game/objecthandler_1.c @@ -9,13 +9,15 @@ #include "math_asinfacosf.h" #include "math_unk_05A9E0.h" #include "chrobjdata.h" - +#include "bondview.h" +#include "random.h" +#include "gbi_extension.h" // forward declarations void sub_GAME_7F06D490(struct Model *arg0, struct ModelNode *arg1); void sub_GAME_7F0755B0(void); -s32 sub_GAME_7F0754BC(struct ModelAnimation *, s16, struct ModelSkeleton*); +s32 sub_GAME_7F0754BC(struct ModelAnimation *, s32, struct ModelSkeleton*); // end forward declarations @@ -24,33 +26,11 @@ s32 sub_GAME_7F0754BC(struct ModelAnimation *, s16, struct ModelSkeleton*); //newfile per EU -#ifdef NONMATCHING -void sub_GAME_7F06C060(void) { - +bool modelmgrCanSlotFitRwdata(Model *modelslot, ModelFileHeader *modeldef) +{ + return modeldef->numRecords <= 0 + || (modelslot->datas != NULL && modelslot->Type >= modeldef->numRecords); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06C060 -/* 0A0B90 7F06C060 84A30014 */ lh $v1, 0x14($a1) -/* 0A0B94 7F06C064 28620001 */ slti $v0, $v1, 1 -/* 0A0B98 7F06C068 14400008 */ bnez $v0, .L7F06C08C -/* 0A0B9C 7F06C06C 00000000 */ nop -/* 0A0BA0 7F06C070 8C820010 */ lw $v0, 0x10($a0) -/* 0A0BA4 7F06C074 0002702B */ sltu $t6, $zero, $v0 -/* 0A0BA8 7F06C078 11C00004 */ beqz $t6, .L7F06C08C -/* 0A0BAC 7F06C07C 01C01025 */ move $v0, $t6 -/* 0A0BB0 7F06C080 848F0002 */ lh $t7, 2($a0) -/* 0A0BB4 7F06C084 01E3102A */ slt $v0, $t7, $v1 -/* 0A0BB8 7F06C088 38420001 */ xori $v0, $v0, 1 -.L7F06C08C: -/* 0A0BBC 7F06C08C 03E00008 */ jr $ra -/* 0A0BC0 7F06C090 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -136,7 +116,7 @@ glabel get_obj_instance_controller_for_header /* 0A0CC8 7F06C198 02462021 */ addu $a0, $s2, $a2 /* 0A0CCC 7F06C19C 55A0000E */ bnezl $t5, .L7F06C1D8 /* 0A0CD0 7F06C1A0 8E980000 */ lw $t8, ($s4) -/* 0A0CD4 7F06C1A4 0FC1B018 */ jal sub_GAME_7F06C060 +/* 0A0CD4 7F06C1A4 0FC1B018 */ jal modelmgrCanSlotFitRwdata /* 0A0CD8 7F06C1A8 02A02825 */ move $a1, $s5 /* 0A0CDC 7F06C1AC 5040000A */ beql $v0, $zero, .L7F06C1D8 /* 0A0CE0 7F06C1B0 8E980000 */ lw $t8, ($s4) @@ -179,24 +159,10 @@ glabel get_obj_instance_controller_for_header #endif - - - -#ifdef NONMATCHING -void set_obj_instance_scale_to_zero(void) { - +void clear_model_obj(Model* model) +{ + model->obj = NULL; } -#else -GLOBAL_ASM( -.text -glabel set_obj_instance_scale_to_zero -/* 0A0D64 7F06C234 03E00008 */ jr $ra -/* 0A0D68 7F06C238 AC800008 */ sw $zero, 8($a0) -) -#endif - - - #ifdef NONMATCHING @@ -322,7 +288,7 @@ glabel get_aircraft_obj_instance_controller void sub_GAME_7F06C3B4(Model *model, s32 node, ModelFileHeader *header) { sub_GAME_7F076030(model,model->obj,node,header); - unknown_object_microcode_handler(model,header->RootNode); + modelInitRwData(model,header->RootNode); } void set_aircraft_obj_inst_scale_to_zero(Model *objinstance) @@ -333,11 +299,11 @@ void set_aircraft_obj_inst_scale_to_zero(Model *objinstance) } void set_80036084(s32 param_1) { - D_80036084 = param_1; + g_ModelDistanceDisabled = param_1; } void set_float_80036088(f32 param_1) { - D_80036088 = param_1; + g_ModelDistanceScale = param_1; } @@ -390,180 +356,77 @@ void return_null(void) { #endif +void sub_GAME_7F06C474(Model* model, coord3d* coord) +{ + Mtxf* mtx; + f32 dist; + f32 neg_x; + f32 neg_y; + f32 neg_z; + f32 inv_dist; + mtx = getsubmatrix(model); + neg_x = -mtx->m[3][0]; + neg_y = -mtx->m[3][1]; + neg_z = -mtx->m[3][2]; + dist = sqrtf((neg_x * neg_x) + (neg_y * neg_y) + (neg_z * neg_z)); + if (dist > 0.0f) + { + inv_dist = 1.0f / (model->scale * dist); + coord->f[0] = neg_x * inv_dist; + coord->f[1] = neg_y * inv_dist; + coord->f[2] = neg_z * inv_dist; + return; + } - -#ifdef NONMATCHING -void sub_GAME_7F06C474(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06C474 -/* 0A0FA4 7F06C474 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0A0FA8 7F06C478 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A0FAC 7F06C47C AFA40030 */ sw $a0, 0x30($sp) -/* 0A0FB0 7F06C480 0FC1B1A8 */ jal getsubmatrix -/* 0A0FB4 7F06C484 AFA50034 */ sw $a1, 0x34($sp) -/* 0A0FB8 7F06C488 C44E0030 */ lwc1 $f14, 0x30($v0) -/* 0A0FBC 7F06C48C C4500034 */ lwc1 $f16, 0x34($v0) -/* 0A0FC0 7F06C490 C4520038 */ lwc1 $f18, 0x38($v0) -/* 0A0FC4 7F06C494 46007387 */ neg.s $f14, $f14 -/* 0A0FC8 7F06C498 46008407 */ neg.s $f16, $f16 -/* 0A0FCC 7F06C49C 460E7102 */ mul.s $f4, $f14, $f14 -/* 0A0FD0 7F06C4A0 46009487 */ neg.s $f18, $f18 -/* 0A0FD4 7F06C4A4 E7B00020 */ swc1 $f16, 0x20($sp) -/* 0A0FD8 7F06C4A8 46108182 */ mul.s $f6, $f16, $f16 -/* 0A0FDC 7F06C4AC E7B2001C */ swc1 $f18, 0x1c($sp) -/* 0A0FE0 7F06C4B0 E7AE0024 */ swc1 $f14, 0x24($sp) -/* 0A0FE4 7F06C4B4 46129282 */ mul.s $f10, $f18, $f18 -/* 0A0FE8 7F06C4B8 46062200 */ add.s $f8, $f4, $f6 -/* 0A0FEC 7F06C4BC 0C007DF8 */ jal sqrtf -/* 0A0FF0 7F06C4C0 460A4300 */ add.s $f12, $f8, $f10 -/* 0A0FF4 7F06C4C4 44801000 */ mtc1 $zero, $f2 -/* 0A0FF8 7F06C4C8 8FA50034 */ lw $a1, 0x34($sp) -/* 0A0FFC 7F06C4CC C7AE0024 */ lwc1 $f14, 0x24($sp) -/* 0A1000 7F06C4D0 4600103C */ c.lt.s $f2, $f0 -/* 0A1004 7F06C4D4 C7B00020 */ lwc1 $f16, 0x20($sp) -/* 0A1008 7F06C4D8 C7B2001C */ lwc1 $f18, 0x1c($sp) -/* 0A100C 7F06C4DC 8FAE0030 */ lw $t6, 0x30($sp) -/* 0A1010 7F06C4E0 45020010 */ bc1fl .L7F06C524 -/* 0A1014 7F06C4E4 E4A20000 */ swc1 $f2, ($a1) -/* 0A1018 7F06C4E8 C5C60014 */ lwc1 $f6, 0x14($t6) -/* 0A101C 7F06C4EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A1020 7F06C4F0 44812000 */ mtc1 $at, $f4 -/* 0A1024 7F06C4F4 46003202 */ mul.s $f8, $f6, $f0 -/* 0A1028 7F06C4F8 46082083 */ div.s $f2, $f4, $f8 -/* 0A102C 7F06C4FC 46027282 */ mul.s $f10, $f14, $f2 -/* 0A1030 7F06C500 00000000 */ nop -/* 0A1034 7F06C504 46028182 */ mul.s $f6, $f16, $f2 -/* 0A1038 7F06C508 00000000 */ nop -/* 0A103C 7F06C50C 46029102 */ mul.s $f4, $f18, $f2 -/* 0A1040 7F06C510 E4AA0000 */ swc1 $f10, ($a1) -/* 0A1044 7F06C514 E4A60004 */ swc1 $f6, 4($a1) -/* 0A1048 7F06C518 10000009 */ b .L7F06C540 -/* 0A104C 7F06C51C E4A40008 */ swc1 $f4, 8($a1) -/* 0A1050 7F06C520 E4A20000 */ swc1 $f2, ($a1) -.L7F06C524: -/* 0A1054 7F06C524 E4A20004 */ swc1 $f2, 4($a1) -/* 0A1058 7F06C528 8FAF0030 */ lw $t7, 0x30($sp) -/* 0A105C 7F06C52C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A1060 7F06C530 44814000 */ mtc1 $at, $f8 -/* 0A1064 7F06C534 C5EA0014 */ lwc1 $f10, 0x14($t7) -/* 0A1068 7F06C538 460A4183 */ div.s $f6, $f8, $f10 -/* 0A106C 7F06C53C E4A60008 */ swc1 $f6, 8($a1) -.L7F06C540: -/* 0A1070 7F06C540 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A1074 7F06C544 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0A1078 7F06C548 03E00008 */ jr $ra -/* 0A107C 7F06C54C 00000000 */ nop -) -#endif - - - - - -void sub_GAME_7F06C550(void) { - sub_GAME_7F06C474(); + coord->f[0] = 0.0f; + coord->f[1] = 0.0f; + coord->f[2] = 1.0f / model->scale; } - - - -#ifdef NONMATCHING -void sub_GAME_7F06C570(void) { - +void sub_GAME_7F06C550(Model* model, coord3d* coord) +{ + sub_GAME_7F06C474(model, coord); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06C570 -/* 0A10A0 7F06C570 10800038 */ beqz $a0, .L7F06C654 -/* 0A10A4 7F06C574 00A03025 */ move $a2, $a1 -/* 0A10A8 7F06C578 24080015 */ li $t0, 21 -/* 0A10AC 7F06C57C 24070003 */ li $a3, 3 -/* 0A10B0 7F06C580 24050002 */ li $a1, 2 -/* 0A10B4 7F06C584 24020001 */ li $v0, 1 -/* 0A10B8 7F06C588 94830000 */ lhu $v1, ($a0) -.L7F06C58C: -/* 0A10BC 7F06C58C 306E00FF */ andi $t6, $v1, 0xff -/* 0A10C0 7F06C590 51C2000A */ beql $t6, $v0, .L7F06C5BC -/* 0A10C4 7F06C594 8C830004 */ lw $v1, 4($a0) -/* 0A10C8 7F06C598 51C5000B */ beql $t6, $a1, .L7F06C5C8 -/* 0A10CC 7F06C59C 24010200 */ li $at, 512 -/* 0A10D0 7F06C5A0 51C70018 */ beql $t6, $a3, .L7F06C604 -/* 0A10D4 7F06C5A4 24010200 */ li $at, 512 -/* 0A10D8 7F06C5A8 51C80025 */ beql $t6, $t0, .L7F06C640 -/* 0A10DC 7F06C5AC 8C830004 */ lw $v1, 4($a0) -/* 0A10E0 7F06C5B0 10000026 */ b .L7F06C64C -/* 0A10E4 7F06C5B4 8C840008 */ lw $a0, 8($a0) -/* 0A10E8 7F06C5B8 8C830004 */ lw $v1, 4($a0) -.L7F06C5BC: -/* 0A10EC 7F06C5BC 03E00008 */ jr $ra -/* 0A10F0 7F06C5C0 84620002 */ lh $v0, 2($v1) - -/* 0A10F4 7F06C5C4 24010200 */ li $at, 512 -.L7F06C5C8: -/* 0A10F8 7F06C5C8 14C10003 */ bne $a2, $at, .L7F06C5D8 -/* 0A10FC 7F06C5CC 8C850004 */ lw $a1, 4($a0) -/* 0A1100 7F06C5D0 10000007 */ b .L7F06C5F0 -/* 0A1104 7F06C5D4 24030002 */ li $v1, 2 -.L7F06C5D8: -/* 0A1108 7F06C5D8 24010100 */ li $at, 256 -/* 0A110C 7F06C5DC 14C10003 */ bne $a2, $at, .L7F06C5EC -/* 0A1110 7F06C5E0 00001025 */ move $v0, $zero -/* 0A1114 7F06C5E4 10000001 */ b .L7F06C5EC -/* 0A1118 7F06C5E8 24020001 */ li $v0, 1 -.L7F06C5EC: -/* 0A111C 7F06C5EC 00401825 */ move $v1, $v0 -.L7F06C5F0: -/* 0A1120 7F06C5F0 00037840 */ sll $t7, $v1, 1 -/* 0A1124 7F06C5F4 00AFC021 */ addu $t8, $a1, $t7 -/* 0A1128 7F06C5F8 03E00008 */ jr $ra -/* 0A112C 7F06C5FC 8702000E */ lh $v0, 0xe($t8) - -/* 0A1130 7F06C600 24010200 */ li $at, 512 -.L7F06C604: -/* 0A1134 7F06C604 14C10003 */ bne $a2, $at, .L7F06C614 -/* 0A1138 7F06C608 8C850004 */ lw $a1, 4($a0) -/* 0A113C 7F06C60C 10000007 */ b .L7F06C62C -/* 0A1140 7F06C610 24030002 */ li $v1, 2 -.L7F06C614: -/* 0A1144 7F06C614 24010100 */ li $at, 256 -/* 0A1148 7F06C618 14C10003 */ bne $a2, $at, .L7F06C628 -/* 0A114C 7F06C61C 00001025 */ move $v0, $zero -/* 0A1150 7F06C620 10000001 */ b .L7F06C628 -/* 0A1154 7F06C624 24020001 */ li $v0, 1 -.L7F06C628: -/* 0A1158 7F06C628 00401825 */ move $v1, $v0 -.L7F06C62C: -/* 0A115C 7F06C62C 0003C840 */ sll $t9, $v1, 1 -/* 0A1160 7F06C630 00B94821 */ addu $t1, $a1, $t9 -/* 0A1164 7F06C634 03E00008 */ jr $ra -/* 0A1168 7F06C638 8522000E */ lh $v0, 0xe($t1) - -/* 0A116C 7F06C63C 8C830004 */ lw $v1, 4($a0) -.L7F06C640: -/* 0A1170 7F06C640 03E00008 */ jr $ra -/* 0A1174 7F06C644 8462000C */ lh $v0, 0xc($v1) - -/* 0A1178 7F06C648 8C840008 */ lw $a0, 8($a0) -.L7F06C64C: -/* 0A117C 7F06C64C 5480FFCF */ bnezl $a0, .L7F06C58C -/* 0A1180 7F06C650 94830000 */ lhu $v1, ($a0) -.L7F06C654: -/* 0A1184 7F06C654 2402FFFF */ li $v0, -1 -/* 0A1188 7F06C658 03E00008 */ jr $ra -/* 0A118C 7F06C65C 00000000 */ nop -) -#endif +s32 sub_GAME_7F06C570(ModelNode *node, s32 arg1) +{ + s32 index; + union ModelRoData *rodata1; + union ModelRoData *rodata2; + union ModelRoData *rodata3; + union ModelRoData *rodata4; + while (node) + { + switch (node->Opcode & 0xff) + { + case MODELNODE_OPCODE_HEADERRECORD: + rodata1 = node->Data; + return (s16)rodata1->Header.ModelType; + + case MODELNODE_OPCODE_GROUPRECORD: + rodata2 = node->Data; + return rodata2->Group.MatrixIDs[arg1 == 0x200 ? 2 : (arg1 == 0x100 ? 1 : 0)]; + + case MODELNODE_OPCODE_UNUSED_03: + rodata3 = node->Data; + return rodata3->Group.MatrixIDs[arg1 == 0x200 ? 2 : (arg1 == 0x100 ? 1 : 0)]; + + case MODELNODE_OPCODE_GROUPSIMPLERECORD: + rodata4 = node->Data; + return rodata4->GroupSimple.Group1; + break; + } + + node = node->Parent; + } + + return -1; +} Mtxf *sub_GAME_7F06C660(struct Model *model, struct ModelNode *node, s32 arg2) { @@ -596,59 +459,23 @@ Mtxf *getsubmatrix(Model *objinst) } - - - -#ifdef NONMATCHING -void sub_GAME_7F06C710(Model *objinst, coord3d *arg1) +void sub_GAME_7F06C710(Model* model, coord3d* pos) { - void *temp_v0; + Mtxf* mtx; - temp_v0 = getsubmatrix(objinst); - if (temp_v0) + mtx = getsubmatrix(model); + if (mtx != NULL) { - arg1->x = temp_v0->unk30; - arg1->y = temp_v0->unk34; - arg1->z = temp_v0->unk38; + pos->f[0] = (f32) mtx->m[3][0]; + pos->f[1] = (f32) mtx->m[3][1]; + pos->f[2] = (f32) mtx->m[3][2]; return; } - arg1->x = 0.0f; - arg1->y = 0.0f; - arg1->z = 0.0f; + + pos->f[0] = 0.0f; + pos->f[1] = 0.0f; + pos->f[2] = 0.0f; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06C710 -/* 0A1240 7F06C710 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A1244 7F06C714 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A1248 7F06C718 0FC1B1A8 */ jal getsubmatrix -/* 0A124C 7F06C71C AFA5001C */ sw $a1, 0x1c($sp) -/* 0A1250 7F06C720 10400008 */ beqz $v0, .L7F06C744 -/* 0A1254 7F06C724 8FA5001C */ lw $a1, 0x1c($sp) -/* 0A1258 7F06C728 C4440030 */ lwc1 $f4, 0x30($v0) -/* 0A125C 7F06C72C E4A40000 */ swc1 $f4, ($a1) -/* 0A1260 7F06C730 C4460034 */ lwc1 $f6, 0x34($v0) -/* 0A1264 7F06C734 E4A60004 */ swc1 $f6, 4($a1) -/* 0A1268 7F06C738 C4480038 */ lwc1 $f8, 0x38($v0) -/* 0A126C 7F06C73C 10000006 */ b .L7F06C758 -/* 0A1270 7F06C740 E4A80008 */ swc1 $f8, 8($a1) -.L7F06C744: -/* 0A1274 7F06C744 44800000 */ mtc1 $zero, $f0 -/* 0A1278 7F06C748 00000000 */ nop -/* 0A127C 7F06C74C E4A00000 */ swc1 $f0, ($a1) -/* 0A1280 7F06C750 E4A00004 */ swc1 $f0, 4($a1) -/* 0A1284 7F06C754 E4A00008 */ swc1 $f0, 8($a1) -.L7F06C758: -/* 0A1288 7F06C758 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A128C 7F06C75C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A1290 7F06C760 03E00008 */ jr $ra -/* 0A1294 7F06C764 00000000 */ nop -) -#endif - - - f32 sub_GAME_7F06C768(Model *objinst) @@ -662,62 +489,59 @@ f32 sub_GAME_7F06C768(Model *objinst) } - - - /** * Address 0x7F06C79C. */ -void *extract_id_from_object_structure_microcode(Model *Objinst, ModelNode *root) +union ModelRwData* modelGetNodeRwData(Model *Objinst, ModelNode *root) { - s32 number = 0; - void **data = Objinst->datas; + s32 index = 0; + union ModelRwData **data = Objinst->datas; switch (root->Opcode & 0xff) - { // get "number" from each node, number = dataseg? - always 0 + { case MODELNODE_OPCODE_HEADERRECORD: { - number = ((ModelNode_HeaderRecord *)root->Data)->number; + index = root->Data->Header.RwDataIndex; break; } case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: { - number = ((ModelNode_DisplayList_CollisionRecord *)root->Data)->unknown; + index = root->Data->DisplayListCollisions.RwDataIndex; break; } case MODELNODE_OPCODE_OP07RECORD: { - number = ((ModelNode_Op07Record *)root->Data)->number; + index = root->Data->Op07.RwDataIndex; break; } case MODELNODE_OPCODE_LODRECORD: { - number = ((ModelNode_LODRecord *)root->Data)->number; + index = root->Data->LOD.RwDataIndex; break; } case MODELNODE_OPCODE_SWITCHRECORD: { - number = ((ModelNode_SwitchRecord *)root->Data)->number; + index = root->Data->Switch.RwDataIndex; break; } case MODELNODE_OPCODE_BSPRECORD: { - number = ((ModelNode_BSPRecord *)root->Data)->number; + index = root->Data->BSP.RwDataIndex; break; } case MODELNODE_OPCODE_OP11RECORD: { - number = ((ModelNode_Op11Record *)root->Data)->number; + index = root->Data->Op11.RwDataIndex; break; } case MODELNODE_OPCODE_GUNFIRERECORD: { - number = ((ModelNode_GunfireRecord *)root->Data)->number; + index = root->Data->Gunfire.RwDataIndex; break; } case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: { - number = ((ModelNode_HeadPlaceholderRecord *)root->Data)->number; + index = root->Data->HeadPlaceholder.RwDataIndex; break; } } @@ -727,17 +551,17 @@ void *extract_id_from_object_structure_microcode(Model *Objinst, ModelNode *root root = root->Parent; if ((root->Opcode & 0xFF) == MODELNODE_OPCODE_HEADPLACEHOLDERRECORD) { - data = ((ModelNode_HeaderRecord *)extract_id_from_object_structure_microcode(Objinst, root))->FirstGroup; + ModelRwData_HeadPlaceholderRecord *tmp = modelGetNodeRwData(Objinst, root); + data = tmp->RwDatas; break; } } - return &data[number]; + return &data[index]; } - void getpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#MATCH - however OPCODE 3 needs defining { #if defined(LEFTOVERDEBUG) @@ -756,7 +580,7 @@ void getpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#MATCH - { case 1: { - struct modeldata_root *root = extract_id_from_object_structure_microcode(objinst, part); + struct modeldata_root *root = modelGetNodeRwData(objinst, part); offset->x = root->pos.x; offset->y = root->pos.y; offset->z = root->pos.z; @@ -764,7 +588,7 @@ void getpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#MATCH - } case 2: { - ModelNode_GroupRecord *prt = part->Data; + ModelRoData_GroupRecord *prt = &part->Data->Group; offset->x = prt->Origin.x; offset->y = prt->Origin.y; offset->z = prt->Origin.z; @@ -772,7 +596,7 @@ void getpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#MATCH - } case 3: { - ModelNode_GroupSimpleRecord *prt = part->Data; //UNUSED at this time + ModelRoData_GroupSimpleRecord *prt = &part->Data->GroupSimple; //UNUSED at this time offset->x = prt->Origin.x; offset->y = prt->Origin.y; offset->z = prt->Origin.z; @@ -780,7 +604,7 @@ void getpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#MATCH - } case 21: { - ModelNode_GroupSimpleRecord *prt = part->Data; + ModelRoData_GroupSimpleRecord *prt = &part->Data->GroupSimple; offset->x = prt->Origin.x; offset->y = prt->Origin.y; offset->z = prt->Origin.z; @@ -797,314 +621,69 @@ void getpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#MATCH - } - - -#ifdef NONMATCHING -//https://decomp.me/scratch/S3JNh -void setpartoffset(Model *objinst, ModelNode *part, coord3d *offset) //#75% s0 should not be used +void setpartoffset(Model *model, ModelNode *node, coord3d *pos) { - if (!objinst) - { +#if defined(LEFTOVERDEBUG) + if (!model) { osSyncPrintf("setpartoffset: no objinst!"); return_null(); } - if (!part) - { + + if (!node) { osSyncPrintf("setpartoffset: no partdesc!"); return_null(); } - - switch (part->Opcode & 0xFF) + else { - case 1: - { - volatile float deltay, deltax; - struct modeldata_root *objinstroot = extract_id_from_object_structure_microcode(objinst, part); + // huh? + } +#endif + switch (node->Opcode & 0xff) + { + case MODELNODE_OPCODE_HEADERRECORD: + { + ModelRwData_HeaderRecord *rwdata = modelGetNodeRwData(model, node); + coord3d diff[1]; - deltax = offset->x - objinstroot->pos.x; - deltay = offset->z - objinstroot->pos.z; + diff[0].x = pos->x - rwdata->pos.x; + diff[0].z = pos->z - rwdata->pos.z; - objinstroot->pos.x = offset->x; - objinstroot->pos.y = offset->y; - objinstroot->pos.z = offset->z; - objinstroot->unk24.x += deltax; - objinstroot->unk24.z += deltay; - objinstroot->unk34.x += deltax; - objinstroot->unk34.z += deltay; - objinstroot->unk40.x += deltax; - objinstroot->unk40.z += deltay; - objinstroot->unk4c.x += deltax; - objinstroot->unk4c.z += deltay; - return; - } - case 2: - { - ModelNode_GroupRecord *prt = part->Data; - prt->Origin.x = offset->x; - prt->Origin.y = offset->y; - prt->Origin.z = offset->z; - return; - } - case 3: - { - ModelNode_GroupSimpleRecord *prt = part->Data; //UNUSED at this time - prt->Origin.x = offset->x; - prt->Origin.y = offset->y; - prt->Origin.z = offset->z; - return; - } - case 21: - { - ModelNode_GroupSimpleRecord *prt = part->Data; - prt->Origin.x = offset->x; - prt->Origin.y = offset->y; - prt->Origin.z = offset->z; - return; - } + rwdata->pos.x = pos->x; + rwdata->pos.y = pos->y; + rwdata->pos.z = pos->z; + + rwdata->unk24.x += diff[0].x; rwdata->unk24.z += diff[0].z; + rwdata->unk34.x += diff[0].x; rwdata->unk34.z += diff[0].z; + rwdata->unk40.x += diff[0].x; rwdata->unk40.z += diff[0].z; + rwdata->unk4c.x += diff[0].x; rwdata->unk4c.z += diff[0].z; + } + break; + case MODELNODE_OPCODE_GROUPRECORD: + { + ModelRoData_GroupRecord *rodata = &node->Data->Group; + rodata->Origin.x = pos->x; + rodata->Origin.y = pos->y; + rodata->Origin.z = pos->z; + } + break; + case MODELNODE_OPCODE_UNUSED_03: + { + ModelRoData_GroupRecord *rodata = &node->Data->Group; + rodata->Origin.x = pos->x; + rodata->Origin.y = pos->y; + rodata->Origin.z = pos->z; + } + break; + case MODELNODE_OPCODE_GROUPSIMPLERECORD: + { + ModelRoData_GroupSimpleRecord *rodata = &node->Data->GroupSimple; + rodata->Origin.x = pos->x; + rodata->Origin.y = pos->y; + rodata->Origin.z = pos->z; + } + break; } } -#else -#ifndef VERSION_EU -//D:8005467C -const char aSetpartoffsetNoObjinst[] = "setpartoffset: no objinst!"; -//D:80054698 -const char aSetpartoffsetNoPartdesc[] = "setpartoffset: no partdesc!"; -GLOBAL_ASM( -.text -glabel setpartoffset -/* 0A1500 7F06C9D0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0A1504 7F06C9D4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A1508 7F06C9D8 1480000A */ bnez $a0, .L7F06CA04 -/* 0A150C 7F06C9DC AFA40028 */ sw $a0, 0x28($sp) -/* 0A1510 7F06C9E0 3C048005 */ lui $a0, %hi(aSetpartoffsetNoObjinst) -/* 0A1514 7F06C9E4 2484467C */ addiu $a0, %lo(aSetpartoffsetNoObjinst) # addiu $a0, $a0, 0x467c -/* 0A1518 7F06C9E8 AFA5002C */ sw $a1, 0x2c($sp) -/* 0A151C 7F06C9EC 0C0033D1 */ jal osSyncPrintf -/* 0A1520 7F06C9F0 AFA60030 */ sw $a2, 0x30($sp) -/* 0A1524 7F06C9F4 0FC1B11B */ jal return_null -/* 0A1528 7F06C9F8 00000000 */ nop -/* 0A152C 7F06C9FC 8FA5002C */ lw $a1, 0x2c($sp) -/* 0A1530 7F06CA00 8FA60030 */ lw $a2, 0x30($sp) -.L7F06CA04: -/* 0A1534 7F06CA04 14A00009 */ bnez $a1, .L7F06CA2C -/* 0A1538 7F06CA08 3C048005 */ lui $a0, %hi(aSetpartoffsetNoPartdesc) -/* 0A153C 7F06CA0C 24844698 */ addiu $a0, %lo(aSetpartoffsetNoPartdesc) # addiu $a0, $a0, 0x4698 -/* 0A1540 7F06CA10 AFA5002C */ sw $a1, 0x2c($sp) -/* 0A1544 7F06CA14 0C0033D1 */ jal osSyncPrintf -/* 0A1548 7F06CA18 AFA60030 */ sw $a2, 0x30($sp) -/* 0A154C 7F06CA1C 0FC1B11B */ jal return_null -/* 0A1550 7F06CA20 00000000 */ nop -/* 0A1554 7F06CA24 8FA5002C */ lw $a1, 0x2c($sp) -/* 0A1558 7F06CA28 8FA60030 */ lw $a2, 0x30($sp) -.L7F06CA2C: -/* 0A155C 7F06CA2C 94A20000 */ lhu $v0, ($a1) -/* 0A1560 7F06CA30 24010001 */ li $at, 1 -/* 0A1564 7F06CA34 8FA40028 */ lw $a0, 0x28($sp) -/* 0A1568 7F06CA38 304F00FF */ andi $t7, $v0, 0xff -/* 0A156C 7F06CA3C 11E10009 */ beq $t7, $at, .L7F06CA64 -/* 0A1570 7F06CA40 24010002 */ li $at, 2 -/* 0A1574 7F06CA44 11E10039 */ beq $t7, $at, .L7F06CB2C -/* 0A1578 7F06CA48 24010003 */ li $at, 3 -/* 0A157C 7F06CA4C 11E1003F */ beq $t7, $at, .L7F06CB4C -/* 0A1580 7F06CA50 24010015 */ li $at, 21 -/* 0A1584 7F06CA54 51E10046 */ beql $t7, $at, .L7F06CB70 -/* 0A1588 7F06CA58 8CA20004 */ lw $v0, 4($a1) -/* 0A158C 7F06CA5C 1000004B */ b .L7F06CB8C -/* 0A1590 7F06CA60 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CA64: -/* 0A1594 7F06CA64 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A1598 7F06CA68 AFA60030 */ sw $a2, 0x30($sp) -/* 0A159C 7F06CA6C 8FA60030 */ lw $a2, 0x30($sp) -/* 0A15A0 7F06CA70 C4460008 */ lwc1 $f6, 8($v0) -/* 0A15A4 7F06CA74 C4C40000 */ lwc1 $f4, ($a2) -/* 0A15A8 7F06CA78 46062201 */ sub.s $f8, $f4, $f6 -/* 0A15AC 7F06CA7C E7A80018 */ swc1 $f8, 0x18($sp) -/* 0A15B0 7F06CA80 C4500010 */ lwc1 $f16, 0x10($v0) -/* 0A15B4 7F06CA84 C4CA0008 */ lwc1 $f10, 8($a2) -/* 0A15B8 7F06CA88 46105481 */ sub.s $f18, $f10, $f16 -/* 0A15BC 7F06CA8C E7B20020 */ swc1 $f18, 0x20($sp) -/* 0A15C0 7F06CA90 C4C40000 */ lwc1 $f4, ($a2) -/* 0A15C4 7F06CA94 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 0A15C8 7F06CA98 E4440008 */ swc1 $f4, 8($v0) -/* 0A15CC 7F06CA9C C4C60004 */ lwc1 $f6, 4($a2) -/* 0A15D0 7F06CAA0 C444002C */ lwc1 $f4, 0x2c($v0) -/* 0A15D4 7F06CAA4 E446000C */ swc1 $f6, 0xc($v0) -/* 0A15D8 7F06CAA8 C4C80008 */ lwc1 $f8, 8($a2) -/* 0A15DC 7F06CAAC E4480010 */ swc1 $f8, 0x10($v0) -/* 0A15E0 7F06CAB0 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 0A15E4 7F06CAB4 46105480 */ add.s $f18, $f10, $f16 -/* 0A15E8 7F06CAB8 C44A0034 */ lwc1 $f10, 0x34($v0) -/* 0A15EC 7F06CABC E4520024 */ swc1 $f18, 0x24($v0) -/* 0A15F0 7F06CAC0 C7A60020 */ lwc1 $f6, 0x20($sp) -/* 0A15F4 7F06CAC4 46062200 */ add.s $f8, $f4, $f6 -/* 0A15F8 7F06CAC8 C444003C */ lwc1 $f4, 0x3c($v0) -/* 0A15FC 7F06CACC E448002C */ swc1 $f8, 0x2c($v0) -/* 0A1600 7F06CAD0 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 0A1604 7F06CAD4 46105480 */ add.s $f18, $f10, $f16 -/* 0A1608 7F06CAD8 C44A0040 */ lwc1 $f10, 0x40($v0) -/* 0A160C 7F06CADC E4520034 */ swc1 $f18, 0x34($v0) -/* 0A1610 7F06CAE0 C7A60020 */ lwc1 $f6, 0x20($sp) -/* 0A1614 7F06CAE4 46062200 */ add.s $f8, $f4, $f6 -/* 0A1618 7F06CAE8 C4440048 */ lwc1 $f4, 0x48($v0) -/* 0A161C 7F06CAEC E448003C */ swc1 $f8, 0x3c($v0) -/* 0A1620 7F06CAF0 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 0A1624 7F06CAF4 46105480 */ add.s $f18, $f10, $f16 -/* 0A1628 7F06CAF8 C44A004C */ lwc1 $f10, 0x4c($v0) -/* 0A162C 7F06CAFC E4520040 */ swc1 $f18, 0x40($v0) -/* 0A1630 7F06CB00 C7A60020 */ lwc1 $f6, 0x20($sp) -/* 0A1634 7F06CB04 46062200 */ add.s $f8, $f4, $f6 -/* 0A1638 7F06CB08 C4440054 */ lwc1 $f4, 0x54($v0) -/* 0A163C 7F06CB0C E4480048 */ swc1 $f8, 0x48($v0) -/* 0A1640 7F06CB10 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 0A1644 7F06CB14 46105480 */ add.s $f18, $f10, $f16 -/* 0A1648 7F06CB18 E452004C */ swc1 $f18, 0x4c($v0) -/* 0A164C 7F06CB1C C7A60020 */ lwc1 $f6, 0x20($sp) -/* 0A1650 7F06CB20 46062200 */ add.s $f8, $f4, $f6 -/* 0A1654 7F06CB24 10000018 */ b .L7F06CB88 -/* 0A1658 7F06CB28 E4480054 */ swc1 $f8, 0x54($v0) -.L7F06CB2C: -/* 0A165C 7F06CB2C 8CA20004 */ lw $v0, 4($a1) -/* 0A1660 7F06CB30 C4CA0000 */ lwc1 $f10, ($a2) -/* 0A1664 7F06CB34 E44A0000 */ swc1 $f10, ($v0) -/* 0A1668 7F06CB38 C4D00004 */ lwc1 $f16, 4($a2) -/* 0A166C 7F06CB3C E4500004 */ swc1 $f16, 4($v0) -/* 0A1670 7F06CB40 C4D20008 */ lwc1 $f18, 8($a2) -/* 0A1674 7F06CB44 10000010 */ b .L7F06CB88 -/* 0A1678 7F06CB48 E4520008 */ swc1 $f18, 8($v0) -.L7F06CB4C: -/* 0A167C 7F06CB4C 8CA20004 */ lw $v0, 4($a1) -/* 0A1680 7F06CB50 C4C40000 */ lwc1 $f4, ($a2) -/* 0A1684 7F06CB54 E4440000 */ swc1 $f4, ($v0) -/* 0A1688 7F06CB58 C4C60004 */ lwc1 $f6, 4($a2) -/* 0A168C 7F06CB5C E4460004 */ swc1 $f6, 4($v0) -/* 0A1690 7F06CB60 C4C80008 */ lwc1 $f8, 8($a2) -/* 0A1694 7F06CB64 10000008 */ b .L7F06CB88 -/* 0A1698 7F06CB68 E4480008 */ swc1 $f8, 8($v0) -/* 0A169C 7F06CB6C 8CA20004 */ lw $v0, 4($a1) -.L7F06CB70: -/* 0A16A0 7F06CB70 C4CA0000 */ lwc1 $f10, ($a2) -/* 0A16A4 7F06CB74 E44A0000 */ swc1 $f10, ($v0) -/* 0A16A8 7F06CB78 C4D00004 */ lwc1 $f16, 4($a2) -/* 0A16AC 7F06CB7C E4500004 */ swc1 $f16, 4($v0) -/* 0A16B0 7F06CB80 C4D20008 */ lwc1 $f18, 8($a2) -/* 0A16B4 7F06CB84 E4520008 */ swc1 $f18, 8($v0) -.L7F06CB88: -/* 0A16B8 7F06CB88 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CB8C: -/* 0A16BC 7F06CB8C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0A16C0 7F06CB90 03E00008 */ jr $ra -/* 0A16C4 7F06CB94 00000000 */ nop -) -#endif - -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel setpartoffset -/* 09FA58 7F06D068 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 09FA5C 7F06D06C AFBF0014 */ sw $ra, 0x14($sp) -/* 09FA60 7F06D070 94A20000 */ lhu $v0, ($a1) -/* 09FA64 7F06D074 24010001 */ li $at, 1 -/* 09FA68 7F06D078 304E00FF */ andi $t6, $v0, 0xff -/* 09FA6C 7F06D07C 11C10009 */ beq $t6, $at, .L7F06D0A4 -/* 09FA70 7F06D080 24010002 */ li $at, 2 -/* 09FA74 7F06D084 11C10039 */ beq $t6, $at, .L7F06D16C -/* 09FA78 7F06D088 24010003 */ li $at, 3 -/* 09FA7C 7F06D08C 11C1003F */ beq $t6, $at, .L7F06D18C -/* 09FA80 7F06D090 24010015 */ li $at, 21 -/* 09FA84 7F06D094 51C10046 */ beql $t6, $at, .L7F06D1B0 -/* 09FA88 7F06D098 8CA20004 */ lw $v0, 4($a1) -/* 09FA8C 7F06D09C 1000004B */ b .L7F06D1CC -/* 09FA90 7F06D0A0 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06D0A4: -/* 09FA94 7F06D0A4 0FC1B3A3 */ jal extract_id_from_object_structure_microcode -/* 09FA98 7F06D0A8 AFA60030 */ sw $a2, 0x30($sp) -/* 09FA9C 7F06D0AC 8FA60030 */ lw $a2, 0x30($sp) -/* 09FAA0 7F06D0B0 C4460008 */ lwc1 $f6, 8($v0) -/* 09FAA4 7F06D0B4 C4C40000 */ lwc1 $f4, ($a2) -/* 09FAA8 7F06D0B8 46062201 */ sub.s $f8, $f4, $f6 -/* 09FAAC 7F06D0BC E7A80018 */ swc1 $f8, 0x18($sp) -/* 09FAB0 7F06D0C0 C4500010 */ lwc1 $f16, 0x10($v0) -/* 09FAB4 7F06D0C4 C4CA0008 */ lwc1 $f10, 8($a2) -/* 09FAB8 7F06D0C8 46105481 */ sub.s $f18, $f10, $f16 -/* 09FABC 7F06D0CC E7B20020 */ swc1 $f18, 0x20($sp) -/* 09FAC0 7F06D0D0 C4C40000 */ lwc1 $f4, ($a2) -/* 09FAC4 7F06D0D4 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 09FAC8 7F06D0D8 E4440008 */ swc1 $f4, 8($v0) -/* 09FACC 7F06D0DC C4C60004 */ lwc1 $f6, 4($a2) -/* 09FAD0 7F06D0E0 C444002C */ lwc1 $f4, 0x2c($v0) -/* 09FAD4 7F06D0E4 E446000C */ swc1 $f6, 0xc($v0) -/* 09FAD8 7F06D0E8 C4C80008 */ lwc1 $f8, 8($a2) -/* 09FADC 7F06D0EC E4480010 */ swc1 $f8, 0x10($v0) -/* 09FAE0 7F06D0F0 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 09FAE4 7F06D0F4 46105480 */ add.s $f18, $f10, $f16 -/* 09FAE8 7F06D0F8 C44A0034 */ lwc1 $f10, 0x34($v0) -/* 09FAEC 7F06D0FC E4520024 */ swc1 $f18, 0x24($v0) -/* 09FAF0 7F06D100 C7A60020 */ lwc1 $f6, 0x20($sp) -/* 09FAF4 7F06D104 46062200 */ add.s $f8, $f4, $f6 -/* 09FAF8 7F06D108 C444003C */ lwc1 $f4, 0x3c($v0) -/* 09FAFC 7F06D10C E448002C */ swc1 $f8, 0x2c($v0) -/* 09FB00 7F06D110 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 09FB04 7F06D114 46105480 */ add.s $f18, $f10, $f16 -/* 09FB08 7F06D118 C44A0040 */ lwc1 $f10, 0x40($v0) -/* 09FB0C 7F06D11C E4520034 */ swc1 $f18, 0x34($v0) -/* 09FB10 7F06D120 C7A60020 */ lwc1 $f6, 0x20($sp) -/* 09FB14 7F06D124 46062200 */ add.s $f8, $f4, $f6 -/* 09FB18 7F06D128 C4440048 */ lwc1 $f4, 0x48($v0) -/* 09FB1C 7F06D12C E448003C */ swc1 $f8, 0x3c($v0) -/* 09FB20 7F06D130 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 09FB24 7F06D134 46105480 */ add.s $f18, $f10, $f16 -/* 09FB28 7F06D138 C44A004C */ lwc1 $f10, 0x4c($v0) -/* 09FB2C 7F06D13C E4520040 */ swc1 $f18, 0x40($v0) -/* 09FB30 7F06D140 C7A60020 */ lwc1 $f6, 0x20($sp) -/* 09FB34 7F06D144 46062200 */ add.s $f8, $f4, $f6 -/* 09FB38 7F06D148 C4440054 */ lwc1 $f4, 0x54($v0) -/* 09FB3C 7F06D14C E4480048 */ swc1 $f8, 0x48($v0) -/* 09FB40 7F06D150 C7B00018 */ lwc1 $f16, 0x18($sp) -/* 09FB44 7F06D154 46105480 */ add.s $f18, $f10, $f16 -/* 09FB48 7F06D158 E452004C */ swc1 $f18, 0x4c($v0) -/* 09FB4C 7F06D15C C7A60020 */ lwc1 $f6, 0x20($sp) -/* 09FB50 7F06D160 46062200 */ add.s $f8, $f4, $f6 -/* 09FB54 7F06D164 10000018 */ b .L7F06D1C8 -/* 09FB58 7F06D168 E4480054 */ swc1 $f8, 0x54($v0) -.L7F06D16C: -/* 09FB5C 7F06D16C 8CA20004 */ lw $v0, 4($a1) -/* 09FB60 7F06D170 C4CA0000 */ lwc1 $f10, ($a2) -/* 09FB64 7F06D174 E44A0000 */ swc1 $f10, ($v0) -/* 09FB68 7F06D178 C4D00004 */ lwc1 $f16, 4($a2) -/* 09FB6C 7F06D17C E4500004 */ swc1 $f16, 4($v0) -/* 09FB70 7F06D180 C4D20008 */ lwc1 $f18, 8($a2) -/* 09FB74 7F06D184 10000010 */ b .L7F06D1C8 -/* 09FB78 7F06D188 E4520008 */ swc1 $f18, 8($v0) -.L7F06D18C: -/* 09FB7C 7F06D18C 8CA20004 */ lw $v0, 4($a1) -/* 09FB80 7F06D190 C4C40000 */ lwc1 $f4, ($a2) -/* 09FB84 7F06D194 E4440000 */ swc1 $f4, ($v0) -/* 09FB88 7F06D198 C4C60004 */ lwc1 $f6, 4($a2) -/* 09FB8C 7F06D19C E4460004 */ swc1 $f6, 4($v0) -/* 09FB90 7F06D1A0 C4C80008 */ lwc1 $f8, 8($a2) -/* 09FB94 7F06D1A4 10000008 */ b .L7F06D1C8 -/* 09FB98 7F06D1A8 E4480008 */ swc1 $f8, 8($v0) -/* 09FB9C 7F06D1AC 8CA20004 */ lw $v0, 4($a1) -.L7F06D1B0: -/* 09FBA0 7F06D1B0 C4CA0000 */ lwc1 $f10, ($a2) -/* 09FBA4 7F06D1B4 E44A0000 */ swc1 $f10, ($v0) -/* 09FBA8 7F06D1B8 C4D00004 */ lwc1 $f16, 4($a2) -/* 09FBAC 7F06D1BC E4500004 */ swc1 $f16, 4($v0) -/* 09FBB0 7F06D1C0 C4D20008 */ lwc1 $f18, 8($a2) -/* 09FBB4 7F06D1C4 E4520008 */ swc1 $f18, 8($v0) -.L7F06D1C8: -/* 09FBB8 7F06D1C8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06D1CC: -/* 09FBBC 7F06D1CC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 09FBC0 7F06D1D0 03E00008 */ jr $ra -/* 09FBC4 7F06D1D4 00000000 */ nop -) -#endif - -#endif - - void getsuboffset(Model *objinst, coord3d *offset) //#MATCH @@ -1199,236 +778,54 @@ f32 getsubroty(Model *objinst) root = objinst->obj->RootNode; if ((root->Opcode & 0xFF) == 1) { - return ((struct modeldata_root *)extract_id_from_object_structure_microcode(objinst, root))->subroty; + return ((struct modeldata_root *)modelGetNodeRwData(objinst, root))->subroty; } return 0.0f; } - - -#ifdef NONMATCHING -//https://decomp.me/scratch/4syS1 -/* - * Sets the Heading (in Radians) of the Object Instance - */ -void setsubroty(Model *objinst, f32 radHeading) //#95% +void setsubroty(Model *model, f32 angle) { - if (!objinst) + ModelNode* node; +#if defined(LEFTOVERDEBUG) + if (!model) { osSyncPrintf("setsubroty: no objinst!"); return_null(); } - if (!objinst->obj) //< needs to be v1 not a1 + + if (!model->obj) //< needs to be v1 not a1 { osSyncPrintf("setsubroty: objinst has no object!"); return_null(); } - if (!objinst->obj->RootNode) + if (!model->obj->RootNode) { osSyncPrintf("setsubroty: objinst has no root part!"); return_null(); } - - if ((objinst->obj->RootNode->Opcode & 0xff) == 1) +#endif + node = model->obj->RootNode; + if ((node->Opcode & 0xff) == MODELNODE_OPCODE_HEADERRECORD) { - struct modeldata_root *objinstroot = extract_id_from_object_structure_microcode(objinst, objinst->obj->RootNode); //< needs to move v1 to a1 - f32 radHeadingChange = radHeading - objinstroot->subroty; + ModelRwData_HeaderRecord *rwdata = modelGetNodeRwData(model, node); + f32 diff = angle - rwdata->unk14; - if (radHeadingChange < 0) - { - radHeadingChange += M_TAU_F; - } + if (diff < 0) { diff += M_TAU_F; } - objinstroot->unk30 += radHeadingChange; - if (objinstroot->unk30 >= M_TAU_F) - { - objinstroot->unk30 -= M_TAU_F; - } + rwdata->unk30 += diff; - objinstroot->unk20 += radHeadingChange; - if (objinstroot->unk20 >= M_TAU_F) - { - objinstroot->unk20 -= M_TAU_F; - } - objinstroot->subroty = radHeading; //roty + if (rwdata->unk30 >= M_TAU_F) { rwdata->unk30 -= M_TAU_F; } + + rwdata->unk20 += diff; + + if (rwdata->unk20 >= M_TAU_F) { rwdata->unk20 -= M_TAU_F; } + + rwdata->unk14 = angle; } } -#else -#ifndef VERSION_EU -//D:800547A0 -const char aSetsubrotyNoObjinst[] = "setsubroty: no objinst!"; -//D:800547B8 -const char aSetsubrotyObjinstHasNoObject[] = "setsubroty: objinst has no object!"; -//D:800547DC -const char aSetsubrotyObjinstHasNoRootPart[] = "setsubroty: objinst has no root part!"; -GLOBAL_ASM( -.late_rodata -glabel D_80054B58 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80054B5C -.word 0x40c90fdb /*6.2831855*/ -.text -glabel setsubroty -/* 0A186C 7F06CD3C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A1870 7F06CD40 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A1874 7F06CD44 AFA40018 */ sw $a0, 0x18($sp) -/* 0A1878 7F06CD48 14800006 */ bnez $a0, .L7F06CD64 -/* 0A187C 7F06CD4C AFA5001C */ sw $a1, 0x1c($sp) -/* 0A1880 7F06CD50 3C048005 */ lui $a0, %hi(aSetsubrotyNoObjinst) -/* 0A1884 7F06CD54 0C0033D1 */ jal osSyncPrintf -/* 0A1888 7F06CD58 248447A0 */ addiu $a0, %lo(aSetsubrotyNoObjinst) # addiu $a0, $a0, 0x47a0 -/* 0A188C 7F06CD5C 0FC1B11B */ jal return_null -/* 0A1890 7F06CD60 00000000 */ nop -.L7F06CD64: -/* 0A1894 7F06CD64 8FAF0018 */ lw $t7, 0x18($sp) -/* 0A1898 7F06CD68 3C048005 */ lui $a0, %hi(aSetsubrotyObjinstHasNoObject) -/* 0A189C 7F06CD6C 8DE20008 */ lw $v0, 8($t7) -/* 0A18A0 7F06CD70 54400008 */ bnezl $v0, .L7F06CD94 -/* 0A18A4 7F06CD74 8C430000 */ lw $v1, ($v0) -/* 0A18A8 7F06CD78 0C0033D1 */ jal osSyncPrintf -/* 0A18AC 7F06CD7C 248447B8 */ addiu $a0, %lo(aSetsubrotyObjinstHasNoObject) # addiu $a0, $a0, 0x47b8 -/* 0A18B0 7F06CD80 0FC1B11B */ jal return_null -/* 0A18B4 7F06CD84 00000000 */ nop -/* 0A18B8 7F06CD88 8FB80018 */ lw $t8, 0x18($sp) -/* 0A18BC 7F06CD8C 8F020008 */ lw $v0, 8($t8) -/* 0A18C0 7F06CD90 8C430000 */ lw $v1, ($v0) -.L7F06CD94: -/* 0A18C4 7F06CD94 3C048005 */ lui $a0, %hi(aSetsubrotyObjinstHasNoRootPart) -/* 0A18C8 7F06CD98 54600009 */ bnezl $v1, .L7F06CDC0 -/* 0A18CC 7F06CD9C 94690000 */ lhu $t1, ($v1) -/* 0A18D0 7F06CDA0 0C0033D1 */ jal osSyncPrintf -/* 0A18D4 7F06CDA4 248447DC */ addiu $a0, %lo(aSetsubrotyObjinstHasNoRootPart) # addiu $a0, $a0, 0x47dc -/* 0A18D8 7F06CDA8 0FC1B11B */ jal return_null -/* 0A18DC 7F06CDAC 00000000 */ nop -/* 0A18E0 7F06CDB0 8FB90018 */ lw $t9, 0x18($sp) -/* 0A18E4 7F06CDB4 8F280008 */ lw $t0, 8($t9) -/* 0A18E8 7F06CDB8 8D030000 */ lw $v1, ($t0) -/* 0A18EC 7F06CDBC 94690000 */ lhu $t1, ($v1) -.L7F06CDC0: -/* 0A18F0 7F06CDC0 24010001 */ li $at, 1 -/* 0A18F4 7F06CDC4 00602825 */ move $a1, $v1 -/* 0A18F8 7F06CDC8 312A00FF */ andi $t2, $t1, 0xff -/* 0A18FC 7F06CDCC 55410027 */ bnel $t2, $at, .L7F06CE6C -/* 0A1900 7F06CDD0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A1904 7F06CDD4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A1908 7F06CDD8 8FA40018 */ lw $a0, 0x18($sp) -/* 0A190C 7F06CDDC C7A4001C */ lwc1 $f4, 0x1c($sp) -/* 0A1910 7F06CDE0 C4460014 */ lwc1 $f6, 0x14($v0) -/* 0A1914 7F06CDE4 44804000 */ mtc1 $zero, $f8 -/* 0A1918 7F06CDE8 3C018005 */ lui $at, %hi(D_80054B58) -/* 0A191C 7F06CDEC 46062001 */ sub.s $f0, $f4, $f6 -/* 0A1920 7F06CDF0 4608003C */ c.lt.s $f0, $f8 -/* 0A1924 7F06CDF4 00000000 */ nop -/* 0A1928 7F06CDF8 45020004 */ bc1fl .L7F06CE0C -/* 0A192C 7F06CDFC C44A0030 */ lwc1 $f10, 0x30($v0) -/* 0A1930 7F06CE00 C42C4B58 */ lwc1 $f12, %lo(D_80054B58)($at) -/* 0A1934 7F06CE04 460C0000 */ add.s $f0, $f0, $f12 -/* 0A1938 7F06CE08 C44A0030 */ lwc1 $f10, 0x30($v0) -.L7F06CE0C: -/* 0A193C 7F06CE0C 3C018005 */ lui $at, %hi(D_80054B5C) -/* 0A1940 7F06CE10 C42C4B5C */ lwc1 $f12, %lo(D_80054B5C)($at) -/* 0A1944 7F06CE14 46005400 */ add.s $f16, $f10, $f0 -/* 0A1948 7F06CE18 E4500030 */ swc1 $f16, 0x30($v0) -/* 0A194C 7F06CE1C C4420030 */ lwc1 $f2, 0x30($v0) -/* 0A1950 7F06CE20 4602603E */ c.le.s $f12, $f2 -/* 0A1954 7F06CE24 00000000 */ nop -/* 0A1958 7F06CE28 45020004 */ bc1fl .L7F06CE3C -/* 0A195C 7F06CE2C C4440020 */ lwc1 $f4, 0x20($v0) -/* 0A1960 7F06CE30 460C1481 */ sub.s $f18, $f2, $f12 -/* 0A1964 7F06CE34 E4520030 */ swc1 $f18, 0x30($v0) -/* 0A1968 7F06CE38 C4440020 */ lwc1 $f4, 0x20($v0) -.L7F06CE3C: -/* 0A196C 7F06CE3C 46002180 */ add.s $f6, $f4, $f0 -/* 0A1970 7F06CE40 E4460020 */ swc1 $f6, 0x20($v0) -/* 0A1974 7F06CE44 C4420020 */ lwc1 $f2, 0x20($v0) -/* 0A1978 7F06CE48 4602603E */ c.le.s $f12, $f2 -/* 0A197C 7F06CE4C 00000000 */ nop -/* 0A1980 7F06CE50 45020004 */ bc1fl .L7F06CE64 -/* 0A1984 7F06CE54 C7AA001C */ lwc1 $f10, 0x1c($sp) -/* 0A1988 7F06CE58 460C1201 */ sub.s $f8, $f2, $f12 -/* 0A198C 7F06CE5C E4480020 */ swc1 $f8, 0x20($v0) -/* 0A1990 7F06CE60 C7AA001C */ lwc1 $f10, 0x1c($sp) -.L7F06CE64: -/* 0A1994 7F06CE64 E44A0014 */ swc1 $f10, 0x14($v0) -/* 0A1998 7F06CE68 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CE6C: -/* 0A199C 7F06CE6C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A19A0 7F06CE70 03E00008 */ jr $ra -/* 0A19A4 7F06CE74 00000000 */ nop -) -#endif -#ifdef VERSION_EU -GLOBAL_ASM( -.late_rodata -glabel D_80054B58 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80054B5C -.word 0x40c90fdb /*6.2831855*/ -.text -glabel setsubroty -/* 09FC64 7F06D274 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09FC68 7F06D278 AFBF0014 */ sw $ra, 0x14($sp) -/* 09FC6C 7F06D27C 8C8E0008 */ lw $t6, 8($a0) -/* 09FC70 7F06D280 44857000 */ mtc1 $a1, $f14 -/* 09FC74 7F06D284 24010001 */ li $at, 1 -/* 09FC78 7F06D288 8DC50000 */ lw $a1, ($t6) -/* 09FC7C 7F06D28C 94AF0000 */ lhu $t7, ($a1) -/* 09FC80 7F06D290 31F800FF */ andi $t8, $t7, 0xff -/* 09FC84 7F06D294 57010026 */ bnel $t8, $at, .L7F06D330 -/* 09FC88 7F06D298 8FBF0014 */ lw $ra, 0x14($sp) -/* 09FC8C 7F06D29C 0FC1B3A3 */ jal extract_id_from_object_structure_microcode -/* 09FC90 7F06D2A0 E7AE001C */ swc1 $f14, 0x1c($sp) -/* 09FC94 7F06D2A4 C7AE001C */ lwc1 $f14, 0x1c($sp) -/* 09FC98 7F06D2A8 C4440014 */ lwc1 $f4, 0x14($v0) -/* 09FC9C 7F06D2AC 44803000 */ mtc1 $zero, $f6 -/* 09FCA0 7F06D2B0 3C018005 */ lui $at, %hi(D_80054B58) # $at, 0x8005 -/* 09FCA4 7F06D2B4 46047001 */ sub.s $f0, $f14, $f4 -/* 09FCA8 7F06D2B8 4606003C */ c.lt.s $f0, $f6 -/* 09FCAC 7F06D2BC 00000000 */ nop -/* 09FCB0 7F06D2C0 45020004 */ bc1fl .L7F06D2D4eu -/* 09FCB4 7F06D2C4 C4480030 */ lwc1 $f8, 0x30($v0) -/* 09FCB8 7F06D2C8 C42CA730 */ lwc1 $f12, %lo(D_80054B58)($at) -/* 09FCBC 7F06D2CC 460C0000 */ add.s $f0, $f0, $f12 -/* 09FCC0 7F06D2D0 C4480030 */ lwc1 $f8, 0x30($v0) -.L7F06D2D4eu: -/* 09FCC4 7F06D2D4 3C018005 */ lui $at, %hi(D_80054B5C) # $at, 0x8005 -/* 09FCC8 7F06D2D8 C42CA734 */ lwc1 $f12, %lo(D_80054B5C)($at) -/* 09FCCC 7F06D2DC 46004280 */ add.s $f10, $f8, $f0 -/* 09FCD0 7F06D2E0 E44A0030 */ swc1 $f10, 0x30($v0) -/* 09FCD4 7F06D2E4 C4420030 */ lwc1 $f2, 0x30($v0) -/* 09FCD8 7F06D2E8 4602603E */ c.le.s $f12, $f2 -/* 09FCDC 7F06D2EC 00000000 */ nop -/* 09FCE0 7F06D2F0 45020004 */ bc1fl .L7F06D304 -/* 09FCE4 7F06D2F4 C4520020 */ lwc1 $f18, 0x20($v0) -/* 09FCE8 7F06D2F8 460C1401 */ sub.s $f16, $f2, $f12 -/* 09FCEC 7F06D2FC E4500030 */ swc1 $f16, 0x30($v0) -/* 09FCF0 7F06D300 C4520020 */ lwc1 $f18, 0x20($v0) -.L7F06D304: -/* 09FCF4 7F06D304 46009100 */ add.s $f4, $f18, $f0 -/* 09FCF8 7F06D308 E4440020 */ swc1 $f4, 0x20($v0) -/* 09FCFC 7F06D30C C4420020 */ lwc1 $f2, 0x20($v0) -/* 09FD00 7F06D310 4602603E */ c.le.s $f12, $f2 -/* 09FD04 7F06D314 00000000 */ nop -/* 09FD08 7F06D318 45020004 */ bc1fl .L7F06D32C -/* 09FD0C 7F06D31C E44E0014 */ swc1 $f14, 0x14($v0) -/* 09FD10 7F06D320 460C1181 */ sub.s $f6, $f2, $f12 -/* 09FD14 7F06D324 E4460020 */ swc1 $f6, 0x20($v0) -/* 09FD18 7F06D328 E44E0014 */ swc1 $f14, 0x14($v0) -.L7F06D32C: -/* 09FD1C 7F06D32C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06D330: -/* 09FD20 7F06D330 27BD0018 */ addiu $sp, $sp, 0x18 -/* 09FD24 7F06D334 03E00008 */ jr $ra -/* 09FD28 7F06D338 00000000 */ nop -) -#endif -#endif - - - void modelSetScale(Model *objinst, f32 scale) @@ -1437,384 +834,90 @@ void modelSetScale(Model *objinst, f32 scale) } - - - -#ifdef NONMATCHING -void sub_GAME_7F06CE84(Model *objinst, f32 arg1) +void sub_GAME_7F06CE84(Model* arg0, f32 arg1) { - objinst->b8 = arg1; + arg0->unkb8 = arg1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06CE84 -/* 0A19B4 7F06CE84 44856000 */ mtc1 $a1, $f12 -/* 0A19B8 7F06CE88 03E00008 */ jr $ra -/* 0A19BC 7F06CE8C E48C00B8 */ swc1 $f12, 0xb8($a0) -) -#endif - - - -#ifdef NONMATCHING -//https://decomp.me/scratch/LR3SV -f32 getjointsize(Model *objinst, ModelNode *part) //#76% +f32 getjointsize(Model *model, ModelNode *node) { - Model * temp_a2; + Model *temp_a2; ModelNode *temp_a1; s32 temp_t7; - //ModelNode *part; - if (!objinst) +#if defined(LEFTOVERDEBUG) + if (!model) { osSyncPrintf("getjointsize: no objinst!\n"); return_null(); } - part = part; - if (part) +#endif + + if (node) { do { - switch (part->Opcode & 0xFF) + switch (node->Opcode & 0xFF) { - case 1: + case MODELNODE_OPCODE_HEADERRECORD: { - ModelNode_HeaderRecord *prt = part->Data; - return prt->Group1 * objinst->scale; + ModelRoData_HeaderRecord *rodata = &node->Data->Header; + return rodata->GroupsAsF32 * model->scale; } - case 2: + case MODELNODE_OPCODE_GROUPRECORD: { - ModelNode_GroupRecord *prt = part->Data; - return prt->BoundingVolumeRadius * objinst->scale; + ModelRoData_GroupRecord *rodata = &node->Data->Group; + return rodata->BoundingVolumeRadius * model->scale; } - case 3: + case MODELNODE_OPCODE_UNUSED_03: { - ModelNode_GroupRecord *prt = part->Data; - return prt->BoundingVolumeRadius * objinst->scale; + ModelRoData_GroupRecord *rodata = &node->Data->Group; + return rodata->BoundingVolumeRadius * model->scale; } - case 21: + case MODELNODE_OPCODE_GROUPSIMPLERECORD: { - ModelNode_GroupSimpleRecord *prt = part->Data; - return prt->BoundingVolumeRadius * objinst->scale; + ModelRoData_GroupSimpleRecord *rodata = &node->Data->GroupSimple; + return rodata->BoundingVolumeRadius * model->scale; } - case 11: + case MODELNODE_OPCODE_OP11RECORD: { - ModelNode_Op11Record *prt = part->Data; - return prt->BoundingVolumeRadius * objinst->scale; + ModelRoData_Op11Record *rodata = &node->Data->Op11; + return rodata->BoundingVolumeRadius * model->scale; } - case 12: + case MODELNODE_OPCODE_GUNFIRERECORD: { - ModelNode_GunfireRecord *prt = part->Data; - return prt->Scale * objinst->scale; + ModelRoData_GunfireRecord *rodata = &node->Data->Gunfire; + return rodata->Scale * model->scale; } - case 13: + case MODELNODE_OPCODE_SHADOWRECORD: { - ModelNode_ShadowRecord *prt = part->Data; - return prt->Scale * objinst->scale; + ModelRoData_ShadowRecord *rodata = &node->Data->Shadow; + return rodata->Scale * model->scale; } - case 14: + case MODELNODE_OPCODE_OP14RECORD: { - ModelNode_Op14Record *prt = part->Data; - return prt->Scale * objinst->scale; + ModelRoData_Op14Record *rodata = &node->Data->Op14; + return rodata->Scale * model->scale; } - case 15: + case MODELNODE_OPCODE_INTERLINKAGERECORD: { - ModelNode_InterlinkageRecord *prt = part->Data; - return prt->Scale * objinst->scale; + ModelRoData_InterlinkageRecord *rodata = &node->Data->Interlinkage; + return rodata->Scale * model->scale; } - case 16: + case MODELNODE_OPCODE_OP16RECORD: { - ModelNode_Op16Record *prt = part->Data; - return prt->Scale * objinst->scale; + ModelNode_Op16Record *rodata = &node->Data->Op16; + return rodata->Scale * model->scale; } default: - part = part->Parent; + node = node->Parent; } - } while (part); + } while (node); } return 0.0f; } -#else -#ifndef VERSION_EU -//D:80054804 -const char aGetjointsizeNoObjinst[] = "getjointsize: no objinst!\n"; -GLOBAL_ASM( -.late_rodata -/*D:80054B60*/ -glabel jpt_getjointsize -.word .L7F06CEF8 -.word .L7F06CF10 -.word .L7F06CF28 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CF58 -.word .L7F06CF70 -.word .L7F06CF88 -.word .L7F06CFA0 -.word .L7F06CFB8 -.word .L7F06CFD0 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CF40 - -.text -glabel getjointsize -/* 0A19C0 7F06CE90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A19C4 7F06CE94 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A19C8 7F06CE98 1480000A */ bnez $a0, .L7F06CEC4 -/* 0A19CC 7F06CE9C 00803025 */ move $a2, $a0 -/* 0A19D0 7F06CEA0 3C048005 */ lui $a0, %hi(aGetjointsizeNoObjinst) -/* 0A19D4 7F06CEA4 24844804 */ addiu $a0, %lo(aGetjointsizeNoObjinst) # addiu $a0, $a0, 0x4804 -/* 0A19D8 7F06CEA8 AFA5001C */ sw $a1, 0x1c($sp) -/* 0A19DC 7F06CEAC 0C0033D1 */ jal osSyncPrintf -/* 0A19E0 7F06CEB0 AFA60018 */ sw $a2, 0x18($sp) -/* 0A19E4 7F06CEB4 0FC1B11B */ jal return_null -/* 0A19E8 7F06CEB8 00000000 */ nop -/* 0A19EC 7F06CEBC 8FA5001C */ lw $a1, 0x1c($sp) -/* 0A19F0 7F06CEC0 8FA60018 */ lw $a2, 0x18($sp) -.L7F06CEC4: -/* 0A19F4 7F06CEC4 50A0004C */ beql $a1, $zero, .L7F06CFF8 -/* 0A19F8 7F06CEC8 44800000 */ mtc1 $zero, $f0 -/* 0A19FC 7F06CECC 94AE0000 */ lhu $t6, ($a1) -.L7F06CED0: -/* 0A1A00 7F06CED0 31CF00FF */ andi $t7, $t6, 0xff -/* 0A1A04 7F06CED4 25F8FFFF */ addiu $t8, $t7, -1 -/* 0A1A08 7F06CED8 2F010015 */ sltiu $at, $t8, 0x15 -/* 0A1A0C 7F06CEDC 10200042 */ beqz $at, .L7F06CFE8 -/* 0A1A10 7F06CEE0 0018C080 */ sll $t8, $t8, 2 -/* 0A1A14 7F06CEE4 3C018005 */ lui $at, %hi(jpt_getjointsize) -/* 0A1A18 7F06CEE8 00380821 */ addu $at, $at, $t8 -/* 0A1A1C 7F06CEEC 8C384B60 */ lw $t8, %lo(jpt_getjointsize)($at) -.L7F06CEF0: -/* 0A1A20 7F06CEF0 03000008 */ jr $t8 -/* 0A1A24 7F06CEF4 00000000 */ nop -.L7F06CEF8: -/* 0A1A28 7F06CEF8 8CA20004 */ lw $v0, 4($a1) -/* 0A1A2C 7F06CEFC C4C60014 */ lwc1 $f6, 0x14($a2) -/* 0A1A30 7F06CF00 C4440008 */ lwc1 $f4, 8($v0) -/* 0A1A34 7F06CF04 46062002 */ mul.s $f0, $f4, $f6 -/* 0A1A38 7F06CF08 1000003D */ b .L7F06D000 -/* 0A1A3C 7F06CF0C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CF10: -/* 0A1A40 7F06CF10 8CA20004 */ lw $v0, 4($a1) -/* 0A1A44 7F06CF14 C4CA0014 */ lwc1 $f10, 0x14($a2) -/* 0A1A48 7F06CF18 C4480018 */ lwc1 $f8, 0x18($v0) -/* 0A1A4C 7F06CF1C 460A4002 */ mul.s $f0, $f8, $f10 -/* 0A1A50 7F06CF20 10000037 */ b .L7F06D000 -/* 0A1A54 7F06CF24 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CF28: -/* 0A1A58 7F06CF28 8CA20004 */ lw $v0, 4($a1) -/* 0A1A5C 7F06CF2C C4D20014 */ lwc1 $f18, 0x14($a2) -/* 0A1A60 7F06CF30 C4500018 */ lwc1 $f16, 0x18($v0) -/* 0A1A64 7F06CF34 46128002 */ mul.s $f0, $f16, $f18 -/* 0A1A68 7F06CF38 10000031 */ b .L7F06D000 -/* 0A1A6C 7F06CF3C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CF40: -/* 0A1A70 7F06CF40 8CA20004 */ lw $v0, 4($a1) -/* 0A1A74 7F06CF44 C4C60014 */ lwc1 $f6, 0x14($a2) -/* 0A1A78 7F06CF48 C4440010 */ lwc1 $f4, 0x10($v0) -/* 0A1A7C 7F06CF4C 46062002 */ mul.s $f0, $f4, $f6 -/* 0A1A80 7F06CF50 1000002B */ b .L7F06D000 -/* 0A1A84 7F06CF54 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CF58: -/* 0A1A88 7F06CF58 8CA20004 */ lw $v0, 4($a1) -/* 0A1A8C 7F06CF5C C4CA0014 */ lwc1 $f10, 0x14($a2) -/* 0A1A90 7F06CF60 C4480040 */ lwc1 $f8, 0x40($v0) -/* 0A1A94 7F06CF64 460A4002 */ mul.s $f0, $f8, $f10 -/* 0A1A98 7F06CF68 10000025 */ b .L7F06D000 -/* 0A1A9C 7F06CF6C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CF70: -/* 0A1AA0 7F06CF70 8CA20004 */ lw $v0, 4($a1) -/* 0A1AA4 7F06CF74 C4D20014 */ lwc1 $f18, 0x14($a2) -/* 0A1AA8 7F06CF78 C450001C */ lwc1 $f16, 0x1c($v0) -/* 0A1AAC 7F06CF7C 46128002 */ mul.s $f0, $f16, $f18 -/* 0A1AB0 7F06CF80 1000001F */ b .L7F06D000 -/* 0A1AB4 7F06CF84 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CF88: -/* 0A1AB8 7F06CF88 8CA20004 */ lw $v0, 4($a1) -/* 0A1ABC 7F06CF8C C4C60014 */ lwc1 $f6, 0x14($a2) -/* 0A1AC0 7F06CF90 C4440018 */ lwc1 $f4, 0x18($v0) -/* 0A1AC4 7F06CF94 46062002 */ mul.s $f0, $f4, $f6 -/* 0A1AC8 7F06CF98 10000019 */ b .L7F06D000 -/* 0A1ACC 7F06CF9C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CFA0: -/* 0A1AD0 7F06CFA0 8CA20004 */ lw $v0, 4($a1) -/* 0A1AD4 7F06CFA4 C4CA0014 */ lwc1 $f10, 0x14($a2) -/* 0A1AD8 7F06CFA8 C448000C */ lwc1 $f8, 0xc($v0) -/* 0A1ADC 7F06CFAC 460A4002 */ mul.s $f0, $f8, $f10 -/* 0A1AE0 7F06CFB0 10000013 */ b .L7F06D000 -/* 0A1AE4 7F06CFB4 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CFB8: -/* 0A1AE8 7F06CFB8 8CA20004 */ lw $v0, 4($a1) -/* 0A1AEC 7F06CFBC C4D20014 */ lwc1 $f18, 0x14($a2) -/* 0A1AF0 7F06CFC0 C4500018 */ lwc1 $f16, 0x18($v0) -/* 0A1AF4 7F06CFC4 46128002 */ mul.s $f0, $f16, $f18 -/* 0A1AF8 7F06CFC8 1000000D */ b .L7F06D000 -/* 0A1AFC 7F06CFCC 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06CFD0: -/* 0A1B00 7F06CFD0 8CA20004 */ lw $v0, 4($a1) -/* 0A1B04 7F06CFD4 C4C60014 */ lwc1 $f6, 0x14($a2) -/* 0A1B08 7F06CFD8 C4440014 */ lwc1 $f4, 0x14($v0) -/* 0A1B0C 7F06CFDC 46062002 */ mul.s $f0, $f4, $f6 -/* 0A1B10 7F06CFE0 10000007 */ b .L7F06D000 -/* 0A1B14 7F06CFE4 8FBF0014 */ lw $ra, 0x14($sp) -def_7F06CEF0: -.L7F06CFE8: -/* 0A1B18 7F06CFE8 8CA50008 */ lw $a1, 8($a1) -/* 0A1B1C 7F06CFEC 54A0FFB8 */ bnezl $a1, .L7F06CED0 -/* 0A1B20 7F06CFF0 94AE0000 */ lhu $t6, ($a1) -/* 0A1B24 7F06CFF4 44800000 */ mtc1 $zero, $f0 -.L7F06CFF8: -/* 0A1B28 7F06CFF8 00000000 */ nop -/* 0A1B2C 7F06CFFC 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06D000: -/* 0A1B30 7F06D000 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A1B34 7F06D004 03E00008 */ jr $ra -/* 0A1B38 7F06D008 00000000 */ nop -) -#endif -#ifdef VERSION_EU -GLOBAL_ASM( -.late_rodata -/*D:80054B60*/ -glabel jpt_getjointsize -.word .L7F06CEF8 -.word .L7F06CF10 -.word .L7F06CF28 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CF58 -.word .L7F06CF70 -.word .L7F06CF88 -.word .L7F06CFA0 -.word .L7F06CFB8 -.word .L7F06CFD0 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CFE8 -.word .L7F06CF40 - -.text -glabel getjointsize -/* 09FD44 7F06D354 50A0004C */ beql $a1, $zero, .L7F06D488 -/* 09FD48 7F06D358 44800000 */ mtc1 $zero, $f0 -/* 09FD4C 7F06D35C 94AE0000 */ lhu $t6, ($a1) -.L7F06D360: -/* 09FD50 7F06D360 31CF00FF */ andi $t7, $t6, 0xff -/* 09FD54 7F06D364 25F8FFFF */ addiu $t8, $t7, -1 -/* 09FD58 7F06D368 2F010015 */ sltiu $at, $t8, 0x15 -/* 09FD5C 7F06D36C 10200042 */ beqz $at, .L7F06D478 -/* 09FD60 7F06D370 0018C080 */ sll $t8, $t8, 2 -/* 09FD64 7F06D374 3C018005 */ lui $at, %hi(jpt_getjointsize) -/* 09FD68 7F06D378 00380821 */ addu $at, $at, $t8 -/* 09FD6C 7F06D37C 8C38A738 */ lw $t8, %lo(jpt_getjointsize)($at) -.L7F06CEF0: -/* 09FD70 7F06D380 03000008 */ jr $t8 -/* 09FD74 7F06D384 00000000 */ nop -.L7F06CEF8: -/* 09FD78 7F06D388 8CA20004 */ lw $v0, 4($a1) -/* 09FD7C 7F06D38C C4860014 */ lwc1 $f6, 0x14($a0) -/* 09FD80 7F06D390 C4440008 */ lwc1 $f4, 8($v0) -/* 09FD84 7F06D394 46062002 */ mul.s $f0, $f4, $f6 -/* 09FD88 7F06D398 03E00008 */ jr $ra -/* 09FD8C 7F06D39C 00000000 */ nop -.L7F06CF10: -/* 09FD90 7F06D3A0 8CA20004 */ lw $v0, 4($a1) -/* 09FD94 7F06D3A4 C48A0014 */ lwc1 $f10, 0x14($a0) -/* 09FD98 7F06D3A8 C4480018 */ lwc1 $f8, 0x18($v0) -/* 09FD9C 7F06D3AC 460A4002 */ mul.s $f0, $f8, $f10 -/* 09FDA0 7F06D3B0 03E00008 */ jr $ra -/* 09FDA4 7F06D3B4 00000000 */ nop -.L7F06CF28: -/* 09FDA8 7F06D3B8 8CA20004 */ lw $v0, 4($a1) -/* 09FDAC 7F06D3BC C4920014 */ lwc1 $f18, 0x14($a0) -/* 09FDB0 7F06D3C0 C4500018 */ lwc1 $f16, 0x18($v0) -/* 09FDB4 7F06D3C4 46128002 */ mul.s $f0, $f16, $f18 -/* 09FDB8 7F06D3C8 03E00008 */ jr $ra -/* 09FDBC 7F06D3CC 00000000 */ nop -.L7F06CF40: -/* 09FDC0 7F06D3D0 8CA20004 */ lw $v0, 4($a1) -/* 09FDC4 7F06D3D4 C4860014 */ lwc1 $f6, 0x14($a0) -/* 09FDC8 7F06D3D8 C4440010 */ lwc1 $f4, 0x10($v0) -/* 09FDCC 7F06D3DC 46062002 */ mul.s $f0, $f4, $f6 -/* 09FDD0 7F06D3E0 03E00008 */ jr $ra -/* 09FDD4 7F06D3E4 00000000 */ nop -.L7F06CF58: -/* 09FDD8 7F06D3E8 8CA20004 */ lw $v0, 4($a1) -/* 09FDDC 7F06D3EC C48A0014 */ lwc1 $f10, 0x14($a0) -/* 09FDE0 7F06D3F0 C4480040 */ lwc1 $f8, 0x40($v0) -/* 09FDE4 7F06D3F4 460A4002 */ mul.s $f0, $f8, $f10 -/* 09FDE8 7F06D3F8 03E00008 */ jr $ra -/* 09FDEC 7F06D3FC 00000000 */ nop -.L7F06CF70: -/* 09FDF0 7F06D400 8CA20004 */ lw $v0, 4($a1) -/* 09FDF4 7F06D404 C4920014 */ lwc1 $f18, 0x14($a0) -/* 09FDF8 7F06D408 C450001C */ lwc1 $f16, 0x1c($v0) -/* 09FDFC 7F06D40C 46128002 */ mul.s $f0, $f16, $f18 -/* 09FE00 7F06D410 03E00008 */ jr $ra -/* 09FE04 7F06D414 00000000 */ nop -.L7F06CF88: -/* 09FE08 7F06D418 8CA20004 */ lw $v0, 4($a1) -/* 09FE0C 7F06D41C C4860014 */ lwc1 $f6, 0x14($a0) -/* 09FE10 7F06D420 C4440018 */ lwc1 $f4, 0x18($v0) -/* 09FE14 7F06D424 46062002 */ mul.s $f0, $f4, $f6 -/* 09FE18 7F06D428 03E00008 */ jr $ra -/* 09FE1C 7F06D42C 00000000 */ nop -.L7F06CFA0: -/* 09FE20 7F06D430 8CA20004 */ lw $v0, 4($a1) -/* 09FE24 7F06D434 C48A0014 */ lwc1 $f10, 0x14($a0) -/* 09FE28 7F06D438 C448000C */ lwc1 $f8, 0xc($v0) -/* 09FE2C 7F06D43C 460A4002 */ mul.s $f0, $f8, $f10 -/* 09FE30 7F06D440 03E00008 */ jr $ra -/* 09FE34 7F06D444 00000000 */ nop -.L7F06CFB8: -/* 09FE38 7F06D448 8CA20004 */ lw $v0, 4($a1) -/* 09FE3C 7F06D44C C4920014 */ lwc1 $f18, 0x14($a0) -/* 09FE40 7F06D450 C4500018 */ lwc1 $f16, 0x18($v0) -/* 09FE44 7F06D454 46128002 */ mul.s $f0, $f16, $f18 -/* 09FE48 7F06D458 03E00008 */ jr $ra -/* 09FE4C 7F06D45C 00000000 */ nop -.L7F06CFD0: -/* 09FE50 7F06D460 8CA20004 */ lw $v0, 4($a1) -/* 09FE54 7F06D464 C4860014 */ lwc1 $f6, 0x14($a0) -/* 09FE58 7F06D468 C4440014 */ lwc1 $f4, 0x14($v0) -/* 09FE5C 7F06D46C 46062002 */ mul.s $f0, $f4, $f6 -/* 09FE60 7F06D470 03E00008 */ jr $ra -/* 09FE64 7F06D474 00000000 */ nop -def_7F06CEF0: -.L7F06CFE8: -.L7F06D478: -/* 09FE68 7F06D478 8CA50008 */ lw $a1, 8($a1) -/* 09FE6C 7F06D47C 54A0FFB8 */ bnezl $a1, .L7F06D360 -/* 09FE70 7F06D480 94AE0000 */ lhu $t6, ($a1) -/* 09FE74 7F06D484 44800000 */ mtc1 $zero, $f0 -.L7F06D000: -.L7F06D488: -/* 09FE78 7F06D488 00000000 */ nop -/* 09FE7C 7F06D48C 03E00008 */ jr $ra -/* 09FE80 7F06D490 00000000 */ nop -) -#endif -#endif - - /** @@ -1850,141 +953,44 @@ void interpolate3dVectors(vec3d *v, vec3d *w, float k) } - - -#ifdef NONMATCHING -f32 sub_GAME_7F06D0CC(f32 arg0, f32 arg1, f32 arg2) +f32 sub_GAME_7F06D0CC(f32 arg0, f32 angle, f32 mult) { - f32 temp_f12; - f32 temp_f12_2; - f32 temp_f2; - f32 phi_f0; - f32 phi_f12; + f32 value = angle - arg0; - temp_f2 = arg1 - arg0; - phi_f0 = temp_f2; - if (arg1 < arg0) + if (angle < arg0) { - phi_f0 = temp_f2 + M_TAU; + value += M_TAU_F; } - if (phi_f0 < M_PI) + + if (value < M_PI_F) { - temp_f12 = arg0 + (phi_f0 * arg2); - phi_f12 = temp_f12; - if (temp_f12 >= M_TAU) + arg0 += value * mult; + + if (arg0 >= M_TAU_F) { - return temp_f12 - M_TAU; + arg0 -= M_TAU_F; } - // Duplicate return node #7. Try simplifying control flow for better match - return phi_f12; } - temp_f12_2 = arg0 - ((M_TAU - phi_f0) * arg2); - phi_f12 = temp_f12_2; - if (temp_f12_2 < 0.0f) + else { - phi_f12 = temp_f12_2 + M_TAU; + arg0 -= (M_TAU_F - value) * mult; + + if (arg0 < 0) + { + arg0 += M_TAU_F; + } } - return phi_f12; + + return arg0; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80054BB4 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80054BB8 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80054BBC -.word 0x40490fdb /*3.1415927*/ -.text -glabel sub_GAME_7F06D0CC -/* 0A1BFC 7F06D0CC 460C703C */ c.lt.s $f14, $f12 -/* 0A1C00 7F06D0D0 AFA60008 */ sw $a2, 8($sp) -/* 0A1C04 7F06D0D4 460C7081 */ sub.s $f2, $f14, $f12 -/* 0A1C08 7F06D0D8 3C018005 */ lui $at, %hi(D_80054BB4) -/* 0A1C0C 7F06D0DC C7A60008 */ lwc1 $f6, 8($sp) -/* 0A1C10 7F06D0E0 45000003 */ bc1f .L7F06D0F0 -/* 0A1C14 7F06D0E4 46001006 */ mov.s $f0, $f2 -/* 0A1C18 7F06D0E8 C42E4BB4 */ lwc1 $f14, %lo(D_80054BB4)($at) -/* 0A1C1C 7F06D0EC 460E1000 */ add.s $f0, $f2, $f14 -.L7F06D0F0: -/* 0A1C20 7F06D0F0 3C018005 */ lui $at, %hi(D_80054BB8) -/* 0A1C24 7F06D0F4 C42E4BB8 */ lwc1 $f14, %lo(D_80054BB8)($at) -/* 0A1C28 7F06D0F8 3C018005 */ lui $at, %hi(D_80054BBC) -/* 0A1C2C 7F06D0FC C4244BBC */ lwc1 $f4, %lo(D_80054BBC)($at) -/* 0A1C30 7F06D100 4604003C */ c.lt.s $f0, $f4 -/* 0A1C34 7F06D104 00000000 */ nop -/* 0A1C38 7F06D108 4502000A */ bc1fl .L7F06D134 -/* 0A1C3C 7F06D10C 46007281 */ sub.s $f10, $f14, $f0 -/* 0A1C40 7F06D110 46060202 */ mul.s $f8, $f0, $f6 -/* 0A1C44 7F06D114 46086300 */ add.s $f12, $f12, $f8 -/* 0A1C48 7F06D118 460C703E */ c.le.s $f14, $f12 -/* 0A1C4C 7F06D11C 00000000 */ nop -/* 0A1C50 7F06D120 4500000D */ bc1f .L7F06D158 -/* 0A1C54 7F06D124 00000000 */ nop -/* 0A1C58 7F06D128 03E00008 */ jr $ra -/* 0A1C5C 7F06D12C 460E6001 */ sub.s $f0, $f12, $f14 - -/* 0A1C60 7F06D130 46007281 */ sub.s $f10, $f14, $f0 -.L7F06D134: -/* 0A1C64 7F06D134 C7B00008 */ lwc1 $f16, 8($sp) -/* 0A1C68 7F06D138 44802000 */ mtc1 $zero, $f4 -/* 0A1C6C 7F06D13C 46105482 */ mul.s $f18, $f10, $f16 -/* 0A1C70 7F06D140 46126301 */ sub.s $f12, $f12, $f18 -/* 0A1C74 7F06D144 4604603C */ c.lt.s $f12, $f4 -/* 0A1C78 7F06D148 00000000 */ nop -/* 0A1C7C 7F06D14C 45000002 */ bc1f .L7F06D158 -/* 0A1C80 7F06D150 00000000 */ nop -/* 0A1C84 7F06D154 460E6300 */ add.s $f12, $f12, $f14 -.L7F06D158: -/* 0A1C88 7F06D158 03E00008 */ jr $ra -/* 0A1C8C 7F06D15C 46006006 */ mov.s $f0, $f12 -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F06D160(void) { - +void sub_GAME_7F06D160(coord3d *arg0, coord3d *arg1, f32 mult) +{ + arg0->x = sub_GAME_7F06D0CC(arg0->x, arg1->x, mult); + arg0->y = sub_GAME_7F06D0CC(arg0->y, arg1->y, mult); + arg0->z = sub_GAME_7F06D0CC(arg0->z, arg1->z, mult); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06D160 -/* 0A1C90 7F06D160 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0A1C94 7F06D164 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A1C98 7F06D168 AFB00018 */ sw $s0, 0x18($sp) -/* 0A1C9C 7F06D16C AFA50024 */ sw $a1, 0x24($sp) -/* 0A1CA0 7F06D170 AFA60028 */ sw $a2, 0x28($sp) -/* 0A1CA4 7F06D174 00808025 */ move $s0, $a0 -/* 0A1CA8 7F06D178 C4AE0000 */ lwc1 $f14, ($a1) -/* 0A1CAC 7F06D17C 0FC1B433 */ jal sub_GAME_7F06D0CC -/* 0A1CB0 7F06D180 C48C0000 */ lwc1 $f12, ($a0) -/* 0A1CB4 7F06D184 E6000000 */ swc1 $f0, ($s0) -/* 0A1CB8 7F06D188 8FAF0024 */ lw $t7, 0x24($sp) -/* 0A1CBC 7F06D18C 8FA60028 */ lw $a2, 0x28($sp) -/* 0A1CC0 7F06D190 C60C0004 */ lwc1 $f12, 4($s0) -/* 0A1CC4 7F06D194 0FC1B433 */ jal sub_GAME_7F06D0CC -/* 0A1CC8 7F06D198 C5EE0004 */ lwc1 $f14, 4($t7) -/* 0A1CCC 7F06D19C E6000004 */ swc1 $f0, 4($s0) -/* 0A1CD0 7F06D1A0 8FB80024 */ lw $t8, 0x24($sp) -/* 0A1CD4 7F06D1A4 8FA60028 */ lw $a2, 0x28($sp) -/* 0A1CD8 7F06D1A8 C60C0008 */ lwc1 $f12, 8($s0) -/* 0A1CDC 7F06D1AC 0FC1B433 */ jal sub_GAME_7F06D0CC -/* 0A1CE0 7F06D1B0 C70E0008 */ lwc1 $f14, 8($t8) -/* 0A1CE4 7F06D1B4 E6000008 */ swc1 $f0, 8($s0) -/* 0A1CE8 7F06D1B8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A1CEC 7F06D1BC 8FB00018 */ lw $s0, 0x18($sp) -/* 0A1CF0 7F06D1C0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0A1CF4 7F06D1C4 03E00008 */ jr $ra -/* 0A1CF8 7F06D1C8 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -2234,7 +1240,7 @@ glabel sub_GAME_7F06D490 /* 0A1FC4 7F06D494 AFBF001C */ sw $ra, 0x1c($sp) /* 0A1FC8 7F06D498 AFB10018 */ sw $s1, 0x18($sp) /* 0A1FCC 7F06D49C 00808825 */ move $s1, $a0 -/* 0A1FD0 7F06D4A0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A1FD0 7F06D4A0 0FC1B1E7 */ jal modelGetNodeRwData /* 0A1FD4 7F06D4A4 AFB00014 */ sw $s0, 0x14($sp) /* 0A1FD8 7F06D4A8 804E0000 */ lb $t6, ($v0) /* 0A1FDC 7F06D4AC 00408025 */ move $s0, $v0 @@ -2411,10 +1417,11 @@ void subcalcpos(Model *arg0) #ifdef NONMATCHING -void process_01_group_heading(void) { +void process_01_group_heading(ModelRenderData *arg0, Model *model, ModelNode *node) { } #else +void process_01_group_heading(ModelRenderData *arg0, Model *model, ModelNode *node); GLOBAL_ASM( .text glabel process_01_group_heading @@ -2427,7 +1434,7 @@ glabel process_01_group_heading /* 0A2280 7F06D750 00C02825 */ move $a1, $a2 /* 0A2284 7F06D754 AFA70084 */ sw $a3, 0x84($sp) /* 0A2288 7F06D758 AFA60088 */ sw $a2, 0x88($sp) -/* 0A228C 7F06D75C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A228C 7F06D75C 0FC1B1E7 */ jal modelGetNodeRwData /* 0A2290 7F06D760 AFAE007C */ sw $t6, 0x7c($sp) /* 0A2294 7F06D764 8FA70084 */ lw $a3, 0x84($sp) /* 0A2298 7F06D768 8FB8007C */ lw $t8, 0x7c($sp) @@ -3166,10 +2173,11 @@ glabel sub_GAME_7F06DEC0 #ifdef NONMATCHING -void process_02_position(void) { +void process_02_position(ModelRenderData *arg0, Model *model, ModelNode *node) { } #else +void process_02_position(ModelRenderData *arg0, Model *model, ModelNode *node); GLOBAL_ASM( .text glabel process_02_position @@ -3616,10 +2624,11 @@ glabel sub_GAME_7F06E540 #ifdef NONMATCHING -void process_03_unknown(void) { +void process_03_unknown(ModelRenderData *arg0, Model *model, ModelNode *node) { } #else +void process_03_unknown(ModelRenderData *arg0, Model *model, ModelNode *node); GLOBAL_ASM( .text glabel process_03_unknown @@ -3717,1155 +2726,508 @@ glabel process_03_unknown #endif +void process_15_subposition(ModelRenderData* arg0, Model *model, ModelNode *node) +{ + union ModelRoData *rodata = node->Data; + Mtxf *sp68; + Mtxf sp28; + s32 mtxindex = rodata->GroupSimple.Group1; + RenderPosView *matrices = model->render_pos; + if (node->Parent) + { + sp68 = sub_GAME_7F06C660(model, node->Parent, 0); + } + else + { + sp68 = arg0->unk00; + } - -#ifdef NONMATCHING -void process_15_subposition(void) { - // May match model0001c5b4 in PD -} -#else -GLOBAL_ASM( -.text -glabel process_15_subposition -/* 0A32D8 7F06E7A8 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0A32DC 7F06E7AC AFBF0014 */ sw $ra, 0x14($sp) -/* 0A32E0 7F06E7B0 AFA50074 */ sw $a1, 0x74($sp) -/* 0A32E4 7F06E7B4 8CCE0004 */ lw $t6, 4($a2) -/* 0A32E8 7F06E7B8 AFAE006C */ sw $t6, 0x6c($sp) -/* 0A32EC 7F06E7BC 8CC70008 */ lw $a3, 8($a2) -/* 0A32F0 7F06E7C0 8CA8000C */ lw $t0, 0xc($a1) -/* 0A32F4 7F06E7C4 00003025 */ move $a2, $zero -/* 0A32F8 7F06E7C8 10E0000A */ beqz $a3, .L7F06E7F4 -/* 0A32FC 7F06E7CC 85C3000C */ lh $v1, 0xc($t6) -/* 0A3300 7F06E7D0 00A02025 */ move $a0, $a1 -/* 0A3304 7F06E7D4 00E02825 */ move $a1, $a3 -/* 0A3308 7F06E7D8 AFA30024 */ sw $v1, 0x24($sp) -/* 0A330C 7F06E7DC 0FC1B198 */ jal sub_GAME_7F06C660 -/* 0A3310 7F06E7E0 AFA80020 */ sw $t0, 0x20($sp) -/* 0A3314 7F06E7E4 8FA30024 */ lw $v1, 0x24($sp) -/* 0A3318 7F06E7E8 8FA80020 */ lw $t0, 0x20($sp) -/* 0A331C 7F06E7EC 10000002 */ b .L7F06E7F8 -/* 0A3320 7F06E7F0 00403825 */ move $a3, $v0 -.L7F06E7F4: -/* 0A3324 7F06E7F4 8C870000 */ lw $a3, ($a0) -.L7F06E7F8: -/* 0A3328 7F06E7F8 10E00010 */ beqz $a3, .L7F06E83C -/* 0A332C 7F06E7FC 8FA4006C */ lw $a0, 0x6c($sp) -/* 0A3330 7F06E800 8FA4006C */ lw $a0, 0x6c($sp) -/* 0A3334 7F06E804 27A50028 */ addiu $a1, $sp, 0x28 -/* 0A3338 7F06E808 AFA30024 */ sw $v1, 0x24($sp) -/* 0A333C 7F06E80C AFA70068 */ sw $a3, 0x68($sp) -/* 0A3340 7F06E810 0FC16259 */ jal matrix_4x4_set_identity_and_position -/* 0A3344 7F06E814 AFA80020 */ sw $t0, 0x20($sp) -/* 0A3348 7F06E818 8FA30024 */ lw $v1, 0x24($sp) -/* 0A334C 7F06E81C 8FA80020 */ lw $t0, 0x20($sp) -/* 0A3350 7F06E820 8FA40068 */ lw $a0, 0x68($sp) -/* 0A3354 7F06E824 0003C980 */ sll $t9, $v1, 6 -/* 0A3358 7F06E828 27A50028 */ addiu $a1, $sp, 0x28 -/* 0A335C 7F06E82C 0FC16063 */ jal matrix_4x4_multiply_homogeneous -/* 0A3360 7F06E830 03283021 */ addu $a2, $t9, $t0 -/* 0A3364 7F06E834 10000005 */ b .L7F06E84C -/* 0A3368 7F06E838 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06E83C: -/* 0A336C 7F06E83C 00034980 */ sll $t1, $v1, 6 -/* 0A3370 7F06E840 0FC16259 */ jal matrix_4x4_set_identity_and_position -/* 0A3374 7F06E844 01282821 */ addu $a1, $t1, $t0 -/* 0A3378 7F06E848 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06E84C: -/* 0A337C 7F06E84C 27BD0070 */ addiu $sp, $sp, 0x70 -/* 0A3380 7F06E850 03E00008 */ jr $ra -/* 0A3384 7F06E854 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void process_08_distance_triggers(void) { - -} -#else -GLOBAL_ASM( -.text -glabel process_08_distance_triggers -/* 0A3388 7F06E858 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0A338C 7F06E85C AFBF001C */ sw $ra, 0x1c($sp) -/* 0A3390 7F06E860 AFB00018 */ sw $s0, 0x18($sp) -/* 0A3394 7F06E864 AFA40030 */ sw $a0, 0x30($sp) -/* 0A3398 7F06E868 8CAE0004 */ lw $t6, 4($a1) -/* 0A339C 7F06E86C 00A08025 */ move $s0, $a1 -/* 0A33A0 7F06E870 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A33A4 7F06E874 AFAE002C */ sw $t6, 0x2c($sp) -/* 0A33A8 7F06E878 AFA20028 */ sw $v0, 0x28($sp) -/* 0A33AC 7F06E87C 8FA40030 */ lw $a0, 0x30($sp) -/* 0A33B0 7F06E880 02002825 */ move $a1, $s0 -/* 0A33B4 7F06E884 0FC1B198 */ jal sub_GAME_7F06C660 -/* 0A33B8 7F06E888 00003025 */ move $a2, $zero -/* 0A33BC 7F06E88C 3C0F8003 */ lui $t7, %hi(D_80036084) -/* 0A33C0 7F06E890 8DEF6084 */ lw $t7, %lo(D_80036084)($t7) -/* 0A33C4 7F06E894 00401825 */ move $v1, $v0 -/* 0A33C8 7F06E898 11E00004 */ beqz $t7, .L7F06E8AC -/* 0A33CC 7F06E89C 00000000 */ nop -/* 0A33D0 7F06E8A0 44801000 */ mtc1 $zero, $f2 -/* 0A33D4 7F06E8A4 10000011 */ b .L7F06E8EC -/* 0A33D8 7F06E8A8 8FA2002C */ lw $v0, 0x2c($sp) -.L7F06E8AC: -/* 0A33DC 7F06E8AC 0FC1E121 */ jal getPlayer_c_lodscalez -/* 0A33E0 7F06E8B0 AFA30024 */ sw $v1, 0x24($sp) -/* 0A33E4 7F06E8B4 3C018003 */ lui $at, %hi(D_80036088) -/* 0A33E8 7F06E8B8 8FA30024 */ lw $v1, 0x24($sp) -/* 0A33EC 7F06E8BC C42C6088 */ lwc1 $f12, %lo(D_80036088)($at) -/* 0A33F0 7F06E8C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A33F4 7F06E8C4 44814000 */ mtc1 $at, $f8 -/* 0A33F8 7F06E8C8 C4640038 */ lwc1 $f4, 0x38($v1) -/* 0A33FC 7F06E8CC 460C4032 */ c.eq.s $f8, $f12 -/* 0A3400 7F06E8D0 46002187 */ neg.s $f6, $f4 -/* 0A3404 7F06E8D4 46060082 */ mul.s $f2, $f0, $f6 -/* 0A3408 7F06E8D8 45030004 */ bc1tl .L7F06E8EC -/* 0A340C 7F06E8DC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0A3410 7F06E8E0 460C1082 */ mul.s $f2, $f2, $f12 -/* 0A3414 7F06E8E4 00000000 */ nop -/* 0A3418 7F06E8E8 8FA2002C */ lw $v0, 0x2c($sp) -.L7F06E8EC: -/* 0A341C 7F06E8EC 8FB80030 */ lw $t8, 0x30($sp) -/* 0A3420 7F06E8F0 C4400000 */ lwc1 $f0, ($v0) -/* 0A3424 7F06E8F4 C70C0014 */ lwc1 $f12, 0x14($t8) -/* 0A3428 7F06E8F8 460C0282 */ mul.s $f10, $f0, $f12 -/* 0A342C 7F06E8FC 4602503C */ c.lt.s $f10, $f2 -/* 0A3430 7F06E900 00000000 */ nop -/* 0A3434 7F06E904 45030008 */ bc1tl .L7F06E928 -/* 0A3438 7F06E908 C4520004 */ lwc1 $f18, 4($v0) -/* 0A343C 7F06E90C 44808000 */ mtc1 $zero, $f16 -/* 0A3440 7F06E910 00000000 */ nop -/* 0A3444 7F06E914 46008032 */ c.eq.s $f16, $f0 -/* 0A3448 7F06E918 00000000 */ nop -/* 0A344C 7F06E91C 4502000D */ bc1fl .L7F06E954 -/* 0A3450 7F06E920 8FAA0028 */ lw $t2, 0x28($sp) -/* 0A3454 7F06E924 C4520004 */ lwc1 $f18, 4($v0) -.L7F06E928: -/* 0A3458 7F06E928 8FA80028 */ lw $t0, 0x28($sp) -/* 0A345C 7F06E92C 460C9102 */ mul.s $f4, $f18, $f12 -/* 0A3460 7F06E930 4604103E */ c.le.s $f2, $f4 -/* 0A3464 7F06E934 00000000 */ nop -/* 0A3468 7F06E938 45000005 */ bc1f .L7F06E950 -/* 0A346C 7F06E93C 24190001 */ li $t9, 1 -/* 0A3470 7F06E940 AD190000 */ sw $t9, ($t0) -/* 0A3474 7F06E944 8C490008 */ lw $t1, 8($v0) -/* 0A3478 7F06E948 10000004 */ b .L7F06E95C -/* 0A347C 7F06E94C AE090014 */ sw $t1, 0x14($s0) -.L7F06E950: -/* 0A3480 7F06E950 8FAA0028 */ lw $t2, 0x28($sp) -.L7F06E954: -/* 0A3484 7F06E954 AD400000 */ sw $zero, ($t2) -/* 0A3488 7F06E958 AE000014 */ sw $zero, 0x14($s0) -.L7F06E95C: -/* 0A348C 7F06E95C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A3490 7F06E960 8FB00018 */ lw $s0, 0x18($sp) -/* 0A3494 7F06E964 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0A3498 7F06E968 03E00008 */ jr $ra -/* 0A349C 7F06E96C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F06E970(struct Model *model, struct ModelNode *node) { - // May match with PD's model0001c784 function - struct modelrodata_distance *rodata = &node->Data->distance; - struct modelrwdata_distance *rwdata = modelGetNodeRwData(model, node); - - if (rwdata->visible) { - node->child = rodata->target; - } else { - node->child = NULL; + if (sp68) + { + matrix_4x4_set_identity_and_position(&rodata->GroupSimple.Origin, &sp28); + matrix_4x4_multiply_homogeneous(sp68, &sp28, &matrices[mtxindex]); + } + else + { + matrix_4x4_set_identity_and_position(&rodata->GroupSimple.Origin, &matrices[mtxindex]); } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06E970 -/* 0A34A0 7F06E970 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0A34A4 7F06E974 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A34A8 7F06E978 8CAE0004 */ lw $t6, 4($a1) -/* 0A34AC 7F06E97C AFA50024 */ sw $a1, 0x24($sp) -/* 0A34B0 7F06E980 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A34B4 7F06E984 AFAE001C */ sw $t6, 0x1c($sp) -/* 0A34B8 7F06E988 8C4F0000 */ lw $t7, ($v0) -/* 0A34BC 7F06E98C 8FA50024 */ lw $a1, 0x24($sp) -/* 0A34C0 7F06E990 8FB8001C */ lw $t8, 0x1c($sp) -/* 0A34C4 7F06E994 51E00005 */ beql $t7, $zero, .L7F06E9AC -/* 0A34C8 7F06E998 ACA00014 */ sw $zero, 0x14($a1) -/* 0A34CC 7F06E99C 8F190008 */ lw $t9, 8($t8) -/* 0A34D0 7F06E9A0 10000002 */ b .L7F06E9AC -/* 0A34D4 7F06E9A4 ACB90014 */ sw $t9, 0x14($a1) -/* 0A34D8 7F06E9A8 ACA00014 */ sw $zero, 0x14($a1) -.L7F06E9AC: -/* 0A34DC 7F06E9AC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A34E0 7F06E9B0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0A34E4 7F06E9B4 03E00008 */ jr $ra -/* 0A34E8 7F06E9B8 00000000 */ nop -) -#endif +void process_08_distance_triggers(Model* model, ModelNode* node) +{ + union ModelRoData *rodata = node->Data; + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + Mtxf *mtx = sub_GAME_7F06C660(model, node, 0); + f32 distance; + + if (g_ModelDistanceDisabled) + { + distance = 0; + } + else + { + distance = -mtx->m[3][2] * getPlayer_c_lodscalez(); + + if (g_ModelDistanceScale != 1) + { + distance *= g_ModelDistanceScale; + } + } + + if (distance > rodata->LOD.MinDistance * model->scale || rodata->LOD.MinDistance == 0) + { + if (distance <= rodata->LOD.MaxDistance * model->scale) + { + rwdata->LOD.visible = TRUE; + node->Child = rodata->LOD.Affects; + return; + } + } + + rwdata->LOD.visible = FALSE; + node->Child = NULL; +} +void sub_GAME_7F06E970(Model* model, ModelNode* node) +{ + ModelRoData_LODRecord *rodata = &node->Data->LOD; + ModelRwData_LODRecord *rwdata = modelGetNodeRwData(model, node); -#ifdef NONMATCHING -void process_12_handle_switch(struct Model *model, struct ModelNode *node) { - // May match with PD's model0001c7d0 - struct modelrodata_toggle *rodata = &node->Data->toggle; - struct modelrwdata_toggle *rwdata = modelGetNodeRwData(model, node); - - if (rwdata->visible) { - node->child = rodata->target; - } else { - node->child = NULL; + if (rwdata->visible) + { + node->Child = rodata->Affects; + } + else + { + node->Child = NULL; } } -#else -GLOBAL_ASM( -.text -glabel process_12_handle_switch -/* 0A34EC 7F06E9BC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0A34F0 7F06E9C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A34F4 7F06E9C4 8CAE0004 */ lw $t6, 4($a1) -/* 0A34F8 7F06E9C8 AFA50024 */ sw $a1, 0x24($sp) -/* 0A34FC 7F06E9CC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A3500 7F06E9D0 AFAE001C */ sw $t6, 0x1c($sp) -/* 0A3504 7F06E9D4 8C4F0000 */ lw $t7, ($v0) -/* 0A3508 7F06E9D8 8FA50024 */ lw $a1, 0x24($sp) -/* 0A350C 7F06E9DC 8FB8001C */ lw $t8, 0x1c($sp) -/* 0A3510 7F06E9E0 51E00005 */ beql $t7, $zero, .L7F06E9F8 -/* 0A3514 7F06E9E4 ACA00014 */ sw $zero, 0x14($a1) -/* 0A3518 7F06E9E8 8F190000 */ lw $t9, ($t8) -/* 0A351C 7F06E9EC 10000002 */ b .L7F06E9F8 -/* 0A3520 7F06E9F0 ACB90014 */ sw $t9, 0x14($a1) -/* 0A3524 7F06E9F4 ACA00014 */ sw $zero, 0x14($a1) -.L7F06E9F8: -/* 0A3528 7F06E9F8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A352C 7F06E9FC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0A3530 7F06EA00 03E00008 */ jr $ra -/* 0A3534 7F06EA04 00000000 */ nop -) -#endif +void process_12_handle_switch(Model* model, ModelNode* node) +{ + ModelRoData_SwitchRecord *rodata = &node->Data->Switch; + ModelRwData_SwitchRecord *rwdata = modelGetNodeRwData(model, node); - - -#ifdef NONMATCHING -void process_17_pointer_to_head(void) { - + if (rwdata->visible) + { + node->Child = rodata->Controls; + } + else + { + node->Child = NULL; + } } -#else -GLOBAL_ASM( -.text -glabel process_17_pointer_to_head -/* 0A3538 7F06EA08 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A353C 7F06EA0C AFBF0014 */ sw $ra, 0x14($sp) -/* 0A3540 7F06EA10 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A3544 7F06EA14 AFA5001C */ sw $a1, 0x1c($sp) -/* 0A3548 7F06EA18 8C440000 */ lw $a0, ($v0) -/* 0A354C 7F06EA1C 8FA5001C */ lw $a1, 0x1c($sp) -/* 0A3550 7F06EA20 50800009 */ beql $a0, $zero, .L7F06EA48 -/* 0A3554 7F06EA24 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A3558 7F06EA28 8C830000 */ lw $v1, ($a0) -/* 0A355C 7F06EA2C 10600005 */ beqz $v1, .L7F06EA44 -/* 0A3560 7F06EA30 ACA30014 */ sw $v1, 0x14($a1) -/* 0A3564 7F06EA34 AC650008 */ sw $a1, 8($v1) -.L7F06EA38: -/* 0A3568 7F06EA38 8C63000C */ lw $v1, 0xc($v1) -/* 0A356C 7F06EA3C 5460FFFE */ bnezl $v1, .L7F06EA38 -/* 0A3570 7F06EA40 AC650008 */ sw $a1, 8($v1) -.L7F06EA44: -/* 0A3574 7F06EA44 8FBF0014 */ lw $ra, 0x14($sp) -.L7F06EA48: -/* 0A3578 7F06EA48 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A357C 7F06EA4C 03E00008 */ jr $ra -/* 0A3580 7F06EA50 00000000 */ nop -) -#endif +void process_17_pointer_to_head(Model* model, ModelNode* bodynode) +{ + struct ModelRwData_HeadPlaceholderRecord *rwdata = modelGetNodeRwData(model, bodynode); + if (rwdata->ModelFileHeader) + { + ModelNode *headnode = rwdata->ModelFileHeader->RootNode; + bodynode->Child = headnode; -#ifdef NONMATCHING -void sub_GAME_7F06EA54(void) { - + while (headnode) + { + headnode->Parent = bodynode; + headnode = headnode->Next; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06EA54 -/* 0A3584 7F06EA54 10A00004 */ beqz $a1, .L7F06EA68 -/* 0A3588 7F06EA58 8C820004 */ lw $v0, 4($a0) -/* 0A358C 7F06EA5C 8C430018 */ lw $v1, 0x18($v0) -/* 0A3590 7F06EA60 10000003 */ b .L7F06EA70 -/* 0A3594 7F06EA64 8C45001C */ lw $a1, 0x1c($v0) -.L7F06EA68: -/* 0A3598 7F06EA68 8C43001C */ lw $v1, 0x1c($v0) -/* 0A359C 7F06EA6C 8C450018 */ lw $a1, 0x18($v0) -.L7F06EA70: -/* 0A35A0 7F06EA70 10600022 */ beqz $v1, .L7F06EAFC -/* 0A35A4 7F06EA74 00000000 */ nop -/* 0A35A8 7F06EA78 AC830014 */ sw $v1, 0x14($a0) -/* 0A35AC 7F06EA7C 8C66000C */ lw $a2, 0xc($v1) -/* 0A35B0 7F06EA80 AC600010 */ sw $zero, 0x10($v1) -/* 0A35B4 7F06EA84 00601025 */ move $v0, $v1 -/* 0A35B8 7F06EA88 10C0000A */ beqz $a2, .L7F06EAB4 -/* 0A35BC 7F06EA8C 00000000 */ nop -/* 0A35C0 7F06EA90 10A60008 */ beq $a1, $a2, .L7F06EAB4 -/* 0A35C4 7F06EA94 00000000 */ nop -/* 0A35C8 7F06EA98 8C44000C */ lw $a0, 0xc($v0) -/* 0A35CC 7F06EA9C 00801025 */ move $v0, $a0 -.L7F06EAA0: -/* 0A35D0 7F06EAA0 8C84000C */ lw $a0, 0xc($a0) -/* 0A35D4 7F06EAA4 10800003 */ beqz $a0, .L7F06EAB4 -/* 0A35D8 7F06EAA8 00000000 */ nop -/* 0A35DC 7F06EAAC 54A4FFFC */ bnel $a1, $a0, .L7F06EAA0 -/* 0A35E0 7F06EAB0 00801025 */ move $v0, $a0 -.L7F06EAB4: -/* 0A35E4 7F06EAB4 10A00014 */ beqz $a1, .L7F06EB08 -/* 0A35E8 7F06EAB8 AC45000C */ sw $a1, 0xc($v0) -/* 0A35EC 7F06EABC 8CA4000C */ lw $a0, 0xc($a1) -/* 0A35F0 7F06EAC0 ACA20010 */ sw $v0, 0x10($a1) -/* 0A35F4 7F06EAC4 00A01025 */ move $v0, $a1 -/* 0A35F8 7F06EAC8 1080000A */ beqz $a0, .L7F06EAF4 -/* 0A35FC 7F06EACC 00000000 */ nop -/* 0A3600 7F06EAD0 10640008 */ beq $v1, $a0, .L7F06EAF4 -/* 0A3604 7F06EAD4 00000000 */ nop -/* 0A3608 7F06EAD8 8CA4000C */ lw $a0, 0xc($a1) -/* 0A360C 7F06EADC 00801025 */ move $v0, $a0 -.L7F06EAE0: -/* 0A3610 7F06EAE0 8C84000C */ lw $a0, 0xc($a0) -/* 0A3614 7F06EAE4 10800003 */ beqz $a0, .L7F06EAF4 -/* 0A3618 7F06EAE8 00000000 */ nop -/* 0A361C 7F06EAEC 5464FFFC */ bnel $v1, $a0, .L7F06EAE0 -/* 0A3620 7F06EAF0 00801025 */ move $v0, $a0 -.L7F06EAF4: -/* 0A3624 7F06EAF4 03E00008 */ jr $ra -/* 0A3628 7F06EAF8 AC40000C */ sw $zero, 0xc($v0) - -.L7F06EAFC: -/* 0A362C 7F06EAFC 10A00002 */ beqz $a1, .L7F06EB08 -/* 0A3630 7F06EB00 AC850014 */ sw $a1, 0x14($a0) -/* 0A3634 7F06EB04 ACA00010 */ sw $zero, 0x10($a1) -.L7F06EB08: -/* 0A3638 7F06EB08 03E00008 */ jr $ra -/* 0A363C 7F06EB0C 00000000 */ nop -) -#endif +void sub_GAME_7F06EA54(ModelNode *basenode, bool visible) +{ + union ModelRoData *rodata = basenode->Data; + ModelNode *node1; + ModelNode *node2; + ModelNode *loopnode; + if (visible) + { + node1 = rodata->BSP.leftChild; + node2 = rodata->BSP.rightChild; + } + else + { + node1 = rodata->BSP.rightChild; + node2 = rodata->BSP.leftChild; + } + if (node1) + { + // I think what's happening here is there's two groups of siblings, + // where node1 and node2 are the head nodes. Either group can be first, + // and this is ensuring the node1 group is first. + // Note that node2 might be NULL. -#ifdef NONMATCHING -void sub_GAME_7F06EB10(void) { + basenode->Child = node1; + node1->Prev = NULL; + // Skip through node1's siblings until node2 is found or the end is + // reached + loopnode = node1; + + while (loopnode->Next && loopnode->Next != node2) + { + loopnode = loopnode->Next; + } + + loopnode->Next = node2; + + if (node2) + { + // Append node2 and its siblings to node1's siblings + node2->Prev = loopnode; + loopnode = node2; + + while (loopnode->Next && loopnode->Next != node1) + { + loopnode = loopnode->Next; + } + + loopnode->Next = NULL; + } + } + else + { + basenode->Child = node2; + + if (node2) + { + node2->Prev = NULL; + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F06EB10 -/* 0A3640 7F06EB10 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A3644 7F06EB14 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A3648 7F06EB18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A364C 7F06EB1C AFA5001C */ sw $a1, 0x1c($sp) -/* 0A3650 7F06EB20 8FA4001C */ lw $a0, 0x1c($sp) -/* 0A3654 7F06EB24 0FC1BA95 */ jal sub_GAME_7F06EA54 -/* 0A3658 7F06EB28 8C450000 */ lw $a1, ($v0) -/* 0A365C 7F06EB2C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A3660 7F06EB30 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A3664 7F06EB34 03E00008 */ jr $ra -/* 0A3668 7F06EB38 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void process_09_head_hat_placement_interlink(void) { - +void sub_GAME_7F06EB10(Model* model, ModelNode* node) +{ + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + sub_GAME_7F06EA54(node, rwdata->BSP.visible); } -#else -GLOBAL_ASM( -.text -glabel process_09_head_hat_placement_interlink -/* 0A366C 7F06EB3C 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0A3670 7F06EB40 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A3674 7F06EB44 AFB00018 */ sw $s0, 0x18($sp) -/* 0A3678 7F06EB48 AFA40050 */ sw $a0, 0x50($sp) -/* 0A367C 7F06EB4C 8CB00004 */ lw $s0, 4($a1) -/* 0A3680 7F06EB50 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A3684 7F06EB54 AFA50054 */ sw $a1, 0x54($sp) -/* 0A3688 7F06EB58 AFA20048 */ sw $v0, 0x48($sp) -/* 0A368C 7F06EB5C 8FA40050 */ lw $a0, 0x50($sp) -/* 0A3690 7F06EB60 8FA50054 */ lw $a1, 0x54($sp) -/* 0A3694 7F06EB64 0FC1B198 */ jal sub_GAME_7F06C660 -/* 0A3698 7F06EB68 00003025 */ move $a2, $zero -/* 0A369C 7F06EB6C 86030020 */ lh $v1, 0x20($s0) -/* 0A36A0 7F06EB70 00402025 */ move $a0, $v0 -/* 0A36A4 7F06EB74 24010002 */ li $at, 2 -/* 0A36A8 7F06EB78 1460000C */ bnez $v1, .L7F06EBAC -/* 0A36AC 7F06EB7C 00000000 */ nop -/* 0A36B0 7F06EB80 C604000C */ lwc1 $f4, 0xc($s0) -/* 0A36B4 7F06EB84 27A50038 */ addiu $a1, $sp, 0x38 -/* 0A36B8 7F06EB88 E7A40038 */ swc1 $f4, 0x38($sp) -/* 0A36BC 7F06EB8C C6060010 */ lwc1 $f6, 0x10($s0) -/* 0A36C0 7F06EB90 E7A6003C */ swc1 $f6, 0x3c($sp) -/* 0A36C4 7F06EB94 C6080014 */ lwc1 $f8, 0x14($s0) -/* 0A36C8 7F06EB98 AFA40044 */ sw $a0, 0x44($sp) -/* 0A36CC 7F06EB9C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place -/* 0A36D0 7F06EBA0 E7A80040 */ swc1 $f8, 0x40($sp) -/* 0A36D4 7F06EBA4 1000002F */ b .L7F06EC64 -/* 0A36D8 7F06EBA8 8FA40044 */ lw $a0, 0x44($sp) -.L7F06EBAC: -/* 0A36DC 7F06EBAC 5461000F */ bnel $v1, $at, .L7F06EBEC -/* 0A36E0 7F06EBB0 24010003 */ li $at, 3 -/* 0A36E4 7F06EBB4 C60A0010 */ lwc1 $f10, 0x10($s0) -/* 0A36E8 7F06EBB8 C4500010 */ lwc1 $f16, 0x10($v0) -/* 0A36EC 7F06EBBC 46105482 */ mul.s $f18, $f10, $f16 -/* 0A36F0 7F06EBC0 E7B20038 */ swc1 $f18, 0x38($sp) -/* 0A36F4 7F06EBC4 C6040010 */ lwc1 $f4, 0x10($s0) -/* 0A36F8 7F06EBC8 C4460014 */ lwc1 $f6, 0x14($v0) -/* 0A36FC 7F06EBCC 46062202 */ mul.s $f8, $f4, $f6 -/* 0A3700 7F06EBD0 E7A8003C */ swc1 $f8, 0x3c($sp) -/* 0A3704 7F06EBD4 C4500018 */ lwc1 $f16, 0x18($v0) -/* 0A3708 7F06EBD8 C60A0010 */ lwc1 $f10, 0x10($s0) -/* 0A370C 7F06EBDC 46105482 */ mul.s $f18, $f10, $f16 -/* 0A3710 7F06EBE0 10000020 */ b .L7F06EC64 -/* 0A3714 7F06EBE4 E7B20040 */ swc1 $f18, 0x40($sp) -/* 0A3718 7F06EBE8 24010003 */ li $at, 3 -.L7F06EBEC: -/* 0A371C 7F06EBEC 5461000F */ bnel $v1, $at, .L7F06EC2C -/* 0A3720 7F06EBF0 24010001 */ li $at, 1 -/* 0A3724 7F06EBF4 C6040014 */ lwc1 $f4, 0x14($s0) -/* 0A3728 7F06EBF8 C4460020 */ lwc1 $f6, 0x20($v0) -/* 0A372C 7F06EBFC 46062202 */ mul.s $f8, $f4, $f6 -/* 0A3730 7F06EC00 E7A80038 */ swc1 $f8, 0x38($sp) -/* 0A3734 7F06EC04 C60A0014 */ lwc1 $f10, 0x14($s0) -/* 0A3738 7F06EC08 C4500024 */ lwc1 $f16, 0x24($v0) -/* 0A373C 7F06EC0C 46105482 */ mul.s $f18, $f10, $f16 -/* 0A3740 7F06EC10 E7B2003C */ swc1 $f18, 0x3c($sp) -/* 0A3744 7F06EC14 C4460028 */ lwc1 $f6, 0x28($v0) -/* 0A3748 7F06EC18 C6040014 */ lwc1 $f4, 0x14($s0) -/* 0A374C 7F06EC1C 46062202 */ mul.s $f8, $f4, $f6 -/* 0A3750 7F06EC20 10000010 */ b .L7F06EC64 -/* 0A3754 7F06EC24 E7A80040 */ swc1 $f8, 0x40($sp) -/* 0A3758 7F06EC28 24010001 */ li $at, 1 -.L7F06EC2C: -/* 0A375C 7F06EC2C 5461000E */ bnel $v1, $at, .L7F06EC68 -/* 0A3760 7F06EC30 C6040000 */ lwc1 $f4, ($s0) -/* 0A3764 7F06EC34 C60A000C */ lwc1 $f10, 0xc($s0) -/* 0A3768 7F06EC38 C4500000 */ lwc1 $f16, ($v0) -/* 0A376C 7F06EC3C 46105482 */ mul.s $f18, $f10, $f16 -/* 0A3770 7F06EC40 E7B20038 */ swc1 $f18, 0x38($sp) -/* 0A3774 7F06EC44 C604000C */ lwc1 $f4, 0xc($s0) -/* 0A3778 7F06EC48 C4460004 */ lwc1 $f6, 4($v0) -/* 0A377C 7F06EC4C 46062202 */ mul.s $f8, $f4, $f6 -/* 0A3780 7F06EC50 E7A8003C */ swc1 $f8, 0x3c($sp) -/* 0A3784 7F06EC54 C4500008 */ lwc1 $f16, 8($v0) -/* 0A3788 7F06EC58 C60A000C */ lwc1 $f10, 0xc($s0) -/* 0A378C 7F06EC5C 46105482 */ mul.s $f18, $f10, $f16 -/* 0A3790 7F06EC60 E7B20040 */ swc1 $f18, 0x40($sp) -.L7F06EC64: -/* 0A3794 7F06EC64 C6040000 */ lwc1 $f4, ($s0) -.L7F06EC68: -/* 0A3798 7F06EC68 27A5002C */ addiu $a1, $sp, 0x2c -/* 0A379C 7F06EC6C E7A4002C */ swc1 $f4, 0x2c($sp) -/* 0A37A0 7F06EC70 C6060004 */ lwc1 $f6, 4($s0) -/* 0A37A4 7F06EC74 E7A60030 */ swc1 $f6, 0x30($sp) -/* 0A37A8 7F06EC78 C6080008 */ lwc1 $f8, 8($s0) -/* 0A37AC 7F06EC7C 0FC1611D */ jal matrix_4x4_transform_vector_in_place -/* 0A37B0 7F06EC80 E7A80034 */ swc1 $f8, 0x34($sp) -/* 0A37B4 7F06EC84 C7AA0038 */ lwc1 $f10, 0x38($sp) -/* 0A37B8 7F06EC88 C7B0002C */ lwc1 $f16, 0x2c($sp) -/* 0A37BC 7F06EC8C C7A4003C */ lwc1 $f4, 0x3c($sp) -/* 0A37C0 7F06EC90 C7A60030 */ lwc1 $f6, 0x30($sp) -/* 0A37C4 7F06EC94 46105482 */ mul.s $f18, $f10, $f16 -/* 0A37C8 7F06EC98 C7B00034 */ lwc1 $f16, 0x34($sp) -/* 0A37CC 7F06EC9C 8FAF0048 */ lw $t7, 0x48($sp) -/* 0A37D0 7F06ECA0 46062202 */ mul.s $f8, $f4, $f6 -/* 0A37D4 7F06ECA4 C7A40040 */ lwc1 $f4, 0x40($sp) -/* 0A37D8 7F06ECA8 8FB80048 */ lw $t8, 0x48($sp) -/* 0A37DC 7F06ECAC 46048182 */ mul.s $f6, $f16, $f4 -/* 0A37E0 7F06ECB0 46089280 */ add.s $f10, $f18, $f8 -/* 0A37E4 7F06ECB4 44809000 */ mtc1 $zero, $f18 -/* 0A37E8 7F06ECB8 460A3000 */ add.s $f0, $f6, $f10 -/* 0A37EC 7F06ECBC 4612003C */ c.lt.s $f0, $f18 -/* 0A37F0 7F06ECC0 00000000 */ nop -/* 0A37F4 7F06ECC4 45000003 */ bc1f .L7F06ECD4 -/* 0A37F8 7F06ECC8 240E0001 */ li $t6, 1 -/* 0A37FC 7F06ECCC 10000002 */ b .L7F06ECD8 -/* 0A3800 7F06ECD0 ADEE0000 */ sw $t6, ($t7) -.L7F06ECD4: -/* 0A3804 7F06ECD4 AF000000 */ sw $zero, ($t8) -.L7F06ECD8: -/* 0A3808 7F06ECD8 8FA40050 */ lw $a0, 0x50($sp) -/* 0A380C 7F06ECDC 0FC1BAC4 */ jal sub_GAME_7F06EB10 -/* 0A3810 7F06ECE0 8FA50054 */ lw $a1, 0x54($sp) -/* 0A3814 7F06ECE4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A3818 7F06ECE8 8FB00018 */ lw $s0, 0x18($sp) -/* 0A381C 7F06ECEC 27BD0050 */ addiu $sp, $sp, 0x50 -/* 0A3820 7F06ECF0 03E00008 */ jr $ra -/* 0A3824 7F06ECF4 00000000 */ nop -) -#endif +void process_09_head_hat_placement_interlink(Model *model, ModelNode *node) +{ + union ModelRoData *rodata = node->Data; + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + Mtxf *mtx = sub_GAME_7F06C660(model, node, 0); + coord3d sp38; + coord3d sp2c; + f32 tmp; + if (rodata->BSP.reserved == 0) + { + sp38.x = rodata->BSP.Vector.f[0]; + sp38.y = rodata->BSP.Vector.f[1]; + sp38.z = rodata->BSP.Vector.f[2]; + matrix_4x4_rotate_vector_in_place(mtx, sp38.f); + } + else if (rodata->BSP.reserved == 2) + { + sp38.x = mtx->m[1][0] * rodata->BSP.Vector.f[1]; + sp38.y = mtx->m[1][1] * rodata->BSP.Vector.f[1]; + sp38.z = mtx->m[1][2] * rodata->BSP.Vector.f[1]; + } + else if (rodata->BSP.reserved == 3) + { + sp38.x = mtx->m[2][0] * rodata->BSP.Vector.f[2]; + sp38.y = mtx->m[2][1] * rodata->BSP.Vector.f[2]; + sp38.z = mtx->m[2][2] * rodata->BSP.Vector.f[2]; + } + else if (rodata->BSP.reserved == 1) + { + sp38.x = mtx->m[0][0] * rodata->BSP.Vector.f[0]; + sp38.y = mtx->m[0][1] * rodata->BSP.Vector.f[0]; + sp38.z = mtx->m[0][2] * rodata->BSP.Vector.f[0]; + } + sp2c.x = rodata->BSP.Point.f[0]; + sp2c.y = rodata->BSP.Point.f[1]; + sp2c.z = rodata->BSP.Point.f[2]; -#ifdef NONMATCHING -void process_07_unknown(void) { + matrix_4x4_transform_vector_in_place(mtx, sp2c.f); + tmp = sp38.f[0] * sp2c.f[0] + sp38.f[1] * sp2c.f[1] + sp38.f[2] * sp2c.f[2]; + + if (tmp < 0) + { + rwdata->BSP.visible = TRUE; + } + else + { + rwdata->BSP.visible = FALSE; + } + + sub_GAME_7F06EB10(model, node); } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80054C18 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80054C1C -.word 0x40c90fdb /*6.2831855*/ -.text -glabel process_07_unknown -/* 0A3828 7F06ECF8 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0A382C 7F06ECFC AFBF001C */ sw $ra, 0x1c($sp) -/* 0A3830 7F06ED00 AFB00018 */ sw $s0, 0x18($sp) -/* 0A3834 7F06ED04 AFA40058 */ sw $a0, 0x58($sp) -/* 0A3838 7F06ED08 8CAE0004 */ lw $t6, 4($a1) -/* 0A383C 7F06ED0C 00A08025 */ move $s0, $a1 -/* 0A3840 7F06ED10 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A3844 7F06ED14 AFAE0054 */ sw $t6, 0x54($sp) -/* 0A3848 7F06ED18 AFA20050 */ sw $v0, 0x50($sp) -/* 0A384C 7F06ED1C 8FA40058 */ lw $a0, 0x58($sp) -/* 0A3850 7F06ED20 02002825 */ move $a1, $s0 -/* 0A3854 7F06ED24 0FC1B198 */ jal sub_GAME_7F06C660 -/* 0A3858 7F06ED28 00003025 */ move $a2, $zero -/* 0A385C 7F06ED2C 00408025 */ move $s0, $v0 -/* 0A3860 7F06ED30 8FA40058 */ lw $a0, 0x58($sp) -/* 0A3864 7F06ED34 0FC1B154 */ jal sub_GAME_7F06C550 -/* 0A3868 7F06ED38 27A50038 */ addiu $a1, $sp, 0x38 -/* 0A386C 7F06ED3C C7A40038 */ lwc1 $f4, 0x38($sp) -/* 0A3870 7F06ED40 C6060010 */ lwc1 $f6, 0x10($s0) -/* 0A3874 7F06ED44 C7AA003C */ lwc1 $f10, 0x3c($sp) -/* 0A3878 7F06ED48 C6100014 */ lwc1 $f16, 0x14($s0) -/* 0A387C 7F06ED4C 46062202 */ mul.s $f8, $f4, $f6 -/* 0A3880 7F06ED50 C6060018 */ lwc1 $f6, 0x18($s0) -/* 0A3884 7F06ED54 46105482 */ mul.s $f18, $f10, $f16 -/* 0A3888 7F06ED58 C7AA0040 */ lwc1 $f10, 0x40($sp) -/* 0A388C 7F06ED5C 460A3402 */ mul.s $f16, $f6, $f10 -/* 0A3890 7F06ED60 46124100 */ add.s $f4, $f8, $f18 -/* 0A3894 7F06ED64 0FC16B2C */ jal acosf -/* 0A3898 7F06ED68 46048300 */ add.s $f12, $f16, $f4 -/* 0A389C 7F06ED6C E7A00030 */ swc1 $f0, 0x30($sp) -/* 0A38A0 7F06ED70 0FC15FAB */ jal sinf -/* 0A38A4 7F06ED74 46000306 */ mov.s $f12, $f0 -/* 0A38A8 7F06ED78 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 0A38AC 7F06ED7C C6120020 */ lwc1 $f18, 0x20($s0) -/* 0A38B0 7F06ED80 C7AA003C */ lwc1 $f10, 0x3c($sp) -/* 0A38B4 7F06ED84 C6100024 */ lwc1 $f16, 0x24($s0) -/* 0A38B8 7F06ED88 46124182 */ mul.s $f6, $f8, $f18 -/* 0A38BC 7F06ED8C C7B20040 */ lwc1 $f18, 0x40($sp) -/* 0A38C0 7F06ED90 46105102 */ mul.s $f4, $f10, $f16 -/* 0A38C4 7F06ED94 C60A0028 */ lwc1 $f10, 0x28($s0) -/* 0A38C8 7F06ED98 460A9402 */ mul.s $f16, $f18, $f10 -/* 0A38CC 7F06ED9C 46043200 */ add.s $f8, $f6, $f4 -/* 0A38D0 7F06EDA0 46104180 */ add.s $f6, $f8, $f16 -/* 0A38D4 7F06EDA4 0FC16B2C */ jal acosf -/* 0A38D8 7F06EDA8 46003303 */ div.s $f12, $f6, $f0 -/* 0A38DC 7F06EDAC C7A40038 */ lwc1 $f4, 0x38($sp) -/* 0A38E0 7F06EDB0 C6120000 */ lwc1 $f18, ($s0) -/* 0A38E4 7F06EDB4 C7A8003C */ lwc1 $f8, 0x3c($sp) -/* 0A38E8 7F06EDB8 C6100004 */ lwc1 $f16, 4($s0) -/* 0A38EC 7F06EDBC 46122282 */ mul.s $f10, $f4, $f18 -/* 0A38F0 7F06EDC0 C6120008 */ lwc1 $f18, 8($s0) -/* 0A38F4 7F06EDC4 44807000 */ mtc1 $zero, $f14 -/* 0A38F8 7F06EDC8 46104182 */ mul.s $f6, $f8, $f16 -/* 0A38FC 7F06EDCC C7A80040 */ lwc1 $f8, 0x40($sp) -/* 0A3900 7F06EDD0 46000306 */ mov.s $f12, $f0 -/* 0A3904 7F06EDD4 46089402 */ mul.s $f16, $f18, $f8 -/* 0A3908 7F06EDD8 46065100 */ add.s $f4, $f10, $f6 -/* 0A390C 7F06EDDC C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 0A3910 7F06EDE0 46048080 */ add.s $f2, $f16, $f4 -/* 0A3914 7F06EDE4 460E103C */ c.lt.s $f2, $f14 -/* 0A3918 7F06EDE8 00000000 */ nop -/* 0A391C 7F06EDEC 45000007 */ bc1f .L7F06EE0C -/* 0A3920 7F06EDF0 00000000 */ nop -/* 0A3924 7F06EDF4 4600703C */ c.lt.s $f14, $f0 -/* 0A3928 7F06EDF8 3C018005 */ lui $at, %hi(D_80054C18) -/* 0A392C 7F06EDFC 45000003 */ bc1f .L7F06EE0C -/* 0A3930 7F06EE00 00000000 */ nop -/* 0A3934 7F06EE04 C4224C18 */ lwc1 $f2, %lo(D_80054C18)($at) -/* 0A3938 7F06EE08 46001301 */ sub.s $f12, $f2, $f0 -.L7F06EE0C: -/* 0A393C 7F06EE0C 3C018005 */ lui $at, %hi(D_80054C1C) -/* 0A3940 7F06EE10 C4224C1C */ lwc1 $f2, %lo(D_80054C1C)($at) -/* 0A3944 7F06EE14 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 0A3948 7F06EE18 44813000 */ mtc1 $at, $f6 -/* 0A394C 7F06EE1C 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0A3950 7F06EE20 44812000 */ mtc1 $at, $f4 -/* 0A3954 7F06EE24 46065482 */ mul.s $f18, $f10, $f6 -/* 0A3958 7F06EE28 3C088003 */ lui $t0, %hi(D_800360C4) -/* 0A395C 7F06EE2C 250860C4 */ addiu $t0, %lo(D_800360C4) # addiu $t0, $t0, 0x60c4 -/* 0A3960 7F06EE30 46046282 */ mul.s $f10, $f12, $f4 -/* 0A3964 7F06EE34 8FAE0054 */ lw $t6, 0x54($sp) -/* 0A3968 7F06EE38 46029203 */ div.s $f8, $f18, $f2 -/* 0A396C 7F06EE3C 46025183 */ div.s $f6, $f10, $f2 -/* 0A3970 7F06EE40 4600440D */ trunc.w.s $f16, $f8 -/* 0A3974 7F06EE44 44188000 */ mfc1 $t8, $f16 -/* 0A3978 7F06EE48 00000000 */ nop -/* 0A397C 7F06EE4C 0018C880 */ sll $t9, $t8, 2 -/* 0A3980 7F06EE50 0338C823 */ subu $t9, $t9, $t8 -/* 0A3984 7F06EE54 0019C880 */ sll $t9, $t9, 2 -/* 0A3988 7F06EE58 03281821 */ addu $v1, $t9, $t0 -/* 0A398C 7F06EE5C 8C6B0004 */ lw $t3, 4($v1) -/* 0A3990 7F06EE60 8C6C0008 */ lw $t4, 8($v1) -/* 0A3994 7F06EE64 8C6D0000 */ lw $t5, ($v1) -/* 0A3998 7F06EE68 8FB90050 */ lw $t9, 0x50($sp) -/* 0A399C 7F06EE6C 4600348D */ trunc.w.s $f18, $f6 -/* 0A39A0 7F06EE70 440A9000 */ mfc1 $t2, $f18 -/* 0A39A4 7F06EE74 00000000 */ nop -/* 0A39A8 7F06EE78 014B1021 */ addu $v0, $t2, $t3 -/* 0A39AC 7F06EE7C 01821007 */ srav $v0, $v0, $t4 -/* 0A39B0 7F06EE80 01A22021 */ addu $a0, $t5, $v0 -/* 0A39B4 7F06EE84 01C47821 */ addu $t7, $t6, $a0 -/* 0A39B8 7F06EE88 91F80018 */ lbu $t8, 0x18($t7) -/* 0A39BC 7F06EE8C AF380000 */ sw $t8, ($t9) -/* 0A39C0 7F06EE90 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A39C4 7F06EE94 8FB00018 */ lw $s0, 0x18($sp) -/* 0A39C8 7F06EE98 27BD0058 */ addiu $sp, $sp, 0x58 -/* 0A39CC 7F06EE9C 03E00008 */ jr $ra -/* 0A39D0 7F06EEA0 00000000 */ nop -) -#endif +void process_07_unknown(Model *model, ModelNode *node) +{ + union ModelRoData *rodata = node->Data; + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + Mtxf *mtx = sub_GAME_7F06C660(model, node, 0); + f32 ratio; + f32 coord_multiplied; + coord3d coord; + s32 index1; + f32 theta; + s32 index2; + s32 index3; + sub_GAME_7F06C550(model, &coord); + theta = acosf(((coord.x * mtx->m[1][0]) + (coord.y * mtx->m[1][1])) + (coord.z * mtx->m[1][2])); + ratio = acosf((((coord.x * mtx->m[2][0]) + (coord.y * mtx->m[2][1])) + (coord.z * mtx->m[2][2])) / sinf(theta)); + coord_multiplied = ((coord.x * mtx->m[0][0]) + (coord.y * mtx->m[0][1])) + (coord.z * mtx->m[0][2]); -#ifdef NONMATCHING -void sub_GAME_7F06EEA4(void) { + if ((coord_multiplied < 0.0f) && (ratio > 0.0f)) + { + ratio = M_TAU_F - ratio; + } + index1 = (theta * 64.0f) / M_TAU_F; + + index2 = (s32) ((ratio * M_U16_MAX_VALUE_F) / M_TAU_F); + index2 += D_800360C4[index1].unk04; + index2 = index2 >> D_800360C4[index1].unk0C; + + index3 = index2 + D_800360C4[index1].unk00; + + rwdata->Op07.index = rodata->Op07.Data[index3]; } -#else -GLOBAL_ASM( -.late_rodata -/*D:80054C20*/ -glabel jpt_80054C20 -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EF4C -.word .L7F06EF4C -.word .L7F06EF4C -.word .L7F06EF2C -.word .L7F06EF04 -.word .L7F06EF18 -.word .L7F06EF4C -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EEFC -.word .L7F06EF4C -.word .L7F06EF4C -.word .L7F06EF4C -.word .L7F06EF4C -.word .L7F06EEFC -.word .L7F06EF4C -.word .L7F06EF40 -/*.word .L7F06EF4C*/ - -.text -glabel sub_GAME_7F06EEA4 -/* 0A39D4 7F06EEA4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0A39D8 7F06EEA8 AFBF0024 */ sw $ra, 0x24($sp) -/* 0A39DC 7F06EEAC AFB20020 */ sw $s2, 0x20($sp) -/* 0A39E0 7F06EEB0 AFB1001C */ sw $s1, 0x1c($sp) -/* 0A39E4 7F06EEB4 AFB00018 */ sw $s0, 0x18($sp) -/* 0A39E8 7F06EEB8 AFA5002C */ sw $a1, 0x2c($sp) -/* 0A39EC 7F06EEBC 8CB00014 */ lw $s0, 0x14($a1) -/* 0A39F0 7F06EEC0 00809025 */ move $s2, $a0 -/* 0A39F4 7F06EEC4 5200003A */ beql $s0, $zero, .L7F06EFB0 -/* 0A39F8 7F06EEC8 8FBF0024 */ lw $ra, 0x24($sp) -/* 0A39FC 7F06EECC 96020000 */ lhu $v0, ($s0) -.L7F06EED0: -/* 0A3A00 7F06EED0 24110001 */ li $s1, 1 -/* 0A3A04 7F06EED4 304F00FF */ andi $t7, $v0, 0xff -/* 0A3A08 7F06EED8 25F8FFFF */ addiu $t8, $t7, -1 -/* 0A3A0C 7F06EEDC 2F010018 */ sltiu $at, $t8, 0x18 -/* 0A3A10 7F06EEE0 1020001A */ beqz $at, .L7F06EF4C -/* 0A3A14 7F06EEE4 0018C080 */ sll $t8, $t8, 2 -/* 0A3A18 7F06EEE8 3C018005 */ lui $at, %hi(jpt_80054C20) -/* 0A3A1C 7F06EEEC 00380821 */ addu $at, $at, $t8 -/* 0A3A20 7F06EEF0 8C384C20 */ lw $t8, %lo(jpt_80054C20)($at) -.L7F06EEF4: -/* 0A3A24 7F06EEF4 03000008 */ jr $t8 -/* 0A3A28 7F06EEF8 00000000 */ nop -.L7F06EEFC: -/* 0A3A2C 7F06EEFC 10000013 */ b .L7F06EF4C -/* 0A3A30 7F06EF00 00008825 */ move $s1, $zero -.L7F06EF04: -/* 0A3A34 7F06EF04 02402025 */ move $a0, $s2 -/* 0A3A38 7F06EF08 0FC1BA16 */ jal process_08_distance_triggers -/* 0A3A3C 7F06EF0C 02002825 */ move $a1, $s0 -/* 0A3A40 7F06EF10 1000000E */ b .L7F06EF4C -/* 0A3A44 7F06EF14 00000000 */ nop -.L7F06EF18: -/* 0A3A48 7F06EF18 02402025 */ move $a0, $s2 -/* 0A3A4C 7F06EF1C 0FC1BACF */ jal process_09_head_hat_placement_interlink -/* 0A3A50 7F06EF20 02002825 */ move $a1, $s0 -/* 0A3A54 7F06EF24 10000009 */ b .L7F06EF4C -/* 0A3A58 7F06EF28 00000000 */ nop -.L7F06EF2C: -/* 0A3A5C 7F06EF2C 02402025 */ move $a0, $s2 -/* 0A3A60 7F06EF30 0FC1BB3E */ jal process_07_unknown -/* 0A3A64 7F06EF34 02002825 */ move $a1, $s0 -/* 0A3A68 7F06EF38 10000004 */ b .L7F06EF4C -/* 0A3A6C 7F06EF3C 00000000 */ nop -.L7F06EF40: -/* 0A3A70 7F06EF40 02402025 */ move $a0, $s2 -/* 0A3A74 7F06EF44 0FC1BA82 */ jal process_17_pointer_to_head -/* 0A3A78 7F06EF48 02002825 */ move $a1, $s0 -def_7F06EEF4: -.L7F06EF4C: -/* 0A3A7C 7F06EF4C 12200006 */ beqz $s1, .L7F06EF68 -/* 0A3A80 7F06EF50 00000000 */ nop -/* 0A3A84 7F06EF54 8E020014 */ lw $v0, 0x14($s0) -/* 0A3A88 7F06EF58 10400003 */ beqz $v0, .L7F06EF68 -/* 0A3A8C 7F06EF5C 00000000 */ nop -/* 0A3A90 7F06EF60 10000010 */ b .L7F06EFA4 -/* 0A3A94 7F06EF64 00408025 */ move $s0, $v0 -.L7F06EF68: -/* 0A3A98 7F06EF68 1200000E */ beqz $s0, .L7F06EFA4 -/* 0A3A9C 7F06EF6C 8FB9002C */ lw $t9, 0x2c($sp) -/* 0A3AA0 7F06EF70 8F230008 */ lw $v1, 8($t9) -.L7F06EF74: -/* 0A3AA4 7F06EF74 56030004 */ bnel $s0, $v1, .L7F06EF88 -/* 0A3AA8 7F06EF78 8E02000C */ lw $v0, 0xc($s0) -/* 0A3AAC 7F06EF7C 10000009 */ b .L7F06EFA4 -/* 0A3AB0 7F06EF80 00008025 */ move $s0, $zero -/* 0A3AB4 7F06EF84 8E02000C */ lw $v0, 0xc($s0) -.L7F06EF88: -/* 0A3AB8 7F06EF88 50400004 */ beql $v0, $zero, .L7F06EF9C -/* 0A3ABC 7F06EF8C 8E100008 */ lw $s0, 8($s0) -/* 0A3AC0 7F06EF90 10000004 */ b .L7F06EFA4 -/* 0A3AC4 7F06EF94 00408025 */ move $s0, $v0 -/* 0A3AC8 7F06EF98 8E100008 */ lw $s0, 8($s0) -.L7F06EF9C: -/* 0A3ACC 7F06EF9C 1600FFF5 */ bnez $s0, .L7F06EF74 -/* 0A3AD0 7F06EFA0 00000000 */ nop -.L7F06EFA4: -/* 0A3AD4 7F06EFA4 5600FFCA */ bnezl $s0, .L7F06EED0 -/* 0A3AD8 7F06EFA8 96020000 */ lhu $v0, ($s0) -/* 0A3ADC 7F06EFAC 8FBF0024 */ lw $ra, 0x24($sp) -.L7F06EFB0: -/* 0A3AE0 7F06EFB0 8FB00018 */ lw $s0, 0x18($sp) -/* 0A3AE4 7F06EFB4 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A3AE8 7F06EFB8 8FB20020 */ lw $s2, 0x20($sp) -/* 0A3AEC 7F06EFBC 03E00008 */ jr $ra -/* 0A3AF0 7F06EFC0 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif +void sub_GAME_7F06EEA4(Model *model, ModelNode *parent) +{ + ModelNode *node = parent->Child; + ModelNode **unused_parent; + while (node) + { + s32 type = node->Opcode & 0xff; + bool dochildren = TRUE; + switch (type) + { + case MODELNODE_OPCODE_HEADERRECORD: + case MODELNODE_OPCODE_GROUPRECORD: + case MODELNODE_OPCODE_UNUSED_03: + case MODELNODE_OPCODE_OP11RECORD: + case MODELNODE_OPCODE_GUNFIRERECORD: + case MODELNODE_OPCODE_SHADOWRECORD: + case MODELNODE_OPCODE_OP14RECORD: + case MODELNODE_OPCODE_INTERLINKAGERECORD: + case MODELNODE_OPCODE_OP16RECORD: + case MODELNODE_OPCODE_GROUPSIMPLERECORD: + dochildren = FALSE; + break; + case MODELNODE_OPCODE_LODRECORD: + process_08_distance_triggers(model, node); + break; + case MODELNODE_OPCODE_BSPRECORD: + process_09_head_hat_placement_interlink(model, node); + break; + case MODELNODE_OPCODE_OP07RECORD: + process_07_unknown(model, node); + break; + case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: + process_17_pointer_to_head(model, node); + break; + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + break; + } -#ifdef NONMATCHING -void sub_GAME_7F06EFC4(void) { + if (dochildren && node->Child) + { + node = node->Child; + } + else + { + unused_parent = &parent; + while (node) + { + if (node == parent->Parent) + { + node = NULL; + break; + } + if (node->Next) + { + node = node->Next; + break; + } + + node = node->Parent; + } + } + } } -#else -GLOBAL_ASM( -.late_rodata -/*hack for above jtbl being too big*/ -.word .L7F06EF4C - -/*D:80054C80*/ -glabel jpt_80054C80 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F03C -.word .L7F06F014 -.word .L7F06F028 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F050 -.word .L7F06F078 -.word .L7F06F078 -.word .L7F06F078 -/*.word .L7F06F078*/ -/*.word .L7F06F064*/ -/*.word .L7F06F078*/ - -.text -glabel sub_GAME_7F06EFC4 -/* 0A3AF4 7F06EFC4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0A3AF8 7F06EFC8 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A3AFC 7F06EFCC AFB10018 */ sw $s1, 0x18($sp) -/* 0A3B00 7F06EFD0 AFB00014 */ sw $s0, 0x14($sp) -/* 0A3B04 7F06EFD4 8C8E0008 */ lw $t6, 8($a0) -/* 0A3B08 7F06EFD8 00808825 */ move $s1, $a0 -/* 0A3B0C 7F06EFDC 8DD00000 */ lw $s0, ($t6) -/* 0A3B10 7F06EFE0 52000037 */ beql $s0, $zero, .L7F06F0C0 -/* 0A3B14 7F06EFE4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A3B18 7F06EFE8 96020000 */ lhu $v0, ($s0) -.L7F06EFEC: -/* 0A3B1C 7F06EFEC 304F00FF */ andi $t7, $v0, 0xff -/* 0A3B20 7F06EFF0 25F8FFFF */ addiu $t8, $t7, -1 -/* 0A3B24 7F06EFF4 2F010018 */ sltiu $at, $t8, 0x18 -/* 0A3B28 7F06EFF8 1020001F */ beqz $at, .L7F06F078 -/* 0A3B2C 7F06EFFC 0018C080 */ sll $t8, $t8, 2 -/* 0A3B30 7F06F000 3C018005 */ lui $at, %hi(jpt_80054C80) -/* 0A3B34 7F06F004 00380821 */ addu $at, $at, $t8 -/* 0A3B38 7F06F008 8C384C80 */ lw $t8, %lo(jpt_80054C80)($at) -.L7F06F00C: -/* 0A3B3C 7F06F00C 03000008 */ jr $t8 -/* 0A3B40 7F06F010 00000000 */ nop -.L7F06F014: -/* 0A3B44 7F06F014 02202025 */ move $a0, $s1 -/* 0A3B48 7F06F018 0FC1BA16 */ jal process_08_distance_triggers -/* 0A3B4C 7F06F01C 02002825 */ move $a1, $s0 -/* 0A3B50 7F06F020 10000016 */ b .L7F06F07C -/* 0A3B54 7F06F024 8E020014 */ lw $v0, 0x14($s0) -.L7F06F028: -/* 0A3B58 7F06F028 02202025 */ move $a0, $s1 -/* 0A3B5C 7F06F02C 0FC1BACF */ jal process_09_head_hat_placement_interlink -/* 0A3B60 7F06F030 02002825 */ move $a1, $s0 -/* 0A3B64 7F06F034 10000011 */ b .L7F06F07C -/* 0A3B68 7F06F038 8E020014 */ lw $v0, 0x14($s0) -.L7F06F03C: -/* 0A3B6C 7F06F03C 02202025 */ move $a0, $s1 -/* 0A3B70 7F06F040 0FC1BB3E */ jal process_07_unknown -/* 0A3B74 7F06F044 02002825 */ move $a1, $s0 -/* 0A3B78 7F06F048 1000000C */ b .L7F06F07C -/* 0A3B7C 7F06F04C 8E020014 */ lw $v0, 0x14($s0) -.L7F06F050: -/* 0A3B80 7F06F050 02202025 */ move $a0, $s1 -/* 0A3B84 7F06F054 0FC1BA6F */ jal process_12_handle_switch -/* 0A3B88 7F06F058 02002825 */ move $a1, $s0 -/* 0A3B8C 7F06F05C 10000007 */ b .L7F06F07C -/* 0A3B90 7F06F060 8E020014 */ lw $v0, 0x14($s0) -.L7F06F064: -/* 0A3B94 7F06F064 02202025 */ move $a0, $s1 -/* 0A3B98 7F06F068 0FC1BA82 */ jal process_17_pointer_to_head -/* 0A3B9C 7F06F06C 02002825 */ move $a1, $s0 -/* 0A3BA0 7F06F070 10000002 */ b .L7F06F07C -/* 0A3BA4 7F06F074 8E020014 */ lw $v0, 0x14($s0) -def_7F06F00C: -.L7F06F078: -/* 0A3BA8 7F06F078 8E020014 */ lw $v0, 0x14($s0) -.L7F06F07C: -/* 0A3BAC 7F06F07C 10400003 */ beqz $v0, .L7F06F08C -/* 0A3BB0 7F06F080 00000000 */ nop -/* 0A3BB4 7F06F084 1000000B */ b .L7F06F0B4 -/* 0A3BB8 7F06F088 00408025 */ move $s0, $v0 -.L7F06F08C: -/* 0A3BBC 7F06F08C 12000009 */ beqz $s0, .L7F06F0B4 -/* 0A3BC0 7F06F090 00000000 */ nop -/* 0A3BC4 7F06F094 8E02000C */ lw $v0, 0xc($s0) -.L7F06F098: -/* 0A3BC8 7F06F098 50400004 */ beql $v0, $zero, .L7F06F0AC -/* 0A3BCC 7F06F09C 8E100008 */ lw $s0, 8($s0) -/* 0A3BD0 7F06F0A0 10000004 */ b .L7F06F0B4 -/* 0A3BD4 7F06F0A4 00408025 */ move $s0, $v0 -/* 0A3BD8 7F06F0A8 8E100008 */ lw $s0, 8($s0) -.L7F06F0AC: -/* 0A3BDC 7F06F0AC 5600FFFA */ bnezl $s0, .L7F06F098 -/* 0A3BE0 7F06F0B0 8E02000C */ lw $v0, 0xc($s0) -.L7F06F0B4: -/* 0A3BE4 7F06F0B4 5600FFCD */ bnezl $s0, .L7F06EFEC -/* 0A3BE8 7F06F0B8 96020000 */ lhu $v0, ($s0) -/* 0A3BEC 7F06F0BC 8FBF001C */ lw $ra, 0x1c($sp) -.L7F06F0C0: -/* 0A3BF0 7F06F0C0 8FB00014 */ lw $s0, 0x14($sp) -/* 0A3BF4 7F06F0C4 8FB10018 */ lw $s1, 0x18($sp) -/* 0A3BF8 7F06F0C8 03E00008 */ jr $ra -/* 0A3BFC 7F06F0CC 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif +void sub_GAME_7F06EFC4(Model *model) +{ + ModelNode *node = model->obj->RootNode; + while (node) + { + u32 type = node->Opcode & 0xff; + switch (type) + { + case MODELNODE_OPCODE_LODRECORD: + process_08_distance_triggers(model, node); + break; -#ifdef NONMATCHING -void sub_GAME_7F06F0D0(void) { + case MODELNODE_OPCODE_BSPRECORD: + process_09_head_hat_placement_interlink(model, node); + break; + case MODELNODE_OPCODE_OP07RECORD: + process_07_unknown(model, node); + break; + + case MODELNODE_OPCODE_SWITCHRECORD: + process_12_handle_switch(model, node); + break; + + case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: + process_17_pointer_to_head(model, node); + break; + + case MODELNODE_OPCODE_HEADERRECORD: + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + default: + break; + } + + if (node->Child) + { + node = node->Child; + } + else + { + while (node) + { + if (node->Next) + { + node = node->Next; + break; + } + + node = node->Parent; + } + } + } } -#else -GLOBAL_ASM( -.late_rodata -/*hack for above jtbl*/ -.word .L7F06F078 -.word .L7F06F064 -.word .L7F06F078 - -/*D:80054CE0*/ -glabel jpt_80054CE0 -.word .L7F06F128 -.word .L7F06F140 -.word .L7F06F158 -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1B0 -.word .L7F06F188 -.word .L7F06F19C -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F1C4 -.word .L7F06F1EC -.word .L7F06F1EC -.word .L7F06F170 -.word .L7F06F1EC -.word .L7F06F1D8 -.word .L7F06F1EC - -.text -glabel sub_GAME_7F06F0D0 -/* 0A3C00 7F06F0D0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0A3C04 7F06F0D4 AFBF0024 */ sw $ra, 0x24($sp) -/* 0A3C08 7F06F0D8 AFB20020 */ sw $s2, 0x20($sp) -/* 0A3C0C 7F06F0DC AFB1001C */ sw $s1, 0x1c($sp) -/* 0A3C10 7F06F0E0 AFB00018 */ sw $s0, 0x18($sp) -/* 0A3C14 7F06F0E4 8CAE0008 */ lw $t6, 8($a1) -/* 0A3C18 7F06F0E8 00A08825 */ move $s1, $a1 -/* 0A3C1C 7F06F0EC 00809025 */ move $s2, $a0 -/* 0A3C20 7F06F0F0 8DD00000 */ lw $s0, ($t6) -/* 0A3C24 7F06F0F4 5200004F */ beql $s0, $zero, .L7F06F234 -/* 0A3C28 7F06F0F8 8FBF0024 */ lw $ra, 0x24($sp) -/* 0A3C2C 7F06F0FC 96020000 */ lhu $v0, ($s0) -.L7F06F100: -/* 0A3C30 7F06F100 304F00FF */ andi $t7, $v0, 0xff -/* 0A3C34 7F06F104 25F8FFFF */ addiu $t8, $t7, -1 -/* 0A3C38 7F06F108 2F010018 */ sltiu $at, $t8, 0x18 -/* 0A3C3C 7F06F10C 10200037 */ beqz $at, .L7F06F1EC -/* 0A3C40 7F06F110 0018C080 */ sll $t8, $t8, 2 -/* 0A3C44 7F06F114 3C018005 */ lui $at, %hi(jpt_80054CE0) -/* 0A3C48 7F06F118 00380821 */ addu $at, $at, $t8 -/* 0A3C4C 7F06F11C 8C384CE0 */ lw $t8, %lo(jpt_80054CE0)($at) -.L7F06F120: -/* 0A3C50 7F06F120 03000008 */ jr $t8 -/* 0A3C54 7F06F124 00000000 */ nop -.L7F06F128: -/* 0A3C58 7F06F128 02402025 */ move $a0, $s2 -/* 0A3C5C 7F06F12C 02202825 */ move $a1, $s1 -/* 0A3C60 7F06F130 0FC1B5CE */ jal process_01_group_heading -/* 0A3C64 7F06F134 02003025 */ move $a2, $s0 -/* 0A3C68 7F06F138 1000002D */ b .L7F06F1F0 -/* 0A3C6C 7F06F13C 8E020014 */ lw $v0, 0x14($s0) -.L7F06F140: -/* 0A3C70 7F06F140 02402025 */ move $a0, $s2 -/* 0A3C74 7F06F144 02202825 */ move $a1, $s1 -/* 0A3C78 7F06F148 0FC1B828 */ jal process_02_position -/* 0A3C7C 7F06F14C 02003025 */ move $a2, $s0 -/* 0A3C80 7F06F150 10000027 */ b .L7F06F1F0 -/* 0A3C84 7F06F154 8E020014 */ lw $v0, 0x14($s0) -.L7F06F158: -/* 0A3C88 7F06F158 02402025 */ move $a0, $s2 -/* 0A3C8C 7F06F15C 02202825 */ move $a1, $s1 -/* 0A3C90 7F06F160 0FC1B993 */ jal process_03_unknown -/* 0A3C94 7F06F164 02003025 */ move $a2, $s0 -/* 0A3C98 7F06F168 10000021 */ b .L7F06F1F0 -/* 0A3C9C 7F06F16C 8E020014 */ lw $v0, 0x14($s0) -.L7F06F170: -/* 0A3CA0 7F06F170 02402025 */ move $a0, $s2 -/* 0A3CA4 7F06F174 02202825 */ move $a1, $s1 -/* 0A3CA8 7F06F178 0FC1B9EA */ jal process_15_subposition -/* 0A3CAC 7F06F17C 02003025 */ move $a2, $s0 -/* 0A3CB0 7F06F180 1000001B */ b .L7F06F1F0 -/* 0A3CB4 7F06F184 8E020014 */ lw $v0, 0x14($s0) -.L7F06F188: -/* 0A3CB8 7F06F188 02202025 */ move $a0, $s1 -/* 0A3CBC 7F06F18C 0FC1BA16 */ jal process_08_distance_triggers -/* 0A3CC0 7F06F190 02002825 */ move $a1, $s0 -/* 0A3CC4 7F06F194 10000016 */ b .L7F06F1F0 -/* 0A3CC8 7F06F198 8E020014 */ lw $v0, 0x14($s0) -.L7F06F19C: -/* 0A3CCC 7F06F19C 02202025 */ move $a0, $s1 -/* 0A3CD0 7F06F1A0 0FC1BACF */ jal process_09_head_hat_placement_interlink -/* 0A3CD4 7F06F1A4 02002825 */ move $a1, $s0 -/* 0A3CD8 7F06F1A8 10000011 */ b .L7F06F1F0 -/* 0A3CDC 7F06F1AC 8E020014 */ lw $v0, 0x14($s0) -.L7F06F1B0: -/* 0A3CE0 7F06F1B0 02202025 */ move $a0, $s1 -/* 0A3CE4 7F06F1B4 0FC1BB3E */ jal process_07_unknown -/* 0A3CE8 7F06F1B8 02002825 */ move $a1, $s0 -/* 0A3CEC 7F06F1BC 1000000C */ b .L7F06F1F0 -/* 0A3CF0 7F06F1C0 8E020014 */ lw $v0, 0x14($s0) -.L7F06F1C4: -/* 0A3CF4 7F06F1C4 02202025 */ move $a0, $s1 -/* 0A3CF8 7F06F1C8 0FC1BA6F */ jal process_12_handle_switch -/* 0A3CFC 7F06F1CC 02002825 */ move $a1, $s0 -/* 0A3D00 7F06F1D0 10000007 */ b .L7F06F1F0 -/* 0A3D04 7F06F1D4 8E020014 */ lw $v0, 0x14($s0) -.L7F06F1D8: -/* 0A3D08 7F06F1D8 02202025 */ move $a0, $s1 -/* 0A3D0C 7F06F1DC 0FC1BA82 */ jal process_17_pointer_to_head -/* 0A3D10 7F06F1E0 02002825 */ move $a1, $s0 -/* 0A3D14 7F06F1E4 10000002 */ b .L7F06F1F0 -/* 0A3D18 7F06F1E8 8E020014 */ lw $v0, 0x14($s0) -def_7F06F120: -.L7F06F1EC: -/* 0A3D1C 7F06F1EC 8E020014 */ lw $v0, 0x14($s0) -.L7F06F1F0: -/* 0A3D20 7F06F1F0 10400003 */ beqz $v0, .L7F06F200 -/* 0A3D24 7F06F1F4 00000000 */ nop -/* 0A3D28 7F06F1F8 1000000B */ b .L7F06F228 -/* 0A3D2C 7F06F1FC 00408025 */ move $s0, $v0 -.L7F06F200: -/* 0A3D30 7F06F200 12000009 */ beqz $s0, .L7F06F228 -/* 0A3D34 7F06F204 00000000 */ nop -/* 0A3D38 7F06F208 8E02000C */ lw $v0, 0xc($s0) -.L7F06F20C: -/* 0A3D3C 7F06F20C 50400004 */ beql $v0, $zero, .L7F06F220 -/* 0A3D40 7F06F210 8E100008 */ lw $s0, 8($s0) -/* 0A3D44 7F06F214 10000004 */ b .L7F06F228 -/* 0A3D48 7F06F218 00408025 */ move $s0, $v0 -/* 0A3D4C 7F06F21C 8E100008 */ lw $s0, 8($s0) -.L7F06F220: -/* 0A3D50 7F06F220 5600FFFA */ bnezl $s0, .L7F06F20C -/* 0A3D54 7F06F224 8E02000C */ lw $v0, 0xc($s0) -.L7F06F228: -/* 0A3D58 7F06F228 5600FFB5 */ bnezl $s0, .L7F06F100 -/* 0A3D5C 7F06F22C 96020000 */ lhu $v0, ($s0) -/* 0A3D60 7F06F230 8FBF0024 */ lw $ra, 0x24($sp) -.L7F06F234: -/* 0A3D64 7F06F234 8FB00018 */ lw $s0, 0x18($sp) -/* 0A3D68 7F06F238 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A3D6C 7F06F23C 8FB20020 */ lw $s2, 0x20($sp) -/* 0A3D70 7F06F240 03E00008 */ jr $ra -/* 0A3D74 7F06F244 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif +void sub_GAME_7F06F0D0(ModelRenderData *arg0, Model *model) +{ + ModelNode *node = model->obj->RootNode; + while (node) + { + u32 type = node->Opcode & 0xff; + switch (type) + { + case MODELNODE_OPCODE_HEADERRECORD: + process_01_group_heading(arg0, model, node); + break; -#ifdef NONMATCHING -void instcalcmatrices(void) { + case MODELNODE_OPCODE_GROUPRECORD: + process_02_position(arg0, model, node); + break; + case MODELNODE_OPCODE_UNUSED_03: + process_03_unknown(arg0, model, node); + break; + + case MODELNODE_OPCODE_GROUPSIMPLERECORD: + process_15_subposition(arg0, model, node); + break; + + case MODELNODE_OPCODE_LODRECORD: + process_08_distance_triggers(model, node); + break; + + case MODELNODE_OPCODE_BSPRECORD: + process_09_head_hat_placement_interlink(model, node); + break; + + case MODELNODE_OPCODE_OP07RECORD: + process_07_unknown(model, node); + break; + + case MODELNODE_OPCODE_SWITCHRECORD: + process_12_handle_switch(model, node); + break; + + case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: + process_17_pointer_to_head(model, node); + break; + + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + default: + break; + } + + if (node->Child) + { + node = node->Child; + } + else + { + while (node) + { + if (node->Next) + { + node = node->Next; + break; + } + + node = node->Parent; + } + } + } } -#else -#ifndef VERSION_EU -//D:80054890 -const char aInstcalcmatricesNoObjinst[] = "instcalcmatrices: no objinst!\n"; -//D:800548B0 -const char aInstcalcmatricesNoBasemtx[] = "instcalcmatrices: no basemtx!\n"; -//D:800548D0 -const char aInstcalcmatricesNoMtxlist[] = "instcalcmatrices: no mtxlist!\n"; -GLOBAL_ASM( -.text -glabel instcalcmatrices -/* 0A3D78 7F06F248 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0A3D7C 7F06F24C AFB00018 */ sw $s0, 0x18($sp) -/* 0A3D80 7F06F250 00808025 */ move $s0, $a0 -/* 0A3D84 7F06F254 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A3D88 7F06F258 14A00006 */ bnez $a1, .L7F06F274 -/* 0A3D8C 7F06F25C AFA50024 */ sw $a1, 0x24($sp) -/* 0A3D90 7F06F260 3C048005 */ lui $a0, %hi(aInstcalcmatricesNoObjinst) -/* 0A3D94 7F06F264 0C0033D1 */ jal osSyncPrintf -/* 0A3D98 7F06F268 24844890 */ addiu $a0, %lo(aInstcalcmatricesNoObjinst) # addiu $a0, $a0, 0x4890 -/* 0A3D9C 7F06F26C 0FC1B11B */ jal return_null -/* 0A3DA0 7F06F270 00000000 */ nop -.L7F06F274: -/* 0A3DA4 7F06F274 8E0F0000 */ lw $t7, ($s0) -/* 0A3DA8 7F06F278 3C048005 */ lui $a0, %hi(aInstcalcmatricesNoBasemtx) -/* 0A3DAC 7F06F27C 55E00006 */ bnezl $t7, .L7F06F298 -/* 0A3DB0 7F06F280 8E020010 */ lw $v0, 0x10($s0) -/* 0A3DB4 7F06F284 0C0033D1 */ jal osSyncPrintf -/* 0A3DB8 7F06F288 248448B0 */ addiu $a0, %lo(aInstcalcmatricesNoBasemtx) # addiu $a0, $a0, 0x48b0 -/* 0A3DBC 7F06F28C 0FC1B11B */ jal return_null -/* 0A3DC0 7F06F290 00000000 */ nop -/* 0A3DC4 7F06F294 8E020010 */ lw $v0, 0x10($s0) -.L7F06F298: -/* 0A3DC8 7F06F298 3C048005 */ lui $a0, %hi(aInstcalcmatricesNoMtxlist) -/* 0A3DCC 7F06F29C 54400007 */ bnezl $v0, .L7F06F2BC -/* 0A3DD0 7F06F2A0 8FB80024 */ lw $t8, 0x24($sp) -/* 0A3DD4 7F06F2A4 0C0033D1 */ jal osSyncPrintf -/* 0A3DD8 7F06F2A8 248448D0 */ addiu $a0, %lo(aInstcalcmatricesNoMtxlist) # addiu $a0, $a0, 0x48d0 -/* 0A3DDC 7F06F2AC 0FC1B11B */ jal return_null -/* 0A3DE0 7F06F2B0 00000000 */ nop -/* 0A3DE4 7F06F2B4 8E020010 */ lw $v0, 0x10($s0) -/* 0A3DE8 7F06F2B8 8FB80024 */ lw $t8, 0x24($sp) -.L7F06F2BC: -/* 0A3DEC 7F06F2BC 02002025 */ move $a0, $s0 -/* 0A3DF0 7F06F2C0 8F080008 */ lw $t0, 8($t8) -/* 0A3DF4 7F06F2C4 AF02000C */ sw $v0, 0xc($t8) -/* 0A3DF8 7F06F2C8 8E190010 */ lw $t9, 0x10($s0) -/* 0A3DFC 7F06F2CC 8509000E */ lh $t1, 0xe($t0) -/* 0A3E00 7F06F2D0 00095180 */ sll $t2, $t1, 6 -/* 0A3E04 7F06F2D4 032A5821 */ addu $t3, $t9, $t2 -/* 0A3E08 7F06F2D8 AE0B0010 */ sw $t3, 0x10($s0) -/* 0A3E0C 7F06F2DC 0FC1BC34 */ jal sub_GAME_7F06F0D0 -/* 0A3E10 7F06F2E0 8FA50024 */ lw $a1, 0x24($sp) -/* 0A3E14 7F06F2E4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A3E18 7F06F2E8 8FB00018 */ lw $s0, 0x18($sp) -/* 0A3E1C 7F06F2EC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0A3E20 7F06F2F0 03E00008 */ jr $ra -/* 0A3E24 7F06F2F4 00000000 */ nop -) + + +void instcalcmatrices(struct unk_joint_list* arg0, Model* arg1) +{ +#if defined(LEFTOVERDEBUG) + if (arg1 == NULL) + { + osSyncPrintf("instcalcmatrices: no objinst!\n"); + return_null(); + } + + if (arg0->unk_matrix == NULL) + { + osSyncPrintf("instcalcmatrices: no basemtx!\n"); + return_null(); + } + + if (arg0->mtxlist == NULL) + { + osSyncPrintf("instcalcmatrices: no mtxlist!\n"); + return_null(); + } #endif -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel instcalcmatrices -/* 0A2024 7F06F634 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A2028 7F06F638 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A202C 7F06F63C 8C8E0010 */ lw $t6, 0x10($a0) -/* 0A2030 7F06F640 8CB80008 */ lw $t8, 8($a1) -/* 0A2034 7F06F644 ACAE000C */ sw $t6, 0xc($a1) -/* 0A2038 7F06F648 8719000E */ lh $t9, 0xe($t8) -/* 0A203C 7F06F64C 8C8F0010 */ lw $t7, 0x10($a0) -/* 0A2040 7F06F650 00194180 */ sll $t0, $t9, 6 -/* 0A2044 7F06F654 01E84821 */ addu $t1, $t7, $t0 -/* 0A2048 7F06F658 0FC1BD2F */ jal sub_GAME_7F06F0D0 -/* 0A204C 7F06F65C AC890010 */ sw $t1, 0x10($a0) -/* 0A2050 7F06F660 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A2054 7F06F664 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A2058 7F06F668 03E00008 */ jr $ra -/* 0A205C 7F06F66C 00000000 */ nop -) -#endif -#endif - - - - - - + arg1->render_pos = (RenderPosView* ) arg0->mtxlist; + arg0->mtxlist += arg1->obj->numMatrices; + sub_GAME_7F06F0D0((ModelRenderData* ) arg0, arg1); +} /** @@ -5174,7 +3536,7 @@ void sub_GAME_7F06F780(Model *model, f32 arg1) model->unk6C = model->unk3C; if ((temp_a1->Opcode & 0xFF) == 1) { - temp_v0_2 = extract_id_from_object_structure_microcode(model, temp_a1); + temp_v0_2 = modelGetNodeRwData(model, temp_a1); temp_f10 = temp_v0_2->unk34.x; temp_f16 = temp_v0_2->unk34.AsArray[1]; temp_f18 = temp_v0_2->unk34.AsArray[2]; @@ -5239,7 +3601,7 @@ glabel sub_GAME_7F06F780 /* 0A4344 7F06F814 E4860080 */ swc1 $f6, 0x80($a0) /* 0A4348 7F06F818 15E10013 */ bne $t7, $at, .L7F06F868 /* 0A434C 7F06F81C E488006C */ swc1 $f8, 0x6c($a0) -/* 0A4350 7F06F820 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A4350 7F06F820 0FC1B1E7 */ jal modelGetNodeRwData /* 0A4354 7F06F824 00000000 */ nop /* 0A4358 7F06F828 C44A0034 */ lwc1 $f10, 0x34($v0) /* 0A435C 7F06F82C C4500038 */ lwc1 $f16, 0x38($v0) @@ -5328,7 +3690,7 @@ void sub_GAME_7F06F878(Model *model, void *anim, s32 arg2, f32 startframe, f32 h if ((temp_a1->Opcode & 0xFF) == 1) { sp80 = temp_a1->Data; - temp_v0 = extract_id_from_object_structure_microcode(model, temp_a1); + temp_v0 = modelGetNodeRwData(model, temp_a1); sp5C.unk0 = D_80036244.unk0; temp_f2 = model->scale * model->unkB8; sp5C.unk4 = D_80036244.unk4; @@ -5362,9 +3724,9 @@ void sub_GAME_7F06F878(Model *model, void *anim, s32 arg2, f32 startframe, f32 h { temp_f0_2 = temp_v0->unk30 + sp58; temp_v0->unk20 = temp_f0_2; - if (temp_f0_2 >= 6.2831855f) + if (temp_f0_2 >= M_TAU_F) { - temp_v0->unk20 -= 6.2831855f; + temp_v0->unk20 -= M_TAU_F; } } temp_v0->unk1 = 1; @@ -5391,16 +3753,16 @@ void sub_GAME_7F06F878(Model *model, void *anim, s32 arg2, f32 startframe, f32 h phi_f14 = temp_f14_2; if (temp_f14_2 < 0.0f) { - phi_f14 = temp_f14_2 + 6.2831855f; + phi_f14 = temp_f14_2 + M_TAU_F; } temp_v0->unk30 = sub_GAME_7F06D0CC(temp_f12_2, phi_f14, model->unk2C); if (temp_v0->unk18 == 0.0f) { temp_f0_3 = temp_v0->unk30 + sp58; temp_v0->unk20 = temp_f0_3; - if (temp_f0_3 >= 6.2831855f) + if (temp_f0_3 >= M_TAU_F) { - temp_v0->unk20 -= 6.2831855f; + temp_v0->unk20 -= M_TAU_F; } } temp_v0->unk1 = 1; @@ -5471,7 +3833,7 @@ glabel sub_GAME_7F06F878 /* 0A4458 7F06F928 8FBF0024 */ lw $ra, 0x24($sp) /* 0A445C 7F06F92C 8CA90004 */ lw $t1, 4($a1) /* 0A4460 7F06F930 02202025 */ move $a0, $s1 -/* 0A4464 7F06F934 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A4464 7F06F934 0FC1B1E7 */ jal modelGetNodeRwData /* 0A4468 7F06F938 AFA90080 */ sw $t1, 0x80($sp) /* 0A446C 7F06F93C 3C0C8003 */ lui $t4, %hi(D_80036244) /* 0A4470 7F06F940 8FAA0080 */ lw $t2, 0x80($sp) @@ -5833,10 +4195,10 @@ void sub_GAME_7F06FE90(Model *model, f32 arg1, f32 arg2) modelSetAnimSpeed(model, t, arg2); } -void sub_GAME_7F06FF18(Model *model, f32 animation_rate, f32 arg2) { +void modelSetAnimRateForDuration(Model *model, f32 animation_rate, f32 arg2) { if (arg2 > 0.0f) { model->unkb0 = arg2; - model->unka8 = animation_rate; + model->animrate = animation_rate; model->unkb4 = 0.0f; model->unkac = model->unka4; return; @@ -6101,7 +4463,7 @@ glabel sub_GAME_7F0701EC /* 0A4D6C 7F07023C 304F00FF */ andi $t7, $v0, 0xff /* 0A4D70 7F070240 55E10218 */ bnel $t7, $at, .L7F070AA4 /* 0A4D74 7F070244 C7B40108 */ lwc1 $f20, 0x108($sp) -/* 0A4D78 7F070248 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A4D78 7F070248 0FC1B1E7 */ jal modelGetNodeRwData /* 0A4D7C 7F07024C 8CB20004 */ lw $s2, 4($a1) /* 0A4D80 7F070250 80580000 */ lb $t8, ($v0) /* 0A4D84 7F070254 00408025 */ move $s0, $v0 @@ -7038,72 +5400,24 @@ glabel sub_GAME_7F070AEC #endif +void sub_GAME_7F070F80(ModelRenderData *renderdata) +{ + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_1CYCLE); + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_AA_ZB_OPA_SURF2, G_RM_AA_ZB_OPA_SURF); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); + } - -#ifdef NONMATCHING -void sub_GAME_7F070F80(void) { - + gDPSetCombineMode(renderdata->gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F070F80 -/* 0A5AB0 7F070F80 8C83000C */ lw $v1, 0xc($a0) -/* 0A5AB4 7F070F84 3C0FE700 */ lui $t7, 0xe700 -/* 0A5AB8 7F070F88 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 -/* 0A5ABC 7F070F8C 246E0008 */ addiu $t6, $v1, 8 -/* 0A5AC0 7F070F90 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5AC4 7F070F94 AC600004 */ sw $zero, 4($v1) -/* 0A5AC8 7F070F98 AC6F0000 */ sw $t7, ($v1) -/* 0A5ACC 7F070F9C 8C83000C */ lw $v1, 0xc($a0) -/* 0A5AD0 7F070FA0 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 -/* 0A5AD4 7F070FA4 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A5AD8 7F070FA8 24780008 */ addiu $t8, $v1, 8 -/* 0A5ADC 7F070FAC AC98000C */ sw $t8, 0xc($a0) -/* 0A5AE0 7F070FB0 AC600004 */ sw $zero, 4($v1) -/* 0A5AE4 7F070FB4 AC790000 */ sw $t9, ($v1) -/* 0A5AE8 7F070FB8 8C880004 */ lw $t0, 4($a0) -/* 0A5AEC 7F070FBC 3C18FC12 */ lui $t8, (0xFC121824 >> 16) # lui $t8, 0xfc12 -/* 0A5AF0 7F070FC0 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A5AF4 7F070FC4 1100000B */ beqz $t0, .L7F070FF4 -/* 0A5AF8 7F070FC8 37181824 */ ori $t8, (0xFC121824 & 0xFFFF) # ori $t8, $t8, 0x1824 -/* 0A5AFC 7F070FCC 8C83000C */ lw $v1, 0xc($a0) -/* 0A5B00 7F070FD0 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 -/* 0A5B04 7F070FD4 3C0B0055 */ lui $t3, (0x00552078 >> 16) # lui $t3, 0x55 -/* 0A5B08 7F070FD8 24690008 */ addiu $t1, $v1, 8 -/* 0A5B0C 7F070FDC AC89000C */ sw $t1, 0xc($a0) -/* 0A5B10 7F070FE0 356B2078 */ ori $t3, (0x00552078 & 0xFFFF) # ori $t3, $t3, 0x2078 -/* 0A5B14 7F070FE4 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d -/* 0A5B18 7F070FE8 AC6A0000 */ sw $t2, ($v1) -/* 0A5B1C 7F070FEC 10000008 */ b .L7F071010 -/* 0A5B20 7F070FF0 AC6B0004 */ sw $t3, 4($v1) -.L7F070FF4: -/* 0A5B24 7F070FF4 8C83000C */ lw $v1, 0xc($a0) -/* 0A5B28 7F070FF8 3C0E0055 */ lui $t6, (0x00552048 >> 16) # lui $t6, 0x55 -/* 0A5B2C 7F070FFC 35CE2048 */ ori $t6, (0x00552048 & 0xFFFF) # ori $t6, $t6, 0x2048 -/* 0A5B30 7F071000 246C0008 */ addiu $t4, $v1, 8 -/* 0A5B34 7F071004 AC8C000C */ sw $t4, 0xc($a0) -/* 0A5B38 7F071008 AC6E0004 */ sw $t6, 4($v1) -/* 0A5B3C 7F07100C AC6D0000 */ sw $t5, ($v1) -.L7F071010: -/* 0A5B40 7F071010 8C83000C */ lw $v1, 0xc($a0) -/* 0A5B44 7F071014 3C19FF33 */ lui $t9, (0xFF33FFFF >> 16) # lui $t9, 0xff33 -/* 0A5B48 7F071018 3739FFFF */ ori $t9, (0xFF33FFFF & 0xFFFF) # ori $t9, $t9, 0xffff -/* 0A5B4C 7F07101C 246F0008 */ addiu $t7, $v1, 8 -/* 0A5B50 7F071020 AC8F000C */ sw $t7, 0xc($a0) -/* 0A5B54 7F071024 AC790004 */ sw $t9, 4($v1) -/* 0A5B58 7F071028 03E00008 */ jr $ra -/* 0A5B5C 7F07102C AC780000 */ sw $t8, ($v1) -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F071030(void) { /* --Copy/Paste from Doc DisplayList Setups Depend on Object Type, Prop Guard or Gun. @@ -7239,2591 +5553,828 @@ Model Type 4: Normal Fog/Lighting object B900031DC41041C8 SetRendermode(AA_OPA_StanFOG_2)//FcBl ClrOnCvg endif */ +void sub_GAME_7F071030(ModelRenderData *renderdata, bool arg1) +{ + if (renderdata->unk30 == 7) + { + if (arg1) + { + u8 r, g, b, a; + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + + r = _SHIFTR(renderdata->fogcolour, 24, 8); + g = _SHIFTR(renderdata->fogcolour, 16, 8); + b = _SHIFTR(renderdata->fogcolour, 8, 8); + a = _SHIFTR(renderdata->fogcolour, 0, 8); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + r = _SHIFTR(renderdata->envcolour, 24, 8); + g = _SHIFTR(renderdata->envcolour, 16, 8); + b = _SHIFTR(renderdata->envcolour, 8, 8); + a = 0xFF; + gDPSetEnvColor(renderdata->gdl++, r, g, b, a); + + gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, ENVIRONMENT, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else if (renderdata->unk30 == 8) + { + if (arg1) + { + u8 r, g, b, a; + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + + r = _SHIFTR(renderdata->fogcolour, 24, 8); + g = _SHIFTR(renderdata->fogcolour, 16, 8); + b = _SHIFTR(renderdata->fogcolour, 8, 8); + a = _SHIFTR(renderdata->fogcolour, 0, 8); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + r = _SHIFTR(renderdata->envcolour, 24, 8); + g = _SHIFTR(renderdata->envcolour, 16, 8); + b = _SHIFTR(renderdata->envcolour, 8, 8); + a = _SHIFTR(renderdata->envcolour, 0, 8); + gDPSetEnvColor(renderdata->gdl++, r, g, b, a); + + gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else if (renderdata->unk30 == 9) + { + if ((renderdata->envcolour & 0xFF) == 0) + { + if (arg1) + { + u8 r = _SHIFTR(renderdata->fogcolour, 24, 8); + u8 g = _SHIFTR(renderdata->fogcolour, 16, 8); + u8 b = _SHIFTR(renderdata->fogcolour, 8, 8); + u8 a = _SHIFTR(renderdata->fogcolour, 0, 8); + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + gDPSetEnvColor(renderdata->gdl++, 0xFF, 0xFF, 0xFF, 0xFF); + gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xFF); + + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else + { + if (arg1) + { + u8 r = _SHIFTR(renderdata->fogcolour, 24, 8); + u8 g = _SHIFTR(renderdata->fogcolour, 16, 8); + u8 b = _SHIFTR(renderdata->fogcolour, 8, 8); + u8 a = _SHIFTR(renderdata->fogcolour, 0, 8); + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + gDPSetEnvColor(renderdata->gdl++, 0, 0, 0, renderdata->envcolour & 0xFF); + + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_TEX_EDGE2); + } + } + else + { + gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xFF); + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, SHADE, ENVIRONMENT, TEXEL0, 0, COMBINED, 0, SHADE, 0, 1, 0, PRIMITIVE, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_TEX_EDGE2); + } + } + } + } + else if (renderdata->unk30 == 4) + { + if (arg1) + { + u8 r = _SHIFTR(renderdata->envcolour, 24, 8); + u8 g = _SHIFTR(renderdata->envcolour, 16, 8); + u8 b = _SHIFTR(renderdata->envcolour, 8, 8); + u8 a = _SHIFTR(renderdata->envcolour, 0, 8); + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else if (renderdata->unk30 == 5) + { + u8 r, g, b, a; + if (arg1) + { + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + + r = _SHIFTR(renderdata->fogcolour, 24, 8); + g = _SHIFTR(renderdata->fogcolour, 16, 8); + b = _SHIFTR(renderdata->fogcolour, 8, 8); + a = _SHIFTR(renderdata->fogcolour, 0, 8); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + a = renderdata->envcolour & 0xFF; + + if (a < 255) + { + gDPSetEnvColor(renderdata->gdl++, 0xFF, 0xFF, 0xFF, a); + + if (renderdata->envcolour & 0xFF00) + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, SHADE, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + } + else + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + } + } + else + { + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + } + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + else + { + a = renderdata->envcolour & 0xFF; + + if (a < 255) + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + } + else + { + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + } + } + } + else + { + if (arg1) + { + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_PASS, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_PASS, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_PASS, G_RM_AA_XLU_SURF2); + } + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F071030 /*DisplayListSetup(obj)*/ -/* 0A5B60 7F071030 8C820030 */ lw $v0, 0x30($a0) /*a0=obj?*/ -/* 0A5B64 7F071034 24010007 */ li $at, 7 -/* 0A5B68 7F071038 5441006C */ bnel $v0, $at, .L7F0711EC /*obj.ModelType <= 7? */ -/* 0A5B6C 7F07103C 24010008 */ li $at, 8 -/* 0A5B70 7F071040 50A00054 */ beql $a1, $zero, .L7F071194 /*a1 = */ -/* 0A5B74 7F071044 8C990004 */ lw $t9, 4($a0) -/* 0A5B78 7F071048 8C82000C */ lw $v0, 0xc($a0) -/* 0A5B7C 7F07104C 3C0FE700 */ lui $t7, 0xe700 -/* 0A5B80 7F071050 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 -/* 0A5B84 7F071054 244E0008 */ addiu $t6, $v0, 8 -/* 0A5B88 7F071058 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5B8C 7F07105C AC400004 */ sw $zero, 4($v0) -/* 0A5B90 7F071060 AC4F0000 */ sw $t7, ($v0) -/* 0A5B94 7F071064 8C82000C */ lw $v0, 0xc($a0) -/* 0A5B98 7F071068 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 /*2Cycle*/ -/* 0A5B9C 7F07106C 3C0C0010 */ lui $t4, 0x10 -/* 0A5BA0 7F071070 24580008 */ addiu $t8, $v0, 8 -/* 0A5BA4 7F071074 AC98000C */ sw $t8, 0xc($a0) -/* 0A5BA8 7F071078 AC4C0004 */ sw $t4, 4($v0) -/* 0A5BAC 7F07107C AC590000 */ sw $t9, ($v0) -/* 0A5BB0 7F071080 8C8A0038 */ lw $t2, 0x38($a0) -/* 0A5BB4 7F071084 8C82000C */ lw $v0, 0xc($a0) -/* 0A5BB8 7F071088 3C0FF800 */ lui $t7, 0xf800 -/* 0A5BBC 7F07108C 000A4402 */ srl $t0, $t2, 0x10 -/* 0A5BC0 7F071090 244E0008 */ addiu $t6, $v0, 8 -/* 0A5BC4 7F071094 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5BC8 7F071098 310C00FF */ andi $t4, $t0, 0xff -/* 0A5BCC 7F07109C 000AC602 */ srl $t8, $t2, 0x18 -/* 0A5BD0 7F0710A0 0018CE00 */ sll $t9, $t8, 0x18 -/* 0A5BD4 7F0710A4 000C6C00 */ sll $t5, $t4, 0x10 -/* 0A5BD8 7F0710A8 000A4A02 */ srl $t1, $t2, 8 -/* 0A5BDC 7F0710AC AC4F0000 */ sw $t7, ($v0) -/* 0A5BE0 7F0710B0 312F00FF */ andi $t7, $t1, 0xff -/* 0A5BE4 7F0710B4 032D7025 */ or $t6, $t9, $t5 -/* 0A5BE8 7F0710B8 000FC200 */ sll $t8, $t7, 8 -/* 0A5BEC 7F0710BC 01D86025 */ or $t4, $t6, $t8 -/* 0A5BF0 7F0710C0 315900FF */ andi $t9, $t2, 0xff -/* 0A5BF4 7F0710C4 01996825 */ or $t5, $t4, $t9 -/* 0A5BF8 7F0710C8 AC4D0004 */ sw $t5, 4($v0) -/* 0A5BFC 7F0710CC 8C830034 */ lw $v1, 0x34($a0) -/* 0A5C00 7F0710D0 8C82000C */ lw $v0, 0xc($a0) -/* 0A5C04 7F0710D4 3C0EFB00 */ lui $t6, 0xfb00 -/* 0A5C08 7F0710D8 00034402 */ srl $t0, $v1, 0x10 -/* 0A5C0C 7F0710DC 244F0008 */ addiu $t7, $v0, 8 -/* 0A5C10 7F0710E0 AC8F000C */ sw $t7, 0xc($a0) -/* 0A5C14 7F0710E4 311900FF */ andi $t9, $t0, 0xff -/* 0A5C18 7F0710E8 00033E02 */ srl $a3, $v1, 0x18 -/* 0A5C1C 7F0710EC 00034A02 */ srl $t1, $v1, 8 -/* 0A5C20 7F0710F0 AC4E0000 */ sw $t6, ($v0) -/* 0A5C24 7F0710F4 312E00FF */ andi $t6, $t1, 0xff -/* 0A5C28 7F0710F8 00076600 */ sll $t4, $a3, 0x18 -/* 0A5C2C 7F0710FC 00196C00 */ sll $t5, $t9, 0x10 -/* 0A5C30 7F071100 018D7825 */ or $t7, $t4, $t5 -/* 0A5C34 7F071104 000EC200 */ sll $t8, $t6, 8 -/* 0A5C38 7F071108 01F8C825 */ or $t9, $t7, $t8 -/* 0A5C3C 7F07110C 372C00FF */ ori $t4, $t9, 0xff -/* 0A5C40 7F071110 AC4C0004 */ sw $t4, 4($v0) -/* 0A5C44 7F071114 8C82000C */ lw $v0, 0xc($a0) -/* 0A5C48 7F071118 3C0F5FFE */ lui $t7, (0x5FFEDBF8 >> 16) # lui $t7, 0x5ffe /*fulldl guard */ -/* 0A5C4C 7F07111C 3C0EFC15 */ lui $t6, (0xFC159804 >> 16) # lui $t6, 0xfc15 -/* 0A5C50 7F071120 244D0008 */ addiu $t5, $v0, 8 -/* 0A5C54 7F071124 AC8D000C */ sw $t5, 0xc($a0) -/* 0A5C58 7F071128 35CE9804 */ ori $t6, (0xFC159804 & 0xFFFF) # ori $t6, $t6, 0x9804 -/* 0A5C5C 7F07112C 35EFDBF8 */ ori $t7, (0x5FFEDBF8 & 0xFFFF) # ori $t7, $t7, 0xdbf8 -/* 0A5C60 7F071130 AC4F0004 */ sw $t7, 4($v0) -/* 0A5C64 7F071134 AC4E0000 */ sw $t6, ($v0) -/* 0A5C68 7F071138 8C980004 */ lw $t8, 4($a0) -/* 0A5C6C 7F07113C 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A5C70 7F071140 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 -/* 0A5C74 7F071144 1300000A */ beqz $t8, .L7F071170 -/* 0A5C78 7F071148 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A5C7C 7F07114C 8C82000C */ lw $v0, 0xc($a0) -/* 0A5C80 7F071150 3C0DC411 */ lui $t5, (0xC4112078 >> 16) # lui $t5, 0xc411 -/* 0A5C84 7F071154 35AD2078 */ ori $t5, (0xC4112078 & 0xFFFF) # ori $t5, $t5, 0x2078 -/* 0A5C88 7F071158 24590008 */ addiu $t9, $v0, 8 -/* 0A5C8C 7F07115C AC99000C */ sw $t9, 0xc($a0) -/* 0A5C90 7F071160 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 0A5C94 7F071164 AC4C0000 */ sw $t4, ($v0) -/* 0A5C98 7F071168 03E00008 */ jr $ra -/* 0A5C9C 7F07116C AC4D0004 */ sw $t5, 4($v0) - -.L7F071170: -/* 0A5CA0 7F071170 8C82000C */ lw $v0, 0xc($a0) -/* 0A5CA4 7F071174 3C18C411 */ lui $t8, (0xC4112048 >> 16) # lui $t8, 0xc411 -/* 0A5CA8 7F071178 37182048 */ ori $t8, (0xC4112048 & 0xFFFF) # ori $t8, $t8, 0x2048 -/* 0A5CAC 7F07117C 244E0008 */ addiu $t6, $v0, 8 -/* 0A5CB0 7F071180 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5CB4 7F071184 AC580004 */ sw $t8, 4($v0) -/* 0A5CB8 7F071188 03E00008 */ jr $ra -/* 0A5CBC 7F07118C AC4F0000 */ sw $t7, ($v0) - -/* 0A5CC0 7F071190 8C990004 */ lw $t9, 4($a0) -.L7F071194: /*UseZ - Transparent Gun Rendermode*/ -/* 0A5CC4 7F071194 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A5CC8 7F071198 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A5CCC 7F07119C 1320000A */ beqz $t9, .L7F0711C8 -/* 0A5CD0 7F0711A0 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A5CD4 7F0711A4 8C82000C */ lw $v0, 0xc($a0) -/* 0A5CD8 7F0711A8 3C0EC410 */ lui $t6, (0xC41049D8 >> 16) # lui $t6, 0xc410 -/* 0A5CDC 7F0711AC 35CE49D8 */ ori $t6, (0xC41049D8 & 0xFFFF) # ori $t6, $t6, 0x49d8 -/* 0A5CE0 7F0711B0 244C0008 */ addiu $t4, $v0, 8 -/* 0A5CE4 7F0711B4 AC8C000C */ sw $t4, 0xc($a0) -/* 0A5CE8 7F0711B8 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A5CEC 7F0711BC AC4D0000 */ sw $t5, ($v0) -/* 0A5CF0 7F0711C0 03E00008 */ jr $ra -/* 0A5CF4 7F0711C4 AC4E0004 */ sw $t6, 4($v0) - -.L7F0711C8: /*not UseZ - Opaque Gun Rendermode*/ -/* 0A5CF8 7F0711C8 8C82000C */ lw $v0, 0xc($a0) -/* 0A5CFC 7F0711CC 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 -/* 0A5D00 7F0711D0 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 -/* 0A5D04 7F0711D4 244F0008 */ addiu $t7, $v0, 8 -/* 0A5D08 7F0711D8 AC8F000C */ sw $t7, 0xc($a0) -/* 0A5D0C 7F0711DC AC590004 */ sw $t9, 4($v0) -/* 0A5D10 7F0711E0 03E00008 */ jr $ra -/* 0A5D14 7F0711E4 AC580000 */ sw $t8, ($v0) - -/* 0A5D18 7F0711E8 24010008 */ li $at, 8 -.L7F0711EC: -/* 0A5D1C 7F0711EC 54410057 */ bnel $v0, $at, .L7F07134C -/* 0A5D20 7F0711F0 24010009 */ li $at, 9 -/* 0A5D24 7F0711F4 10A00251 */ beqz $a1, .L7F071B3C -/* 0A5D28 7F0711F8 00000000 */ nop -/* 0A5D2C 7F0711FC 8C82000C */ lw $v0, 0xc($a0) -/* 0A5D30 7F071200 3C0DE700 */ lui $t5, 0xe700 -/* 0A5D34 7F071204 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 -/* 0A5D38 7F071208 244C0008 */ addiu $t4, $v0, 8 -/* 0A5D3C 7F07120C AC8C000C */ sw $t4, 0xc($a0) -/* 0A5D40 7F071210 AC400004 */ sw $zero, 4($v0) -/* 0A5D44 7F071214 AC4D0000 */ sw $t5, ($v0) -/* 0A5D48 7F071218 8C82000C */ lw $v0, 0xc($a0) -/* 0A5D4C 7F07121C 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 -/* 0A5D50 7F071220 3C180010 */ lui $t8, 0x10 -/* 0A5D54 7F071224 244E0008 */ addiu $t6, $v0, 8 -/* 0A5D58 7F071228 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5D5C 7F07122C AC580004 */ sw $t8, 4($v0) /*add to t7 = */ -/* 0A5D60 7F071230 AC4F0000 */ sw $t7, ($v0) /*0xBA00140200000010 2cycle*/ -/* 0A5D64 7F071234 8C8A0038 */ lw $t2, 0x38($a0) -/* 0A5D68 7F071238 8C82000C */ lw $v0, 0xc($a0) -/* 0A5D6C 7F07123C 3C0DF800 */ lui $t5, 0xf800 /*fogcolour*/ -/* 0A5D70 7F071240 000A4402 */ srl $t0, $t2, 0x10 -/* 0A5D74 7F071244 244C0008 */ addiu $t4, $v0, 8 -/* 0A5D78 7F071248 AC8C000C */ sw $t4, 0xc($a0) -/* 0A5D7C 7F07124C 311800FF */ andi $t8, $t0, 0xff -/* 0A5D80 7F071250 000A7602 */ srl $t6, $t2, 0x18 -/* 0A5D84 7F071254 000E7E00 */ sll $t7, $t6, 0x18 -/* 0A5D88 7F071258 0018CC00 */ sll $t9, $t8, 0x10 -/* 0A5D8C 7F07125C 000A4A02 */ srl $t1, $t2, 8 -/* 0A5D90 7F071260 AC4D0000 */ sw $t5, ($v0) /*black*/ -/* 0A5D94 7F071264 312D00FF */ andi $t5, $t1, 0xff -/* 0A5D98 7F071268 01F96025 */ or $t4, $t7, $t9 -/* 0A5D9C 7F07126C 000D7200 */ sll $t6, $t5, 8 -/* 0A5DA0 7F071270 018EC025 */ or $t8, $t4, $t6 -/* 0A5DA4 7F071274 314F00FF */ andi $t7, $t2, 0xff -/* 0A5DA8 7F071278 030FC825 */ or $t9, $t8, $t7 -/* 0A5DAC 7F07127C AC590004 */ sw $t9, 4($v0) -/* 0A5DB0 7F071280 8C8A0034 */ lw $t2, 0x34($a0) -/* 0A5DB4 7F071284 8C82000C */ lw $v0, 0xc($a0) -/* 0A5DB8 7F071288 3C0EFB00 */ lui $t6, 0xfb00 /*envcolour*/ -/* 0A5DBC 7F07128C 000A4402 */ srl $t0, $t2, 0x10 -/* 0A5DC0 7F071290 244C0008 */ addiu $t4, $v0, 8 -/* 0A5DC4 7F071294 AC8C000C */ sw $t4, 0xc($a0) -/* 0A5DC8 7F071298 311900FF */ andi $t9, $t0, 0xff -/* 0A5DCC 7F07129C 000AC602 */ srl $t8, $t2, 0x18 -/* 0A5DD0 7F0712A0 00187E00 */ sll $t7, $t8, 0x18 -/* 0A5DD4 7F0712A4 00196C00 */ sll $t5, $t9, 0x10 -/* 0A5DD8 7F0712A8 000A4A02 */ srl $t1, $t2, 8 -/* 0A5DDC 7F0712AC AC4E0000 */ sw $t6, ($v0) /*black*/ -/* 0A5DE0 7F0712B0 312E00FF */ andi $t6, $t1, 0xff -/* 0A5DE4 7F0712B4 01ED6025 */ or $t4, $t7, $t5 -/* 0A5DE8 7F0712B8 000EC200 */ sll $t8, $t6, 8 -/* 0A5DEC 7F0712BC 0198C825 */ or $t9, $t4, $t8 -/* 0A5DF0 7F0712C0 314F00FF */ andi $t7, $t2, 0xff -/* 0A5DF4 7F0712C4 032F6825 */ or $t5, $t9, $t7 -/* 0A5DF8 7F0712C8 AC4D0004 */ sw $t5, 4($v0) -/* 0A5DFC 7F0712CC 8C82000C */ lw $v0, 0xc($a0) -/* 0A5E00 7F0712D0 3C185FFE */ lui $t8, (0x5FFEFFF8 >> 16) # lui $t8, 0x5ffe -/* 0A5E04 7F0712D4 3C0CFC15 */ lui $t4, (0xFC159A04 >> 16) # lui $t4, 0xfc15 -/* 0A5E08 7F0712D8 244E0008 */ addiu $t6, $v0, 8 -/* 0A5E0C 7F0712DC AC8E000C */ sw $t6, 0xc($a0) -/* 0A5E10 7F0712E0 358C9A04 */ ori $t4, (0xFC159A04 & 0xFFFF) # ori $t4, $t4, 0x9a04 -/* 0A5E14 7F0712E4 3718FFF8 */ ori $t8, (0x5FFEFFF8 & 0xFFFF) # ori $t8, $t8, 0xfff8 -/* 0A5E18 7F0712E8 AC580004 */ sw $t8, 4($v0) -/* 0A5E1C 7F0712EC AC4C0000 */ sw $t4, ($v0) -/* 0A5E20 7F0712F0 8C990004 */ lw $t9, 4($a0) -/* 0A5E24 7F0712F4 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A5E28 7F0712F8 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A5E2C 7F0712FC 1320000A */ beqz $t9, .L7F071328 -/* 0A5E30 7F071300 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A5E34 7F071304 8C82000C */ lw $v0, 0xc($a0) -/* 0A5E38 7F071308 3C0EC410 */ lui $t6, (0xC41049D8 >> 16) # lui $t6, 0xc410 -/* 0A5E3C 7F07130C 35CE49D8 */ ori $t6, (0xC41049D8 & 0xFFFF) # ori $t6, $t6, 0x49d8 -/* 0A5E40 7F071310 244F0008 */ addiu $t7, $v0, 8 -/* 0A5E44 7F071314 AC8F000C */ sw $t7, 0xc($a0) -/* 0A5E48 7F071318 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d /*Transparent Gun Rendermode Z*/ -/* 0A5E4C 7F07131C AC4D0000 */ sw $t5, ($v0) -/* 0A5E50 7F071320 03E00008 */ jr $ra -/* 0A5E54 7F071324 AC4E0004 */ sw $t6, 4($v0) - -.L7F071328: -/* 0A5E58 7F071328 8C82000C */ lw $v0, 0xc($a0) -/* 0A5E5C 7F07132C 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 -/* 0A5E60 7F071330 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 /*transparent Gun rendermode NoZ*/ -/* 0A5E64 7F071334 244C0008 */ addiu $t4, $v0, 8 -/* 0A5E68 7F071338 AC8C000C */ sw $t4, 0xc($a0) -/* 0A5E6C 7F07133C AC590004 */ sw $t9, 4($v0) -/* 0A5E70 7F071340 03E00008 */ jr $ra -/* 0A5E74 7F071344 AC580000 */ sw $t8, ($v0) - -/* 0A5E78 7F071348 24010009 */ li $at, 9 -.L7F07134C: -/* 0A5E7C 7F07134C 544100DE */ bnel $v0, $at, .L7F0716C8 -/* 0A5E80 7F071350 24010004 */ li $at, 4 -/* 0A5E84 7F071354 8C8F0034 */ lw $t7, 0x34($a0) -/* 0A5E88 7F071358 31ED00FF */ andi $t5, $t7, 0xff -/* 0A5E8C 7F07135C 15A00068 */ bnez $t5, .L7F071500 -/* 0A5E90 7F071360 00000000 */ nop -/* 0A5E94 7F071364 10A00050 */ beqz $a1, .L7F0714A8 -/* 0A5E98 7F071368 3C18E700 */ lui $t8, 0xe700 -/* 0A5E9C 7F07136C 8C82000C */ lw $v0, 0xc($a0) -/* 0A5EA0 7F071370 8C880038 */ lw $t0, 0x38($a0) -/* 0A5EA4 7F071374 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 -/* 0A5EA8 7F071378 244C0008 */ addiu $t4, $v0, 8 -/* 0A5EAC 7F07137C AC8C000C */ sw $t4, 0xc($a0) -/* 0A5EB0 7F071380 AC400004 */ sw $zero, 4($v0) -/* 0A5EB4 7F071384 AC580000 */ sw $t8, ($v0) -/* 0A5EB8 7F071388 8C82000C */ lw $v0, 0xc($a0) -/* 0A5EBC 7F07138C 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 -/* 0A5EC0 7F071390 3C0D0010 */ lui $t5, 0x10 -/* 0A5EC4 7F071394 24590008 */ addiu $t9, $v0, 8 -/* 0A5EC8 7F071398 AC99000C */ sw $t9, 0xc($a0) -/* 0A5ECC 7F07139C AC4D0004 */ sw $t5, 4($v0) /*add to t4 =*/ -/* 0A5ED0 7F0713A0 AC4F0000 */ sw $t7, ($v0) /*2cycle*/ -/* 0A5ED4 7F0713A4 8C82000C */ lw $v0, 0xc($a0) -/* 0A5ED8 7F0713A8 00083402 */ srl $a2, $t0, 0x10 -/* 0A5EDC 7F0713AC 30CF00FF */ andi $t7, $a2, 0xff -/* 0A5EE0 7F0713B0 244E0008 */ addiu $t6, $v0, 8 -/* 0A5EE4 7F0713B4 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5EE8 7F0713B8 3C0CF800 */ lui $t4, 0xf800 /*fogcolour*/ -/* 0A5EEC 7F0713BC 00082E02 */ srl $a1, $t0, 0x18 -/* 0A5EF0 7F0713C0 0005CE00 */ sll $t9, $a1, 0x18 -/* 0A5EF4 7F0713C4 000F6C00 */ sll $t5, $t7, 0x10 -/* 0A5EF8 7F0713C8 00083A02 */ srl $a3, $t0, 8 -/* 0A5EFC 7F0713CC AC4C0000 */ sw $t4, ($v0) /*black*/ -/* 0A5F00 7F0713D0 30EC00FF */ andi $t4, $a3, 0xff -/* 0A5F04 7F0713D4 032D7025 */ or $t6, $t9, $t5 -/* 0A5F08 7F0713D8 000CC200 */ sll $t8, $t4, 8 -/* 0A5F0C 7F0713DC 01D87825 */ or $t7, $t6, $t8 -/* 0A5F10 7F0713E0 311900FF */ andi $t9, $t0, 0xff -/* 0A5F14 7F0713E4 01F96825 */ or $t5, $t7, $t9 -/* 0A5F18 7F0713E8 AC4D0004 */ sw $t5, 4($v0) -/* 0A5F1C 7F0713EC 8C82000C */ lw $v0, 0xc($a0) -/* 0A5F20 7F0713F0 2418FFFF */ li $t8, -1 -/* 0A5F24 7F0713F4 3C0EFB00 */ lui $t6, 0xfb00 /*envcolour*/ -/* 0A5F28 7F0713F8 244C0008 */ addiu $t4, $v0, 8 -/* 0A5F2C 7F0713FC AC8C000C */ sw $t4, 0xc($a0) -/* 0A5F30 7F071400 AC580004 */ sw $t8, 4($v0) -/* 0A5F34 7F071404 AC4E0000 */ sw $t6, ($v0) /*black*/ -/* 0A5F38 7F071408 8C82000C */ lw $v0, 0xc($a0) -/* 0A5F3C 7F07140C 3C19FA00 */ lui $t9, 0xfa00 -/* 0A5F40 7F071410 244F0008 */ addiu $t7, $v0, 8 -/* 0A5F44 7F071414 AC8F000C */ sw $t7, 0xc($a0) -/* 0A5F48 7F071418 AC590000 */ sw $t9, ($v0) -/* 0A5F4C 7F07141C 8C8D0034 */ lw $t5, 0x34($a0) -/* 0A5F50 7F071420 3C19FC26 */ lui $t9, (0xFC26A004 >> 16) # lui $t9, 0xfc26 -/* 0A5F54 7F071424 3739A004 */ ori $t9, (0xFC26A004 & 0xFFFF) # ori $t9, $t9, 0xa004 /*prop combiner*/ -/* 0A5F58 7F071428 000D7202 */ srl $t6, $t5, 8 -/* 0A5F5C 7F07142C 31D800FF */ andi $t8, $t6, 0xff -/* 0A5F60 7F071430 AC580004 */ sw $t8, 4($v0) -/* 0A5F64 7F071434 8C82000C */ lw $v0, 0xc($a0) -/* 0A5F68 7F071438 3C0D1F10 */ lui $t5, (0x1F1093FB >> 16) # lui $t5, 0x1f10 -/* 0A5F6C 7F07143C 35AD93FB */ ori $t5, (0x1F1093FB & 0xFFFF) # ori $t5, $t5, 0x93fb -/* 0A5F70 7F071440 244F0008 */ addiu $t7, $v0, 8 -/* 0A5F74 7F071444 AC8F000C */ sw $t7, 0xc($a0) -/* 0A5F78 7F071448 AC4D0004 */ sw $t5, 4($v0) -/* 0A5F7C 7F07144C AC590000 */ sw $t9, ($v0) -/* 0A5F80 7F071450 8C8C0004 */ lw $t4, 4($a0) -/* 0A5F84 7F071454 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A5F88 7F071458 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A5F8C 7F07145C 1180000A */ beqz $t4, .L7F071488 -/* 0A5F90 7F071460 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A5F94 7F071464 8C82000C */ lw $v0, 0xc($a0) -/* 0A5F98 7F071468 3C0FC411 */ lui $t7, (0xC4112078 >> 16) # lui $t7, 0xc411 -/* 0A5F9C 7F07146C 35EF2078 */ ori $t7, (0xC4112078 & 0xFFFF) # ori $t7, $t7, 0x2078 /*primary prop useZ rendermode*/ -/* 0A5FA0 7F071470 244E0008 */ addiu $t6, $v0, 8 -/* 0A5FA4 7F071474 AC8E000C */ sw $t6, 0xc($a0) -/* 0A5FA8 7F071478 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A5FAC 7F07147C AC580000 */ sw $t8, ($v0) -/* 0A5FB0 7F071480 03E00008 */ jr $ra -/* 0A5FB4 7F071484 AC4F0004 */ sw $t7, 4($v0) - -.L7F071488: /*Not UseZ*/ -/* 0A5FB8 7F071488 8C82000C */ lw $v0, 0xc($a0) -/* 0A5FBC 7F07148C 3C0CC411 */ lui $t4, (0xC4112048 >> 16) # lui $t4, 0xc411 -/* 0A5FC0 7F071490 358C2048 */ ori $t4, (0xC4112048 & 0xFFFF) # ori $t4, $t4, 0x2048 /*primary prop noz rendermode*/ -/* 0A5FC4 7F071494 24590008 */ addiu $t9, $v0, 8 -/* 0A5FC8 7F071498 AC99000C */ sw $t9, 0xc($a0) -/* 0A5FCC 7F07149C AC4C0004 */ sw $t4, 4($v0) -/* 0A5FD0 7F0714A0 03E00008 */ jr $ra -/* 0A5FD4 7F0714A4 AC4D0000 */ sw $t5, ($v0) - -.L7F0714A8: /*sec UseZ*/ -/* 0A5FD8 7F0714A8 8C8E0004 */ lw $t6, 4($a0) -/* 0A5FDC 7F0714AC 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 -/* 0A5FE0 7F0714B0 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A5FE4 7F0714B4 11C0000A */ beqz $t6, .L7F0714E0 -/* 0A5FE8 7F0714B8 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 0A5FEC 7F0714BC 8C82000C */ lw $v0, 0xc($a0) -/* 0A5FF0 7F0714C0 3C19C410 */ lui $t9, (0xC41049D8 >> 16) # lui $t9, 0xc410 -/* 0A5FF4 7F0714C4 373949D8 */ ori $t9, (0xC41049D8 & 0xFFFF) # ori $t9, $t9, 0x49d8 -/* 0A5FF8 7F0714C8 24580008 */ addiu $t8, $v0, 8 -/* 0A5FFC 7F0714CC AC98000C */ sw $t8, 0xc($a0) -/* 0A6000 7F0714D0 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A6004 7F0714D4 AC4F0000 */ sw $t7, ($v0) -/* 0A6008 7F0714D8 03E00008 */ jr $ra -/* 0A600C 7F0714DC AC590004 */ sw $t9, 4($v0) - -.L7F0714E0: /*Sec Not UseZ*/ -/* 0A6010 7F0714E0 8C82000C */ lw $v0, 0xc($a0) -/* 0A6014 7F0714E4 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 -/* 0A6018 7F0714E8 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 -/* 0A601C 7F0714EC 244D0008 */ addiu $t5, $v0, 8 -/* 0A6020 7F0714F0 AC8D000C */ sw $t5, 0xc($a0) -/* 0A6024 7F0714F4 AC4E0004 */ sw $t6, 4($v0) -/* 0A6028 7F0714F8 03E00008 */ jr $ra -/* 0A602C 7F0714FC AC4C0000 */ sw $t4, ($v0) - -.L7F071500: -/* 0A6030 7F071500 10A00048 */ beqz $a1, .L7F071624 -/* 0A6034 7F071504 3C19E700 */ lui $t9, 0xe700 -/* 0A6038 7F071508 8C82000C */ lw $v0, 0xc($a0) -/* 0A603C 7F07150C 8C880038 */ lw $t0, 0x38($a0) -/* 0A6040 7F071510 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 -/* 0A6044 7F071514 244F0008 */ addiu $t7, $v0, 8 -/* 0A6048 7F071518 AC8F000C */ sw $t7, 0xc($a0) -/* 0A604C 7F07151C AC400004 */ sw $zero, 4($v0) -/* 0A6050 7F071520 AC590000 */ sw $t9, ($v0) -/* 0A6054 7F071524 8C82000C */ lw $v0, 0xc($a0) -/* 0A6058 7F071528 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 -/* 0A605C 7F07152C 3C0E0010 */ lui $t6, 0x10 /*add to t4 = */ -/* 0A6060 7F071530 244D0008 */ addiu $t5, $v0, 8 -/* 0A6064 7F071534 AC8D000C */ sw $t5, 0xc($a0) -/* 0A6068 7F071538 AC4E0004 */ sw $t6, 4($v0) -/* 0A606C 7F07153C AC4C0000 */ sw $t4, ($v0) /*2cycle*/ -/* 0A6070 7F071540 8C82000C */ lw $v0, 0xc($a0) -/* 0A6074 7F071544 00083402 */ srl $a2, $t0, 0x10 -/* 0A6078 7F071548 30CC00FF */ andi $t4, $a2, 0xff -/* 0A607C 7F07154C 24580008 */ addiu $t8, $v0, 8 -/* 0A6080 7F071550 AC98000C */ sw $t8, 0xc($a0) -/* 0A6084 7F071554 3C0FF800 */ lui $t7, 0xf800 -/* 0A6088 7F071558 00082E02 */ srl $a1, $t0, 0x18 -/* 0A608C 7F07155C 00056E00 */ sll $t5, $a1, 0x18 -/* 0A6090 7F071560 000C7400 */ sll $t6, $t4, 0x10 -/* 0A6094 7F071564 00083A02 */ srl $a3, $t0, 8 -/* 0A6098 7F071568 AC4F0000 */ sw $t7, ($v0) -/* 0A609C 7F07156C 30EF00FF */ andi $t7, $a3, 0xff -/* 0A60A0 7F071570 01AEC025 */ or $t8, $t5, $t6 -/* 0A60A4 7F071574 000FCA00 */ sll $t9, $t7, 8 -/* 0A60A8 7F071578 03196025 */ or $t4, $t8, $t9 -/* 0A60AC 7F07157C 310D00FF */ andi $t5, $t0, 0xff -/* 0A60B0 7F071580 018D7025 */ or $t6, $t4, $t5 -/* 0A60B4 7F071584 AC4E0004 */ sw $t6, 4($v0) -/* 0A60B8 7F071588 8C82000C */ lw $v0, 0xc($a0) -/* 0A60BC 7F07158C 3C18FB00 */ lui $t8, 0xfb00 -/* 0A60C0 7F071590 244F0008 */ addiu $t7, $v0, 8 -/* 0A60C4 7F071594 AC8F000C */ sw $t7, 0xc($a0) -/* 0A60C8 7F071598 AC580000 */ sw $t8, ($v0) -/* 0A60CC 7F07159C 8C8C0034 */ lw $t4, 0x34($a0) -/* 0A60D0 7F0715A0 3C181FFC */ lui $t8, (0x1FFCFBF8 >> 16) # lui $t8, 0x1ffc -/* 0A60D4 7F0715A4 3C0FFC26 */ lui $t7, (0xFC26E804 >> 16) # lui $t7, 0xfc26 -/* 0A60D8 7F0715A8 318D00FF */ andi $t5, $t4, 0xff -/* 0A60DC 7F0715AC AC4D0004 */ sw $t5, 4($v0) -/* 0A60E0 7F0715B0 8C82000C */ lw $v0, 0xc($a0) -/* 0A60E4 7F0715B4 35EFE804 */ ori $t7, (0xFC26E804 & 0xFFFF) # ori $t7, $t7, 0xe804 -/* 0A60E8 7F0715B8 3718FBF8 */ ori $t8, (0x1FFCFBF8 & 0xFFFF) # ori $t8, $t8, 0xfbf8 -/* 0A60EC 7F0715BC 244E0008 */ addiu $t6, $v0, 8 -/* 0A60F0 7F0715C0 AC8E000C */ sw $t6, 0xc($a0) -/* 0A60F4 7F0715C4 AC580004 */ sw $t8, 4($v0) -/* 0A60F8 7F0715C8 AC4F0000 */ sw $t7, ($v0) -/* 0A60FC 7F0715CC 8C990004 */ lw $t9, 4($a0) -/* 0A6100 7F0715D0 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A6104 7F0715D4 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A6108 7F0715D8 1320000A */ beqz $t9, .L7F071604 -/* 0A610C 7F0715DC 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A6110 7F0715E0 8C82000C */ lw $v0, 0xc($a0) -/* 0A6114 7F0715E4 3C0EC411 */ lui $t6, (0xC4113078 >> 16) # lui $t6, 0xc411 -/* 0A6118 7F0715E8 35CE3078 */ ori $t6, (0xC4113078 & 0xFFFF) # ori $t6, $t6, 0x3078 -/* 0A611C 7F0715EC 244C0008 */ addiu $t4, $v0, 8 -/* 0A6120 7F0715F0 AC8C000C */ sw $t4, 0xc($a0) -/* 0A6124 7F0715F4 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A6128 7F0715F8 AC4D0000 */ sw $t5, ($v0) -/* 0A612C 7F0715FC 03E00008 */ jr $ra -/* 0A6130 7F071600 AC4E0004 */ sw $t6, 4($v0) - -.L7F071604: -/* 0A6134 7F071604 8C82000C */ lw $v0, 0xc($a0) -/* 0A6138 7F071608 3C19C411 */ lui $t9, (0xC4113048 >> 16) # lui $t9, 0xc411 -/* 0A613C 7F07160C 37393048 */ ori $t9, (0xC4113048 & 0xFFFF) # ori $t9, $t9, 0x3048 -/* 0A6140 7F071610 244F0008 */ addiu $t7, $v0, 8 -/* 0A6144 7F071614 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6148 7F071618 AC590004 */ sw $t9, 4($v0) -/* 0A614C 7F07161C 03E00008 */ jr $ra -/* 0A6150 7F071620 AC580000 */ sw $t8, ($v0) - -.L7F071624: -/* 0A6154 7F071624 8C82000C */ lw $v0, 0xc($a0) -/* 0A6158 7F071628 3C0DFA00 */ lui $t5, 0xfa00 -/* 0A615C 7F07162C 244C0008 */ addiu $t4, $v0, 8 -/* 0A6160 7F071630 AC8C000C */ sw $t4, 0xc($a0) -/* 0A6164 7F071634 AC4D0000 */ sw $t5, ($v0) -/* 0A6168 7F071638 8C8E0034 */ lw $t6, 0x34($a0) -/* 0A616C 7F07163C 3C0DFC26 */ lui $t5, (0xFC26C204 >> 16) # lui $t5, 0xfc26 -/* 0A6170 7F071640 35ADC204 */ ori $t5, (0xFC26C204 & 0xFFFF) # ori $t5, $t5, 0xc204 -/* 0A6174 7F071644 000EC202 */ srl $t8, $t6, 8 -/* 0A6178 7F071648 331900FF */ andi $t9, $t8, 0xff -/* 0A617C 7F07164C AC590004 */ sw $t9, 4($v0) -/* 0A6180 7F071650 8C82000C */ lw $v0, 0xc($a0) -/* 0A6184 7F071654 3C0E1FCC */ lui $t6, (0x1FCCDFF8 >> 16) # lui $t6, 0x1fcc -/* 0A6188 7F071658 35CEDFF8 */ ori $t6, (0x1FCCDFF8 & 0xFFFF) # ori $t6, $t6, 0xdff8 -/* 0A618C 7F07165C 244C0008 */ addiu $t4, $v0, 8 -/* 0A6190 7F071660 AC8C000C */ sw $t4, 0xc($a0) -/* 0A6194 7F071664 AC4E0004 */ sw $t6, 4($v0) -/* 0A6198 7F071668 AC4D0000 */ sw $t5, ($v0) -/* 0A619C 7F07166C 8C8F0004 */ lw $t7, 4($a0) -/* 0A61A0 7F071670 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A61A4 7F071674 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A61A8 7F071678 11E0000A */ beqz $t7, .L7F0716A4 -/* 0A61AC 7F07167C 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A61B0 7F071680 8C82000C */ lw $v0, 0xc($a0) -/* 0A61B4 7F071684 3C0CC411 */ lui $t4, (0xC4113078 >> 16) # lui $t4, 0xc411 -/* 0A61B8 7F071688 358C3078 */ ori $t4, (0xC4113078 & 0xFFFF) # ori $t4, $t4, 0x3078 -/* 0A61BC 7F07168C 24580008 */ addiu $t8, $v0, 8 -/* 0A61C0 7F071690 AC98000C */ sw $t8, 0xc($a0) -/* 0A61C4 7F071694 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A61C8 7F071698 AC590000 */ sw $t9, ($v0) -/* 0A61CC 7F07169C 03E00008 */ jr $ra -/* 0A61D0 7F0716A0 AC4C0004 */ sw $t4, 4($v0) - -.L7F0716A4: -/* 0A61D4 7F0716A4 8C82000C */ lw $v0, 0xc($a0) -/* 0A61D8 7F0716A8 3C0FC411 */ lui $t7, (0xC4113048 >> 16) # lui $t7, 0xc411 -/* 0A61DC 7F0716AC 35EF3048 */ ori $t7, (0xC4113048 & 0xFFFF) # ori $t7, $t7, 0x3048 -/* 0A61E0 7F0716B0 244D0008 */ addiu $t5, $v0, 8 -/* 0A61E4 7F0716B4 AC8D000C */ sw $t5, 0xc($a0) -/* 0A61E8 7F0716B8 AC4F0004 */ sw $t7, 4($v0) -/* 0A61EC 7F0716BC 03E00008 */ jr $ra -/* 0A61F0 7F0716C0 AC4E0000 */ sw $t6, ($v0) - -/* 0A61F4 7F0716C4 24010004 */ li $at, 4 -.L7F0716C8: -/* 0A61F8 7F0716C8 54410059 */ bnel $v0, $at, .L7F071830 -/* 0A61FC 7F0716CC 24010005 */ li $at, 5 -/* 0A6200 7F0716D0 10A00040 */ beqz $a1, .L7F0717D4 -/* 0A6204 7F0716D4 3C0CE700 */ lui $t4, 0xe700 -/* 0A6208 7F0716D8 8C82000C */ lw $v0, 0xc($a0) -/* 0A620C 7F0716DC 8C880034 */ lw $t0, 0x34($a0) -/* 0A6210 7F0716E0 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 -/* 0A6214 7F0716E4 24590008 */ addiu $t9, $v0, 8 -/* 0A6218 7F0716E8 AC99000C */ sw $t9, 0xc($a0) -/* 0A621C 7F0716EC AC400004 */ sw $zero, 4($v0) -/* 0A6220 7F0716F0 AC4C0000 */ sw $t4, ($v0) -/* 0A6224 7F0716F4 8C82000C */ lw $v0, 0xc($a0) -/* 0A6228 7F0716F8 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 -/* 0A622C 7F0716FC 3C0F0010 */ lui $t7, 0x10 -/* 0A6230 7F071700 244D0008 */ addiu $t5, $v0, 8 -/* 0A6234 7F071704 AC8D000C */ sw $t5, 0xc($a0) -/* 0A6238 7F071708 AC4F0004 */ sw $t7, 4($v0) -/* 0A623C 7F07170C AC4E0000 */ sw $t6, ($v0) -/* 0A6240 7F071710 8C82000C */ lw $v0, 0xc($a0) -/* 0A6244 7F071714 00083402 */ srl $a2, $t0, 0x10 -/* 0A6248 7F071718 30CE00FF */ andi $t6, $a2, 0xff -/* 0A624C 7F07171C 24580008 */ addiu $t8, $v0, 8 -/* 0A6250 7F071720 AC98000C */ sw $t8, 0xc($a0) -/* 0A6254 7F071724 3C19F800 */ lui $t9, 0xf800 -/* 0A6258 7F071728 00082E02 */ srl $a1, $t0, 0x18 -/* 0A625C 7F07172C 00056E00 */ sll $t5, $a1, 0x18 -/* 0A6260 7F071730 000E7C00 */ sll $t7, $t6, 0x10 -/* 0A6264 7F071734 00083A02 */ srl $a3, $t0, 8 -/* 0A6268 7F071738 AC590000 */ sw $t9, ($v0) -/* 0A626C 7F07173C 30F900FF */ andi $t9, $a3, 0xff -/* 0A6270 7F071740 01AFC025 */ or $t8, $t5, $t7 -/* 0A6274 7F071744 00196200 */ sll $t4, $t9, 8 -/* 0A6278 7F071748 030C7025 */ or $t6, $t8, $t4 -/* 0A627C 7F07174C 310D00FF */ andi $t5, $t0, 0xff -/* 0A6280 7F071750 01CD7825 */ or $t7, $t6, $t5 -/* 0A6284 7F071754 AC4F0004 */ sw $t7, 4($v0) -/* 0A6288 7F071758 8C82000C */ lw $v0, 0xc($a0) -/* 0A628C 7F07175C 3C0C1F10 */ lui $t4, (0x1F1093FF >> 16) # lui $t4, 0x1f10 -/* 0A6290 7F071760 3C18FC26 */ lui $t8, (0xFC26A004 >> 16) # lui $t8, 0xfc26 -/* 0A6294 7F071764 24590008 */ addiu $t9, $v0, 8 -/* 0A6298 7F071768 AC99000C */ sw $t9, 0xc($a0) -/* 0A629C 7F07176C 3718A004 */ ori $t8, (0xFC26A004 & 0xFFFF) # ori $t8, $t8, 0xa004 -/* 0A62A0 7F071770 358C93FF */ ori $t4, (0x1F1093FF & 0xFFFF) # ori $t4, $t4, 0x93ff -/* 0A62A4 7F071774 AC4C0004 */ sw $t4, 4($v0) -/* 0A62A8 7F071778 AC580000 */ sw $t8, ($v0) -/* 0A62AC 7F07177C 8C8E0004 */ lw $t6, 4($a0) -/* 0A62B0 7F071780 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 -/* 0A62B4 7F071784 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A62B8 7F071788 11C0000A */ beqz $t6, .L7F0717B4 -/* 0A62BC 7F07178C 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 0A62C0 7F071790 8C82000C */ lw $v0, 0xc($a0) -/* 0A62C4 7F071794 3C19C411 */ lui $t9, (0xC4112078 >> 16) # lui $t9, 0xc411 -/* 0A62C8 7F071798 37392078 */ ori $t9, (0xC4112078 & 0xFFFF) # ori $t9, $t9, 0x2078 -/* 0A62CC 7F07179C 244D0008 */ addiu $t5, $v0, 8 -/* 0A62D0 7F0717A0 AC8D000C */ sw $t5, 0xc($a0) -/* 0A62D4 7F0717A4 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A62D8 7F0717A8 AC4F0000 */ sw $t7, ($v0) -/* 0A62DC 7F0717AC 03E00008 */ jr $ra -/* 0A62E0 7F0717B0 AC590004 */ sw $t9, 4($v0) - -.L7F0717B4: -/* 0A62E4 7F0717B4 8C82000C */ lw $v0, 0xc($a0) -/* 0A62E8 7F0717B8 3C0EC411 */ lui $t6, (0xC4112048 >> 16) # lui $t6, 0xc411 -/* 0A62EC 7F0717BC 35CE2048 */ ori $t6, (0xC4112048 & 0xFFFF) # ori $t6, $t6, 0x2048 -/* 0A62F0 7F0717C0 24580008 */ addiu $t8, $v0, 8 -/* 0A62F4 7F0717C4 AC98000C */ sw $t8, 0xc($a0) -/* 0A62F8 7F0717C8 AC4E0004 */ sw $t6, 4($v0) -/* 0A62FC 7F0717CC 03E00008 */ jr $ra -/* 0A6300 7F0717D0 AC4C0000 */ sw $t4, ($v0) - -.L7F0717D4: -/* 0A6304 7F0717D4 8C8D0004 */ lw $t5, 4($a0) -/* 0A6308 7F0717D8 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A630C 7F0717DC 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A6310 7F0717E0 11A0000A */ beqz $t5, .L7F07180C -/* 0A6314 7F0717E4 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A6318 7F0717E8 8C82000C */ lw $v0, 0xc($a0) -/* 0A631C 7F0717EC 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 -/* 0A6320 7F0717F0 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 -/* 0A6324 7F0717F4 244F0008 */ addiu $t7, $v0, 8 -/* 0A6328 7F0717F8 AC8F000C */ sw $t7, 0xc($a0) -/* 0A632C 7F0717FC 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A6330 7F071800 AC590000 */ sw $t9, ($v0) -/* 0A6334 7F071804 03E00008 */ jr $ra -/* 0A6338 7F071808 AC580004 */ sw $t8, 4($v0) - -.L7F07180C: -/* 0A633C 7F07180C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6340 7F071810 3C0DC410 */ lui $t5, (0xC41041C8 >> 16) # lui $t5, 0xc410 -/* 0A6344 7F071814 35AD41C8 */ ori $t5, (0xC41041C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 -/* 0A6348 7F071818 244C0008 */ addiu $t4, $v0, 8 -/* 0A634C 7F07181C AC8C000C */ sw $t4, 0xc($a0) -/* 0A6350 7F071820 AC4D0004 */ sw $t5, 4($v0) -/* 0A6354 7F071824 03E00008 */ jr $ra -/* 0A6358 7F071828 AC4E0000 */ sw $t6, ($v0) - -/* 0A635C 7F07182C 24010005 */ li $at, 5 -.L7F071830: -/* 0A6360 7F071830 1441007F */ bne $v0, $at, .L7F071A30 -/* 0A6364 7F071834 00000000 */ nop -/* 0A6368 7F071838 50A00066 */ beql $a1, $zero, .L7F0719D4 -/* 0A636C 7F07183C 8C990034 */ lw $t9, 0x34($a0) -/* 0A6370 7F071840 8C82000C */ lw $v0, 0xc($a0) -/* 0A6374 7F071844 3C19E700 */ lui $t9, 0xe700 -/* 0A6378 7F071848 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 -/* 0A637C 7F07184C 244F0008 */ addiu $t7, $v0, 8 -/* 0A6380 7F071850 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6384 7F071854 AC400004 */ sw $zero, 4($v0) -/* 0A6388 7F071858 AC590000 */ sw $t9, ($v0) -/* 0A638C 7F07185C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6390 7F071860 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 -/* 0A6394 7F071864 3C0E0010 */ lui $t6, 0x10 -/* 0A6398 7F071868 24580008 */ addiu $t8, $v0, 8 -/* 0A639C 7F07186C AC98000C */ sw $t8, 0xc($a0) -/* 0A63A0 7F071870 AC4E0004 */ sw $t6, 4($v0) -/* 0A63A4 7F071874 AC4C0000 */ sw $t4, ($v0) -/* 0A63A8 7F071878 8C8A0038 */ lw $t2, 0x38($a0) -/* 0A63AC 7F07187C 8C82000C */ lw $v0, 0xc($a0) -/* 0A63B0 7F071880 3C19F800 */ lui $t9, 0xf800 -/* 0A63B4 7F071884 000A4402 */ srl $t0, $t2, 0x10 -/* 0A63B8 7F071888 244F0008 */ addiu $t7, $v0, 8 -/* 0A63BC 7F07188C AC8F000C */ sw $t7, 0xc($a0) -/* 0A63C0 7F071890 310E00FF */ andi $t6, $t0, 0xff -/* 0A63C4 7F071894 000AC602 */ srl $t8, $t2, 0x18 -/* 0A63C8 7F071898 00186600 */ sll $t4, $t8, 0x18 -/* 0A63CC 7F07189C 000E6C00 */ sll $t5, $t6, 0x10 -/* 0A63D0 7F0718A0 000A4A02 */ srl $t1, $t2, 8 -/* 0A63D4 7F0718A4 AC590000 */ sw $t9, ($v0) -/* 0A63D8 7F0718A8 313900FF */ andi $t9, $t1, 0xff -/* 0A63DC 7F0718AC 018D7825 */ or $t7, $t4, $t5 -/* 0A63E0 7F0718B0 0019C200 */ sll $t8, $t9, 8 -/* 0A63E4 7F0718B4 01F87025 */ or $t6, $t7, $t8 -/* 0A63E8 7F0718B8 314C00FF */ andi $t4, $t2, 0xff -/* 0A63EC 7F0718BC 01CC6825 */ or $t5, $t6, $t4 -/* 0A63F0 7F0718C0 AC4D0004 */ sw $t5, 4($v0) -/* 0A63F4 7F0718C4 8C990034 */ lw $t9, 0x34($a0) -/* 0A63F8 7F0718C8 3C0EFC26 */ lui $t6, (0xFC26A004 >> 16) # lui $t6, 0xfc26 -/* 0A63FC 7F0718CC 35CEA004 */ ori $t6, (0xFC26A004 & 0xFFFF) # ori $t6, $t6, 0xa004 -/* 0A6400 7F0718D0 332F00FF */ andi $t7, $t9, 0xff -/* 0A6404 7F0718D4 29E100FF */ slti $at, $t7, 0xff -/* 0A6408 7F0718D8 10200020 */ beqz $at, .L7F07195C -/* 0A640C 7F0718DC 31EC00FF */ andi $t4, $t7, 0xff -/* 0A6410 7F0718E0 8C82000C */ lw $v0, 0xc($a0) -/* 0A6414 7F0718E4 2401FF00 */ li $at, -256 -/* 0A6418 7F0718E8 01816825 */ or $t5, $t4, $at -/* 0A641C 7F0718EC 24580008 */ addiu $t8, $v0, 8 -/* 0A6420 7F0718F0 AC98000C */ sw $t8, 0xc($a0) -/* 0A6424 7F0718F4 3C0EFB00 */ lui $t6, 0xfb00 -/* 0A6428 7F0718F8 AC4E0000 */ sw $t6, ($v0) -/* 0A642C 7F0718FC AC4D0004 */ sw $t5, 4($v0) -/* 0A6430 7F071900 8C990034 */ lw $t9, 0x34($a0) -/* 0A6434 7F071904 3C0EFC26 */ lui $t6, (0xFC26EA04 >> 16) # lui $t6, 0xfc26 -/* 0A6438 7F071908 35CEEA04 */ ori $t6, (0xFC26EA04 & 0xFFFF) # ori $t6, $t6, 0xea04 -/* 0A643C 7F07190C 332FFF00 */ andi $t7, $t9, 0xff00 -/* 0A6440 7F071910 11E00009 */ beqz $t7, .L7F071938 -/* 0A6444 7F071914 3C19FC26 */ lui $t9, (0xFC26EA04 >> 16) # lui $t9, 0xfc26 -/* 0A6448 7F071918 8C82000C */ lw $v0, 0xc($a0) -/* 0A644C 7F07191C 3C0C1F10 */ lui $t4, (0x1F10CFFF >> 16) # lui $t4, 0x1f10 -/* 0A6450 7F071920 358CCFFF */ ori $t4, (0x1F10CFFF & 0xFFFF) # ori $t4, $t4, 0xcfff -/* 0A6454 7F071924 24580008 */ addiu $t8, $v0, 8 -/* 0A6458 7F071928 AC98000C */ sw $t8, 0xc($a0) -/* 0A645C 7F07192C AC4C0004 */ sw $t4, 4($v0) -/* 0A6460 7F071930 10000011 */ b .L7F071978 -/* 0A6464 7F071934 AC4E0000 */ sw $t6, ($v0) -.L7F071938: -/* 0A6468 7F071938 8C82000C */ lw $v0, 0xc($a0) -/* 0A646C 7F07193C 3C0F1F10 */ lui $t7, (0x1F10FFFF >> 16) # lui $t7, 0x1f10 -/* 0A6470 7F071940 35EFFFFF */ ori $t7, (0x1F10FFFF & 0xFFFF) # ori $t7, $t7, 0xffff -/* 0A6474 7F071944 244D0008 */ addiu $t5, $v0, 8 -/* 0A6478 7F071948 AC8D000C */ sw $t5, 0xc($a0) -/* 0A647C 7F07194C 3739EA04 */ ori $t9, (0xFC26EA04 & 0xFFFF) # ori $t9, $t9, 0xea04 -/* 0A6480 7F071950 AC590000 */ sw $t9, ($v0) -/* 0A6484 7F071954 10000008 */ b .L7F071978 -/* 0A6488 7F071958 AC4F0004 */ sw $t7, 4($v0) -.L7F07195C: -/* 0A648C 7F07195C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6490 7F071960 3C0C1F10 */ lui $t4, (0x1F1093FF >> 16) # lui $t4, 0x1f10 -/* 0A6494 7F071964 358C93FF */ ori $t4, (0x1F1093FF & 0xFFFF) # ori $t4, $t4, 0x93ff -/* 0A6498 7F071968 24580008 */ addiu $t8, $v0, 8 -/* 0A649C 7F07196C AC98000C */ sw $t8, 0xc($a0) -/* 0A64A0 7F071970 AC4C0004 */ sw $t4, 4($v0) -/* 0A64A4 7F071974 AC4E0000 */ sw $t6, ($v0) -.L7F071978: -/* 0A64A8 7F071978 8C8D0004 */ lw $t5, 4($a0) -/* 0A64AC 7F07197C 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 -/* 0A64B0 7F071980 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A64B4 7F071984 11A0000A */ beqz $t5, .L7F0719B0 -/* 0A64B8 7F071988 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 0A64BC 7F07198C 8C82000C */ lw $v0, 0xc($a0) -/* 0A64C0 7F071990 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 -/* 0A64C4 7F071994 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 -/* 0A64C8 7F071998 24590008 */ addiu $t9, $v0, 8 -/* 0A64CC 7F07199C AC99000C */ sw $t9, 0xc($a0) -/* 0A64D0 7F0719A0 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A64D4 7F0719A4 AC4F0000 */ sw $t7, ($v0) -/* 0A64D8 7F0719A8 03E00008 */ jr $ra -/* 0A64DC 7F0719AC AC580004 */ sw $t8, 4($v0) - -.L7F0719B0: -/* 0A64E0 7F0719B0 8C82000C */ lw $v0, 0xc($a0) -/* 0A64E4 7F0719B4 3C0DC410 */ lui $t5, (0xC41041C8 >> 16) # lui $t5, 0xc410 -/* 0A64E8 7F0719B8 35AD41C8 */ ori $t5, (0xC41041C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 -/* 0A64EC 7F0719BC 244E0008 */ addiu $t6, $v0, 8 -/* 0A64F0 7F0719C0 AC8E000C */ sw $t6, 0xc($a0) -/* 0A64F4 7F0719C4 AC4D0004 */ sw $t5, 4($v0) -/* 0A64F8 7F0719C8 03E00008 */ jr $ra -/* 0A64FC 7F0719CC AC4C0000 */ sw $t4, ($v0) - -/* 0A6500 7F0719D0 8C990034 */ lw $t9, 0x34($a0) -.L7F0719D4: -/* 0A6504 7F0719D4 3C0EFC26 */ lui $t6, (0xFC269A04 >> 16) # lui $t6, 0xfc26 -/* 0A6508 7F0719D8 35CE9A04 */ ori $t6, (0xFC269A04 & 0xFFFF) # ori $t6, $t6, 0x9a04 -/* 0A650C 7F0719DC 332F00FF */ andi $t7, $t9, 0xff -/* 0A6510 7F0719E0 29E100FF */ slti $at, $t7, 0xff -/* 0A6514 7F0719E4 10200009 */ beqz $at, .L7F071A0C -/* 0A6518 7F0719E8 3C19FC26 */ lui $t9, 0xfc26 -/* 0A651C 7F0719EC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6520 7F0719F0 3C0C1F10 */ lui $t4, (0x1F10FFFF >> 16) # lui $t4, 0x1f10 -/* 0A6524 7F0719F4 358CFFFF */ ori $t4, (0x1F10FFFF & 0xFFFF) # ori $t4, $t4, 0xffff -/* 0A6528 7F0719F8 24580008 */ addiu $t8, $v0, 8 -/* 0A652C 7F0719FC AC98000C */ sw $t8, 0xc($a0) -/* 0A6530 7F071A00 AC4C0004 */ sw $t4, 4($v0) -/* 0A6534 7F071A04 03E00008 */ jr $ra -/* 0A6538 7F071A08 AC4E0000 */ sw $t6, ($v0) - -.L7F071A0C: -/* 0A653C 7F071A0C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6540 7F071A10 3C0F1F10 */ lui $t7, (0x1F1093FF >> 16) # lui $t7, 0x1f10 -/* 0A6544 7F071A14 35EF93FF */ ori $t7, (0x1F1093FF & 0xFFFF) # ori $t7, $t7, 0x93ff -/* 0A6548 7F071A18 244D0008 */ addiu $t5, $v0, 8 -/* 0A654C 7F071A1C AC8D000C */ sw $t5, 0xc($a0) -/* 0A6550 7F071A20 3739A004 */ ori $t9, $t9, 0xa004 -/* 0A6554 7F071A24 AC590000 */ sw $t9, ($v0) -/* 0A6558 7F071A28 03E00008 */ jr $ra -/* 0A655C 7F071A2C AC4F0004 */ sw $t7, 4($v0) - -.L7F071A30: -/* 0A6560 7F071A30 10A0002D */ beqz $a1, .L7F071AE8 -/* 0A6564 7F071A34 3C0EE700 */ lui $t6, 0xe700 -/* 0A6568 7F071A38 8C82000C */ lw $v0, 0xc($a0) -/* 0A656C 7F071A3C 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 -/* 0A6570 7F071A40 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 -/* 0A6574 7F071A44 24580008 */ addiu $t8, $v0, 8 -/* 0A6578 7F071A48 AC98000C */ sw $t8, 0xc($a0) -/* 0A657C 7F071A4C AC400004 */ sw $zero, 4($v0) -/* 0A6580 7F071A50 AC4E0000 */ sw $t6, ($v0) -/* 0A6584 7F071A54 8C82000C */ lw $v0, 0xc($a0) -/* 0A6588 7F071A58 3C190010 */ lui $t9, 0x10 -/* 0A658C 7F071A5C 3C0E1F10 */ lui $t6, (0x1F1093FF >> 16) # lui $t6, 0x1f10 -/* 0A6590 7F071A60 244C0008 */ addiu $t4, $v0, 8 -/* 0A6594 7F071A64 AC8C000C */ sw $t4, 0xc($a0) -/* 0A6598 7F071A68 AC590004 */ sw $t9, 4($v0) -/* 0A659C 7F071A6C AC4D0000 */ sw $t5, ($v0) -/* 0A65A0 7F071A70 8C82000C */ lw $v0, 0xc($a0) -/* 0A65A4 7F071A74 3C18FC26 */ lui $t8, (0xFC26A004 >> 16) # lui $t8, 0xfc26 -/* 0A65A8 7F071A78 3718A004 */ ori $t8, (0xFC26A004 & 0xFFFF) # ori $t8, $t8, 0xa004 -/* 0A65AC 7F071A7C 244F0008 */ addiu $t7, $v0, 8 -/* 0A65B0 7F071A80 AC8F000C */ sw $t7, 0xc($a0) -/* 0A65B4 7F071A84 35CE93FF */ ori $t6, (0x1F1093FF & 0xFFFF) # ori $t6, $t6, 0x93ff -/* 0A65B8 7F071A88 AC4E0004 */ sw $t6, 4($v0) -/* 0A65BC 7F071A8C AC580000 */ sw $t8, ($v0) -/* 0A65C0 7F071A90 8C8C0004 */ lw $t4, 4($a0) -/* 0A65C4 7F071A94 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A65C8 7F071A98 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A65CC 7F071A9C 1180000A */ beqz $t4, .L7F071AC8 -/* 0A65D0 7F071AA0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A65D4 7F071AA4 8C82000C */ lw $v0, 0xc($a0) -/* 0A65D8 7F071AA8 3C0F0C19 */ lui $t7, (0x0C192078 >> 16) # lui $t7, 0xc19 -/* 0A65DC 7F071AAC 35EF2078 */ ori $t7, (0x0C192078 & 0xFFFF) # ori $t7, $t7, 0x2078 -/* 0A65E0 7F071AB0 244D0008 */ addiu $t5, $v0, 8 -/* 0A65E4 7F071AB4 AC8D000C */ sw $t5, 0xc($a0) -/* 0A65E8 7F071AB8 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A65EC 7F071ABC AC590000 */ sw $t9, ($v0) -/* 0A65F0 7F071AC0 03E00008 */ jr $ra -/* 0A65F4 7F071AC4 AC4F0004 */ sw $t7, 4($v0) - -.L7F071AC8: -/* 0A65F8 7F071AC8 8C82000C */ lw $v0, 0xc($a0) -/* 0A65FC 7F071ACC 3C0C0C19 */ lui $t4, (0x0C192048 >> 16) # lui $t4, 0xc19 -/* 0A6600 7F071AD0 358C2048 */ ori $t4, (0x0C192048 & 0xFFFF) # ori $t4, $t4, 0x2048 -/* 0A6604 7F071AD4 24580008 */ addiu $t8, $v0, 8 -/* 0A6608 7F071AD8 AC98000C */ sw $t8, 0xc($a0) -/* 0A660C 7F071ADC AC4C0004 */ sw $t4, 4($v0) -/* 0A6610 7F071AE0 03E00008 */ jr $ra -/* 0A6614 7F071AE4 AC4E0000 */ sw $t6, ($v0) - -.L7F071AE8: -/* 0A6618 7F071AE8 8C8D0004 */ lw $t5, 4($a0) -/* 0A661C 7F071AEC 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 -/* 0A6620 7F071AF0 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A6624 7F071AF4 11A0000A */ beqz $t5, .L7F071B20 -/* 0A6628 7F071AF8 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 0A662C 7F071AFC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6630 7F071B00 3C180C18 */ lui $t8, (0x0C1849D8 >> 16) # lui $t8, 0xc18 -/* 0A6634 7F071B04 371849D8 */ ori $t8, (0x0C1849D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 -/* 0A6638 7F071B08 24590008 */ addiu $t9, $v0, 8 -/* 0A663C 7F071B0C AC99000C */ sw $t9, 0xc($a0) -/* 0A6640 7F071B10 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A6644 7F071B14 AC4F0000 */ sw $t7, ($v0) -/* 0A6648 7F071B18 03E00008 */ jr $ra -/* 0A664C 7F071B1C AC580004 */ sw $t8, 4($v0) - -.L7F071B20: -/* 0A6650 7F071B20 8C82000C */ lw $v0, 0xc($a0) -/* 0A6654 7F071B24 3C0D0C18 */ lui $t5, (0x0C1841C8 >> 16) # lui $t5, 0xc18 -/* 0A6658 7F071B28 35AD41C8 */ ori $t5, (0x0C1841C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 -/* 0A665C 7F071B2C 244E0008 */ addiu $t6, $v0, 8 -/* 0A6660 7F071B30 AC8E000C */ sw $t6, 0xc($a0) -/* 0A6664 7F071B34 AC4D0004 */ sw $t5, 4($v0) -/* 0A6668 7F071B38 AC4C0000 */ sw $t4, ($v0) -.L7F071B3C: -/* 0A666C 7F071B3C 03E00008 */ jr $ra -/* 0A6670 7F071B40 00000000 */ nop -) -#endif +void sub_GAME_7F071B44(ModelRenderData *renderdata, bool arg1) +{ + if (renderdata->unk30 == 7) + { + u8 r, g, b, a; + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + r = _SHIFTR(renderdata->fogcolour, 24, 8); + g = _SHIFTR(renderdata->fogcolour, 16, 8); + b = _SHIFTR(renderdata->fogcolour, 8, 8); + a = _SHIFTR(renderdata->fogcolour, 0, 8); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + r = _SHIFTR(renderdata->envcolour, 24, 8); + g = _SHIFTR(renderdata->envcolour, 16, 8); + b = _SHIFTR(renderdata->envcolour, 8, 8); + a = 0xFF; + gDPSetEnvColor(renderdata->gdl++, r, g, b, a); -#ifdef NONMATCHING -void sub_GAME_7F071B44(void) { + gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, ENVIRONMENT, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + if (arg1) + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else if (renderdata->unk30 == 8) + { + u8 r, g, b, a; + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + + r = _SHIFTR(renderdata->fogcolour, 24, 8); + g = _SHIFTR(renderdata->fogcolour, 16, 8); + b = _SHIFTR(renderdata->fogcolour, 8, 8); + a = _SHIFTR(renderdata->fogcolour, 0, 8); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + r = _SHIFTR(renderdata->envcolour, 24, 8); + g = _SHIFTR(renderdata->envcolour, 16, 8); + b = _SHIFTR(renderdata->envcolour, 8, 8); + a = _SHIFTR(renderdata->envcolour, 0, 8); + gDPSetEnvColor(renderdata->gdl++, r, g, b, a); + + gDPSetCombineLERP(renderdata->gdl++, TEXEL0, ENVIRONMENT, SHADE_ALPHA, ENVIRONMENT, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + else if (renderdata->unk30 == 9) + { + if ((renderdata->envcolour & 0xFF) == 0) + { + u8 r = _SHIFTR(renderdata->fogcolour, 24, 8); + u8 g = _SHIFTR(renderdata->fogcolour, 16, 8); + u8 b = _SHIFTR(renderdata->fogcolour, 8, 8); + u8 a = _SHIFTR(renderdata->fogcolour, 0, 8); + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + gDPSetEnvColor(renderdata->gdl++, 0xFF, 0xFF, 0xFF, 0xFF); + gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xFF); + + if (arg1) + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, PRIMITIVE); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else + { + u8 r = _SHIFTR(renderdata->fogcolour, 24, 8); + u8 g = _SHIFTR(renderdata->fogcolour, 16, 8); + u8 b = _SHIFTR(renderdata->fogcolour, 8, 8); + u8 a = _SHIFTR(renderdata->fogcolour, 0, 8); + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + gDPSetEnvColor(renderdata->gdl++, 0, 0, 0, renderdata->envcolour & 0xFF); + + if (arg1) + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, SHADE, ENVIRONMENT, COMBINED, 0, SHADE, 0, 0, 0, 0, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_TEX_EDGE2); + } + } + else + { + gDPSetPrimColor(renderdata->gdl++, 0, 0, 0, 0, 0, (renderdata->envcolour >> 8) & 0xFF); + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, SHADE, ENVIRONMENT, TEXEL0, 0, COMBINED, 0, SHADE, 0, 1, 0, PRIMITIVE, COMBINED); + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_TEX_EDGE2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_TEX_EDGE2); + } + } + } + } + else if (renderdata->unk30 == 4) + { + u8 r = _SHIFTR(renderdata->envcolour, 24, 8); + u8 g = _SHIFTR(renderdata->envcolour, 16, 8); + u8 b = _SHIFTR(renderdata->envcolour, 8, 8); + u8 a = _SHIFTR(renderdata->envcolour, 0, 8); + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + + if (arg1) + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } + else if (renderdata->unk30 == 5) + { + u8 r, g, b, a; + + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + + r = _SHIFTR(renderdata->fogcolour, 24, 8); + g = _SHIFTR(renderdata->fogcolour, 16, 8); + b = _SHIFTR(renderdata->fogcolour, 8, 8); + a = _SHIFTR(renderdata->fogcolour, 0, 8); + gDPSetFogColor(renderdata->gdl++, r, g, b, a); + + a = renderdata->envcolour & 0xFF; + + if (a < 255) + { + gDPSetEnvColor(renderdata->gdl++, 0xFF, 0xFF, 0xFF, a); + + if (arg1) + { + if (renderdata->envcolour & 0xFF00) + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, SHADE, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + } + else + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + } + } + else + { + gDPSetCombineLERP(renderdata->gdl++, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0); + } + } + else + { + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + } + + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + else + { + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + gDPSetFogColor(renderdata->gdl++, 0xFF, 0xFF, 0xFF, 0x00); + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + + if (arg1) + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_OPA_SURF2); + } + } + else + { + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_ZB_XLU_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_FOG_PRIM_A, G_RM_AA_XLU_SURF2); + } + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F071B44 -/* 0A6674 7F071B44 8C820030 */ lw $v0, 0x30($a0) -/* 0A6678 7F071B48 24010007 */ li $at, 7 -/* 0A667C 7F071B4C 5441006B */ bnel $v0, $at, .L7F071CFC -/* 0A6680 7F071B50 24010008 */ li $at, 8 -/* 0A6684 7F071B54 8C82000C */ lw $v0, 0xc($a0) -/* 0A6688 7F071B58 3C0FE700 */ lui $t7, 0xe700 -/* 0A668C 7F071B5C 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 -/* 0A6690 7F071B60 244E0008 */ addiu $t6, $v0, 8 -/* 0A6694 7F071B64 AC8E000C */ sw $t6, 0xc($a0) -/* 0A6698 7F071B68 AC400004 */ sw $zero, 4($v0) -/* 0A669C 7F071B6C AC4F0000 */ sw $t7, ($v0) -/* 0A66A0 7F071B70 8C82000C */ lw $v0, 0xc($a0) -/* 0A66A4 7F071B74 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 -/* 0A66A8 7F071B78 3C0D0010 */ lui $t5, 0x10 -/* 0A66AC 7F071B7C 24580008 */ addiu $t8, $v0, 8 -/* 0A66B0 7F071B80 AC98000C */ sw $t8, 0xc($a0) -/* 0A66B4 7F071B84 AC4D0004 */ sw $t5, 4($v0) -/* 0A66B8 7F071B88 AC590000 */ sw $t9, ($v0) -/* 0A66BC 7F071B8C 8C82000C */ lw $v0, 0xc($a0) -/* 0A66C0 7F071B90 8C8B0038 */ lw $t3, 0x38($a0) -/* 0A66C4 7F071B94 3C19F800 */ lui $t9, 0xf800 -/* 0A66C8 7F071B98 24580008 */ addiu $t8, $v0, 8 -/* 0A66CC 7F071B9C AC98000C */ sw $t8, 0xc($a0) -/* 0A66D0 7F071BA0 000B4C02 */ srl $t1, $t3, 0x10 -/* 0A66D4 7F071BA4 312F00FF */ andi $t7, $t1, 0xff -/* 0A66D8 7F071BA8 000B4602 */ srl $t0, $t3, 0x18 -/* 0A66DC 7F071BAC 00087600 */ sll $t6, $t0, 0x18 -/* 0A66E0 7F071BB0 000FC400 */ sll $t8, $t7, 0x10 -/* 0A66E4 7F071BB4 AC590000 */ sw $t9, ($v0) -/* 0A66E8 7F071BB8 000B5202 */ srl $t2, $t3, 8 -/* 0A66EC 7F071BBC 314D00FF */ andi $t5, $t2, 0xff -/* 0A66F0 7F071BC0 01D8C825 */ or $t9, $t6, $t8 -/* 0A66F4 7F071BC4 000D7A00 */ sll $t7, $t5, 8 -/* 0A66F8 7F071BC8 032F7025 */ or $t6, $t9, $t7 -/* 0A66FC 7F071BCC 317800FF */ andi $t8, $t3, 0xff -/* 0A6700 7F071BD0 01D86825 */ or $t5, $t6, $t8 -/* 0A6704 7F071BD4 AC4D0004 */ sw $t5, 4($v0) -/* 0A6708 7F071BD8 8C830034 */ lw $v1, 0x34($a0) -/* 0A670C 7F071BDC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6710 7F071BE0 3C0EFB00 */ lui $t6, 0xfb00 -/* 0A6714 7F071BE4 00034C02 */ srl $t1, $v1, 0x10 -/* 0A6718 7F071BE8 244F0008 */ addiu $t7, $v0, 8 -/* 0A671C 7F071BEC AC8F000C */ sw $t7, 0xc($a0) -/* 0A6720 7F071BF0 313900FF */ andi $t9, $t1, 0xff -/* 0A6724 7F071BF4 0003C602 */ srl $t8, $v1, 0x18 -/* 0A6728 7F071BF8 00186E00 */ sll $t5, $t8, 0x18 -/* 0A672C 7F071BFC 00197C00 */ sll $t7, $t9, 0x10 -/* 0A6730 7F071C00 00035202 */ srl $t2, $v1, 8 -/* 0A6734 7F071C04 315800FF */ andi $t8, $t2, 0xff -/* 0A6738 7F071C08 AC4E0000 */ sw $t6, ($v0) -/* 0A673C 7F071C0C 01AF7025 */ or $t6, $t5, $t7 -/* 0A6740 7F071C10 0018CA00 */ sll $t9, $t8, 8 -/* 0A6744 7F071C14 01D96825 */ or $t5, $t6, $t9 -/* 0A6748 7F071C18 35AF00FF */ ori $t7, $t5, 0xff -/* 0A674C 7F071C1C AC4F0004 */ sw $t7, 4($v0) -/* 0A6750 7F071C20 8C82000C */ lw $v0, 0xc($a0) -/* 0A6754 7F071C24 3C195FFE */ lui $t9, (0x5FFEDBF8 >> 16) # lui $t9, 0x5ffe -/* 0A6758 7F071C28 3C0EFC15 */ lui $t6, (0xFC159804 >> 16) # lui $t6, 0xfc15 -/* 0A675C 7F071C2C 24580008 */ addiu $t8, $v0, 8 -/* 0A6760 7F071C30 AC98000C */ sw $t8, 0xc($a0) -/* 0A6764 7F071C34 35CE9804 */ ori $t6, (0xFC159804 & 0xFFFF) # ori $t6, $t6, 0x9804 -/* 0A6768 7F071C38 3739DBF8 */ ori $t9, (0x5FFEDBF8 & 0xFFFF) # ori $t9, $t9, 0xdbf8 -/* 0A676C 7F071C3C AC590004 */ sw $t9, 4($v0) -/* 0A6770 7F071C40 10A00017 */ beqz $a1, .L7F071CA0 -/* 0A6774 7F071C44 AC4E0000 */ sw $t6, ($v0) -/* 0A6778 7F071C48 8C8D0004 */ lw $t5, 4($a0) -/* 0A677C 7F071C4C 3C0FC411 */ lui $t7, (0xC4112048 >> 16) # lui $t7, 0xc411 -/* 0A6780 7F071C50 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A6784 7F071C54 11A0000A */ beqz $t5, .L7F071C80 -/* 0A6788 7F071C58 35EF2048 */ ori $t7, (0xC4112048 & 0xFFFF) # ori $t7, $t7, 0x2048 -/* 0A678C 7F071C5C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6790 7F071C60 3C0EC411 */ lui $t6, (0xC4112078 >> 16) # lui $t6, 0xc411 -/* 0A6794 7F071C64 35CE2078 */ ori $t6, (0xC4112078 & 0xFFFF) # ori $t6, $t6, 0x2078 -/* 0A6798 7F071C68 244F0008 */ addiu $t7, $v0, 8 -/* 0A679C 7F071C6C AC8F000C */ sw $t7, 0xc($a0) -/* 0A67A0 7F071C70 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A67A4 7F071C74 AC580000 */ sw $t8, ($v0) -/* 0A67A8 7F071C78 03E00008 */ jr $ra -/* 0A67AC 7F071C7C AC4E0004 */ sw $t6, 4($v0) - -.L7F071C80: -/* 0A67B0 7F071C80 8C82000C */ lw $v0, 0xc($a0) -/* 0A67B4 7F071C84 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A67B8 7F071C88 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A67BC 7F071C8C 24590008 */ addiu $t9, $v0, 8 -/* 0A67C0 7F071C90 AC99000C */ sw $t9, 0xc($a0) -/* 0A67C4 7F071C94 AC4F0004 */ sw $t7, 4($v0) -/* 0A67C8 7F071C98 03E00008 */ jr $ra -/* 0A67CC 7F071C9C AC4D0000 */ sw $t5, ($v0) - -.L7F071CA0: -/* 0A67D0 7F071CA0 8C980004 */ lw $t8, 4($a0) -/* 0A67D4 7F071CA4 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 -/* 0A67D8 7F071CA8 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A67DC 7F071CAC 1300000A */ beqz $t8, .L7F071CD8 -/* 0A67E0 7F071CB0 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 -/* 0A67E4 7F071CB4 8C82000C */ lw $v0, 0xc($a0) -/* 0A67E8 7F071CB8 3C0DC410 */ lui $t5, (0xC41049D8 >> 16) # lui $t5, 0xc410 -/* 0A67EC 7F071CBC 35AD49D8 */ ori $t5, (0xC41049D8 & 0xFFFF) # ori $t5, $t5, 0x49d8 -/* 0A67F0 7F071CC0 244E0008 */ addiu $t6, $v0, 8 -/* 0A67F4 7F071CC4 AC8E000C */ sw $t6, 0xc($a0) -/* 0A67F8 7F071CC8 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A67FC 7F071CCC AC590000 */ sw $t9, ($v0) -/* 0A6800 7F071CD0 03E00008 */ jr $ra -/* 0A6804 7F071CD4 AC4D0004 */ sw $t5, 4($v0) - -.L7F071CD8: -/* 0A6808 7F071CD8 8C82000C */ lw $v0, 0xc($a0) -/* 0A680C 7F071CDC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A6810 7F071CE0 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A6814 7F071CE4 244F0008 */ addiu $t7, $v0, 8 -/* 0A6818 7F071CE8 AC8F000C */ sw $t7, 0xc($a0) -/* 0A681C 7F071CEC AC4E0004 */ sw $t6, 4($v0) -/* 0A6820 7F071CF0 03E00008 */ jr $ra -/* 0A6824 7F071CF4 AC580000 */ sw $t8, ($v0) - -/* 0A6828 7F071CF8 24010008 */ li $at, 8 -.L7F071CFC: -/* 0A682C 7F071CFC 54410055 */ bnel $v0, $at, .L7F071E54 -/* 0A6830 7F071D00 24010009 */ li $at, 9 -/* 0A6834 7F071D04 8C82000C */ lw $v0, 0xc($a0) -/* 0A6838 7F071D08 3C0DE700 */ lui $t5, 0xe700 -/* 0A683C 7F071D0C 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 -/* 0A6840 7F071D10 24590008 */ addiu $t9, $v0, 8 -/* 0A6844 7F071D14 AC99000C */ sw $t9, 0xc($a0) -/* 0A6848 7F071D18 AC400004 */ sw $zero, 4($v0) -/* 0A684C 7F071D1C AC4D0000 */ sw $t5, ($v0) -/* 0A6850 7F071D20 8C82000C */ lw $v0, 0xc($a0) -/* 0A6854 7F071D24 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 -/* 0A6858 7F071D28 3C0E0010 */ lui $t6, 0x10 -/* 0A685C 7F071D2C 244F0008 */ addiu $t7, $v0, 8 -/* 0A6860 7F071D30 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6864 7F071D34 AC4E0004 */ sw $t6, 4($v0) -/* 0A6868 7F071D38 AC580000 */ sw $t8, ($v0) -/* 0A686C 7F071D3C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6870 7F071D40 8C8A0038 */ lw $t2, 0x38($a0) -/* 0A6874 7F071D44 3C18F800 */ lui $t8, 0xf800 -/* 0A6878 7F071D48 244F0008 */ addiu $t7, $v0, 8 -/* 0A687C 7F071D4C AC8F000C */ sw $t7, 0xc($a0) -/* 0A6880 7F071D50 000A4402 */ srl $t0, $t2, 0x10 -/* 0A6884 7F071D54 310D00FF */ andi $t5, $t0, 0xff -/* 0A6888 7F071D58 000A3E02 */ srl $a3, $t2, 0x18 -/* 0A688C 7F071D5C 0007CE00 */ sll $t9, $a3, 0x18 -/* 0A6890 7F071D60 000D7C00 */ sll $t7, $t5, 0x10 -/* 0A6894 7F071D64 AC580000 */ sw $t8, ($v0) -/* 0A6898 7F071D68 000A4A02 */ srl $t1, $t2, 8 -/* 0A689C 7F071D6C 312E00FF */ andi $t6, $t1, 0xff -/* 0A68A0 7F071D70 032FC025 */ or $t8, $t9, $t7 -/* 0A68A4 7F071D74 000E6A00 */ sll $t5, $t6, 8 -/* 0A68A8 7F071D78 030DC825 */ or $t9, $t8, $t5 -/* 0A68AC 7F071D7C 314F00FF */ andi $t7, $t2, 0xff -/* 0A68B0 7F071D80 032F7025 */ or $t6, $t9, $t7 -/* 0A68B4 7F071D84 AC4E0004 */ sw $t6, 4($v0) -/* 0A68B8 7F071D88 8C82000C */ lw $v0, 0xc($a0) -/* 0A68BC 7F071D8C 8C8A0034 */ lw $t2, 0x34($a0) -/* 0A68C0 7F071D90 3C0FFB00 */ lui $t7, 0xfb00 -/* 0A68C4 7F071D94 24590008 */ addiu $t9, $v0, 8 -/* 0A68C8 7F071D98 AC99000C */ sw $t9, 0xc($a0) -/* 0A68CC 7F071D9C 000A4402 */ srl $t0, $t2, 0x10 -/* 0A68D0 7F071DA0 310D00FF */ andi $t5, $t0, 0xff -/* 0A68D4 7F071DA4 000A3E02 */ srl $a3, $t2, 0x18 -/* 0A68D8 7F071DA8 0007C600 */ sll $t8, $a3, 0x18 -/* 0A68DC 7F071DAC 000DCC00 */ sll $t9, $t5, 0x10 -/* 0A68E0 7F071DB0 AC4F0000 */ sw $t7, ($v0) -/* 0A68E4 7F071DB4 000A4A02 */ srl $t1, $t2, 8 -/* 0A68E8 7F071DB8 312E00FF */ andi $t6, $t1, 0xff -/* 0A68EC 7F071DBC 03197825 */ or $t7, $t8, $t9 -/* 0A68F0 7F071DC0 000E6A00 */ sll $t5, $t6, 8 -/* 0A68F4 7F071DC4 01EDC025 */ or $t8, $t7, $t5 -/* 0A68F8 7F071DC8 315900FF */ andi $t9, $t2, 0xff -/* 0A68FC 7F071DCC 03197025 */ or $t6, $t8, $t9 -/* 0A6900 7F071DD0 AC4E0004 */ sw $t6, 4($v0) -/* 0A6904 7F071DD4 8C82000C */ lw $v0, 0xc($a0) -/* 0A6908 7F071DD8 3C185FFE */ lui $t8, (0x5FFEFFF8 >> 16) # lui $t8, 0x5ffe -/* 0A690C 7F071DDC 3C0DFC15 */ lui $t5, (0xFC159A04 >> 16) # lui $t5, 0xfc15 -/* 0A6910 7F071DE0 244F0008 */ addiu $t7, $v0, 8 -/* 0A6914 7F071DE4 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6918 7F071DE8 35AD9A04 */ ori $t5, (0xFC159A04 & 0xFFFF) # ori $t5, $t5, 0x9a04 -/* 0A691C 7F071DEC 3718FFF8 */ ori $t8, (0x5FFEFFF8 & 0xFFFF) # ori $t8, $t8, 0xfff8 -/* 0A6920 7F071DF0 AC580004 */ sw $t8, 4($v0) -/* 0A6924 7F071DF4 AC4D0000 */ sw $t5, ($v0) -/* 0A6928 7F071DF8 8C990004 */ lw $t9, 4($a0) -/* 0A692C 7F071DFC 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 -/* 0A6930 7F071E00 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A6934 7F071E04 1320000A */ beqz $t9, .L7F071E30 -/* 0A6938 7F071E08 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 -/* 0A693C 7F071E0C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6940 7F071E10 3C0DC410 */ lui $t5, (0xC41049D8 >> 16) # lui $t5, 0xc410 -/* 0A6944 7F071E14 35AD49D8 */ ori $t5, (0xC41049D8 & 0xFFFF) # ori $t5, $t5, 0x49d8 -/* 0A6948 7F071E18 244E0008 */ addiu $t6, $v0, 8 -/* 0A694C 7F071E1C AC8E000C */ sw $t6, 0xc($a0) -/* 0A6950 7F071E20 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A6954 7F071E24 AC4F0000 */ sw $t7, ($v0) -/* 0A6958 7F071E28 03E00008 */ jr $ra -/* 0A695C 7F071E2C AC4D0004 */ sw $t5, 4($v0) - -.L7F071E30: -/* 0A6960 7F071E30 8C82000C */ lw $v0, 0xc($a0) -/* 0A6964 7F071E34 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A6968 7F071E38 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A696C 7F071E3C 24580008 */ addiu $t8, $v0, 8 -/* 0A6970 7F071E40 AC98000C */ sw $t8, 0xc($a0) -/* 0A6974 7F071E44 AC4E0004 */ sw $t6, 4($v0) -/* 0A6978 7F071E48 03E00008 */ jr $ra -/* 0A697C 7F071E4C AC590000 */ sw $t9, ($v0) - -/* 0A6980 7F071E50 24010009 */ li $at, 9 -.L7F071E54: -/* 0A6984 7F071E54 544100E6 */ bnel $v0, $at, .L7F0721F0 -/* 0A6988 7F071E58 24010004 */ li $at, 4 -/* 0A698C 7F071E5C 8C8F0034 */ lw $t7, 0x34($a0) -/* 0A6990 7F071E60 3C190010 */ lui $t9, 0x10 -/* 0A6994 7F071E64 3C18E700 */ lui $t8, 0xe700 -/* 0A6998 7F071E68 31ED00FF */ andi $t5, $t7, 0xff -/* 0A699C 7F071E6C 15A00070 */ bnez $t5, .L7F072030 -/* 0A69A0 7F071E70 3C0F0010 */ lui $t7, 0x10 -/* 0A69A4 7F071E74 8C82000C */ lw $v0, 0xc($a0) -/* 0A69A8 7F071E78 8C890038 */ lw $t1, 0x38($a0) -/* 0A69AC 7F071E7C 3C0FE700 */ lui $t7, 0xe700 -/* 0A69B0 7F071E80 244E0008 */ addiu $t6, $v0, 8 -/* 0A69B4 7F071E84 AC8E000C */ sw $t6, 0xc($a0) -/* 0A69B8 7F071E88 AC400004 */ sw $zero, 4($v0) -/* 0A69BC 7F071E8C AC4F0000 */ sw $t7, ($v0) -/* 0A69C0 7F071E90 8C82000C */ lw $v0, 0xc($a0) -/* 0A69C4 7F071E94 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 -/* 0A69C8 7F071E98 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 -/* 0A69CC 7F071E9C 244D0008 */ addiu $t5, $v0, 8 -/* 0A69D0 7F071EA0 AC8D000C */ sw $t5, 0xc($a0) -/* 0A69D4 7F071EA4 AC590004 */ sw $t9, 4($v0) -/* 0A69D8 7F071EA8 AC580000 */ sw $t8, ($v0) -/* 0A69DC 7F071EAC 8C82000C */ lw $v0, 0xc($a0) -/* 0A69E0 7F071EB0 00093C02 */ srl $a3, $t1, 0x10 -/* 0A69E4 7F071EB4 30F900FF */ andi $t9, $a3, 0xff -/* 0A69E8 7F071EB8 244E0008 */ addiu $t6, $v0, 8 -/* 0A69EC 7F071EBC AC8E000C */ sw $t6, 0xc($a0) -/* 0A69F0 7F071EC0 3C0FF800 */ lui $t7, 0xf800 -/* 0A69F4 7F071EC4 00093602 */ srl $a2, $t1, 0x18 -/* 0A69F8 7F071EC8 0006C600 */ sll $t8, $a2, 0x18 -/* 0A69FC 7F071ECC 00197400 */ sll $t6, $t9, 0x10 -/* 0A6A00 7F071ED0 00094202 */ srl $t0, $t1, 8 -/* 0A6A04 7F071ED4 AC4F0000 */ sw $t7, ($v0) -/* 0A6A08 7F071ED8 030E7825 */ or $t7, $t8, $t6 -/* 0A6A0C 7F071EDC 310D00FF */ andi $t5, $t0, 0xff -/* 0A6A10 7F071EE0 000DCA00 */ sll $t9, $t5, 8 -/* 0A6A14 7F071EE4 01F9C025 */ or $t8, $t7, $t9 -/* 0A6A18 7F071EE8 312E00FF */ andi $t6, $t1, 0xff -/* 0A6A1C 7F071EEC 030E6825 */ or $t5, $t8, $t6 -/* 0A6A20 7F071EF0 AC4D0004 */ sw $t5, 4($v0) -/* 0A6A24 7F071EF4 8C82000C */ lw $v0, 0xc($a0) -/* 0A6A28 7F071EF8 2418FFFF */ li $t8, -1 -/* 0A6A2C 7F071EFC 3C19FB00 */ lui $t9, 0xfb00 -/* 0A6A30 7F071F00 244F0008 */ addiu $t7, $v0, 8 -/* 0A6A34 7F071F04 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6A38 7F071F08 AC580004 */ sw $t8, 4($v0) -/* 0A6A3C 7F071F0C AC590000 */ sw $t9, ($v0) -/* 0A6A40 7F071F10 8C82000C */ lw $v0, 0xc($a0) -/* 0A6A44 7F071F14 3C0DFA00 */ lui $t5, 0xfa00 -/* 0A6A48 7F071F18 3C191F10 */ lui $t9, (0x1F1093FB >> 16) # lui $t9, 0x1f10 -/* 0A6A4C 7F071F1C 244E0008 */ addiu $t6, $v0, 8 -/* 0A6A50 7F071F20 AC8E000C */ sw $t6, 0xc($a0) -/* 0A6A54 7F071F24 AC4D0000 */ sw $t5, ($v0) -/* 0A6A58 7F071F28 8C8F0034 */ lw $t7, 0x34($a0) -/* 0A6A5C 7F071F2C 373993FB */ ori $t9, (0x1F1093FB & 0xFFFF) # ori $t9, $t9, 0x93fb -/* 0A6A60 7F071F30 000FC202 */ srl $t8, $t7, 8 -/* 0A6A64 7F071F34 330E00FF */ andi $t6, $t8, 0xff -/* 0A6A68 7F071F38 10A00020 */ beqz $a1, .L7F071FBC -/* 0A6A6C 7F071F3C AC4E0004 */ sw $t6, 4($v0) -/* 0A6A70 7F071F40 8C82000C */ lw $v0, 0xc($a0) -/* 0A6A74 7F071F44 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 -/* 0A6A78 7F071F48 3C191F10 */ lui $t9, (0x1F1093FB >> 16) # lui $t9, 0x1f10 -/* 0A6A7C 7F071F4C 244D0008 */ addiu $t5, $v0, 8 -/* 0A6A80 7F071F50 AC8D000C */ sw $t5, 0xc($a0) -/* 0A6A84 7F071F54 373993FB */ ori $t9, (0x1F1093FB & 0xFFFF) # ori $t9, $t9, 0x93fb -/* 0A6A88 7F071F58 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 -/* 0A6A8C 7F071F5C AC4F0000 */ sw $t7, ($v0) -/* 0A6A90 7F071F60 AC590004 */ sw $t9, 4($v0) -/* 0A6A94 7F071F64 8C980004 */ lw $t8, 4($a0) -/* 0A6A98 7F071F68 3C0EC411 */ lui $t6, (0xC4112048 >> 16) # lui $t6, 0xc411 -/* 0A6A9C 7F071F6C 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A6AA0 7F071F70 1300000A */ beqz $t8, .L7F071F9C -/* 0A6AA4 7F071F74 35CE2048 */ ori $t6, (0xC4112048 & 0xFFFF) # ori $t6, $t6, 0x2048 -/* 0A6AA8 7F071F78 8C82000C */ lw $v0, 0xc($a0) -/* 0A6AAC 7F071F7C 3C0FC411 */ lui $t7, (0xC4112078 >> 16) # lui $t7, 0xc411 -/* 0A6AB0 7F071F80 35EF2078 */ ori $t7, (0xC4112078 & 0xFFFF) # ori $t7, $t7, 0x2078 -/* 0A6AB4 7F071F84 244E0008 */ addiu $t6, $v0, 8 -/* 0A6AB8 7F071F88 AC8E000C */ sw $t6, 0xc($a0) -/* 0A6ABC 7F071F8C 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A6AC0 7F071F90 AC4D0000 */ sw $t5, ($v0) -/* 0A6AC4 7F071F94 03E00008 */ jr $ra -/* 0A6AC8 7F071F98 AC4F0004 */ sw $t7, 4($v0) - -.L7F071F9C: -/* 0A6ACC 7F071F9C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6AD0 7F071FA0 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A6AD4 7F071FA4 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A6AD8 7F071FA8 24590008 */ addiu $t9, $v0, 8 -/* 0A6ADC 7F071FAC AC99000C */ sw $t9, 0xc($a0) -/* 0A6AE0 7F071FB0 AC4E0004 */ sw $t6, 4($v0) -/* 0A6AE4 7F071FB4 03E00008 */ jr $ra -/* 0A6AE8 7F071FB8 AC580000 */ sw $t8, ($v0) - -.L7F071FBC: -/* 0A6AEC 7F071FBC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6AF0 7F071FC0 3C0FFC26 */ lui $t7, (0xFC26A004 >> 16) # lui $t7, 0xfc26 -/* 0A6AF4 7F071FC4 35EFA004 */ ori $t7, (0xFC26A004 & 0xFFFF) # ori $t7, $t7, 0xa004 -/* 0A6AF8 7F071FC8 244D0008 */ addiu $t5, $v0, 8 -/* 0A6AFC 7F071FCC AC8D000C */ sw $t5, 0xc($a0) -/* 0A6B00 7F071FD0 AC590004 */ sw $t9, 4($v0) -/* 0A6B04 7F071FD4 AC4F0000 */ sw $t7, ($v0) -/* 0A6B08 7F071FD8 8C980004 */ lw $t8, 4($a0) -/* 0A6B0C 7F071FDC 3C0EC410 */ lui $t6, (0xC41041C8 >> 16) # lui $t6, 0xc410 -/* 0A6B10 7F071FE0 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 -/* 0A6B14 7F071FE4 1300000A */ beqz $t8, .L7F072010 -/* 0A6B18 7F071FE8 35CE41C8 */ ori $t6, (0xC41041C8 & 0xFFFF) # ori $t6, $t6, 0x41c8 -/* 0A6B1C 7F071FEC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6B20 7F071FF0 3C0FC410 */ lui $t7, (0xC41049D8 >> 16) # lui $t7, 0xc410 -/* 0A6B24 7F071FF4 35EF49D8 */ ori $t7, (0xC41049D8 & 0xFFFF) # ori $t7, $t7, 0x49d8 -/* 0A6B28 7F071FF8 244E0008 */ addiu $t6, $v0, 8 -/* 0A6B2C 7F071FFC AC8E000C */ sw $t6, 0xc($a0) -/* 0A6B30 7F072000 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d -/* 0A6B34 7F072004 AC4D0000 */ sw $t5, ($v0) -/* 0A6B38 7F072008 03E00008 */ jr $ra -/* 0A6B3C 7F07200C AC4F0004 */ sw $t7, 4($v0) - -.L7F072010: -/* 0A6B40 7F072010 8C82000C */ lw $v0, 0xc($a0) -/* 0A6B44 7F072014 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A6B48 7F072018 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A6B4C 7F07201C 24590008 */ addiu $t9, $v0, 8 -/* 0A6B50 7F072020 AC99000C */ sw $t9, 0xc($a0) -/* 0A6B54 7F072024 AC4E0004 */ sw $t6, 4($v0) -/* 0A6B58 7F072028 03E00008 */ jr $ra -/* 0A6B5C 7F07202C AC580000 */ sw $t8, ($v0) - -.L7F072030: -/* 0A6B60 7F072030 8C82000C */ lw $v0, 0xc($a0) -/* 0A6B64 7F072034 8C890038 */ lw $t1, 0x38($a0) -/* 0A6B68 7F072038 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 -/* 0A6B6C 7F07203C 24590008 */ addiu $t9, $v0, 8 -/* 0A6B70 7F072040 AC99000C */ sw $t9, 0xc($a0) -/* 0A6B74 7F072044 AC400004 */ sw $zero, 4($v0) -/* 0A6B78 7F072048 AC580000 */ sw $t8, ($v0) -/* 0A6B7C 7F07204C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6B80 7F072050 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 -/* 0A6B84 7F072054 00093C02 */ srl $a3, $t1, 0x10 -/* 0A6B88 7F072058 244E0008 */ addiu $t6, $v0, 8 -/* 0A6B8C 7F07205C AC8E000C */ sw $t6, 0xc($a0) -/* 0A6B90 7F072060 AC4F0004 */ sw $t7, 4($v0) -/* 0A6B94 7F072064 AC4D0000 */ sw $t5, ($v0) -/* 0A6B98 7F072068 8C82000C */ lw $v0, 0xc($a0) -/* 0A6B9C 7F07206C 30EF00FF */ andi $t7, $a3, 0xff -/* 0A6BA0 7F072070 3C18F800 */ lui $t8, 0xf800 -/* 0A6BA4 7F072074 24590008 */ addiu $t9, $v0, 8 -/* 0A6BA8 7F072078 AC99000C */ sw $t9, 0xc($a0) -/* 0A6BAC 7F07207C 00093602 */ srl $a2, $t1, 0x18 -/* 0A6BB0 7F072080 00066E00 */ sll $t5, $a2, 0x18 -/* 0A6BB4 7F072084 000FCC00 */ sll $t9, $t7, 0x10 -/* 0A6BB8 7F072088 00094202 */ srl $t0, $t1, 8 -/* 0A6BBC 7F07208C AC580000 */ sw $t8, ($v0) -/* 0A6BC0 7F072090 01B9C025 */ or $t8, $t5, $t9 -/* 0A6BC4 7F072094 310E00FF */ andi $t6, $t0, 0xff -/* 0A6BC8 7F072098 000E7A00 */ sll $t7, $t6, 8 -/* 0A6BCC 7F07209C 030F6825 */ or $t5, $t8, $t7 -/* 0A6BD0 7F0720A0 313900FF */ andi $t9, $t1, 0xff -/* 0A6BD4 7F0720A4 01B97025 */ or $t6, $t5, $t9 -/* 0A6BD8 7F0720A8 AC4E0004 */ sw $t6, 4($v0) -/* 0A6BDC 7F0720AC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6BE0 7F0720B0 3C0FFB00 */ lui $t7, 0xfb00 -/* 0A6BE4 7F0720B4 24580008 */ addiu $t8, $v0, 8 -/* 0A6BE8 7F0720B8 AC98000C */ sw $t8, 0xc($a0) -/* 0A6BEC 7F0720BC AC4F0000 */ sw $t7, ($v0) -/* 0A6BF0 7F0720C0 8C990034 */ lw $t9, 0x34($a0) -/* 0A6BF4 7F0720C4 3C0FFC26 */ lui $t7, (0xFC26E804 >> 16) # lui $t7, 0xfc26 -/* 0A6BF8 7F0720C8 35EFE804 */ ori $t7, (0xFC26E804 & 0xFFFF) # ori $t7, $t7, 0xe804 -/* 0A6BFC 7F0720CC 332E00FF */ andi $t6, $t9, 0xff -/* 0A6C00 7F0720D0 10A0001E */ beqz $a1, .L7F07214C -/* 0A6C04 7F0720D4 AC4E0004 */ sw $t6, 4($v0) -/* 0A6C08 7F0720D8 8C82000C */ lw $v0, 0xc($a0) -/* 0A6C0C 7F0720DC 3C0D1FFC */ lui $t5, (0x1FFCFBF8 >> 16) # lui $t5, 0x1ffc -/* 0A6C10 7F0720E0 35ADFBF8 */ ori $t5, (0x1FFCFBF8 & 0xFFFF) # ori $t5, $t5, 0xfbf8 -/* 0A6C14 7F0720E4 24580008 */ addiu $t8, $v0, 8 -/* 0A6C18 7F0720E8 AC98000C */ sw $t8, 0xc($a0) -/* 0A6C1C 7F0720EC AC4D0004 */ sw $t5, 4($v0) -/* 0A6C20 7F0720F0 AC4F0000 */ sw $t7, ($v0) -/* 0A6C24 7F0720F4 8C990004 */ lw $t9, 4($a0) -/* 0A6C28 7F0720F8 3C0EC411 */ lui $t6, (0xC4113048 >> 16) # lui $t6, 0xc411 -/* 0A6C2C 7F0720FC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A6C30 7F072100 1320000A */ beqz $t9, .L7F07212C -/* 0A6C34 7F072104 35CE3048 */ ori $t6, (0xC4113048 & 0xFFFF) # ori $t6, $t6, 0x3048 -/* 0A6C38 7F072108 8C82000C */ lw $v0, 0xc($a0) -/* 0A6C3C 7F07210C 3C0FC411 */ lui $t7, (0xC4113078 >> 16) # lui $t7, 0xc411 -/* 0A6C40 7F072110 35EF3078 */ ori $t7, (0xC4113078 & 0xFFFF) # ori $t7, $t7, 0x3078 -/* 0A6C44 7F072114 244E0008 */ addiu $t6, $v0, 8 -/* 0A6C48 7F072118 AC8E000C */ sw $t6, 0xc($a0) -/* 0A6C4C 7F07211C 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A6C50 7F072120 AC580000 */ sw $t8, ($v0) -/* 0A6C54 7F072124 03E00008 */ jr $ra -/* 0A6C58 7F072128 AC4F0004 */ sw $t7, 4($v0) - -.L7F07212C: -/* 0A6C5C 7F07212C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6C60 7F072130 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A6C64 7F072134 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A6C68 7F072138 244D0008 */ addiu $t5, $v0, 8 -/* 0A6C6C 7F07213C AC8D000C */ sw $t5, 0xc($a0) -/* 0A6C70 7F072140 AC4E0004 */ sw $t6, 4($v0) -/* 0A6C74 7F072144 03E00008 */ jr $ra -/* 0A6C78 7F072148 AC590000 */ sw $t9, ($v0) - -.L7F07214C: -/* 0A6C7C 7F07214C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6C80 7F072150 3C0FFA00 */ lui $t7, 0xfa00 -/* 0A6C84 7F072154 3C191FCC */ lui $t9, (0x1FCCDFF8 >> 16) # lui $t9, 0x1fcc -/* 0A6C88 7F072158 24580008 */ addiu $t8, $v0, 8 -/* 0A6C8C 7F07215C AC98000C */ sw $t8, 0xc($a0) -/* 0A6C90 7F072160 AC4F0000 */ sw $t7, ($v0) -/* 0A6C94 7F072164 8C8D0034 */ lw $t5, 0x34($a0) -/* 0A6C98 7F072168 3739DFF8 */ ori $t9, (0x1FCCDFF8 & 0xFFFF) # ori $t9, $t9, 0xdff8 -/* 0A6C9C 7F07216C 000D7202 */ srl $t6, $t5, 8 -/* 0A6CA0 7F072170 31D800FF */ andi $t8, $t6, 0xff -/* 0A6CA4 7F072174 AC580004 */ sw $t8, 4($v0) -/* 0A6CA8 7F072178 8C82000C */ lw $v0, 0xc($a0) -/* 0A6CAC 7F07217C 3C0DFC26 */ lui $t5, (0xFC26C204 >> 16) # lui $t5, 0xfc26 -/* 0A6CB0 7F072180 35ADC204 */ ori $t5, (0xFC26C204 & 0xFFFF) # ori $t5, $t5, 0xc204 -/* 0A6CB4 7F072184 244F0008 */ addiu $t7, $v0, 8 -/* 0A6CB8 7F072188 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6CBC 7F07218C AC590004 */ sw $t9, 4($v0) -/* 0A6CC0 7F072190 AC4D0000 */ sw $t5, ($v0) -/* 0A6CC4 7F072194 8C8E0004 */ lw $t6, 4($a0) -/* 0A6CC8 7F072198 3C18C411 */ lui $t8, (0xC4113048 >> 16) # lui $t8, 0xc411 -/* 0A6CCC 7F07219C 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A6CD0 7F0721A0 11C0000A */ beqz $t6, .L7F0721CC -/* 0A6CD4 7F0721A4 37183048 */ ori $t8, (0xC4113048 & 0xFFFF) # ori $t8, $t8, 0x3048 -/* 0A6CD8 7F0721A8 8C82000C */ lw $v0, 0xc($a0) -/* 0A6CDC 7F0721AC 3C0DC411 */ lui $t5, (0xC4113078 >> 16) # lui $t5, 0xc411 -/* 0A6CE0 7F0721B0 35AD3078 */ ori $t5, (0xC4113078 & 0xFFFF) # ori $t5, $t5, 0x3078 -/* 0A6CE4 7F0721B4 24580008 */ addiu $t8, $v0, 8 -/* 0A6CE8 7F0721B8 AC98000C */ sw $t8, 0xc($a0) -/* 0A6CEC 7F0721BC 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A6CF0 7F0721C0 AC4F0000 */ sw $t7, ($v0) -/* 0A6CF4 7F0721C4 03E00008 */ jr $ra -/* 0A6CF8 7F0721C8 AC4D0004 */ sw $t5, 4($v0) - -.L7F0721CC: -/* 0A6CFC 7F0721CC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6D00 7F0721D0 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A6D04 7F0721D4 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A6D08 7F0721D8 24590008 */ addiu $t9, $v0, 8 -/* 0A6D0C 7F0721DC AC99000C */ sw $t9, 0xc($a0) -/* 0A6D10 7F0721E0 AC580004 */ sw $t8, 4($v0) -/* 0A6D14 7F0721E4 03E00008 */ jr $ra -/* 0A6D18 7F0721E8 AC4E0000 */ sw $t6, ($v0) - -/* 0A6D1C 7F0721EC 24010004 */ li $at, 4 -.L7F0721F0: -/* 0A6D20 7F0721F0 14410057 */ bne $v0, $at, .L7F072350 -/* 0A6D24 7F0721F4 3C0EE700 */ lui $t6, 0xe700 -/* 0A6D28 7F0721F8 8C82000C */ lw $v0, 0xc($a0) -/* 0A6D2C 7F0721FC 8C890034 */ lw $t1, 0x34($a0) -/* 0A6D30 7F072200 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 -/* 0A6D34 7F072204 24590008 */ addiu $t9, $v0, 8 -/* 0A6D38 7F072208 AC99000C */ sw $t9, 0xc($a0) -/* 0A6D3C 7F07220C AC400004 */ sw $zero, 4($v0) -/* 0A6D40 7F072210 AC4E0000 */ sw $t6, ($v0) -/* 0A6D44 7F072214 8C82000C */ lw $v0, 0xc($a0) -/* 0A6D48 7F072218 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 -/* 0A6D4C 7F07221C 3C0D0010 */ lui $t5, 0x10 -/* 0A6D50 7F072220 24580008 */ addiu $t8, $v0, 8 -/* 0A6D54 7F072224 AC98000C */ sw $t8, 0xc($a0) -/* 0A6D58 7F072228 AC4D0004 */ sw $t5, 4($v0) -/* 0A6D5C 7F07222C AC4F0000 */ sw $t7, ($v0) -/* 0A6D60 7F072230 8C82000C */ lw $v0, 0xc($a0) -/* 0A6D64 7F072234 00093C02 */ srl $a3, $t1, 0x10 -/* 0A6D68 7F072238 30ED00FF */ andi $t5, $a3, 0xff -/* 0A6D6C 7F07223C 24590008 */ addiu $t9, $v0, 8 -/* 0A6D70 7F072240 AC99000C */ sw $t9, 0xc($a0) -/* 0A6D74 7F072244 3C0EF800 */ lui $t6, 0xf800 -/* 0A6D78 7F072248 00093602 */ srl $a2, $t1, 0x18 -/* 0A6D7C 7F07224C 00067E00 */ sll $t7, $a2, 0x18 -/* 0A6D80 7F072250 000DCC00 */ sll $t9, $t5, 0x10 -/* 0A6D84 7F072254 00094202 */ srl $t0, $t1, 8 -/* 0A6D88 7F072258 AC4E0000 */ sw $t6, ($v0) -/* 0A6D8C 7F07225C 01F97025 */ or $t6, $t7, $t9 -/* 0A6D90 7F072260 311800FF */ andi $t8, $t0, 0xff -/* 0A6D94 7F072264 00186A00 */ sll $t5, $t8, 8 -/* 0A6D98 7F072268 01CD7825 */ or $t7, $t6, $t5 -/* 0A6D9C 7F07226C 313900FF */ andi $t9, $t1, 0xff -/* 0A6DA0 7F072270 01F9C025 */ or $t8, $t7, $t9 -/* 0A6DA4 7F072274 AC580004 */ sw $t8, 4($v0) -/* 0A6DA8 7F072278 8C82000C */ lw $v0, 0xc($a0) -/* 0A6DAC 7F07227C 3C0F1F10 */ lui $t7, (0x1F1093FF >> 16) # lui $t7, 0x1f10 -/* 0A6DB0 7F072280 3C0DFC26 */ lui $t5, (0xFC26A004 >> 16) # lui $t5, 0xfc26 -/* 0A6DB4 7F072284 244E0008 */ addiu $t6, $v0, 8 -/* 0A6DB8 7F072288 AC8E000C */ sw $t6, 0xc($a0) -/* 0A6DBC 7F07228C 35ADA004 */ ori $t5, (0xFC26A004 & 0xFFFF) # ori $t5, $t5, 0xa004 -/* 0A6DC0 7F072290 35EF93FF */ ori $t7, (0x1F1093FF & 0xFFFF) # ori $t7, $t7, 0x93ff -/* 0A6DC4 7F072294 AC4F0004 */ sw $t7, 4($v0) -/* 0A6DC8 7F072298 10A00017 */ beqz $a1, .L7F0722F8 -/* 0A6DCC 7F07229C AC4D0000 */ sw $t5, ($v0) -/* 0A6DD0 7F0722A0 8C990004 */ lw $t9, 4($a0) -/* 0A6DD4 7F0722A4 3C18C411 */ lui $t8, (0xC4112048 >> 16) # lui $t8, 0xc411 -/* 0A6DD8 7F0722A8 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A6DDC 7F0722AC 1320000A */ beqz $t9, .L7F0722D8 -/* 0A6DE0 7F0722B0 37182048 */ ori $t8, (0xC4112048 & 0xFFFF) # ori $t8, $t8, 0x2048 -/* 0A6DE4 7F0722B4 8C82000C */ lw $v0, 0xc($a0) -/* 0A6DE8 7F0722B8 3C0DC411 */ lui $t5, (0xC4112078 >> 16) # lui $t5, 0xc411 -/* 0A6DEC 7F0722BC 35AD2078 */ ori $t5, (0xC4112078 & 0xFFFF) # ori $t5, $t5, 0x2078 -/* 0A6DF0 7F0722C0 24580008 */ addiu $t8, $v0, 8 -/* 0A6DF4 7F0722C4 AC98000C */ sw $t8, 0xc($a0) -/* 0A6DF8 7F0722C8 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A6DFC 7F0722CC AC4E0000 */ sw $t6, ($v0) -/* 0A6E00 7F0722D0 03E00008 */ jr $ra -/* 0A6E04 7F0722D4 AC4D0004 */ sw $t5, 4($v0) - -.L7F0722D8: -/* 0A6E08 7F0722D8 8C82000C */ lw $v0, 0xc($a0) -/* 0A6E0C 7F0722DC 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0A6E10 7F0722E0 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0A6E14 7F0722E4 244F0008 */ addiu $t7, $v0, 8 -/* 0A6E18 7F0722E8 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6E1C 7F0722EC AC580004 */ sw $t8, 4($v0) -/* 0A6E20 7F0722F0 03E00008 */ jr $ra -/* 0A6E24 7F0722F4 AC590000 */ sw $t9, ($v0) - -.L7F0722F8: -/* 0A6E28 7F0722F8 8C8E0004 */ lw $t6, 4($a0) -/* 0A6E2C 7F0722FC 3C0DC410 */ lui $t5, (0xC41041C8 >> 16) # lui $t5, 0xc410 -/* 0A6E30 7F072300 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A6E34 7F072304 11C0000A */ beqz $t6, .L7F072330 -/* 0A6E38 7F072308 35AD41C8 */ ori $t5, (0xC41041C8 & 0xFFFF) # ori $t5, $t5, 0x41c8 -/* 0A6E3C 7F07230C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6E40 7F072310 3C19C410 */ lui $t9, (0xC41049D8 >> 16) # lui $t9, 0xc410 -/* 0A6E44 7F072314 373949D8 */ ori $t9, (0xC41049D8 & 0xFFFF) # ori $t9, $t9, 0x49d8 -/* 0A6E48 7F072318 244D0008 */ addiu $t5, $v0, 8 -/* 0A6E4C 7F07231C AC8D000C */ sw $t5, 0xc($a0) -/* 0A6E50 7F072320 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A6E54 7F072324 AC4F0000 */ sw $t7, ($v0) -/* 0A6E58 7F072328 03E00008 */ jr $ra -/* 0A6E5C 7F07232C AC590004 */ sw $t9, 4($v0) - -.L7F072330: -/* 0A6E60 7F072330 8C82000C */ lw $v0, 0xc($a0) -/* 0A6E64 7F072334 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A6E68 7F072338 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A6E6C 7F07233C 24580008 */ addiu $t8, $v0, 8 -/* 0A6E70 7F072340 AC98000C */ sw $t8, 0xc($a0) -/* 0A6E74 7F072344 AC4D0004 */ sw $t5, 4($v0) -/* 0A6E78 7F072348 03E00008 */ jr $ra -/* 0A6E7C 7F07234C AC4E0000 */ sw $t6, ($v0) - -.L7F072350: -/* 0A6E80 7F072350 24010005 */ li $at, 5 -/* 0A6E84 7F072354 14410070 */ bne $v0, $at, .L7F072518 -/* 0A6E88 7F072358 3C18E700 */ lui $t8, 0xe700 -/* 0A6E8C 7F07235C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6E90 7F072360 3C19E700 */ lui $t9, 0xe700 -/* 0A6E94 7F072364 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 -/* 0A6E98 7F072368 244F0008 */ addiu $t7, $v0, 8 -/* 0A6E9C 7F07236C AC8F000C */ sw $t7, 0xc($a0) -/* 0A6EA0 7F072370 AC400004 */ sw $zero, 4($v0) -/* 0A6EA4 7F072374 AC590000 */ sw $t9, ($v0) -/* 0A6EA8 7F072378 8C82000C */ lw $v0, 0xc($a0) -/* 0A6EAC 7F07237C 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 -/* 0A6EB0 7F072380 3C0D0010 */ lui $t5, 0x10 -/* 0A6EB4 7F072384 24580008 */ addiu $t8, $v0, 8 -/* 0A6EB8 7F072388 AC98000C */ sw $t8, 0xc($a0) -/* 0A6EBC 7F07238C AC4D0004 */ sw $t5, 4($v0) -/* 0A6EC0 7F072390 AC4E0000 */ sw $t6, ($v0) -/* 0A6EC4 7F072394 8C82000C */ lw $v0, 0xc($a0) -/* 0A6EC8 7F072398 8C8B0038 */ lw $t3, 0x38($a0) -/* 0A6ECC 7F07239C 3C0EF800 */ lui $t6, 0xf800 -/* 0A6ED0 7F0723A0 24580008 */ addiu $t8, $v0, 8 -/* 0A6ED4 7F0723A4 AC98000C */ sw $t8, 0xc($a0) -/* 0A6ED8 7F0723A8 000B4C02 */ srl $t1, $t3, 0x10 -/* 0A6EDC 7F0723AC 313900FF */ andi $t9, $t1, 0xff -/* 0A6EE0 7F0723B0 000B4602 */ srl $t0, $t3, 0x18 -/* 0A6EE4 7F0723B4 00087E00 */ sll $t7, $t0, 0x18 -/* 0A6EE8 7F0723B8 0019C400 */ sll $t8, $t9, 0x10 -/* 0A6EEC 7F0723BC AC4E0000 */ sw $t6, ($v0) -/* 0A6EF0 7F0723C0 000B5202 */ srl $t2, $t3, 8 -/* 0A6EF4 7F0723C4 314D00FF */ andi $t5, $t2, 0xff -/* 0A6EF8 7F0723C8 01F87025 */ or $t6, $t7, $t8 -/* 0A6EFC 7F0723CC 000DCA00 */ sll $t9, $t5, 8 -/* 0A6F00 7F0723D0 01D97825 */ or $t7, $t6, $t9 -/* 0A6F04 7F0723D4 317800FF */ andi $t8, $t3, 0xff -/* 0A6F08 7F0723D8 01F86825 */ or $t5, $t7, $t8 -/* 0A6F0C 7F0723DC AC4D0004 */ sw $t5, 4($v0) -/* 0A6F10 7F0723E0 8C8E0034 */ lw $t6, 0x34($a0) -/* 0A6F14 7F0723E4 3C18FC26 */ lui $t8, (0xFC26A004 >> 16) # lui $t8, 0xfc26 -/* 0A6F18 7F0723E8 3718A004 */ ori $t8, (0xFC26A004 & 0xFFFF) # ori $t8, $t8, 0xa004 -/* 0A6F1C 7F0723EC 31D900FF */ andi $t9, $t6, 0xff -/* 0A6F20 7F0723F0 2B2100FF */ slti $at, $t9, 0xff -/* 0A6F24 7F0723F4 1020002B */ beqz $at, .L7F0724A4 -/* 0A6F28 7F0723F8 332D00FF */ andi $t5, $t9, 0xff -/* 0A6F2C 7F0723FC 8C82000C */ lw $v0, 0xc($a0) -/* 0A6F30 7F072400 2401FF00 */ li $at, -256 -/* 0A6F34 7F072404 01A17025 */ or $t6, $t5, $at -/* 0A6F38 7F072408 244F0008 */ addiu $t7, $v0, 8 -/* 0A6F3C 7F07240C AC8F000C */ sw $t7, 0xc($a0) -/* 0A6F40 7F072410 3C18FB00 */ lui $t8, 0xfb00 -/* 0A6F44 7F072414 AC580000 */ sw $t8, ($v0) -/* 0A6F48 7F072418 10A00018 */ beqz $a1, .L7F07247C -/* 0A6F4C 7F07241C AC4E0004 */ sw $t6, 4($v0) -/* 0A6F50 7F072420 8C990034 */ lw $t9, 0x34($a0) -/* 0A6F54 7F072424 3C181F10 */ lui $t8, (0x1F10FFFF >> 16) # lui $t8, 0x1f10 -/* 0A6F58 7F072428 3C0DFC26 */ lui $t5, (0xFC26EA04 >> 16) # lui $t5, 0xfc26 -/* 0A6F5C 7F07242C 332FFF00 */ andi $t7, $t9, 0xff00 -/* 0A6F60 7F072430 11E0000A */ beqz $t7, .L7F07245C -/* 0A6F64 7F072434 3718FFFF */ ori $t8, (0x1F10FFFF & 0xFFFF) # ori $t8, $t8, 0xffff -/* 0A6F68 7F072438 8C82000C */ lw $v0, 0xc($a0) -/* 0A6F6C 7F07243C 3C0E1F10 */ lui $t6, (0x1F10CFFF >> 16) # lui $t6, 0x1f10 -/* 0A6F70 7F072440 35CECFFF */ ori $t6, (0x1F10CFFF & 0xFFFF) # ori $t6, $t6, 0xcfff -/* 0A6F74 7F072444 24580008 */ addiu $t8, $v0, 8 -/* 0A6F78 7F072448 AC98000C */ sw $t8, 0xc($a0) -/* 0A6F7C 7F07244C 35ADEA04 */ ori $t5, (0xFC26EA04 & 0xFFFF) # ori $t5, $t5, 0xea04 -/* 0A6F80 7F072450 AC4D0000 */ sw $t5, ($v0) -/* 0A6F84 7F072454 1000001A */ b .L7F0724C0 -/* 0A6F88 7F072458 AC4E0004 */ sw $t6, 4($v0) -.L7F07245C: -/* 0A6F8C 7F07245C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6F90 7F072460 3C0FFC26 */ lui $t7, (0xFC26EA04 >> 16) # lui $t7, 0xfc26 -/* 0A6F94 7F072464 35EFEA04 */ ori $t7, (0xFC26EA04 & 0xFFFF) # ori $t7, $t7, 0xea04 -/* 0A6F98 7F072468 24590008 */ addiu $t9, $v0, 8 -/* 0A6F9C 7F07246C AC99000C */ sw $t9, 0xc($a0) -/* 0A6FA0 7F072470 AC580004 */ sw $t8, 4($v0) -/* 0A6FA4 7F072474 10000012 */ b .L7F0724C0 -/* 0A6FA8 7F072478 AC4F0000 */ sw $t7, ($v0) -.L7F07247C: -/* 0A6FAC 7F07247C 8C82000C */ lw $v0, 0xc($a0) -/* 0A6FB0 7F072480 3C0EFC26 */ lui $t6, (0xFC269A04 >> 16) # lui $t6, 0xfc26 -/* 0A6FB4 7F072484 3C191F10 */ lui $t9, (0x1F10FFFF >> 16) # lui $t9, 0x1f10 -/* 0A6FB8 7F072488 244D0008 */ addiu $t5, $v0, 8 -/* 0A6FBC 7F07248C AC8D000C */ sw $t5, 0xc($a0) -/* 0A6FC0 7F072490 3739FFFF */ ori $t9, (0x1F10FFFF & 0xFFFF) # ori $t9, $t9, 0xffff -/* 0A6FC4 7F072494 35CE9A04 */ ori $t6, (0xFC269A04 & 0xFFFF) # ori $t6, $t6, 0x9a04 -/* 0A6FC8 7F072498 AC4E0000 */ sw $t6, ($v0) -/* 0A6FCC 7F07249C 10000008 */ b .L7F0724C0 -/* 0A6FD0 7F0724A0 AC590004 */ sw $t9, 4($v0) -.L7F0724A4: -/* 0A6FD4 7F0724A4 8C82000C */ lw $v0, 0xc($a0) -/* 0A6FD8 7F0724A8 3C0D1F10 */ lui $t5, (0x1F1093FF >> 16) # lui $t5, 0x1f10 -/* 0A6FDC 7F0724AC 35AD93FF */ ori $t5, (0x1F1093FF & 0xFFFF) # ori $t5, $t5, 0x93ff -/* 0A6FE0 7F0724B0 244F0008 */ addiu $t7, $v0, 8 -/* 0A6FE4 7F0724B4 AC8F000C */ sw $t7, 0xc($a0) -/* 0A6FE8 7F0724B8 AC4D0004 */ sw $t5, 4($v0) -/* 0A6FEC 7F0724BC AC580000 */ sw $t8, ($v0) -.L7F0724C0: -/* 0A6FF0 7F0724C0 8C8E0004 */ lw $t6, 4($a0) -/* 0A6FF4 7F0724C4 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 -/* 0A6FF8 7F0724C8 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A6FFC 7F0724CC 11C0000A */ beqz $t6, .L7F0724F8 -/* 0A7000 7F0724D0 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 -/* 0A7004 7F0724D4 8C82000C */ lw $v0, 0xc($a0) -/* 0A7008 7F0724D8 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 -/* 0A700C 7F0724DC 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 -/* 0A7010 7F0724E0 24590008 */ addiu $t9, $v0, 8 -/* 0A7014 7F0724E4 AC99000C */ sw $t9, 0xc($a0) -/* 0A7018 7F0724E8 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A701C 7F0724EC AC4F0000 */ sw $t7, ($v0) -/* 0A7020 7F0724F0 03E00008 */ jr $ra -/* 0A7024 7F0724F4 AC580004 */ sw $t8, 4($v0) - -.L7F0724F8: -/* 0A7028 7F0724F8 8C82000C */ lw $v0, 0xc($a0) -/* 0A702C 7F0724FC 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A7030 7F072500 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A7034 7F072504 244D0008 */ addiu $t5, $v0, 8 -/* 0A7038 7F072508 AC8D000C */ sw $t5, 0xc($a0) -/* 0A703C 7F07250C AC590004 */ sw $t9, 4($v0) -/* 0A7040 7F072510 03E00008 */ jr $ra -/* 0A7044 7F072514 AC4E0000 */ sw $t6, ($v0) - -.L7F072518: -/* 0A7048 7F072518 8C82000C */ lw $v0, 0xc($a0) -/* 0A704C 7F07251C 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 -/* 0A7050 7F072520 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 -/* 0A7054 7F072524 244F0008 */ addiu $t7, $v0, 8 -/* 0A7058 7F072528 AC8F000C */ sw $t7, 0xc($a0) -/* 0A705C 7F07252C AC400004 */ sw $zero, 4($v0) -/* 0A7060 7F072530 AC580000 */ sw $t8, ($v0) -/* 0A7064 7F072534 8C82000C */ lw $v0, 0xc($a0) -/* 0A7068 7F072538 3C190010 */ lui $t9, 0x10 -/* 0A706C 7F07253C 3C18F800 */ lui $t8, 0xf800 -/* 0A7070 7F072540 244D0008 */ addiu $t5, $v0, 8 -/* 0A7074 7F072544 AC8D000C */ sw $t5, 0xc($a0) -/* 0A7078 7F072548 AC590004 */ sw $t9, 4($v0) -/* 0A707C 7F07254C AC4E0000 */ sw $t6, ($v0) -/* 0A7080 7F072550 8C82000C */ lw $v0, 0xc($a0) -/* 0A7084 7F072554 240DFF00 */ li $t5, -256 -/* 0A7088 7F072558 3C19FC26 */ lui $t9, (0xFC26A004 >> 16) # lui $t9, 0xfc26 -/* 0A708C 7F07255C 244F0008 */ addiu $t7, $v0, 8 -/* 0A7090 7F072560 AC8F000C */ sw $t7, 0xc($a0) -/* 0A7094 7F072564 AC4D0004 */ sw $t5, 4($v0) -/* 0A7098 7F072568 AC580000 */ sw $t8, ($v0) -/* 0A709C 7F07256C 8C82000C */ lw $v0, 0xc($a0) -/* 0A70A0 7F072570 3C0F1F10 */ lui $t7, (0x1F1093FF >> 16) # lui $t7, 0x1f10 -/* 0A70A4 7F072574 35EF93FF */ ori $t7, (0x1F1093FF & 0xFFFF) # ori $t7, $t7, 0x93ff -/* 0A70A8 7F072578 244E0008 */ addiu $t6, $v0, 8 -/* 0A70AC 7F07257C AC8E000C */ sw $t6, 0xc($a0) -/* 0A70B0 7F072580 3739A004 */ ori $t9, (0xFC26A004 & 0xFFFF) # ori $t9, $t9, 0xa004 -/* 0A70B4 7F072584 AC590000 */ sw $t9, ($v0) -/* 0A70B8 7F072588 10A00017 */ beqz $a1, .L7F0725E8 -/* 0A70BC 7F07258C AC4F0004 */ sw $t7, 4($v0) -/* 0A70C0 7F072590 8C980004 */ lw $t8, 4($a0) -/* 0A70C4 7F072594 3C0DC411 */ lui $t5, (0xC4112048 >> 16) # lui $t5, 0xc411 -/* 0A70C8 7F072598 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A70CC 7F07259C 1300000A */ beqz $t8, .L7F0725C8 -/* 0A70D0 7F0725A0 35AD2048 */ ori $t5, (0xC4112048 & 0xFFFF) # ori $t5, $t5, 0x2048 -/* 0A70D4 7F0725A4 8C82000C */ lw $v0, 0xc($a0) -/* 0A70D8 7F0725A8 3C19C411 */ lui $t9, (0xC4112078 >> 16) # lui $t9, 0xc411 -/* 0A70DC 7F0725AC 37392078 */ ori $t9, (0xC4112078 & 0xFFFF) # ori $t9, $t9, 0x2078 -/* 0A70E0 7F0725B0 244D0008 */ addiu $t5, $v0, 8 -/* 0A70E4 7F0725B4 AC8D000C */ sw $t5, 0xc($a0) -/* 0A70E8 7F0725B8 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A70EC 7F0725BC AC4E0000 */ sw $t6, ($v0) -/* 0A70F0 7F0725C0 03E00008 */ jr $ra -/* 0A70F4 7F0725C4 AC590004 */ sw $t9, 4($v0) - -.L7F0725C8: -/* 0A70F8 7F0725C8 8C82000C */ lw $v0, 0xc($a0) -/* 0A70FC 7F0725CC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 0A7100 7F0725D0 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 0A7104 7F0725D4 244F0008 */ addiu $t7, $v0, 8 -/* 0A7108 7F0725D8 AC8F000C */ sw $t7, 0xc($a0) -/* 0A710C 7F0725DC AC4D0004 */ sw $t5, 4($v0) -/* 0A7110 7F0725E0 03E00008 */ jr $ra -/* 0A7114 7F0725E4 AC580000 */ sw $t8, ($v0) - -.L7F0725E8: -/* 0A7118 7F0725E8 8C8E0004 */ lw $t6, 4($a0) -/* 0A711C 7F0725EC 3C19C410 */ lui $t9, (0xC41041C8 >> 16) # lui $t9, 0xc410 -/* 0A7120 7F0725F0 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0A7124 7F0725F4 11C0000A */ beqz $t6, .L7F072620 -/* 0A7128 7F0725F8 373941C8 */ ori $t9, (0xC41041C8 & 0xFFFF) # ori $t9, $t9, 0x41c8 -/* 0A712C 7F0725FC 8C82000C */ lw $v0, 0xc($a0) -/* 0A7130 7F072600 3C18C410 */ lui $t8, (0xC41049D8 >> 16) # lui $t8, 0xc410 -/* 0A7134 7F072604 371849D8 */ ori $t8, (0xC41049D8 & 0xFFFF) # ori $t8, $t8, 0x49d8 -/* 0A7138 7F072608 24590008 */ addiu $t9, $v0, 8 -/* 0A713C 7F07260C AC99000C */ sw $t9, 0xc($a0) -/* 0A7140 7F072610 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0A7144 7F072614 AC4F0000 */ sw $t7, ($v0) -/* 0A7148 7F072618 03E00008 */ jr $ra -/* 0A714C 7F07261C AC580004 */ sw $t8, 4($v0) - -.L7F072620: -/* 0A7150 7F072620 8C82000C */ lw $v0, 0xc($a0) -/* 0A7154 7F072624 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A7158 7F072628 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A715C 7F07262C 244D0008 */ addiu $t5, $v0, 8 -/* 0A7160 7F072630 AC8D000C */ sw $t5, 0xc($a0) -/* 0A7164 7F072634 AC590004 */ sw $t9, 4($v0) -/* 0A7168 7F072638 AC4E0000 */ sw $t6, ($v0) -/* 0A716C 7F07263C 03E00008 */ jr $ra -/* 0A7170 7F072640 00000000 */ nop -) -#endif +void sub_GAME_7F072644(ModelRenderData *renderdata) +{ + gDPPipeSync(renderdata->gdl++); + gDPSetCycleType(renderdata->gdl++, G_CYC_2CYCLE); + if (renderdata->zbufferenabled) + { + gDPSetRenderMode(renderdata->gdl++, G_RM_PASS, G_RM_AA_ZB_OPA_SURF2); + } + else + { + gDPSetRenderMode(renderdata->gdl++, G_RM_PASS, G_RM_AA_OPA_SURF2); + } - -#ifdef NONMATCHING -void sub_GAME_7F072644(void) { - + gDPSetCombineMode(renderdata->gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F072644 -/* 0A7174 7F072644 8C83000C */ lw $v1, 0xc($a0) -/* 0A7178 7F072648 3C0FE700 */ lui $t7, 0xe700 -/* 0A717C 7F07264C 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 -/* 0A7180 7F072650 246E0008 */ addiu $t6, $v1, 8 -/* 0A7184 7F072654 AC8E000C */ sw $t6, 0xc($a0) -/* 0A7188 7F072658 AC600004 */ sw $zero, 4($v1) -/* 0A718C 7F07265C AC6F0000 */ sw $t7, ($v1) -/* 0A7190 7F072660 8C83000C */ lw $v1, 0xc($a0) -/* 0A7194 7F072664 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 -/* 0A7198 7F072668 3C080010 */ lui $t0, 0x10 -/* 0A719C 7F07266C 24780008 */ addiu $t8, $v1, 8 -/* 0A71A0 7F072670 AC98000C */ sw $t8, 0xc($a0) -/* 0A71A4 7F072674 AC680004 */ sw $t0, 4($v1) -/* 0A71A8 7F072678 AC790000 */ sw $t9, ($v1) -/* 0A71AC 7F07267C 8C890004 */ lw $t1, 4($a0) -/* 0A71B0 7F072680 3C19FC26 */ lui $t9, (0xFC26A004 >> 16) # lui $t9, 0xfc26 -/* 0A71B4 7F072684 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0A71B8 7F072688 1120000B */ beqz $t1, .L7F0726B8 -/* 0A71BC 7F07268C 3739A004 */ ori $t9, (0xFC26A004 & 0xFFFF) # ori $t9, $t9, 0xa004 -/* 0A71C0 7F072690 8C83000C */ lw $v1, 0xc($a0) -/* 0A71C4 7F072694 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 -/* 0A71C8 7F072698 3C0C0C19 */ lui $t4, (0x0C192078 >> 16) # lui $t4, 0xc19 -/* 0A71CC 7F07269C 246A0008 */ addiu $t2, $v1, 8 -/* 0A71D0 7F0726A0 AC8A000C */ sw $t2, 0xc($a0) -/* 0A71D4 7F0726A4 358C2078 */ ori $t4, (0x0C192078 & 0xFFFF) # ori $t4, $t4, 0x2078 -/* 0A71D8 7F0726A8 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d -/* 0A71DC 7F0726AC AC6B0000 */ sw $t3, ($v1) -/* 0A71E0 7F0726B0 10000009 */ b .L7F0726D8 -/* 0A71E4 7F0726B4 AC6C0004 */ sw $t4, 4($v1) -.L7F0726B8: -/* 0A71E8 7F0726B8 8C83000C */ lw $v1, 0xc($a0) -/* 0A71EC 7F0726BC 3C0F0C19 */ lui $t7, (0x0C192048 >> 16) # lui $t7, 0xc19 -/* 0A71F0 7F0726C0 35EF2048 */ ori $t7, (0x0C192048 & 0xFFFF) # ori $t7, $t7, 0x2048 -/* 0A71F4 7F0726C4 246D0008 */ addiu $t5, $v1, 8 -/* 0A71F8 7F0726C8 AC8D000C */ sw $t5, 0xc($a0) -/* 0A71FC 7F0726CC 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0A7200 7F0726D0 AC6E0000 */ sw $t6, ($v1) -/* 0A7204 7F0726D4 AC6F0004 */ sw $t7, 4($v1) -.L7F0726D8: -/* 0A7208 7F0726D8 8C83000C */ lw $v1, 0xc($a0) -/* 0A720C 7F0726DC 3C081F10 */ lui $t0, (0x1F1093FF >> 16) # lui $t0, 0x1f10 -/* 0A7210 7F0726E0 350893FF */ ori $t0, (0x1F1093FF & 0xFFFF) # ori $t0, $t0, 0x93ff -/* 0A7214 7F0726E4 24780008 */ addiu $t8, $v1, 8 -/* 0A7218 7F0726E8 AC98000C */ sw $t8, 0xc($a0) -/* 0A721C 7F0726EC AC680004 */ sw $t0, 4($v1) -/* 0A7220 7F0726F0 03E00008 */ jr $ra -/* 0A7224 7F0726F4 AC790000 */ sw $t9, ($v1) -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F0726F8(void) { - +void modelApplyCullMode(ModelRenderData *renderdata) +{ + if (renderdata->cullmode == CULLMODE_NONE) + { + gSPClearGeometryMode(renderdata->gdl++, G_CULL_BOTH); + } + else if (renderdata->cullmode == CULLMODE_FRONT) + { + gSPSetGeometryMode(renderdata->gdl++, G_CULL_FRONT); + } + else if (renderdata->cullmode == CULLMODE_BACK) + { + gSPSetGeometryMode(renderdata->gdl++, G_CULL_BACK); + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0726F8 -/* 0A7228 7F0726F8 8C82003C */ lw $v0, 0x3c($a0) -/* 0A722C 7F0726FC 24010001 */ li $at, 1 -/* 0A7230 7F072700 5441000A */ bnel $v0, $at, .L7F07272C -/* 0A7234 7F072704 24010002 */ li $at, 2 -/* 0A7238 7F072708 8C83000C */ lw $v1, 0xc($a0) -/* 0A723C 7F07270C 3C0FB600 */ lui $t7, 0xb600 -/* 0A7240 7F072710 24183000 */ li $t8, 12288 -/* 0A7244 7F072714 246E0008 */ addiu $t6, $v1, 8 -/* 0A7248 7F072718 AC8E000C */ sw $t6, 0xc($a0) -/* 0A724C 7F07271C AC780004 */ sw $t8, 4($v1) -/* 0A7250 7F072720 03E00008 */ jr $ra -/* 0A7254 7F072724 AC6F0000 */ sw $t7, ($v1) - -/* 0A7258 7F072728 24010002 */ li $at, 2 -.L7F07272C: -/* 0A725C 7F07272C 5441000A */ bnel $v0, $at, .L7F072758 -/* 0A7260 7F072730 24010003 */ li $at, 3 -/* 0A7264 7F072734 8C83000C */ lw $v1, 0xc($a0) -/* 0A7268 7F072738 3C08B700 */ lui $t0, 0xb700 -/* 0A726C 7F07273C 24091000 */ li $t1, 4096 -/* 0A7270 7F072740 24790008 */ addiu $t9, $v1, 8 -/* 0A7274 7F072744 AC99000C */ sw $t9, 0xc($a0) -/* 0A7278 7F072748 AC690004 */ sw $t1, 4($v1) -/* 0A727C 7F07274C 03E00008 */ jr $ra -/* 0A7280 7F072750 AC680000 */ sw $t0, ($v1) - -/* 0A7284 7F072754 24010003 */ li $at, 3 -.L7F072758: -/* 0A7288 7F072758 14410008 */ bne $v0, $at, .L7F07277C -/* 0A728C 7F07275C 00000000 */ nop -/* 0A7290 7F072760 8C83000C */ lw $v1, 0xc($a0) -/* 0A7294 7F072764 3C0BB700 */ lui $t3, 0xb700 -/* 0A7298 7F072768 240C2000 */ li $t4, 8192 -/* 0A729C 7F07276C 246A0008 */ addiu $t2, $v1, 8 -/* 0A72A0 7F072770 AC8A000C */ sw $t2, 0xc($a0) -/* 0A72A4 7F072774 AC6C0004 */ sw $t4, 4($v1) -/* 0A72A8 7F072778 AC6B0000 */ sw $t3, ($v1) -.L7F07277C: -/* 0A72AC 7F07277C 03E00008 */ jr $ra -/* 0A72B0 7F072780 00000000 */ nop -) -#endif +void modelRenderNodeGundl(ModelRenderData* renderdata, ModelNode* arg1) +{ + ModelRoData_DisplayListRecord* rodata = &arg1->Data->DisplayList; + if (renderdata->unk18 == 0) + { + if ((renderdata->flags & 1) && rodata->Primary) + { + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->BaseAddr)); + if (renderdata->cullmode) + { + modelApplyCullMode(renderdata); + } -#ifdef NONMATCHING -void sub_GAME_7F072784(void) { + if (rodata->ModelType == 1) + { + sub_GAME_7F070F80(renderdata); + } + else if (rodata->ModelType == 3) + { + sub_GAME_7F071030(renderdata, 1); + } + else if (rodata->ModelType == 4) + { + sub_GAME_7F071B44(renderdata, 1); + } + else if (rodata->ModelType == 2) + { + sub_GAME_7F072644(renderdata); + } + gSPDisplayList(renderdata->gdl++, rodata->Primary); + + if ((rodata->ModelType == 3) && rodata->Secondary) + { + sub_GAME_7F071030(renderdata, 0); + gSPDisplayList(renderdata->gdl++, rodata->Secondary); + } + } + + if ((renderdata->flags & 2) && rodata->Primary && (rodata->ModelType == 4) && rodata->Secondary) + { + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->BaseAddr)); + + if (renderdata->cullmode) + { + modelApplyCullMode(renderdata); + } + + sub_GAME_7F071B44(renderdata, 0); + gSPDisplayList(renderdata->gdl++, rodata->Secondary); + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F072784 -/* 0A72B4 7F072784 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0A72B8 7F072788 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A72BC 7F07278C AFB10018 */ sw $s1, 0x18($sp) -/* 0A72C0 7F072790 AFB00014 */ sw $s0, 0x14($sp) -/* 0A72C4 7F072794 8C8E0018 */ lw $t6, 0x18($a0) -/* 0A72C8 7F072798 00808025 */ move $s0, $a0 -/* 0A72CC 7F07279C 8CB10004 */ lw $s1, 4($a1) -/* 0A72D0 7F0727A0 55C00074 */ bnezl $t6, .L7F072974 -/* 0A72D4 7F0727A4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A72D8 7F0727A8 8C8F0008 */ lw $t7, 8($a0) -/* 0A72DC 7F0727AC 31F80001 */ andi $t8, $t7, 1 -/* 0A72E0 7F0727B0 53000048 */ beql $t8, $zero, .L7F0728D4 -/* 0A72E4 7F0727B4 8E090008 */ lw $t1, 8($s0) -/* 0A72E8 7F0727B8 8E390000 */ lw $t9, ($s1) -/* 0A72EC 7F0727BC 53200045 */ beql $t9, $zero, .L7F0728D4 -/* 0A72F0 7F0727C0 8E090008 */ lw $t1, 8($s0) -/* 0A72F4 7F0727C4 8C82000C */ lw $v0, 0xc($a0) -/* 0A72F8 7F0727C8 3C09BC00 */ lui $t1, (0xBC001406 >> 16) # lui $t1, 0xbc00 -/* 0A72FC 7F0727CC 35291406 */ ori $t1, (0xBC001406 & 0xFFFF) # ori $t1, $t1, 0x1406 -/* 0A7300 7F0727D0 24480008 */ addiu $t0, $v0, 8 -/* 0A7304 7F0727D4 AC88000C */ sw $t0, 0xc($a0) -/* 0A7308 7F0727D8 AC490000 */ sw $t1, ($v0) -/* 0A730C 7F0727DC 8E240008 */ lw $a0, 8($s1) -/* 0A7310 7F0727E0 0C003A2C */ jal osVirtualToPhysical -/* 0A7314 7F0727E4 AFA20030 */ sw $v0, 0x30($sp) -/* 0A7318 7F0727E8 8FA30030 */ lw $v1, 0x30($sp) -/* 0A731C 7F0727EC AC620004 */ sw $v0, 4($v1) -/* 0A7320 7F0727F0 8E0A003C */ lw $t2, 0x3c($s0) -/* 0A7324 7F0727F4 51400004 */ beql $t2, $zero, .L7F072808 -/* 0A7328 7F0727F8 82220012 */ lb $v0, 0x12($s1) -/* 0A732C 7F0727FC 0FC1C9BE */ jal sub_GAME_7F0726F8 -/* 0A7330 7F072800 02002025 */ move $a0, $s0 -/* 0A7334 7F072804 82220012 */ lb $v0, 0x12($s1) -.L7F072808: -/* 0A7338 7F072808 24010001 */ li $at, 1 -/* 0A733C 7F07280C 54410006 */ bnel $v0, $at, .L7F072828 -/* 0A7340 7F072810 24010003 */ li $at, 3 -/* 0A7344 7F072814 0FC1C3E0 */ jal sub_GAME_7F070F80 -/* 0A7348 7F072818 02002025 */ move $a0, $s0 -/* 0A734C 7F07281C 10000015 */ b .L7F072874 -/* 0A7350 7F072820 8E02000C */ lw $v0, 0xc($s0) -/* 0A7354 7F072824 24010003 */ li $at, 3 -.L7F072828: -/* 0A7358 7F072828 14410005 */ bne $v0, $at, .L7F072840 -/* 0A735C 7F07282C 02002025 */ move $a0, $s0 -/* 0A7360 7F072830 0FC1C40C */ jal sub_GAME_7F071030 -/* 0A7364 7F072834 24050001 */ li $a1, 1 -/* 0A7368 7F072838 1000000E */ b .L7F072874 -/* 0A736C 7F07283C 8E02000C */ lw $v0, 0xc($s0) -.L7F072840: -/* 0A7370 7F072840 24010004 */ li $at, 4 -/* 0A7374 7F072844 14410005 */ bne $v0, $at, .L7F07285C -/* 0A7378 7F072848 02002025 */ move $a0, $s0 -/* 0A737C 7F07284C 0FC1C6D1 */ jal sub_GAME_7F071B44 -/* 0A7380 7F072850 24050001 */ li $a1, 1 -/* 0A7384 7F072854 10000007 */ b .L7F072874 -/* 0A7388 7F072858 8E02000C */ lw $v0, 0xc($s0) -.L7F07285C: -/* 0A738C 7F07285C 24010002 */ li $at, 2 -/* 0A7390 7F072860 54410004 */ bnel $v0, $at, .L7F072874 -/* 0A7394 7F072864 8E02000C */ lw $v0, 0xc($s0) -/* 0A7398 7F072868 0FC1C991 */ jal sub_GAME_7F072644 -/* 0A739C 7F07286C 02002025 */ move $a0, $s0 -/* 0A73A0 7F072870 8E02000C */ lw $v0, 0xc($s0) -.L7F072874: -/* 0A73A4 7F072874 3C0C0600 */ lui $t4, 0x600 -/* 0A73A8 7F072878 24010003 */ li $at, 3 -/* 0A73AC 7F07287C 244B0008 */ addiu $t3, $v0, 8 -/* 0A73B0 7F072880 AE0B000C */ sw $t3, 0xc($s0) -/* 0A73B4 7F072884 AC4C0000 */ sw $t4, ($v0) -/* 0A73B8 7F072888 8E2D0000 */ lw $t5, ($s1) -/* 0A73BC 7F07288C AC4D0004 */ sw $t5, 4($v0) -/* 0A73C0 7F072890 822E0012 */ lb $t6, 0x12($s1) -/* 0A73C4 7F072894 55C1000F */ bnel $t6, $at, .L7F0728D4 -/* 0A73C8 7F072898 8E090008 */ lw $t1, 8($s0) -/* 0A73CC 7F07289C 8E2F0004 */ lw $t7, 4($s1) -/* 0A73D0 7F0728A0 02002025 */ move $a0, $s0 -/* 0A73D4 7F0728A4 51E0000B */ beql $t7, $zero, .L7F0728D4 -/* 0A73D8 7F0728A8 8E090008 */ lw $t1, 8($s0) -/* 0A73DC 7F0728AC 0FC1C40C */ jal sub_GAME_7F071030 -/* 0A73E0 7F0728B0 00002825 */ move $a1, $zero -/* 0A73E4 7F0728B4 8E02000C */ lw $v0, 0xc($s0) -/* 0A73E8 7F0728B8 3C190600 */ lui $t9, 0x600 -/* 0A73EC 7F0728BC 24580008 */ addiu $t8, $v0, 8 -/* 0A73F0 7F0728C0 AE18000C */ sw $t8, 0xc($s0) -/* 0A73F4 7F0728C4 AC590000 */ sw $t9, ($v0) -/* 0A73F8 7F0728C8 8E280004 */ lw $t0, 4($s1) -/* 0A73FC 7F0728CC AC480004 */ sw $t0, 4($v0) -/* 0A7400 7F0728D0 8E090008 */ lw $t1, 8($s0) -.L7F0728D4: -/* 0A7404 7F0728D4 312A0002 */ andi $t2, $t1, 2 -/* 0A7408 7F0728D8 51400026 */ beql $t2, $zero, .L7F072974 -/* 0A740C 7F0728DC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7410 7F0728E0 8E2B0000 */ lw $t3, ($s1) -/* 0A7414 7F0728E4 51600023 */ beql $t3, $zero, .L7F072974 -/* 0A7418 7F0728E8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A741C 7F0728EC 822C0012 */ lb $t4, 0x12($s1) -/* 0A7420 7F0728F0 24010004 */ li $at, 4 -/* 0A7424 7F0728F4 5581001F */ bnel $t4, $at, .L7F072974 -/* 0A7428 7F0728F8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A742C 7F0728FC 8E2D0004 */ lw $t5, 4($s1) -/* 0A7430 7F072900 51A0001C */ beql $t5, $zero, .L7F072974 -/* 0A7434 7F072904 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7438 7F072908 8E02000C */ lw $v0, 0xc($s0) -/* 0A743C 7F07290C 3C0FBC00 */ lui $t7, (0xBC001406 >> 16) # lui $t7, 0xbc00 -/* 0A7440 7F072910 35EF1406 */ ori $t7, (0xBC001406 & 0xFFFF) # ori $t7, $t7, 0x1406 -/* 0A7444 7F072914 244E0008 */ addiu $t6, $v0, 8 -/* 0A7448 7F072918 AE0E000C */ sw $t6, 0xc($s0) -/* 0A744C 7F07291C AC4F0000 */ sw $t7, ($v0) -/* 0A7450 7F072920 8E240008 */ lw $a0, 8($s1) -/* 0A7454 7F072924 0C003A2C */ jal osVirtualToPhysical -/* 0A7458 7F072928 AFA20024 */ sw $v0, 0x24($sp) -/* 0A745C 7F07292C 8FA30024 */ lw $v1, 0x24($sp) -/* 0A7460 7F072930 AC620004 */ sw $v0, 4($v1) -/* 0A7464 7F072934 8E18003C */ lw $t8, 0x3c($s0) -/* 0A7468 7F072938 53000004 */ beql $t8, $zero, .L7F07294C -/* 0A746C 7F07293C 02002025 */ move $a0, $s0 -/* 0A7470 7F072940 0FC1C9BE */ jal sub_GAME_7F0726F8 -/* 0A7474 7F072944 02002025 */ move $a0, $s0 -/* 0A7478 7F072948 02002025 */ move $a0, $s0 -.L7F07294C: -/* 0A747C 7F07294C 0FC1C6D1 */ jal sub_GAME_7F071B44 -/* 0A7480 7F072950 00002825 */ move $a1, $zero -/* 0A7484 7F072954 8E02000C */ lw $v0, 0xc($s0) -/* 0A7488 7F072958 3C080600 */ lui $t0, 0x600 -/* 0A748C 7F07295C 24590008 */ addiu $t9, $v0, 8 -/* 0A7490 7F072960 AE19000C */ sw $t9, 0xc($s0) -/* 0A7494 7F072964 AC480000 */ sw $t0, ($v0) -/* 0A7498 7F072968 8E290004 */ lw $t1, 4($s1) -/* 0A749C 7F07296C AC490004 */ sw $t1, 4($v0) -/* 0A74A0 7F072970 8FBF001C */ lw $ra, 0x1c($sp) -.L7F072974: -/* 0A74A4 7F072974 8FB00014 */ lw $s0, 0x14($sp) -/* 0A74A8 7F072978 8FB10018 */ lw $s1, 0x18($sp) -/* 0A74AC 7F07297C 03E00008 */ jr $ra -/* 0A74B0 7F072980 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif +void modelRenderNodeDl(ModelRenderData *renderdata, Model *model, ModelNode *node) +{ + union ModelRoData *rodata = node->Data; + if (!renderdata->unk18) + { + if (renderdata->flags & 1) + { + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + if (rwdata->DisplayListCollisions.gdl) + { + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->DisplayListCollisions.BaseAddr)); -#ifdef NONMATCHING -void sub_GAME_7F072984(void) { + if (renderdata->cullmode) + { + modelApplyCullMode(renderdata); + } + if (rodata->DisplayListCollisions.ModelType == 1) + { + sub_GAME_7F070F80(renderdata); + } + else if (rodata->DisplayListCollisions.ModelType == 3) + { + sub_GAME_7F071030(renderdata, TRUE); + } + else if (rodata->DisplayListCollisions.ModelType == 4) + { + sub_GAME_7F071B44(renderdata, TRUE); + } + else if (rodata->DisplayListCollisions.ModelType == 2) + { + sub_GAME_7F072644(renderdata); + } + + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_VTX, osVirtualToPhysical(rwdata->DisplayListCollisions.Vertices)); + + gSPDisplayList(renderdata->gdl++, rwdata->DisplayListCollisions.gdl); + + if (rodata->DisplayListCollisions.ModelType == 3 && rodata->DisplayListCollisions.Secondary) + { + sub_GAME_7F071030(renderdata, FALSE); + gSPDisplayList(renderdata->gdl++, rodata->DisplayListCollisions.Secondary); + } + } + } + + if (renderdata->flags & 2) + { + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + + if (rwdata->DisplayListCollisions.gdl && rodata->DisplayListCollisions.ModelType == 4 && rodata->DisplayListCollisions.Secondary) + { + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->DisplayListCollisions.BaseAddr)); + + if (renderdata->cullmode) + { + modelApplyCullMode(renderdata); + } + + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_VTX, osVirtualToPhysical(rwdata->DisplayListCollisions.Vertices)); + + sub_GAME_7F071B44(renderdata, FALSE); + + gSPDisplayList(renderdata->gdl++, rodata->DisplayListCollisions.Secondary); + } + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F072984 -/* 0A74B4 7F072984 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0A74B8 7F072988 AFBF001C */ sw $ra, 0x1c($sp) -/* 0A74BC 7F07298C AFB10018 */ sw $s1, 0x18($sp) -/* 0A74C0 7F072990 AFB00014 */ sw $s0, 0x14($sp) -/* 0A74C4 7F072994 AFA5004C */ sw $a1, 0x4c($sp) -/* 0A74C8 7F072998 AFA60050 */ sw $a2, 0x50($sp) -/* 0A74CC 7F07299C 8C8F0018 */ lw $t7, 0x18($a0) -/* 0A74D0 7F0729A0 00808025 */ move $s0, $a0 -/* 0A74D4 7F0729A4 8CD10004 */ lw $s1, 4($a2) -/* 0A74D8 7F0729A8 55E00095 */ bnezl $t7, .L7F072C00 -/* 0A74DC 7F0729AC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A74E0 7F0729B0 8C980008 */ lw $t8, 8($a0) -/* 0A74E4 7F0729B4 00A02025 */ move $a0, $a1 -/* 0A74E8 7F0729B8 33190001 */ andi $t9, $t8, 1 -/* 0A74EC 7F0729BC 53200058 */ beql $t9, $zero, .L7F072B20 -/* 0A74F0 7F0729C0 8E0F0008 */ lw $t7, 8($s0) -/* 0A74F4 7F0729C4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A74F8 7F0729C8 00C02825 */ move $a1, $a2 -/* 0A74FC 7F0729CC AFA20040 */ sw $v0, 0x40($sp) -/* 0A7500 7F0729D0 8C480004 */ lw $t0, 4($v0) -/* 0A7504 7F0729D4 51000052 */ beql $t0, $zero, .L7F072B20 -/* 0A7508 7F0729D8 8E0F0008 */ lw $t7, 8($s0) -/* 0A750C 7F0729DC 8E03000C */ lw $v1, 0xc($s0) -/* 0A7510 7F0729E0 3C0ABC00 */ lui $t2, (0xBC001406 >> 16) # lui $t2, 0xbc00 -/* 0A7514 7F0729E4 354A1406 */ ori $t2, (0xBC001406 & 0xFFFF) # ori $t2, $t2, 0x1406 -/* 0A7518 7F0729E8 24690008 */ addiu $t1, $v1, 8 -/* 0A751C 7F0729EC AE09000C */ sw $t1, 0xc($s0) -/* 0A7520 7F0729F0 AC6A0000 */ sw $t2, ($v1) -/* 0A7524 7F0729F4 8E24001C */ lw $a0, 0x1c($s1) -/* 0A7528 7F0729F8 0C003A2C */ jal osVirtualToPhysical -/* 0A752C 7F0729FC AFA3003C */ sw $v1, 0x3c($sp) -/* 0A7530 7F072A00 8FA5003C */ lw $a1, 0x3c($sp) -/* 0A7534 7F072A04 ACA20004 */ sw $v0, 4($a1) -/* 0A7538 7F072A08 8E0B003C */ lw $t3, 0x3c($s0) -/* 0A753C 7F072A0C 51600004 */ beql $t3, $zero, .L7F072A20 -/* 0A7540 7F072A10 86220018 */ lh $v0, 0x18($s1) -/* 0A7544 7F072A14 0FC1C9BE */ jal sub_GAME_7F0726F8 -/* 0A7548 7F072A18 02002025 */ move $a0, $s0 -/* 0A754C 7F072A1C 86220018 */ lh $v0, 0x18($s1) -.L7F072A20: -/* 0A7550 7F072A20 24010001 */ li $at, 1 -/* 0A7554 7F072A24 54410006 */ bnel $v0, $at, .L7F072A40 -/* 0A7558 7F072A28 24010003 */ li $at, 3 -/* 0A755C 7F072A2C 0FC1C3E0 */ jal sub_GAME_7F070F80 -/* 0A7560 7F072A30 02002025 */ move $a0, $s0 -/* 0A7564 7F072A34 10000015 */ b .L7F072A8C -/* 0A7568 7F072A38 8E03000C */ lw $v1, 0xc($s0) -/* 0A756C 7F072A3C 24010003 */ li $at, 3 -.L7F072A40: -/* 0A7570 7F072A40 14410005 */ bne $v0, $at, .L7F072A58 -/* 0A7574 7F072A44 02002025 */ move $a0, $s0 -/* 0A7578 7F072A48 0FC1C40C */ jal sub_GAME_7F071030 -/* 0A757C 7F072A4C 24050001 */ li $a1, 1 -/* 0A7580 7F072A50 1000000E */ b .L7F072A8C -/* 0A7584 7F072A54 8E03000C */ lw $v1, 0xc($s0) -.L7F072A58: -/* 0A7588 7F072A58 24010004 */ li $at, 4 -/* 0A758C 7F072A5C 14410005 */ bne $v0, $at, .L7F072A74 -/* 0A7590 7F072A60 02002025 */ move $a0, $s0 -/* 0A7594 7F072A64 0FC1C6D1 */ jal sub_GAME_7F071B44 -/* 0A7598 7F072A68 24050001 */ li $a1, 1 -/* 0A759C 7F072A6C 10000007 */ b .L7F072A8C -/* 0A75A0 7F072A70 8E03000C */ lw $v1, 0xc($s0) -.L7F072A74: -/* 0A75A4 7F072A74 24010002 */ li $at, 2 -/* 0A75A8 7F072A78 54410004 */ bnel $v0, $at, .L7F072A8C -/* 0A75AC 7F072A7C 8E03000C */ lw $v1, 0xc($s0) -/* 0A75B0 7F072A80 0FC1C991 */ jal sub_GAME_7F072644 -/* 0A75B4 7F072A84 02002025 */ move $a0, $s0 -/* 0A75B8 7F072A88 8E03000C */ lw $v1, 0xc($s0) -.L7F072A8C: -/* 0A75BC 7F072A8C 3C0DBC00 */ lui $t5, (0xBC001006 >> 16) # lui $t5, 0xbc00 -/* 0A75C0 7F072A90 35AD1006 */ ori $t5, (0xBC001006 & 0xFFFF) # ori $t5, $t5, 0x1006 -/* 0A75C4 7F072A94 246C0008 */ addiu $t4, $v1, 8 -/* 0A75C8 7F072A98 AE0C000C */ sw $t4, 0xc($s0) -/* 0A75CC 7F072A9C AC6D0000 */ sw $t5, ($v1) -/* 0A75D0 7F072AA0 8FAF0040 */ lw $t7, 0x40($sp) -/* 0A75D4 7F072AA4 8DE40000 */ lw $a0, ($t7) -/* 0A75D8 7F072AA8 0C003A2C */ jal osVirtualToPhysical -/* 0A75DC 7F072AAC AFA30038 */ sw $v1, 0x38($sp) -/* 0A75E0 7F072AB0 8FA50038 */ lw $a1, 0x38($sp) -/* 0A75E4 7F072AB4 3C190600 */ lui $t9, 0x600 -/* 0A75E8 7F072AB8 24010003 */ li $at, 3 -/* 0A75EC 7F072ABC ACA20004 */ sw $v0, 4($a1) -/* 0A75F0 7F072AC0 8E03000C */ lw $v1, 0xc($s0) -/* 0A75F4 7F072AC4 24780008 */ addiu $t8, $v1, 8 -/* 0A75F8 7F072AC8 AE18000C */ sw $t8, 0xc($s0) -/* 0A75FC 7F072ACC AC790000 */ sw $t9, ($v1) -/* 0A7600 7F072AD0 8FAE0040 */ lw $t6, 0x40($sp) -/* 0A7604 7F072AD4 8DC80004 */ lw $t0, 4($t6) -/* 0A7608 7F072AD8 AC680004 */ sw $t0, 4($v1) -/* 0A760C 7F072ADC 86290018 */ lh $t1, 0x18($s1) -/* 0A7610 7F072AE0 5521000F */ bnel $t1, $at, .L7F072B20 -/* 0A7614 7F072AE4 8E0F0008 */ lw $t7, 8($s0) -/* 0A7618 7F072AE8 8E2A0004 */ lw $t2, 4($s1) -/* 0A761C 7F072AEC 02002025 */ move $a0, $s0 -/* 0A7620 7F072AF0 5140000B */ beql $t2, $zero, .L7F072B20 -/* 0A7624 7F072AF4 8E0F0008 */ lw $t7, 8($s0) -/* 0A7628 7F072AF8 0FC1C40C */ jal sub_GAME_7F071030 -/* 0A762C 7F072AFC 00002825 */ move $a1, $zero -/* 0A7630 7F072B00 8E03000C */ lw $v1, 0xc($s0) -/* 0A7634 7F072B04 3C0C0600 */ lui $t4, 0x600 -/* 0A7638 7F072B08 246B0008 */ addiu $t3, $v1, 8 -/* 0A763C 7F072B0C AE0B000C */ sw $t3, 0xc($s0) -/* 0A7640 7F072B10 AC6C0000 */ sw $t4, ($v1) -/* 0A7644 7F072B14 8E2D0004 */ lw $t5, 4($s1) -/* 0A7648 7F072B18 AC6D0004 */ sw $t5, 4($v1) -/* 0A764C 7F072B1C 8E0F0008 */ lw $t7, 8($s0) -.L7F072B20: -/* 0A7650 7F072B20 8FA4004C */ lw $a0, 0x4c($sp) -/* 0A7654 7F072B24 31F80002 */ andi $t8, $t7, 2 -/* 0A7658 7F072B28 53000035 */ beql $t8, $zero, .L7F072C00 -/* 0A765C 7F072B2C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7660 7F072B30 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A7664 7F072B34 8FA50050 */ lw $a1, 0x50($sp) -/* 0A7668 7F072B38 AFA2002C */ sw $v0, 0x2c($sp) -/* 0A766C 7F072B3C 8C590004 */ lw $t9, 4($v0) -/* 0A7670 7F072B40 5320002F */ beql $t9, $zero, .L7F072C00 -/* 0A7674 7F072B44 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7678 7F072B48 862E0018 */ lh $t6, 0x18($s1) -/* 0A767C 7F072B4C 24010004 */ li $at, 4 -/* 0A7680 7F072B50 55C1002B */ bnel $t6, $at, .L7F072C00 -/* 0A7684 7F072B54 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7688 7F072B58 8E280004 */ lw $t0, 4($s1) -/* 0A768C 7F072B5C 51000028 */ beql $t0, $zero, .L7F072C00 -/* 0A7690 7F072B60 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7694 7F072B64 8E03000C */ lw $v1, 0xc($s0) -/* 0A7698 7F072B68 3C0ABC00 */ lui $t2, (0xBC001406 >> 16) # lui $t2, 0xbc00 -/* 0A769C 7F072B6C 354A1406 */ ori $t2, (0xBC001406 & 0xFFFF) # ori $t2, $t2, 0x1406 -/* 0A76A0 7F072B70 24690008 */ addiu $t1, $v1, 8 -/* 0A76A4 7F072B74 AE09000C */ sw $t1, 0xc($s0) -/* 0A76A8 7F072B78 AC6A0000 */ sw $t2, ($v1) -/* 0A76AC 7F072B7C 8E24001C */ lw $a0, 0x1c($s1) -/* 0A76B0 7F072B80 0C003A2C */ jal osVirtualToPhysical -/* 0A76B4 7F072B84 AFA30028 */ sw $v1, 0x28($sp) -/* 0A76B8 7F072B88 8FA50028 */ lw $a1, 0x28($sp) -/* 0A76BC 7F072B8C ACA20004 */ sw $v0, 4($a1) -/* 0A76C0 7F072B90 8E0B003C */ lw $t3, 0x3c($s0) -/* 0A76C4 7F072B94 51600004 */ beql $t3, $zero, .L7F072BA8 -/* 0A76C8 7F072B98 8E03000C */ lw $v1, 0xc($s0) -/* 0A76CC 7F072B9C 0FC1C9BE */ jal sub_GAME_7F0726F8 -/* 0A76D0 7F072BA0 02002025 */ move $a0, $s0 -/* 0A76D4 7F072BA4 8E03000C */ lw $v1, 0xc($s0) -.L7F072BA8: -/* 0A76D8 7F072BA8 3C0DBC00 */ lui $t5, (0xBC001006 >> 16) # lui $t5, 0xbc00 -/* 0A76DC 7F072BAC 35AD1006 */ ori $t5, (0xBC001006 & 0xFFFF) # ori $t5, $t5, 0x1006 -/* 0A76E0 7F072BB0 246C0008 */ addiu $t4, $v1, 8 -/* 0A76E4 7F072BB4 AE0C000C */ sw $t4, 0xc($s0) -/* 0A76E8 7F072BB8 AC6D0000 */ sw $t5, ($v1) -/* 0A76EC 7F072BBC 8FAF002C */ lw $t7, 0x2c($sp) -/* 0A76F0 7F072BC0 8DE40000 */ lw $a0, ($t7) -/* 0A76F4 7F072BC4 0C003A2C */ jal osVirtualToPhysical -/* 0A76F8 7F072BC8 AFA30024 */ sw $v1, 0x24($sp) -/* 0A76FC 7F072BCC 8FA60024 */ lw $a2, 0x24($sp) -/* 0A7700 7F072BD0 02002025 */ move $a0, $s0 -/* 0A7704 7F072BD4 00002825 */ move $a1, $zero -/* 0A7708 7F072BD8 0FC1C6D1 */ jal sub_GAME_7F071B44 -/* 0A770C 7F072BDC ACC20004 */ sw $v0, 4($a2) -/* 0A7710 7F072BE0 8E03000C */ lw $v1, 0xc($s0) -/* 0A7714 7F072BE4 3C190600 */ lui $t9, 0x600 -/* 0A7718 7F072BE8 24780008 */ addiu $t8, $v1, 8 -/* 0A771C 7F072BEC AE18000C */ sw $t8, 0xc($s0) -/* 0A7720 7F072BF0 AC790000 */ sw $t9, ($v1) -/* 0A7724 7F072BF4 8E2E0004 */ lw $t6, 4($s1) -/* 0A7728 7F072BF8 AC6E0004 */ sw $t6, 4($v1) -/* 0A772C 7F072BFC 8FBF001C */ lw $ra, 0x1c($sp) -.L7F072C00: -/* 0A7730 7F072C00 8FB00014 */ lw $s0, 0x14($sp) -/* 0A7734 7F072C04 8FB10018 */ lw $s1, 0x18($sp) -/* 0A7738 7F072C08 03E00008 */ jr $ra -/* 0A773C 7F072C0C 27BD0048 */ addiu $sp, $sp, 0x48 -) -#endif - - - - - -void sub_GAME_7F072C10(Gfx *param_1, struct Model *param_2, struct ModelNode *param_3) +void sub_GAME_7F072C10(ModelRenderData *param_1, struct Model *param_2, struct ModelNode *param_3) { return; } +/** + * Star gunfire is a muzzle flash in a first person perspective, where the + * muzzle flash has 3 or 4 "arms" that flare out from the main body. + * + * This function reads vertices from the model definition, tweaks them randomly, + * writes them to a newly allocated vertices table and queues the node's + * displaylist to the renderdata's DL. + */ +void dorottex(ModelRenderData *renderdata, ModelNode *node) +{ + if (renderdata->unk18 == 0 && (renderdata->flags & 2)) + { + ModelRoData_DisplayListPrimaryRecord *rodata = &node->Data->DisplayListPrimary; + s32 i; + if (rodata->Primary) + { + Vertex *src; + Vertex *dst; + src = (Vertex *) rodata->Vertices; - -#ifdef NONMATCHING -void dorottex(void) { - -} -#else #ifndef VERSION_EU -//D:80054A38 -const char aDorottexNoVtxAllocator[] = "dorottex: no vtx allocator!\n"; -GLOBAL_ASM( -.text -glabel dorottex -/* 0A7750 7F072C20 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0A7754 7F072C24 AFBF003C */ sw $ra, 0x3c($sp) -/* 0A7758 7F072C28 AFBE0038 */ sw $fp, 0x38($sp) -/* 0A775C 7F072C2C AFB70034 */ sw $s7, 0x34($sp) -/* 0A7760 7F072C30 AFB60030 */ sw $s6, 0x30($sp) -/* 0A7764 7F072C34 AFB5002C */ sw $s5, 0x2c($sp) -/* 0A7768 7F072C38 AFB40028 */ sw $s4, 0x28($sp) -/* 0A776C 7F072C3C AFB30024 */ sw $s3, 0x24($sp) -/* 0A7770 7F072C40 AFB20020 */ sw $s2, 0x20($sp) -/* 0A7774 7F072C44 AFB1001C */ sw $s1, 0x1c($sp) -/* 0A7778 7F072C48 AFB00018 */ sw $s0, 0x18($sp) -/* 0A777C 7F072C4C 8C8E0018 */ lw $t6, 0x18($a0) -/* 0A7780 7F072C50 00809825 */ move $s3, $a0 -/* 0A7784 7F072C54 55C000ED */ bnezl $t6, .L7F07300C -/* 0A7788 7F072C58 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A778C 7F072C5C 8C8F0008 */ lw $t7, 8($a0) -/* 0A7790 7F072C60 31F80002 */ andi $t8, $t7, 2 -/* 0A7794 7F072C64 530000E9 */ beql $t8, $zero, .L7F07300C -/* 0A7798 7F072C68 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A779C 7F072C6C 8CA30004 */ lw $v1, 4($a1) -/* 0A77A0 7F072C70 3C028003 */ lui $v0, %hi(vtxallocator) -/* 0A77A4 7F072C74 8C790008 */ lw $t9, 8($v1) -/* 0A77A8 7F072C78 532000E4 */ beql $t9, $zero, .L7F07300C -/* 0A77AC 7F072C7C 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A77B0 7F072C80 8C42608C */ lw $v0, %lo(vtxallocator)($v0) -/* 0A77B4 7F072C84 3C048005 */ lui $a0, %hi(aDorottexNoVtxAllocator) -/* 0A77B8 7F072C88 8C720004 */ lw $s2, 4($v1) -/* 0A77BC 7F072C8C 10400003 */ beqz $v0, .L7F072C9C -/* 0A77C0 7F072C90 24844A38 */ addiu $a0, %lo(aDorottexNoVtxAllocator) # addiu $a0, $a0, 0x4a38 -/* 0A77C4 7F072C94 10000007 */ b .L7F072CB4 -/* 0A77C8 7F072C98 AFA30044 */ sw $v1, 0x44($sp) -.L7F072C9C: -/* 0A77CC 7F072C9C 0C0033D1 */ jal osSyncPrintf -/* 0A77D0 7F072CA0 AFA30044 */ sw $v1, 0x44($sp) -/* 0A77D4 7F072CA4 0FC1B11B */ jal return_null -/* 0A77D8 7F072CA8 00000000 */ nop -/* 0A77DC 7F072CAC 3C028003 */ lui $v0, %hi(vtxallocator) -/* 0A77E0 7F072CB0 8C42608C */ lw $v0, %lo(vtxallocator)($v0) -.L7F072CB4: -/* 0A77E4 7F072CB4 8FA30044 */ lw $v1, 0x44($sp) -/* 0A77E8 7F072CB8 8C640000 */ lw $a0, ($v1) -/* 0A77EC 7F072CBC 00044880 */ sll $t1, $a0, 2 -/* 0A77F0 7F072CC0 0040F809 */ jalr $v0 -/* 0A77F4 7F072CC4 01202025 */ move $a0, $t1 -/* 0A77F8 7F072CC8 8E74000C */ lw $s4, 0xc($s3) -/* 0A77FC 7F072CCC 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 -/* 0A7800 7F072CD0 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 -/* 0A7804 7F072CD4 268A0008 */ addiu $t2, $s4, 8 -/* 0A7808 7F072CD8 AE6A000C */ sw $t2, 0xc($s3) -/* 0A780C 7F072CDC 00408025 */ move $s0, $v0 -/* 0A7810 7F072CE0 00402025 */ move $a0, $v0 -/* 0A7814 7F072CE4 0C003A2C */ jal osVirtualToPhysical -/* 0A7818 7F072CE8 AE8B0000 */ sw $t3, ($s4) -/* 0A781C 7F072CEC AE820004 */ sw $v0, 4($s4) -/* 0A7820 7F072CF0 8E76000C */ lw $s6, 0xc($s3) -/* 0A7824 7F072CF4 3C0DBC00 */ lui $t5, (0xBC001406 >> 16) # lui $t5, 0xbc00 -/* 0A7828 7F072CF8 35AD1406 */ ori $t5, (0xBC001406 & 0xFFFF) # ori $t5, $t5, 0x1406 -/* 0A782C 7F072CFC 26CC0008 */ addiu $t4, $s6, 8 -/* 0A7830 7F072D00 AE6C000C */ sw $t4, 0xc($s3) -/* 0A7834 7F072D04 AECD0000 */ sw $t5, ($s6) -/* 0A7838 7F072D08 8FAE0044 */ lw $t6, 0x44($sp) -/* 0A783C 7F072D0C 0C003A2C */ jal osVirtualToPhysical -/* 0A7840 7F072D10 8DC4000C */ lw $a0, 0xc($t6) -/* 0A7844 7F072D14 8FA50044 */ lw $a1, 0x44($sp) -/* 0A7848 7F072D18 AEC20004 */ sw $v0, 4($s6) -/* 0A784C 7F072D1C 8E71000C */ lw $s1, 0xc($s3) -/* 0A7850 7F072D20 3C18F800 */ lui $t8, 0xf800 -/* 0A7854 7F072D24 3C090600 */ lui $t1, 0x600 -/* 0A7858 7F072D28 262F0008 */ addiu $t7, $s1, 8 -/* 0A785C 7F072D2C AE6F000C */ sw $t7, 0xc($s3) -/* 0A7860 7F072D30 AE200004 */ sw $zero, 4($s1) -/* 0A7864 7F072D34 AE380000 */ sw $t8, ($s1) -/* 0A7868 7F072D38 8E71000C */ lw $s1, 0xc($s3) -/* 0A786C 7F072D3C 241600B5 */ li $s6, 181 -/* 0A7870 7F072D40 0000A825 */ move $s5, $zero -/* 0A7874 7F072D44 26390008 */ addiu $t9, $s1, 8 -/* 0A7878 7F072D48 AE79000C */ sw $t9, 0xc($s3) -/* 0A787C 7F072D4C AE290000 */ sw $t1, ($s1) -/* 0A7880 7F072D50 8CAA0008 */ lw $t2, 8($a1) -/* 0A7884 7F072D54 3C1E0001 */ lui $fp, 1 -/* 0A7888 7F072D58 24170200 */ li $s7, 512 -/* 0A788C 7F072D5C AE2A0004 */ sw $t2, 4($s1) -/* 0A7890 7F072D60 8CAB0000 */ lw $t3, ($a1) -/* 0A7894 7F072D64 596000A9 */ blezl $t3, .L7F07300C -/* 0A7898 7F072D68 8FBF003C */ lw $ra, 0x3c($sp) -.L7F072D6C: -/* 0A789C 7F072D6C 0C002914 */ jal randomGetNext -/* 0A78A0 7F072D70 00000000 */ nop -/* 0A78A4 7F072D74 00026280 */ sll $t4, $v0, 0xa -/* 0A78A8 7F072D78 3191FFFF */ andi $s1, $t4, 0xffff -/* 0A78AC 7F072D7C 0C005B0C */ jal coss -/* 0A78B0 7F072D80 3184FFFF */ andi $a0, $t4, 0xffff -/* 0A78B4 7F072D84 00026940 */ sll $t5, $v0, 5 -/* 0A78B8 7F072D88 01B60019 */ multu $t5, $s6 -/* 0A78BC 7F072D8C 3224FFFF */ andi $a0, $s1, 0xffff -/* 0A78C0 7F072D90 0000A012 */ mflo $s4 -/* 0A78C4 7F072D94 00147483 */ sra $t6, $s4, 0x12 -/* 0A78C8 7F072D98 0C005B18 */ jal sins -/* 0A78CC 7F072D9C 01C0A025 */ move $s4, $t6 -/* 0A78D0 7F072DA0 00027940 */ sll $t7, $v0, 5 -/* 0A78D4 7F072DA4 01F60019 */ multu $t7, $s6 -/* 0A78D8 7F072DA8 00009812 */ mflo $s3 -/* 0A78DC 7F072DAC 0013C483 */ sra $t8, $s3, 0x12 -/* 0A78E0 7F072DB0 0C002914 */ jal randomGetNext -/* 0A78E4 7F072DB4 03009825 */ move $s3, $t8 -/* 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 -/* 0A78F8 7F072DC8 03D92023 */ subu $a0, $fp, $t9 -/* 0A78FC 7F072DCC AE010000 */ sw $at, ($s0) -/* 0A7900 7F072DD0 8E4A0004 */ lw $t2, 4($s2) -/* 0A7904 7F072DD4 02F44023 */ subu $t0, $s7, $s4 -/* 0A7908 7F072DD8 02F33823 */ subu $a3, $s7, $s3 -/* 0A790C 7F072DDC AE0A0004 */ sw $t2, 4($s0) -/* 0A7910 7F072DE0 8E410008 */ lw $at, 8($s2) -/* 0A7914 7F072DE4 00801825 */ move $v1, $a0 -/* 0A7918 7F072DE8 26660200 */ addiu $a2, $s3, 0x200 -/* 0A791C 7F072DEC AE010008 */ sw $at, 8($s0) -/* 0A7920 7F072DF0 8E4A000C */ lw $t2, 0xc($s2) -/* 0A7924 7F072DF4 26B50001 */ addiu $s5, $s5, 1 -/* 0A7928 7F072DF8 26100040 */ addiu $s0, $s0, 0x40 -/* 0A792C 7F072DFC AE0AFFCC */ sw $t2, -0x34($s0) -/* 0A7930 7F072E00 8E410010 */ lw $at, 0x10($s2) -/* 0A7934 7F072E04 AE01FFD0 */ sw $at, -0x30($s0) -/* 0A7938 7F072E08 8E4C0014 */ lw $t4, 0x14($s2) -/* 0A793C 7F072E0C AE0CFFD4 */ sw $t4, -0x2c($s0) -/* 0A7940 7F072E10 8E410018 */ lw $at, 0x18($s2) -/* 0A7944 7F072E14 AE01FFD8 */ sw $at, -0x28($s0) -/* 0A7948 7F072E18 8E4C001C */ lw $t4, 0x1c($s2) -/* 0A794C 7F072E1C AE0CFFDC */ sw $t4, -0x24($s0) -/* 0A7950 7F072E20 8E410020 */ lw $at, 0x20($s2) -/* 0A7954 7F072E24 AE01FFE0 */ sw $at, -0x20($s0) -/* 0A7958 7F072E28 8E4E0024 */ lw $t6, 0x24($s2) -/* 0A795C 7F072E2C AE0EFFE4 */ sw $t6, -0x1c($s0) -/* 0A7960 7F072E30 8E410028 */ lw $at, 0x28($s2) -/* 0A7964 7F072E34 AE01FFE8 */ sw $at, -0x18($s0) -/* 0A7968 7F072E38 8E4E002C */ lw $t6, 0x2c($s2) -/* 0A796C 7F072E3C AE0EFFEC */ sw $t6, -0x14($s0) -/* 0A7970 7F072E40 8E410030 */ lw $at, 0x30($s2) -/* 0A7974 7F072E44 AE01FFF0 */ sw $at, -0x10($s0) -/* 0A7978 7F072E48 8E580034 */ lw $t8, 0x34($s2) -/* 0A797C 7F072E4C AE18FFF4 */ sw $t8, -0xc($s0) -/* 0A7980 7F072E50 8E410038 */ lw $at, 0x38($s2) -/* 0A7984 7F072E54 AE01FFF8 */ sw $at, -8($s0) -/* 0A7988 7F072E58 8E58003C */ lw $t8, 0x3c($s2) -/* 0A798C 7F072E5C A608FFC8 */ sh $t0, -0x38($s0) -/* 0A7990 7F072E60 A607FFCA */ sh $a3, -0x36($s0) -/* 0A7994 7F072E64 AE18FFFC */ sw $t8, -4($s0) -/* 0A7998 7F072E68 06210004 */ bgez $s1, .L7F072E7C -/* 0A799C 7F072E6C 32390003 */ andi $t9, $s1, 3 -/* 0A79A0 7F072E70 13200002 */ beqz $t9, .L7F072E7C -/* 0A79A4 7F072E74 00000000 */ nop -/* 0A79A8 7F072E78 2739FFFC */ addiu $t9, $t9, -4 -.L7F072E7C: -/* 0A79AC 7F072E7C 00194900 */ sll $t1, $t9, 4 -/* 0A79B0 7F072E80 02492821 */ addu $a1, $s2, $t1 -/* 0A79B4 7F072E84 84AA0000 */ lh $t2, ($a1) -/* 0A79B8 7F072E88 01440019 */ multu $t2, $a0 -/* 0A79BC 7F072E8C 262A0001 */ addiu $t2, $s1, 1 -/* 0A79C0 7F072E90 00005812 */ mflo $t3 -/* 0A79C4 7F072E94 000B6403 */ sra $t4, $t3, 0x10 -/* 0A79C8 7F072E98 A60CFFC0 */ sh $t4, -0x40($s0) -/* 0A79CC 7F072E9C 84AD0002 */ lh $t5, 2($a1) -/* 0A79D0 7F072EA0 01A40019 */ multu $t5, $a0 -/* 0A79D4 7F072EA4 26840200 */ addiu $a0, $s4, 0x200 -/* 0A79D8 7F072EA8 00007012 */ mflo $t6 -/* 0A79DC 7F072EAC 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A79E0 7F072EB0 A60FFFC2 */ sh $t7, -0x3e($s0) -/* 0A79E4 7F072EB4 84B80004 */ lh $t8, 4($a1) -/* 0A79E8 7F072EB8 A606FFD8 */ sh $a2, -0x28($s0) -/* 0A79EC 7F072EBC A608FFDA */ sh $t0, -0x26($s0) -/* 0A79F0 7F072EC0 03030019 */ multu $t8, $v1 -/* 0A79F4 7F072EC4 0000C812 */ mflo $t9 -/* 0A79F8 7F072EC8 00194C03 */ sra $t1, $t9, 0x10 -/* 0A79FC 7F072ECC A609FFC4 */ sh $t1, -0x3c($s0) -/* 0A7A00 7F072ED0 05410004 */ bgez $t2, .L7F072EE4 -/* 0A7A04 7F072ED4 314B0003 */ andi $t3, $t2, 3 -/* 0A7A08 7F072ED8 11600002 */ beqz $t3, .L7F072EE4 -/* 0A7A0C 7F072EDC 00000000 */ nop -/* 0A7A10 7F072EE0 256BFFFC */ addiu $t3, $t3, -4 -.L7F072EE4: -/* 0A7A14 7F072EE4 000B6100 */ sll $t4, $t3, 4 -/* 0A7A18 7F072EE8 024C1021 */ addu $v0, $s2, $t4 -/* 0A7A1C 7F072EEC 844D0000 */ lh $t5, ($v0) -/* 0A7A20 7F072EF0 01A30019 */ multu $t5, $v1 -/* 0A7A24 7F072EF4 262D0002 */ addiu $t5, $s1, 2 -/* 0A7A28 7F072EF8 00007012 */ mflo $t6 -/* 0A7A2C 7F072EFC 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A7A30 7F072F00 A60FFFD0 */ sh $t7, -0x30($s0) -/* 0A7A34 7F072F04 84580002 */ lh $t8, 2($v0) -/* 0A7A38 7F072F08 03030019 */ multu $t8, $v1 -/* 0A7A3C 7F072F0C 0000C812 */ mflo $t9 -/* 0A7A40 7F072F10 00194C03 */ sra $t1, $t9, 0x10 -/* 0A7A44 7F072F14 A609FFD2 */ sh $t1, -0x2e($s0) -/* 0A7A48 7F072F18 844A0004 */ lh $t2, 4($v0) -/* 0A7A4C 7F072F1C A604FFE8 */ sh $a0, -0x18($s0) -/* 0A7A50 7F072F20 A606FFEA */ sh $a2, -0x16($s0) -/* 0A7A54 7F072F24 01430019 */ multu $t2, $v1 -/* 0A7A58 7F072F28 00005812 */ mflo $t3 -/* 0A7A5C 7F072F2C 000B6403 */ sra $t4, $t3, 0x10 -/* 0A7A60 7F072F30 A60CFFD4 */ sh $t4, -0x2c($s0) -/* 0A7A64 7F072F34 05A10004 */ bgez $t5, .L7F072F48 -/* 0A7A68 7F072F38 31AE0003 */ andi $t6, $t5, 3 -/* 0A7A6C 7F072F3C 11C00002 */ beqz $t6, .L7F072F48 -/* 0A7A70 7F072F40 00000000 */ nop -/* 0A7A74 7F072F44 25CEFFFC */ addiu $t6, $t6, -4 -.L7F072F48: -/* 0A7A78 7F072F48 000E7900 */ sll $t7, $t6, 4 -/* 0A7A7C 7F072F4C 024F1021 */ addu $v0, $s2, $t7 -/* 0A7A80 7F072F50 84580000 */ lh $t8, ($v0) -/* 0A7A84 7F072F54 03030019 */ multu $t8, $v1 -/* 0A7A88 7F072F58 26380003 */ addiu $t8, $s1, 3 -/* 0A7A8C 7F072F5C 0000C812 */ mflo $t9 -/* 0A7A90 7F072F60 00194C03 */ sra $t1, $t9, 0x10 -/* 0A7A94 7F072F64 A609FFE0 */ sh $t1, -0x20($s0) -/* 0A7A98 7F072F68 844A0002 */ lh $t2, 2($v0) -/* 0A7A9C 7F072F6C 01430019 */ multu $t2, $v1 -/* 0A7AA0 7F072F70 00005812 */ mflo $t3 -/* 0A7AA4 7F072F74 000B6403 */ sra $t4, $t3, 0x10 -/* 0A7AA8 7F072F78 A60CFFE2 */ sh $t4, -0x1e($s0) -/* 0A7AAC 7F072F7C 844D0004 */ lh $t5, 4($v0) -/* 0A7AB0 7F072F80 A607FFF8 */ sh $a3, -8($s0) -/* 0A7AB4 7F072F84 A604FFFA */ sh $a0, -6($s0) -/* 0A7AB8 7F072F88 01A30019 */ multu $t5, $v1 -/* 0A7ABC 7F072F8C 00007012 */ mflo $t6 -/* 0A7AC0 7F072F90 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A7AC4 7F072F94 A60FFFE4 */ sh $t7, -0x1c($s0) -/* 0A7AC8 7F072F98 07010004 */ bgez $t8, .L7F072FAC -/* 0A7ACC 7F072F9C 33190003 */ andi $t9, $t8, 3 -/* 0A7AD0 7F072FA0 13200002 */ beqz $t9, .L7F072FAC -/* 0A7AD4 7F072FA4 00000000 */ nop -/* 0A7AD8 7F072FA8 2739FFFC */ addiu $t9, $t9, -4 -.L7F072FAC: -/* 0A7ADC 7F072FAC 00194900 */ sll $t1, $t9, 4 -/* 0A7AE0 7F072FB0 02491021 */ addu $v0, $s2, $t1 -/* 0A7AE4 7F072FB4 844A0000 */ lh $t2, ($v0) -/* 0A7AE8 7F072FB8 26520040 */ addiu $s2, $s2, 0x40 -/* 0A7AEC 7F072FBC 01430019 */ multu $t2, $v1 -/* 0A7AF0 7F072FC0 00005812 */ mflo $t3 -/* 0A7AF4 7F072FC4 000B6403 */ sra $t4, $t3, 0x10 -/* 0A7AF8 7F072FC8 A60CFFF0 */ sh $t4, -0x10($s0) -/* 0A7AFC 7F072FCC 844D0002 */ lh $t5, 2($v0) -/* 0A7B00 7F072FD0 01A30019 */ multu $t5, $v1 -/* 0A7B04 7F072FD4 00007012 */ mflo $t6 -/* 0A7B08 7F072FD8 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A7B0C 7F072FDC A60FFFF2 */ sh $t7, -0xe($s0) -/* 0A7B10 7F072FE0 84580004 */ lh $t8, 4($v0) -/* 0A7B14 7F072FE4 03030019 */ multu $t8, $v1 -/* 0A7B18 7F072FE8 0000C812 */ mflo $t9 -/* 0A7B1C 7F072FEC 00194C03 */ sra $t1, $t9, 0x10 -/* 0A7B20 7F072FF0 A609FFF4 */ sh $t1, -0xc($s0) -/* 0A7B24 7F072FF4 8FAA0044 */ lw $t2, 0x44($sp) -/* 0A7B28 7F072FF8 8D4B0000 */ lw $t3, ($t2) -/* 0A7B2C 7F072FFC 02AB082A */ slt $at, $s5, $t3 -/* 0A7B30 7F073000 1420FF5A */ bnez $at, .L7F072D6C -/* 0A7B34 7F073004 00000000 */ nop -/* 0A7B38 7F073008 8FBF003C */ lw $ra, 0x3c($sp) -.L7F07300C: -/* 0A7B3C 7F07300C 8FB00018 */ lw $s0, 0x18($sp) -/* 0A7B40 7F073010 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A7B44 7F073014 8FB20020 */ lw $s2, 0x20($sp) -/* 0A7B48 7F073018 8FB30024 */ lw $s3, 0x24($sp) -/* 0A7B4C 7F07301C 8FB40028 */ lw $s4, 0x28($sp) -/* 0A7B50 7F073020 8FB5002C */ lw $s5, 0x2c($sp) -/* 0A7B54 7F073024 8FB60030 */ lw $s6, 0x30($sp) -/* 0A7B58 7F073028 8FB70034 */ lw $s7, 0x34($sp) -/* 0A7B5C 7F07302C 8FBE0038 */ lw $fp, 0x38($sp) -/* 0A7B60 7F073030 03E00008 */ jr $ra -/* 0A7B64 7F073034 27BD0048 */ addiu $sp, $sp, 0x48 -) -#endif -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel dorottex -/* 0A57B0 7F072DC0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0A57B4 7F072DC4 AFBF003C */ sw $ra, 0x3c($sp) -/* 0A57B8 7F072DC8 AFBE0038 */ sw $fp, 0x38($sp) -/* 0A57BC 7F072DCC AFB70034 */ sw $s7, 0x34($sp) -/* 0A57C0 7F072DD0 AFB60030 */ sw $s6, 0x30($sp) -/* 0A57C4 7F072DD4 AFB5002C */ sw $s5, 0x2c($sp) -/* 0A57C8 7F072DD8 AFB40028 */ sw $s4, 0x28($sp) -/* 0A57CC 7F072DDC AFB30024 */ sw $s3, 0x24($sp) -/* 0A57D0 7F072DE0 AFB20020 */ sw $s2, 0x20($sp) -/* 0A57D4 7F072DE4 AFB1001C */ sw $s1, 0x1c($sp) -/* 0A57D8 7F072DE8 AFB00018 */ sw $s0, 0x18($sp) -/* 0A57DC 7F072DEC 8C8E0018 */ lw $t6, 0x18($a0) -/* 0A57E0 7F072DF0 00809825 */ move $s3, $a0 -/* 0A57E4 7F072DF4 55C000DE */ bnezl $t6, .L7F073170 -/* 0A57E8 7F072DF8 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A57EC 7F072DFC 8C8F0008 */ lw $t7, 8($a0) -/* 0A57F0 7F072E00 31F80002 */ andi $t8, $t7, 2 -/* 0A57F4 7F072E04 530000DA */ beql $t8, $zero, .L7F073170 -/* 0A57F8 7F072E08 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A57FC 7F072E0C 8CBE0004 */ lw $fp, 4($a1) -/* 0A5800 7F072E10 8FD90008 */ lw $t9, 8($fp) -/* 0A5804 7F072E14 532000D6 */ beql $t9, $zero, .L7F073170 -/* 0A5808 7F072E18 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A580C 7F072E1C 8FC40000 */ lw $a0, ($fp) -/* 0A5810 7F072E20 3C198003 */ lui $t9, %hi(vtxallocator) # $t9, 0x8003 -/* 0A5814 7F072E24 8F3915DC */ lw $t9, %lo(vtxallocator)($t9) -/* 0A5818 7F072E28 00044880 */ sll $t1, $a0, 2 -/* 0A581C 7F072E2C 8FD20004 */ lw $s2, 4($fp) -/* 0A5820 7F072E30 0320F809 */ jalr $t9 -/* 0A5824 7F072E34 01202025 */ move $a0, $t1 -/* 0A5828 7F072E38 8E74000C */ lw $s4, 0xc($s3) -/* 0A582C 7F072E3C 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 -/* 0A5830 7F072E40 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 -/* 0A5834 7F072E44 268A0008 */ addiu $t2, $s4, 8 -/* 0A5838 7F072E48 AE6A000C */ sw $t2, 0xc($s3) -/* 0A583C 7F072E4C 00408025 */ move $s0, $v0 -/* 0A5840 7F072E50 00402025 */ move $a0, $v0 -/* 0A5844 7F072E54 0C003838 */ jal osVirtualToPhysical -/* 0A5848 7F072E58 AE8B0000 */ sw $t3, ($s4) -/* 0A584C 7F072E5C AE820004 */ sw $v0, 4($s4) -/* 0A5850 7F072E60 8E76000C */ lw $s6, 0xc($s3) -/* 0A5854 7F072E64 3C0DBC00 */ lui $t5, (0xBC001406 >> 16) # lui $t5, 0xbc00 -/* 0A5858 7F072E68 35AD1406 */ ori $t5, (0xBC001406 & 0xFFFF) # ori $t5, $t5, 0x1406 -/* 0A585C 7F072E6C 26CC0008 */ addiu $t4, $s6, 8 -/* 0A5860 7F072E70 AE6C000C */ sw $t4, 0xc($s3) -/* 0A5864 7F072E74 AECD0000 */ sw $t5, ($s6) -/* 0A5868 7F072E78 0C003838 */ jal osVirtualToPhysical -/* 0A586C 7F072E7C 8FC4000C */ lw $a0, 0xc($fp) -/* 0A5870 7F072E80 AEC20004 */ sw $v0, 4($s6) -/* 0A5874 7F072E84 8E71000C */ lw $s1, 0xc($s3) -/* 0A5878 7F072E88 3C0FF800 */ lui $t7, 0xf800 -/* 0A587C 7F072E8C 3C090600 */ lui $t1, 0x600 -/* 0A5880 7F072E90 262E0008 */ addiu $t6, $s1, 8 -/* 0A5884 7F072E94 AE6E000C */ sw $t6, 0xc($s3) -/* 0A5888 7F072E98 AE200004 */ sw $zero, 4($s1) -/* 0A588C 7F072E9C AE2F0000 */ sw $t7, ($s1) -/* 0A5890 7F072EA0 8E71000C */ lw $s1, 0xc($s3) -/* 0A5894 7F072EA4 241600B5 */ li $s6, 181 -/* 0A5898 7F072EA8 0000A825 */ move $s5, $zero -/* 0A589C 7F072EAC 26380008 */ addiu $t8, $s1, 8 -/* 0A58A0 7F072EB0 AE78000C */ sw $t8, 0xc($s3) -/* 0A58A4 7F072EB4 AE290000 */ sw $t1, ($s1) -/* 0A58A8 7F072EB8 8FD90008 */ lw $t9, 8($fp) -/* 0A58AC 7F072EBC 24170200 */ li $s7, 512 -/* 0A58B0 7F072EC0 AE390004 */ sw $t9, 4($s1) -/* 0A58B4 7F072EC4 8FCA0000 */ lw $t2, ($fp) -/* 0A58B8 7F072EC8 594000A9 */ blezl $t2, .L7F073170 -/* 0A58BC 7F072ECC 8FBF003C */ lw $ra, 0x3c($sp) -.L7F072ED0: -/* 0A58C0 7F072ED0 0C00262C */ jal randomGetNext -/* 0A58C4 7F072ED4 00000000 */ nop -/* 0A58C8 7F072ED8 00025A80 */ sll $t3, $v0, 0xa -/* 0A58CC 7F072EDC 3171FFFF */ andi $s1, $t3, 0xffff -/* 0A58D0 7F072EE0 0C0058B4 */ jal coss -/* 0A58D4 7F072EE4 3164FFFF */ andi $a0, $t3, 0xffff -/* 0A58D8 7F072EE8 00026140 */ sll $t4, $v0, 5 -/* 0A58DC 7F072EEC 01960019 */ multu $t4, $s6 -/* 0A58E0 7F072EF0 3224FFFF */ andi $a0, $s1, 0xffff -/* 0A58E4 7F072EF4 0000A012 */ mflo $s4 -/* 0A58E8 7F072EF8 00146C83 */ sra $t5, $s4, 0x12 -/* 0A58EC 7F072EFC 0C0058C0 */ jal sins -/* 0A58F0 7F072F00 01A0A025 */ move $s4, $t5 -/* 0A58F4 7F072F04 00027140 */ sll $t6, $v0, 5 -/* 0A58F8 7F072F08 01D60019 */ multu $t6, $s6 -/* 0A58FC 7F072F0C 00009812 */ mflo $s3 -/* 0A5900 7F072F10 00137C83 */ sra $t7, $s3, 0x12 -/* 0A5904 7F072F14 0C00262C */ jal randomGetNext -/* 0A5908 7F072F18 01E09825 */ move $s3, $t7 -/* 0A590C 7F072F1C 0C00262C */ jal randomGetNext -/* 0A5910 7F072F20 00028FC2 */ srl $s1, $v0, 0x1f -/* 0A5914 7F072F24 8E410000 */ lw $at, ($s2) -/* 0A5918 7F072F28 30583FFF */ andi $t8, $v0, 0x3fff -/* 0A591C 7F072F2C 3C090001 */ lui $t1, 1 -/* 0A5920 7F072F30 AE010000 */ sw $at, ($s0) -/* 0A5924 7F072F34 8E4A0004 */ lw $t2, 4($s2) -/* 0A5928 7F072F38 01382023 */ subu $a0, $t1, $t8 -/* 0A592C 7F072F3C 02F44023 */ subu $t0, $s7, $s4 -/* 0A5930 7F072F40 AE0A0004 */ sw $t2, 4($s0) -/* 0A5934 7F072F44 8E410008 */ lw $at, 8($s2) -/* 0A5938 7F072F48 02F33823 */ subu $a3, $s7, $s3 -/* 0A593C 7F072F4C 00801825 */ move $v1, $a0 -/* 0A5940 7F072F50 AE010008 */ sw $at, 8($s0) -/* 0A5944 7F072F54 8E4A000C */ lw $t2, 0xc($s2) -/* 0A5948 7F072F58 26660200 */ addiu $a2, $s3, 0x200 -/* 0A594C 7F072F5C 26B50001 */ addiu $s5, $s5, 1 -/* 0A5950 7F072F60 AE0A000C */ sw $t2, 0xc($s0) -/* 0A5954 7F072F64 8E410010 */ lw $at, 0x10($s2) -/* 0A5958 7F072F68 26100040 */ addiu $s0, $s0, 0x40 -/* 0A595C 7F072F6C AE01FFD0 */ sw $at, -0x30($s0) -/* 0A5960 7F072F70 8E4C0014 */ lw $t4, 0x14($s2) -/* 0A5964 7F072F74 AE0CFFD4 */ sw $t4, -0x2c($s0) -/* 0A5968 7F072F78 8E410018 */ lw $at, 0x18($s2) -/* 0A596C 7F072F7C AE01FFD8 */ sw $at, -0x28($s0) -/* 0A5970 7F072F80 8E4C001C */ lw $t4, 0x1c($s2) -/* 0A5974 7F072F84 AE0CFFDC */ sw $t4, -0x24($s0) -/* 0A5978 7F072F88 8E410020 */ lw $at, 0x20($s2) -/* 0A597C 7F072F8C AE01FFE0 */ sw $at, -0x20($s0) -/* 0A5980 7F072F90 8E4E0024 */ lw $t6, 0x24($s2) -/* 0A5984 7F072F94 AE0EFFE4 */ sw $t6, -0x1c($s0) -/* 0A5988 7F072F98 8E410028 */ lw $at, 0x28($s2) -/* 0A598C 7F072F9C AE01FFE8 */ sw $at, -0x18($s0) -/* 0A5990 7F072FA0 8E4E002C */ lw $t6, 0x2c($s2) -/* 0A5994 7F072FA4 AE0EFFEC */ sw $t6, -0x14($s0) -/* 0A5998 7F072FA8 8E410030 */ lw $at, 0x30($s2) -/* 0A599C 7F072FAC AE01FFF0 */ sw $at, -0x10($s0) -/* 0A59A0 7F072FB0 8E490034 */ lw $t1, 0x34($s2) -/* 0A59A4 7F072FB4 AE09FFF4 */ sw $t1, -0xc($s0) -/* 0A59A8 7F072FB8 8E410038 */ lw $at, 0x38($s2) -/* 0A59AC 7F072FBC AE01FFF8 */ sw $at, -8($s0) -/* 0A59B0 7F072FC0 8E49003C */ lw $t1, 0x3c($s2) -/* 0A59B4 7F072FC4 A608FFC8 */ sh $t0, -0x38($s0) -/* 0A59B8 7F072FC8 A607FFCA */ sh $a3, -0x36($s0) -/* 0A59BC 7F072FCC AE09FFFC */ sw $t1, -4($s0) -/* 0A59C0 7F072FD0 06210004 */ bgez $s1, .L7F072FE4 -/* 0A59C4 7F072FD4 32380003 */ andi $t8, $s1, 3 -/* 0A59C8 7F072FD8 13000002 */ beqz $t8, .L7F072FE4 -/* 0A59CC 7F072FDC 00000000 */ nop -/* 0A59D0 7F072FE0 2718FFFC */ addiu $t8, $t8, -4 -.L7F072FE4: -/* 0A59D4 7F072FE4 0018C900 */ sll $t9, $t8, 4 -/* 0A59D8 7F072FE8 02592821 */ addu $a1, $s2, $t9 -/* 0A59DC 7F072FEC 84AA0000 */ lh $t2, ($a1) -/* 0A59E0 7F072FF0 01440019 */ multu $t2, $a0 -/* 0A59E4 7F072FF4 262A0001 */ addiu $t2, $s1, 1 -/* 0A59E8 7F072FF8 00005812 */ mflo $t3 -/* 0A59EC 7F072FFC 000B6403 */ sra $t4, $t3, 0x10 -/* 0A59F0 7F073000 A60CFFC0 */ sh $t4, -0x40($s0) -/* 0A59F4 7F073004 84AD0002 */ lh $t5, 2($a1) -/* 0A59F8 7F073008 01A40019 */ multu $t5, $a0 -/* 0A59FC 7F07300C 26840200 */ addiu $a0, $s4, 0x200 -/* 0A5A00 7F073010 00007012 */ mflo $t6 -/* 0A5A04 7F073014 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A5A08 7F073018 A60FFFC2 */ sh $t7, -0x3e($s0) -/* 0A5A0C 7F07301C 84A90004 */ lh $t1, 4($a1) -/* 0A5A10 7F073020 A606FFD8 */ sh $a2, -0x28($s0) -/* 0A5A14 7F073024 A608FFDA */ sh $t0, -0x26($s0) -/* 0A5A18 7F073028 01230019 */ multu $t1, $v1 -/* 0A5A1C 7F07302C 0000C012 */ mflo $t8 -/* 0A5A20 7F073030 0018CC03 */ sra $t9, $t8, 0x10 -/* 0A5A24 7F073034 A619FFC4 */ sh $t9, -0x3c($s0) -/* 0A5A28 7F073038 05410004 */ bgez $t2, .L7F07304C -/* 0A5A2C 7F07303C 314B0003 */ andi $t3, $t2, 3 -/* 0A5A30 7F073040 11600002 */ beqz $t3, .L7F07304C -/* 0A5A34 7F073044 00000000 */ nop -/* 0A5A38 7F073048 256BFFFC */ addiu $t3, $t3, -4 -.L7F07304C: -/* 0A5A3C 7F07304C 000B6100 */ sll $t4, $t3, 4 -/* 0A5A40 7F073050 024C1021 */ addu $v0, $s2, $t4 -/* 0A5A44 7F073054 844D0000 */ lh $t5, ($v0) -/* 0A5A48 7F073058 01A30019 */ multu $t5, $v1 -/* 0A5A4C 7F07305C 262D0002 */ addiu $t5, $s1, 2 -/* 0A5A50 7F073060 00007012 */ mflo $t6 -/* 0A5A54 7F073064 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A5A58 7F073068 A60FFFD0 */ sh $t7, -0x30($s0) -/* 0A5A5C 7F07306C 84490002 */ lh $t1, 2($v0) -/* 0A5A60 7F073070 01230019 */ multu $t1, $v1 -/* 0A5A64 7F073074 0000C012 */ mflo $t8 -/* 0A5A68 7F073078 0018CC03 */ sra $t9, $t8, 0x10 -/* 0A5A6C 7F07307C A619FFD2 */ sh $t9, -0x2e($s0) -/* 0A5A70 7F073080 844A0004 */ lh $t2, 4($v0) -/* 0A5A74 7F073084 A604FFE8 */ sh $a0, -0x18($s0) -/* 0A5A78 7F073088 A606FFEA */ sh $a2, -0x16($s0) -/* 0A5A7C 7F07308C 01430019 */ multu $t2, $v1 -/* 0A5A80 7F073090 00005812 */ mflo $t3 -/* 0A5A84 7F073094 000B6403 */ sra $t4, $t3, 0x10 -/* 0A5A88 7F073098 A60CFFD4 */ sh $t4, -0x2c($s0) -/* 0A5A8C 7F07309C 05A10004 */ bgez $t5, .L7F0730B0 -/* 0A5A90 7F0730A0 31AE0003 */ andi $t6, $t5, 3 -/* 0A5A94 7F0730A4 11C00002 */ beqz $t6, .L7F0730B0 -/* 0A5A98 7F0730A8 00000000 */ nop -/* 0A5A9C 7F0730AC 25CEFFFC */ addiu $t6, $t6, -4 -.L7F0730B0: -/* 0A5AA0 7F0730B0 000E7900 */ sll $t7, $t6, 4 -/* 0A5AA4 7F0730B4 024F1021 */ addu $v0, $s2, $t7 -/* 0A5AA8 7F0730B8 84490000 */ lh $t1, ($v0) -/* 0A5AAC 7F0730BC 01230019 */ multu $t1, $v1 -/* 0A5AB0 7F0730C0 26290003 */ addiu $t1, $s1, 3 -/* 0A5AB4 7F0730C4 0000C012 */ mflo $t8 -/* 0A5AB8 7F0730C8 0018CC03 */ sra $t9, $t8, 0x10 -/* 0A5ABC 7F0730CC A619FFE0 */ sh $t9, -0x20($s0) -/* 0A5AC0 7F0730D0 844A0002 */ lh $t2, 2($v0) -/* 0A5AC4 7F0730D4 01430019 */ multu $t2, $v1 -/* 0A5AC8 7F0730D8 00005812 */ mflo $t3 -/* 0A5ACC 7F0730DC 000B6403 */ sra $t4, $t3, 0x10 -/* 0A5AD0 7F0730E0 A60CFFE2 */ sh $t4, -0x1e($s0) -/* 0A5AD4 7F0730E4 844D0004 */ lh $t5, 4($v0) -/* 0A5AD8 7F0730E8 A607FFF8 */ sh $a3, -8($s0) -/* 0A5ADC 7F0730EC A604FFFA */ sh $a0, -6($s0) -/* 0A5AE0 7F0730F0 01A30019 */ multu $t5, $v1 -/* 0A5AE4 7F0730F4 00007012 */ mflo $t6 -/* 0A5AE8 7F0730F8 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A5AEC 7F0730FC A60FFFE4 */ sh $t7, -0x1c($s0) -/* 0A5AF0 7F073100 05210004 */ bgez $t1, .L7F073114 -/* 0A5AF4 7F073104 31380003 */ andi $t8, $t1, 3 -/* 0A5AF8 7F073108 13000002 */ beqz $t8, .L7F073114 -/* 0A5AFC 7F07310C 00000000 */ nop -/* 0A5B00 7F073110 2718FFFC */ addiu $t8, $t8, -4 -.L7F073114: -/* 0A5B04 7F073114 0018C900 */ sll $t9, $t8, 4 -/* 0A5B08 7F073118 02591021 */ addu $v0, $s2, $t9 -/* 0A5B0C 7F07311C 844A0000 */ lh $t2, ($v0) -/* 0A5B10 7F073120 26520040 */ addiu $s2, $s2, 0x40 -/* 0A5B14 7F073124 01430019 */ multu $t2, $v1 -/* 0A5B18 7F073128 00005812 */ mflo $t3 -/* 0A5B1C 7F07312C 000B6403 */ sra $t4, $t3, 0x10 -/* 0A5B20 7F073130 A60CFFF0 */ sh $t4, -0x10($s0) -/* 0A5B24 7F073134 844D0002 */ lh $t5, 2($v0) -/* 0A5B28 7F073138 01A30019 */ multu $t5, $v1 -/* 0A5B2C 7F07313C 00007012 */ mflo $t6 -/* 0A5B30 7F073140 000E7C03 */ sra $t7, $t6, 0x10 -/* 0A5B34 7F073144 A60FFFF2 */ sh $t7, -0xe($s0) -/* 0A5B38 7F073148 84490004 */ lh $t1, 4($v0) -/* 0A5B3C 7F07314C 01230019 */ multu $t1, $v1 -/* 0A5B40 7F073150 0000C012 */ mflo $t8 -/* 0A5B44 7F073154 0018CC03 */ sra $t9, $t8, 0x10 -/* 0A5B48 7F073158 A619FFF4 */ sh $t9, -0xc($s0) -/* 0A5B4C 7F07315C 8FCA0000 */ lw $t2, ($fp) -/* 0A5B50 7F073160 02AA082A */ slt $at, $s5, $t2 -/* 0A5B54 7F073164 1420FF5A */ bnez $at, .L7F072ED0 -/* 0A5B58 7F073168 00000000 */ nop -/* 0A5B5C 7F07316C 8FBF003C */ lw $ra, 0x3c($sp) -.L7F073170: -/* 0A5B60 7F073170 8FB00018 */ lw $s0, 0x18($sp) -/* 0A5B64 7F073174 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A5B68 7F073178 8FB20020 */ lw $s2, 0x20($sp) -/* 0A5B6C 7F07317C 8FB30024 */ lw $s3, 0x24($sp) -/* 0A5B70 7F073180 8FB40028 */ lw $s4, 0x28($sp) -/* 0A5B74 7F073184 8FB5002C */ lw $s5, 0x2c($sp) -/* 0A5B78 7F073188 8FB60030 */ lw $s6, 0x30($sp) -/* 0A5B7C 7F07318C 8FB70034 */ lw $s7, 0x34($sp) -/* 0A5B80 7F073190 8FBE0038 */ lw $fp, 0x38($sp) -/* 0A5B84 7F073194 03E00008 */ jr $ra -/* 0A5B88 7F073198 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif + if (vtxallocator != NULL) + { + } + else + { + osSyncPrintf("dorottex: no vtx allocator!\n"); + return_null(); + } #endif + dst = vtxallocator(rodata->numVertices * 4); + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_VTX, osVirtualToPhysical(dst)); + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->BaseAddr)); + gDPSetFogColor(renderdata->gdl++, 0x00, 0x00, 0x00, 0x00); + gSPDisplayList(renderdata->gdl++, rodata->Primary); + for (i = 0; i < rodata->numVertices; i++) + { + u16 rand1 = (randomGetNext() << 10) & 0xffff; + s32 s4 = ((coss(rand1) << 5) * 181) >> 18; + s32 s3 = ((sins(rand1) << 5) * 181) >> 18; + s32 s1 = (u32)randomGetNext() >> 31; + s32 mult = 0x10000 - (randomGetNext() & 0x3fff); + s32 corner1 = 0x200 + s3; + s32 corner2 = 0x200 - s3; + s32 corner3 = 0x200 - s4; + s32 corner4 = 0x200 + s4; -#ifdef NONMATCHING -void sub_GAME_7F073038(void) { + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + dst[0].s = corner3; + dst[0].t = corner2; + dst[0].coord.x = (src[(s1 + 0) % 4].coord.x * mult) >> 16; + dst[0].coord.y = (src[(s1 + 0) % 4].coord.y * mult) >> 16; + dst[0].coord.z = (src[(s1 + 0) % 4].coord.z * mult) >> 16; + + dst[1].s = corner1; + dst[1].t = corner3; + dst[1].coord.x = (src[(s1 + 1) % 4].coord.x * mult) >> 16; + dst[1].coord.y = (src[(s1 + 1) % 4].coord.y * mult) >> 16; + dst[1].coord.z = (src[(s1 + 1) % 4].coord.z * mult) >> 16; + + dst[2].s = corner4; + dst[2].t = corner1; + dst[2].coord.x = (src[(s1 + 2) % 4].coord.x * mult) >> 16; + dst[2].coord.y = (src[(s1 + 2) % 4].coord.y * mult) >> 16; + dst[2].coord.z = (src[(s1 + 2) % 4].coord.z * mult) >> 16; + + dst[3].s = corner2; + dst[3].t = corner4; + dst[3].coord.x = (src[(s1 + 3) % 4].coord.x * mult) >> 16; + dst[3].coord.y = (src[(s1 + 3) % 4].coord.y * mult) >> 16; + dst[3].coord.z = (src[(s1 + 3) % 4].coord.z * mult) >> 16; + + src += 4; + dst += 4; + } + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F073038 -/* 0A7B68 7F073038 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0A7B6C 7F07303C AFBF001C */ sw $ra, 0x1c($sp) -/* 0A7B70 7F073040 AFA40020 */ sw $a0, 0x20($sp) -/* 0A7B74 7F073044 00807025 */ move $t6, $a0 -/* 0A7B78 7F073048 8DC70004 */ lw $a3, 4($t6) -/* 0A7B7C 7F07304C 240F0002 */ li $t7, 2 -/* 0A7B80 7F073050 AFAF0010 */ sw $t7, 0x10($sp) -/* 0A7B84 7F073054 0FC1DB5A */ jal likely_generate_DL_for_image_declaration -/* 0A7B88 7F073058 2484000C */ addiu $a0, $a0, 0xc -/* 0A7B8C 7F07305C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A7B90 7F073060 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0A7B94 7F073064 03E00008 */ jr $ra -/* 0A7B98 7F073068 00000000 */ nop -) -#endif - - +void sub_GAME_7F073038(ModelRenderData *renderdata, struct sImageTableEntry *tconfig, s32 arg2) +{ + likely_generate_DL_for_image_declaration(&renderdata->gdl, tconfig, arg2, renderdata->zbufferenabled, 2); +} void sub_GAME_7F07306C(s32 param_1,struct Model *param_2,struct ModelNode *param_3) @@ -9832,1075 +6383,264 @@ void sub_GAME_7F07306C(s32 param_1,struct Model *param_2,struct ModelNode *param } +void dotube(ModelRenderData* renderdata, Model* model, ModelNode* node) +{ + s32 rw_index_sel; + s32 rw_index_sel2; + s32 c_entry_count; + struct ModelRoData_Op07Record *rodata2; + s32 c_entry2_count; + s32 c_entry_index; + s32 renderpos_index; + ModelNode *node_from_07; + struct ModelRoData_Child *c_entry2; + Vertex *vtx2; + u8 *entry2_04; + s32 unused1; + bool swap_order; + struct ModelRoData_Op07Record *rodata; + struct ModelRoData_Child *c_entry; + struct ModelRwData_Op07Record *rwdata; + Vertex *vtx_10; + Vertex *vtx_10_2; + RenderPosView *render_pos2; + RenderPosView *render_pos; + s32 rw_index2; + s32 rw_index; + Vertex *vtx1; + struct ModelRwData_Op07Record *rwdata2; + u8 *entry_04; + s32 unused2; + s32 renderpos_index2; + s32 unused3; + rodata = &node->Data->Op07; + rwdata = &modelGetNodeRwData(model, node)->Op07; + if (rodata->unk00 != NULL) + { + node_from_07 = rodata->unk00; + } + else + { + node_from_07 = rodata->unk04; + } + rodata2 = &node_from_07->Data->Op07; + rwdata2 = &modelGetNodeRwData(model, node_from_07)->Op07; + swap_order = 1; + if (renderdata->flags & 1) + { + renderpos_index2 = sub_GAME_7F06C570(node, 0); + render_pos2 = &model->render_pos[renderpos_index2]; + rw_index = rwdata->index; + rw_index2 = rwdata2->index; + c_entry = &rodata->Children[rw_index]; -#ifdef NONMATCHING -void dotube(void) { + if (rodata->unk00 != NULL) + { + rw_index_sel = rw_index2; + rw_index_sel2 = rw_index; + renderpos_index = sub_GAME_7F06C570(node, 0x200); + } + else + { + rw_index_sel = rw_index; + rw_index_sel2 = rw_index2; + renderpos_index = sub_GAME_7F06C570(rodata->unk04, 0x200); + } + render_pos = &model->render_pos[renderpos_index]; + + c_entry_index = ((rw_index_sel2 - rw_index_sel) + rodata->NumChildren) % rodata->NumChildren; + + if ((c_entry_index >= 2) && (c_entry_index < 7)) + { + if (c_entry_index < 4) + { + c_entry_index = ((c_entry_index / 2) + rw_index_sel + rodata->NumChildren) % rodata->NumChildren; + } + else + { + c_entry_index = ((rw_index_sel - ((8 - c_entry_index) / 2)) + rodata->NumChildren) % rodata->NumChildren; + swap_order = 0; + } + } + else if ((c_entry_index >= 0xA) && (c_entry_index < 0xF)) + { + if (c_entry_index >= 0xD) + { + c_entry_index = ((rw_index_sel - ((0x10 - c_entry_index) / 2)) + rodata->NumChildren) % rodata->NumChildren; + } + else + { + c_entry_index = (((c_entry_index - 8) / 2) + rw_index_sel + rodata->NumChildren) % rodata->NumChildren; + swap_order = 0; + } + } + else + { + if ((c_entry_index >= 7) && (c_entry_index < 0xA)) + { + swap_order = 0; + } + c_entry_index = rw_index_sel; + } + + entry_04 = c_entry->unk04; + + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->BaseAddr)); + + for (c_entry_count = c_entry->NumEntries; c_entry_count > 0; c_entry_count--) + { + switch (*entry_04) + { + case MODELNODE_CHILD_VTX: + { + struct ModelRoData_Child_Vtx* child_vtx = ((struct ModelRoData_Child_Vtx*)entry_04); +#if defined(LEFTOVERDEBUG) + if (vtxallocator == NULL) + { + osSyncPrintf("dotube: no vtx allocator!\n"); + return_null(); + } +#endif + vtx1 = vtxallocator(2); + vtx2 = &vtx1[1]; + + *vtx1 = rodata->Vertices[child_vtx->VtxIndex]; + *vtx2 = rodata->Vertices[child_vtx->VtxIndex+1]; + + if (rodata->unk04 != NULL) + { + c_entry2 = &rodata->Children[c_entry_index]; + entry2_04 = c_entry2->unk04; + + for (c_entry2_count = c_entry2->NumEntries; c_entry2_count > 0; c_entry2_count--) + { + struct ModelRoData_Child_Vtx* entry2_04_child = ((struct ModelRoData_Child_Vtx*)entry2_04); + if (entry2_04_child->Type == (u8) 1) { + vtx_10 = &rodata->Vertices[entry2_04_child->VtxIndex]; + vtx_10_2 = vtx_10+1; + + vtx1->coord.AsArray[0] = vtx_10->coord.AsArray[0]; + vtx1->coord.AsArray[1] = vtx_10->coord.AsArray[1]; + vtx1->coord.AsArray[2] = vtx_10->coord.AsArray[2]; + + vtx2->coord.AsArray[0] = vtx_10_2->coord.AsArray[0]; + vtx2->coord.AsArray[1] = vtx_10_2->coord.AsArray[1]; + vtx2->coord.AsArray[2] = vtx_10_2->coord.AsArray[2]; + break; + } + + switch (*entry2_04) + { + case MODELNODE_CHILD_VTX: + entry2_04 += sizeof(struct ModelRoData_Child_Vtx); + break; + case MODELNODE_CHILD_IMAGE: + entry2_04 += sizeof(struct ModelRoData_Child_Image); + break; + case MODELNODE_CHILD_TRI: + entry2_04 += sizeof(struct ModelRoData_Child_Tri); + break; + } + } + + } + else + { + c_entry2 = &rodata2->Children[c_entry_index]; + entry2_04 = c_entry2->unk04; + + for (c_entry2_count = c_entry2->NumEntries; c_entry2_count > 0; c_entry2_count--) + { + struct ModelRoData_Child_Vtx* entry2_04_child = ((struct ModelRoData_Child_Vtx*)entry2_04); + if (entry2_04_child->Type == (u8) 1) + { + vtx_10 = &rodata2->Vertices[entry2_04_child->VtxIndex]; + vtx_10_2 = vtx_10 + 1; + if (swap_order != 0) + { +#if defined(LEFTOVERDEBUG) + if (vtx_10->coord.AsArray); +#endif + vtx1->coord.AsArray[0] = vtx_10_2->coord.AsArray[0]; + vtx1->coord.AsArray[1] = vtx_10_2->coord.AsArray[1]; + vtx1->coord.AsArray[2] = vtx_10_2->coord.AsArray[2]; + + vtx2->coord.AsArray[0] = vtx_10->coord.AsArray[0]; + vtx2->coord.AsArray[1] = vtx_10->coord.AsArray[1]; + vtx2->coord.AsArray[2] = vtx_10->coord.AsArray[2]; + } + else + { + vtx1->coord.AsArray[0] = vtx_10->coord.AsArray[0]; + vtx1->coord.AsArray[1] = vtx_10->coord.AsArray[1]; + vtx1->coord.AsArray[2] = vtx_10->coord.AsArray[2]; + + vtx2->coord.AsArray[0] = vtx_10_2->coord.AsArray[0]; + vtx2->coord.AsArray[1] = vtx_10_2->coord.AsArray[1]; + vtx2->coord.AsArray[2] = vtx_10_2->coord.AsArray[2]; + } + break; + } + + switch (*entry2_04) + { + case MODELNODE_CHILD_VTX: + entry2_04 += sizeof(struct ModelRoData_Child_Vtx); + break; + + case MODELNODE_CHILD_IMAGE: + entry2_04 += sizeof(struct ModelRoData_Child_Image); + break; + + case MODELNODE_CHILD_TRI: + entry2_04 += sizeof(struct ModelRoData_Child_Tri); + break; + } + } + } + + gSPMatrix(renderdata->gdl++, osVirtualToPhysical(render_pos), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPVertex(renderdata->gdl++, osVirtualToPhysical(vtx1), 2, 0); + gSPMatrix(renderdata->gdl++, osVirtualToPhysical(render_pos2), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPVertex(renderdata->gdl++, osVirtualToPhysical(&rodata->Vertices[child_vtx->VtxIndex] + 2), (u32)(child_vtx->unk01 - 2), 2); + + entry_04 += sizeof(struct ModelRoData_Child_Vtx); + + break; + } + + case MODELNODE_CHILD_IMAGE: + { + struct ModelRoData_Child_Image* child_image = (struct ModelRoData_Child_Image*)entry_04; + if (child_image->ImageIndex != 0xFF) + { + sub_GAME_7F073038(renderdata, &rodata->Images[child_image->ImageIndex], 1); + entry_04 += sizeof(struct ModelRoData_Child_Image); + } + else + { + sub_GAME_7F073038(renderdata, NULL, 1); + entry_04 += sizeof(struct ModelRoData_Child_Image); + } + break; + } + + case MODELNODE_CHILD_TRI: + { + struct ModelRoData_Child_Tri* child_tri = (struct ModelRoData_Child_Tri*)entry_04; + gSP1Triangle(renderdata->gdl++, child_tri->VtxIndex1, child_tri->VtxIndex2, child_tri->VtxIndex3, 0); + entry_04 += sizeof(struct ModelRoData_Child_Tri); + break; + } + } + } + } } -#else -#ifndef VERSION_EU -//D:80054A58 -const char aDotubeNoVtxAllocator[] = "dotube: no vtx allocator!\n"; -GLOBAL_ASM( -.text -glabel dotube -/* 0A7BAC 7F07307C 27BDFF30 */ addiu $sp, $sp, -0xd0 -/* 0A7BB0 7F073080 AFB5002C */ sw $s5, 0x2c($sp) -/* 0A7BB4 7F073084 0080A825 */ move $s5, $a0 -/* 0A7BB8 7F073088 AFB30024 */ sw $s3, 0x24($sp) -/* 0A7BBC 7F07308C 00A09825 */ move $s3, $a1 -/* 0A7BC0 7F073090 AFBF003C */ sw $ra, 0x3c($sp) -/* 0A7BC4 7F073094 AFBE0038 */ sw $fp, 0x38($sp) -/* 0A7BC8 7F073098 AFB70034 */ sw $s7, 0x34($sp) -/* 0A7BCC 7F07309C AFB60030 */ sw $s6, 0x30($sp) -/* 0A7BD0 7F0730A0 AFB40028 */ sw $s4, 0x28($sp) -/* 0A7BD4 7F0730A4 AFB20020 */ sw $s2, 0x20($sp) -/* 0A7BD8 7F0730A8 AFB1001C */ sw $s1, 0x1c($sp) -/* 0A7BDC 7F0730AC AFB00018 */ sw $s0, 0x18($sp) -/* 0A7BE0 7F0730B0 00A02025 */ move $a0, $a1 -/* 0A7BE4 7F0730B4 00C08825 */ move $s1, $a2 -/* 0A7BE8 7F0730B8 8CD60004 */ lw $s6, 4($a2) -/* 0A7BEC 7F0730BC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A7BF0 7F0730C0 00C02825 */ move $a1, $a2 -/* 0A7BF4 7F0730C4 8EC30000 */ lw $v1, ($s6) -/* 0A7BF8 7F0730C8 00409025 */ move $s2, $v0 -/* 0A7BFC 7F0730CC 50600004 */ beql $v1, $zero, .L7F0730E0 -/* 0A7C00 7F0730D0 8EC50004 */ lw $a1, 4($s6) -/* 0A7C04 7F0730D4 10000002 */ b .L7F0730E0 -/* 0A7C08 7F0730D8 00602825 */ move $a1, $v1 -/* 0A7C0C 7F0730DC 8EC50004 */ lw $a1, 4($s6) -.L7F0730E0: -/* 0A7C10 7F0730E0 8CAE0004 */ lw $t6, 4($a1) -/* 0A7C14 7F0730E4 02602025 */ move $a0, $s3 -/* 0A7C18 7F0730E8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A7C1C 7F0730EC AFAE00C0 */ sw $t6, 0xc0($sp) -/* 0A7C20 7F0730F0 240F0001 */ li $t7, 1 -/* 0A7C24 7F0730F4 AFAF009C */ sw $t7, 0x9c($sp) -/* 0A7C28 7F0730F8 8EB80008 */ lw $t8, 8($s5) -/* 0A7C2C 7F0730FC 00408025 */ move $s0, $v0 -/* 0A7C30 7F073100 02202025 */ move $a0, $s1 -/* 0A7C34 7F073104 33190001 */ andi $t9, $t8, 1 -/* 0A7C38 7F073108 532001AD */ beql $t9, $zero, .L7F0737C0 -/* 0A7C3C 7F07310C 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A7C40 7F073110 0FC1B15C */ jal sub_GAME_7F06C570 -/* 0A7C44 7F073114 00002825 */ move $a1, $zero -/* 0A7C48 7F073118 8E68000C */ lw $t0, 0xc($s3) -/* 0A7C4C 7F07311C 00024980 */ sll $t1, $v0, 6 -/* 0A7C50 7F073120 24050200 */ li $a1, 512 -/* 0A7C54 7F073124 01095021 */ addu $t2, $t0, $t1 -/* 0A7C58 7F073128 AFAA0084 */ sw $t2, 0x84($sp) -/* 0A7C5C 7F07312C 8E430000 */ lw $v1, ($s2) -/* 0A7C60 7F073130 8ECD0000 */ lw $t5, ($s6) -/* 0A7C64 7F073134 8ECB000C */ lw $t3, 0xc($s6) -/* 0A7C68 7F073138 000360C0 */ sll $t4, $v1, 3 -/* 0A7C6C 7F07313C 8E060000 */ lw $a2, ($s0) -/* 0A7C70 7F073140 11A00008 */ beqz $t5, .L7F073164 -/* 0A7C74 7F073144 016CF021 */ addu $fp, $t3, $t4 -/* 0A7C78 7F073148 00C09025 */ move $s2, $a2 -/* 0A7C7C 7F07314C 00608025 */ move $s0, $v1 -/* 0A7C80 7F073150 02202025 */ move $a0, $s1 -/* 0A7C84 7F073154 0FC1B15C */ jal sub_GAME_7F06C570 -/* 0A7C88 7F073158 24050200 */ li $a1, 512 -/* 0A7C8C 7F07315C 10000006 */ b .L7F073178 -/* 0A7C90 7F073160 8E6E000C */ lw $t6, 0xc($s3) -.L7F073164: -/* 0A7C94 7F073164 00609025 */ move $s2, $v1 -/* 0A7C98 7F073168 00C08025 */ move $s0, $a2 -/* 0A7C9C 7F07316C 0FC1B15C */ jal sub_GAME_7F06C570 -/* 0A7CA0 7F073170 8EC40004 */ lw $a0, 4($s6) -/* 0A7CA4 7F073174 8E6E000C */ lw $t6, 0xc($s3) -.L7F073178: -/* 0A7CA8 7F073178 00027980 */ sll $t7, $v0, 6 -/* 0A7CAC 7F07317C 0212C823 */ subu $t9, $s0, $s2 -/* 0A7CB0 7F073180 01CFC021 */ addu $t8, $t6, $t7 -/* 0A7CB4 7F073184 AFB80080 */ sw $t8, 0x80($sp) -/* 0A7CB8 7F073188 8EC30008 */ lw $v1, 8($s6) -/* 0A7CBC 7F07318C 03234021 */ addu $t0, $t9, $v1 -/* 0A7CC0 7F073190 0103001A */ div $zero, $t0, $v1 -/* 0A7CC4 7F073194 14600002 */ bnez $v1, .L7F0731A0 -/* 0A7CC8 7F073198 00000000 */ nop -/* 0A7CCC 7F07319C 0007000D */ break 7 -.L7F0731A0: -/* 0A7CD0 7F0731A0 2401FFFF */ li $at, -1 -/* 0A7CD4 7F0731A4 14610004 */ bne $v1, $at, .L7F0731B8 -/* 0A7CD8 7F0731A8 3C018000 */ lui $at, 0x8000 -/* 0A7CDC 7F0731AC 15010002 */ bne $t0, $at, .L7F0731B8 -/* 0A7CE0 7F0731B0 00000000 */ nop -/* 0A7CE4 7F0731B4 0006000D */ break 6 -.L7F0731B8: -/* 0A7CE8 7F0731B8 00002810 */ mfhi $a1 -/* 0A7CEC 7F0731BC 28A10002 */ slti $at, $a1, 2 -/* 0A7CF0 7F0731C0 1420002E */ bnez $at, .L7F07327C -/* 0A7CF4 7F0731C4 28A10007 */ slti $at, $a1, 7 -/* 0A7CF8 7F0731C8 1020002C */ beqz $at, .L7F07327C -/* 0A7CFC 7F0731CC 28A10004 */ slti $at, $a1, 4 -/* 0A7D00 7F0731D0 50200015 */ beql $at, $zero, .L7F073228 -/* 0A7D04 7F0731D4 240C0008 */ li $t4, 8 -/* 0A7D08 7F0731D8 04A10003 */ bgez $a1, .L7F0731E8 -/* 0A7D0C 7F0731DC 00054843 */ sra $t1, $a1, 1 -/* 0A7D10 7F0731E0 24A10001 */ addiu $at, $a1, 1 -/* 0A7D14 7F0731E4 00014843 */ sra $t1, $at, 1 -.L7F0731E8: -/* 0A7D18 7F0731E8 01325021 */ addu $t2, $t1, $s2 -/* 0A7D1C 7F0731EC 01435821 */ addu $t3, $t2, $v1 -/* 0A7D20 7F0731F0 0163001A */ div $zero, $t3, $v1 -/* 0A7D24 7F0731F4 00002810 */ mfhi $a1 -/* 0A7D28 7F0731F8 14600002 */ bnez $v1, .L7F073204 -/* 0A7D2C 7F0731FC 00000000 */ nop -/* 0A7D30 7F073200 0007000D */ break 7 -.L7F073204: -/* 0A7D34 7F073204 2401FFFF */ li $at, -1 -/* 0A7D38 7F073208 14610004 */ bne $v1, $at, .L7F07321C -/* 0A7D3C 7F07320C 3C018000 */ lui $at, 0x8000 -/* 0A7D40 7F073210 15610002 */ bne $t3, $at, .L7F07321C -/* 0A7D44 7F073214 00000000 */ nop -/* 0A7D48 7F073218 0006000D */ break 6 -.L7F07321C: -/* 0A7D4C 7F07321C 10000050 */ b .L7F073360 -/* 0A7D50 7F073220 8EB1000C */ lw $s1, 0xc($s5) -/* 0A7D54 7F073224 240C0008 */ li $t4, 8 -.L7F073228: -/* 0A7D58 7F073228 01856823 */ subu $t5, $t4, $a1 -/* 0A7D5C 7F07322C 05A10003 */ bgez $t5, .L7F07323C -/* 0A7D60 7F073230 000D7043 */ sra $t6, $t5, 1 -/* 0A7D64 7F073234 25A10001 */ addiu $at, $t5, 1 -/* 0A7D68 7F073238 00017043 */ sra $t6, $at, 1 -.L7F07323C: -/* 0A7D6C 7F07323C 024E7823 */ subu $t7, $s2, $t6 -/* 0A7D70 7F073240 01E3C021 */ addu $t8, $t7, $v1 -/* 0A7D74 7F073244 0303001A */ div $zero, $t8, $v1 -/* 0A7D78 7F073248 00002810 */ mfhi $a1 -/* 0A7D7C 7F07324C AFA0009C */ sw $zero, 0x9c($sp) -/* 0A7D80 7F073250 14600002 */ bnez $v1, .L7F07325C -/* 0A7D84 7F073254 00000000 */ nop -/* 0A7D88 7F073258 0007000D */ break 7 -.L7F07325C: -/* 0A7D8C 7F07325C 2401FFFF */ li $at, -1 -/* 0A7D90 7F073260 14610004 */ bne $v1, $at, .L7F073274 -/* 0A7D94 7F073264 3C018000 */ lui $at, 0x8000 -/* 0A7D98 7F073268 17010002 */ bne $t8, $at, .L7F073274 -/* 0A7D9C 7F07326C 00000000 */ nop -/* 0A7DA0 7F073270 0006000D */ break 6 -.L7F073274: -/* 0A7DA4 7F073274 1000003A */ b .L7F073360 -/* 0A7DA8 7F073278 8EB1000C */ lw $s1, 0xc($s5) -.L7F07327C: -/* 0A7DAC 7F07327C 28A1000A */ slti $at, $a1, 0xa -/* 0A7DB0 7F073280 1420002F */ bnez $at, .L7F073340 -/* 0A7DB4 7F073284 28A1000F */ slti $at, $a1, 0xf -/* 0A7DB8 7F073288 1020002D */ beqz $at, .L7F073340 -/* 0A7DBC 7F07328C 28A1000D */ slti $at, $a1, 0xd -/* 0A7DC0 7F073290 54200017 */ bnezl $at, .L7F0732F0 -/* 0A7DC4 7F073294 24ACFFF8 */ addiu $t4, $a1, -8 -/* 0A7DC8 7F073298 24190010 */ li $t9, 16 -/* 0A7DCC 7F07329C 03254023 */ subu $t0, $t9, $a1 -/* 0A7DD0 7F0732A0 05010003 */ bgez $t0, .L7F0732B0 -/* 0A7DD4 7F0732A4 00084843 */ sra $t1, $t0, 1 -/* 0A7DD8 7F0732A8 25010001 */ addiu $at, $t0, 1 -/* 0A7DDC 7F0732AC 00014843 */ sra $t1, $at, 1 -.L7F0732B0: -/* 0A7DE0 7F0732B0 02495023 */ subu $t2, $s2, $t1 -/* 0A7DE4 7F0732B4 01435821 */ addu $t3, $t2, $v1 -/* 0A7DE8 7F0732B8 0163001A */ div $zero, $t3, $v1 -/* 0A7DEC 7F0732BC 00002810 */ mfhi $a1 -/* 0A7DF0 7F0732C0 14600002 */ bnez $v1, .L7F0732CC -/* 0A7DF4 7F0732C4 00000000 */ nop -/* 0A7DF8 7F0732C8 0007000D */ break 7 -.L7F0732CC: -/* 0A7DFC 7F0732CC 2401FFFF */ li $at, -1 -/* 0A7E00 7F0732D0 14610004 */ bne $v1, $at, .L7F0732E4 -/* 0A7E04 7F0732D4 3C018000 */ lui $at, 0x8000 -/* 0A7E08 7F0732D8 15610002 */ bne $t3, $at, .L7F0732E4 -/* 0A7E0C 7F0732DC 00000000 */ nop -/* 0A7E10 7F0732E0 0006000D */ break 6 -.L7F0732E4: -/* 0A7E14 7F0732E4 1000001E */ b .L7F073360 -/* 0A7E18 7F0732E8 8EB1000C */ lw $s1, 0xc($s5) -/* 0A7E1C 7F0732EC 24ACFFF8 */ addiu $t4, $a1, -8 -.L7F0732F0: -/* 0A7E20 7F0732F0 05810003 */ bgez $t4, .L7F073300 -/* 0A7E24 7F0732F4 000C6843 */ sra $t5, $t4, 1 -/* 0A7E28 7F0732F8 25810001 */ addiu $at, $t4, 1 -/* 0A7E2C 7F0732FC 00016843 */ sra $t5, $at, 1 -.L7F073300: -/* 0A7E30 7F073300 01B27021 */ addu $t6, $t5, $s2 -/* 0A7E34 7F073304 01C37821 */ addu $t7, $t6, $v1 -/* 0A7E38 7F073308 01E3001A */ div $zero, $t7, $v1 -/* 0A7E3C 7F07330C 00002810 */ mfhi $a1 -/* 0A7E40 7F073310 AFA0009C */ sw $zero, 0x9c($sp) -/* 0A7E44 7F073314 14600002 */ bnez $v1, .L7F073320 -/* 0A7E48 7F073318 00000000 */ nop -/* 0A7E4C 7F07331C 0007000D */ break 7 -.L7F073320: -/* 0A7E50 7F073320 2401FFFF */ li $at, -1 -/* 0A7E54 7F073324 14610004 */ bne $v1, $at, .L7F073338 -/* 0A7E58 7F073328 3C018000 */ lui $at, 0x8000 -/* 0A7E5C 7F07332C 15E10002 */ bne $t7, $at, .L7F073338 -/* 0A7E60 7F073330 00000000 */ nop -/* 0A7E64 7F073334 0006000D */ break 6 -.L7F073338: -/* 0A7E68 7F073338 10000009 */ b .L7F073360 -/* 0A7E6C 7F07333C 8EB1000C */ lw $s1, 0xc($s5) -.L7F073340: -/* 0A7E70 7F073340 28A10007 */ slti $at, $a1, 7 -/* 0A7E74 7F073344 14200004 */ bnez $at, .L7F073358 -/* 0A7E78 7F073348 28A1000A */ slti $at, $a1, 0xa -/* 0A7E7C 7F07334C 50200003 */ beql $at, $zero, .L7F07335C -/* 0A7E80 7F073350 02402825 */ move $a1, $s2 -/* 0A7E84 7F073354 AFA0009C */ sw $zero, 0x9c($sp) -.L7F073358: -/* 0A7E88 7F073358 02402825 */ move $a1, $s2 -.L7F07335C: -/* 0A7E8C 7F07335C 8EB1000C */ lw $s1, 0xc($s5) -.L7F073360: -/* 0A7E90 7F073360 8FD40004 */ lw $s4, 4($fp) -/* 0A7E94 7F073364 3C19BC00 */ lui $t9, (0xBC001406 >> 16) # lui $t9, 0xbc00 -/* 0A7E98 7F073368 26380008 */ addiu $t8, $s1, 8 -/* 0A7E9C 7F07336C AEB8000C */ sw $t8, 0xc($s5) -/* 0A7EA0 7F073370 37391406 */ ori $t9, (0xBC001406 & 0xFFFF) # ori $t9, $t9, 0x1406 -/* 0A7EA4 7F073374 AE390000 */ sw $t9, ($s1) -/* 0A7EA8 7F073378 8EC401AC */ lw $a0, 0x1ac($s6) -/* 0A7EAC 7F07337C 0C003A2C */ jal osVirtualToPhysical -/* 0A7EB0 7F073380 AFA500B8 */ sw $a1, 0xb8($sp) -/* 0A7EB4 7F073384 AE220004 */ sw $v0, 4($s1) -/* 0A7EB8 7F073388 93D70000 */ lbu $s7, ($fp) -/* 0A7EBC 7F07338C 241E000A */ li $fp, 10 -/* 0A7EC0 7F073390 24130003 */ li $s3, 3 -/* 0A7EC4 7F073394 1AE00109 */ blez $s7, .L7F0737BC -/* 0A7EC8 7F073398 24120002 */ li $s2, 2 -/* 0A7ECC 7F07339C 24110001 */ li $s1, 1 -/* 0A7ED0 7F0733A0 92840000 */ lbu $a0, ($s4) -.L7F0733A4: -/* 0A7ED4 7F0733A4 3C028003 */ lui $v0, %hi(vtxallocator) -/* 0A7ED8 7F0733A8 8FB000B8 */ lw $s0, 0xb8($sp) -/* 0A7EDC 7F0733AC 10910007 */ beq $a0, $s1, .L7F0733CC -/* 0A7EE0 7F0733B0 00000000 */ nop -/* 0A7EE4 7F0733B4 509200D5 */ beql $a0, $s2, .L7F07370C -/* 0A7EE8 7F0733B8 92820001 */ lbu $v0, 1($s4) -/* 0A7EEC 7F0733BC 509300E6 */ beql $a0, $s3, .L7F073758 -/* 0A7EF0 7F0733C0 8EB0000C */ lw $s0, 0xc($s5) -/* 0A7EF4 7F0733C4 100000FB */ b .L7F0737B4 -/* 0A7EF8 7F0733C8 26F7FFFF */ addiu $s7, $s7, -1 -.L7F0733CC: -/* 0A7EFC 7F0733CC 8C42608C */ lw $v0, %lo(vtxallocator)($v0) -/* 0A7F00 7F0733D0 001040C0 */ sll $t0, $s0, 3 -/* 0A7F04 7F0733D4 01008025 */ move $s0, $t0 -/* 0A7F08 7F0733D8 14400007 */ bnez $v0, .L7F0733F8 -/* 0A7F0C 7F0733DC 3C048005 */ lui $a0, %hi(aDotubeNoVtxAllocator) -/* 0A7F10 7F0733E0 0C0033D1 */ jal osSyncPrintf -/* 0A7F14 7F0733E4 24844A58 */ addiu $a0, %lo(aDotubeNoVtxAllocator) # addiu $a0, $a0, 0x4a58 -/* 0A7F18 7F0733E8 0FC1B11B */ jal return_null -/* 0A7F1C 7F0733EC 00000000 */ nop -/* 0A7F20 7F0733F0 3C028003 */ lui $v0, %hi(vtxallocator) -/* 0A7F24 7F0733F4 8C42608C */ lw $v0, %lo(vtxallocator)($v0) -.L7F0733F8: -/* 0A7F28 7F0733F8 0040F809 */ jalr $v0 -/* 0A7F2C 7F0733FC 02402025 */ move $a0, $s2 -/* 0A7F30 7F073400 AFA20074 */ sw $v0, 0x74($sp) -/* 0A7F34 7F073404 968A0002 */ lhu $t2, 2($s4) -/* 0A7F38 7F073408 8EC90010 */ lw $t1, 0x10($s6) -/* 0A7F3C 7F07340C 24470010 */ addiu $a3, $v0, 0x10 -/* 0A7F40 7F073410 000A5900 */ sll $t3, $t2, 4 -/* 0A7F44 7F073414 012B6021 */ addu $t4, $t1, $t3 -/* 0A7F48 7F073418 8D810000 */ lw $at, ($t4) -/* 0A7F4C 7F07341C AC410000 */ sw $at, ($v0) -/* 0A7F50 7F073420 8D8F0004 */ lw $t7, 4($t4) -/* 0A7F54 7F073424 AC4F0004 */ sw $t7, 4($v0) -/* 0A7F58 7F073428 8D810008 */ lw $at, 8($t4) -/* 0A7F5C 7F07342C AC410008 */ sw $at, 8($v0) -/* 0A7F60 7F073430 8D8F000C */ lw $t7, 0xc($t4) -/* 0A7F64 7F073434 AC4F000C */ sw $t7, 0xc($v0) -/* 0A7F68 7F073438 96990002 */ lhu $t9, 2($s4) -/* 0A7F6C 7F07343C 8ED80010 */ lw $t8, 0x10($s6) -/* 0A7F70 7F073440 00194100 */ sll $t0, $t9, 4 -/* 0A7F74 7F073444 03085021 */ addu $t2, $t8, $t0 -/* 0A7F78 7F073448 8D410010 */ lw $at, 0x10($t2) -/* 0A7F7C 7F07344C ACE10000 */ sw $at, ($a3) -/* 0A7F80 7F073450 8D4E0014 */ lw $t6, 0x14($t2) -/* 0A7F84 7F073454 ACEE0004 */ sw $t6, 4($a3) -/* 0A7F88 7F073458 8D410018 */ lw $at, 0x18($t2) -/* 0A7F8C 7F07345C ACE10008 */ sw $at, 8($a3) -/* 0A7F90 7F073460 8D4E001C */ lw $t6, 0x1c($t2) -/* 0A7F94 7F073464 ACEE000C */ sw $t6, 0xc($a3) -/* 0A7F98 7F073468 8ECD0004 */ lw $t5, 4($s6) -/* 0A7F9C 7F07346C 8FAC00C0 */ lw $t4, 0xc0($sp) -/* 0A7FA0 7F073470 8FAF00C0 */ lw $t7, 0xc0($sp) -/* 0A7FA4 7F073474 51A0002E */ beql $t5, $zero, .L7F073530 -/* 0A7FA8 7F073478 8D99000C */ lw $t9, 0xc($t4) -/* 0A7FAC 7F07347C 8ECC000C */ lw $t4, 0xc($s6) -/* 0A7FB0 7F073480 01901821 */ addu $v1, $t4, $s0 -/* 0A7FB4 7F073484 90660000 */ lbu $a2, ($v1) -/* 0A7FB8 7F073488 8C650004 */ lw $a1, 4($v1) -/* 0A7FBC 7F07348C 58C00063 */ blezl $a2, .L7F07361C -/* 0A7FC0 7F073490 8EB0000C */ lw $s0, 0xc($s5) -/* 0A7FC4 7F073494 90A30000 */ lbu $v1, ($a1) -.L7F073498: -/* 0A7FC8 7F073498 24C6FFFF */ addiu $a2, $a2, -1 -/* 0A7FCC 7F07349C 16230012 */ bne $s1, $v1, .L7F0734E8 -/* 0A7FD0 7F0734A0 00000000 */ nop -/* 0A7FD4 7F0734A4 94B90002 */ lhu $t9, 2($a1) -/* 0A7FD8 7F0734A8 8ECF0010 */ lw $t7, 0x10($s6) -/* 0A7FDC 7F0734AC 0019C100 */ sll $t8, $t9, 4 -/* 0A7FE0 7F0734B0 01F81821 */ addu $v1, $t7, $t8 -/* 0A7FE4 7F0734B4 84680000 */ lh $t0, ($v1) -/* 0A7FE8 7F0734B8 A4480000 */ sh $t0, ($v0) -/* 0A7FEC 7F0734BC 846B0002 */ lh $t3, 2($v1) -/* 0A7FF0 7F0734C0 A44B0002 */ sh $t3, 2($v0) -/* 0A7FF4 7F0734C4 84690004 */ lh $t1, 4($v1) -/* 0A7FF8 7F0734C8 A4490004 */ sh $t1, 4($v0) -/* 0A7FFC 7F0734CC 846A0010 */ lh $t2, 0x10($v1) -/* 0A8000 7F0734D0 A4EA0000 */ sh $t2, ($a3) -/* 0A8004 7F0734D4 846E0012 */ lh $t6, 0x12($v1) -/* 0A8008 7F0734D8 A4EE0002 */ sh $t6, 2($a3) -/* 0A800C 7F0734DC 846D0014 */ lh $t5, 0x14($v1) -/* 0A8010 7F0734E0 1000004D */ b .L7F073618 -/* 0A8014 7F0734E4 A4ED0004 */ sh $t5, 4($a3) -.L7F0734E8: -/* 0A8018 7F0734E8 10710007 */ beq $v1, $s1, .L7F073508 -/* 0A801C 7F0734EC 00000000 */ nop -/* 0A8020 7F0734F0 10720007 */ beq $v1, $s2, .L7F073510 -/* 0A8024 7F0734F4 00000000 */ nop -/* 0A8028 7F0734F8 50730008 */ beql $v1, $s3, .L7F07351C -/* 0A802C 7F0734FC 24A50004 */ addiu $a1, $a1, 4 -/* 0A8030 7F073500 10000006 */ b .L7F07351C -/* 0A8034 7F073504 00000000 */ nop -.L7F073508: -/* 0A8038 7F073508 10000004 */ b .L7F07351C -/* 0A803C 7F07350C 24A50004 */ addiu $a1, $a1, 4 -.L7F073510: -/* 0A8040 7F073510 10000002 */ b .L7F07351C -/* 0A8044 7F073514 24A50002 */ addiu $a1, $a1, 2 -/* 0A8048 7F073518 24A50004 */ addiu $a1, $a1, 4 -.L7F07351C: -/* 0A804C 7F07351C 5CC0FFDE */ bgtzl $a2, .L7F073498 -/* 0A8050 7F073520 90A30000 */ lbu $v1, ($a1) -/* 0A8054 7F073524 1000003D */ b .L7F07361C -/* 0A8058 7F073528 8EB0000C */ lw $s0, 0xc($s5) -/* 0A805C 7F07352C 8D99000C */ lw $t9, 0xc($t4) -.L7F073530: -/* 0A8060 7F073530 03301821 */ addu $v1, $t9, $s0 -/* 0A8064 7F073534 90660000 */ lbu $a2, ($v1) -/* 0A8068 7F073538 8C650004 */ lw $a1, 4($v1) -/* 0A806C 7F07353C 58C00037 */ blezl $a2, .L7F07361C -/* 0A8070 7F073540 8EB0000C */ lw $s0, 0xc($s5) -/* 0A8074 7F073544 90A30000 */ lbu $v1, ($a1) -.L7F073548: -/* 0A8078 7F073548 24C6FFFF */ addiu $a2, $a2, -1 -/* 0A807C 7F07354C 16230023 */ bne $s1, $v1, .L7F0735DC -/* 0A8080 7F073550 00000000 */ nop -/* 0A8084 7F073554 94A80002 */ lhu $t0, 2($a1) -/* 0A8088 7F073558 8FA9009C */ lw $t1, 0x9c($sp) -/* 0A808C 7F07355C 8DF80010 */ lw $t8, 0x10($t7) -/* 0A8090 7F073560 00085900 */ sll $t3, $t0, 4 -/* 0A8094 7F073564 1120000F */ beqz $t1, .L7F0735A4 -/* 0A8098 7F073568 030B1821 */ addu $v1, $t8, $t3 -/* 0A809C 7F07356C 24640010 */ addiu $a0, $v1, 0x10 -/* 0A80A0 7F073570 848A0000 */ lh $t2, ($a0) -/* 0A80A4 7F073574 A44A0000 */ sh $t2, ($v0) -/* 0A80A8 7F073578 848E0002 */ lh $t6, 2($a0) -/* 0A80AC 7F07357C A44E0002 */ sh $t6, 2($v0) -/* 0A80B0 7F073580 848D0004 */ lh $t5, 4($a0) -/* 0A80B4 7F073584 A44D0004 */ sh $t5, 4($v0) -/* 0A80B8 7F073588 846C0000 */ lh $t4, ($v1) -/* 0A80BC 7F07358C A4EC0000 */ sh $t4, ($a3) -/* 0A80C0 7F073590 84790002 */ lh $t9, 2($v1) -/* 0A80C4 7F073594 A4F90002 */ sh $t9, 2($a3) -/* 0A80C8 7F073598 846F0004 */ lh $t7, 4($v1) -/* 0A80CC 7F07359C 1000001E */ b .L7F073618 -/* 0A80D0 7F0735A0 A4EF0004 */ sh $t7, 4($a3) -.L7F0735A4: -/* 0A80D4 7F0735A4 84680000 */ lh $t0, ($v1) -/* 0A80D8 7F0735A8 24640010 */ addiu $a0, $v1, 0x10 -/* 0A80DC 7F0735AC A4480000 */ sh $t0, ($v0) -/* 0A80E0 7F0735B0 84780002 */ lh $t8, 2($v1) -/* 0A80E4 7F0735B4 A4580002 */ sh $t8, 2($v0) -/* 0A80E8 7F0735B8 846B0004 */ lh $t3, 4($v1) -/* 0A80EC 7F0735BC A44B0004 */ sh $t3, 4($v0) -/* 0A80F0 7F0735C0 84890000 */ lh $t1, ($a0) -/* 0A80F4 7F0735C4 A4E90000 */ sh $t1, ($a3) -/* 0A80F8 7F0735C8 848A0002 */ lh $t2, 2($a0) -/* 0A80FC 7F0735CC A4EA0002 */ sh $t2, 2($a3) -/* 0A8100 7F0735D0 848E0004 */ lh $t6, 4($a0) -/* 0A8104 7F0735D4 10000010 */ b .L7F073618 -/* 0A8108 7F0735D8 A4EE0004 */ sh $t6, 4($a3) -.L7F0735DC: -/* 0A810C 7F0735DC 10710007 */ beq $v1, $s1, .L7F0735FC -/* 0A8110 7F0735E0 00000000 */ nop -/* 0A8114 7F0735E4 10720007 */ beq $v1, $s2, .L7F073604 -/* 0A8118 7F0735E8 00000000 */ nop -/* 0A811C 7F0735EC 50730008 */ beql $v1, $s3, .L7F073610 -/* 0A8120 7F0735F0 24A50004 */ addiu $a1, $a1, 4 -/* 0A8124 7F0735F4 10000006 */ b .L7F073610 -/* 0A8128 7F0735F8 00000000 */ nop -.L7F0735FC: -/* 0A812C 7F0735FC 10000004 */ b .L7F073610 -/* 0A8130 7F073600 24A50004 */ addiu $a1, $a1, 4 -.L7F073604: -/* 0A8134 7F073604 10000002 */ b .L7F073610 -/* 0A8138 7F073608 24A50002 */ addiu $a1, $a1, 2 -/* 0A813C 7F07360C 24A50004 */ addiu $a1, $a1, 4 -.L7F073610: -/* 0A8140 7F073610 5CC0FFCD */ bgtzl $a2, .L7F073548 -/* 0A8144 7F073614 90A30000 */ lbu $v1, ($a1) -.L7F073618: -/* 0A8148 7F073618 8EB0000C */ lw $s0, 0xc($s5) -.L7F07361C: -/* 0A814C 7F07361C 3C0C0102 */ lui $t4, (0x01020040 >> 16) # lui $t4, 0x102 -/* 0A8150 7F073620 358C0040 */ ori $t4, (0x01020040 & 0xFFFF) # ori $t4, $t4, 0x40 -/* 0A8154 7F073624 260D0008 */ addiu $t5, $s0, 8 -/* 0A8158 7F073628 AEAD000C */ sw $t5, 0xc($s5) -/* 0A815C 7F07362C AE0C0000 */ sw $t4, ($s0) -/* 0A8160 7F073630 8FA40080 */ lw $a0, 0x80($sp) -/* 0A8164 7F073634 0C003A2C */ jal osVirtualToPhysical -/* 0A8168 7F073638 AFB0004C */ sw $s0, 0x4c($sp) -/* 0A816C 7F07363C 8FA3004C */ lw $v1, 0x4c($sp) -/* 0A8170 7F073640 3C0F0410 */ lui $t7, (0x04100020 >> 16) # lui $t7, 0x410 -/* 0A8174 7F073644 35EF0020 */ ori $t7, (0x04100020 & 0xFFFF) # ori $t7, $t7, 0x20 -/* 0A8178 7F073648 AC620004 */ sw $v0, 4($v1) -/* 0A817C 7F07364C 8EB0000C */ lw $s0, 0xc($s5) -/* 0A8180 7F073650 26190008 */ addiu $t9, $s0, 8 -/* 0A8184 7F073654 AEB9000C */ sw $t9, 0xc($s5) -/* 0A8188 7F073658 AE0F0000 */ sw $t7, ($s0) -/* 0A818C 7F07365C 8FA40074 */ lw $a0, 0x74($sp) -/* 0A8190 7F073660 0C003A2C */ jal osVirtualToPhysical -/* 0A8194 7F073664 AFB00048 */ sw $s0, 0x48($sp) -/* 0A8198 7F073668 8FA50048 */ lw $a1, 0x48($sp) -/* 0A819C 7F07366C 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 -/* 0A81A0 7F073670 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 -/* 0A81A4 7F073674 ACA20004 */ sw $v0, 4($a1) -/* 0A81A8 7F073678 8EB0000C */ lw $s0, 0xc($s5) -/* 0A81AC 7F07367C 26080008 */ addiu $t0, $s0, 8 -/* 0A81B0 7F073680 AEA8000C */ sw $t0, 0xc($s5) -/* 0A81B4 7F073684 AE180000 */ sw $t8, ($s0) -/* 0A81B8 7F073688 8FA40084 */ lw $a0, 0x84($sp) -/* 0A81BC 7F07368C 0C003A2C */ jal osVirtualToPhysical -/* 0A81C0 7F073690 AFB00044 */ sw $s0, 0x44($sp) -/* 0A81C4 7F073694 8FA60044 */ lw $a2, 0x44($sp) -/* 0A81C8 7F073698 3C010400 */ lui $at, 0x400 -/* 0A81CC 7F07369C ACC20004 */ sw $v0, 4($a2) -/* 0A81D0 7F0736A0 8EB0000C */ lw $s0, 0xc($s5) -/* 0A81D4 7F0736A4 260B0008 */ addiu $t3, $s0, 8 -/* 0A81D8 7F0736A8 AEAB000C */ sw $t3, 0xc($s5) -/* 0A81DC 7F0736AC 92830001 */ lbu $v1, 1($s4) -/* 0A81E0 7F0736B0 2463FFFE */ addiu $v1, $v1, -2 -/* 0A81E4 7F0736B4 2469FFFF */ addiu $t1, $v1, -1 -/* 0A81E8 7F0736B8 00095100 */ sll $t2, $t1, 4 -/* 0A81EC 7F0736BC 354E0002 */ ori $t6, $t2, 2 -/* 0A81F0 7F0736C0 31CD00FF */ andi $t5, $t6, 0xff -/* 0A81F4 7F0736C4 000D6400 */ sll $t4, $t5, 0x10 -/* 0A81F8 7F0736C8 00037900 */ sll $t7, $v1, 4 -/* 0A81FC 7F0736CC 31E8FFFF */ andi $t0, $t7, 0xffff -/* 0A8200 7F0736D0 0181C825 */ or $t9, $t4, $at -/* 0A8204 7F0736D4 0328C025 */ or $t8, $t9, $t0 -/* 0A8208 7F0736D8 AE180000 */ sw $t8, ($s0) -/* 0A820C 7F0736DC 96890002 */ lhu $t1, 2($s4) -/* 0A8210 7F0736E0 8ECB0010 */ lw $t3, 0x10($s6) -/* 0A8214 7F0736E4 AFB00040 */ sw $s0, 0x40($sp) -/* 0A8218 7F0736E8 00095100 */ sll $t2, $t1, 4 -/* 0A821C 7F0736EC 016A2021 */ addu $a0, $t3, $t2 -/* 0A8220 7F0736F0 0C003A2C */ jal osVirtualToPhysical -/* 0A8224 7F0736F4 24840020 */ addiu $a0, $a0, 0x20 -/* 0A8228 7F0736F8 8FA50040 */ lw $a1, 0x40($sp) -/* 0A822C 7F0736FC 26940004 */ addiu $s4, $s4, 4 -/* 0A8230 7F073700 1000002B */ b .L7F0737B0 -/* 0A8234 7F073704 ACA20004 */ sw $v0, 4($a1) -/* 0A8238 7F073708 92820001 */ lbu $v0, 1($s4) -.L7F07370C: -/* 0A823C 7F07370C 240100FF */ li $at, 255 -/* 0A8240 7F073710 02A02025 */ move $a0, $s5 -/* 0A8244 7F073714 1041000B */ beq $v0, $at, .L7F073744 -/* 0A8248 7F073718 00002825 */ move $a1, $zero -/* 0A824C 7F07371C 00026880 */ sll $t5, $v0, 2 -/* 0A8250 7F073720 8ECE0014 */ lw $t6, 0x14($s6) -/* 0A8254 7F073724 01A26823 */ subu $t5, $t5, $v0 -/* 0A8258 7F073728 000D6880 */ sll $t5, $t5, 2 -/* 0A825C 7F07372C 02A02025 */ move $a0, $s5 -/* 0A8260 7F073730 02203025 */ move $a2, $s1 -/* 0A8264 7F073734 0FC1CC0E */ jal sub_GAME_7F073038 -/* 0A8268 7F073738 01CD2821 */ addu $a1, $t6, $t5 -/* 0A826C 7F07373C 1000001C */ b .L7F0737B0 -/* 0A8270 7F073740 26940002 */ addiu $s4, $s4, 2 -.L7F073744: -/* 0A8274 7F073744 0FC1CC0E */ jal sub_GAME_7F073038 -/* 0A8278 7F073748 02203025 */ move $a2, $s1 -/* 0A827C 7F07374C 10000018 */ b .L7F0737B0 -/* 0A8280 7F073750 26940002 */ addiu $s4, $s4, 2 -/* 0A8284 7F073754 8EB0000C */ lw $s0, 0xc($s5) -.L7F073758: -/* 0A8288 7F073758 3C0FBF00 */ lui $t7, 0xbf00 -/* 0A828C 7F07375C 26940004 */ addiu $s4, $s4, 4 -/* 0A8290 7F073760 260C0008 */ addiu $t4, $s0, 8 -/* 0A8294 7F073764 AEAC000C */ sw $t4, 0xc($s5) -/* 0A8298 7F073768 AE0F0000 */ sw $t7, ($s0) -/* 0A829C 7F07376C 9299FFFD */ lbu $t9, -3($s4) -/* 0A82A0 7F073770 928BFFFE */ lbu $t3, -2($s4) -/* 0A82A4 7F073774 928FFFFF */ lbu $t7, -1($s4) -/* 0A82A8 7F073778 033E0019 */ multu $t9, $fp -/* 0A82AC 7F07377C 00004012 */ mflo $t0 -/* 0A82B0 7F073780 311800FF */ andi $t8, $t0, 0xff -/* 0A82B4 7F073784 00184C00 */ sll $t1, $t8, 0x10 -/* 0A82B8 7F073788 017E0019 */ multu $t3, $fp -/* 0A82BC 7F07378C 00005012 */ mflo $t2 -/* 0A82C0 7F073790 314E00FF */ andi $t6, $t2, 0xff -/* 0A82C4 7F073794 000E6A00 */ sll $t5, $t6, 8 -/* 0A82C8 7F073798 01FE0019 */ multu $t7, $fp -/* 0A82CC 7F07379C 012D6025 */ or $t4, $t1, $t5 -/* 0A82D0 7F0737A0 0000C812 */ mflo $t9 -/* 0A82D4 7F0737A4 332800FF */ andi $t0, $t9, 0xff -/* 0A82D8 7F0737A8 0188C025 */ or $t8, $t4, $t0 -/* 0A82DC 7F0737AC AE180004 */ sw $t8, 4($s0) -.L7F0737B0: -/* 0A82E0 7F0737B0 26F7FFFF */ addiu $s7, $s7, -1 -.L7F0737B4: -/* 0A82E4 7F0737B4 5EE0FEFB */ bgtzl $s7, .L7F0733A4 -/* 0A82E8 7F0737B8 92840000 */ lbu $a0, ($s4) -.L7F0737BC: -/* 0A82EC 7F0737BC 8FBF003C */ lw $ra, 0x3c($sp) -.L7F0737C0: -/* 0A82F0 7F0737C0 8FB00018 */ lw $s0, 0x18($sp) -/* 0A82F4 7F0737C4 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A82F8 7F0737C8 8FB20020 */ lw $s2, 0x20($sp) -/* 0A82FC 7F0737CC 8FB30024 */ lw $s3, 0x24($sp) -/* 0A8300 7F0737D0 8FB40028 */ lw $s4, 0x28($sp) -/* 0A8304 7F0737D4 8FB5002C */ lw $s5, 0x2c($sp) -/* 0A8308 7F0737D8 8FB60030 */ lw $s6, 0x30($sp) -/* 0A830C 7F0737DC 8FB70034 */ lw $s7, 0x34($sp) -/* 0A8310 7F0737E0 8FBE0038 */ lw $fp, 0x38($sp) -/* 0A8314 7F0737E4 03E00008 */ jr $ra -/* 0A8318 7F0737E8 27BD00D0 */ addiu $sp, $sp, 0xd0 -) -#endif -#ifdef VERSION_EU -GLOBAL_ASM( -.text -glabel dotube -/* 0A5BD0 7F0731E0 27BDFF30 */ addiu $sp, $sp, -0xd0 -/* 0A5BD4 7F0731E4 AFB5002C */ sw $s5, 0x2c($sp) -/* 0A5BD8 7F0731E8 0080A825 */ move $s5, $a0 -/* 0A5BDC 7F0731EC AFB30024 */ sw $s3, 0x24($sp) -/* 0A5BE0 7F0731F0 00A09825 */ move $s3, $a1 -/* 0A5BE4 7F0731F4 AFBF003C */ sw $ra, 0x3c($sp) -/* 0A5BE8 7F0731F8 AFBE0038 */ sw $fp, 0x38($sp) -/* 0A5BEC 7F0731FC AFB70034 */ sw $s7, 0x34($sp) -/* 0A5BF0 7F073200 AFB60030 */ sw $s6, 0x30($sp) -/* 0A5BF4 7F073204 AFB40028 */ sw $s4, 0x28($sp) -/* 0A5BF8 7F073208 AFB20020 */ sw $s2, 0x20($sp) -/* 0A5BFC 7F07320C AFB1001C */ sw $s1, 0x1c($sp) -/* 0A5C00 7F073210 AFB00018 */ sw $s0, 0x18($sp) -/* 0A5C04 7F073214 00A02025 */ move $a0, $a1 -/* 0A5C08 7F073218 00C08825 */ move $s1, $a2 -/* 0A5C0C 7F07321C 8CD60004 */ lw $s6, 4($a2) -/* 0A5C10 7F073220 0FC1B3A3 */ jal extract_id_from_object_structure_microcode -/* 0A5C14 7F073224 00C02825 */ move $a1, $a2 -/* 0A5C18 7F073228 8EC30000 */ lw $v1, ($s6) -/* 0A5C1C 7F07322C 00409025 */ move $s2, $v0 -/* 0A5C20 7F073230 50600004 */ beql $v1, $zero, .L7F073244 -/* 0A5C24 7F073234 8EC50004 */ lw $a1, 4($s6) -/* 0A5C28 7F073238 10000002 */ b .L7F073244 -/* 0A5C2C 7F07323C 00602825 */ move $a1, $v1 -/* 0A5C30 7F073240 8EC50004 */ lw $a1, 4($s6) -.L7F073244: -/* 0A5C34 7F073244 8CAE0004 */ lw $t6, 4($a1) -/* 0A5C38 7F073248 02602025 */ move $a0, $s3 -/* 0A5C3C 7F07324C 0FC1B3A3 */ jal extract_id_from_object_structure_microcode -/* 0A5C40 7F073250 AFAE00C0 */ sw $t6, 0xc0($sp) -/* 0A5C44 7F073254 240F0001 */ li $t7, 1 -/* 0A5C48 7F073258 AFAF009C */ sw $t7, 0x9c($sp) -/* 0A5C4C 7F07325C 8EB80008 */ lw $t8, 8($s5) -/* 0A5C50 7F073260 00408025 */ move $s0, $v0 -/* 0A5C54 7F073264 02202025 */ move $a0, $s1 -/* 0A5C58 7F073268 33190001 */ andi $t9, $t8, 1 -/* 0A5C5C 7F07326C 532001A5 */ beql $t9, $zero, .L7F073904 -/* 0A5C60 7F073270 8FBF003C */ lw $ra, 0x3c($sp) -/* 0A5C64 7F073274 0FC1B32A */ jal sub_GAME_7F06C570 -/* 0A5C68 7F073278 00002825 */ move $a1, $zero -/* 0A5C6C 7F07327C 8E68000C */ lw $t0, 0xc($s3) -/* 0A5C70 7F073280 00024980 */ sll $t1, $v0, 6 -/* 0A5C74 7F073284 24050200 */ li $a1, 512 -/* 0A5C78 7F073288 01095021 */ addu $t2, $t0, $t1 -/* 0A5C7C 7F07328C AFAA0084 */ sw $t2, 0x84($sp) -/* 0A5C80 7F073290 8E430000 */ lw $v1, ($s2) -/* 0A5C84 7F073294 8ECD0000 */ lw $t5, ($s6) -/* 0A5C88 7F073298 8ECB000C */ lw $t3, 0xc($s6) -/* 0A5C8C 7F07329C 000360C0 */ sll $t4, $v1, 3 -/* 0A5C90 7F0732A0 8E060000 */ lw $a2, ($s0) -/* 0A5C94 7F0732A4 11A00008 */ beqz $t5, .L7F0732C8 -/* 0A5C98 7F0732A8 016CB821 */ addu $s7, $t3, $t4 -/* 0A5C9C 7F0732AC 00C09025 */ move $s2, $a2 -/* 0A5CA0 7F0732B0 00608025 */ move $s0, $v1 -/* 0A5CA4 7F0732B4 02202025 */ move $a0, $s1 -/* 0A5CA8 7F0732B8 0FC1B32A */ jal sub_GAME_7F06C570 -/* 0A5CAC 7F0732BC 24050200 */ li $a1, 512 -/* 0A5CB0 7F0732C0 10000006 */ b .L7F0732DC -/* 0A5CB4 7F0732C4 8E6E000C */ lw $t6, 0xc($s3) -.L7F0732C8: -/* 0A5CB8 7F0732C8 00609025 */ move $s2, $v1 -/* 0A5CBC 7F0732CC 00C08025 */ move $s0, $a2 -/* 0A5CC0 7F0732D0 0FC1B32A */ jal sub_GAME_7F06C570 -/* 0A5CC4 7F0732D4 8EC40004 */ lw $a0, 4($s6) -/* 0A5CC8 7F0732D8 8E6E000C */ lw $t6, 0xc($s3) -.L7F0732DC: -/* 0A5CCC 7F0732DC 00027980 */ sll $t7, $v0, 6 -/* 0A5CD0 7F0732E0 0212C823 */ subu $t9, $s0, $s2 -/* 0A5CD4 7F0732E4 01CFC021 */ addu $t8, $t6, $t7 -/* 0A5CD8 7F0732E8 AFB80080 */ sw $t8, 0x80($sp) -/* 0A5CDC 7F0732EC 8EC30008 */ lw $v1, 8($s6) -/* 0A5CE0 7F0732F0 03234021 */ addu $t0, $t9, $v1 -/* 0A5CE4 7F0732F4 0103001A */ div $zero, $t0, $v1 -/* 0A5CE8 7F0732F8 14600002 */ bnez $v1, .L7F073304 -/* 0A5CEC 7F0732FC 00000000 */ nop -/* 0A5CF0 7F073300 0007000D */ break 7 -.L7F073304: -/* 0A5CF4 7F073304 2401FFFF */ li $at, -1 -/* 0A5CF8 7F073308 14610004 */ bne $v1, $at, .L7F07331C -/* 0A5CFC 7F07330C 3C018000 */ lui $at, 0x8000 -/* 0A5D00 7F073310 15010002 */ bne $t0, $at, .L7F07331C -/* 0A5D04 7F073314 00000000 */ nop -/* 0A5D08 7F073318 0006000D */ break 6 -.L7F07331C: -/* 0A5D0C 7F07331C 00002810 */ mfhi $a1 -/* 0A5D10 7F073320 28A10002 */ slti $at, $a1, 2 -/* 0A5D14 7F073324 1420002E */ bnez $at, .L7F0733E0 -/* 0A5D18 7F073328 28A10007 */ slti $at, $a1, 7 -/* 0A5D1C 7F07332C 1020002C */ beqz $at, .L7F0733E0 -/* 0A5D20 7F073330 28A10004 */ slti $at, $a1, 4 -/* 0A5D24 7F073334 50200015 */ beql $at, $zero, .L7F07338C -/* 0A5D28 7F073338 240C0008 */ li $t4, 8 -/* 0A5D2C 7F07333C 04A10003 */ bgez $a1, .L7F07334C -/* 0A5D30 7F073340 00054843 */ sra $t1, $a1, 1 -/* 0A5D34 7F073344 24A10001 */ addiu $at, $a1, 1 -/* 0A5D38 7F073348 00014843 */ sra $t1, $at, 1 -.L7F07334C: -/* 0A5D3C 7F07334C 01325021 */ addu $t2, $t1, $s2 -/* 0A5D40 7F073350 01435821 */ addu $t3, $t2, $v1 -/* 0A5D44 7F073354 0163001A */ div $zero, $t3, $v1 -/* 0A5D48 7F073358 00002810 */ mfhi $a1 -/* 0A5D4C 7F07335C 14600002 */ bnez $v1, .L7F073368 -/* 0A5D50 7F073360 00000000 */ nop -/* 0A5D54 7F073364 0007000D */ break 7 -.L7F073368: -/* 0A5D58 7F073368 2401FFFF */ li $at, -1 -/* 0A5D5C 7F07336C 14610004 */ bne $v1, $at, .L7F073380 -/* 0A5D60 7F073370 3C018000 */ lui $at, 0x8000 -/* 0A5D64 7F073374 15610002 */ bne $t3, $at, .L7F073380 -/* 0A5D68 7F073378 00000000 */ nop -/* 0A5D6C 7F07337C 0006000D */ break 6 -.L7F073380: -/* 0A5D70 7F073380 10000050 */ b .L7F0734C4 -/* 0A5D74 7F073384 8EB1000C */ lw $s1, 0xc($s5) -/* 0A5D78 7F073388 240C0008 */ li $t4, 8 -.L7F07338C: -/* 0A5D7C 7F07338C 01856823 */ subu $t5, $t4, $a1 -/* 0A5D80 7F073390 05A10003 */ bgez $t5, .L7F0733A0 -/* 0A5D84 7F073394 000D7043 */ sra $t6, $t5, 1 -/* 0A5D88 7F073398 25A10001 */ addiu $at, $t5, 1 -/* 0A5D8C 7F07339C 00017043 */ sra $t6, $at, 1 -.L7F0733A0: -/* 0A5D90 7F0733A0 024E7823 */ subu $t7, $s2, $t6 -/* 0A5D94 7F0733A4 01E3C021 */ addu $t8, $t7, $v1 -/* 0A5D98 7F0733A8 0303001A */ div $zero, $t8, $v1 -/* 0A5D9C 7F0733AC 00002810 */ mfhi $a1 -/* 0A5DA0 7F0733B0 AFA0009C */ sw $zero, 0x9c($sp) -/* 0A5DA4 7F0733B4 14600002 */ bnez $v1, .L7F0733C0 -/* 0A5DA8 7F0733B8 00000000 */ nop -/* 0A5DAC 7F0733BC 0007000D */ break 7 -.L7F0733C0: -/* 0A5DB0 7F0733C0 2401FFFF */ li $at, -1 -/* 0A5DB4 7F0733C4 14610004 */ bne $v1, $at, .L7F0733D8 -/* 0A5DB8 7F0733C8 3C018000 */ lui $at, 0x8000 -/* 0A5DBC 7F0733CC 17010002 */ bne $t8, $at, .L7F0733D8 -/* 0A5DC0 7F0733D0 00000000 */ nop -/* 0A5DC4 7F0733D4 0006000D */ break 6 -.L7F0733D8: -/* 0A5DC8 7F0733D8 1000003A */ b .L7F0734C4 -/* 0A5DCC 7F0733DC 8EB1000C */ lw $s1, 0xc($s5) -.L7F0733E0: -/* 0A5DD0 7F0733E0 28A1000A */ slti $at, $a1, 0xa -/* 0A5DD4 7F0733E4 1420002F */ bnez $at, .L7F0734A4 -/* 0A5DD8 7F0733E8 28A1000F */ slti $at, $a1, 0xf -/* 0A5DDC 7F0733EC 1020002D */ beqz $at, .L7F0734A4 -/* 0A5DE0 7F0733F0 28A1000D */ slti $at, $a1, 0xd -/* 0A5DE4 7F0733F4 54200017 */ bnezl $at, .L7F073454 -/* 0A5DE8 7F0733F8 24ACFFF8 */ addiu $t4, $a1, -8 -/* 0A5DEC 7F0733FC 24190010 */ li $t9, 16 -/* 0A5DF0 7F073400 03254023 */ subu $t0, $t9, $a1 -/* 0A5DF4 7F073404 05010003 */ bgez $t0, .L7F073414 -/* 0A5DF8 7F073408 00084843 */ sra $t1, $t0, 1 -/* 0A5DFC 7F07340C 25010001 */ addiu $at, $t0, 1 -/* 0A5E00 7F073410 00014843 */ sra $t1, $at, 1 -.L7F073414: -/* 0A5E04 7F073414 02495023 */ subu $t2, $s2, $t1 -/* 0A5E08 7F073418 01435821 */ addu $t3, $t2, $v1 -/* 0A5E0C 7F07341C 0163001A */ div $zero, $t3, $v1 -/* 0A5E10 7F073420 00002810 */ mfhi $a1 -/* 0A5E14 7F073424 14600002 */ bnez $v1, .L7F073430 -/* 0A5E18 7F073428 00000000 */ nop -/* 0A5E1C 7F07342C 0007000D */ break 7 -.L7F073430: -/* 0A5E20 7F073430 2401FFFF */ li $at, -1 -/* 0A5E24 7F073434 14610004 */ bne $v1, $at, .L7F073448 -/* 0A5E28 7F073438 3C018000 */ lui $at, 0x8000 -/* 0A5E2C 7F07343C 15610002 */ bne $t3, $at, .L7F073448 -/* 0A5E30 7F073440 00000000 */ nop -/* 0A5E34 7F073444 0006000D */ break 6 -.L7F073448: -/* 0A5E38 7F073448 1000001E */ b .L7F0734C4 -/* 0A5E3C 7F07344C 8EB1000C */ lw $s1, 0xc($s5) -/* 0A5E40 7F073450 24ACFFF8 */ addiu $t4, $a1, -8 -.L7F073454: -/* 0A5E44 7F073454 05810003 */ bgez $t4, .L7F073464 -/* 0A5E48 7F073458 000C6843 */ sra $t5, $t4, 1 -/* 0A5E4C 7F07345C 25810001 */ addiu $at, $t4, 1 -/* 0A5E50 7F073460 00016843 */ sra $t5, $at, 1 -.L7F073464: -/* 0A5E54 7F073464 01B27021 */ addu $t6, $t5, $s2 -/* 0A5E58 7F073468 01C37821 */ addu $t7, $t6, $v1 -/* 0A5E5C 7F07346C 01E3001A */ div $zero, $t7, $v1 -/* 0A5E60 7F073470 00002810 */ mfhi $a1 -/* 0A5E64 7F073474 AFA0009C */ sw $zero, 0x9c($sp) -/* 0A5E68 7F073478 14600002 */ bnez $v1, .L7F073484 -/* 0A5E6C 7F07347C 00000000 */ nop -/* 0A5E70 7F073480 0007000D */ break 7 -.L7F073484: -/* 0A5E74 7F073484 2401FFFF */ li $at, -1 -/* 0A5E78 7F073488 14610004 */ bne $v1, $at, .L7F07349C -/* 0A5E7C 7F07348C 3C018000 */ lui $at, 0x8000 -/* 0A5E80 7F073490 15E10002 */ bne $t7, $at, .L7F07349C -/* 0A5E84 7F073494 00000000 */ nop -/* 0A5E88 7F073498 0006000D */ break 6 -.L7F07349C: -/* 0A5E8C 7F07349C 10000009 */ b .L7F0734C4 -/* 0A5E90 7F0734A0 8EB1000C */ lw $s1, 0xc($s5) -.L7F0734A4: -/* 0A5E94 7F0734A4 28A10007 */ slti $at, $a1, 7 -/* 0A5E98 7F0734A8 14200004 */ bnez $at, .L7F0734BC -/* 0A5E9C 7F0734AC 28A1000A */ slti $at, $a1, 0xa -/* 0A5EA0 7F0734B0 50200003 */ beql $at, $zero, .L7F0734C0 -/* 0A5EA4 7F0734B4 02402825 */ move $a1, $s2 -/* 0A5EA8 7F0734B8 AFA0009C */ sw $zero, 0x9c($sp) -.L7F0734BC: -/* 0A5EAC 7F0734BC 02402825 */ move $a1, $s2 -.L7F0734C0: -/* 0A5EB0 7F0734C0 8EB1000C */ lw $s1, 0xc($s5) -.L7F0734C4: -/* 0A5EB4 7F0734C4 8EF40004 */ lw $s4, 4($s7) -/* 0A5EB8 7F0734C8 3C19BC00 */ lui $t9, (0xBC001406 >> 16) # lui $t9, 0xbc00 -/* 0A5EBC 7F0734CC 26380008 */ addiu $t8, $s1, 8 -/* 0A5EC0 7F0734D0 AEB8000C */ sw $t8, 0xc($s5) -/* 0A5EC4 7F0734D4 37391406 */ ori $t9, (0xBC001406 & 0xFFFF) # ori $t9, $t9, 0x1406 -/* 0A5EC8 7F0734D8 AE390000 */ sw $t9, ($s1) -/* 0A5ECC 7F0734DC 8EC401AC */ lw $a0, 0x1ac($s6) -/* 0A5ED0 7F0734E0 0C003838 */ jal osVirtualToPhysical -/* 0A5ED4 7F0734E4 AFA500B8 */ sw $a1, 0xb8($sp) -/* 0A5ED8 7F0734E8 AE220004 */ sw $v0, 4($s1) -/* 0A5EDC 7F0734EC 92FE0000 */ lbu $fp, ($s7) -/* 0A5EE0 7F0734F0 2417000A */ li $s7, 10 -/* 0A5EE4 7F0734F4 24130003 */ li $s3, 3 -/* 0A5EE8 7F0734F8 1BC00101 */ blez $fp, .L7F073900 -/* 0A5EEC 7F0734FC 24120002 */ li $s2, 2 -/* 0A5EF0 7F073500 24110001 */ li $s1, 1 -/* 0A5EF4 7F073504 92840000 */ lbu $a0, ($s4) -.L7F073508: -/* 0A5EF8 7F073508 8FB000B8 */ lw $s0, 0xb8($sp) -/* 0A5EFC 7F07350C 3C198003 */ lui $t9, %hi(vtxallocator) # $t9, 0x8003 -/* 0A5F00 7F073510 10910007 */ beq $a0, $s1, .L7F073530 -/* 0A5F04 7F073514 00000000 */ nop -/* 0A5F08 7F073518 509200CD */ beql $a0, $s2, .L7F073850 -/* 0A5F0C 7F07351C 92820001 */ lbu $v0, 1($s4) -/* 0A5F10 7F073520 509300DE */ beql $a0, $s3, .L7F07389C -/* 0A5F14 7F073524 8EB0000C */ lw $s0, 0xc($s5) -/* 0A5F18 7F073528 100000F3 */ b .L7F0738F8 -/* 0A5F1C 7F07352C 27DEFFFF */ addiu $fp, $fp, -1 -.L7F073530: -/* 0A5F20 7F073530 8F3915DC */ lw $t9, %lo(vtxallocator)($t9) -/* 0A5F24 7F073534 001040C0 */ sll $t0, $s0, 3 -/* 0A5F28 7F073538 01008025 */ move $s0, $t0 -/* 0A5F2C 7F07353C 0320F809 */ jalr $t9 -/* 0A5F30 7F073540 02402025 */ move $a0, $s2 -/* 0A5F34 7F073544 AFA20074 */ sw $v0, 0x74($sp) -/* 0A5F38 7F073548 968A0002 */ lhu $t2, 2($s4) -/* 0A5F3C 7F07354C 8EC90010 */ lw $t1, 0x10($s6) -/* 0A5F40 7F073550 24470010 */ addiu $a3, $v0, 0x10 -/* 0A5F44 7F073554 000A5900 */ sll $t3, $t2, 4 -/* 0A5F48 7F073558 012B6021 */ addu $t4, $t1, $t3 -/* 0A5F4C 7F07355C 8D810000 */ lw $at, ($t4) -/* 0A5F50 7F073560 AC410000 */ sw $at, ($v0) -/* 0A5F54 7F073564 8D8F0004 */ lw $t7, 4($t4) -/* 0A5F58 7F073568 AC4F0004 */ sw $t7, 4($v0) -/* 0A5F5C 7F07356C 8D810008 */ lw $at, 8($t4) -/* 0A5F60 7F073570 AC410008 */ sw $at, 8($v0) -/* 0A5F64 7F073574 8D8F000C */ lw $t7, 0xc($t4) -/* 0A5F68 7F073578 AC4F000C */ sw $t7, 0xc($v0) -/* 0A5F6C 7F07357C 96880002 */ lhu $t0, 2($s4) -/* 0A5F70 7F073580 8ED80010 */ lw $t8, 0x10($s6) -/* 0A5F74 7F073584 0008C900 */ sll $t9, $t0, 4 -/* 0A5F78 7F073588 03195021 */ addu $t2, $t8, $t9 -/* 0A5F7C 7F07358C 8D410010 */ lw $at, 0x10($t2) -/* 0A5F80 7F073590 ACE10000 */ sw $at, ($a3) -/* 0A5F84 7F073594 8D4E0014 */ lw $t6, 0x14($t2) -/* 0A5F88 7F073598 ACEE0004 */ sw $t6, 4($a3) -/* 0A5F8C 7F07359C 8D410018 */ lw $at, 0x18($t2) -/* 0A5F90 7F0735A0 ACE10008 */ sw $at, 8($a3) -/* 0A5F94 7F0735A4 8D4E001C */ lw $t6, 0x1c($t2) -/* 0A5F98 7F0735A8 ACEE000C */ sw $t6, 0xc($a3) -/* 0A5F9C 7F0735AC 8ECD0004 */ lw $t5, 4($s6) -/* 0A5FA0 7F0735B0 8FAC00C0 */ lw $t4, 0xc0($sp) -/* 0A5FA4 7F0735B4 8FAF00C0 */ lw $t7, 0xc0($sp) -/* 0A5FA8 7F0735B8 51A0002E */ beql $t5, $zero, .L7F073674 -/* 0A5FAC 7F0735BC 8D88000C */ lw $t0, 0xc($t4) -/* 0A5FB0 7F0735C0 8ECC000C */ lw $t4, 0xc($s6) -/* 0A5FB4 7F0735C4 01901821 */ addu $v1, $t4, $s0 -/* 0A5FB8 7F0735C8 90660000 */ lbu $a2, ($v1) -/* 0A5FBC 7F0735CC 8C650004 */ lw $a1, 4($v1) -/* 0A5FC0 7F0735D0 58C00063 */ blezl $a2, .L7F073760 -/* 0A5FC4 7F0735D4 8EB0000C */ lw $s0, 0xc($s5) -/* 0A5FC8 7F0735D8 90A30000 */ lbu $v1, ($a1) -.L7F0735DC: -/* 0A5FCC 7F0735DC 24C6FFFF */ addiu $a2, $a2, -1 -/* 0A5FD0 7F0735E0 16230012 */ bne $s1, $v1, .L7F07362C -/* 0A5FD4 7F0735E4 00000000 */ nop -/* 0A5FD8 7F0735E8 94A80002 */ lhu $t0, 2($a1) -/* 0A5FDC 7F0735EC 8ECF0010 */ lw $t7, 0x10($s6) -/* 0A5FE0 7F0735F0 0008C100 */ sll $t8, $t0, 4 -/* 0A5FE4 7F0735F4 01F81821 */ addu $v1, $t7, $t8 -/* 0A5FE8 7F0735F8 84790000 */ lh $t9, ($v1) -/* 0A5FEC 7F0735FC A4590000 */ sh $t9, ($v0) -/* 0A5FF0 7F073600 846B0002 */ lh $t3, 2($v1) -/* 0A5FF4 7F073604 A44B0002 */ sh $t3, 2($v0) -/* 0A5FF8 7F073608 84690004 */ lh $t1, 4($v1) -/* 0A5FFC 7F07360C A4490004 */ sh $t1, 4($v0) -/* 0A6000 7F073610 846A0010 */ lh $t2, 0x10($v1) -/* 0A6004 7F073614 A4EA0000 */ sh $t2, ($a3) -/* 0A6008 7F073618 846E0012 */ lh $t6, 0x12($v1) -/* 0A600C 7F07361C A4EE0002 */ sh $t6, 2($a3) -/* 0A6010 7F073620 846D0014 */ lh $t5, 0x14($v1) -/* 0A6014 7F073624 1000004D */ b .L7F07375C -/* 0A6018 7F073628 A4ED0004 */ sh $t5, 4($a3) -.L7F07362C: -/* 0A601C 7F07362C 10710007 */ beq $v1, $s1, .L7F07364C -/* 0A6020 7F073630 00000000 */ nop -/* 0A6024 7F073634 10720007 */ beq $v1, $s2, .L7F073654 -/* 0A6028 7F073638 00000000 */ nop -/* 0A602C 7F07363C 50730008 */ beql $v1, $s3, .L7F073660 -/* 0A6030 7F073640 24A50004 */ addiu $a1, $a1, 4 -/* 0A6034 7F073644 10000006 */ b .L7F073660 -/* 0A6038 7F073648 00000000 */ nop -.L7F07364C: -/* 0A603C 7F07364C 10000004 */ b .L7F073660 -/* 0A6040 7F073650 24A50004 */ addiu $a1, $a1, 4 -.L7F073654: -/* 0A6044 7F073654 10000002 */ b .L7F073660 -/* 0A6048 7F073658 24A50002 */ addiu $a1, $a1, 2 -/* 0A604C 7F07365C 24A50004 */ addiu $a1, $a1, 4 -.L7F073660: -/* 0A6050 7F073660 5CC0FFDE */ bgtzl $a2, .L7F0735DC -/* 0A6054 7F073664 90A30000 */ lbu $v1, ($a1) -/* 0A6058 7F073668 1000003D */ b .L7F073760 -/* 0A605C 7F07366C 8EB0000C */ lw $s0, 0xc($s5) -/* 0A6060 7F073670 8D88000C */ lw $t0, 0xc($t4) -.L7F073674: -/* 0A6064 7F073674 01101821 */ addu $v1, $t0, $s0 -/* 0A6068 7F073678 90660000 */ lbu $a2, ($v1) -/* 0A606C 7F07367C 8C650004 */ lw $a1, 4($v1) -/* 0A6070 7F073680 58C00037 */ blezl $a2, .L7F073760 -/* 0A6074 7F073684 8EB0000C */ lw $s0, 0xc($s5) -/* 0A6078 7F073688 90A30000 */ lbu $v1, ($a1) -.L7F07368C: -/* 0A607C 7F07368C 24C6FFFF */ addiu $a2, $a2, -1 -/* 0A6080 7F073690 16230023 */ bne $s1, $v1, .L7F073720 -/* 0A6084 7F073694 00000000 */ nop -/* 0A6088 7F073698 94B90002 */ lhu $t9, 2($a1) -/* 0A608C 7F07369C 8FA9009C */ lw $t1, 0x9c($sp) -/* 0A6090 7F0736A0 8DF80010 */ lw $t8, 0x10($t7) -/* 0A6094 7F0736A4 00195900 */ sll $t3, $t9, 4 -/* 0A6098 7F0736A8 1120000F */ beqz $t1, .L7F0736E8 -/* 0A609C 7F0736AC 030B1821 */ addu $v1, $t8, $t3 -/* 0A60A0 7F0736B0 24640010 */ addiu $a0, $v1, 0x10 -/* 0A60A4 7F0736B4 848A0000 */ lh $t2, ($a0) -/* 0A60A8 7F0736B8 A44A0000 */ sh $t2, ($v0) -/* 0A60AC 7F0736BC 848E0002 */ lh $t6, 2($a0) -/* 0A60B0 7F0736C0 A44E0002 */ sh $t6, 2($v0) -/* 0A60B4 7F0736C4 848D0004 */ lh $t5, 4($a0) -/* 0A60B8 7F0736C8 A44D0004 */ sh $t5, 4($v0) -/* 0A60BC 7F0736CC 846C0000 */ lh $t4, ($v1) -/* 0A60C0 7F0736D0 A4EC0000 */ sh $t4, ($a3) -/* 0A60C4 7F0736D4 84680002 */ lh $t0, 2($v1) -/* 0A60C8 7F0736D8 A4E80002 */ sh $t0, 2($a3) -/* 0A60CC 7F0736DC 846F0004 */ lh $t7, 4($v1) -/* 0A60D0 7F0736E0 1000001E */ b .L7F07375C -/* 0A60D4 7F0736E4 A4EF0004 */ sh $t7, 4($a3) -.L7F0736E8: -/* 0A60D8 7F0736E8 84790000 */ lh $t9, ($v1) -/* 0A60DC 7F0736EC 24640010 */ addiu $a0, $v1, 0x10 -/* 0A60E0 7F0736F0 A4590000 */ sh $t9, ($v0) -/* 0A60E4 7F0736F4 84780002 */ lh $t8, 2($v1) -/* 0A60E8 7F0736F8 A4580002 */ sh $t8, 2($v0) -/* 0A60EC 7F0736FC 846B0004 */ lh $t3, 4($v1) -/* 0A60F0 7F073700 A44B0004 */ sh $t3, 4($v0) -/* 0A60F4 7F073704 84890000 */ lh $t1, ($a0) -/* 0A60F8 7F073708 A4E90000 */ sh $t1, ($a3) -/* 0A60FC 7F07370C 848A0002 */ lh $t2, 2($a0) -/* 0A6100 7F073710 A4EA0002 */ sh $t2, 2($a3) -/* 0A6104 7F073714 848E0004 */ lh $t6, 4($a0) -/* 0A6108 7F073718 10000010 */ b .L7F07375C -/* 0A610C 7F07371C A4EE0004 */ sh $t6, 4($a3) -.L7F073720: -/* 0A6110 7F073720 10710007 */ beq $v1, $s1, .L7F073740 -/* 0A6114 7F073724 00000000 */ nop -/* 0A6118 7F073728 10720007 */ beq $v1, $s2, .L7F073748 -/* 0A611C 7F07372C 00000000 */ nop -/* 0A6120 7F073730 50730008 */ beql $v1, $s3, .L7F073754 -/* 0A6124 7F073734 24A50004 */ addiu $a1, $a1, 4 -/* 0A6128 7F073738 10000006 */ b .L7F073754 -/* 0A612C 7F07373C 00000000 */ nop -.L7F073740: -/* 0A6130 7F073740 10000004 */ b .L7F073754 -/* 0A6134 7F073744 24A50004 */ addiu $a1, $a1, 4 -.L7F073748: -/* 0A6138 7F073748 10000002 */ b .L7F073754 -/* 0A613C 7F07374C 24A50002 */ addiu $a1, $a1, 2 -/* 0A6140 7F073750 24A50004 */ addiu $a1, $a1, 4 -.L7F073754: -/* 0A6144 7F073754 5CC0FFCD */ bgtzl $a2, .L7F07368C -/* 0A6148 7F073758 90A30000 */ lbu $v1, ($a1) -.L7F07375C: -/* 0A614C 7F07375C 8EB0000C */ lw $s0, 0xc($s5) -.L7F073760: -/* 0A6150 7F073760 3C0C0102 */ lui $t4, (0x01020040 >> 16) # lui $t4, 0x102 -/* 0A6154 7F073764 358C0040 */ ori $t4, (0x01020040 & 0xFFFF) # ori $t4, $t4, 0x40 -/* 0A6158 7F073768 260D0008 */ addiu $t5, $s0, 8 -/* 0A615C 7F07376C AEAD000C */ sw $t5, 0xc($s5) -/* 0A6160 7F073770 AE0C0000 */ sw $t4, ($s0) -/* 0A6164 7F073774 8FA40080 */ lw $a0, 0x80($sp) -/* 0A6168 7F073778 0C003838 */ jal osVirtualToPhysical -/* 0A616C 7F07377C AFB0004C */ sw $s0, 0x4c($sp) -/* 0A6170 7F073780 8FA3004C */ lw $v1, 0x4c($sp) -/* 0A6174 7F073784 3C0F0410 */ lui $t7, (0x04100020 >> 16) # lui $t7, 0x410 -/* 0A6178 7F073788 35EF0020 */ ori $t7, (0x04100020 & 0xFFFF) # ori $t7, $t7, 0x20 -/* 0A617C 7F07378C AC620004 */ sw $v0, 4($v1) -/* 0A6180 7F073790 8EB0000C */ lw $s0, 0xc($s5) -/* 0A6184 7F073794 26080008 */ addiu $t0, $s0, 8 -/* 0A6188 7F073798 AEA8000C */ sw $t0, 0xc($s5) -/* 0A618C 7F07379C AE0F0000 */ sw $t7, ($s0) -/* 0A6190 7F0737A0 8FA40074 */ lw $a0, 0x74($sp) -/* 0A6194 7F0737A4 0C003838 */ jal osVirtualToPhysical -/* 0A6198 7F0737A8 AFB00048 */ sw $s0, 0x48($sp) -/* 0A619C 7F0737AC 8FA50048 */ lw $a1, 0x48($sp) -/* 0A61A0 7F0737B0 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 -/* 0A61A4 7F0737B4 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 -/* 0A61A8 7F0737B8 ACA20004 */ sw $v0, 4($a1) -/* 0A61AC 7F0737BC 8EB0000C */ lw $s0, 0xc($s5) -/* 0A61B0 7F0737C0 26190008 */ addiu $t9, $s0, 8 -/* 0A61B4 7F0737C4 AEB9000C */ sw $t9, 0xc($s5) -/* 0A61B8 7F0737C8 AE180000 */ sw $t8, ($s0) -/* 0A61BC 7F0737CC 8FA40084 */ lw $a0, 0x84($sp) -/* 0A61C0 7F0737D0 0C003838 */ jal osVirtualToPhysical -/* 0A61C4 7F0737D4 AFB00044 */ sw $s0, 0x44($sp) -/* 0A61C8 7F0737D8 8FA60044 */ lw $a2, 0x44($sp) -/* 0A61CC 7F0737DC 3C010400 */ lui $at, 0x400 -/* 0A61D0 7F0737E0 ACC20004 */ sw $v0, 4($a2) -/* 0A61D4 7F0737E4 8EB0000C */ lw $s0, 0xc($s5) -/* 0A61D8 7F0737E8 260B0008 */ addiu $t3, $s0, 8 -/* 0A61DC 7F0737EC AEAB000C */ sw $t3, 0xc($s5) -/* 0A61E0 7F0737F0 92830001 */ lbu $v1, 1($s4) -/* 0A61E4 7F0737F4 2463FFFE */ addiu $v1, $v1, -2 -/* 0A61E8 7F0737F8 2469FFFF */ addiu $t1, $v1, -1 -/* 0A61EC 7F0737FC 00095100 */ sll $t2, $t1, 4 -/* 0A61F0 7F073800 354E0002 */ ori $t6, $t2, 2 -/* 0A61F4 7F073804 31CD00FF */ andi $t5, $t6, 0xff -/* 0A61F8 7F073808 000D6400 */ sll $t4, $t5, 0x10 -/* 0A61FC 7F07380C 00037900 */ sll $t7, $v1, 4 -/* 0A6200 7F073810 31F9FFFF */ andi $t9, $t7, 0xffff -/* 0A6204 7F073814 01814025 */ or $t0, $t4, $at -/* 0A6208 7F073818 0119C025 */ or $t8, $t0, $t9 -/* 0A620C 7F07381C AE180000 */ sw $t8, ($s0) -/* 0A6210 7F073820 96890002 */ lhu $t1, 2($s4) -/* 0A6214 7F073824 8ECB0010 */ lw $t3, 0x10($s6) -/* 0A6218 7F073828 AFB00040 */ sw $s0, 0x40($sp) -/* 0A621C 7F07382C 00095100 */ sll $t2, $t1, 4 -/* 0A6220 7F073830 016A2021 */ addu $a0, $t3, $t2 -/* 0A6224 7F073834 0C003838 */ jal osVirtualToPhysical -/* 0A6228 7F073838 24840020 */ addiu $a0, $a0, 0x20 -/* 0A622C 7F07383C 8FA50040 */ lw $a1, 0x40($sp) -/* 0A6230 7F073840 26940004 */ addiu $s4, $s4, 4 -/* 0A6234 7F073844 1000002B */ b .L7F0738F4 -/* 0A6238 7F073848 ACA20004 */ sw $v0, 4($a1) -/* 0A623C 7F07384C 92820001 */ lbu $v0, 1($s4) -.L7F073850: -/* 0A6240 7F073850 240100FF */ li $at, 255 -/* 0A6244 7F073854 02A02025 */ move $a0, $s5 -/* 0A6248 7F073858 1041000B */ beq $v0, $at, .L7F073888 -/* 0A624C 7F07385C 00002825 */ move $a1, $zero -/* 0A6250 7F073860 00026880 */ sll $t5, $v0, 2 -/* 0A6254 7F073864 8ECE0014 */ lw $t6, 0x14($s6) -/* 0A6258 7F073868 01A26823 */ subu $t5, $t5, $v0 -/* 0A625C 7F07386C 000D6880 */ sll $t5, $t5, 2 -/* 0A6260 7F073870 02A02025 */ move $a0, $s5 -/* 0A6264 7F073874 02203025 */ move $a2, $s1 -/* 0A6268 7F073878 0FC1CC67 */ jal sub_GAME_7F073038 -/* 0A626C 7F07387C 01CD2821 */ addu $a1, $t6, $t5 -/* 0A6270 7F073880 1000001C */ b .L7F0738F4 -/* 0A6274 7F073884 26940002 */ addiu $s4, $s4, 2 -.L7F073888: -/* 0A6278 7F073888 0FC1CC67 */ jal sub_GAME_7F073038 -/* 0A627C 7F07388C 02203025 */ move $a2, $s1 -/* 0A6280 7F073890 10000018 */ b .L7F0738F4 -/* 0A6284 7F073894 26940002 */ addiu $s4, $s4, 2 -/* 0A6288 7F073898 8EB0000C */ lw $s0, 0xc($s5) -.L7F07389C: -/* 0A628C 7F07389C 3C0FBF00 */ lui $t7, 0xbf00 -/* 0A6290 7F0738A0 26940004 */ addiu $s4, $s4, 4 -/* 0A6294 7F0738A4 260C0008 */ addiu $t4, $s0, 8 -/* 0A6298 7F0738A8 AEAC000C */ sw $t4, 0xc($s5) -/* 0A629C 7F0738AC AE0F0000 */ sw $t7, ($s0) -/* 0A62A0 7F0738B0 9288FFFD */ lbu $t0, -3($s4) -/* 0A62A4 7F0738B4 928BFFFE */ lbu $t3, -2($s4) -/* 0A62A8 7F0738B8 928FFFFF */ lbu $t7, -1($s4) -/* 0A62AC 7F0738BC 01170019 */ multu $t0, $s7 -/* 0A62B0 7F0738C0 0000C812 */ mflo $t9 -/* 0A62B4 7F0738C4 333800FF */ andi $t8, $t9, 0xff -/* 0A62B8 7F0738C8 00184C00 */ sll $t1, $t8, 0x10 -/* 0A62BC 7F0738CC 01770019 */ multu $t3, $s7 -/* 0A62C0 7F0738D0 00005012 */ mflo $t2 -/* 0A62C4 7F0738D4 314E00FF */ andi $t6, $t2, 0xff -/* 0A62C8 7F0738D8 000E6A00 */ sll $t5, $t6, 8 -/* 0A62CC 7F0738DC 01F70019 */ multu $t7, $s7 -/* 0A62D0 7F0738E0 012D6025 */ or $t4, $t1, $t5 -/* 0A62D4 7F0738E4 00004012 */ mflo $t0 -/* 0A62D8 7F0738E8 311900FF */ andi $t9, $t0, 0xff -/* 0A62DC 7F0738EC 0199C025 */ or $t8, $t4, $t9 -/* 0A62E0 7F0738F0 AE180004 */ sw $t8, 4($s0) -.L7F0738F4: -/* 0A62E4 7F0738F4 27DEFFFF */ addiu $fp, $fp, -1 -.L7F0738F8: -/* 0A62E8 7F0738F8 5FC0FF03 */ bgtzl $fp, .L7F073508 -/* 0A62EC 7F0738FC 92840000 */ lbu $a0, ($s4) -.L7F073900: -/* 0A62F0 7F073900 8FBF003C */ lw $ra, 0x3c($sp) -.L7F073904: -/* 0A62F4 7F073904 8FB00018 */ lw $s0, 0x18($sp) -/* 0A62F8 7F073908 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A62FC 7F07390C 8FB20020 */ lw $s2, 0x20($sp) -/* 0A6300 7F073910 8FB30024 */ lw $s3, 0x24($sp) -/* 0A6304 7F073914 8FB40028 */ lw $s4, 0x28($sp) -/* 0A6308 7F073918 8FB5002C */ lw $s5, 0x2c($sp) -/* 0A630C 7F07391C 8FB60030 */ lw $s6, 0x30($sp) -/* 0A6310 7F073920 8FB70034 */ lw $s7, 0x34($sp) -/* 0A6314 7F073924 8FBE0038 */ lw $fp, 0x38($sp) -/* 0A6318 7F073928 03E00008 */ jr $ra -/* 0A631C 7F07392C 27BD00D0 */ addiu $sp, $sp, 0xd0 -) -#endif -#endif - - - - - void sub_GAME_7F0737EC(s32 param_1,struct Model *param_2, struct ModelNode *param_3) @@ -10915,1050 +6655,170 @@ void sub_GAME_7F0737FC(s32 param_1,struct Model *param_2,struct ModelNode *param } +void dogfnegx(ModelRenderData *renderdata, Model *model, ModelNode *node) +{ + u32 unused[3]; + f32 negspc0; + ModelRoData_GunfireRecord *rodata = &node->Data->Gunfire; + union ModelRwData *rwdata = modelGetNodeRwData(model, node); + sImageTableEntry *tconfig; + f32 spf0; + f32 spec; + coord3d spe0; + f32 spdc; + f32 spd8; + f32 spd4; + f32 spd0; + f32 spcc; + f32 spc8; + f32 spc4; + f32 spc0; + f32 spbc; + f32 negspcc; + f32 negspc8; + f32 scale; + Mtxf *mtx; + f32 tmp; + coord3d sp9c; + coord3d sp90; + Vertex vtxtemplate = D_800363E0; + Vertex *vertices; + f32 distance; + if ((renderdata->flags & 2) && rwdata->Gunfire.visible) + { + s32 index = sub_GAME_7F06C570(node, 0); + mtx = &model->render_pos[index].pos; + spe0.x = -(rodata->Offset.f[0] * mtx->m[0][0] + rodata->Offset.f[1] * mtx->m[1][0] + rodata->Offset.f[2] * mtx->m[2][0] + mtx->m[3][0]); + spe0.y = -(rodata->Offset.f[0] * mtx->m[0][1] + rodata->Offset.f[1] * mtx->m[1][1] + rodata->Offset.f[2] * mtx->m[2][1] + mtx->m[3][1]); + spe0.z = -(rodata->Offset.f[0] * mtx->m[0][2] + rodata->Offset.f[1] * mtx->m[1][2] + rodata->Offset.f[2] * mtx->m[2][2] + mtx->m[3][2]); + distance = sqrtf(spe0.f[0] * spe0.f[0] + spe0.f[1] * spe0.f[1] + spe0.f[2] * spe0.f[2]); + if (distance > 0) + { + f32 tmp = 1 / (model->scale * distance); + spe0.f[0] *= tmp; + spe0.f[1] *= tmp; + spe0.f[2] *= tmp; + } + else + { + spe0.f[0] = 0; + spe0.f[1] = 0; + spe0.f[2] = 1 / model->scale; + } -#ifdef NONMATCHING -void dogfnegx(void) { + spec = acosf(spe0.f[0] * mtx->m[1][0] + spe0.f[1] * mtx->m[1][1] + spe0.f[2] * mtx->m[1][2]); + spf0 = acosf(-(spe0.f[0] * mtx->m[2][0] + spe0.f[1] * mtx->m[2][1] + spe0.f[2] * mtx->m[2][2]) / sinf(spec)); + tmp = -(spe0.f[0] * mtx->m[0][0] + spe0.f[1] * mtx->m[0][1] + spe0.f[2] * mtx->m[0][2]); + + if (tmp < 0) + { + spf0 = M_TAU_F - spf0; + } + + spdc = cosf(spf0); + spd8 = sinf(spf0); + spd4 = cosf(spec); + spd0 = sinf(spec); + + scale = 0.75f + (randomGetNext() % 128) * (1.0f / 256.0f); // 0.75 to 1.25 + + sp9c.f[0] = rodata->Size.f[0] * scale; + sp9c.f[1] = rodata->Size.f[1] * scale; + sp9c.f[2] = rodata->Size.f[2] * scale; + + spcc = sp9c.f[0] * spdc * 0.5f; + spc8 = sp9c.f[2] * spd8 * 0.5f; + spc4 = sp9c.f[1] * spd0 * 0.5f; + + spc0 = sp9c.f[0] * spd4 * spd8 * 0.5f; + spbc = sp9c.f[2] * spd4 * spdc * 0.5f; + + negspcc = -spcc; + negspc8 = -spc8; + negspc0 = -spc0; + + sp90.f[0] = rodata->Offset.f[0] - sp9c.f[0] * 0.5f; + sp90.f[1] = rodata->Offset.f[1]; + sp90.f[2] = rodata->Offset.f[2]; + +#if defined (LEFTOVERDEBUG) + if (vtxallocator == NULL) { + osSyncPrintf("dogfnegx: no vtx allocator!\n"); + return_null(); + } +#endif + + vertices = vtxallocator(4); + + vertices[0] = vtxtemplate; + vertices[1] = vtxtemplate; + vertices[2] = vtxtemplate; + vertices[3] = vtxtemplate; + + vertices[0].coord.x = sp90.f[0] + negspcc + negspc0; + vertices[0].coord.y = sp90.f[1] - spc4; + vertices[0].coord.z = sp90.f[2] - negspc8 + -spbc; + vertices[1].coord.x = sp90.f[0] + negspcc - negspc0; + vertices[1].coord.y = sp90.f[1] + spc4; + vertices[1].coord.z = sp90.f[2] - negspc8 - -spbc; + vertices[2].coord.x = sp90.f[0] - negspcc - negspc0; + vertices[2].coord.y = sp90.f[1] + spc4; + vertices[2].coord.z = sp90.f[2] + negspc8 - -spbc; + vertices[3].coord.x = sp90.f[0] - negspcc + negspc0; + vertices[3].coord.y = sp90.f[1] - spc4; + vertices[3].coord.z = sp90.f[2] + negspc8 + -spbc; + + gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_COL1, osVirtualToPhysical(rodata->BaseAddr)); + + if (rodata->Image) + { + s32 centre; + u16 sp62; + s32 sp5c; + s32 sp58; + + tconfig = rodata->Image; + + sp62 = (randomGetNext() * 1024) & 0xffff; + sp5c = (coss(sp62) * tconfig->width * 0xb5) >> 18; + sp58 = (sins(sp62) * tconfig->width * 0xb5) >> 18; + + centre = tconfig->width << 4; + + vertices[0].s = centre - sp5c; + vertices[0].t = centre - sp58; + vertices[1].s = centre + sp58; + vertices[1].t = centre - sp5c; + vertices[2].s = centre + sp5c; + vertices[2].t = centre + sp58; + vertices[3].s = centre - sp58; + vertices[3].t = centre + sp5c; + + sub_GAME_7F073038(renderdata, tconfig, 4); + } + else + { + sub_GAME_7F073038(renderdata, NULL, 1); + } + + gSPSetGeometryMode(renderdata->gdl++, G_CULL_BACK); + gSPMatrix(renderdata->gdl++, osVirtualToPhysical(mtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPVertex(renderdata->gdl++, osVirtualToPhysical(vertices), 4, 0); + if (1); + gDPTri2(renderdata->gdl++, 0, 1, 2, 2, 3, 0); + } } -#else -#ifndef VERSION_EU -//D:80054A74 -const char aDogfnegxNoVtxAllocator[] = "dogfnegx: no vtx allocator!\n"; -GLOBAL_ASM( -.late_rodata -glabel D_80054D50 -.word 0x40c90fdb /*6.2831855*/ -.text -glabel dogfnegx -/* 0A833C 7F07380C 27BDFF00 */ addiu $sp, $sp, -0x100 -/* 0A8340 7F073810 AFB20020 */ sw $s2, 0x20($sp) -/* 0A8344 7F073814 00809025 */ move $s2, $a0 -/* 0A8348 7F073818 AFBF0024 */ sw $ra, 0x24($sp) -/* 0A834C 7F07381C AFB1001C */ sw $s1, 0x1c($sp) -/* 0A8350 7F073820 AFB00018 */ sw $s0, 0x18($sp) -/* 0A8354 7F073824 AFA50104 */ sw $a1, 0x104($sp) -/* 0A8358 7F073828 00A02025 */ move $a0, $a1 -/* 0A835C 7F07382C 00C08025 */ move $s0, $a2 -/* 0A8360 7F073830 8CD10004 */ lw $s1, 4($a2) -/* 0A8364 7F073834 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0A8368 7F073838 00C02825 */ move $a1, $a2 -/* 0A836C 7F07383C 3C0F8003 */ lui $t7, %hi(D_800363E0) -/* 0A8370 7F073840 25EF63E0 */ addiu $t7, %lo(D_800363E0) # addiu $t7, $t7, 0x63e0 -/* 0A8374 7F073844 8DE10000 */ lw $at, ($t7) -/* 0A8378 7F073848 8DF90004 */ lw $t9, 4($t7) -/* 0A837C 7F07384C 27AE0070 */ addiu $t6, $sp, 0x70 -/* 0A8380 7F073850 ADC10000 */ sw $at, ($t6) -/* 0A8384 7F073854 ADD90004 */ sw $t9, 4($t6) -/* 0A8388 7F073858 8DF9000C */ lw $t9, 0xc($t7) -/* 0A838C 7F07385C 8DE10008 */ lw $at, 8($t7) -/* 0A8390 7F073860 ADD9000C */ sw $t9, 0xc($t6) -/* 0A8394 7F073864 ADC10008 */ sw $at, 8($t6) -/* 0A8398 7F073868 8E580008 */ lw $t8, 8($s2) -/* 0A839C 7F07386C 330D0002 */ andi $t5, $t8, 2 -/* 0A83A0 7F073870 51A001D0 */ beql $t5, $zero, .L7F073FB4 -/* 0A83A4 7F073874 8FBF0024 */ lw $ra, 0x24($sp) -/* 0A83A8 7F073878 844C0000 */ lh $t4, ($v0) -/* 0A83AC 7F07387C 02002025 */ move $a0, $s0 -/* 0A83B0 7F073880 518001CC */ beql $t4, $zero, .L7F073FB4 -/* 0A83B4 7F073884 8FBF0024 */ lw $ra, 0x24($sp) -/* 0A83B8 7F073888 0FC1B15C */ jal sub_GAME_7F06C570 -/* 0A83BC 7F07388C 00002825 */ move $a1, $zero -/* 0A83C0 7F073890 8FAE0104 */ lw $t6, 0x104($sp) -/* 0A83C4 7F073894 0002C980 */ sll $t9, $v0, 6 -/* 0A83C8 7F073898 C6280000 */ lwc1 $f8, ($s1) -/* 0A83CC 7F07389C 8DCF000C */ lw $t7, 0xc($t6) -/* 0A83D0 7F0738A0 C6240004 */ lwc1 $f4, 4($s1) -/* 0A83D4 7F0738A4 01F98021 */ addu $s0, $t7, $t9 -/* 0A83D8 7F0738A8 C60A0000 */ lwc1 $f10, ($s0) -/* 0A83DC 7F0738AC 460A4182 */ mul.s $f6, $f8, $f10 -/* 0A83E0 7F0738B0 C6080010 */ lwc1 $f8, 0x10($s0) -/* 0A83E4 7F0738B4 46082282 */ mul.s $f10, $f4, $f8 -/* 0A83E8 7F0738B8 C6280008 */ lwc1 $f8, 8($s1) -/* 0A83EC 7F0738BC 460A3100 */ add.s $f4, $f6, $f10 -/* 0A83F0 7F0738C0 C6060020 */ lwc1 $f6, 0x20($s0) -/* 0A83F4 7F0738C4 46064282 */ mul.s $f10, $f8, $f6 -/* 0A83F8 7F0738C8 C6060030 */ lwc1 $f6, 0x30($s0) -/* 0A83FC 7F0738CC 460A2200 */ add.s $f8, $f4, $f10 -/* 0A8400 7F0738D0 46083100 */ add.s $f4, $f6, $f8 -/* 0A8404 7F0738D4 46002287 */ neg.s $f10, $f4 -/* 0A8408 7F0738D8 E7AA00D0 */ swc1 $f10, 0xd0($sp) -/* 0A840C 7F0738DC C6260000 */ lwc1 $f6, ($s1) -/* 0A8410 7F0738E0 C6080004 */ lwc1 $f8, 4($s0) -/* 0A8414 7F0738E4 46083102 */ mul.s $f4, $f6, $f8 -/* 0A8418 7F0738E8 C6080014 */ lwc1 $f8, 0x14($s0) -/* 0A841C 7F0738EC C6260004 */ lwc1 $f6, 4($s1) -/* 0A8420 7F0738F0 46083182 */ mul.s $f6, $f6, $f8 -/* 0A8424 7F0738F4 46062200 */ add.s $f8, $f4, $f6 -/* 0A8428 7F0738F8 C6060024 */ lwc1 $f6, 0x24($s0) -/* 0A842C 7F0738FC C6240008 */ lwc1 $f4, 8($s1) -/* 0A8430 7F073900 46062102 */ mul.s $f4, $f4, $f6 -/* 0A8434 7F073904 46044180 */ add.s $f6, $f8, $f4 -/* 0A8438 7F073908 C6080034 */ lwc1 $f8, 0x34($s0) -/* 0A843C 7F07390C 46064100 */ add.s $f4, $f8, $f6 -/* 0A8440 7F073910 46002207 */ neg.s $f8, $f4 -/* 0A8444 7F073914 E7A800D4 */ swc1 $f8, 0xd4($sp) -/* 0A8448 7F073918 C6040008 */ lwc1 $f4, 8($s0) -/* 0A844C 7F07391C C6260000 */ lwc1 $f6, ($s1) -/* 0A8450 7F073920 46043182 */ mul.s $f6, $f6, $f4 -/* 0A8454 7F073924 C6240004 */ lwc1 $f4, 4($s1) -/* 0A8458 7F073928 E7AA0028 */ swc1 $f10, 0x28($sp) -/* 0A845C 7F07392C C60A0018 */ lwc1 $f10, 0x18($s0) -/* 0A8460 7F073930 460A2102 */ mul.s $f4, $f4, $f10 -/* 0A8464 7F073934 46043280 */ add.s $f10, $f6, $f4 -/* 0A8468 7F073938 C6040028 */ lwc1 $f4, 0x28($s0) -/* 0A846C 7F07393C C6260008 */ lwc1 $f6, 8($s1) -/* 0A8470 7F073940 46043182 */ mul.s $f6, $f6, $f4 -/* 0A8474 7F073944 46065100 */ add.s $f4, $f10, $f6 -/* 0A8478 7F073948 C60A0038 */ lwc1 $f10, 0x38($s0) -/* 0A847C 7F07394C 46045180 */ add.s $f6, $f10, $f4 -/* 0A8480 7F073950 C7A40028 */ lwc1 $f4, 0x28($sp) -/* 0A8484 7F073954 46003287 */ neg.s $f10, $f6 -/* 0A8488 7F073958 46042182 */ mul.s $f6, $f4, $f4 -/* 0A848C 7F07395C E7AA00D8 */ swc1 $f10, 0xd8($sp) -/* 0A8490 7F073960 46084102 */ mul.s $f4, $f8, $f8 -/* 0A8494 7F073964 46043200 */ add.s $f8, $f6, $f4 -/* 0A8498 7F073968 460A5282 */ mul.s $f10, $f10, $f10 -/* 0A849C 7F07396C 0C007DF8 */ jal sqrtf -/* 0A84A0 7F073970 46085300 */ add.s $f12, $f10, $f8 -/* 0A84A4 7F073974 44807000 */ mtc1 $zero, $f14 -/* 0A84A8 7F073978 00000000 */ nop -/* 0A84AC 7F07397C 4600703C */ c.lt.s $f14, $f0 -/* 0A84B0 7F073980 00000000 */ nop -/* 0A84B4 7F073984 45020012 */ bc1fl .L7F0739D0 -/* 0A84B8 7F073988 8FAD0104 */ lw $t5, 0x104($sp) -/* 0A84BC 7F07398C 8FB80104 */ lw $t8, 0x104($sp) -/* 0A84C0 7F073990 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A84C4 7F073994 44813000 */ mtc1 $at, $f6 -/* 0A84C8 7F073998 C7040014 */ lwc1 $f4, 0x14($t8) -/* 0A84CC 7F07399C C7A800D0 */ lwc1 $f8, 0xd0($sp) -/* 0A84D0 7F0739A0 46002282 */ mul.s $f10, $f4, $f0 -/* 0A84D4 7F0739A4 460A3083 */ div.s $f2, $f6, $f10 -/* 0A84D8 7F0739A8 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* 0A84DC 7F0739AC 46024102 */ mul.s $f4, $f8, $f2 -/* 0A84E0 7F0739B0 C7A800D8 */ lwc1 $f8, 0xd8($sp) -/* 0A84E4 7F0739B4 46023282 */ mul.s $f10, $f6, $f2 -/* 0A84E8 7F0739B8 E7A400D0 */ swc1 $f4, 0xd0($sp) -/* 0A84EC 7F0739BC 46024102 */ mul.s $f4, $f8, $f2 -/* 0A84F0 7F0739C0 E7AA00D4 */ swc1 $f10, 0xd4($sp) -/* 0A84F4 7F0739C4 10000009 */ b .L7F0739EC -/* 0A84F8 7F0739C8 E7A400D8 */ swc1 $f4, 0xd8($sp) -/* 0A84FC 7F0739CC 8FAD0104 */ lw $t5, 0x104($sp) -.L7F0739D0: -/* 0A8500 7F0739D0 E7AE00D0 */ swc1 $f14, 0xd0($sp) -/* 0A8504 7F0739D4 E7AE00D4 */ swc1 $f14, 0xd4($sp) -/* 0A8508 7F0739D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A850C 7F0739DC 44813000 */ mtc1 $at, $f6 -/* 0A8510 7F0739E0 C5AA0014 */ lwc1 $f10, 0x14($t5) -/* 0A8514 7F0739E4 460A3203 */ div.s $f8, $f6, $f10 -/* 0A8518 7F0739E8 E7A800D8 */ swc1 $f8, 0xd8($sp) -.L7F0739EC: -/* 0A851C 7F0739EC C7A400D0 */ lwc1 $f4, 0xd0($sp) -/* 0A8520 7F0739F0 C6060010 */ lwc1 $f6, 0x10($s0) -/* 0A8524 7F0739F4 C7A800D4 */ lwc1 $f8, 0xd4($sp) -/* 0A8528 7F0739F8 46062282 */ mul.s $f10, $f4, $f6 -/* 0A852C 7F0739FC C6040014 */ lwc1 $f4, 0x14($s0) -/* 0A8530 7F073A00 46044182 */ mul.s $f6, $f8, $f4 -/* 0A8534 7F073A04 C6040018 */ lwc1 $f4, 0x18($s0) -/* 0A8538 7F073A08 46065200 */ add.s $f8, $f10, $f6 -/* 0A853C 7F073A0C C7AA00D8 */ lwc1 $f10, 0xd8($sp) -/* 0A8540 7F073A10 460A2182 */ mul.s $f6, $f4, $f10 -/* 0A8544 7F073A14 0FC16B2C */ jal acosf -/* 0A8548 7F073A18 46083300 */ add.s $f12, $f6, $f8 -/* 0A854C 7F073A1C E7A000DC */ swc1 $f0, 0xdc($sp) -/* 0A8550 7F073A20 0FC15FAB */ jal sinf -/* 0A8554 7F073A24 46000306 */ mov.s $f12, $f0 -/* 0A8558 7F073A28 C7A400D0 */ lwc1 $f4, 0xd0($sp) -/* 0A855C 7F073A2C C60A0020 */ lwc1 $f10, 0x20($s0) -/* 0A8560 7F073A30 C7A800D4 */ lwc1 $f8, 0xd4($sp) -/* 0A8564 7F073A34 460A2182 */ mul.s $f6, $f4, $f10 -/* 0A8568 7F073A38 C6040024 */ lwc1 $f4, 0x24($s0) -/* 0A856C 7F073A3C 46044282 */ mul.s $f10, $f8, $f4 -/* 0A8570 7F073A40 C7A400D8 */ lwc1 $f4, 0xd8($sp) -/* 0A8574 7F073A44 460A3200 */ add.s $f8, $f6, $f10 -/* 0A8578 7F073A48 C6060028 */ lwc1 $f6, 0x28($s0) -/* 0A857C 7F073A4C 46062282 */ mul.s $f10, $f4, $f6 -/* 0A8580 7F073A50 460A4100 */ add.s $f4, $f8, $f10 -/* 0A8584 7F073A54 46002187 */ neg.s $f6, $f4 -/* 0A8588 7F073A58 0FC16B2C */ jal acosf -/* 0A858C 7F073A5C 46003303 */ div.s $f12, $f6, $f0 -/* 0A8590 7F073A60 C7A800D0 */ lwc1 $f8, 0xd0($sp) -/* 0A8594 7F073A64 C60A0000 */ lwc1 $f10, ($s0) -/* 0A8598 7F073A68 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* 0A859C 7F073A6C 46000306 */ mov.s $f12, $f0 -/* 0A85A0 7F073A70 460A4102 */ mul.s $f4, $f8, $f10 -/* 0A85A4 7F073A74 C6080004 */ lwc1 $f8, 4($s0) -/* 0A85A8 7F073A78 46083282 */ mul.s $f10, $f6, $f8 -/* 0A85AC 7F073A7C C6080008 */ lwc1 $f8, 8($s0) -/* 0A85B0 7F073A80 460A2180 */ add.s $f6, $f4, $f10 -/* 0A85B4 7F073A84 C7A400D8 */ lwc1 $f4, 0xd8($sp) -/* 0A85B8 7F073A88 46044282 */ mul.s $f10, $f8, $f4 -/* 0A85BC 7F073A8C 44804000 */ mtc1 $zero, $f8 -/* 0A85C0 7F073A90 46065080 */ add.s $f2, $f10, $f6 -/* 0A85C4 7F073A94 46001087 */ neg.s $f2, $f2 -/* 0A85C8 7F073A98 4608103C */ c.lt.s $f2, $f8 -/* 0A85CC 7F073A9C 00000000 */ nop -/* 0A85D0 7F073AA0 45000003 */ bc1f .L7F073AB0 -/* 0A85D4 7F073AA4 3C018005 */ lui $at, %hi(D_80054D50) -/* 0A85D8 7F073AA8 C4244D50 */ lwc1 $f4, %lo(D_80054D50)($at) -/* 0A85DC 7F073AAC 46002301 */ sub.s $f12, $f4, $f0 -.L7F073AB0: -/* 0A85E0 7F073AB0 0FC15FA8 */ jal cosf -/* 0A85E4 7F073AB4 E7AC00E0 */ swc1 $f12, 0xe0($sp) -/* 0A85E8 7F073AB8 C7AC00E0 */ lwc1 $f12, 0xe0($sp) -/* 0A85EC 7F073ABC 0FC15FAB */ jal sinf -/* 0A85F0 7F073AC0 E7A000CC */ swc1 $f0, 0xcc($sp) -/* 0A85F4 7F073AC4 E7A000C8 */ swc1 $f0, 0xc8($sp) -/* 0A85F8 7F073AC8 0FC15FA8 */ jal cosf -/* 0A85FC 7F073ACC C7AC00DC */ lwc1 $f12, 0xdc($sp) -/* 0A8600 7F073AD0 E7A000C4 */ swc1 $f0, 0xc4($sp) -/* 0A8604 7F073AD4 0FC15FAB */ jal sinf -/* 0A8608 7F073AD8 C7AC00DC */ lwc1 $f12, 0xdc($sp) -/* 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 -/* 0A861C 7F073AEC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0A8620 7F073AF0 44810000 */ mtc1 $at, $f0 -/* 0A8624 7F073AF4 C7AC00CC */ lwc1 $f12, 0xcc($sp) -/* 0A8628 7F073AF8 C7AE00C8 */ lwc1 $f14, 0xc8($sp) -/* 0A862C 7F073AFC C7B200C4 */ lwc1 $f18, 0xc4($sp) -/* 0A8630 7F073B00 05810005 */ bgez $t4, .L7F073B18 -/* 0A8634 7F073B04 468051A0 */ cvt.s.w $f6, $f10 -/* 0A8638 7F073B08 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0A863C 7F073B0C 44814000 */ mtc1 $at, $f8 -/* 0A8640 7F073B10 00000000 */ nop -/* 0A8644 7F073B14 46083180 */ add.s $f6, $f6, $f8 -.L7F073B18: -/* 0A8648 7F073B18 3C013B80 */ li $at, 0x3B800000 # 0.003906 -/* 0A864C 7F073B1C 44812000 */ mtc1 $at, $f4 -/* 0A8650 7F073B20 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 0A8654 7F073B24 44814000 */ mtc1 $at, $f8 -/* 0A8658 7F073B28 46043282 */ mul.s $f10, $f6, $f4 -/* 0A865C 7F073B2C C626000C */ lwc1 $f6, 0xc($s1) -/* 0A8660 7F073B30 3C038003 */ lui $v1, %hi(vtxallocator) -/* 0A8664 7F073B34 8C63608C */ lw $v1, %lo(vtxallocator)($v1) -/* 0A8668 7F073B38 3C048005 */ lui $a0, %hi(aDogfnegxNoVtxAllocator) -/* 0A866C 7F073B3C 24844A74 */ addiu $a0, %lo(aDogfnegxNoVtxAllocator) # addiu $a0, $a0, 0x4a74 -/* 0A8670 7F073B40 46085080 */ add.s $f2, $f10, $f8 -/* 0A8674 7F073B44 46023102 */ mul.s $f4, $f6, $f2 -/* 0A8678 7F073B48 E7A4008C */ swc1 $f4, 0x8c($sp) -/* 0A867C 7F073B4C C62A0010 */ lwc1 $f10, 0x10($s1) -/* 0A8680 7F073B50 46025202 */ mul.s $f8, $f10, $f2 -/* 0A8684 7F073B54 C7AA008C */ lwc1 $f10, 0x8c($sp) -/* 0A8688 7F073B58 E7A80090 */ swc1 $f8, 0x90($sp) -/* 0A868C 7F073B5C C6260014 */ lwc1 $f6, 0x14($s1) -/* 0A8690 7F073B60 46023102 */ mul.s $f4, $f6, $f2 -/* 0A8694 7F073B64 00000000 */ nop -/* 0A8698 7F073B68 460C5202 */ mul.s $f8, $f10, $f12 -/* 0A869C 7F073B6C E7A40094 */ swc1 $f4, 0x94($sp) -/* 0A86A0 7F073B70 C7A40094 */ lwc1 $f4, 0x94($sp) -/* 0A86A4 7F073B74 46004182 */ mul.s $f6, $f8, $f0 -/* 0A86A8 7F073B78 00000000 */ nop -/* 0A86AC 7F073B7C 460E2202 */ mul.s $f8, $f4, $f14 -/* 0A86B0 7F073B80 E7A600BC */ swc1 $f6, 0xbc($sp) -/* 0A86B4 7F073B84 46004182 */ mul.s $f6, $f8, $f0 -/* 0A86B8 7F073B88 C7A80090 */ lwc1 $f8, 0x90($sp) -/* 0A86BC 7F073B8C E7A600B8 */ swc1 $f6, 0xb8($sp) -/* 0A86C0 7F073B90 C7A600C0 */ lwc1 $f6, 0xc0($sp) -/* 0A86C4 7F073B94 46064202 */ mul.s $f8, $f8, $f6 -/* 0A86C8 7F073B98 00000000 */ nop -/* 0A86CC 7F073B9C 46004402 */ mul.s $f16, $f8, $f0 -/* 0A86D0 7F073BA0 00000000 */ nop -/* 0A86D4 7F073BA4 46125182 */ mul.s $f6, $f10, $f18 -/* 0A86D8 7F073BA8 00000000 */ nop -/* 0A86DC 7F073BAC 460E3202 */ mul.s $f8, $f6, $f14 -/* 0A86E0 7F073BB0 00000000 */ nop -/* 0A86E4 7F073BB4 46004182 */ mul.s $f6, $f8, $f0 -/* 0A86E8 7F073BB8 00000000 */ nop -/* 0A86EC 7F073BBC 46122202 */ mul.s $f8, $f4, $f18 -/* 0A86F0 7F073BC0 E7A600B0 */ swc1 $f6, 0xb0($sp) -/* 0A86F4 7F073BC4 460C4182 */ mul.s $f6, $f8, $f12 -/* 0A86F8 7F073BC8 00000000 */ nop -/* 0A86FC 7F073BCC 46003102 */ mul.s $f4, $f6, $f0 -/* 0A8700 7F073BD0 E7A400AC */ swc1 $f4, 0xac($sp) -/* 0A8704 7F073BD4 46005182 */ mul.s $f6, $f10, $f0 -/* 0A8708 7F073BD8 C6280000 */ lwc1 $f8, ($s1) -/* 0A870C 7F073BDC 46064101 */ sub.s $f4, $f8, $f6 -/* 0A8710 7F073BE0 E7A40080 */ swc1 $f4, 0x80($sp) -/* 0A8714 7F073BE4 C62A0004 */ lwc1 $f10, 4($s1) -/* 0A8718 7F073BE8 E7AA0084 */ swc1 $f10, 0x84($sp) -/* 0A871C 7F073BEC C6280008 */ lwc1 $f8, 8($s1) -/* 0A8720 7F073BF0 14600008 */ bnez $v1, .L7F073C14 -/* 0A8724 7F073BF4 E7A80088 */ swc1 $f8, 0x88($sp) -/* 0A8728 7F073BF8 0C0033D1 */ jal osSyncPrintf -/* 0A872C 7F073BFC E7B000B4 */ swc1 $f16, 0xb4($sp) -/* 0A8730 7F073C00 0FC1B11B */ jal return_null -/* 0A8734 7F073C04 00000000 */ nop -/* 0A8738 7F073C08 3C038003 */ lui $v1, %hi(vtxallocator) -/* 0A873C 7F073C0C 8C63608C */ lw $v1, %lo(vtxallocator)($v1) -/* 0A8740 7F073C10 C7B000B4 */ lwc1 $f16, 0xb4($sp) -.L7F073C14: -/* 0A8744 7F073C14 24040004 */ li $a0, 4 -/* 0A8748 7F073C18 0060F809 */ jalr $v1 -/* 0A874C 7F073C1C E7B000B4 */ swc1 $f16, 0xb4($sp) -/* 0A8750 7F073C20 27A30070 */ addiu $v1, $sp, 0x70 -/* 0A8754 7F073C24 AFA2006C */ sw $v0, 0x6c($sp) -/* 0A8758 7F073C28 8C610000 */ lw $at, ($v1) -/* 0A875C 7F073C2C C7B000B4 */ lwc1 $f16, 0xb4($sp) -/* 0A8760 7F073C30 AC410000 */ sw $at, ($v0) -/* 0A8764 7F073C34 8C790004 */ lw $t9, 4($v1) -/* 0A8768 7F073C38 AC590004 */ sw $t9, 4($v0) -/* 0A876C 7F073C3C 8C610008 */ lw $at, 8($v1) -/* 0A8770 7F073C40 AC410008 */ sw $at, 8($v0) -/* 0A8774 7F073C44 8C79000C */ lw $t9, 0xc($v1) -/* 0A8778 7F073C48 AC59000C */ sw $t9, 0xc($v0) -/* 0A877C 7F073C4C 8C610000 */ lw $at, ($v1) -/* 0A8780 7F073C50 AC410010 */ sw $at, 0x10($v0) -/* 0A8784 7F073C54 8C6C0004 */ lw $t4, 4($v1) -/* 0A8788 7F073C58 AC4C0014 */ sw $t4, 0x14($v0) -/* 0A878C 7F073C5C 8C610008 */ lw $at, 8($v1) -/* 0A8790 7F073C60 AC410018 */ sw $at, 0x18($v0) -/* 0A8794 7F073C64 8C6C000C */ lw $t4, 0xc($v1) -/* 0A8798 7F073C68 AC4C001C */ sw $t4, 0x1c($v0) -/* 0A879C 7F073C6C 8C610000 */ lw $at, ($v1) -/* 0A87A0 7F073C70 AC410020 */ sw $at, 0x20($v0) -/* 0A87A4 7F073C74 8C790004 */ lw $t9, 4($v1) -/* 0A87A8 7F073C78 AC590024 */ sw $t9, 0x24($v0) -/* 0A87AC 7F073C7C 8C610008 */ lw $at, 8($v1) -/* 0A87B0 7F073C80 AC410028 */ sw $at, 0x28($v0) -/* 0A87B4 7F073C84 8C79000C */ lw $t9, 0xc($v1) -/* 0A87B8 7F073C88 AC59002C */ sw $t9, 0x2c($v0) -/* 0A87BC 7F073C8C 8C610000 */ lw $at, ($v1) -/* 0A87C0 7F073C90 AC410030 */ sw $at, 0x30($v0) -/* 0A87C4 7F073C94 8C6C0004 */ lw $t4, 4($v1) -/* 0A87C8 7F073C98 AC4C0034 */ sw $t4, 0x34($v0) -/* 0A87CC 7F073C9C 8C610008 */ lw $at, 8($v1) -/* 0A87D0 7F073CA0 AC410038 */ sw $at, 0x38($v0) -/* 0A87D4 7F073CA4 8C6C000C */ lw $t4, 0xc($v1) -/* 0A87D8 7F073CA8 AC4C003C */ sw $t4, 0x3c($v0) -/* 0A87DC 7F073CAC C7A000BC */ lwc1 $f0, 0xbc($sp) -/* 0A87E0 7F073CB0 C7A60080 */ lwc1 $f6, 0x80($sp) -/* 0A87E4 7F073CB4 C7AC00B0 */ lwc1 $f12, 0xb0($sp) -/* 0A87E8 7F073CB8 46000007 */ neg.s $f0, $f0 -/* 0A87EC 7F073CBC 46003100 */ add.s $f4, $f6, $f0 -/* 0A87F0 7F073CC0 46006307 */ neg.s $f12, $f12 -/* 0A87F4 7F073CC4 460C2280 */ add.s $f10, $f4, $f12 -/* 0A87F8 7F073CC8 4600520D */ trunc.w.s $f8, $f10 -/* 0A87FC 7F073CCC 440F4000 */ mfc1 $t7, $f8 -/* 0A8800 7F073CD0 00000000 */ nop -/* 0A8804 7F073CD4 A44F0000 */ sh $t7, ($v0) -/* 0A8808 7F073CD8 C7A60084 */ lwc1 $f6, 0x84($sp) -/* 0A880C 7F073CDC 46103101 */ sub.s $f4, $f6, $f16 -/* 0A8810 7F073CE0 4600228D */ trunc.w.s $f10, $f4 -/* 0A8814 7F073CE4 44185000 */ mfc1 $t8, $f10 -/* 0A8818 7F073CE8 00000000 */ nop -/* 0A881C 7F073CEC A4580002 */ sh $t8, 2($v0) -/* 0A8820 7F073CF0 C7A200B8 */ lwc1 $f2, 0xb8($sp) -/* 0A8824 7F073CF4 C7A80088 */ lwc1 $f8, 0x88($sp) -/* 0A8828 7F073CF8 C7AE00AC */ lwc1 $f14, 0xac($sp) -/* 0A882C 7F073CFC 46001087 */ neg.s $f2, $f2 -/* 0A8830 7F073D00 46024181 */ sub.s $f6, $f8, $f2 -/* 0A8834 7F073D04 46007387 */ neg.s $f14, $f14 -/* 0A8838 7F073D08 460E3100 */ add.s $f4, $f6, $f14 -/* 0A883C 7F073D0C 4600228D */ trunc.w.s $f10, $f4 -/* 0A8840 7F073D10 440C5000 */ mfc1 $t4, $f10 -/* 0A8844 7F073D14 00000000 */ nop -/* 0A8848 7F073D18 A44C0004 */ sh $t4, 4($v0) -/* 0A884C 7F073D1C C7A80080 */ lwc1 $f8, 0x80($sp) -/* 0A8850 7F073D20 46004180 */ add.s $f6, $f8, $f0 -/* 0A8854 7F073D24 460C3101 */ sub.s $f4, $f6, $f12 -/* 0A8858 7F073D28 4600228D */ trunc.w.s $f10, $f4 -/* 0A885C 7F073D2C 440F5000 */ mfc1 $t7, $f10 -/* 0A8860 7F073D30 00000000 */ nop -/* 0A8864 7F073D34 A44F0010 */ sh $t7, 0x10($v0) -/* 0A8868 7F073D38 C7A80084 */ lwc1 $f8, 0x84($sp) -/* 0A886C 7F073D3C 46104180 */ add.s $f6, $f8, $f16 -/* 0A8870 7F073D40 4600310D */ trunc.w.s $f4, $f6 -/* 0A8874 7F073D44 44182000 */ mfc1 $t8, $f4 -/* 0A8878 7F073D48 00000000 */ nop -/* 0A887C 7F073D4C A4580012 */ sh $t8, 0x12($v0) -/* 0A8880 7F073D50 C7AA0088 */ lwc1 $f10, 0x88($sp) -/* 0A8884 7F073D54 46025201 */ sub.s $f8, $f10, $f2 -/* 0A8888 7F073D58 460E4181 */ sub.s $f6, $f8, $f14 -/* 0A888C 7F073D5C 4600310D */ trunc.w.s $f4, $f6 -/* 0A8890 7F073D60 440C2000 */ mfc1 $t4, $f4 -/* 0A8894 7F073D64 00000000 */ nop -/* 0A8898 7F073D68 A44C0014 */ sh $t4, 0x14($v0) -/* 0A889C 7F073D6C C7AA0080 */ lwc1 $f10, 0x80($sp) -/* 0A88A0 7F073D70 46005201 */ sub.s $f8, $f10, $f0 -/* 0A88A4 7F073D74 460C4181 */ sub.s $f6, $f8, $f12 -/* 0A88A8 7F073D78 4600310D */ trunc.w.s $f4, $f6 -/* 0A88AC 7F073D7C 440F2000 */ mfc1 $t7, $f4 -/* 0A88B0 7F073D80 00000000 */ nop -/* 0A88B4 7F073D84 A44F0020 */ sh $t7, 0x20($v0) -/* 0A88B8 7F073D88 C7AA0084 */ lwc1 $f10, 0x84($sp) -/* 0A88BC 7F073D8C 46105200 */ add.s $f8, $f10, $f16 -/* 0A88C0 7F073D90 4600418D */ trunc.w.s $f6, $f8 -/* 0A88C4 7F073D94 44183000 */ mfc1 $t8, $f6 -/* 0A88C8 7F073D98 00000000 */ nop -/* 0A88CC 7F073D9C A4580022 */ sh $t8, 0x22($v0) -/* 0A88D0 7F073DA0 C7A40088 */ lwc1 $f4, 0x88($sp) -/* 0A88D4 7F073DA4 46022280 */ add.s $f10, $f4, $f2 -/* 0A88D8 7F073DA8 460E5201 */ sub.s $f8, $f10, $f14 -/* 0A88DC 7F073DAC 4600418D */ trunc.w.s $f6, $f8 -/* 0A88E0 7F073DB0 440C3000 */ mfc1 $t4, $f6 -/* 0A88E4 7F073DB4 00000000 */ nop -/* 0A88E8 7F073DB8 A44C0024 */ sh $t4, 0x24($v0) -/* 0A88EC 7F073DBC C7A40080 */ lwc1 $f4, 0x80($sp) -/* 0A88F0 7F073DC0 46002281 */ sub.s $f10, $f4, $f0 -/* 0A88F4 7F073DC4 460C5200 */ add.s $f8, $f10, $f12 -/* 0A88F8 7F073DC8 4600418D */ trunc.w.s $f6, $f8 -/* 0A88FC 7F073DCC 440F3000 */ mfc1 $t7, $f6 -/* 0A8900 7F073DD0 00000000 */ nop -/* 0A8904 7F073DD4 A44F0030 */ sh $t7, 0x30($v0) -/* 0A8908 7F073DD8 C7A40084 */ lwc1 $f4, 0x84($sp) -/* 0A890C 7F073DDC 3C0FBC00 */ lui $t7, (0xBC001406 >> 16) # lui $t7, 0xbc00 -/* 0A8910 7F073DE0 35EF1406 */ ori $t7, (0xBC001406 & 0xFFFF) # ori $t7, $t7, 0x1406 -/* 0A8914 7F073DE4 46102281 */ sub.s $f10, $f4, $f16 -/* 0A8918 7F073DE8 4600520D */ trunc.w.s $f8, $f10 -/* 0A891C 7F073DEC 44184000 */ mfc1 $t8, $f8 -/* 0A8920 7F073DF0 00000000 */ nop -/* 0A8924 7F073DF4 A4580032 */ sh $t8, 0x32($v0) -/* 0A8928 7F073DF8 C7A60088 */ lwc1 $f6, 0x88($sp) -/* 0A892C 7F073DFC 46023100 */ add.s $f4, $f6, $f2 -/* 0A8930 7F073E00 460E2280 */ add.s $f10, $f4, $f14 -/* 0A8934 7F073E04 4600520D */ trunc.w.s $f8, $f10 -/* 0A8938 7F073E08 440C4000 */ mfc1 $t4, $f8 -/* 0A893C 7F073E0C 00000000 */ nop -/* 0A8940 7F073E10 A44C0034 */ sh $t4, 0x34($v0) -/* 0A8944 7F073E14 8E43000C */ lw $v1, 0xc($s2) -/* 0A8948 7F073E18 246E0008 */ addiu $t6, $v1, 8 -/* 0A894C 7F073E1C AE4E000C */ sw $t6, 0xc($s2) -/* 0A8950 7F073E20 AC6F0000 */ sw $t7, ($v1) -/* 0A8954 7F073E24 8E240024 */ lw $a0, 0x24($s1) -/* 0A8958 7F073E28 0C003A2C */ jal osVirtualToPhysical -/* 0A895C 7F073E2C AFA3005C */ sw $v1, 0x5c($sp) -/* 0A8960 7F073E30 8FA5005C */ lw $a1, 0x5c($sp) -/* 0A8964 7F073E34 02402025 */ move $a0, $s2 -/* 0A8968 7F073E38 ACA20004 */ sw $v0, 4($a1) -/* 0A896C 7F073E3C 8E230018 */ lw $v1, 0x18($s1) -/* 0A8970 7F073E40 00002825 */ move $a1, $zero -/* 0A8974 7F073E44 10600037 */ beqz $v1, .L7F073F24 -/* 0A8978 7F073E48 00000000 */ nop -/* 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) -/* 0A898C 7F073E5C 0C005B0C */ jal coss -/* 0A8990 7F073E60 3324FFFF */ andi $a0, $t9, 0xffff -/* 0A8994 7F073E64 92380004 */ lbu $t8, 4($s1) -/* 0A8998 7F073E68 97A40056 */ lhu $a0, 0x56($sp) -/* 0A899C 7F073E6C 00580019 */ multu $v0, $t8 -/* 0A89A0 7F073E70 00004812 */ mflo $t1 -/* 0A89A4 7F073E74 00096880 */ sll $t5, $t1, 2 -/* 0A89A8 7F073E78 01A96823 */ subu $t5, $t5, $t1 -/* 0A89AC 7F073E7C 000D6880 */ sll $t5, $t5, 2 -/* 0A89B0 7F073E80 01A96823 */ subu $t5, $t5, $t1 -/* 0A89B4 7F073E84 000D6880 */ sll $t5, $t5, 2 -/* 0A89B8 7F073E88 01A96821 */ addu $t5, $t5, $t1 -/* 0A89BC 7F073E8C 000D6880 */ sll $t5, $t5, 2 -/* 0A89C0 7F073E90 01A96821 */ addu $t5, $t5, $t1 -/* 0A89C4 7F073E94 000D6483 */ sra $t4, $t5, 0x12 -/* 0A89C8 7F073E98 0C005B18 */ jal sins -/* 0A89CC 7F073E9C AFAC0050 */ sw $t4, 0x50($sp) -/* 0A89D0 7F073EA0 92240004 */ lbu $a0, 4($s1) -/* 0A89D4 7F073EA4 8FA8006C */ lw $t0, 0x6c($sp) -/* 0A89D8 7F073EA8 8FA90050 */ lw $t1, 0x50($sp) -/* 0A89DC 7F073EAC 00440019 */ multu $v0, $a0 -/* 0A89E0 7F073EB0 00041900 */ sll $v1, $a0, 4 -/* 0A89E4 7F073EB4 00693023 */ subu $a2, $v1, $t1 -/* 0A89E8 7F073EB8 A5060008 */ sh $a2, 8($t0) -/* 0A89EC 7F073EBC A506001A */ sh $a2, 0x1a($t0) -/* 0A89F0 7F073EC0 00695821 */ addu $t3, $v1, $t1 -/* 0A89F4 7F073EC4 24060004 */ li $a2, 4 -/* 0A89F8 7F073EC8 02402025 */ move $a0, $s2 -/* 0A89FC 7F073ECC A50B0028 */ sh $t3, 0x28($t0) -/* 0A8A00 7F073ED0 A50B003A */ sh $t3, 0x3a($t0) -/* 0A8A04 7F073ED4 00002812 */ mflo $a1 -/* 0A8A08 7F073ED8 00057080 */ sll $t6, $a1, 2 -/* 0A8A0C 7F073EDC 01C57023 */ subu $t6, $t6, $a1 -/* 0A8A10 7F073EE0 000E7080 */ sll $t6, $t6, 2 -/* 0A8A14 7F073EE4 01C57023 */ subu $t6, $t6, $a1 -/* 0A8A18 7F073EE8 000E7080 */ sll $t6, $t6, 2 -/* 0A8A1C 7F073EEC 01C57021 */ addu $t6, $t6, $a1 -/* 0A8A20 7F073EF0 000E7080 */ sll $t6, $t6, 2 -/* 0A8A24 7F073EF4 01C57021 */ addu $t6, $t6, $a1 -/* 0A8A28 7F073EF8 000E7C83 */ sra $t7, $t6, 0x12 -/* 0A8A2C 7F073EFC 006F5023 */ subu $t2, $v1, $t7 -/* 0A8A30 7F073F00 006F3821 */ addu $a3, $v1, $t7 -/* 0A8A34 7F073F04 02202825 */ move $a1, $s1 -/* 0A8A38 7F073F08 A50A000A */ sh $t2, 0xa($t0) -/* 0A8A3C 7F073F0C A5070018 */ sh $a3, 0x18($t0) -/* 0A8A40 7F073F10 A507002A */ sh $a3, 0x2a($t0) -/* 0A8A44 7F073F14 0FC1CC0E */ jal sub_GAME_7F073038 -/* 0A8A48 7F073F18 A50A0038 */ sh $t2, 0x38($t0) -/* 0A8A4C 7F073F1C 10000004 */ b .L7F073F30 -/* 0A8A50 7F073F20 8E43000C */ lw $v1, 0xc($s2) -.L7F073F24: -/* 0A8A54 7F073F24 0FC1CC0E */ jal sub_GAME_7F073038 -/* 0A8A58 7F073F28 24060001 */ li $a2, 1 -/* 0A8A5C 7F073F2C 8E43000C */ lw $v1, 0xc($s2) -.L7F073F30: -/* 0A8A60 7F073F30 3C18B700 */ lui $t8, 0xb700 -/* 0A8A64 7F073F34 240D2000 */ li $t5, 8192 -/* 0A8A68 7F073F38 24790008 */ addiu $t9, $v1, 8 -/* 0A8A6C 7F073F3C AE59000C */ sw $t9, 0xc($s2) -/* 0A8A70 7F073F40 AC6D0004 */ sw $t5, 4($v1) -/* 0A8A74 7F073F44 AC780000 */ sw $t8, ($v1) -/* 0A8A78 7F073F48 8E51000C */ lw $s1, 0xc($s2) -/* 0A8A7C 7F073F4C 3C0E0102 */ lui $t6, (0x01020040 >> 16) # lui $t6, 0x102 -/* 0A8A80 7F073F50 35CE0040 */ ori $t6, (0x01020040 & 0xFFFF) # ori $t6, $t6, 0x40 -/* 0A8A84 7F073F54 262C0008 */ addiu $t4, $s1, 8 -/* 0A8A88 7F073F58 AE4C000C */ sw $t4, 0xc($s2) -/* 0A8A8C 7F073F5C 02002025 */ move $a0, $s0 -/* 0A8A90 7F073F60 0C003A2C */ jal osVirtualToPhysical -/* 0A8A94 7F073F64 AE2E0000 */ sw $t6, ($s1) -/* 0A8A98 7F073F68 AE220004 */ sw $v0, 4($s1) -/* 0A8A9C 7F073F6C 8E50000C */ lw $s0, 0xc($s2) -/* 0A8AA0 7F073F70 3C190430 */ lui $t9, (0x04300040 >> 16) # lui $t9, 0x430 -/* 0A8AA4 7F073F74 37390040 */ ori $t9, (0x04300040 & 0xFFFF) # ori $t9, $t9, 0x40 -/* 0A8AA8 7F073F78 260F0008 */ addiu $t7, $s0, 8 -/* 0A8AAC 7F073F7C AE4F000C */ sw $t7, 0xc($s2) -/* 0A8AB0 7F073F80 AE190000 */ sw $t9, ($s0) -/* 0A8AB4 7F073F84 0C003A2C */ jal osVirtualToPhysical -/* 0A8AB8 7F073F88 8FA4006C */ lw $a0, 0x6c($sp) -/* 0A8ABC 7F073F8C AE020004 */ sw $v0, 4($s0) -/* 0A8AC0 7F073F90 8E43000C */ lw $v1, 0xc($s2) -/* 0A8AC4 7F073F94 3C0DB100 */ lui $t5, (0xB1000002 >> 16) # lui $t5, 0xb100 # gSP4Triangles(6,1,2,8,2,0,1,0,0,0,0,0 -/* 0A8AC8 7F073F98 35AD0002 */ ori $t5, (0xB1000002 & 0xFFFF) # ori $t5, $t5, 2 -/* 0A8ACC 7F073F9C 24780008 */ addiu $t8, $v1, 8 -/* 0A8AD0 7F073FA0 AE58000C */ sw $t8, 0xc($s2) -/* 0A8AD4 7F073FA4 240C3210 */ li $t4, 12816 -/* 0A8AD8 7F073FA8 AC6C0004 */ sw $t4, 4($v1) -/* 0A8ADC 7F073FAC AC6D0000 */ sw $t5, ($v1) # ), -/* 0A8AE0 7F073FB0 8FBF0024 */ lw $ra, 0x24($sp) -.L7F073FB4: -/* 0A8AE4 7F073FB4 8FB00018 */ lw $s0, 0x18($sp) -/* 0A8AE8 7F073FB8 8FB1001C */ lw $s1, 0x1c($sp) -/* 0A8AEC 7F073FBC 8FB20020 */ lw $s2, 0x20($sp) -/* 0A8AF0 7F073FC0 03E00008 */ jr $ra -/* 0A8AF4 7F073FC4 27BD0100 */ addiu $sp, $sp, 0x100 -) -#endif -#ifdef VERSION_EU -GLOBAL_ASM( -.late_rodata -glabel D_80054D50 -.word 0x40c90fdb /*6.2831855*/ -.text -glabel dogfnegx -/* 0A6340 7F073950 27BDFF00 */ addiu $sp, $sp, -0x100 -/* 0A6344 7F073954 AFB30020 */ sw $s3, 0x20($sp) -/* 0A6348 7F073958 00809825 */ move $s3, $a0 -/* 0A634C 7F07395C AFB2001C */ sw $s2, 0x1c($sp) -/* 0A6350 7F073960 00A09025 */ move $s2, $a1 -/* 0A6354 7F073964 AFBF0024 */ sw $ra, 0x24($sp) -/* 0A6358 7F073968 AFB10018 */ sw $s1, 0x18($sp) -/* 0A635C 7F07396C AFB00014 */ sw $s0, 0x14($sp) -/* 0A6360 7F073970 00A02025 */ move $a0, $a1 -/* 0A6364 7F073974 00C08025 */ move $s0, $a2 -/* 0A6368 7F073978 8CD10004 */ lw $s1, 4($a2) -/* 0A636C 7F07397C 0FC1B3A3 */ jal extract_id_from_object_structure_microcode -/* 0A6370 7F073980 00C02825 */ move $a1, $a2 -/* 0A6374 7F073984 3C0C8003 */ lui $t4, %hi(D_800363E0) # $t4, 0x8003 -/* 0A6378 7F073988 258C1930 */ addiu $t4, %lo(D_800363E0) # addiu $t4, $t4, 0x1930 -/* 0A637C 7F07398C 8D810000 */ lw $at, ($t4) -/* 0A6380 7F073990 8D8E0004 */ lw $t6, 4($t4) -/* 0A6384 7F073994 27AF0070 */ addiu $t7, $sp, 0x70 -/* 0A6388 7F073998 ADE10000 */ sw $at, ($t7) -/* 0A638C 7F07399C ADEE0004 */ sw $t6, 4($t7) -/* 0A6390 7F0739A0 8D8E000C */ lw $t6, 0xc($t4) -/* 0A6394 7F0739A4 8D810008 */ lw $at, 8($t4) -/* 0A6398 7F0739A8 ADEE000C */ sw $t6, 0xc($t7) -/* 0A639C 7F0739AC ADE10008 */ sw $at, 8($t7) -/* 0A63A0 7F0739B0 8E6D0008 */ lw $t5, 8($s3) -/* 0A63A4 7F0739B4 31B80002 */ andi $t8, $t5, 2 -/* 0A63A8 7F0739B8 530001C2 */ beql $t8, $zero, .L7F0740C4eu -/* 0A63AC 7F0739BC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0A63B0 7F0739C0 844B0000 */ lh $t3, ($v0) -/* 0A63B4 7F0739C4 02002025 */ move $a0, $s0 -/* 0A63B8 7F0739C8 516001BE */ beql $t3, $zero, .L7F0740C4eu -/* 0A63BC 7F0739CC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0A63C0 7F0739D0 0FC1B32A */ jal sub_GAME_7F06C570 -/* 0A63C4 7F0739D4 00002825 */ move $a1, $zero -/* 0A63C8 7F0739D8 8E59000C */ lw $t9, 0xc($s2) -/* 0A63CC 7F0739DC 00027980 */ sll $t7, $v0, 6 -/* 0A63D0 7F0739E0 C6280000 */ lwc1 $f8, ($s1) -/* 0A63D4 7F0739E4 032F8021 */ addu $s0, $t9, $t7 -/* 0A63D8 7F0739E8 C60A0000 */ lwc1 $f10, ($s0) -/* 0A63DC 7F0739EC C6240004 */ lwc1 $f4, 4($s1) -/* 0A63E0 7F0739F0 460A4182 */ mul.s $f6, $f8, $f10 -/* 0A63E4 7F0739F4 C6080010 */ lwc1 $f8, 0x10($s0) -/* 0A63E8 7F0739F8 46082282 */ mul.s $f10, $f4, $f8 -/* 0A63EC 7F0739FC C6280008 */ lwc1 $f8, 8($s1) -/* 0A63F0 7F073A00 460A3100 */ add.s $f4, $f6, $f10 -/* 0A63F4 7F073A04 C6060020 */ lwc1 $f6, 0x20($s0) -/* 0A63F8 7F073A08 46064282 */ mul.s $f10, $f8, $f6 -/* 0A63FC 7F073A0C C6060030 */ lwc1 $f6, 0x30($s0) -/* 0A6400 7F073A10 460A2200 */ add.s $f8, $f4, $f10 -/* 0A6404 7F073A14 46083100 */ add.s $f4, $f6, $f8 -/* 0A6408 7F073A18 46002287 */ neg.s $f10, $f4 -/* 0A640C 7F073A1C E7AA00D0 */ swc1 $f10, 0xd0($sp) -/* 0A6410 7F073A20 C6260000 */ lwc1 $f6, ($s1) -/* 0A6414 7F073A24 C6080004 */ lwc1 $f8, 4($s0) -/* 0A6418 7F073A28 46083102 */ mul.s $f4, $f6, $f8 -/* 0A641C 7F073A2C C6080014 */ lwc1 $f8, 0x14($s0) -/* 0A6420 7F073A30 C6260004 */ lwc1 $f6, 4($s1) -/* 0A6424 7F073A34 46083182 */ mul.s $f6, $f6, $f8 -/* 0A6428 7F073A38 46062200 */ add.s $f8, $f4, $f6 -/* 0A642C 7F073A3C C6060024 */ lwc1 $f6, 0x24($s0) -/* 0A6430 7F073A40 C6240008 */ lwc1 $f4, 8($s1) -/* 0A6434 7F073A44 46062102 */ mul.s $f4, $f4, $f6 -/* 0A6438 7F073A48 46044180 */ add.s $f6, $f8, $f4 -/* 0A643C 7F073A4C C6080034 */ lwc1 $f8, 0x34($s0) -/* 0A6440 7F073A50 46064100 */ add.s $f4, $f8, $f6 -/* 0A6444 7F073A54 46002207 */ neg.s $f8, $f4 -/* 0A6448 7F073A58 E7A800D4 */ swc1 $f8, 0xd4($sp) -/* 0A644C 7F073A5C C6040008 */ lwc1 $f4, 8($s0) -/* 0A6450 7F073A60 C6260000 */ lwc1 $f6, ($s1) -/* 0A6454 7F073A64 46043182 */ mul.s $f6, $f6, $f4 -/* 0A6458 7F073A68 C6240004 */ lwc1 $f4, 4($s1) -/* 0A645C 7F073A6C E7AA0028 */ swc1 $f10, 0x28($sp) -/* 0A6460 7F073A70 C60A0018 */ lwc1 $f10, 0x18($s0) -/* 0A6464 7F073A74 460A2102 */ mul.s $f4, $f4, $f10 -/* 0A6468 7F073A78 46043280 */ add.s $f10, $f6, $f4 -/* 0A646C 7F073A7C C6040028 */ lwc1 $f4, 0x28($s0) -/* 0A6470 7F073A80 C6260008 */ lwc1 $f6, 8($s1) -/* 0A6474 7F073A84 46043182 */ mul.s $f6, $f6, $f4 -/* 0A6478 7F073A88 46065100 */ add.s $f4, $f10, $f6 -/* 0A647C 7F073A8C C60A0038 */ lwc1 $f10, 0x38($s0) -/* 0A6480 7F073A90 46045180 */ add.s $f6, $f10, $f4 -/* 0A6484 7F073A94 C7A40028 */ lwc1 $f4, 0x28($sp) -/* 0A6488 7F073A98 46003287 */ neg.s $f10, $f6 -/* 0A648C 7F073A9C 46042182 */ mul.s $f6, $f4, $f4 -/* 0A6490 7F073AA0 E7AA00D8 */ swc1 $f10, 0xd8($sp) -/* 0A6494 7F073AA4 46084102 */ mul.s $f4, $f8, $f8 -/* 0A6498 7F073AA8 46043200 */ add.s $f8, $f6, $f4 -/* 0A649C 7F073AAC 460A5282 */ mul.s $f10, $f10, $f10 -/* 0A64A0 7F073AB0 0C007614 */ jal sqrtf -/* 0A64A4 7F073AB4 46085300 */ add.s $f12, $f10, $f8 -/* 0A64A8 7F073AB8 44807000 */ mtc1 $zero, $f14 -/* 0A64AC 7F073ABC 00000000 */ nop -/* 0A64B0 7F073AC0 4600703C */ c.lt.s $f14, $f0 -/* 0A64B4 7F073AC4 00000000 */ nop -/* 0A64B8 7F073AC8 45020011 */ bc1fl .L7F073B10 -/* 0A64BC 7F073ACC E7AE00D0 */ swc1 $f14, 0xd0($sp) -/* 0A64C0 7F073AD0 C6440014 */ lwc1 $f4, 0x14($s2) -/* 0A64C4 7F073AD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A64C8 7F073AD8 44813000 */ mtc1 $at, $f6 -/* 0A64CC 7F073ADC 46002282 */ mul.s $f10, $f4, $f0 -/* 0A64D0 7F073AE0 C7A800D0 */ lwc1 $f8, 0xd0($sp) -/* 0A64D4 7F073AE4 460A3083 */ div.s $f2, $f6, $f10 -/* 0A64D8 7F073AE8 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* 0A64DC 7F073AEC 46024102 */ mul.s $f4, $f8, $f2 -/* 0A64E0 7F073AF0 C7A800D8 */ lwc1 $f8, 0xd8($sp) -/* 0A64E4 7F073AF4 46023282 */ mul.s $f10, $f6, $f2 -/* 0A64E8 7F073AF8 E7A400D0 */ swc1 $f4, 0xd0($sp) -/* 0A64EC 7F073AFC 46024102 */ mul.s $f4, $f8, $f2 -/* 0A64F0 7F073B00 E7AA00D4 */ swc1 $f10, 0xd4($sp) -/* 0A64F4 7F073B04 10000008 */ b .L7F073B28 -/* 0A64F8 7F073B08 E7A400D8 */ swc1 $f4, 0xd8($sp) -/* 0A64FC 7F073B0C E7AE00D0 */ swc1 $f14, 0xd0($sp) -.L7F073B10: -/* 0A6500 7F073B10 E7AE00D4 */ swc1 $f14, 0xd4($sp) -/* 0A6504 7F073B14 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A6508 7F073B18 44813000 */ mtc1 $at, $f6 -/* 0A650C 7F073B1C C64A0014 */ lwc1 $f10, 0x14($s2) -/* 0A6510 7F073B20 460A3203 */ div.s $f8, $f6, $f10 -/* 0A6514 7F073B24 E7A800D8 */ swc1 $f8, 0xd8($sp) -.L7F073B28: -/* 0A6518 7F073B28 C7A400D0 */ lwc1 $f4, 0xd0($sp) -/* 0A651C 7F073B2C C6060010 */ lwc1 $f6, 0x10($s0) -/* 0A6520 7F073B30 C7A800D4 */ lwc1 $f8, 0xd4($sp) -/* 0A6524 7F073B34 46062282 */ mul.s $f10, $f4, $f6 -/* 0A6528 7F073B38 C6040014 */ lwc1 $f4, 0x14($s0) -/* 0A652C 7F073B3C 46044182 */ mul.s $f6, $f8, $f4 -/* 0A6530 7F073B40 C6040018 */ lwc1 $f4, 0x18($s0) -/* 0A6534 7F073B44 46065200 */ add.s $f8, $f10, $f6 -/* 0A6538 7F073B48 C7AA00D8 */ lwc1 $f10, 0xd8($sp) -/* 0A653C 7F073B4C 460A2182 */ mul.s $f6, $f4, $f10 -/* 0A6540 7F073B50 0FC16C58 */ jal acosf -/* 0A6544 7F073B54 46083300 */ add.s $f12, $f6, $f8 -/* 0A6548 7F073B58 E7A000DC */ swc1 $f0, 0xdc($sp) -/* 0A654C 7F073B5C 0FC1606B */ jal sinf -/* 0A6550 7F073B60 46000306 */ mov.s $f12, $f0 -/* 0A6554 7F073B64 C7A400D0 */ lwc1 $f4, 0xd0($sp) -/* 0A6558 7F073B68 C60A0020 */ lwc1 $f10, 0x20($s0) -/* 0A655C 7F073B6C C7A800D4 */ lwc1 $f8, 0xd4($sp) -/* 0A6560 7F073B70 460A2182 */ mul.s $f6, $f4, $f10 -/* 0A6564 7F073B74 C6040024 */ lwc1 $f4, 0x24($s0) -/* 0A6568 7F073B78 46044282 */ mul.s $f10, $f8, $f4 -/* 0A656C 7F073B7C C7A400D8 */ lwc1 $f4, 0xd8($sp) -/* 0A6570 7F073B80 460A3200 */ add.s $f8, $f6, $f10 -/* 0A6574 7F073B84 C6060028 */ lwc1 $f6, 0x28($s0) -/* 0A6578 7F073B88 46062282 */ mul.s $f10, $f4, $f6 -/* 0A657C 7F073B8C 460A4100 */ add.s $f4, $f8, $f10 -/* 0A6580 7F073B90 46002187 */ neg.s $f6, $f4 -/* 0A6584 7F073B94 0FC16C58 */ jal acosf -/* 0A6588 7F073B98 46003303 */ div.s $f12, $f6, $f0 -/* 0A658C 7F073B9C C7A800D0 */ lwc1 $f8, 0xd0($sp) -/* 0A6590 7F073BA0 C60A0000 */ lwc1 $f10, ($s0) -/* 0A6594 7F073BA4 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* 0A6598 7F073BA8 46000306 */ mov.s $f12, $f0 -/* 0A659C 7F073BAC 460A4102 */ mul.s $f4, $f8, $f10 -/* 0A65A0 7F073BB0 C6080004 */ lwc1 $f8, 4($s0) -/* 0A65A4 7F073BB4 46083282 */ mul.s $f10, $f6, $f8 -/* 0A65A8 7F073BB8 C6080008 */ lwc1 $f8, 8($s0) -/* 0A65AC 7F073BBC 460A2180 */ add.s $f6, $f4, $f10 -/* 0A65B0 7F073BC0 C7A400D8 */ lwc1 $f4, 0xd8($sp) -/* 0A65B4 7F073BC4 46044282 */ mul.s $f10, $f8, $f4 -/* 0A65B8 7F073BC8 44804000 */ mtc1 $zero, $f8 -/* 0A65BC 7F073BCC 46065080 */ add.s $f2, $f10, $f6 -/* 0A65C0 7F073BD0 46001087 */ neg.s $f2, $f2 -/* 0A65C4 7F073BD4 4608103C */ c.lt.s $f2, $f8 -/* 0A65C8 7F073BD8 00000000 */ nop -/* 0A65CC 7F073BDC 45000003 */ bc1f .L7F073BEC -/* 0A65D0 7F073BE0 3C018005 */ lui $at, %hi(D_80054D50) # $at, 0x8005 -/* 0A65D4 7F073BE4 C424A928 */ lwc1 $f4, %lo(D_80054D50)($at) -/* 0A65D8 7F073BE8 46002301 */ sub.s $f12, $f4, $f0 -.L7F073BEC: -/* 0A65DC 7F073BEC 0FC16068 */ jal cosf -/* 0A65E0 7F073BF0 E7AC00E0 */ swc1 $f12, 0xe0($sp) -/* 0A65E4 7F073BF4 C7AC00E0 */ lwc1 $f12, 0xe0($sp) -/* 0A65E8 7F073BF8 0FC1606B */ jal sinf -/* 0A65EC 7F073BFC E7A000CC */ swc1 $f0, 0xcc($sp) -/* 0A65F0 7F073C00 E7A000C8 */ swc1 $f0, 0xc8($sp) -/* 0A65F4 7F073C04 0FC16068 */ jal cosf -/* 0A65F8 7F073C08 C7AC00DC */ lwc1 $f12, 0xdc($sp) -/* 0A65FC 7F073C0C E7A000C4 */ swc1 $f0, 0xc4($sp) -/* 0A6600 7F073C10 0FC1606B */ jal sinf -/* 0A6604 7F073C14 C7AC00DC */ lwc1 $f12, 0xdc($sp) -/* 0A6608 7F073C18 0C00262C */ jal randomGetNext -/* 0A660C 7F073C1C E7A000C0 */ swc1 $f0, 0xc0($sp) -/* 0A6610 7F073C20 304C007F */ andi $t4, $v0, 0x7f -/* 0A6614 7F073C24 448C5000 */ mtc1 $t4, $f10 -/* 0A6618 7F073C28 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0A661C 7F073C2C 44810000 */ mtc1 $at, $f0 -/* 0A6620 7F073C30 C7AC00CC */ lwc1 $f12, 0xcc($sp) -/* 0A6624 7F073C34 C7AE00C8 */ lwc1 $f14, 0xc8($sp) -/* 0A6628 7F073C38 C7B200C4 */ lwc1 $f18, 0xc4($sp) -/* 0A662C 7F073C3C 05810005 */ bgez $t4, .L7F073C54 -/* 0A6630 7F073C40 468051A0 */ cvt.s.w $f6, $f10 -/* 0A6634 7F073C44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0A6638 7F073C48 44814000 */ mtc1 $at, $f8 -/* 0A663C 7F073C4C 00000000 */ nop -/* 0A6640 7F073C50 46083180 */ add.s $f6, $f6, $f8 -.L7F073C54: -/* 0A6644 7F073C54 3C013B80 */ li $at, 0x3B800000 # 0.003906 -/* 0A6648 7F073C58 44812000 */ mtc1 $at, $f4 -/* 0A664C 7F073C5C 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 0A6650 7F073C60 44814000 */ mtc1 $at, $f8 -/* 0A6654 7F073C64 46043282 */ mul.s $f10, $f6, $f4 -/* 0A6658 7F073C68 C626000C */ lwc1 $f6, 0xc($s1) -/* 0A665C 7F073C6C 3C198003 */ lui $t9, %hi(vtxallocator) # $t9, 0x8003 -/* 0A6660 7F073C70 8F3915DC */ lw $t9, %lo(vtxallocator)($t9) -/* 0A6664 7F073C74 24040004 */ li $a0, 4 -/* 0A6668 7F073C78 46085080 */ add.s $f2, $f10, $f8 -/* 0A666C 7F073C7C 46023102 */ mul.s $f4, $f6, $f2 -/* 0A6670 7F073C80 E7A4008C */ swc1 $f4, 0x8c($sp) -/* 0A6674 7F073C84 C62A0010 */ lwc1 $f10, 0x10($s1) -/* 0A6678 7F073C88 46025202 */ mul.s $f8, $f10, $f2 -/* 0A667C 7F073C8C C7AA008C */ lwc1 $f10, 0x8c($sp) -/* 0A6680 7F073C90 E7A80090 */ swc1 $f8, 0x90($sp) -/* 0A6684 7F073C94 C6260014 */ lwc1 $f6, 0x14($s1) -/* 0A6688 7F073C98 46023102 */ mul.s $f4, $f6, $f2 -/* 0A668C 7F073C9C 00000000 */ nop -/* 0A6690 7F073CA0 460C5202 */ mul.s $f8, $f10, $f12 -/* 0A6694 7F073CA4 E7A40094 */ swc1 $f4, 0x94($sp) -/* 0A6698 7F073CA8 C7A40094 */ lwc1 $f4, 0x94($sp) -/* 0A669C 7F073CAC 46004182 */ mul.s $f6, $f8, $f0 -/* 0A66A0 7F073CB0 00000000 */ nop -/* 0A66A4 7F073CB4 460E2202 */ mul.s $f8, $f4, $f14 -/* 0A66A8 7F073CB8 E7A600BC */ swc1 $f6, 0xbc($sp) -/* 0A66AC 7F073CBC 46004182 */ mul.s $f6, $f8, $f0 -/* 0A66B0 7F073CC0 C7A80090 */ lwc1 $f8, 0x90($sp) -/* 0A66B4 7F073CC4 E7A600B8 */ swc1 $f6, 0xb8($sp) -/* 0A66B8 7F073CC8 C7A600C0 */ lwc1 $f6, 0xc0($sp) -/* 0A66BC 7F073CCC 46064202 */ mul.s $f8, $f8, $f6 -/* 0A66C0 7F073CD0 00000000 */ nop -/* 0A66C4 7F073CD4 46004402 */ mul.s $f16, $f8, $f0 -/* 0A66C8 7F073CD8 00000000 */ nop -/* 0A66CC 7F073CDC 46125182 */ mul.s $f6, $f10, $f18 -/* 0A66D0 7F073CE0 00000000 */ nop -/* 0A66D4 7F073CE4 460E3202 */ mul.s $f8, $f6, $f14 -/* 0A66D8 7F073CE8 00000000 */ nop -/* 0A66DC 7F073CEC 46004182 */ mul.s $f6, $f8, $f0 -/* 0A66E0 7F073CF0 00000000 */ nop -/* 0A66E4 7F073CF4 46122202 */ mul.s $f8, $f4, $f18 -/* 0A66E8 7F073CF8 E7A600B0 */ swc1 $f6, 0xb0($sp) -/* 0A66EC 7F073CFC 460C4182 */ mul.s $f6, $f8, $f12 -/* 0A66F0 7F073D00 00000000 */ nop -/* 0A66F4 7F073D04 46003102 */ mul.s $f4, $f6, $f0 -/* 0A66F8 7F073D08 E7A400AC */ swc1 $f4, 0xac($sp) -/* 0A66FC 7F073D0C 46005182 */ mul.s $f6, $f10, $f0 -/* 0A6700 7F073D10 C6280000 */ lwc1 $f8, ($s1) -/* 0A6704 7F073D14 46064101 */ sub.s $f4, $f8, $f6 -/* 0A6708 7F073D18 E7A40080 */ swc1 $f4, 0x80($sp) -/* 0A670C 7F073D1C C62A0004 */ lwc1 $f10, 4($s1) -/* 0A6710 7F073D20 E7AA0084 */ swc1 $f10, 0x84($sp) -/* 0A6714 7F073D24 C6280008 */ lwc1 $f8, 8($s1) -/* 0A6718 7F073D28 E7B000B4 */ swc1 $f16, 0xb4($sp) -/* 0A671C 7F073D2C 0320F809 */ jalr $t9 -/* 0A6720 7F073D30 E7A80088 */ swc1 $f8, 0x88($sp) -/* 0A6724 7F073D34 27A30070 */ addiu $v1, $sp, 0x70 -/* 0A6728 7F073D38 8C610000 */ lw $at, ($v1) -/* 0A672C 7F073D3C C7B000B4 */ lwc1 $f16, 0xb4($sp) -/* 0A6730 7F073D40 00409025 */ move $s2, $v0 -/* 0A6734 7F073D44 AC410000 */ sw $at, ($v0) -/* 0A6738 7F073D48 8C780004 */ lw $t8, 4($v1) -/* 0A673C 7F073D4C AC580004 */ sw $t8, 4($v0) -/* 0A6740 7F073D50 8C610008 */ lw $at, 8($v1) -/* 0A6744 7F073D54 AC410008 */ sw $at, 8($v0) -/* 0A6748 7F073D58 8C78000C */ lw $t8, 0xc($v1) -/* 0A674C 7F073D5C AC58000C */ sw $t8, 0xc($v0) -/* 0A6750 7F073D60 8C610000 */ lw $at, ($v1) -/* 0A6754 7F073D64 AC410010 */ sw $at, 0x10($v0) -/* 0A6758 7F073D68 8C6C0004 */ lw $t4, 4($v1) -/* 0A675C 7F073D6C AC4C0014 */ sw $t4, 0x14($v0) -/* 0A6760 7F073D70 8C610008 */ lw $at, 8($v1) -/* 0A6764 7F073D74 AC410018 */ sw $at, 0x18($v0) -/* 0A6768 7F073D78 8C6C000C */ lw $t4, 0xc($v1) -/* 0A676C 7F073D7C AC4C001C */ sw $t4, 0x1c($v0) -/* 0A6770 7F073D80 8C610000 */ lw $at, ($v1) -/* 0A6774 7F073D84 AC410020 */ sw $at, 0x20($v0) -/* 0A6778 7F073D88 8C6E0004 */ lw $t6, 4($v1) -/* 0A677C 7F073D8C AC4E0024 */ sw $t6, 0x24($v0) -/* 0A6780 7F073D90 8C610008 */ lw $at, 8($v1) -/* 0A6784 7F073D94 AC410028 */ sw $at, 0x28($v0) -/* 0A6788 7F073D98 8C6E000C */ lw $t6, 0xc($v1) -/* 0A678C 7F073D9C AC4E002C */ sw $t6, 0x2c($v0) -/* 0A6790 7F073DA0 8C610000 */ lw $at, ($v1) -/* 0A6794 7F073DA4 AC410030 */ sw $at, 0x30($v0) -/* 0A6798 7F073DA8 8C6B0004 */ lw $t3, 4($v1) -/* 0A679C 7F073DAC AC4B0034 */ sw $t3, 0x34($v0) -/* 0A67A0 7F073DB0 8C610008 */ lw $at, 8($v1) -/* 0A67A4 7F073DB4 AC410038 */ sw $at, 0x38($v0) -/* 0A67A8 7F073DB8 8C6B000C */ lw $t3, 0xc($v1) -/* 0A67AC 7F073DBC AC4B003C */ sw $t3, 0x3c($v0) -/* 0A67B0 7F073DC0 C7A000BC */ lwc1 $f0, 0xbc($sp) -/* 0A67B4 7F073DC4 C7A60080 */ lwc1 $f6, 0x80($sp) -/* 0A67B8 7F073DC8 C7AC00B0 */ lwc1 $f12, 0xb0($sp) -/* 0A67BC 7F073DCC 46000007 */ neg.s $f0, $f0 -/* 0A67C0 7F073DD0 46003100 */ add.s $f4, $f6, $f0 -/* 0A67C4 7F073DD4 46006307 */ neg.s $f12, $f12 -/* 0A67C8 7F073DD8 460C2280 */ add.s $f10, $f4, $f12 -/* 0A67CC 7F073DDC 4600520D */ trunc.w.s $f8, $f10 -/* 0A67D0 7F073DE0 440D4000 */ mfc1 $t5, $f8 -/* 0A67D4 7F073DE4 00000000 */ nop -/* 0A67D8 7F073DE8 A44D0000 */ sh $t5, ($v0) -/* 0A67DC 7F073DEC C7A60084 */ lwc1 $f6, 0x84($sp) -/* 0A67E0 7F073DF0 46103101 */ sub.s $f4, $f6, $f16 -/* 0A67E4 7F073DF4 4600228D */ trunc.w.s $f10, $f4 -/* 0A67E8 7F073DF8 440E5000 */ mfc1 $t6, $f10 -/* 0A67EC 7F073DFC 00000000 */ nop -/* 0A67F0 7F073E00 A44E0002 */ sh $t6, 2($v0) -/* 0A67F4 7F073E04 C7A200B8 */ lwc1 $f2, 0xb8($sp) -/* 0A67F8 7F073E08 C7A80088 */ lwc1 $f8, 0x88($sp) -/* 0A67FC 7F073E0C C7AE00AC */ lwc1 $f14, 0xac($sp) -/* 0A6800 7F073E10 46001087 */ neg.s $f2, $f2 -/* 0A6804 7F073E14 46024181 */ sub.s $f6, $f8, $f2 -/* 0A6808 7F073E18 46007387 */ neg.s $f14, $f14 -/* 0A680C 7F073E1C 460E3100 */ add.s $f4, $f6, $f14 -/* 0A6810 7F073E20 4600228D */ trunc.w.s $f10, $f4 -/* 0A6814 7F073E24 44185000 */ mfc1 $t8, $f10 -/* 0A6818 7F073E28 00000000 */ nop -/* 0A681C 7F073E2C A4580004 */ sh $t8, 4($v0) -/* 0A6820 7F073E30 C7A80080 */ lwc1 $f8, 0x80($sp) -/* 0A6824 7F073E34 46004180 */ add.s $f6, $f8, $f0 -/* 0A6828 7F073E38 460C3101 */ sub.s $f4, $f6, $f12 -/* 0A682C 7F073E3C 4600228D */ trunc.w.s $f10, $f4 -/* 0A6830 7F073E40 440C5000 */ mfc1 $t4, $f10 -/* 0A6834 7F073E44 00000000 */ nop -/* 0A6838 7F073E48 A44C0010 */ sh $t4, 0x10($v0) -/* 0A683C 7F073E4C C7A80084 */ lwc1 $f8, 0x84($sp) -/* 0A6840 7F073E50 46104180 */ add.s $f6, $f8, $f16 -/* 0A6844 7F073E54 4600310D */ trunc.w.s $f4, $f6 -/* 0A6848 7F073E58 44192000 */ mfc1 $t9, $f4 -/* 0A684C 7F073E5C 00000000 */ nop -/* 0A6850 7F073E60 A4590012 */ sh $t9, 0x12($v0) -/* 0A6854 7F073E64 C7AA0088 */ lwc1 $f10, 0x88($sp) -/* 0A6858 7F073E68 46025201 */ sub.s $f8, $f10, $f2 -/* 0A685C 7F073E6C 460E4181 */ sub.s $f6, $f8, $f14 -/* 0A6860 7F073E70 4600310D */ trunc.w.s $f4, $f6 -/* 0A6864 7F073E74 440F2000 */ mfc1 $t7, $f4 -/* 0A6868 7F073E78 00000000 */ nop -/* 0A686C 7F073E7C A44F0014 */ sh $t7, 0x14($v0) -/* 0A6870 7F073E80 C7AA0080 */ lwc1 $f10, 0x80($sp) -/* 0A6874 7F073E84 3C0FBC00 */ lui $t7, (0xBC001406 >> 16) # lui $t7, 0xbc00 -/* 0A6878 7F073E88 35EF1406 */ ori $t7, (0xBC001406 & 0xFFFF) # ori $t7, $t7, 0x1406 -/* 0A687C 7F073E8C 46005201 */ sub.s $f8, $f10, $f0 -/* 0A6880 7F073E90 460C4181 */ sub.s $f6, $f8, $f12 -/* 0A6884 7F073E94 4600310D */ trunc.w.s $f4, $f6 -/* 0A6888 7F073E98 440B2000 */ mfc1 $t3, $f4 -/* 0A688C 7F073E9C 00000000 */ nop -/* 0A6890 7F073EA0 A44B0020 */ sh $t3, 0x20($v0) -/* 0A6894 7F073EA4 C7AA0084 */ lwc1 $f10, 0x84($sp) -/* 0A6898 7F073EA8 46105200 */ add.s $f8, $f10, $f16 -/* 0A689C 7F073EAC 4600418D */ trunc.w.s $f6, $f8 -/* 0A68A0 7F073EB0 440D3000 */ mfc1 $t5, $f6 -/* 0A68A4 7F073EB4 00000000 */ nop -/* 0A68A8 7F073EB8 A44D0022 */ sh $t5, 0x22($v0) -/* 0A68AC 7F073EBC C7A40088 */ lwc1 $f4, 0x88($sp) -/* 0A68B0 7F073EC0 46022280 */ add.s $f10, $f4, $f2 -/* 0A68B4 7F073EC4 460E5201 */ sub.s $f8, $f10, $f14 -/* 0A68B8 7F073EC8 4600418D */ trunc.w.s $f6, $f8 -/* 0A68BC 7F073ECC 440E3000 */ mfc1 $t6, $f6 -/* 0A68C0 7F073ED0 00000000 */ nop -/* 0A68C4 7F073ED4 A44E0024 */ sh $t6, 0x24($v0) -/* 0A68C8 7F073ED8 C7A40080 */ lwc1 $f4, 0x80($sp) -/* 0A68CC 7F073EDC 46002281 */ sub.s $f10, $f4, $f0 -/* 0A68D0 7F073EE0 460C5200 */ add.s $f8, $f10, $f12 -/* 0A68D4 7F073EE4 4600418D */ trunc.w.s $f6, $f8 -/* 0A68D8 7F073EE8 44183000 */ mfc1 $t8, $f6 -/* 0A68DC 7F073EEC 00000000 */ nop -/* 0A68E0 7F073EF0 A4580030 */ sh $t8, 0x30($v0) -/* 0A68E4 7F073EF4 C7A40084 */ lwc1 $f4, 0x84($sp) -/* 0A68E8 7F073EF8 46102281 */ sub.s $f10, $f4, $f16 -/* 0A68EC 7F073EFC 4600520D */ trunc.w.s $f8, $f10 -/* 0A68F0 7F073F00 440C4000 */ mfc1 $t4, $f8 -/* 0A68F4 7F073F04 00000000 */ nop -/* 0A68F8 7F073F08 A44C0032 */ sh $t4, 0x32($v0) -/* 0A68FC 7F073F0C C7A60088 */ lwc1 $f6, 0x88($sp) -/* 0A6900 7F073F10 46023100 */ add.s $f4, $f6, $f2 -/* 0A6904 7F073F14 460E2280 */ add.s $f10, $f4, $f14 -/* 0A6908 7F073F18 4600520D */ trunc.w.s $f8, $f10 -/* 0A690C 7F073F1C 44194000 */ mfc1 $t9, $f8 -/* 0A6910 7F073F20 00000000 */ nop -/* 0A6914 7F073F24 A4590034 */ sh $t9, 0x34($v0) -/* 0A6918 7F073F28 8E63000C */ lw $v1, 0xc($s3) -/* 0A691C 7F073F2C 246E0008 */ addiu $t6, $v1, 8 -/* 0A6920 7F073F30 AE6E000C */ sw $t6, 0xc($s3) -/* 0A6924 7F073F34 AC6F0000 */ sw $t7, ($v1) -/* 0A6928 7F073F38 8E240024 */ lw $a0, 0x24($s1) -/* 0A692C 7F073F3C 0C003838 */ jal osVirtualToPhysical -/* 0A6930 7F073F40 AFA3005C */ sw $v1, 0x5c($sp) -/* 0A6934 7F073F44 8FA5005C */ lw $a1, 0x5c($sp) -/* 0A6938 7F073F48 02602025 */ move $a0, $s3 -/* 0A693C 7F073F4C ACA20004 */ sw $v0, 4($a1) -/* 0A6940 7F073F50 8E230018 */ lw $v1, 0x18($s1) -/* 0A6944 7F073F54 00002825 */ move $a1, $zero -/* 0A6948 7F073F58 10600036 */ beqz $v1, .L7F074034 -/* 0A694C 7F073F5C 00000000 */ nop -/* 0A6950 7F073F60 0C00262C */ jal randomGetNext -/* 0A6954 7F073F64 00608825 */ move $s1, $v1 -/* 0A6958 7F073F68 0002C280 */ sll $t8, $v0, 0xa -/* 0A695C 7F073F6C A7B80056 */ sh $t8, 0x56($sp) -/* 0A6960 7F073F70 0C0058B4 */ jal coss -/* 0A6964 7F073F74 3304FFFF */ andi $a0, $t8, 0xffff -/* 0A6968 7F073F78 922B0004 */ lbu $t3, 4($s1) -/* 0A696C 7F073F7C 97A40056 */ lhu $a0, 0x56($sp) -/* 0A6970 7F073F80 004B0019 */ multu $v0, $t3 -/* 0A6974 7F073F84 00004012 */ mflo $t0 -/* 0A6978 7F073F88 00086080 */ sll $t4, $t0, 2 -/* 0A697C 7F073F8C 01886023 */ subu $t4, $t4, $t0 -/* 0A6980 7F073F90 000C6080 */ sll $t4, $t4, 2 -/* 0A6984 7F073F94 01886023 */ subu $t4, $t4, $t0 -/* 0A6988 7F073F98 000C6080 */ sll $t4, $t4, 2 -/* 0A698C 7F073F9C 01886021 */ addu $t4, $t4, $t0 -/* 0A6990 7F073FA0 000C6080 */ sll $t4, $t4, 2 -/* 0A6994 7F073FA4 01886021 */ addu $t4, $t4, $t0 -/* 0A6998 7F073FA8 000C6C83 */ sra $t5, $t4, 0x12 -/* 0A699C 7F073FAC 0C0058C0 */ jal sins -/* 0A69A0 7F073FB0 AFAD0050 */ sw $t5, 0x50($sp) -/* 0A69A4 7F073FB4 92240004 */ lbu $a0, 4($s1) -/* 0A69A8 7F073FB8 8FA80050 */ lw $t0, 0x50($sp) -/* 0A69AC 7F073FBC 00440019 */ multu $v0, $a0 -/* 0A69B0 7F073FC0 00041900 */ sll $v1, $a0, 4 -/* 0A69B4 7F073FC4 00683023 */ subu $a2, $v1, $t0 -/* 0A69B8 7F073FC8 A6460008 */ sh $a2, 8($s2) -/* 0A69BC 7F073FCC A646001A */ sh $a2, 0x1a($s2) -/* 0A69C0 7F073FD0 00685021 */ addu $t2, $v1, $t0 -/* 0A69C4 7F073FD4 A64A0028 */ sh $t2, 0x28($s2) -/* 0A69C8 7F073FD8 A64A003A */ sh $t2, 0x3a($s2) -/* 0A69CC 7F073FDC 24060004 */ li $a2, 4 -/* 0A69D0 7F073FE0 02602025 */ move $a0, $s3 -/* 0A69D4 7F073FE4 00002812 */ mflo $a1 -/* 0A69D8 7F073FE8 0005C880 */ sll $t9, $a1, 2 -/* 0A69DC 7F073FEC 0325C823 */ subu $t9, $t9, $a1 -/* 0A69E0 7F073FF0 0019C880 */ sll $t9, $t9, 2 -/* 0A69E4 7F073FF4 0325C823 */ subu $t9, $t9, $a1 -/* 0A69E8 7F073FF8 0019C880 */ sll $t9, $t9, 2 -/* 0A69EC 7F073FFC 0325C821 */ addu $t9, $t9, $a1 -/* 0A69F0 7F074000 0019C880 */ sll $t9, $t9, 2 -/* 0A69F4 7F074004 0325C821 */ addu $t9, $t9, $a1 -/* 0A69F8 7F074008 00197483 */ sra $t6, $t9, 0x12 -/* 0A69FC 7F07400C 006E4823 */ subu $t1, $v1, $t6 -/* 0A6A00 7F074010 006E3821 */ addu $a3, $v1, $t6 -/* 0A6A04 7F074014 A649000A */ sh $t1, 0xa($s2) -/* 0A6A08 7F074018 A6470018 */ sh $a3, 0x18($s2) -/* 0A6A0C 7F07401C A647002A */ sh $a3, 0x2a($s2) -/* 0A6A10 7F074020 A6490038 */ sh $t1, 0x38($s2) -/* 0A6A14 7F074024 0FC1CC67 */ jal sub_GAME_7F073038 -/* 0A6A18 7F074028 02202825 */ move $a1, $s1 -/* 0A6A1C 7F07402C 10000004 */ b .L7F074040 -/* 0A6A20 7F074030 8E63000C */ lw $v1, 0xc($s3) -.L7F074034: -/* 0A6A24 7F074034 0FC1CC67 */ jal sub_GAME_7F073038 -/* 0A6A28 7F074038 24060001 */ li $a2, 1 -/* 0A6A2C 7F07403C 8E63000C */ lw $v1, 0xc($s3) -.L7F074040: -/* 0A6A30 7F074040 3C18B700 */ lui $t8, 0xb700 -/* 0A6A34 7F074044 240B2000 */ li $t3, 8192 -/* 0A6A38 7F074048 246F0008 */ addiu $t7, $v1, 8 -/* 0A6A3C 7F07404C AE6F000C */ sw $t7, 0xc($s3) -/* 0A6A40 7F074050 AC6B0004 */ sw $t3, 4($v1) -/* 0A6A44 7F074054 AC780000 */ sw $t8, ($v1) -/* 0A6A48 7F074058 8E71000C */ lw $s1, 0xc($s3) -/* 0A6A4C 7F07405C 3C0D0102 */ lui $t5, (0x01020040 >> 16) # lui $t5, 0x102 -/* 0A6A50 7F074060 35AD0040 */ ori $t5, (0x01020040 & 0xFFFF) # ori $t5, $t5, 0x40 -/* 0A6A54 7F074064 262C0008 */ addiu $t4, $s1, 8 -/* 0A6A58 7F074068 AE6C000C */ sw $t4, 0xc($s3) -/* 0A6A5C 7F07406C 02002025 */ move $a0, $s0 -/* 0A6A60 7F074070 0C003838 */ jal osVirtualToPhysical -/* 0A6A64 7F074074 AE2D0000 */ sw $t5, ($s1) -/* 0A6A68 7F074078 AE220004 */ sw $v0, 4($s1) -/* 0A6A6C 7F07407C 8E70000C */ lw $s0, 0xc($s3) -/* 0A6A70 7F074080 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 -/* 0A6A74 7F074084 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 -/* 0A6A78 7F074088 26190008 */ addiu $t9, $s0, 8 -/* 0A6A7C 7F07408C AE79000C */ sw $t9, 0xc($s3) -/* 0A6A80 7F074090 02402025 */ move $a0, $s2 -/* 0A6A84 7F074094 0C003838 */ jal osVirtualToPhysical -/* 0A6A88 7F074098 AE0E0000 */ sw $t6, ($s0) -/* 0A6A8C 7F07409C AE020004 */ sw $v0, 4($s0) -/* 0A6A90 7F0740A0 8E63000C */ lw $v1, 0xc($s3) -/* 0A6A94 7F0740A4 3C18B100 */ lui $t8, (0xB1000002 >> 16) # lui $t8, 0xb100 -/* 0A6A98 7F0740A8 37180002 */ ori $t8, (0xB1000002 & 0xFFFF) # ori $t8, $t8, 2 -/* 0A6A9C 7F0740AC 246F0008 */ addiu $t7, $v1, 8 -/* 0A6AA0 7F0740B0 AE6F000C */ sw $t7, 0xc($s3) -/* 0A6AA4 7F0740B4 240B3210 */ li $t3, 12816 -/* 0A6AA8 7F0740B8 AC6B0004 */ sw $t3, 4($v1) -/* 0A6AAC 7F0740BC AC780000 */ sw $t8, ($v1) -/* 0A6AB0 7F0740C0 8FBF0024 */ lw $ra, 0x24($sp) -.L7F0740C4eu: -/* 0A6AB4 7F0740C4 8FB00014 */ lw $s0, 0x14($sp) -/* 0A6AB8 7F0740C8 8FB10018 */ lw $s1, 0x18($sp) -/* 0A6ABC 7F0740CC 8FB2001C */ lw $s2, 0x1c($sp) -/* 0A6AC0 7F0740D0 8FB30020 */ lw $s3, 0x20($sp) -/* 0A6AC4 7F0740D4 03E00008 */ jr $ra -/* 0A6AC8 7F0740D8 27BD0100 */ addiu $sp, $sp, 0x100 -) -#endif -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F073FC8(void) { - +void sub_GAME_7F073FC8(s32 arg0) +{ + D_800363F0 = arg0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F073FC8 -/* 0A8AF8 7F073FC8 3C018003 */ lui $at, %hi(D_800363F0) -/* 0A8AFC 7F073FCC 03E00008 */ jr $ra -/* 0A8B00 7F073FD0 AC2463F0 */ sw $a0, %lo(D_800363F0)($at) -) -#endif - - @@ -11998,7 +6858,7 @@ glabel doshadow /* 0A8B5C 7F07402C AF010008 */ sw $at, 8($t8) /* 0A8B60 7F074030 8CC50014 */ lw $a1, 0x14($a2) /* 0A8B64 7F074034 AFA7007C */ sw $a3, 0x7c($sp) -/* 0A8B68 7F074038 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0A8B68 7F074038 0FC1B1E7 */ jal modelGetNodeRwData /* 0A8B6C 7F07403C AFA6006C */ sw $a2, 0x6c($sp) /* 0A8B70 7F074040 8E0A0008 */ lw $t2, 8($s0) /* 0A8B74 7F074044 8FA6006C */ lw $a2, 0x6c($sp) @@ -12352,7 +7212,7 @@ glabel doshadow /* 0A6B30 7F074140 AF010008 */ sw $at, 8($t8) /* 0A6B34 7F074144 8CC50014 */ lw $a1, 0x14($a2) /* 0A6B38 7F074148 AFA7007C */ sw $a3, 0x7c($sp) -/* 0A6B3C 7F07414C 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 0A6B3C 7F07414C 0FC1B3A3 */ jal modelGetNodeRwData /* 0A6B40 7F074150 AFA6006C */ sw $a2, 0x6c($sp) /* 0A6B44 7F074154 8E0B0008 */ lw $t3, 8($s0) /* 0A6B48 7F074158 8FA6006C */ lw $a2, 0x6c($sp) @@ -12683,154 +7543,68 @@ void sub_GAME_7F074524(Gfx *param_1,struct Model *param_2, struct ModelNode *par -#ifdef NONMATCHING -void sub_GAME_7F074534(void) { - /* - switch case modeltype - case 0 - parse type0(model) - case1 - parsetype1(model) - ... - */ + +void sub_GAME_7F074534(ModelRenderData* data, Model* model, ModelNode* node) { + u32 id = node->Opcode & 0xFF; + switch (id) { + case MODELNODE_OPCODE_LODRECORD: + sub_GAME_7F06E970(model, node); + return; + case MODELNODE_OPCODE_SWITCHRECORD: + process_12_handle_switch(model, node); + return; + case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: + process_17_pointer_to_head(model, node); + return; + case MODELNODE_OPCODE_BSPRECORD: + sub_GAME_7F06EB10(model, node); + return; + case MODELNODE_OPCODE_OP11RECORD: + sub_GAME_7F0737FC(data, model, node); + return; + case MODELNODE_OPCODE_GUNFIRERECORD: + dogfnegx(data, model, node); + return; + case MODELNODE_OPCODE_SHADOWRECORD: + doshadow(data, model, node); + return; + case MODELNODE_OPCODE_BOUNDINGBOXRECORD: + sub_GAME_7F074514(data, model, node); + return; + case MODELNODE_OPCODE_UNUSED_17: + sub_GAME_7F074524(data, model, node); + return; + case MODELNODE_OPCODE_DISPLAYLISTRECORD: + modelRenderNodeGundl(data, node); + return; + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + modelRenderNodeDl(data, model, node); + return; + case MODELNODE_OPCODE_UNUSED_20: + sub_GAME_7F072C10(data, model, node); + return; + case MODELNODE_OPCODE_DISPLAYLISTPRIMARYRECORD: + dorottex(data, node); + return; + case MODELNODE_OPCODE_UNUSED_05: + sub_GAME_7F07306C(data, model, node); + return; + case MODELNODE_OPCODE_OP07RECORD: + dotube(data, model, node); + return; + case MODELNODE_OPCODE_UNUSED_06: + sub_GAME_7F0737EC(data,model,node); + return; + case MODELNODE_OPCODE_HEADERRECORD: + case MODELNODE_OPCODE_GROUPRECORD: + case MODELNODE_OPCODE_UNUSED_03: + case MODELNODE_OPCODE_OP14RECORD: + case MODELNODE_OPCODE_INTERLINKAGERECORD: + case MODELNODE_OPCODE_OP16RECORD: + default: + return; + } } -#else -GLOBAL_ASM( -.late_rodata -/*80054D54*/ -glabel jpt_80054D54 -.word .L7F074674 -.word .L7F074674 -.word .L7F074674 -.word .L7F07460C -.word .L7F07464C -.word .L7F07466C -.word .L7F07465C -.word .L7F07456C -.word .L7F0745A8 -.word .L7F0745EC -.word .L7F0745BC -.word .L7F0745CC -.word .L7F0745DC -.word .L7F074674 -.word .L7F074674 -.word .L7F074674 -.word .L7F0745FC -.word .L7F074580 -.word .L7F074674 -.word .L7F07462C -.word .L7F074674 -.word .L7F07463C -.word .L7F074594 -.word .L7F07461C -.text -glabel sub_GAME_7F074534 -/* 0A9064 7F074534 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A9068 7F074538 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A906C 7F07453C 94C20000 */ lhu $v0, ($a2) -/* 0A9070 7F074540 00A03825 */ move $a3, $a1 -/* 0A9074 7F074544 304E00FF */ andi $t6, $v0, 0xff -/* 0A9078 7F074548 25CFFFFF */ addiu $t7, $t6, -1 -/* 0A907C 7F07454C 2DE10018 */ sltiu $at, $t7, 0x18 -/* 0A9080 7F074550 10200048 */ beqz $at, .L7F074674 -/* 0A9084 7F074554 000F7880 */ sll $t7, $t7, 2 -/* 0A9088 7F074558 3C018005 */ lui $at, %hi(jpt_80054D54) -/* 0A908C 7F07455C 002F0821 */ addu $at, $at, $t7 -/* 0A9090 7F074560 8C2F4D54 */ lw $t7, %lo(jpt_80054D54)($at) -.L7F074564: -/* 0A9094 7F074564 01E00008 */ jr $t7 -/* 0A9098 7F074568 00000000 */ nop -.L7F07456C: -/* 0A909C 7F07456C 00E02025 */ move $a0, $a3 -/* 0A90A0 7F074570 0FC1BA5C */ jal sub_GAME_7F06E970 -/* 0A90A4 7F074574 00C02825 */ move $a1, $a2 -/* 0A90A8 7F074578 1000003F */ b .L7F074678 -/* 0A90AC 7F07457C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F074580: -/* 0A90B0 7F074580 00E02025 */ move $a0, $a3 -/* 0A90B4 7F074584 0FC1BA6F */ jal process_12_handle_switch -/* 0A90B8 7F074588 00C02825 */ move $a1, $a2 -/* 0A90BC 7F07458C 1000003A */ b .L7F074678 -/* 0A90C0 7F074590 8FBF0014 */ lw $ra, 0x14($sp) -.L7F074594: -/* 0A90C4 7F074594 00E02025 */ move $a0, $a3 -/* 0A90C8 7F074598 0FC1BA82 */ jal process_17_pointer_to_head -/* 0A90CC 7F07459C 00C02825 */ move $a1, $a2 -/* 0A90D0 7F0745A0 10000035 */ b .L7F074678 -/* 0A90D4 7F0745A4 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0745A8: -/* 0A90D8 7F0745A8 00E02025 */ move $a0, $a3 -/* 0A90DC 7F0745AC 0FC1BAC4 */ jal sub_GAME_7F06EB10 -/* 0A90E0 7F0745B0 00C02825 */ move $a1, $a2 -/* 0A90E4 7F0745B4 10000030 */ b .L7F074678 -/* 0A90E8 7F0745B8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0745BC: -/* 0A90EC 7F0745BC 0FC1CDFF */ jal sub_GAME_7F0737FC -/* 0A90F0 7F0745C0 00E02825 */ move $a1, $a3 -/* 0A90F4 7F0745C4 1000002C */ b .L7F074678 -/* 0A90F8 7F0745C8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0745CC: -/* 0A90FC 7F0745CC 0FC1CE03 */ jal dogfnegx -/* 0A9100 7F0745D0 00E02825 */ move $a1, $a3 -/* 0A9104 7F0745D4 10000028 */ b .L7F074678 -/* 0A9108 7F0745D8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0745DC: -/* 0A910C 7F0745DC 0FC1CFF5 */ jal doshadow -/* 0A9110 7F0745E0 00E02825 */ move $a1, $a3 -/* 0A9114 7F0745E4 10000024 */ b .L7F074678 -/* 0A9118 7F0745E8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0745EC: -/* 0A911C 7F0745EC 0FC1D145 */ jal sub_GAME_7F074514 -/* 0A9120 7F0745F0 00E02825 */ move $a1, $a3 -/* 0A9124 7F0745F4 10000020 */ b .L7F074678 -/* 0A9128 7F0745F8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0745FC: -/* 0A912C 7F0745FC 0FC1D149 */ jal sub_GAME_7F074524 -/* 0A9130 7F074600 00E02825 */ move $a1, $a3 -/* 0A9134 7F074604 1000001C */ b .L7F074678 -/* 0A9138 7F074608 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07460C: -/* 0A913C 7F07460C 0FC1C9E1 */ jal sub_GAME_7F072784 -/* 0A9140 7F074610 00C02825 */ move $a1, $a2 -/* 0A9144 7F074614 10000018 */ b .L7F074678 -/* 0A9148 7F074618 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07461C: -/* 0A914C 7F07461C 0FC1CA61 */ jal sub_GAME_7F072984 -/* 0A9150 7F074620 00E02825 */ move $a1, $a3 -/* 0A9154 7F074624 10000014 */ b .L7F074678 -/* 0A9158 7F074628 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07462C: -/* 0A915C 7F07462C 0FC1CB04 */ jal sub_GAME_7F072C10 -/* 0A9160 7F074630 00E02825 */ move $a1, $a3 -/* 0A9164 7F074634 10000010 */ b .L7F074678 -/* 0A9168 7F074638 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07463C: -/* 0A916C 7F07463C 0FC1CB08 */ jal dorottex -/* 0A9170 7F074640 00C02825 */ move $a1, $a2 -/* 0A9174 7F074644 1000000C */ b .L7F074678 -/* 0A9178 7F074648 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07464C: -/* 0A917C 7F07464C 0FC1CC1B */ jal sub_GAME_7F07306C -/* 0A9180 7F074650 00E02825 */ move $a1, $a3 -/* 0A9184 7F074654 10000008 */ b .L7F074678 -/* 0A9188 7F074658 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07465C: -/* 0A918C 7F07465C 0FC1CC1F */ jal dotube -/* 0A9190 7F074660 00E02825 */ move $a1, $a3 -/* 0A9194 7F074664 10000004 */ b .L7F074678 -/* 0A9198 7F074668 8FBF0014 */ lw $ra, 0x14($sp) -.L7F07466C: -/* 0A919C 7F07466C 0FC1CDFB */ jal sub_GAME_7F0737EC -/* 0A91A0 7F074670 00E02825 */ move $a1, $a3 -def_7F074564: -.L7F074674: -/* 0A91A4 7F074674 8FBF0014 */ lw $ra, 0x14($sp) -.L7F074678: -/* 0A91A8 7F074678 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A91AC 7F07467C 03E00008 */ jr $ra -/* 0A91B0 7F074680 00000000 */ nop -) -#endif @@ -12990,37 +7764,12 @@ glabel subdraw #endif - - -#ifdef NONMATCHING -void sub_GAME_7F074790(void) { - +void sub_GAME_7F074790(struct unk_joint_list* arg0, Model* arg1) +{ + subcalcpos(arg1); + subcalcmatrices(arg0, arg1); + subdraw((s32) arg0, arg1); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F074790 -/* 0A92C0 7F074790 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0A92C4 7F074794 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A92C8 7F074798 AFA40018 */ sw $a0, 0x18($sp) -/* 0A92CC 7F07479C AFA5001C */ sw $a1, 0x1c($sp) -/* 0A92D0 7F0747A0 0FC1B5AC */ jal subcalcpos -/* 0A92D4 7F0747A4 00A02025 */ move $a0, $a1 -/* 0A92D8 7F0747A8 8FA40018 */ lw $a0, 0x18($sp) -/* 0A92DC 7F0747AC 0FC1BCBE */ jal subcalcmatrices -/* 0A92E0 7F0747B0 8FA5001C */ lw $a1, 0x1c($sp) -/* 0A92E4 7F0747B4 8FA40018 */ lw $a0, 0x18($sp) -/* 0A92E8 7F0747B8 0FC1D1A1 */ jal subdraw -/* 0A92EC 7F0747BC 8FA5001C */ lw $a1, 0x1c($sp) -/* 0A92F0 7F0747C0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A92F4 7F0747C4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0A92F8 7F0747C8 03E00008 */ jr $ra -/* 0A92FC 7F0747CC 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -14004,572 +8753,263 @@ glabel sub_GAME_7F07549C #endif +s32 sub_GAME_7F0754BC(ModelAnimation* arg0, s32 arg1, ModelSkeleton* arg2) +{ + s32 ret; + s32 var_a1; + s32 shiftede; + u32 tmp; + u32 temp_a2_2; + ret = 0; + shiftede = arg0->unk0E >> 3; - -#ifdef NONMATCHING -s32 sub_GAME_7F0754BC(void *arg0, s32 arg1, ? arg2) { - s32 temp_t6; - s32 temp_t2; - s32 temp_a1; - s32 phi_a1; - s32 phi_v1; - s32 phi_a3; - s32 phi_a3_2; - - // Node 0 - temp_t6 = ((s32) arg0->unkE >> 3); - if ((*arg0 << 0) < 0) + if (arg0->unk00 & 0x80000000) { - // Node 1 - phi_a3_2 = (*arg0 + (arg1 * temp_t6)); + ret = arg0->unk00 + (arg1 * shiftede); } - else + else if (D_80036414 != NULL) { - // Node 2 - phi_a3_2 = 0; - if (D_80036414 != 0) + tmp = ((u32) (D_80036414->unk08 + 0xF) >> 4) * 0x10; + ret = tmp; + var_a1 = arg0->unk00 + (arg1 * shiftede); + if (var_a1 & 1) { - // Node 3 - temp_t2 = (((u32) (D_80036414->unk8 + 0xf) >> 4) * 0x10); - temp_a1 = (*arg0 + (arg1 * temp_t6)); - phi_a1 = temp_a1; - phi_v1 = temp_t6; - phi_a3 = temp_t2; - if ((temp_a1 & 1) != 0) - { - // Node 4 - phi_a1 = (temp_a1 + -1); - phi_v1 = (temp_t6 + 1); - phi_a3 = (temp_t2 + 1); - } - // Node 5 - romCopy(temp_t2, phi_a1, (((u32) (phi_v1 + 0xf) >> 4) * 0x10), phi_a3); - *D_80036414 = (s32) (*D_80036414 + 1); - D_80036414->unk8 = (s32) (sp20 + sp18); - phi_a3_2 = sp2C; + var_a1--; + shiftede++; + ret++; } - // Node 6 + temp_a2_2 = ((u32) (shiftede + 0xF) >> 4) * 0x10; + romCopy((void* ) tmp, (void* ) var_a1, temp_a2_2); + D_80036414->unk00 += 1; + D_80036414->unk08 = tmp + temp_a2_2; } - // Node 7 - return phi_a3_2; + return ret; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0754BC -/* 0A9FEC 7F0754BC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0A9FF0 7F0754C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A9FF4 7F0754C4 AFA50034 */ sw $a1, 0x34($sp) -/* 0A9FF8 7F0754C8 AFA60038 */ sw $a2, 0x38($sp) -/* 0A9FFC 7F0754CC 9483000E */ lhu $v1, 0xe($a0) -/* 0AA000 7F0754D0 8C860000 */ lw $a2, ($a0) -/* 0AA004 7F0754D4 00003825 */ move $a3, $zero -/* 0AA008 7F0754D8 000370C3 */ sra $t6, $v1, 3 -/* 0AA00C 7F0754DC 00067800 */ sll $t7, $a2, 0 -/* 0AA010 7F0754E0 05E10006 */ bgez $t7, .L7F0754FC -/* 0AA014 7F0754E4 01C01825 */ move $v1, $t6 -/* 0AA018 7F0754E8 00AE0019 */ multu $a1, $t6 -/* 0AA01C 7F0754EC 0000C812 */ mflo $t9 -/* 0AA020 7F0754F0 00D93821 */ addu $a3, $a2, $t9 -/* 0AA024 7F0754F4 1000002A */ b .L7F0755A0 -/* 0AA028 7F0754F8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0754FC: -/* 0AA02C 7F0754FC 3C088003 */ lui $t0, %hi(D_80036414) -/* 0AA030 7F075500 25086414 */ addiu $t0, %lo(D_80036414) # addiu $t0, $t0, 0x6414 -/* 0AA034 7F075504 8D020000 */ lw $v0, ($t0) -/* 0AA038 7F075508 8FAB0034 */ lw $t3, 0x34($sp) -/* 0AA03C 7F07550C 50400024 */ beql $v0, $zero, .L7F0755A0 -/* 0AA040 7F075510 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AA044 7F075514 01630019 */ multu $t3, $v1 -/* 0AA048 7F075518 8C440008 */ lw $a0, 8($v0) -/* 0AA04C 7F07551C 2484000F */ addiu $a0, $a0, 0xf -/* 0AA050 7F075520 00044902 */ srl $t1, $a0, 4 -/* 0AA054 7F075524 00095100 */ sll $t2, $t1, 4 -/* 0AA058 7F075528 01402025 */ move $a0, $t2 -/* 0AA05C 7F07552C 01403825 */ move $a3, $t2 -/* 0AA060 7F075530 00006012 */ mflo $t4 -/* 0AA064 7F075534 00CC2821 */ addu $a1, $a2, $t4 -/* 0AA068 7F075538 30AD0001 */ andi $t5, $a1, 1 -/* 0AA06C 7F07553C 51A00005 */ beql $t5, $zero, .L7F075554 -/* 0AA070 7F075540 2466000F */ addiu $a2, $v1, 0xf -/* 0AA074 7F075544 24A5FFFF */ addiu $a1, $a1, -1 -/* 0AA078 7F075548 24630001 */ addiu $v1, $v1, 1 -/* 0AA07C 7F07554C 25470001 */ addiu $a3, $t2, 1 -/* 0AA080 7F075550 2466000F */ addiu $a2, $v1, 0xf -.L7F075554: -/* 0AA084 7F075554 00067102 */ srl $t6, $a2, 4 -/* 0AA088 7F075558 000E3100 */ sll $a2, $t6, 4 -/* 0AA08C 7F07555C AFA60018 */ sw $a2, 0x18($sp) -/* 0AA090 7F075560 AFA40020 */ sw $a0, 0x20($sp) -/* 0AA094 7F075564 0C001707 */ jal romCopy -/* 0AA098 7F075568 AFA7002C */ sw $a3, 0x2c($sp) -/* 0AA09C 7F07556C 3C088003 */ lui $t0, %hi(D_80036414) -/* 0AA0A0 7F075570 25086414 */ addiu $t0, %lo(D_80036414) # addiu $t0, $t0, 0x6414 -/* 0AA0A4 7F075574 8D020000 */ lw $v0, ($t0) -/* 0AA0A8 7F075578 8FA40020 */ lw $a0, 0x20($sp) -/* 0AA0AC 7F07557C 8FA60018 */ lw $a2, 0x18($sp) -/* 0AA0B0 7F075580 8C580000 */ lw $t8, ($v0) -/* 0AA0B4 7F075584 8FA7002C */ lw $a3, 0x2c($sp) -/* 0AA0B8 7F075588 00864821 */ addu $t1, $a0, $a2 -/* 0AA0BC 7F07558C 27190001 */ addiu $t9, $t8, 1 -/* 0AA0C0 7F075590 AC590000 */ sw $t9, ($v0) -/* 0AA0C4 7F075594 8D0A0000 */ lw $t2, ($t0) -/* 0AA0C8 7F075598 AD490008 */ sw $t1, 8($t2) -/* 0AA0CC 7F07559C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0755A0: -/* 0AA0D0 7F0755A0 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0AA0D4 7F0755A4 00E01025 */ move $v0, $a3 -/* 0AA0D8 7F0755A8 03E00008 */ jr $ra -/* 0AA0DC 7F0755AC 00000000 */ nop -) -#endif +void sub_GAME_7F0755B0(void) +{ + if (D_80036414 != NULL) + { + D_80036414->unk08 = D_80036414->unk04; + D_80036414->unk00 = NULL; + } +} +#define PROMOTE(var) \ + if (var) \ + var = (void *)((u32)var + diff) + +void convert_obj_microcode_offset_to_rdram_addr(ModelNode *node, u32 vma, u32 fileramaddr) +{ + s32 diff = fileramaddr - vma; + s32 i; + + while (node) + { + u32 type = node->Opcode & 0xff; + + PROMOTE(node->Data); + PROMOTE(node->Parent); + PROMOTE(node->Next); + PROMOTE(node->Prev); + PROMOTE(node->Child); + + switch (type) + { + case MODELNODE_OPCODE_HEADERRECORD: + { + ModelRoData_HeaderRecord* rodata = &node->Data->Header; + PROMOTE(rodata->FirstGroup); + break; + } + + case MODELNODE_OPCODE_GROUPRECORD: + { + ModelRoData_GroupRecord* rodata = &node->Data->Group; + PROMOTE(rodata->ChildGroup); + break; + } + + case MODELNODE_OPCODE_UNUSED_03: + { + ModelRoData_GroupRecord* rodata = &node->Data->Group; + PROMOTE(rodata->ChildGroup); + break; + } + + case MODELNODE_OPCODE_DISPLAYLISTRECORD: + { + ModelRoData_DisplayListRecord* rodata = &node->Data->DisplayList; + PROMOTE(rodata->Vertices); + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + { + ModelRoData_DisplayList_CollisionRecord* rodata = &node->Data->DisplayListCollisions; + PROMOTE(rodata->Vertices); + PROMOTE(rodata->CollisionVertices); + PROMOTE(rodata->PointUsage); + for (i = 0; i < rodata->numCollisionVertices; i++) + { + PROMOTE(rodata->CollisionVertices[i].LinkedTo); + } + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_UNUSED_20: + { + ModelRoData_HeaderRecord* rodata = &node->Data->Header; + PROMOTE(rodata->FirstGroup); + break; + } + + case MODELNODE_OPCODE_UNUSED_05: + { + ModelRoData_Op05Record* rodata = &node->Data->Op05; + + // shared with op07 + PROMOTE(rodata->Children); + PROMOTE(rodata->Vertices); + PROMOTE(rodata->Images); + for (i = 0; i < rodata->NumChildren; i++) + { + PROMOTE(rodata->Children[i].unk04); + } + + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_OP07RECORD: + { + ModelRoData_Op07Record* rodata = &node->Data->Op07; + PROMOTE(rodata->unk00); + PROMOTE(rodata->unk04); + + // shared with op05 + PROMOTE(rodata->Children); + PROMOTE(rodata->Vertices); + PROMOTE(rodata->Images); + for (i = 0; i < rodata->NumChildren; i++) + { + PROMOTE(rodata->Children[i].unk04); + } + + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_UNUSED_06: + { + ModelRoData_Op06Record* rodata = &node->Data->Op06; + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_LODRECORD: + { + ModelRoData_LODRecord* rodata = &node->Data->LOD; + PROMOTE(rodata->Affects); + node->Child = rodata->Affects; + break; + } + + case MODELNODE_OPCODE_SWITCHRECORD: + { + ModelRoData_SwitchRecord* rodata = &node->Data->Switch; + PROMOTE(rodata->Controls); + break; + } + + case MODELNODE_OPCODE_BSPRECORD: + { + ModelRoData_BSPRecord* rodata = &node->Data->BSP; + PROMOTE(rodata->leftChild); + PROMOTE(rodata->rightChild); + break; + } + + case MODELNODE_OPCODE_UNUSED_17: + { + ModelRoData_GroupRecord* rodata = &node->Data->Group; + PROMOTE(rodata->ChildGroup); + break; + } + + case MODELNODE_OPCODE_OP11RECORD: + { + ModelRoData_Op11Record* rodata = &node->Data->Op11; + PROMOTE(rodata->unk0c[15]); + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_GUNFIRERECORD: + { + ModelRoData_GunfireRecord* rodata = &node->Data->Gunfire; + PROMOTE(rodata->Image); + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_SHADOWRECORD: + { + ModelRoData_ShadowRecord* rodata = &node->Data->Shadow; + PROMOTE(rodata->image); + PROMOTE(rodata->Header); + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + case MODELNODE_OPCODE_DISPLAYLISTPRIMARYRECORD: + { + ModelRoData_DisplayListPrimaryRecord* rodata = &node->Data->DisplayListPrimary; + PROMOTE(rodata->Vertices); + rodata->BaseAddr = (void *)fileramaddr; + break; + } + + default: + break; + } + + if (node->Child) + { + node = node->Child; + } + else + { + while (node) + { + if (node->Next) + { + node = node->Next; + break; + } + + node = node->Parent; + } + } + } +} + #ifdef NONMATCHING -void sub_GAME_7F0755B0(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0755B0 -/* 0AA0E0 7F0755B0 3C038003 */ lui $v1, %hi(D_80036414) -/* 0AA0E4 7F0755B4 24636414 */ addiu $v1, %lo(D_80036414) # addiu $v1, $v1, 0x6414 -/* 0AA0E8 7F0755B8 8C620000 */ lw $v0, ($v1) -/* 0AA0EC 7F0755BC 10400005 */ beqz $v0, .L7F0755D4 -/* 0AA0F0 7F0755C0 00000000 */ nop -/* 0AA0F4 7F0755C4 8C4E0004 */ lw $t6, 4($v0) -/* 0AA0F8 7F0755C8 AC4E0008 */ sw $t6, 8($v0) -/* 0AA0FC 7F0755CC 8C6F0000 */ lw $t7, ($v1) -/* 0AA100 7F0755D0 ADE00000 */ sw $zero, ($t7) -.L7F0755D4: -/* 0AA104 7F0755D4 03E00008 */ jr $ra -/* 0AA108 7F0755D8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void convert_obj_microcode_offset_to_rdram_addr(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -/*D:80054E14*/ -glabel jpt_80054E14 -.word .L7F075678 -.word .L7F075698 -.word .L7F0756B8 -.word .L7F0756D8 -.word .L7F0757AC -.word .L7F0758F4 -.word .L7F07583C -.word .L7F075904 -.word .L7F07594C -.word .L7F075A44 -.word .L7F0759A0 -.word .L7F0759C4 -.word .L7F0759E8 -.word .L7F075A44 -.word .L7F075A44 -.word .L7F075A44 -.word .L7F075980 -.word .L7F07592C -.word .L7F075A44 -.word .L7F07578C -.word .L7F075A44 -.word .L7F075A20 -.word .L7F075A44 -.word .L7F0756FC - -.text -glabel convert_obj_microcode_offset_to_rdram_addr -/* 0AA10C 7F0755DC 1080012A */ beqz $a0, .L7F075A88 -/* 0AA110 7F0755E0 00000000 */ nop -/* 0AA114 7F0755E4 94820000 */ lhu $v0, ($a0) -.L7F0755E8: -/* 0AA118 7F0755E8 8C830004 */ lw $v1, 4($a0) -/* 0AA11C 7F0755EC 00C57823 */ subu $t7, $a2, $a1 -/* 0AA120 7F0755F0 304E00FF */ andi $t6, $v0, 0xff -/* 0AA124 7F0755F4 10600003 */ beqz $v1, .L7F075604 -/* 0AA128 7F0755F8 01C01025 */ move $v0, $t6 -/* 0AA12C 7F0755FC 006FC021 */ addu $t8, $v1, $t7 -/* 0AA130 7F075600 AC980004 */ sw $t8, 4($a0) -.L7F075604: -/* 0AA134 7F075604 8C830008 */ lw $v1, 8($a0) -/* 0AA138 7F075608 00C5C823 */ subu $t9, $a2, $a1 -/* 0AA13C 7F07560C 00C56023 */ subu $t4, $a2, $a1 -/* 0AA140 7F075610 10600002 */ beqz $v1, .L7F07561C -/* 0AA144 7F075614 00795821 */ addu $t3, $v1, $t9 -/* 0AA148 7F075618 AC8B0008 */ sw $t3, 8($a0) -.L7F07561C: -/* 0AA14C 7F07561C 8C83000C */ lw $v1, 0xc($a0) -/* 0AA150 7F075620 244BFFFF */ addiu $t3, $v0, -1 -/* 0AA154 7F075624 2D610018 */ sltiu $at, $t3, 0x18 -/* 0AA158 7F075628 10600002 */ beqz $v1, .L7F075634 -/* 0AA15C 7F07562C 006C6821 */ addu $t5, $v1, $t4 -/* 0AA160 7F075630 AC8D000C */ sw $t5, 0xc($a0) -.L7F075634: -/* 0AA164 7F075634 8C830010 */ lw $v1, 0x10($a0) -/* 0AA168 7F075638 00C57023 */ subu $t6, $a2, $a1 -/* 0AA16C 7F07563C 00C5C023 */ subu $t8, $a2, $a1 -/* 0AA170 7F075640 10600002 */ beqz $v1, .L7F07564C -/* 0AA174 7F075644 006E7821 */ addu $t7, $v1, $t6 -/* 0AA178 7F075648 AC8F0010 */ sw $t7, 0x10($a0) -.L7F07564C: -/* 0AA17C 7F07564C 8C830014 */ lw $v1, 0x14($a0) -/* 0AA180 7F075650 000B5880 */ sll $t3, $t3, 2 -/* 0AA184 7F075654 10600002 */ beqz $v1, .L7F075660 -/* 0AA188 7F075658 0078C821 */ addu $t9, $v1, $t8 -/* 0AA18C 7F07565C AC990014 */ sw $t9, 0x14($a0) -.L7F075660: -/* 0AA190 7F075660 102000F8 */ beqz $at, .L7F075A44 -/* 0AA194 7F075664 3C018005 */ lui $at, %hi(jpt_80054E14) -/* 0AA198 7F075668 002B0821 */ addu $at, $at, $t3 -/* 0AA19C 7F07566C 8C2B4E14 */ lw $t3, %lo(jpt_80054E14)($at) -.L7F075670: -/* 0AA1A0 7F075670 01600008 */ jr $t3 -/* 0AA1A4 7F075674 00000000 */ nop -.L7F075678: -/* 0AA1A8 7F075678 8C820004 */ lw $v0, 4($a0) -/* 0AA1AC 7F07567C 00C56023 */ subu $t4, $a2, $a1 -/* 0AA1B0 7F075680 8C430004 */ lw $v1, 4($v0) -/* 0AA1B4 7F075684 10600002 */ beqz $v1, .L7F075690 -/* 0AA1B8 7F075688 006C6821 */ addu $t5, $v1, $t4 -/* 0AA1BC 7F07568C AC4D0004 */ sw $t5, 4($v0) -.L7F075690: -/* 0AA1C0 7F075690 100000ED */ b .L7F075A48 -/* 0AA1C4 7F075694 8C830014 */ lw $v1, 0x14($a0) -.L7F075698: -/* 0AA1C8 7F075698 8C820004 */ lw $v0, 4($a0) -/* 0AA1CC 7F07569C 00C57023 */ subu $t6, $a2, $a1 -/* 0AA1D0 7F0756A0 8C430014 */ lw $v1, 0x14($v0) -/* 0AA1D4 7F0756A4 10600002 */ beqz $v1, .L7F0756B0 -/* 0AA1D8 7F0756A8 006E7821 */ addu $t7, $v1, $t6 -/* 0AA1DC 7F0756AC AC4F0014 */ sw $t7, 0x14($v0) -.L7F0756B0: -/* 0AA1E0 7F0756B0 100000E5 */ b .L7F075A48 -/* 0AA1E4 7F0756B4 8C830014 */ lw $v1, 0x14($a0) -.L7F0756B8: -/* 0AA1E8 7F0756B8 8C820004 */ lw $v0, 4($a0) -/* 0AA1EC 7F0756BC 00C5C023 */ subu $t8, $a2, $a1 -/* 0AA1F0 7F0756C0 8C430014 */ lw $v1, 0x14($v0) -/* 0AA1F4 7F0756C4 10600002 */ beqz $v1, .L7F0756D0 -/* 0AA1F8 7F0756C8 0078C821 */ addu $t9, $v1, $t8 -/* 0AA1FC 7F0756CC AC590014 */ sw $t9, 0x14($v0) -.L7F0756D0: -/* 0AA200 7F0756D0 100000DD */ b .L7F075A48 -/* 0AA204 7F0756D4 8C830014 */ lw $v1, 0x14($a0) -.L7F0756D8: -/* 0AA208 7F0756D8 8C820004 */ lw $v0, 4($a0) -/* 0AA20C 7F0756DC 00C55823 */ subu $t3, $a2, $a1 -/* 0AA210 7F0756E0 8C43000C */ lw $v1, 0xc($v0) -/* 0AA214 7F0756E4 10600002 */ beqz $v1, .L7F0756F0 -/* 0AA218 7F0756E8 006B6021 */ addu $t4, $v1, $t3 -/* 0AA21C 7F0756EC AC4C000C */ sw $t4, 0xc($v0) -.L7F0756F0: -/* 0AA220 7F0756F0 AC460008 */ sw $a2, 8($v0) -/* 0AA224 7F0756F4 100000D4 */ b .L7F075A48 -/* 0AA228 7F0756F8 8C830014 */ lw $v1, 0x14($a0) -.L7F0756FC: -/* 0AA22C 7F0756FC 8C870004 */ lw $a3, 4($a0) -/* 0AA230 7F075700 00C56823 */ subu $t5, $a2, $a1 -/* 0AA234 7F075704 00001025 */ move $v0, $zero -/* 0AA238 7F075708 8CE30008 */ lw $v1, 8($a3) -/* 0AA23C 7F07570C 00C57823 */ subu $t7, $a2, $a1 -/* 0AA240 7F075710 00C5C823 */ subu $t9, $a2, $a1 -/* 0AA244 7F075714 10600002 */ beqz $v1, .L7F075720 -/* 0AA248 7F075718 006D7021 */ addu $t6, $v1, $t5 -/* 0AA24C 7F07571C ACEE0008 */ sw $t6, 8($a3) -.L7F075720: -/* 0AA250 7F075720 8CE30010 */ lw $v1, 0x10($a3) -/* 0AA254 7F075724 00004025 */ move $t0, $zero -/* 0AA258 7F075728 10600002 */ beqz $v1, .L7F075734 -/* 0AA25C 7F07572C 006FC021 */ addu $t8, $v1, $t7 -/* 0AA260 7F075730 ACF80010 */ sw $t8, 0x10($a3) -.L7F075734: -/* 0AA264 7F075734 8CE30014 */ lw $v1, 0x14($a3) -/* 0AA268 7F075738 10600002 */ beqz $v1, .L7F075744 -/* 0AA26C 7F07573C 00795821 */ addu $t3, $v1, $t9 -/* 0AA270 7F075740 ACEB0014 */ sw $t3, 0x14($a3) -.L7F075744: -/* 0AA274 7F075744 84E3000E */ lh $v1, 0xe($a3) -/* 0AA278 7F075748 5860000E */ blezl $v1, .L7F075784 -/* 0AA27C 7F07574C ACE6001C */ sw $a2, 0x1c($a3) -.L7F075750: -/* 0AA280 7F075750 8CEC0010 */ lw $t4, 0x10($a3) -/* 0AA284 7F075754 00C56823 */ subu $t5, $a2, $a1 -/* 0AA288 7F075758 24420001 */ addiu $v0, $v0, 1 -/* 0AA28C 7F07575C 01884821 */ addu $t1, $t4, $t0 -/* 0AA290 7F075760 8D2A0008 */ lw $t2, 8($t1) -/* 0AA294 7F075764 11400003 */ beqz $t2, .L7F075774 -/* 0AA298 7F075768 014D7021 */ addu $t6, $t2, $t5 -/* 0AA29C 7F07576C AD2E0008 */ sw $t6, 8($t1) -/* 0AA2A0 7F075770 84E3000E */ lh $v1, 0xe($a3) -.L7F075774: -/* 0AA2A4 7F075774 0043082A */ slt $at, $v0, $v1 -/* 0AA2A8 7F075778 1420FFF5 */ bnez $at, .L7F075750 -/* 0AA2AC 7F07577C 25080010 */ addiu $t0, $t0, 0x10 -/* 0AA2B0 7F075780 ACE6001C */ sw $a2, 0x1c($a3) -.L7F075784: -/* 0AA2B4 7F075784 100000B0 */ b .L7F075A48 -/* 0AA2B8 7F075788 8C830014 */ lw $v1, 0x14($a0) -.L7F07578C: -/* 0AA2BC 7F07578C 8C820004 */ lw $v0, 4($a0) -/* 0AA2C0 7F075790 00C57823 */ subu $t7, $a2, $a1 -/* 0AA2C4 7F075794 8C430004 */ lw $v1, 4($v0) -/* 0AA2C8 7F075798 10600002 */ beqz $v1, .L7F0757A4 -/* 0AA2CC 7F07579C 006FC021 */ addu $t8, $v1, $t7 -/* 0AA2D0 7F0757A0 AC580004 */ sw $t8, 4($v0) -.L7F0757A4: -/* 0AA2D4 7F0757A4 100000A8 */ b .L7F075A48 -/* 0AA2D8 7F0757A8 8C830014 */ lw $v1, 0x14($a0) -.L7F0757AC: -/* 0AA2DC 7F0757AC 8C870004 */ lw $a3, 4($a0) -/* 0AA2E0 7F0757B0 00C5C823 */ subu $t9, $a2, $a1 -/* 0AA2E4 7F0757B4 00001025 */ move $v0, $zero -/* 0AA2E8 7F0757B8 8CE30004 */ lw $v1, 4($a3) -/* 0AA2EC 7F0757BC 00C56023 */ subu $t4, $a2, $a1 -/* 0AA2F0 7F0757C0 00C57023 */ subu $t6, $a2, $a1 -/* 0AA2F4 7F0757C4 10600002 */ beqz $v1, .L7F0757D0 -/* 0AA2F8 7F0757C8 00795821 */ addu $t3, $v1, $t9 -/* 0AA2FC 7F0757CC ACEB0004 */ sw $t3, 4($a3) -.L7F0757D0: -/* 0AA300 7F0757D0 8CE30008 */ lw $v1, 8($a3) -/* 0AA304 7F0757D4 00004025 */ move $t0, $zero -/* 0AA308 7F0757D8 10600002 */ beqz $v1, .L7F0757E4 -/* 0AA30C 7F0757DC 006C6821 */ addu $t5, $v1, $t4 -/* 0AA310 7F0757E0 ACED0008 */ sw $t5, 8($a3) -.L7F0757E4: -/* 0AA314 7F0757E4 8CE3000C */ lw $v1, 0xc($a3) -/* 0AA318 7F0757E8 10600002 */ beqz $v1, .L7F0757F4 -/* 0AA31C 7F0757EC 006E7821 */ addu $t7, $v1, $t6 -/* 0AA320 7F0757F0 ACEF000C */ sw $t7, 0xc($a3) -.L7F0757F4: -/* 0AA324 7F0757F4 8CE30000 */ lw $v1, ($a3) -/* 0AA328 7F0757F8 5860000E */ blezl $v1, .L7F075834 -/* 0AA32C 7F0757FC ACE601A4 */ sw $a2, 0x1a4($a3) -.L7F075800: -/* 0AA330 7F075800 8CF80004 */ lw $t8, 4($a3) -/* 0AA334 7F075804 00C5C823 */ subu $t9, $a2, $a1 -/* 0AA338 7F075808 24420001 */ addiu $v0, $v0, 1 -/* 0AA33C 7F07580C 03084821 */ addu $t1, $t8, $t0 -/* 0AA340 7F075810 8D2A0004 */ lw $t2, 4($t1) -/* 0AA344 7F075814 11400003 */ beqz $t2, .L7F075824 -/* 0AA348 7F075818 01595821 */ addu $t3, $t2, $t9 -/* 0AA34C 7F07581C AD2B0004 */ sw $t3, 4($t1) -/* 0AA350 7F075820 8CE30000 */ lw $v1, ($a3) -.L7F075824: -/* 0AA354 7F075824 0043082A */ slt $at, $v0, $v1 -/* 0AA358 7F075828 1420FFF5 */ bnez $at, .L7F075800 -/* 0AA35C 7F07582C 25080008 */ addiu $t0, $t0, 8 -/* 0AA360 7F075830 ACE601A4 */ sw $a2, 0x1a4($a3) -.L7F075834: -/* 0AA364 7F075834 10000084 */ b .L7F075A48 -/* 0AA368 7F075838 8C830014 */ lw $v1, 0x14($a0) -.L7F07583C: -/* 0AA36C 7F07583C 8C870004 */ lw $a3, 4($a0) -/* 0AA370 7F075840 00C56023 */ subu $t4, $a2, $a1 -/* 0AA374 7F075844 00001025 */ move $v0, $zero -/* 0AA378 7F075848 8CE30000 */ lw $v1, ($a3) -/* 0AA37C 7F07584C 00C57023 */ subu $t6, $a2, $a1 -/* 0AA380 7F075850 00C5C023 */ subu $t8, $a2, $a1 -/* 0AA384 7F075854 10600002 */ beqz $v1, .L7F075860 -/* 0AA388 7F075858 006C6821 */ addu $t5, $v1, $t4 -/* 0AA38C 7F07585C ACED0000 */ sw $t5, ($a3) -.L7F075860: -/* 0AA390 7F075860 8CE30004 */ lw $v1, 4($a3) -/* 0AA394 7F075864 00C55823 */ subu $t3, $a2, $a1 -/* 0AA398 7F075868 00C56823 */ subu $t5, $a2, $a1 -/* 0AA39C 7F07586C 10600002 */ beqz $v1, .L7F075878 -/* 0AA3A0 7F075870 006E7821 */ addu $t7, $v1, $t6 -/* 0AA3A4 7F075874 ACEF0004 */ sw $t7, 4($a3) -.L7F075878: -/* 0AA3A8 7F075878 8CE3000C */ lw $v1, 0xc($a3) -/* 0AA3AC 7F07587C 00004025 */ move $t0, $zero -/* 0AA3B0 7F075880 10600002 */ beqz $v1, .L7F07588C -/* 0AA3B4 7F075884 0078C821 */ addu $t9, $v1, $t8 -/* 0AA3B8 7F075888 ACF9000C */ sw $t9, 0xc($a3) -.L7F07588C: -/* 0AA3BC 7F07588C 8CE30010 */ lw $v1, 0x10($a3) -/* 0AA3C0 7F075890 10600002 */ beqz $v1, .L7F07589C -/* 0AA3C4 7F075894 006B6021 */ addu $t4, $v1, $t3 -/* 0AA3C8 7F075898 ACEC0010 */ sw $t4, 0x10($a3) -.L7F07589C: -/* 0AA3CC 7F07589C 8CE30014 */ lw $v1, 0x14($a3) -/* 0AA3D0 7F0758A0 10600002 */ beqz $v1, .L7F0758AC -/* 0AA3D4 7F0758A4 006D7021 */ addu $t6, $v1, $t5 -/* 0AA3D8 7F0758A8 ACEE0014 */ sw $t6, 0x14($a3) -.L7F0758AC: -/* 0AA3DC 7F0758AC 8CE30008 */ lw $v1, 8($a3) -/* 0AA3E0 7F0758B0 5860000E */ blezl $v1, .L7F0758EC -/* 0AA3E4 7F0758B4 ACE601AC */ sw $a2, 0x1ac($a3) -.L7F0758B8: -/* 0AA3E8 7F0758B8 8CEF000C */ lw $t7, 0xc($a3) -/* 0AA3EC 7F0758BC 00C5C023 */ subu $t8, $a2, $a1 -/* 0AA3F0 7F0758C0 24420001 */ addiu $v0, $v0, 1 -/* 0AA3F4 7F0758C4 01E84821 */ addu $t1, $t7, $t0 -/* 0AA3F8 7F0758C8 8D2A0004 */ lw $t2, 4($t1) -/* 0AA3FC 7F0758CC 11400003 */ beqz $t2, .L7F0758DC -/* 0AA400 7F0758D0 0158C821 */ addu $t9, $t2, $t8 -/* 0AA404 7F0758D4 AD390004 */ sw $t9, 4($t1) -/* 0AA408 7F0758D8 8CE30008 */ lw $v1, 8($a3) -.L7F0758DC: -/* 0AA40C 7F0758DC 0043082A */ slt $at, $v0, $v1 -/* 0AA410 7F0758E0 1420FFF5 */ bnez $at, .L7F0758B8 -/* 0AA414 7F0758E4 25080008 */ addiu $t0, $t0, 8 -/* 0AA418 7F0758E8 ACE601AC */ sw $a2, 0x1ac($a3) -.L7F0758EC: -/* 0AA41C 7F0758EC 10000056 */ b .L7F075A48 -/* 0AA420 7F0758F0 8C830014 */ lw $v1, 0x14($a0) -.L7F0758F4: -/* 0AA424 7F0758F4 8C820004 */ lw $v0, 4($a0) -/* 0AA428 7F0758F8 AC460014 */ sw $a2, 0x14($v0) -/* 0AA42C 7F0758FC 10000052 */ b .L7F075A48 -/* 0AA430 7F075900 8C830014 */ lw $v1, 0x14($a0) -.L7F075904: -/* 0AA434 7F075904 8C820004 */ lw $v0, 4($a0) -/* 0AA438 7F075908 00C55823 */ subu $t3, $a2, $a1 -/* 0AA43C 7F07590C 8C470008 */ lw $a3, 8($v0) -/* 0AA440 7F075910 10E00003 */ beqz $a3, .L7F075920 -/* 0AA444 7F075914 00EB6021 */ addu $t4, $a3, $t3 -/* 0AA448 7F075918 AC4C0008 */ sw $t4, 8($v0) -/* 0AA44C 7F07591C 01803825 */ move $a3, $t4 -.L7F075920: -/* 0AA450 7F075920 AC870014 */ sw $a3, 0x14($a0) -/* 0AA454 7F075924 10000048 */ b .L7F075A48 -/* 0AA458 7F075928 00E01825 */ move $v1, $a3 -.L7F07592C: -/* 0AA45C 7F07592C 8C820004 */ lw $v0, 4($a0) -/* 0AA460 7F075930 00C56823 */ subu $t5, $a2, $a1 -/* 0AA464 7F075934 8C430000 */ lw $v1, ($v0) -/* 0AA468 7F075938 10600002 */ beqz $v1, .L7F075944 -/* 0AA46C 7F07593C 006D7021 */ addu $t6, $v1, $t5 -/* 0AA470 7F075940 AC4E0000 */ sw $t6, ($v0) -.L7F075944: -/* 0AA474 7F075944 10000040 */ b .L7F075A48 -/* 0AA478 7F075948 8C830014 */ lw $v1, 0x14($a0) -.L7F07594C: -/* 0AA47C 7F07594C 8C820004 */ lw $v0, 4($a0) -/* 0AA480 7F075950 00C57823 */ subu $t7, $a2, $a1 -/* 0AA484 7F075954 00C5C823 */ subu $t9, $a2, $a1 -/* 0AA488 7F075958 8C430018 */ lw $v1, 0x18($v0) -/* 0AA48C 7F07595C 10600002 */ beqz $v1, .L7F075968 -/* 0AA490 7F075960 006FC021 */ addu $t8, $v1, $t7 -/* 0AA494 7F075964 AC580018 */ sw $t8, 0x18($v0) -.L7F075968: -/* 0AA498 7F075968 8C43001C */ lw $v1, 0x1c($v0) -/* 0AA49C 7F07596C 10600002 */ beqz $v1, .L7F075978 -/* 0AA4A0 7F075970 00795821 */ addu $t3, $v1, $t9 -/* 0AA4A4 7F075974 AC4B001C */ sw $t3, 0x1c($v0) -.L7F075978: -/* 0AA4A8 7F075978 10000033 */ b .L7F075A48 -/* 0AA4AC 7F07597C 8C830014 */ lw $v1, 0x14($a0) -.L7F075980: -/* 0AA4B0 7F075980 8C820004 */ lw $v0, 4($a0) -/* 0AA4B4 7F075984 00C56023 */ subu $t4, $a2, $a1 -/* 0AA4B8 7F075988 8C430014 */ lw $v1, 0x14($v0) -/* 0AA4BC 7F07598C 10600002 */ beqz $v1, .L7F075998 -/* 0AA4C0 7F075990 006C6821 */ addu $t5, $v1, $t4 -/* 0AA4C4 7F075994 AC4D0014 */ sw $t5, 0x14($v0) -.L7F075998: -/* 0AA4C8 7F075998 1000002B */ b .L7F075A48 -/* 0AA4CC 7F07599C 8C830014 */ lw $v1, 0x14($a0) -.L7F0759A0: -/* 0AA4D0 7F0759A0 8C820004 */ lw $v0, 4($a0) -/* 0AA4D4 7F0759A4 00C57023 */ subu $t6, $a2, $a1 -/* 0AA4D8 7F0759A8 8C43003C */ lw $v1, 0x3c($v0) -/* 0AA4DC 7F0759AC 10600002 */ beqz $v1, .L7F0759B8 -/* 0AA4E0 7F0759B0 006E7821 */ addu $t7, $v1, $t6 -/* 0AA4E4 7F0759B4 AC4F003C */ sw $t7, 0x3c($v0) -.L7F0759B8: -/* 0AA4E8 7F0759B8 AC460048 */ sw $a2, 0x48($v0) -/* 0AA4EC 7F0759BC 10000022 */ b .L7F075A48 -/* 0AA4F0 7F0759C0 8C830014 */ lw $v1, 0x14($a0) -.L7F0759C4: -/* 0AA4F4 7F0759C4 8C820004 */ lw $v0, 4($a0) -/* 0AA4F8 7F0759C8 00C5C023 */ subu $t8, $a2, $a1 -/* 0AA4FC 7F0759CC 8C430018 */ lw $v1, 0x18($v0) -/* 0AA500 7F0759D0 10600002 */ beqz $v1, .L7F0759DC -/* 0AA504 7F0759D4 0078C821 */ addu $t9, $v1, $t8 -/* 0AA508 7F0759D8 AC590018 */ sw $t9, 0x18($v0) -.L7F0759DC: -/* 0AA50C 7F0759DC AC460024 */ sw $a2, 0x24($v0) -/* 0AA510 7F0759E0 10000019 */ b .L7F075A48 -/* 0AA514 7F0759E4 8C830014 */ lw $v1, 0x14($a0) -.L7F0759E8: -/* 0AA518 7F0759E8 8C820004 */ lw $v0, 4($a0) -/* 0AA51C 7F0759EC 00C55823 */ subu $t3, $a2, $a1 -/* 0AA520 7F0759F0 00C56823 */ subu $t5, $a2, $a1 -/* 0AA524 7F0759F4 8C430010 */ lw $v1, 0x10($v0) -/* 0AA528 7F0759F8 10600002 */ beqz $v1, .L7F075A04 -/* 0AA52C 7F0759FC 006B6021 */ addu $t4, $v1, $t3 -/* 0AA530 7F075A00 AC4C0010 */ sw $t4, 0x10($v0) -.L7F075A04: -/* 0AA534 7F075A04 8C430014 */ lw $v1, 0x14($v0) -/* 0AA538 7F075A08 10600002 */ beqz $v1, .L7F075A14 -/* 0AA53C 7F075A0C 006D7021 */ addu $t6, $v1, $t5 -/* 0AA540 7F075A10 AC4E0014 */ sw $t6, 0x14($v0) -.L7F075A14: -/* 0AA544 7F075A14 AC46001C */ sw $a2, 0x1c($v0) -/* 0AA548 7F075A18 1000000B */ b .L7F075A48 -/* 0AA54C 7F075A1C 8C830014 */ lw $v1, 0x14($a0) -.L7F075A20: -/* 0AA550 7F075A20 8C820004 */ lw $v0, 4($a0) -/* 0AA554 7F075A24 00C57823 */ subu $t7, $a2, $a1 -/* 0AA558 7F075A28 8C430004 */ lw $v1, 4($v0) -/* 0AA55C 7F075A2C 10600002 */ beqz $v1, .L7F075A38 -/* 0AA560 7F075A30 006FC021 */ addu $t8, $v1, $t7 -/* 0AA564 7F075A34 AC580004 */ sw $t8, 4($v0) -.L7F075A38: -/* 0AA568 7F075A38 AC46000C */ sw $a2, 0xc($v0) -/* 0AA56C 7F075A3C 10000002 */ b .L7F075A48 -/* 0AA570 7F075A40 8C830014 */ lw $v1, 0x14($a0) -def_7F075670: -.L7F075A44: -/* 0AA574 7F075A44 8C830014 */ lw $v1, 0x14($a0) -.L7F075A48: -/* 0AA578 7F075A48 10600003 */ beqz $v1, .L7F075A58 -/* 0AA57C 7F075A4C 00000000 */ nop -/* 0AA580 7F075A50 1000000B */ b .L7F075A80 -/* 0AA584 7F075A54 00602025 */ move $a0, $v1 -.L7F075A58: -/* 0AA588 7F075A58 10800009 */ beqz $a0, .L7F075A80 -/* 0AA58C 7F075A5C 00000000 */ nop -/* 0AA590 7F075A60 8C83000C */ lw $v1, 0xc($a0) -.L7F075A64: -/* 0AA594 7F075A64 50600004 */ beql $v1, $zero, .L7F075A78 -/* 0AA598 7F075A68 8C840008 */ lw $a0, 8($a0) -/* 0AA59C 7F075A6C 10000004 */ b .L7F075A80 -/* 0AA5A0 7F075A70 00602025 */ move $a0, $v1 -/* 0AA5A4 7F075A74 8C840008 */ lw $a0, 8($a0) -.L7F075A78: -/* 0AA5A8 7F075A78 5480FFFA */ bnezl $a0, .L7F075A64 -/* 0AA5AC 7F075A7C 8C83000C */ lw $v1, 0xc($a0) -.L7F075A80: -/* 0AA5B0 7F075A80 5480FED9 */ bnezl $a0, .L7F0755E8 -/* 0AA5B4 7F075A84 94820000 */ lhu $v0, ($a0) -.L7F075A88: -/* 0AA5B8 7F075A88 03E00008 */ jr $ra -/* 0AA5BC 7F075A8C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F075A90(void) { - +void sub_GAME_7F075A90(ModelFileHeader *header, s32 arg1, ModelNode **node) { + s32 i; + for(i = 0;i < header->numSwitches;i++) + { + if (header->Switches[i] != 0) { + header->Switches[i] = header->Switches[i] + (node - arg1); + } + } + convert_obj_microcode_offset_to_rdram_addr(header->RootNode, arg1, header->numSwitches); } #else GLOBAL_ASM( @@ -14612,200 +9052,131 @@ glabel sub_GAME_7F075A90 #endif - - - - void REMOVED_sub_GAME_7F075B08(s32 param_1,s32 param_2,s32 param_3,s32 param_4) { - return; + return; } +s32 modelCalculateRwDataIndexes(ModelNode *basenode) +{ + u16 len = 0; + ModelNode *node = basenode; + union ModelRoData *rodata; + while (node) + { + u32 type = node->Opcode & 0xff; + switch (type) + { + case MODELNODE_OPCODE_HEADERRECORD: + if (1) + { + ModelRoData_HeaderRecord *rodata = &node->Data->Header; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_HeaderRecord) / 4; + break; + } + case MODELNODE_OPCODE_OP07RECORD: + if (1) + { + ModelRoData_Op07Record *rodata = &node->Data->Op07; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_Op07Record) / 4; + break; + } + case MODELNODE_OPCODE_LODRECORD: + if (1) + { + ModelRoData_LODRecord *rodata = &node->Data->LOD; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_LODRecord) / 4; + node->Child = rodata->Affects; + break; + } + case MODELNODE_OPCODE_SWITCHRECORD: + if (1) + { + ModelRoData_SwitchRecord *rodata = &node->Data->Switch; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_SwitchRecord) / 4; + node->Child = rodata->Controls; + break; + } + case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: + if (1) + { + ModelRoData_HeadPlaceholderRecord *rodata = &node->Data->HeadPlaceholder; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_HeadPlaceholderRecord) / 4; + node->Child = NULL; + break; + } + case MODELNODE_OPCODE_BSPRECORD: + if (1) + { + ModelRoData_BSPRecord *rodata = &node->Data->BSP; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_BSPRecord) / 4; + sub_GAME_7F06EA54(node, FALSE); + break; + } + case MODELNODE_OPCODE_OP11RECORD: + if (1) + { + ModelRoData_Op11Record *rodata = &node->Data->Op11; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_Op11Record) / 4; + break; + } + case MODELNODE_OPCODE_GUNFIRERECORD: + if (1) + { + ModelRoData_GunfireRecord *rodata = &node->Data->Gunfire; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_GunfireRecord) / 4; + break; + } + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + if (1) + { + ModelRoData_DisplayList_CollisionRecord *rodata = &node->Data->DisplayListCollisions; + rodata->RwDataIndex = len; + len += sizeof(struct ModelRwData_DisplayList_CollisionRecord) / 4; + break; + } + default: + break; + } + if (node->Child) + { + node = node->Child; + } + else + { + while (node) + { + if (node == basenode->Parent) + { + node = NULL; + break; + } + if (node->Next) + { + node = node->Next; + break; + } -#ifdef NONMATCHING -void set_microcode_entry_numbers(void) { + node = node->Parent; + } + } + } + return len; } -#else -GLOBAL_ASM( -.late_rodata -/*D:80054E74*/ -glabel jpt_80054E74 -.word .L7F075B68 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075B84 -.word .L7F075BA0 -.word .L7F075C00 -.word .L7F075C84 -.word .L7F075C30 -.word .L7F075C4C -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075BC0 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075C84 -.word .L7F075BE0 -.word .L7F075C68 - -.text -glabel set_microcode_entry_numbers -/* 0AA64C 7F075B1C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0AA650 7F075B20 AFB10018 */ sw $s1, 0x18($sp) -/* 0AA654 7F075B24 AFB00014 */ sw $s0, 0x14($sp) -/* 0AA658 7F075B28 AFBF001C */ sw $ra, 0x1c($sp) -/* 0AA65C 7F075B2C 00803025 */ move $a2, $a0 -/* 0AA660 7F075B30 00008825 */ move $s1, $zero -/* 0AA664 7F075B34 10800069 */ beqz $a0, .L7F075CDC -/* 0AA668 7F075B38 00808025 */ move $s0, $a0 -/* 0AA66C 7F075B3C 96020000 */ lhu $v0, ($s0) -.L7F075B40: -/* 0AA670 7F075B40 304E00FF */ andi $t6, $v0, 0xff -/* 0AA674 7F075B44 25CFFFFF */ addiu $t7, $t6, -1 -/* 0AA678 7F075B48 2DE10018 */ sltiu $at, $t7, 0x18 -/* 0AA67C 7F075B4C 1020004D */ beqz $at, .L7F075C84 -/* 0AA680 7F075B50 000F7880 */ sll $t7, $t7, 2 -/* 0AA684 7F075B54 3C018005 */ lui $at, %hi(jpt_80054E74) -/* 0AA688 7F075B58 002F0821 */ addu $at, $at, $t7 -/* 0AA68C 7F075B5C 8C2F4E74 */ lw $t7, %lo(jpt_80054E74)($at) -.L7F075B60: -/* 0AA690 7F075B60 01E00008 */ jr $t7 -/* 0AA694 7F075B64 00000000 */ nop -.L7F075B68: -/* 0AA698 7F075B68 8E020004 */ lw $v0, 4($s0) -/* 0AA69C 7F075B6C A451000C */ sh $s1, 0xc($v0) -/* 0AA6A0 7F075B70 26310018 */ addiu $s1, $s1, 0x18 -/* 0AA6A4 7F075B74 3238FFFF */ andi $t8, $s1, 0xffff -/* 0AA6A8 7F075B78 03008825 */ move $s1, $t8 -/* 0AA6AC 7F075B7C 10000042 */ b .L7F075C88 -/* 0AA6B0 7F075B80 8E030014 */ lw $v1, 0x14($s0) -.L7F075B84: -/* 0AA6B4 7F075B84 8E020004 */ lw $v0, 4($s0) -/* 0AA6B8 7F075B88 A45101AA */ sh $s1, 0x1aa($v0) -/* 0AA6BC 7F075B8C 26310001 */ addiu $s1, $s1, 1 -/* 0AA6C0 7F075B90 3239FFFF */ andi $t9, $s1, 0xffff -/* 0AA6C4 7F075B94 03208825 */ move $s1, $t9 -/* 0AA6C8 7F075B98 1000003B */ b .L7F075C88 -/* 0AA6CC 7F075B9C 8E030014 */ lw $v1, 0x14($s0) -.L7F075BA0: -/* 0AA6D0 7F075BA0 8E020004 */ lw $v0, 4($s0) -/* 0AA6D4 7F075BA4 A451000C */ sh $s1, 0xc($v0) -/* 0AA6D8 7F075BA8 8C430008 */ lw $v1, 8($v0) -/* 0AA6DC 7F075BAC 26310001 */ addiu $s1, $s1, 1 -/* 0AA6E0 7F075BB0 3228FFFF */ andi $t0, $s1, 0xffff -/* 0AA6E4 7F075BB4 01008825 */ move $s1, $t0 -/* 0AA6E8 7F075BB8 10000033 */ b .L7F075C88 -/* 0AA6EC 7F075BBC AE030014 */ sw $v1, 0x14($s0) -.L7F075BC0: -/* 0AA6F0 7F075BC0 8E020004 */ lw $v0, 4($s0) -/* 0AA6F4 7F075BC4 A4510004 */ sh $s1, 4($v0) -/* 0AA6F8 7F075BC8 8C430000 */ lw $v1, ($v0) -/* 0AA6FC 7F075BCC 26310001 */ addiu $s1, $s1, 1 -/* 0AA700 7F075BD0 322AFFFF */ andi $t2, $s1, 0xffff -/* 0AA704 7F075BD4 01408825 */ move $s1, $t2 -/* 0AA708 7F075BD8 1000002B */ b .L7F075C88 -/* 0AA70C 7F075BDC AE030014 */ sw $v1, 0x14($s0) -.L7F075BE0: -/* 0AA710 7F075BE0 8E020004 */ lw $v0, 4($s0) -/* 0AA714 7F075BE4 00001825 */ move $v1, $zero -/* 0AA718 7F075BE8 A4510000 */ sh $s1, ($v0) -/* 0AA71C 7F075BEC 26310002 */ addiu $s1, $s1, 2 -/* 0AA720 7F075BF0 322CFFFF */ andi $t4, $s1, 0xffff -/* 0AA724 7F075BF4 01808825 */ move $s1, $t4 -/* 0AA728 7F075BF8 10000023 */ b .L7F075C88 -/* 0AA72C 7F075BFC AE000014 */ sw $zero, 0x14($s0) -.L7F075C00: -/* 0AA730 7F075C00 8E020004 */ lw $v0, 4($s0) -/* 0AA734 7F075C04 02002025 */ move $a0, $s0 -/* 0AA738 7F075C08 00002825 */ move $a1, $zero -/* 0AA73C 7F075C0C A4510022 */ sh $s1, 0x22($v0) -/* 0AA740 7F075C10 26310001 */ addiu $s1, $s1, 1 -/* 0AA744 7F075C14 322DFFFF */ andi $t5, $s1, 0xffff -/* 0AA748 7F075C18 01A08825 */ move $s1, $t5 -/* 0AA74C 7F075C1C 0FC1BA95 */ jal sub_GAME_7F06EA54 -/* 0AA750 7F075C20 AFA60020 */ sw $a2, 0x20($sp) -/* 0AA754 7F075C24 8FA60020 */ lw $a2, 0x20($sp) -/* 0AA758 7F075C28 10000017 */ b .L7F075C88 -/* 0AA75C 7F075C2C 8E030014 */ lw $v1, 0x14($s0) -.L7F075C30: -/* 0AA760 7F075C30 8E020004 */ lw $v0, 4($s0) -/* 0AA764 7F075C34 A4510044 */ sh $s1, 0x44($v0) -/* 0AA768 7F075C38 26310001 */ addiu $s1, $s1, 1 -/* 0AA76C 7F075C3C 322EFFFF */ andi $t6, $s1, 0xffff -/* 0AA770 7F075C40 01C08825 */ move $s1, $t6 -/* 0AA774 7F075C44 10000010 */ b .L7F075C88 -/* 0AA778 7F075C48 8E030014 */ lw $v1, 0x14($s0) -.L7F075C4C: -/* 0AA77C 7F075C4C 8E020004 */ lw $v0, 4($s0) -/* 0AA780 7F075C50 A4510020 */ sh $s1, 0x20($v0) -/* 0AA784 7F075C54 26310001 */ addiu $s1, $s1, 1 -/* 0AA788 7F075C58 322FFFFF */ andi $t7, $s1, 0xffff -/* 0AA78C 7F075C5C 01E08825 */ move $s1, $t7 -/* 0AA790 7F075C60 10000009 */ b .L7F075C88 -/* 0AA794 7F075C64 8E030014 */ lw $v1, 0x14($s0) -.L7F075C68: -/* 0AA798 7F075C68 8E020004 */ lw $v0, 4($s0) -/* 0AA79C 7F075C6C A451001A */ sh $s1, 0x1a($v0) -/* 0AA7A0 7F075C70 26310002 */ addiu $s1, $s1, 2 -/* 0AA7A4 7F075C74 3238FFFF */ andi $t8, $s1, 0xffff -/* 0AA7A8 7F075C78 03008825 */ move $s1, $t8 -/* 0AA7AC 7F075C7C 10000002 */ b .L7F075C88 -/* 0AA7B0 7F075C80 8E030014 */ lw $v1, 0x14($s0) -def_7F075B60: -.L7F075C84: -/* 0AA7B4 7F075C84 8E030014 */ lw $v1, 0x14($s0) -.L7F075C88: -/* 0AA7B8 7F075C88 10600003 */ beqz $v1, .L7F075C98 -/* 0AA7BC 7F075C8C 00000000 */ nop -/* 0AA7C0 7F075C90 10000010 */ b .L7F075CD4 -/* 0AA7C4 7F075C94 00608025 */ move $s0, $v1 -.L7F075C98: -/* 0AA7C8 7F075C98 1200000E */ beqz $s0, .L7F075CD4 -/* 0AA7CC 7F075C9C 00000000 */ nop -/* 0AA7D0 7F075CA0 8CC30008 */ lw $v1, 8($a2) -.L7F075CA4: -/* 0AA7D4 7F075CA4 56030004 */ bnel $s0, $v1, .L7F075CB8 -/* 0AA7D8 7F075CA8 8E02000C */ lw $v0, 0xc($s0) -/* 0AA7DC 7F075CAC 10000009 */ b .L7F075CD4 -/* 0AA7E0 7F075CB0 00008025 */ move $s0, $zero -/* 0AA7E4 7F075CB4 8E02000C */ lw $v0, 0xc($s0) -.L7F075CB8: -/* 0AA7E8 7F075CB8 50400004 */ beql $v0, $zero, .L7F075CCC -/* 0AA7EC 7F075CBC 8E100008 */ lw $s0, 8($s0) -/* 0AA7F0 7F075CC0 10000004 */ b .L7F075CD4 -/* 0AA7F4 7F075CC4 00408025 */ move $s0, $v0 -/* 0AA7F8 7F075CC8 8E100008 */ lw $s0, 8($s0) -.L7F075CCC: -/* 0AA7FC 7F075CCC 1600FFF5 */ bnez $s0, .L7F075CA4 -/* 0AA800 7F075CD0 00000000 */ nop -.L7F075CD4: -/* 0AA804 7F075CD4 5600FF9A */ bnezl $s0, .L7F075B40 -/* 0AA808 7F075CD8 96020000 */ lhu $v0, ($s0) -.L7F075CDC: -/* 0AA80C 7F075CDC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0AA810 7F075CE0 02201025 */ move $v0, $s1 -/* 0AA814 7F075CE4 8FB10018 */ lw $s1, 0x18($sp) -/* 0AA818 7F075CE8 8FB00014 */ lw $s0, 0x14($sp) -/* 0AA81C 7F075CEC 03E00008 */ jr $ra -/* 0AA820 7F075CF0 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - void modelCalculateRwDataLen(struct ModelFileHeader *objheader) @@ -14813,220 +9184,160 @@ void modelCalculateRwDataLen(struct ModelFileHeader *objheader) #if defined(LEFTOVERDEBUG) objheader->isLoaded = 1; #endif - objheader->numRecords = set_microcode_entry_numbers(objheader->RootNode); + objheader->numRecords = modelCalculateRwDataIndexes(objheader->RootNode); } +void modelInitRwData(Model *model, ModelNode *startnode) +{ + ModelNode *node = startnode; + + while (node) + { + u32 type = node->Opcode & 0xFF; + + switch (type) + { + case MODELNODE_OPCODE_HEADERRECORD: + if (1) + { + ModelRwData_HeaderRecord* rwdata = &modelGetNodeRwData(model, node)->Header; + + rwdata->unk00 = 0; + rwdata->ground = 0; + rwdata->pos.x = 0; + rwdata->pos.y = 0; + rwdata->pos.z = 0; + rwdata->unk14 = 0; + rwdata->unk18 = 0; + rwdata->unk1c = 0; + + rwdata->unk01 = 0; + rwdata->unk34.x = 0; + rwdata->unk34.y = 0; + rwdata->unk34.z = 0; + rwdata->unk30 = 0; + rwdata->unk24.x = 0; + rwdata->unk24.y = 0; + rwdata->unk24.z = 0; + rwdata->unk20 = 0; + + rwdata->unk02 = 0; + rwdata->unk4c.x = 0; + rwdata->unk4c.y = 0; + rwdata->unk4c.z = 0; + rwdata->unk40.x = 0; + rwdata->unk40.y = 0; + rwdata->unk40.z = 0; + rwdata->unk5c = 0; + break; + } + + case MODELNODE_OPCODE_OP07RECORD: + if (1) + { + ModelRwData_Op07Record* rwdata = &modelGetNodeRwData(model, node)->Op07; + rwdata->index = 0; + break; + } + case MODELNODE_OPCODE_LODRECORD: + if (1) + { + ModelRoData_LODRecord* rodata = &node->Data->LOD; + ModelRwData_LODRecord* rwdata = &modelGetNodeRwData(model, node)->LOD; + rwdata->visible = FALSE; + node->Child = rodata->Affects; + break; + } -#ifdef NONMATCHING -void unknown_object_microcode_handler(void) { + case MODELNODE_OPCODE_SWITCHRECORD: + if (1) + { + ModelRoData_SwitchRecord* rodata = &node->Data->Switch; + ModelRwData_SwitchRecord* rwdata = &modelGetNodeRwData(model, node)->Switch; + rwdata->visible = TRUE; + node->Child = rodata->Controls; + break; + } + case MODELNODE_OPCODE_HEADPLACEHOLDERRECORD: + if (1) + { + ModelRwData_HeadPlaceholderRecord* rwdata = &modelGetNodeRwData(model, node)->HeadPlaceholder; + rwdata->ModelFileHeader = NULL; + rwdata->RwDatas = NULL; + break; + } + + case MODELNODE_OPCODE_BSPRECORD: + if (1) + { + ModelRwData_BSPRecord* rwdata = &modelGetNodeRwData(model, node)->BSP; + rwdata->visible = FALSE; + sub_GAME_7F06EB10(model, node); + break; + } + + case MODELNODE_OPCODE_OP11RECORD: + if (1) + { + ModelRwData_Op11Record* rwdata = &modelGetNodeRwData(model, node)->Op11; + rwdata->unk00 = FALSE; + break; + } + + case MODELNODE_OPCODE_GUNFIRERECORD: + if (1) + { + ModelRwData_GunfireRecord* rwdata = &modelGetNodeRwData(model, node)->Gunfire; + rwdata->visible = FALSE; + break; + } + + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + if (1) + { + ModelRoData_DisplayList_CollisionRecord* rodata = &node->Data->DisplayListCollisions; + ModelRwData_DisplayList_CollisionRecord* rwdata = &modelGetNodeRwData(model, node)->DisplayListCollisions; + rwdata->Vertices = rodata->Vertices; + rwdata->gdl = rodata->Primary; + break; + } + + default: + break; + } + + if (node->Child) + { + node = node->Child; + } + else + { + while (node) + { + if (node == startnode->Parent) + { + node = NULL; + break; + } + + if (node->Next) + { + node = node->Next; + break; + } + + node = node->Parent; + } + } + } } -#else -GLOBAL_ASM( -.late_rodata -/*D:80054ED4*/ -glabel jpt_80054ED4 -.word .L7F075D88 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075E00 -.word .L7F075E18 -.word .L7F075E78 -.word .L7F075EF4 -.word .L7F075E9C -.word .L7F075EB4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075E38 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075EF4 -.word .L7F075E5C -.word .L7F075ECC - -.text -glabel unknown_object_microcode_handler -/* 0AA85C 7F075D2C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0AA860 7F075D30 AFB20028 */ sw $s2, 0x28($sp) -/* 0AA864 7F075D34 AFB00020 */ sw $s0, 0x20($sp) -/* 0AA868 7F075D38 00809025 */ move $s2, $a0 -/* 0AA86C 7F075D3C AFBF002C */ sw $ra, 0x2c($sp) -/* 0AA870 7F075D40 AFB10024 */ sw $s1, 0x24($sp) -/* 0AA874 7F075D44 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0AA878 7F075D48 AFA50034 */ sw $a1, 0x34($sp) -/* 0AA87C 7F075D4C 10A0007F */ beqz $a1, .L7F075F4C -/* 0AA880 7F075D50 00A08025 */ move $s0, $a1 -/* 0AA884 7F075D54 4480A000 */ mtc1 $zero, $f20 -/* 0AA888 7F075D58 00000000 */ nop -/* 0AA88C 7F075D5C 96020000 */ lhu $v0, ($s0) -.L7F075D60: -/* 0AA890 7F075D60 304F00FF */ andi $t7, $v0, 0xff -/* 0AA894 7F075D64 25F8FFFF */ addiu $t8, $t7, -1 -/* 0AA898 7F075D68 2F010018 */ sltiu $at, $t8, 0x18 -/* 0AA89C 7F075D6C 10200061 */ beqz $at, .L7F075EF4 -/* 0AA8A0 7F075D70 0018C080 */ sll $t8, $t8, 2 -/* 0AA8A4 7F075D74 3C018005 */ lui $at, %hi(jpt_80054ED4) -/* 0AA8A8 7F075D78 00380821 */ addu $at, $at, $t8 -/* 0AA8AC 7F075D7C 8C384ED4 */ lw $t8, %lo(jpt_80054ED4)($at) -.L7F075D80: -/* 0AA8B0 7F075D80 03000008 */ jr $t8 -/* 0AA8B4 7F075D84 00000000 */ nop -.L7F075D88: -/* 0AA8B8 7F075D88 02402025 */ move $a0, $s2 -/* 0AA8BC 7F075D8C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA8C0 7F075D90 02002825 */ move $a1, $s0 -/* 0AA8C4 7F075D94 A0400000 */ sb $zero, ($v0) -/* 0AA8C8 7F075D98 E4540004 */ swc1 $f20, 4($v0) -/* 0AA8CC 7F075D9C E4540008 */ swc1 $f20, 8($v0) -/* 0AA8D0 7F075DA0 E454000C */ swc1 $f20, 0xc($v0) -/* 0AA8D4 7F075DA4 E4540010 */ swc1 $f20, 0x10($v0) -/* 0AA8D8 7F075DA8 E4540014 */ swc1 $f20, 0x14($v0) -/* 0AA8DC 7F075DAC E4540018 */ swc1 $f20, 0x18($v0) -/* 0AA8E0 7F075DB0 E454001C */ swc1 $f20, 0x1c($v0) -/* 0AA8E4 7F075DB4 A0400001 */ sb $zero, 1($v0) -/* 0AA8E8 7F075DB8 E4540034 */ swc1 $f20, 0x34($v0) -/* 0AA8EC 7F075DBC E4540038 */ swc1 $f20, 0x38($v0) -/* 0AA8F0 7F075DC0 E454003C */ swc1 $f20, 0x3c($v0) -/* 0AA8F4 7F075DC4 E4540030 */ swc1 $f20, 0x30($v0) -/* 0AA8F8 7F075DC8 E4540024 */ swc1 $f20, 0x24($v0) -/* 0AA8FC 7F075DCC E4540028 */ swc1 $f20, 0x28($v0) -/* 0AA900 7F075DD0 E454002C */ swc1 $f20, 0x2c($v0) -/* 0AA904 7F075DD4 E4540020 */ swc1 $f20, 0x20($v0) -/* 0AA908 7F075DD8 A0400002 */ sb $zero, 2($v0) -/* 0AA90C 7F075DDC E454004C */ swc1 $f20, 0x4c($v0) -/* 0AA910 7F075DE0 E4540050 */ swc1 $f20, 0x50($v0) -/* 0AA914 7F075DE4 E4540054 */ swc1 $f20, 0x54($v0) -/* 0AA918 7F075DE8 E4540040 */ swc1 $f20, 0x40($v0) -/* 0AA91C 7F075DEC E4540044 */ swc1 $f20, 0x44($v0) -/* 0AA920 7F075DF0 E4540048 */ swc1 $f20, 0x48($v0) -/* 0AA924 7F075DF4 E454005C */ swc1 $f20, 0x5c($v0) -/* 0AA928 7F075DF8 1000003F */ b .L7F075EF8 -/* 0AA92C 7F075DFC 8E030014 */ lw $v1, 0x14($s0) -.L7F075E00: -/* 0AA930 7F075E00 02402025 */ move $a0, $s2 -/* 0AA934 7F075E04 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA938 7F075E08 02002825 */ move $a1, $s0 -/* 0AA93C 7F075E0C AC400000 */ sw $zero, ($v0) -/* 0AA940 7F075E10 10000039 */ b .L7F075EF8 -/* 0AA944 7F075E14 8E030014 */ lw $v1, 0x14($s0) -.L7F075E18: -/* 0AA948 7F075E18 8E110004 */ lw $s1, 4($s0) -/* 0AA94C 7F075E1C 02402025 */ move $a0, $s2 -/* 0AA950 7F075E20 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA954 7F075E24 02002825 */ move $a1, $s0 -/* 0AA958 7F075E28 AC400000 */ sw $zero, ($v0) -/* 0AA95C 7F075E2C 8E230008 */ lw $v1, 8($s1) -/* 0AA960 7F075E30 10000031 */ b .L7F075EF8 -/* 0AA964 7F075E34 AE030014 */ sw $v1, 0x14($s0) -.L7F075E38: -/* 0AA968 7F075E38 8E110004 */ lw $s1, 4($s0) -/* 0AA96C 7F075E3C 02402025 */ move $a0, $s2 -/* 0AA970 7F075E40 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA974 7F075E44 02002825 */ move $a1, $s0 -/* 0AA978 7F075E48 24080001 */ li $t0, 1 -/* 0AA97C 7F075E4C AC480000 */ sw $t0, ($v0) -/* 0AA980 7F075E50 8E230000 */ lw $v1, ($s1) -/* 0AA984 7F075E54 10000028 */ b .L7F075EF8 -/* 0AA988 7F075E58 AE030014 */ sw $v1, 0x14($s0) -.L7F075E5C: -/* 0AA98C 7F075E5C 02402025 */ move $a0, $s2 -/* 0AA990 7F075E60 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA994 7F075E64 02002825 */ move $a1, $s0 -/* 0AA998 7F075E68 AC400000 */ sw $zero, ($v0) -/* 0AA99C 7F075E6C AC400004 */ sw $zero, 4($v0) -/* 0AA9A0 7F075E70 10000021 */ b .L7F075EF8 -/* 0AA9A4 7F075E74 8E030014 */ lw $v1, 0x14($s0) -.L7F075E78: -/* 0AA9A8 7F075E78 02402025 */ move $a0, $s2 -/* 0AA9AC 7F075E7C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA9B0 7F075E80 02002825 */ move $a1, $s0 -/* 0AA9B4 7F075E84 AC400000 */ sw $zero, ($v0) -/* 0AA9B8 7F075E88 02402025 */ move $a0, $s2 -/* 0AA9BC 7F075E8C 0FC1BAC4 */ jal sub_GAME_7F06EB10 -/* 0AA9C0 7F075E90 02002825 */ move $a1, $s0 -/* 0AA9C4 7F075E94 10000018 */ b .L7F075EF8 -/* 0AA9C8 7F075E98 8E030014 */ lw $v1, 0x14($s0) -.L7F075E9C: -/* 0AA9CC 7F075E9C 02402025 */ move $a0, $s2 -/* 0AA9D0 7F075EA0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA9D4 7F075EA4 02002825 */ move $a1, $s0 -/* 0AA9D8 7F075EA8 A4400000 */ sh $zero, ($v0) -/* 0AA9DC 7F075EAC 10000012 */ b .L7F075EF8 -/* 0AA9E0 7F075EB0 8E030014 */ lw $v1, 0x14($s0) -.L7F075EB4: -/* 0AA9E4 7F075EB4 02402025 */ move $a0, $s2 -/* 0AA9E8 7F075EB8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AA9EC 7F075EBC 02002825 */ move $a1, $s0 -/* 0AA9F0 7F075EC0 A4400000 */ sh $zero, ($v0) -/* 0AA9F4 7F075EC4 1000000C */ b .L7F075EF8 -/* 0AA9F8 7F075EC8 8E030014 */ lw $v1, 0x14($s0) -.L7F075ECC: -/* 0AA9FC 7F075ECC 8E110004 */ lw $s1, 4($s0) -/* 0AAA00 7F075ED0 02402025 */ move $a0, $s2 -/* 0AAA04 7F075ED4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AAA08 7F075ED8 02002825 */ move $a1, $s0 -/* 0AAA0C 7F075EDC 8E2A0008 */ lw $t2, 8($s1) -/* 0AAA10 7F075EE0 AC4A0000 */ sw $t2, ($v0) -/* 0AAA14 7F075EE4 8E2B0000 */ lw $t3, ($s1) -/* 0AAA18 7F075EE8 AC4B0004 */ sw $t3, 4($v0) -/* 0AAA1C 7F075EEC 10000002 */ b .L7F075EF8 -/* 0AAA20 7F075EF0 8E030014 */ lw $v1, 0x14($s0) -def_7F075D80: -.L7F075EF4: -/* 0AAA24 7F075EF4 8E030014 */ lw $v1, 0x14($s0) -.L7F075EF8: -/* 0AAA28 7F075EF8 10600003 */ beqz $v1, .L7F075F08 -/* 0AAA2C 7F075EFC 00000000 */ nop -/* 0AAA30 7F075F00 10000010 */ b .L7F075F44 -/* 0AAA34 7F075F04 00608025 */ move $s0, $v1 -.L7F075F08: -/* 0AAA38 7F075F08 1200000E */ beqz $s0, .L7F075F44 -/* 0AAA3C 7F075F0C 8FAC0034 */ lw $t4, 0x34($sp) -/* 0AAA40 7F075F10 8D830008 */ lw $v1, 8($t4) -.L7F075F14: -/* 0AAA44 7F075F14 56030004 */ bnel $s0, $v1, .L7F075F28 -/* 0AAA48 7F075F18 8E02000C */ lw $v0, 0xc($s0) -/* 0AAA4C 7F075F1C 10000009 */ b .L7F075F44 -/* 0AAA50 7F075F20 00008025 */ move $s0, $zero -/* 0AAA54 7F075F24 8E02000C */ lw $v0, 0xc($s0) -.L7F075F28: -/* 0AAA58 7F075F28 50400004 */ beql $v0, $zero, .L7F075F3C -/* 0AAA5C 7F075F2C 8E100008 */ lw $s0, 8($s0) -/* 0AAA60 7F075F30 10000004 */ b .L7F075F44 -/* 0AAA64 7F075F34 00408025 */ move $s0, $v0 -/* 0AAA68 7F075F38 8E100008 */ lw $s0, 8($s0) -.L7F075F3C: -/* 0AAA6C 7F075F3C 1600FFF5 */ bnez $s0, .L7F075F14 -/* 0AAA70 7F075F40 00000000 */ nop -.L7F075F44: -/* 0AAA74 7F075F44 5600FF86 */ bnezl $s0, .L7F075D60 -/* 0AAA78 7F075F48 96020000 */ lhu $v0, ($s0) -.L7F075F4C: -/* 0AAA7C 7F075F4C 8FBF002C */ lw $ra, 0x2c($sp) -/* 0AAA80 7F075F50 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0AAA84 7F075F54 8FB00020 */ lw $s0, 0x20($sp) -/* 0AAA88 7F075F58 8FB10024 */ lw $s1, 0x24($sp) -/* 0AAA8C 7F075F5C 8FB20028 */ lw $s2, 0x28($sp) -/* 0AAA90 7F075F60 03E00008 */ jr $ra -/* 0AAA94 7F075F64 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - -void sub_GAME_7F075F68(struct Model *objinst,struct ModelFileHeader *header,u32 *data) +void sub_GAME_7F075F68(struct Model *objinst, struct ModelFileHeader *header, u32 *data) { objinst->obj = header; objinst->datas = data; @@ -15034,378 +9345,208 @@ void sub_GAME_7F075F68(struct Model *objinst,struct ModelFileHeader *header,u32 objinst->attachedto = NULL; objinst->attachedto_objinst = NULL; objinst->scale = 1.0; - unknown_object_microcode_handler(objinst,header->RootNode); + modelInitRwData(objinst, header->RootNode); } - - -#ifdef NONMATCHING -f32 sub_GAME_7F075FAC(s32 arg0, void *arg6) { - // Node 0 - sub_GAME_7F075F68(); - arg6->unk20 = 0; - arg6->unk54 = 0; - arg6->unk26 = (u8)0; - arg6->unk98 = 0; - arg6->unk9C = 0; - arg6->unkA0 = 0; - arg6->unk2C = 0.0f; - arg6->unk4C = 0.0f; - arg6->unk5C = 0.0f; - arg6->unk7C = 0.0f; - arg6->unk84 = 0.0f; - arg6->unk88 = 0.0f; - arg6->unkB0 = 0.0f; - arg6->unk40 = 1.0f; - arg6->unk70 = 1.0f; - arg6->unkA4 = 1.0f; - arg6->unkB8 = 1.0f; - arg6->unk3C = -1.0f; - arg6->unk6C = -1.0f; - return; - // (possible return value: 0.0f) +void sub_GAME_7F075FAC(struct Model *objinst, struct ModelFileHeader *header, u32 *data) +{ + sub_GAME_7F075F68(objinst, header, data); + objinst->anim = NULL; + objinst->anim2 = NULL; + objinst->animlooping = 0; + objinst->animflipfunc = 0; + objinst->unk9c = 0; + objinst->unka0 = 0; + objinst->unk2c = 0.0f; + objinst->timespeed = 0.0f; + objinst->unk5c = 0.0f; + objinst->unk7c = 0.0f; + objinst->unk84 = 0.0f; + objinst->unk88 = 0.0f; + objinst->unkb0 = 0.0f; + objinst->speed = 1.0f; + objinst->unk70 = 1.0f; + objinst->unka4 = 1.0f; + objinst->unkb8 = 1.0f; + objinst->unk3c = -1.0f; + objinst->unk6c = -1.0f; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F075FAC -/* 0AAADC 7F075FAC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0AAAE0 7F075FB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0AAAE4 7F075FB4 0FC1D7DA */ jal sub_GAME_7F075F68 -/* 0AAAE8 7F075FB8 AFA40018 */ sw $a0, 0x18($sp) -/* 0AAAEC 7F075FBC 8FA40018 */ lw $a0, 0x18($sp) -/* 0AAAF0 7F075FC0 44800000 */ mtc1 $zero, $f0 -/* 0AAAF4 7F075FC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0AAAF8 7F075FC8 44811000 */ mtc1 $at, $f2 -/* 0AAAFC 7F075FCC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0AAB00 7F075FD0 44816000 */ mtc1 $at, $f12 -/* 0AAB04 7F075FD4 AC800020 */ sw $zero, 0x20($a0) -/* 0AAB08 7F075FD8 AC800054 */ sw $zero, 0x54($a0) -/* 0AAB0C 7F075FDC A0800026 */ sb $zero, 0x26($a0) -/* 0AAB10 7F075FE0 AC800098 */ sw $zero, 0x98($a0) -/* 0AAB14 7F075FE4 AC80009C */ sw $zero, 0x9c($a0) -/* 0AAB18 7F075FE8 AC8000A0 */ sw $zero, 0xa0($a0) -/* 0AAB1C 7F075FEC E480002C */ swc1 $f0, 0x2c($a0) -/* 0AAB20 7F075FF0 E480004C */ swc1 $f0, 0x4c($a0) -/* 0AAB24 7F075FF4 E480005C */ swc1 $f0, 0x5c($a0) -/* 0AAB28 7F075FF8 E480007C */ swc1 $f0, 0x7c($a0) -/* 0AAB2C 7F075FFC E4800084 */ swc1 $f0, 0x84($a0) -/* 0AAB30 7F076000 E4800088 */ swc1 $f0, 0x88($a0) -/* 0AAB34 7F076004 E48000B0 */ swc1 $f0, 0xb0($a0) -/* 0AAB38 7F076008 E4820040 */ swc1 $f2, 0x40($a0) -/* 0AAB3C 7F07600C E4820070 */ swc1 $f2, 0x70($a0) -/* 0AAB40 7F076010 E48200A4 */ swc1 $f2, 0xa4($a0) -/* 0AAB44 7F076014 E48200B8 */ swc1 $f2, 0xb8($a0) -/* 0AAB48 7F076018 E48C003C */ swc1 $f12, 0x3c($a0) -/* 0AAB4C 7F07601C E48C006C */ swc1 $f12, 0x6c($a0) -/* 0AAB50 7F076020 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AAB54 7F076024 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0AAB58 7F076028 03E00008 */ jr $ra -/* 0AAB5C 7F07602C 00000000 */ nop -) -#endif - - - - -#ifdef NONMATCHING -void sub_GAME_7F076030(Model *model, ModelFileHeader *header1, ModelNode *node, ModelFileHeader *header2) +void sub_GAME_7F076030(Model *pmodel, ModelFileHeader *pmodeldef, ModelNode *pnode, ModelFileHeader *cmodeldef) { - ModelNode *temp_v1; - ModelNode *temp_v1_2; - void *temp_v0; - ModelNode *phi_v1; - ModelNode *phi_a0; + ModelRwData_HeadPlaceholderRecord *rwdata = modelGetNodeRwData(pmodel, pnode); + ModelNode *node; - temp_v0 = extract_id_from_object_structure_microcode(model, node); - temp_v0->unk0 = header2; - temp_v0->unk4 = (s32) (model->unk10 + (header1->numRecords * 4)); - temp_v1 = header2->RootNode; - node->Child = temp_v1; - phi_v1 = temp_v1; - phi_a0 = temp_v1; - if (temp_v1 != 0) + rwdata->ModelFileHeader = cmodeldef; + rwdata->RwDatas = &pmodel->datas[pmodeldef->numRecords]; + + pnode->Child = cmodeldef->RootNode; + + node = pnode->Child; + + while (node) { - do - { - phi_v1->Parent = node; - temp_v1_2 = phi_v1->Next; - phi_v1 = temp_v1_2; - } while (temp_v1_2 != 0); - phi_a0 = node->Child; + node->Parent = pnode; + node = node->Next; } - header1->numRecords += set_microcode_entry_numbers(phi_a0); + + pmodeldef->numRecords += modelCalculateRwDataIndexes(pnode->Child); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F076030 -/* 0AAB60 7F076030 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0AAB64 7F076034 AFBF0014 */ sw $ra, 0x14($sp) -/* 0AAB68 7F076038 AFA5001C */ sw $a1, 0x1c($sp) -/* 0AAB6C 7F07603C AFA40018 */ sw $a0, 0x18($sp) -/* 0AAB70 7F076040 AFA70024 */ sw $a3, 0x24($sp) -/* 0AAB74 7F076044 00C02825 */ move $a1, $a2 -/* 0AAB78 7F076048 0FC1B1E7 */ jal extract_id_from_object_structure_microcode -/* 0AAB7C 7F07604C AFA60020 */ sw $a2, 0x20($sp) -/* 0AAB80 7F076050 8FA50024 */ lw $a1, 0x24($sp) -/* 0AAB84 7F076054 8FA60020 */ lw $a2, 0x20($sp) -/* 0AAB88 7F076058 8FA7001C */ lw $a3, 0x1c($sp) -/* 0AAB8C 7F07605C AC450000 */ sw $a1, ($v0) -/* 0AAB90 7F076060 8FAE0018 */ lw $t6, 0x18($sp) -/* 0AAB94 7F076064 84F80014 */ lh $t8, 0x14($a3) -/* 0AAB98 7F076068 8DCF0010 */ lw $t7, 0x10($t6) -/* 0AAB9C 7F07606C 0018C880 */ sll $t9, $t8, 2 -/* 0AABA0 7F076070 01F94021 */ addu $t0, $t7, $t9 -/* 0AABA4 7F076074 AC480004 */ sw $t0, 4($v0) -/* 0AABA8 7F076078 8CA30000 */ lw $v1, ($a1) -/* 0AABAC 7F07607C ACC30014 */ sw $v1, 0x14($a2) -/* 0AABB0 7F076080 10600006 */ beqz $v1, .L7F07609C -/* 0AABB4 7F076084 00602025 */ move $a0, $v1 -/* 0AABB8 7F076088 AC660008 */ sw $a2, 8($v1) -.L7F07608C: -/* 0AABBC 7F07608C 8C63000C */ lw $v1, 0xc($v1) -/* 0AABC0 7F076090 5460FFFE */ bnezl $v1, .L7F07608C -/* 0AABC4 7F076094 AC660008 */ sw $a2, 8($v1) -/* 0AABC8 7F076098 8CC40014 */ lw $a0, 0x14($a2) -.L7F07609C: -/* 0AABCC 7F07609C 0FC1D6C7 */ jal set_microcode_entry_numbers -/* 0AABD0 7F0760A0 00000000 */ nop -/* 0AABD4 7F0760A4 8FA7001C */ lw $a3, 0x1c($sp) -/* 0AABD8 7F0760A8 84EA0014 */ lh $t2, 0x14($a3) -/* 0AABDC 7F0760AC 01425821 */ addu $t3, $t2, $v0 -/* 0AABE0 7F0760B0 A4EB0014 */ sh $t3, 0x14($a3) -/* 0AABE4 7F0760B4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AABE8 7F0760B8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0AABEC 7F0760BC 03E00008 */ jr $ra -/* 0AABF0 7F0760C0 00000000 */ nop -) -#endif +/** + * This function can be called repeatedly to iterate a model's display lists. + * + * On the first call, the value passed as nodeptr should point to a NULL value. + * Each time the function is called, it will update *gdlptr to point to the next + * display list, and will update *nodeptr to point to the current node. On + * subsequent calls, the same values should be passed as nodeptr and gdlptr so + * the function can continue correctly. + * + * Note that some node types support multiple display lists, so the function + * may return the same node while it iterates the display lists for that node. + */ +void modelIterateDisplayLists(ModelFileHeader *fileheader, ModelNode **nodeptr, Gfx **gdlptr) +{ + ModelNode *node = *nodeptr; + union ModelRoData *rodata; + Gfx *gdl = NULL; + if (node == NULL) + { + node = fileheader->RootNode; + } + while (node) + { + u32 type = node->Opcode & 0xff; + switch (type) + { + case MODELNODE_OPCODE_DISPLAYLISTRECORD: + rodata = node->Data; + if (node != *nodeptr) + { + gdl = rodata->DisplayList.Primary; + } + else if (rodata->DisplayList.Secondary != *gdlptr) + { + gdl = rodata->DisplayList.Secondary; + } + break; -#ifdef NONMATCHING -void sub_GAME_7F0760C4(void) { + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + rodata = node->Data; + if (node != *nodeptr) + { + gdl = rodata->DisplayListCollisions.Primary; + } + else if (rodata->DisplayListCollisions.Secondary != *gdlptr) + { + gdl = rodata->DisplayListCollisions.Secondary; + } + break; + + case MODELNODE_OPCODE_DISPLAYLISTPRIMARYRECORD: + rodata = node->Data; + + if (node != *nodeptr) + { + gdl = rodata->DisplayListPrimary.Primary; + } + break; + + case MODELNODE_OPCODE_LODRECORD: + rodata = node->Data; + node->Child = rodata->LOD.Affects; + break; + + case MODELNODE_OPCODE_SWITCHRECORD: + rodata = node->Data; + node->Child = rodata->Switch.Controls; + break; + + case MODELNODE_OPCODE_BSPRECORD: + sub_GAME_7F06EA54(node, TRUE); + break; + } + + if (gdl) { break; } + + if (node->Child) + { + node = node->Child; + } + else + { + while (node) + { + if (node->Next) + { + node = node->Next; + break; + } + + node = node->Parent; + } + } + } + + *gdlptr = gdl; + *nodeptr = node; } -#else -GLOBAL_ASM( -.late_rodata -/*D:80054F34*/ -glabel jpt_80054F34 -.word .L7F076128 -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761A0 -.word .L7F0761C0 -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761B0 -.word .L7F0761CC -.word .L7F0761CC -.word .L7F0761CC -.word .L7F076188 -.word .L7F0761CC -.word .L7F076158 - -.text -glabel sub_GAME_7F0760C4 -/* 0AABF4 7F0760C4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0AABF8 7F0760C8 AFBF0024 */ sw $ra, 0x24($sp) -/* 0AABFC 7F0760CC AFB30020 */ sw $s3, 0x20($sp) -/* 0AAC00 7F0760D0 AFB2001C */ sw $s2, 0x1c($sp) -/* 0AAC04 7F0760D4 AFB10018 */ sw $s1, 0x18($sp) -/* 0AAC08 7F0760D8 AFB00014 */ sw $s0, 0x14($sp) -/* 0AAC0C 7F0760DC 8CB00000 */ lw $s0, ($a1) -/* 0AAC10 7F0760E0 00A09025 */ move $s2, $a1 -/* 0AAC14 7F0760E4 00C09825 */ move $s3, $a2 -/* 0AAC18 7F0760E8 16000002 */ bnez $s0, .L7F0760F4 -/* 0AAC1C 7F0760EC 00008825 */ move $s1, $zero -/* 0AAC20 7F0760F0 8C900000 */ lw $s0, ($a0) -.L7F0760F4: -/* 0AAC24 7F0760F4 52000049 */ beql $s0, $zero, .L7F07621C -/* 0AAC28 7F0760F8 AE710000 */ sw $s1, ($s3) -/* 0AAC2C 7F0760FC 96020000 */ lhu $v0, ($s0) -.L7F076100: -/* 0AAC30 7F076100 304E00FF */ andi $t6, $v0, 0xff -/* 0AAC34 7F076104 25CFFFFC */ addiu $t7, $t6, -4 -/* 0AAC38 7F076108 2DE10015 */ sltiu $at, $t7, 0x15 -/* 0AAC3C 7F07610C 1020002F */ beqz $at, .L7F0761CC -/* 0AAC40 7F076110 000F7880 */ sll $t7, $t7, 2 -/* 0AAC44 7F076114 3C018005 */ lui $at, %hi(jpt_80054F34) -/* 0AAC48 7F076118 002F0821 */ addu $at, $at, $t7 -/* 0AAC4C 7F07611C 8C2F4F34 */ lw $t7, %lo(jpt_80054F34)($at) -.L7F076120: -/* 0AAC50 7F076120 01E00008 */ jr $t7 -/* 0AAC54 7F076124 00000000 */ nop -.L7F076128: -/* 0AAC58 7F076128 8E580000 */ lw $t8, ($s2) -/* 0AAC5C 7F07612C 8E020004 */ lw $v0, 4($s0) -/* 0AAC60 7F076130 52180004 */ beql $s0, $t8, .L7F076144 -/* 0AAC64 7F076134 8C430004 */ lw $v1, 4($v0) -/* 0AAC68 7F076138 10000024 */ b .L7F0761CC -/* 0AAC6C 7F07613C 8C510000 */ lw $s1, ($v0) -/* 0AAC70 7F076140 8C430004 */ lw $v1, 4($v0) -.L7F076144: -/* 0AAC74 7F076144 8E790000 */ lw $t9, ($s3) -/* 0AAC78 7F076148 10790020 */ beq $v1, $t9, .L7F0761CC -/* 0AAC7C 7F07614C 00000000 */ nop -/* 0AAC80 7F076150 1000001E */ b .L7F0761CC -/* 0AAC84 7F076154 00608825 */ move $s1, $v1 -.L7F076158: -/* 0AAC88 7F076158 8E480000 */ lw $t0, ($s2) -/* 0AAC8C 7F07615C 8E020004 */ lw $v0, 4($s0) -/* 0AAC90 7F076160 52080004 */ beql $s0, $t0, .L7F076174 -/* 0AAC94 7F076164 8C430004 */ lw $v1, 4($v0) -/* 0AAC98 7F076168 10000018 */ b .L7F0761CC -/* 0AAC9C 7F07616C 8C510000 */ lw $s1, ($v0) -/* 0AACA0 7F076170 8C430004 */ lw $v1, 4($v0) -.L7F076174: -/* 0AACA4 7F076174 8E690000 */ lw $t1, ($s3) -/* 0AACA8 7F076178 10690014 */ beq $v1, $t1, .L7F0761CC -/* 0AACAC 7F07617C 00000000 */ nop -/* 0AACB0 7F076180 10000012 */ b .L7F0761CC -/* 0AACB4 7F076184 00608825 */ move $s1, $v1 -.L7F076188: -/* 0AACB8 7F076188 8E4A0000 */ lw $t2, ($s2) -/* 0AACBC 7F07618C 8E020004 */ lw $v0, 4($s0) -/* 0AACC0 7F076190 120A000E */ beq $s0, $t2, .L7F0761CC -/* 0AACC4 7F076194 00000000 */ nop -/* 0AACC8 7F076198 1000000C */ b .L7F0761CC -/* 0AACCC 7F07619C 8C510008 */ lw $s1, 8($v0) -.L7F0761A0: -/* 0AACD0 7F0761A0 8E020004 */ lw $v0, 4($s0) -/* 0AACD4 7F0761A4 8C4B0008 */ lw $t3, 8($v0) -/* 0AACD8 7F0761A8 10000008 */ b .L7F0761CC -/* 0AACDC 7F0761AC AE0B0014 */ sw $t3, 0x14($s0) -.L7F0761B0: -/* 0AACE0 7F0761B0 8E020004 */ lw $v0, 4($s0) -/* 0AACE4 7F0761B4 8C4C0000 */ lw $t4, ($v0) -/* 0AACE8 7F0761B8 10000004 */ b .L7F0761CC -/* 0AACEC 7F0761BC AE0C0014 */ sw $t4, 0x14($s0) -.L7F0761C0: -/* 0AACF0 7F0761C0 02002025 */ move $a0, $s0 -/* 0AACF4 7F0761C4 0FC1BA95 */ jal sub_GAME_7F06EA54 -/* 0AACF8 7F0761C8 24050001 */ li $a1, 1 -def_7F076120: -.L7F0761CC: -/* 0AACFC 7F0761CC 56200013 */ bnezl $s1, .L7F07621C -/* 0AAD00 7F0761D0 AE710000 */ sw $s1, ($s3) -/* 0AAD04 7F0761D4 8E020014 */ lw $v0, 0x14($s0) -/* 0AAD08 7F0761D8 10400003 */ beqz $v0, .L7F0761E8 -/* 0AAD0C 7F0761DC 00000000 */ nop -/* 0AAD10 7F0761E0 1000000B */ b .L7F076210 -/* 0AAD14 7F0761E4 00408025 */ move $s0, $v0 -.L7F0761E8: -/* 0AAD18 7F0761E8 12000009 */ beqz $s0, .L7F076210 -/* 0AAD1C 7F0761EC 00000000 */ nop -/* 0AAD20 7F0761F0 8E02000C */ lw $v0, 0xc($s0) -.L7F0761F4: -/* 0AAD24 7F0761F4 50400004 */ beql $v0, $zero, .L7F076208 -/* 0AAD28 7F0761F8 8E100008 */ lw $s0, 8($s0) -/* 0AAD2C 7F0761FC 10000004 */ b .L7F076210 -/* 0AAD30 7F076200 00408025 */ move $s0, $v0 -/* 0AAD34 7F076204 8E100008 */ lw $s0, 8($s0) -.L7F076208: -/* 0AAD38 7F076208 5600FFFA */ bnezl $s0, .L7F0761F4 -/* 0AAD3C 7F07620C 8E02000C */ lw $v0, 0xc($s0) -.L7F076210: -/* 0AAD40 7F076210 5600FFBB */ bnezl $s0, .L7F076100 -/* 0AAD44 7F076214 96020000 */ lhu $v0, ($s0) -/* 0AAD48 7F076218 AE710000 */ sw $s1, ($s3) -.L7F07621C: -/* 0AAD4C 7F07621C AE500000 */ sw $s0, ($s2) -/* 0AAD50 7F076220 8FBF0024 */ lw $ra, 0x24($sp) -/* 0AAD54 7F076224 8FB30020 */ lw $s3, 0x20($sp) -/* 0AAD58 7F076228 8FB2001C */ lw $s2, 0x1c($sp) -/* 0AAD5C 7F07622C 8FB10018 */ lw $s1, 0x18($sp) -/* 0AAD60 7F076230 8FB00014 */ lw $s0, 0x14($sp) -/* 0AAD64 7F076234 03E00008 */ jr $ra -/* 0AAD68 7F076238 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif +void modelNodeReplaceGdl(u32 arg0, ModelNode *node, Gfx *find, Gfx *replacement) +{ + union ModelRoData *rodata; + u32 type = node->Opcode & 0xff; + switch (type) { + case MODELNODE_OPCODE_DISPLAYLISTRECORD: + rodata = node->Data; + if (rodata->DisplayList.Primary == find) + { + rodata->DisplayList.Primary = replacement; + return; + } -#ifdef NONMATCHING -void sub_GAME_7F07623C(void) { + if (rodata->DisplayList.Secondary == find) + { + rodata->DisplayList.Secondary = replacement; + return; + } + break; + case MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD: + rodata = node->Data; + + if (rodata->DisplayListCollisions.Primary == find) + { + rodata->DisplayListCollisions.Primary = replacement; + return; + } + + if (rodata->DisplayListCollisions.Secondary == find) + { + rodata->DisplayListCollisions.Secondary = replacement; + return; + } + break; + + case MODELNODE_OPCODE_DISPLAYLISTPRIMARYRECORD: + rodata = node->Data; + + if (rodata->DisplayListPrimary.Primary == find) + { + rodata->DisplayListPrimary.Primary = replacement; + return; + } + break; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F07623C -/* 0AAD6C 7F07623C AFA40000 */ sw $a0, ($sp) -/* 0AAD70 7F076240 94A20000 */ lhu $v0, ($a1) -/* 0AAD74 7F076244 24010004 */ li $at, 4 -/* 0AAD78 7F076248 304E00FF */ andi $t6, $v0, 0xff -/* 0AAD7C 7F07624C 11C10007 */ beq $t6, $at, .L7F07626C -/* 0AAD80 7F076250 24010016 */ li $at, 22 -/* 0AAD84 7F076254 11C1001B */ beq $t6, $at, .L7F0762C4 -/* 0AAD88 7F076258 24010018 */ li $at, 24 -/* 0AAD8C 7F07625C 51C1000F */ beql $t6, $at, .L7F07629C -/* 0AAD90 7F076260 8CA20004 */ lw $v0, 4($a1) -/* 0AAD94 7F076264 03E00008 */ jr $ra -/* 0AAD98 7F076268 00000000 */ nop - -.L7F07626C: -/* 0AAD9C 7F07626C 8CA20004 */ lw $v0, 4($a1) -/* 0AADA0 7F076270 8C4F0000 */ lw $t7, ($v0) -/* 0AADA4 7F076274 54CF0004 */ bnel $a2, $t7, .L7F076288 -/* 0AADA8 7F076278 8C580004 */ lw $t8, 4($v0) -/* 0AADAC 7F07627C 03E00008 */ jr $ra -/* 0AADB0 7F076280 AC470000 */ sw $a3, ($v0) - -/* 0AADB4 7F076284 8C580004 */ lw $t8, 4($v0) -.L7F076288: -/* 0AADB8 7F076288 14D80013 */ bne $a2, $t8, .L7F0762D8 -/* 0AADBC 7F07628C 00000000 */ nop -/* 0AADC0 7F076290 03E00008 */ jr $ra -/* 0AADC4 7F076294 AC470004 */ sw $a3, 4($v0) - -/* 0AADC8 7F076298 8CA20004 */ lw $v0, 4($a1) -.L7F07629C: -/* 0AADCC 7F07629C 8C590000 */ lw $t9, ($v0) -/* 0AADD0 7F0762A0 54D90004 */ bnel $a2, $t9, .L7F0762B4 -/* 0AADD4 7F0762A4 8C480004 */ lw $t0, 4($v0) -/* 0AADD8 7F0762A8 03E00008 */ jr $ra -/* 0AADDC 7F0762AC AC470000 */ sw $a3, ($v0) - -/* 0AADE0 7F0762B0 8C480004 */ lw $t0, 4($v0) -.L7F0762B4: -/* 0AADE4 7F0762B4 14C80008 */ bne $a2, $t0, .L7F0762D8 -/* 0AADE8 7F0762B8 00000000 */ nop -/* 0AADEC 7F0762BC 03E00008 */ jr $ra -/* 0AADF0 7F0762C0 AC470004 */ sw $a3, 4($v0) - -.L7F0762C4: -/* 0AADF4 7F0762C4 8CA20004 */ lw $v0, 4($a1) -/* 0AADF8 7F0762C8 8C490008 */ lw $t1, 8($v0) -/* 0AADFC 7F0762CC 14C90002 */ bne $a2, $t1, .L7F0762D8 -/* 0AAE00 7F0762D0 00000000 */ nop -/* 0AAE04 7F0762D4 AC470008 */ sw $a3, 8($v0) -.L7F0762D8: -/* 0AAE08 7F0762D8 03E00008 */ jr $ra -/* 0AAE0C 7F0762DC 00000000 */ nop -) -#endif - - - - diff --git a/src/game/objecthandler_2.c b/src/game/objecthandler_2.c index ba27e9b4..1199cdfe 100644 --- a/src/game/objecthandler_2.c +++ b/src/game/objecthandler_2.c @@ -44,7 +44,7 @@ glabel sub_GAME_7F0762E0 /* 0AAE74 7F076344 AFA00074 */ sw $zero, 0x74($sp) /* 0AAE78 7F076348 02A02025 */ move $a0, $s5 /* 0AAE7C 7F07634C 27A50074 */ addiu $a1, $sp, 0x74 -/* 0AAE80 7F076350 0FC1D831 */ jal sub_GAME_7F0760C4 +/* 0AAE80 7F076350 0FC1D831 */ jal modelIterateDisplayLists /* 0AAE84 7F076354 27A6006C */ addiu $a2, $sp, 0x6c /* 0AAE88 7F076358 8FB7006C */ lw $s7, 0x6c($sp) /* 0AAE8C 7F07635C 3C1600FF */ lui $s6, (0x00FFFFFF >> 16) # lui $s6, 0xff @@ -63,7 +63,7 @@ glabel sub_GAME_7F0762E0 /* 0AAEC0 7F076390 0FC339E5 */ jal sub_GAME_7F0CE794 /* 0AAEC4 7F076394 AFAA0058 */ sw $t2, 0x58($sp) /* 0AAEC8 7F076398 02A02025 */ move $a0, $s5 -/* 0AAECC 7F07639C 0FC32F94 */ jal sub_GAME_7F0CBE50 +/* 0AAECC 7F07639C 0FC32F94 */ jal texLoadFromModelFileHeader /* 0AAED0 7F0763A0 8FA50084 */ lw $a1, 0x84($sp) /* 0AAED4 7F0763A4 8FAB0074 */ lw $t3, 0x74($sp) /* 0AAED8 7F0763A8 51600025 */ beql $t3, $zero, .L7F076440 @@ -73,7 +73,7 @@ glabel sub_GAME_7F0762E0 /* 0AAEE4 7F0763B4 8FB40074 */ lw $s4, 0x74($sp) /* 0AAEE8 7F0763B8 02A02025 */ move $a0, $s5 /* 0AAEEC 7F0763BC 27A50074 */ addiu $a1, $sp, 0x74 -/* 0AAEF0 7F0763C0 0FC1D831 */ jal sub_GAME_7F0760C4 +/* 0AAEF0 7F0763C0 0FC1D831 */ jal modelIterateDisplayLists /* 0AAEF4 7F0763C4 27A6006C */ addiu $a2, $sp, 0x6c /* 0AAEF8 7F0763C8 8FB7006C */ lw $s7, 0x6c($sp) /* 0AAEFC 7F0763CC 02A02025 */ move $a0, $s5 @@ -91,7 +91,7 @@ glabel sub_GAME_7F0762E0 /* 0AAF28 7F0763F8 01AEC023 */ subu $t8, $t5, $t6 /* 0AAF2C 7F0763FC 03119023 */ subu $s2, $t8, $s1 .L7F076400: -/* 0AAF30 7F076400 0FC1D88F */ jal sub_GAME_7F07623C +/* 0AAF30 7F076400 0FC1D88F */ jal modelNodeReplaceGdl /* 0AAF34 7F076404 02603825 */ move $a3, $s3 /* 0AAF38 7F076408 8EA20008 */ lw $v0, 8($s5) /* 0AAF3C 7F07640C 8FB90058 */ lw $t9, 0x58($sp) @@ -149,17 +149,17 @@ void load_object_fill_header(struct ModelFileHeader *objheader, s8 *name, s32 ta if (targetloc != 0) { - phi_v0 = _load_resource_named_to_buffer(name, 0, (s32 *) targetloc, sizeleft); + phi_v0 = _load_resource_named_to_buffer(name, 0, targetloc, sizeleft); } else { - phi_v0 = _load_resource_named_to_membank(name, 0, 0x100, 4U); + phi_v0 = _load_resource_named_to_membank(name, 0, 0x100, 4); } objheader->Switches = phi_v0; objheader->Textures = &phi_v0[objheader->numSwitches]; objheader->RootNode = objheader->Textures + (objheader->numtextures * 0xC); sub_GAME_7F075A90(objheader, 0x5000000, phi_v0); - sub_GAME_7F0762E0(objheader, (u8 *) name, targetloc, (u32 *) buffer); + sub_GAME_7F0762E0(objheader, name, targetloc, buffer); } #else diff --git a/src/game/objective_status.c b/src/game/objective_status.c index 4f26b26e..f330c94a 100644 --- a/src/game/objective_status.c +++ b/src/game/objective_status.c @@ -6,13 +6,13 @@ //Public variables - move to header // bss //CODE.bss:80075D30 -struct objective_entry * objective_ptrs[10]; -OBJECTIVESTATUS dword_CODE_bss_80075D58[10]; //This is an array of 10 OBJECTIVESTATUS, +struct objective_entry * objective_ptrs[OBJECTIVES_MAX]; +OBJECTIVESTATUS dword_CODE_bss_80075D58[OBJECTIVES_MAX]; //This is an array of 10 OBJECTIVESTATUS, //CODE.bss:80075D80 u32 *ptr_last_tag_entry_type16; //CODE.bss:80075D84 -u32 *ptr_last_briefing_setup_entry_type23; +struct watchMenuObjectiveText *ptr_last_briefing_setup_entry_type23; //CODE.bss:80075D88 u32 *ptr_last_enter_room_subobject_entry_type20; //CODE.bss:80075D8C @@ -78,100 +78,40 @@ ObjectRecord *objFindByTagId(s32 TagID) //#MATCH - - - -#ifdef NONMATCHING u8 * get_ptr_text_for_watch_breifing_page(WATCH_BRIEFING_PAGE page) { struct watchMenuObjectiveText * curentry; u8 * textptr; - textptr = 0; + textptr = NULL; + for (curentry = ptr_last_briefing_setup_entry_type23; curentry != 0; curentry = curentry->nextentry) { if (page == curentry->menu) { textptr = langGet(curentry->text); + break; } - textptr = 0; } - if (textptr == 0) + + if (textptr == NULL) { if (page == 0) { textptr = langGet(TEXT(LMISC, 0x29)); //"E R R O R\n" } + else if (page == 1) + { + textptr = langGet(TEXT(LMISC, 0x2a)); //"no briefing for this mission\n" + } else { - if (page == 1) - { - textptr = langGet(TEXT(LMISC, 0x2a)); //"no briefing for this mission\n" - } - else - { - textptr = langGet(TEXT(LMISC, 0x2b)); //"\n" - } + textptr = langGet(TEXT(LMISC, 0x2b)); //"\n" } } + return textptr; } -#else -GLOBAL_ASM( -.text -glabel get_ptr_text_for_watch_breifing_page -/* 08BC34 7F057104 3C028007 */ lui $v0, %hi(ptr_last_briefing_setup_entry_type23) -/* 08BC38 7F057108 8C425D84 */ lw $v0, %lo(ptr_last_briefing_setup_entry_type23)($v0) -/* 08BC3C 7F05710C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08BC40 7F057110 AFBF0014 */ sw $ra, 0x14($sp) -/* 08BC44 7F057114 00802825 */ move $a1, $a0 -/* 08BC48 7F057118 1040000D */ beqz $v0, .L7F057150 -/* 08BC4C 7F05711C 00001825 */ move $v1, $zero -/* 08BC50 7F057120 8C4E0004 */ lw $t6, 4($v0) -.L7F057124: -/* 08BC54 7F057124 54AE0008 */ bnel $a1, $t6, .L7F057148 -/* 08BC58 7F057128 8C42000C */ lw $v0, 0xc($v0) -/* 08BC5C 7F05712C 9444000A */ lhu $a0, 0xa($v0) -/* 08BC60 7F057130 0FC30776 */ jal langGet -/* 08BC64 7F057134 AFA50018 */ sw $a1, 0x18($sp) -/* 08BC68 7F057138 8FA50018 */ lw $a1, 0x18($sp) -/* 08BC6C 7F05713C 10000004 */ b .L7F057150 -/* 08BC70 7F057140 00401825 */ move $v1, $v0 -/* 08BC74 7F057144 8C42000C */ lw $v0, 0xc($v0) -.L7F057148: -/* 08BC78 7F057148 5440FFF6 */ bnezl $v0, .L7F057124 -/* 08BC7C 7F05714C 8C4E0004 */ lw $t6, 4($v0) -.L7F057150: -/* 08BC80 7F057150 54600011 */ bnezl $v1, .L7F057198 -/* 08BC84 7F057154 8FBF0014 */ lw $ra, 0x14($sp) -/* 08BC88 7F057158 14A00005 */ bnez $a1, .L7F057170 -/* 08BC8C 7F05715C 24010001 */ li $at, 1 -/* 08BC90 7F057160 0FC30776 */ jal langGet -/* 08BC94 7F057164 3404B029 */ li $a0, 45097 -/* 08BC98 7F057168 1000000A */ b .L7F057194 -/* 08BC9C 7F05716C 00401825 */ move $v1, $v0 -.L7F057170: -/* 08BCA0 7F057170 14A10005 */ bne $a1, $at, .L7F057188 -/* 08BCA4 7F057174 00000000 */ nop -/* 08BCA8 7F057178 0FC30776 */ jal langGet -/* 08BCAC 7F05717C 3404B02A */ li $a0, 45098 -/* 08BCB0 7F057180 10000004 */ b .L7F057194 -/* 08BCB4 7F057184 00401825 */ move $v1, $v0 -.L7F057188: -/* 08BCB8 7F057188 0FC30776 */ jal langGet -/* 08BCBC 7F05718C 3404B02B */ li $a0, 45099 -/* 08BCC0 7F057190 00401825 */ move $v1, $v0 -.L7F057194: -/* 08BCC4 7F057194 8FBF0014 */ lw $ra, 0x14($sp) -.L7F057198: -/* 08BCC8 7F057198 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08BCCC 7F05719C 00601025 */ move $v0, $v1 -/* 08BCD0 7F0571A0 03E00008 */ jr $ra -/* 08BCD4 7F0571A4 00000000 */ nop -) -#endif - - @@ -195,34 +135,20 @@ u8 * get_text_for_objective(int objective) +s8 get_difficulty_for_objective(s32 objective) +{ + struct objective_entry * entry; - -#ifdef NONMATCHING -void get_difficulty_for_objective(void) { - + if (objective < OBJECTIVES_MAX) + { + entry = objective_ptrs[objective]; + if (entry != NULL) + { + return entry->difficulty; + } + } + return 0; } -#else -GLOBAL_ASM( -.text -glabel get_difficulty_for_objective -/* 08BD34 7F057204 2881000A */ slti $at, $a0, 0xa -/* 08BD38 7F057208 10200008 */ beqz $at, .L7F05722C -/* 08BD3C 7F05720C 00047080 */ sll $t6, $a0, 2 -/* 08BD40 7F057210 3C038007 */ lui $v1, %hi(objective_ptrs) -/* 08BD44 7F057214 006E1821 */ addu $v1, $v1, $t6 -/* 08BD48 7F057218 8C635D30 */ lw $v1, %lo(objective_ptrs)($v1) -/* 08BD4C 7F05721C 50600004 */ beql $v1, $zero, .L7F057230 -/* 08BD50 7F057220 00001025 */ move $v0, $zero -/* 08BD54 7F057224 03E00008 */ jr $ra -/* 08BD58 7F057228 8062000F */ lb $v0, 0xf($v1) - -.L7F05722C: -/* 08BD5C 7F05722C 00001025 */ move $v0, $zero -.L7F057230: -/* 08BD60 7F057230 03E00008 */ jr $ra -/* 08BD64 7F057234 00000000 */ nop -) -#endif @@ -890,8 +816,8 @@ glabel sub_GAME_7F057744 /* 08C280 7F057750 00802825 */ move $a1, $a0 /* 08C284 7F057754 10400022 */ beqz $v0, .L7F0577E0 /* 08C288 7F057758 354A9FC0 */ ori $t2, (0xFFF59FC0 & 0xFFFF) # ori $t2, $t2, 0x9fc0 -/* 08C28C 7F05775C 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) -/* 08C290 7F057760 24E75D00 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d00 +/* 08C28C 7F05775C 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) +/* 08C290 7F057760 24E75D00 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d00 /* 08C294 7F057764 24090044 */ li $t1, 68 /* 08C298 7F057768 24080001 */ li $t0, 1 /* 08C29C 7F05776C 2406002C */ li $a2, 44 @@ -951,8 +877,8 @@ glabel sub_GAME_7F0577E8 /* 08C324 7F0577F4 00A03025 */ move $a2, $a1 /* 08C328 7F0577F8 10400025 */ beqz $v0, .L7F057890 /* 08C32C 7F0577FC 356B9FC0 */ ori $t3, (0xFFF59FC0 & 0xFFFF) # ori $t3, $t3, 0x9fc0 -/* 08C330 7F057800 3C088007 */ lui $t0, %hi(g_chraiCurrentSetup+0) -/* 08C334 7F057804 25085D00 */ addiu $t0, %lo(g_chraiCurrentSetup+0) # addiu $t0, $t0, 0x5d00 +/* 08C330 7F057800 3C088007 */ lui $t0, %hi(g_CurrentSetup+0) +/* 08C334 7F057804 25085D00 */ addiu $t0, %lo(g_CurrentSetup+0) # addiu $t0, $t0, 0x5d00 /* 08C338 7F057808 240A0044 */ li $t2, 68 /* 08C33C 7F05780C 24090001 */ li $t1, 1 /* 08C340 7F057810 2407002C */ li $a3, 44 diff --git a/src/game/objective_status2.c b/src/game/objective_status2.c index 64d7a42f..1ececb44 100644 --- a/src/game/objective_status2.c +++ b/src/game/objective_status2.c @@ -354,84 +354,24 @@ glabel sub_GAME_7F057C14 - - -#ifdef NONMATCHING -void sub_GAME_7F057D44(void) { - +void sub_GAME_7F057D44(f32* arg0, f32* arg1, f32 arg2) +{ + f32 temp_f0; + f32 temp_f2; + temp_f0 = *arg1; + temp_f2 = temp_f0; + temp_f0 = temp_f2 - (arg2 * 0.2777778f); + *arg0 += (arg2 * (temp_f2 + temp_f0)) * 0.5f; + *arg1 = temp_f0; } -#else -GLOBAL_ASM( -.late_rodata -glabel npc_gravity_modifier -.word 0x3e8e38e4 /*0.27777779*/ -.text -glabel sub_GAME_7F057D44 -/* 08C874 7F057D44 3C018005 */ lui $at, %hi(npc_gravity_modifier) -/* 08C878 7F057D48 44866000 */ mtc1 $a2, $f12 -/* 08C87C 7F057D4C C42436BC */ lwc1 $f4, %lo(npc_gravity_modifier)($at) -/* 08C880 7F057D50 C4A20000 */ lwc1 $f2, ($a1) -/* 08C884 7F057D54 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 08C888 7F057D58 46046182 */ mul.s $f6, $f12, $f4 -/* 08C88C 7F057D5C 44818000 */ mtc1 $at, $f16 -/* 08C890 7F057D60 C4840000 */ lwc1 $f4, ($a0) -/* 08C894 7F057D64 46061001 */ sub.s $f0, $f2, $f6 -/* 08C898 7F057D68 46001200 */ add.s $f8, $f2, $f0 -/* 08C89C 7F057D6C 46086282 */ mul.s $f10, $f12, $f8 -/* 08C8A0 7F057D70 00000000 */ nop -/* 08C8A4 7F057D74 46105482 */ mul.s $f18, $f10, $f16 -/* 08C8A8 7F057D78 46122180 */ add.s $f6, $f4, $f18 -/* 08C8AC 7F057D7C E4860000 */ swc1 $f6, ($a0) -/* 08C8B0 7F057D80 03E00008 */ jr $ra -/* 08C8B4 7F057D84 E4A00000 */ swc1 $f0, ($a1) -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F057D88(void) { - +void sub_GAME_7F057D88(f32* arg0, f32* arg1, f32 arg2) +{ + sub_GAME_7F057D44(arg0 + 1, arg1 + 1, arg2); + arg0[0] += (arg2 * arg1[0]); + arg0[2] += (arg2 * arg1[2]); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F057D88 -/* 08C8B8 7F057D88 44866000 */ mtc1 $a2, $f12 -/* 08C8BC 7F057D8C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08C8C0 7F057D90 AFBF0014 */ sw $ra, 0x14($sp) -/* 08C8C4 7F057D94 AFA5001C */ sw $a1, 0x1c($sp) -/* 08C8C8 7F057D98 00803825 */ move $a3, $a0 -/* 08C8CC 7F057D9C 44066000 */ mfc1 $a2, $f12 -/* 08C8D0 7F057DA0 AFA70018 */ sw $a3, 0x18($sp) -/* 08C8D4 7F057DA4 24840004 */ addiu $a0, $a0, 4 -/* 08C8D8 7F057DA8 24A50004 */ addiu $a1, $a1, 4 -/* 08C8DC 7F057DAC 0FC15F51 */ jal sub_GAME_7F057D44 -/* 08C8E0 7F057DB0 E7AC0020 */ swc1 $f12, 0x20($sp) -/* 08C8E4 7F057DB4 8FA2001C */ lw $v0, 0x1c($sp) -/* 08C8E8 7F057DB8 C7AC0020 */ lwc1 $f12, 0x20($sp) -/* 08C8EC 7F057DBC 8FA70018 */ lw $a3, 0x18($sp) -/* 08C8F0 7F057DC0 C4460000 */ lwc1 $f6, ($v0) -/* 08C8F4 7F057DC4 C4E40000 */ lwc1 $f4, ($a3) -/* 08C8F8 7F057DC8 46066202 */ mul.s $f8, $f12, $f6 -/* 08C8FC 7F057DCC C4F00008 */ lwc1 $f16, 8($a3) -/* 08C900 7F057DD0 46082280 */ add.s $f10, $f4, $f8 -/* 08C904 7F057DD4 E4EA0000 */ swc1 $f10, ($a3) -/* 08C908 7F057DD8 C4520008 */ lwc1 $f18, 8($v0) -/* 08C90C 7F057DDC 46126182 */ mul.s $f6, $f12, $f18 -/* 08C910 7F057DE0 46068100 */ add.s $f4, $f16, $f6 -/* 08C914 7F057DE4 E4E40008 */ swc1 $f4, 8($a3) -/* 08C918 7F057DE8 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C91C 7F057DEC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08C920 7F057DF0 03E00008 */ jr $ra -/* 08C924 7F057DF4 00000000 */ nop -) -#endif - - - void sub_GAME_7F057DF8(struct Mtxf *arg0, struct Mtxf *arg1, s32 count) @@ -444,37 +384,8 @@ void sub_GAME_7F057DF8(struct Mtxf *arg0, struct Mtxf *arg1, s32 count) } - - - - -#ifdef NONMATCHING -void sub_GAME_7F057E58(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F057E58 -/* 08C988 7F057E58 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 08C98C 7F057E5C 8FAE0028 */ lw $t6, 0x28($sp) -/* 08C990 7F057E60 AFA60020 */ sw $a2, 0x20($sp) -/* 08C994 7F057E64 AFBF0014 */ sw $ra, 0x14($sp) -/* 08C998 7F057E68 448E2000 */ mtc1 $t6, $f4 -/* 08C99C 7F057E6C AFA70024 */ sw $a3, 0x24($sp) -/* 08C9A0 7F057E70 46802120 */ cvt.s.w $f4, $f4 -/* 08C9A4 7F057E74 44062000 */ mfc1 $a2, $f4 -/* 08C9A8 7F057E78 0FC15F62 */ jal sub_GAME_7F057D88 -/* 08C9AC 7F057E7C 00000000 */ nop -/* 08C9B0 7F057E80 8FA40020 */ lw $a0, 0x20($sp) -/* 08C9B4 7F057E84 8FA50024 */ lw $a1, 0x24($sp) -/* 08C9B8 7F057E88 0FC15F7E */ jal sub_GAME_7F057DF8 -/* 08C9BC 7F057E8C 8FA60028 */ lw $a2, 0x28($sp) -/* 08C9C0 7F057E90 8FBF0014 */ lw $ra, 0x14($sp) -/* 08C9C4 7F057E94 27BD0018 */ addiu $sp, $sp, 0x18 -/* 08C9C8 7F057E98 03E00008 */ jr $ra -/* 08C9CC 7F057E9C 00000000 */ nop -) -#endif - - +void sub_GAME_7F057E58(f32* arg0, f32* arg1, struct Mtxf* arg2, struct Mtxf* arg3, s32 arg4) +{ + sub_GAME_7F057D88(arg0, arg1, (f32) arg4); + sub_GAME_7F057DF8(arg2, arg3, arg4); +} \ No newline at end of file diff --git a/src/game/othermodemicrocode.c b/src/game/othermodemicrocode.c index 504e0520..5af4d9f6 100644 --- a/src/game/othermodemicrocode.c +++ b/src/game/othermodemicrocode.c @@ -34,697 +34,271 @@ s32 is_less_than_certain_power_of_2(int number) } +s32 ceil8000(s32 arg0) +{ + f32 temp_f0; + s32 temp_f10; + + temp_f0 = 32768.0f / ((((s32) (arg0 + 15)) / 16) * 16); + temp_f10 = temp_f0; + + return (temp_f10 & 0xFFFFFFFF) + + ((s32) ((temp_f0 - temp_f10) + 0.999999f)); +} +s32 ceil4000(s32 arg0) +{ + f32 temp_f0; + s32 temp_f10; + + temp_f0 = 16384.0f / ((((s32) (arg0 + 7)) / 8) * 8); + temp_f10 = temp_f0; + + return (temp_f10 & 0xFFFFFFFF) + + ((s32) ((temp_f0 - temp_f10) + 0.999999f)); +} -#ifdef NONMATCHING -s32 ceil8000(s32 arg0) { - // Node 0 - if ((arg0 + 0xf) < 0) +s32 ceil2000(s32 arg0) +{ + f32 temp_f0; + s32 temp_f10; + + temp_f0 = 8192.0f / ((((s32) (arg0 + 3)) / 4) * 4); + temp_f10 = temp_f0; + + return (temp_f10 & 0xFFFFFFFF) + + ((s32) ((temp_f0 - temp_f10) + 0.999999f)); +} + + +s32 ceil1000(s32 arg0) +{ + f32 temp_f0; + s32 temp_f10; + + temp_f0 = 4096.0f / ((((s32) (arg0 + 3)) / 4) * 4); + temp_f10 = temp_f0; + + return (temp_f10 & 0xFFFFFFFF) + + ((s32) ((temp_f0 - temp_f10) + 0.999999f)); +} + + +s32 sub_GAME_7F0767D8(s32 arg0, s32 arg1, s32 arg2) { + s32 ret; + ret = 0; + + if (arg2 <= 0) { arg2 = 1; } + + while (arg2 > 0) { - // Node 1 - return; - // (possible return value: ((s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) + (s32) (((32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) - (f32) (s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10))) + D_80054F90))) + ret += ((arg0 + 15) / 16) * 4 * arg1; + arg2--; + if (arg0 >= 2) { arg0 >>= 1; } + if (arg1 >= 2) { arg1 >>= 1; } } - // (possible return value: ((s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) + (s32) (((32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10)) - (f32) (s32) (32768.0f / (f32) (((s32) (arg0 + 0xf) >> 4) * 0x10))) + D_80054F90))) + return ret; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80054F90 -.word 0x3f7fffef /*0.99999899*/ -.text -glabel ceil8000 -/* 0AB178 7F076648 3C014700 */ li $at, 0x47000000 # 32768.000000 -/* 0AB17C 7F07664C 44812000 */ mtc1 $at, $f4 -/* 0AB180 7F076650 248E000F */ addiu $t6, $a0, 0xf -/* 0AB184 7F076654 05C10003 */ bgez $t6, .L7F076664 -/* 0AB188 7F076658 000E7903 */ sra $t7, $t6, 4 -/* 0AB18C 7F07665C 25C1000F */ addiu $at, $t6, 0xf -/* 0AB190 7F076660 00017903 */ sra $t7, $at, 4 -.L7F076664: -/* 0AB194 7F076664 000FC100 */ sll $t8, $t7, 4 -/* 0AB198 7F076668 44983000 */ mtc1 $t8, $f6 -/* 0AB19C 7F07666C 3C018005 */ lui $at, %hi(D_80054F90) -/* 0AB1A0 7F076670 46803220 */ cvt.s.w $f8, $f6 -/* 0AB1A4 7F076674 46082003 */ div.s $f0, $f4, $f8 -/* 0AB1A8 7F076678 C4244F90 */ lwc1 $f4, %lo(D_80054F90)($at) -/* 0AB1AC 7F07667C 4600028D */ trunc.w.s $f10, $f0 -/* 0AB1B0 7F076680 44035000 */ mfc1 $v1, $f10 -/* 0AB1B4 7F076684 00000000 */ nop -/* 0AB1B8 7F076688 44838000 */ mtc1 $v1, $f16 -/* 0AB1BC 7F07668C 00000000 */ nop -/* 0AB1C0 7F076690 468084A0 */ cvt.s.w $f18, $f16 -/* 0AB1C4 7F076694 46120181 */ sub.s $f6, $f0, $f18 -/* 0AB1C8 7F076698 46043200 */ add.s $f8, $f6, $f4 -/* 0AB1CC 7F07669C 4600428D */ trunc.w.s $f10, $f8 -/* 0AB1D0 7F0766A0 44095000 */ mfc1 $t1, $f10 -/* 0AB1D4 7F0766A4 03E00008 */ jr $ra -/* 0AB1D8 7F0766A8 00691021 */ addu $v0, $v1, $t1 -) -#endif +s32 sub_GAME_7F076848(s32 arg0, s32 arg1, s32 arg2) { + s32 ret; + ret = 0; + if (arg2 <= 0) { arg2 = 1; } - - -#ifdef NONMATCHING -s32 ceil4000(s32 arg0) { - // Node 0 - if ((arg0 + 7) < 0) + while (arg2 > 0) { - // Node 1 - return; - // (possible return value: ((s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) + (s32) (((16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) - (f32) (s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8))) + D_80054F94))) + ret += ((arg0 + 7) / 8) * 4 * arg1; + arg2--; + if (arg0 >= 2) { arg0 >>= 1; } + if (arg1 >= 2) { arg1 >>= 1; } } - // (possible return value: ((s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) + (s32) (((16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8)) - (f32) (s32) (16384.0f / (f32) (((s32) (arg0 + 7) >> 3) * 8))) + D_80054F94))) + return ret; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80054F94 -.word 0x3f7fffef /*0.99999899*/ -.text -glabel ceil4000 -/* 0AB1DC 7F0766AC 3C014680 */ li $at, 0x46800000 # 16384.000000 -/* 0AB1E0 7F0766B0 44812000 */ mtc1 $at, $f4 -/* 0AB1E4 7F0766B4 248E0007 */ addiu $t6, $a0, 7 -/* 0AB1E8 7F0766B8 05C10003 */ bgez $t6, .L7F0766C8 -/* 0AB1EC 7F0766BC 000E78C3 */ sra $t7, $t6, 3 -/* 0AB1F0 7F0766C0 25C10007 */ addiu $at, $t6, 7 -/* 0AB1F4 7F0766C4 000178C3 */ sra $t7, $at, 3 -.L7F0766C8: -/* 0AB1F8 7F0766C8 000FC0C0 */ sll $t8, $t7, 3 -/* 0AB1FC 7F0766CC 44983000 */ mtc1 $t8, $f6 -/* 0AB200 7F0766D0 3C018005 */ lui $at, %hi(D_80054F94) -/* 0AB204 7F0766D4 46803220 */ cvt.s.w $f8, $f6 -/* 0AB208 7F0766D8 46082003 */ div.s $f0, $f4, $f8 -/* 0AB20C 7F0766DC C4244F94 */ lwc1 $f4, %lo(D_80054F94)($at) -/* 0AB210 7F0766E0 4600028D */ trunc.w.s $f10, $f0 -/* 0AB214 7F0766E4 44035000 */ mfc1 $v1, $f10 -/* 0AB218 7F0766E8 00000000 */ nop -/* 0AB21C 7F0766EC 44838000 */ mtc1 $v1, $f16 -/* 0AB220 7F0766F0 00000000 */ nop -/* 0AB224 7F0766F4 468084A0 */ cvt.s.w $f18, $f16 -/* 0AB228 7F0766F8 46120181 */ sub.s $f6, $f0, $f18 -/* 0AB22C 7F0766FC 46043200 */ add.s $f8, $f6, $f4 -/* 0AB230 7F076700 4600428D */ trunc.w.s $f10, $f8 -/* 0AB234 7F076704 44095000 */ mfc1 $t1, $f10 -/* 0AB238 7F076708 03E00008 */ jr $ra -/* 0AB23C 7F07670C 00691021 */ addu $v0, $v1, $t1 -) -#endif +s32 sub_GAME_7F0768B8(s32 arg0, s32 arg1, s32 arg2) { + s32 ret; + ret = 0; + if (arg2 <= 0) { arg2 = 1; } - - -#ifdef NONMATCHING -s32 ceil2000(s32 arg0) { - // Node 0 - if ((arg0 + 3) < 0) + while (arg2 > 0) { - // Node 1 - return; - // (possible return value: ((s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F98))) + ret += ((arg0 + 3) / 4) * 4 * arg1; + arg2--; + if (arg0 >= 2) { arg0 >>= 1; } + if (arg1 >= 2) { arg1 >>= 1; } } - // (possible return value: ((s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (8192.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F98))) + return ret; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80054F98 -.word 0x3f7fffef /*0.99999899*/ -.text -glabel ceil2000 -/* 0AB240 7F076710 3C014600 */ li $at, 0x46000000 # 8192.000000 -/* 0AB244 7F076714 44812000 */ mtc1 $at, $f4 -/* 0AB248 7F076718 248E0003 */ addiu $t6, $a0, 3 -/* 0AB24C 7F07671C 05C10003 */ bgez $t6, .L7F07672C -/* 0AB250 7F076720 000E7883 */ sra $t7, $t6, 2 -/* 0AB254 7F076724 25C10003 */ addiu $at, $t6, 3 -/* 0AB258 7F076728 00017883 */ sra $t7, $at, 2 -.L7F07672C: -/* 0AB25C 7F07672C 000FC080 */ sll $t8, $t7, 2 -/* 0AB260 7F076730 44983000 */ mtc1 $t8, $f6 -/* 0AB264 7F076734 3C018005 */ lui $at, %hi(D_80054F98) -/* 0AB268 7F076738 46803220 */ cvt.s.w $f8, $f6 -/* 0AB26C 7F07673C 46082003 */ div.s $f0, $f4, $f8 -/* 0AB270 7F076740 C4244F98 */ lwc1 $f4, %lo(D_80054F98)($at) -/* 0AB274 7F076744 4600028D */ trunc.w.s $f10, $f0 -/* 0AB278 7F076748 44035000 */ mfc1 $v1, $f10 -/* 0AB27C 7F07674C 00000000 */ nop -/* 0AB280 7F076750 44838000 */ mtc1 $v1, $f16 -/* 0AB284 7F076754 00000000 */ nop -/* 0AB288 7F076758 468084A0 */ cvt.s.w $f18, $f16 -/* 0AB28C 7F07675C 46120181 */ sub.s $f6, $f0, $f18 -/* 0AB290 7F076760 46043200 */ add.s $f8, $f6, $f4 -/* 0AB294 7F076764 4600428D */ trunc.w.s $f10, $f8 -/* 0AB298 7F076768 44095000 */ mfc1 $t1, $f10 -/* 0AB29C 7F07676C 03E00008 */ jr $ra -/* 0AB2A0 7F076770 00691021 */ addu $v0, $v1, $t1 -) -#endif +s32 sub_GAME_7F076928(s32 arg0, s32 arg1, s32 arg2) { + s32 ret; + ret = 0; + if (arg2 <= 0) { arg2 = 1; } - - -#ifdef NONMATCHING -s32 ceil1000(s32 arg0) { - // Node 0 - if ((arg0 + 3) < 0) + while (arg2 > 0) { - // Node 1 - return; - // (possible return value: ((s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F9C))) + ret += ((arg0 + 3) / 4) * 4 * arg1; + arg2--; + if (arg0 >= 2) { arg0 >>= 1; } + if (arg1 >= 2) { arg1 >>= 1; } } - // (possible return value: ((s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) + (s32) (((4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4)) - (f32) (s32) (4096.0f / (f32) (((s32) (arg0 + 3) >> 2) * 4))) + D_80054F9C))) + return ret; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80054F9C -.word 0x3f7fffef /*0.99999899*/ -.text -glabel ceil1000 -/* 0AB2A4 7F076774 3C014580 */ li $at, 0x45800000 # 4096.000000 -/* 0AB2A8 7F076778 44812000 */ mtc1 $at, $f4 -/* 0AB2AC 7F07677C 248E0003 */ addiu $t6, $a0, 3 -/* 0AB2B0 7F076780 05C10003 */ bgez $t6, .L7F076790 -/* 0AB2B4 7F076784 000E7883 */ sra $t7, $t6, 2 -/* 0AB2B8 7F076788 25C10003 */ addiu $at, $t6, 3 -/* 0AB2BC 7F07678C 00017883 */ sra $t7, $at, 2 -.L7F076790: -/* 0AB2C0 7F076790 000FC080 */ sll $t8, $t7, 2 -/* 0AB2C4 7F076794 44983000 */ mtc1 $t8, $f6 -/* 0AB2C8 7F076798 3C018005 */ lui $at, %hi(D_80054F9C) -/* 0AB2CC 7F07679C 46803220 */ cvt.s.w $f8, $f6 -/* 0AB2D0 7F0767A0 46082003 */ div.s $f0, $f4, $f8 -/* 0AB2D4 7F0767A4 C4244F9C */ lwc1 $f4, %lo(D_80054F9C)($at) -/* 0AB2D8 7F0767A8 4600028D */ trunc.w.s $f10, $f0 -/* 0AB2DC 7F0767AC 44035000 */ mfc1 $v1, $f10 -/* 0AB2E0 7F0767B0 00000000 */ nop -/* 0AB2E4 7F0767B4 44838000 */ mtc1 $v1, $f16 -/* 0AB2E8 7F0767B8 00000000 */ nop -/* 0AB2EC 7F0767BC 468084A0 */ cvt.s.w $f18, $f16 -/* 0AB2F0 7F0767C0 46120181 */ sub.s $f6, $f0, $f18 -/* 0AB2F4 7F0767C4 46043200 */ add.s $f8, $f6, $f4 -/* 0AB2F8 7F0767C8 4600428D */ trunc.w.s $f10, $f8 -/* 0AB2FC 7F0767CC 44095000 */ mfc1 $t1, $f10 -/* 0AB300 7F0767D0 03E00008 */ jr $ra -/* 0AB304 7F0767D4 00691021 */ addu $v0, $v1, $t1 -) -#endif +void texSetRenderMode(Gfx **gdlptr, s32 arg1, s32 numcycles, s32 arg3) +{ + Gfx *gdl = *gdlptr; + if (numcycles == 1) + { + gDPPipeSync(gdl++); + gDPSetCycleType(gdl++, G_CYC_1CYCLE); + switch (arg1) + { + default: + case 1: + if (arg3) + { + if (arg3 >= 2) + { + gDPSetRenderMode(gdl++, G_RM_AA_ZB_OPA_DECAL, G_RM_AA_ZB_OPA_DECAL2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); + } + } + else + { + gDPSetRenderMode(gdl++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); + } + break; + + case 2: + if (arg3) + { + if (arg3 >= 2) + { + gDPSetRenderMode(gdl++, G_RM_AA_ZB_XLU_DECAL, G_RM_AA_ZB_XLU_DECAL2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); + } + } + else + { + gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); + } + break; + + case 3: + if (arg3) + { + gDPSetRenderMode(gdl++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_AA_TEX_EDGE, G_RM_AA_TEX_EDGE2); + } + break; + + case 4: + if (arg3) + { + gDPSetRenderMode(gdl++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + } + break; + } + } + else + { + gDPPipeSync(gdl++); + gDPSetCycleType(gdl++, G_CYC_2CYCLE); + + switch (arg1) + { + default: + case 1: + if (arg3) + { + if (arg3 >= 2) + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_ZB_OPA_SURF2); + } + } + else + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_OPA_SURF2); + } + break; + + case 2: + if (arg3) + { + if (arg3 >= 2) + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_ZB_XLU_SURF2); + } + } + else + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_XLU_SURF2); + } + break; + + case 3: + if (arg3) + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_AA_TEX_EDGE2); + } + break; + + case 4: + if (arg3) + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_ZB_CLD_SURF2); + } + else + { + gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_CLD_SURF2); + } + break; + } + } + + *gdlptr = gdl; +} #ifdef NONMATCHING -void sub_GAME_7F0767D8(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0767D8 -/* 0AB308 7F0767D8 1CC00002 */ bgtz $a2, .L7F0767E4 -/* 0AB30C 7F0767DC 00001825 */ move $v1, $zero -/* 0AB310 7F0767E0 24060001 */ li $a2, 1 -.L7F0767E4: -/* 0AB314 7F0767E4 18C00016 */ blez $a2, .L7F076840 -/* 0AB318 7F0767E8 248E000F */ addiu $t6, $a0, 0xf -.L7F0767EC: -/* 0AB31C 7F0767EC 05C10003 */ bgez $t6, .L7F0767FC -/* 0AB320 7F0767F0 000E7903 */ sra $t7, $t6, 4 -/* 0AB324 7F0767F4 25C1000F */ addiu $at, $t6, 0xf -/* 0AB328 7F0767F8 00017903 */ sra $t7, $at, 4 -.L7F0767FC: -/* 0AB32C 7F0767FC 000FC080 */ sll $t8, $t7, 2 -/* 0AB330 7F076800 03050019 */ multu $t8, $a1 -/* 0AB334 7F076804 28810002 */ slti $at, $a0, 2 -/* 0AB338 7F076808 24C6FFFF */ addiu $a2, $a2, -1 -/* 0AB33C 7F07680C 00044043 */ sra $t0, $a0, 1 -/* 0AB340 7F076810 00054843 */ sra $t1, $a1, 1 -/* 0AB344 7F076814 0000C812 */ mflo $t9 -/* 0AB348 7F076818 00791821 */ addu $v1, $v1, $t9 -/* 0AB34C 7F07681C 54200003 */ bnezl $at, .L7F07682C -/* 0AB350 7F076820 28A10002 */ slti $at, $a1, 2 -/* 0AB354 7F076824 01002025 */ move $a0, $t0 -/* 0AB358 7F076828 28A10002 */ slti $at, $a1, 2 -.L7F07682C: -/* 0AB35C 7F07682C 14200002 */ bnez $at, .L7F076838 -/* 0AB360 7F076830 00000000 */ nop -/* 0AB364 7F076834 01202825 */ move $a1, $t1 -.L7F076838: -/* 0AB368 7F076838 5CC0FFEC */ bgtzl $a2, .L7F0767EC -/* 0AB36C 7F07683C 248E000F */ addiu $t6, $a0, 0xf -.L7F076840: -/* 0AB370 7F076840 03E00008 */ jr $ra -/* 0AB374 7F076844 00601025 */ move $v0, $v1 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F076848(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F076848 -/* 0AB378 7F076848 1CC00002 */ bgtz $a2, .L7F076854 -/* 0AB37C 7F07684C 00001825 */ move $v1, $zero -/* 0AB380 7F076850 24060001 */ li $a2, 1 -.L7F076854: -/* 0AB384 7F076854 18C00016 */ blez $a2, .L7F0768B0 -/* 0AB388 7F076858 248E0007 */ addiu $t6, $a0, 7 -.L7F07685C: -/* 0AB38C 7F07685C 05C10003 */ bgez $t6, .L7F07686C -/* 0AB390 7F076860 000E78C3 */ sra $t7, $t6, 3 -/* 0AB394 7F076864 25C10007 */ addiu $at, $t6, 7 -/* 0AB398 7F076868 000178C3 */ sra $t7, $at, 3 -.L7F07686C: -/* 0AB39C 7F07686C 000FC080 */ sll $t8, $t7, 2 -/* 0AB3A0 7F076870 03050019 */ multu $t8, $a1 -/* 0AB3A4 7F076874 28810002 */ slti $at, $a0, 2 -/* 0AB3A8 7F076878 24C6FFFF */ addiu $a2, $a2, -1 -/* 0AB3AC 7F07687C 00044043 */ sra $t0, $a0, 1 -/* 0AB3B0 7F076880 00054843 */ sra $t1, $a1, 1 -/* 0AB3B4 7F076884 0000C812 */ mflo $t9 -/* 0AB3B8 7F076888 00791821 */ addu $v1, $v1, $t9 -/* 0AB3BC 7F07688C 54200003 */ bnezl $at, .L7F07689C -/* 0AB3C0 7F076890 28A10002 */ slti $at, $a1, 2 -/* 0AB3C4 7F076894 01002025 */ move $a0, $t0 -/* 0AB3C8 7F076898 28A10002 */ slti $at, $a1, 2 -.L7F07689C: -/* 0AB3CC 7F07689C 14200002 */ bnez $at, .L7F0768A8 -/* 0AB3D0 7F0768A0 00000000 */ nop -/* 0AB3D4 7F0768A4 01202825 */ move $a1, $t1 -.L7F0768A8: -/* 0AB3D8 7F0768A8 5CC0FFEC */ bgtzl $a2, .L7F07685C -/* 0AB3DC 7F0768AC 248E0007 */ addiu $t6, $a0, 7 -.L7F0768B0: -/* 0AB3E0 7F0768B0 03E00008 */ jr $ra -/* 0AB3E4 7F0768B4 00601025 */ move $v0, $v1 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0768B8(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0768B8 -/* 0AB3E8 7F0768B8 1CC00002 */ bgtz $a2, .L7F0768C4 -/* 0AB3EC 7F0768BC 00001825 */ move $v1, $zero -/* 0AB3F0 7F0768C0 24060001 */ li $a2, 1 -.L7F0768C4: -/* 0AB3F4 7F0768C4 18C00016 */ blez $a2, .L7F076920 -/* 0AB3F8 7F0768C8 248E0003 */ addiu $t6, $a0, 3 -.L7F0768CC: -/* 0AB3FC 7F0768CC 05C10003 */ bgez $t6, .L7F0768DC -/* 0AB400 7F0768D0 000E7883 */ sra $t7, $t6, 2 -/* 0AB404 7F0768D4 25C10003 */ addiu $at, $t6, 3 -/* 0AB408 7F0768D8 00017883 */ sra $t7, $at, 2 -.L7F0768DC: -/* 0AB40C 7F0768DC 000FC080 */ sll $t8, $t7, 2 -/* 0AB410 7F0768E0 03050019 */ multu $t8, $a1 -/* 0AB414 7F0768E4 28810002 */ slti $at, $a0, 2 -/* 0AB418 7F0768E8 24C6FFFF */ addiu $a2, $a2, -1 -/* 0AB41C 7F0768EC 00044043 */ sra $t0, $a0, 1 -/* 0AB420 7F0768F0 00054843 */ sra $t1, $a1, 1 -/* 0AB424 7F0768F4 0000C812 */ mflo $t9 -/* 0AB428 7F0768F8 00791821 */ addu $v1, $v1, $t9 -/* 0AB42C 7F0768FC 54200003 */ bnezl $at, .L7F07690C -/* 0AB430 7F076900 28A10002 */ slti $at, $a1, 2 -/* 0AB434 7F076904 01002025 */ move $a0, $t0 -/* 0AB438 7F076908 28A10002 */ slti $at, $a1, 2 -.L7F07690C: -/* 0AB43C 7F07690C 14200002 */ bnez $at, .L7F076918 -/* 0AB440 7F076910 00000000 */ nop -/* 0AB444 7F076914 01202825 */ move $a1, $t1 -.L7F076918: -/* 0AB448 7F076918 5CC0FFEC */ bgtzl $a2, .L7F0768CC -/* 0AB44C 7F07691C 248E0003 */ addiu $t6, $a0, 3 -.L7F076920: -/* 0AB450 7F076920 03E00008 */ jr $ra -/* 0AB454 7F076924 00601025 */ move $v0, $v1 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F076928(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F076928 -/* 0AB458 7F076928 1CC00002 */ bgtz $a2, .L7F076934 -/* 0AB45C 7F07692C 00001825 */ move $v1, $zero -/* 0AB460 7F076930 24060001 */ li $a2, 1 -.L7F076934: -/* 0AB464 7F076934 18C00016 */ blez $a2, .L7F076990 -/* 0AB468 7F076938 248E0003 */ addiu $t6, $a0, 3 -.L7F07693C: -/* 0AB46C 7F07693C 05C10003 */ bgez $t6, .L7F07694C -/* 0AB470 7F076940 000E7883 */ sra $t7, $t6, 2 -/* 0AB474 7F076944 25C10003 */ addiu $at, $t6, 3 -/* 0AB478 7F076948 00017883 */ sra $t7, $at, 2 -.L7F07694C: -/* 0AB47C 7F07694C 000FC080 */ sll $t8, $t7, 2 -/* 0AB480 7F076950 03050019 */ multu $t8, $a1 -/* 0AB484 7F076954 28810002 */ slti $at, $a0, 2 -/* 0AB488 7F076958 24C6FFFF */ addiu $a2, $a2, -1 -/* 0AB48C 7F07695C 00044043 */ sra $t0, $a0, 1 -/* 0AB490 7F076960 00054843 */ sra $t1, $a1, 1 -/* 0AB494 7F076964 0000C812 */ mflo $t9 -/* 0AB498 7F076968 00791821 */ addu $v1, $v1, $t9 -/* 0AB49C 7F07696C 54200003 */ bnezl $at, .L7F07697C -/* 0AB4A0 7F076970 28A10002 */ slti $at, $a1, 2 -/* 0AB4A4 7F076974 01002025 */ move $a0, $t0 -/* 0AB4A8 7F076978 28A10002 */ slti $at, $a1, 2 -.L7F07697C: -/* 0AB4AC 7F07697C 14200002 */ bnez $at, .L7F076988 -/* 0AB4B0 7F076980 00000000 */ nop -/* 0AB4B4 7F076984 01202825 */ move $a1, $t1 -.L7F076988: -/* 0AB4B8 7F076988 5CC0FFEC */ bgtzl $a2, .L7F07693C -/* 0AB4BC 7F07698C 248E0003 */ addiu $t6, $a0, 3 -.L7F076990: -/* 0AB4C0 7F076990 03E00008 */ jr $ra -/* 0AB4C4 7F076994 00601025 */ move $v0, $v1 -) -#endif - - - - - -#ifdef NONMATCHING -void generate_microcode_for_othermode_setting(void) { - -} -#else -GLOBAL_ASM( -.text -glabel generate_microcode_for_othermode_setting -/* 0AB4C8 7F076998 AFA50004 */ sw $a1, 4($sp) -/* 0AB4CC 7F07699C 24080001 */ li $t0, 1 -/* 0AB4D0 7F0769A0 14C80078 */ bne $a2, $t0, .L7F076B84 -/* 0AB4D4 7F0769A4 8C820000 */ lw $v0, ($a0) -/* 0AB4D8 7F0769A8 00401825 */ move $v1, $v0 -/* 0AB4DC 7F0769AC 24420008 */ addiu $v0, $v0, 8 -/* 0AB4E0 7F0769B0 3C0EE700 */ lui $t6, 0xe700 -/* 0AB4E4 7F0769B4 AC6E0000 */ sw $t6, ($v1) -/* 0AB4E8 7F0769B8 AC600004 */ sw $zero, 4($v1) -/* 0AB4EC 7F0769BC 00402825 */ move $a1, $v0 -/* 0AB4F0 7F0769C0 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 #BA00140200000000 -/* 0AB4F4 7F0769C4 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 # -/* 0AB4F8 7F0769C8 ACAF0000 */ sw $t7, ($a1) # -/* 0AB4FC 7F0769CC ACA00004 */ sw $zero, 4($a1) #gDPSetCycleType(G_CYC_1CYCLE) -/* 0AB500 7F0769D0 8FB80004 */ lw $t8, 4($sp) -/* 0AB504 7F0769D4 24420008 */ addiu $v0, $v0, 8 -/* 0AB508 7F0769D8 24010002 */ li $at, 2 -/* 0AB50C 7F0769DC 13080007 */ beq $t8, $t0, .L7F0769FC -/* 0AB510 7F0769E0 00000000 */ nop -/* 0AB514 7F0769E4 13010023 */ beq $t8, $at, .L7F076A74 -/* 0AB518 7F0769E8 24010003 */ li $at, 3 -/* 0AB51C 7F0769EC 1301003F */ beq $t8, $at, .L7F076AEC -/* 0AB520 7F0769F0 24010004 */ li $at, 4 -/* 0AB524 7F0769F4 13010050 */ beq $t8, $at, .L7F076B38 -/* 0AB528 7F0769F8 00000000 */ nop -.L7F0769FC: -/* 0AB52C 7F0769FC 10E00015 */ beqz $a3, .L7F076A54 -/* 0AB530 7F076A00 00401825 */ move $v1, $v0 -/* 0AB534 7F076A04 28E10002 */ slti $at, $a3, 2 -/* 0AB538 7F076A08 1420000A */ bnez $at, .L7F076A34 -/* 0AB53C 7F076A0C 00401825 */ move $v1, $v0 -/* 0AB540 7F076A10 00401825 */ move $v1, $v0 -/* 0AB544 7F076A14 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 #B900031D00552D58 -/* 0AB548 7F076A18 3C090055 */ lui $t1, (0x00552D58 >> 16) # lui $t1, 0x55 # -/* 0AB54C 7F076A1C 35292D58 */ ori $t1, (0x00552D58 & 0xFFFF) # ori $t1, $t1, 0x2d58 # -/* 0AB550 7F076A20 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d # -/* 0AB554 7F076A24 AC790000 */ sw $t9, ($v1) # -/* 0AB558 7F076A28 AC690004 */ sw $t1, 4($v1) #gDPSetRenderMode(,) -/* 0AB55C 7F076A2C 100000CC */ b .L7F076D60 -/* 0AB560 7F076A30 24420008 */ addiu $v0, $v0, 8 -.L7F076A34: -/* 0AB564 7F076A34 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 #B900031D00552078 -/* 0AB568 7F076A38 3C0B0055 */ lui $t3, (0x00552078 >> 16) # lui $t3, 0x55 # -/* 0AB56C 7F076A3C 356B2078 */ ori $t3, (0x00552078 & 0xFFFF) # ori $t3, $t3, 0x2078 # -/* 0AB570 7F076A40 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d # -/* 0AB574 7F076A44 AC6A0000 */ sw $t2, ($v1) # -/* 0AB578 7F076A48 AC6B0004 */ sw $t3, 4($v1) #gDPSetRenderMode(,) -/* 0AB57C 7F076A4C 100000C4 */ b .L7F076D60 -/* 0AB580 7F076A50 24420008 */ addiu $v0, $v0, 8 -.L7F076A54: -/* 0AB584 7F076A54 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 #B900031D 00552048 -/* 0AB588 7F076A58 3C0D0055 */ lui $t5, (0x00552048 >> 16) # lui $t5, 0x55 # -/* 0AB58C 7F076A5C 35AD2048 */ ori $t5, (0x00552048 & 0xFFFF) # ori $t5, $t5, 0x2048 # -/* 0AB590 7F076A60 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d # -/* 0AB594 7F076A64 AC6C0000 */ sw $t4, ($v1) # -/* 0AB598 7F076A68 AC6D0004 */ sw $t5, 4($v1) #gDPSetRenderMode(,) -/* 0AB59C 7F076A6C 100000BC */ b .L7F076D60 -/* 0AB5A0 7F076A70 24420008 */ addiu $v0, $v0, 8 -.L7F076A74: -/* 0AB5A4 7F076A74 10E00015 */ beqz $a3, .L7F076ACC -/* 0AB5A8 7F076A78 00401825 */ move $v1, $v0 -/* 0AB5AC 7F076A7C 28E10002 */ slti $at, $a3, 2 -/* 0AB5B0 7F076A80 1420000A */ bnez $at, .L7F076AAC -/* 0AB5B4 7F076A84 00401825 */ move $v1, $v0 -/* 0AB5B8 7F076A88 00401825 */ move $v1, $v0 -/* 0AB5BC 7F076A8C 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 #B900031D00504DD8 -/* 0AB5C0 7F076A90 3C0F0050 */ lui $t7, (0x00504DD8 >> 16) # lui $t7, 0x50 # -/* 0AB5C4 7F076A94 35EF4DD8 */ ori $t7, (0x00504DD8 & 0xFFFF) # ori $t7, $t7, 0x4dd8 # -/* 0AB5C8 7F076A98 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d # -/* 0AB5CC 7F076A9C AC6E0000 */ sw $t6, ($v1) # -/* 0AB5D0 7F076AA0 AC6F0004 */ sw $t7, 4($v1) #gDPSetRenderMode(,) -/* 0AB5D4 7F076AA4 100000AE */ b .L7F076D60 -/* 0AB5D8 7F076AA8 24420008 */ addiu $v0, $v0, 8 -.L7F076AAC: -/* 0AB5DC 7F076AAC 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 #B900031D005049D8 -/* 0AB5E0 7F076AB0 3C190050 */ lui $t9, (0x005049D8 >> 16) # lui $t9, 0x50 # -/* 0AB5E4 7F076AB4 373949D8 */ ori $t9, (0x005049D8 & 0xFFFF) # ori $t9, $t9, 0x49d8 # -/* 0AB5E8 7F076AB8 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d # -/* 0AB5EC 7F076ABC AC780000 */ sw $t8, ($v1) # -/* 0AB5F0 7F076AC0 AC790004 */ sw $t9, 4($v1) #gDPSetRenderMode(,) -/* 0AB5F4 7F076AC4 100000A6 */ b .L7F076D60 -/* 0AB5F8 7F076AC8 24420008 */ addiu $v0, $v0, 8 -.L7F076ACC: -/* 0AB5FC 7F076ACC 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 # -/* 0AB600 7F076AD0 3C0A0050 */ lui $t2, (0x005041C8 >> 16) # lui $t2, 0x50 # -/* 0AB604 7F076AD4 354A41C8 */ ori $t2, (0x005041C8 & 0xFFFF) # ori $t2, $t2, 0x41c8 # -/* 0AB608 7F076AD8 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d # -/* 0AB60C 7F076ADC AC690000 */ sw $t1, ($v1) # -/* 0AB610 7F076AE0 AC6A0004 */ sw $t2, 4($v1) #gDPSetRenderMode(,) -/* 0AB614 7F076AE4 1000009E */ b .L7F076D60 -/* 0AB618 7F076AE8 24420008 */ addiu $v0, $v0, 8 -.L7F076AEC: -/* 0AB61C 7F076AEC 10E0000A */ beqz $a3, .L7F076B18 -/* 0AB620 7F076AF0 00401825 */ move $v1, $v0 -/* 0AB624 7F076AF4 00401825 */ move $v1, $v0 -/* 0AB628 7F076AF8 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 # -/* 0AB62C 7F076AFC 3C0C0055 */ lui $t4, (0x00553078 >> 16) # lui $t4, 0x55 # -/* 0AB630 7F076B00 358C3078 */ ori $t4, (0x00553078 & 0xFFFF) # ori $t4, $t4, 0x3078 # -/* 0AB634 7F076B04 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d # -/* 0AB638 7F076B08 AC6B0000 */ sw $t3, ($v1) # -/* 0AB63C 7F076B0C AC6C0004 */ sw $t4, 4($v1) #gDPSetRenderMode(,) -/* 0AB640 7F076B10 10000093 */ b .L7F076D60 -/* 0AB644 7F076B14 24420008 */ addiu $v0, $v0, 8 -.L7F076B18: -/* 0AB648 7F076B18 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 # -/* 0AB64C 7F076B1C 3C0E0055 */ lui $t6, (0x00553048 >> 16) # lui $t6, 0x55 # -/* 0AB650 7F076B20 35CE3048 */ ori $t6, (0x00553048 & 0xFFFF) # ori $t6, $t6, 0x3048 # -/* 0AB654 7F076B24 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d # -/* 0AB658 7F076B28 AC6D0000 */ sw $t5, ($v1) # -/* 0AB65C 7F076B2C AC6E0004 */ sw $t6, 4($v1) #gDPSetRenderMode(,) -/* 0AB660 7F076B30 1000008B */ b .L7F076D60 -/* 0AB664 7F076B34 24420008 */ addiu $v0, $v0, 8 -.L7F076B38: -/* 0AB668 7F076B38 10E0000A */ beqz $a3, .L7F076B64 -/* 0AB66C 7F076B3C 00401825 */ move $v1, $v0 -/* 0AB670 7F076B40 00401825 */ move $v1, $v0 -/* 0AB674 7F076B44 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 # -/* 0AB678 7F076B48 3C180050 */ lui $t8, (0x00504B50 >> 16) # lui $t8, 0x50 # -/* 0AB67C 7F076B4C 37184B50 */ ori $t8, (0x00504B50 & 0xFFFF) # ori $t8, $t8, 0x4b50 # -/* 0AB680 7F076B50 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d # -/* 0AB684 7F076B54 AC6F0000 */ sw $t7, ($v1) # -/* 0AB688 7F076B58 AC780004 */ sw $t8, 4($v1) #gDPSetRenderMode(,) -/* 0AB68C 7F076B5C 10000080 */ b .L7F076D60 -/* 0AB690 7F076B60 24420008 */ addiu $v0, $v0, 8 -.L7F076B64: -/* 0AB694 7F076B64 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 # -/* 0AB698 7F076B68 3C090050 */ lui $t1, (0x00504340 >> 16) # lui $t1, 0x50 # -/* 0AB69C 7F076B6C 35294340 */ ori $t1, (0x00504340 & 0xFFFF) # ori $t1, $t1, 0x4340 # -/* 0AB6A0 7F076B70 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d # -/* 0AB6A4 7F076B74 AC790000 */ sw $t9, ($v1) # -/* 0AB6A8 7F076B78 AC690004 */ sw $t1, 4($v1) #gDPSetRenderMode(,) -/* 0AB6AC 7F076B7C 10000078 */ b .L7F076D60 -/* 0AB6B0 7F076B80 24420008 */ addiu $v0, $v0, 8 -.L7F076B84: -/* 0AB6B4 7F076B84 00401825 */ move $v1, $v0 -/* 0AB6B8 7F076B88 24420008 */ addiu $v0, $v0, 8 -/* 0AB6BC 7F076B8C 3C0AE700 */ lui $t2, 0xe700 #e7000000000000 -/* 0AB6C0 7F076B90 AC6A0000 */ sw $t2, ($v1) #gDPPipeSync() -/* 0AB6C4 7F076B94 AC600004 */ sw $zero, 4($v1) -/* 0AB6C8 7F076B98 00402825 */ move $a1, $v0 -/* 0AB6CC 7F076B9C 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 # -/* 0AB6D0 7F076BA0 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 # -/* 0AB6D4 7F076BA4 3C0C0010 */ lui $t4, 0x10 #2c -/* 0AB6D8 7F076BA8 ACAC0004 */ sw $t4, 4($a1) #gDPSetCycleType(G_CYC_2CYCLE) -/* 0AB6DC 7F076BAC ACAB0000 */ sw $t3, ($a1) -/* 0AB6E0 7F076BB0 8FAD0004 */ lw $t5, 4($sp) -/* 0AB6E4 7F076BB4 24420008 */ addiu $v0, $v0, 8 -/* 0AB6E8 7F076BB8 24010002 */ li $at, 2 -/* 0AB6EC 7F076BBC 11A80007 */ beq $t5, $t0, .L7F076BDC -/* 0AB6F0 7F076BC0 00000000 */ nop -/* 0AB6F4 7F076BC4 11A10023 */ beq $t5, $at, .L7F076C54 -/* 0AB6F8 7F076BC8 24010003 */ li $at, 3 -/* 0AB6FC 7F076BCC 11A1003F */ beq $t5, $at, .L7F076CCC -/* 0AB700 7F076BD0 24010004 */ li $at, 4 -/* 0AB704 7F076BD4 11A10050 */ beq $t5, $at, .L7F076D18 -/* 0AB708 7F076BD8 00000000 */ nop -.L7F076BDC: -/* 0AB70C 7F076BDC 10E00015 */ beqz $a3, .L7F076C34 -/* 0AB710 7F076BE0 00401825 */ move $v1, $v0 -/* 0AB714 7F076BE4 28E10002 */ slti $at, $a3, 2 -/* 0AB718 7F076BE8 1420000A */ bnez $at, .L7F076C14 -/* 0AB71C 7F076BEC 00401825 */ move $v1, $v0 -/* 0AB720 7F076BF0 00401825 */ move $v1, $v0 -/* 0AB724 7F076BF4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 # -/* 0AB728 7F076BF8 3C0F0C19 */ lui $t7, (0x0C192D58 >> 16) # lui $t7, 0xc19 # -/* 0AB72C 7F076BFC 35EF2D58 */ ori $t7, (0x0C192D58 & 0xFFFF) # ori $t7, $t7, 0x2d58 # -/* 0AB730 7F076C00 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d # -/* 0AB734 7F076C04 AC6E0000 */ sw $t6, ($v1) # -/* 0AB738 7F076C08 AC6F0004 */ sw $t7, 4($v1) #gDPSetRenderMode(,) -/* 0AB73C 7F076C0C 10000054 */ b .L7F076D60 -/* 0AB740 7F076C10 24420008 */ addiu $v0, $v0, 8 -.L7F076C14: -/* 0AB744 7F076C14 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 # -/* 0AB748 7F076C18 3C190C19 */ lui $t9, (0x0C192078 >> 16) # lui $t9, 0xc19 # -/* 0AB74C 7F076C1C 37392078 */ ori $t9, (0x0C192078 & 0xFFFF) # ori $t9, $t9, 0x2078 # -/* 0AB750 7F076C20 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d # -/* 0AB754 7F076C24 AC780000 */ sw $t8, ($v1) # -/* 0AB758 7F076C28 AC790004 */ sw $t9, 4($v1) #gDPSetRenderMode(,) -/* 0AB75C 7F076C2C 1000004C */ b .L7F076D60 -/* 0AB760 7F076C30 24420008 */ addiu $v0, $v0, 8 -.L7F076C34: -/* 0AB764 7F076C34 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 # -/* 0AB768 7F076C38 3C0A0C19 */ lui $t2, (0x0C192048 >> 16) # lui $t2, 0xc19 # -/* 0AB76C 7F076C3C 354A2048 */ ori $t2, (0x0C192048 & 0xFFFF) # ori $t2, $t2, 0x2048 # -/* 0AB770 7F076C40 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d # -/* 0AB774 7F076C44 AC690000 */ sw $t1, ($v1) # -/* 0AB778 7F076C48 AC6A0004 */ sw $t2, 4($v1) #gDPSetRenderMode(,) -/* 0AB77C 7F076C4C 10000044 */ b .L7F076D60 -/* 0AB780 7F076C50 24420008 */ addiu $v0, $v0, 8 -.L7F076C54: -/* 0AB784 7F076C54 10E00015 */ beqz $a3, .L7F076CAC -/* 0AB788 7F076C58 00401825 */ move $v1, $v0 -/* 0AB78C 7F076C5C 28E10002 */ slti $at, $a3, 2 -/* 0AB790 7F076C60 1420000A */ bnez $at, .L7F076C8C -/* 0AB794 7F076C64 00401825 */ move $v1, $v0 -/* 0AB798 7F076C68 00401825 */ move $v1, $v0 -/* 0AB79C 7F076C6C 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 # -/* 0AB7A0 7F076C70 3C0C0C18 */ lui $t4, (0x0C184DD8 >> 16) # lui $t4, 0xc18 # -/* 0AB7A4 7F076C74 358C4DD8 */ ori $t4, (0x0C184DD8 & 0xFFFF) # ori $t4, $t4, 0x4dd8 # -/* 0AB7A8 7F076C78 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d # -/* 0AB7AC 7F076C7C AC6B0000 */ sw $t3, ($v1) # -/* 0AB7B0 7F076C80 AC6C0004 */ sw $t4, 4($v1) #gDPSetRenderMode(,) -/* 0AB7B4 7F076C84 10000036 */ b .L7F076D60 -/* 0AB7B8 7F076C88 24420008 */ addiu $v0, $v0, 8 -.L7F076C8C: -/* 0AB7BC 7F076C8C 3C0DB900 */ lui $t5, (0xB900031D >> 16) # lui $t5, 0xb900 # -/* 0AB7C0 7F076C90 3C0E0C18 */ lui $t6, (0x0C1849D8 >> 16) # lui $t6, 0xc18 # -/* 0AB7C4 7F076C94 35CE49D8 */ ori $t6, (0x0C1849D8 & 0xFFFF) # ori $t6, $t6, 0x49d8 # -/* 0AB7C8 7F076C98 35AD031D */ ori $t5, (0xB900031D & 0xFFFF) # ori $t5, $t5, 0x31d # -/* 0AB7CC 7F076C9C AC6D0000 */ sw $t5, ($v1) # -/* 0AB7D0 7F076CA0 AC6E0004 */ sw $t6, 4($v1) #gDPSetRenderMode(,) -/* 0AB7D4 7F076CA4 1000002E */ b .L7F076D60 -/* 0AB7D8 7F076CA8 24420008 */ addiu $v0, $v0, 8 -.L7F076CAC: -/* 0AB7DC 7F076CAC 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 # -/* 0AB7E0 7F076CB0 3C180C18 */ lui $t8, (0x0C1841C8 >> 16) # lui $t8, 0xc18 # -/* 0AB7E4 7F076CB4 371841C8 */ ori $t8, (0x0C1841C8 & 0xFFFF) # ori $t8, $t8, 0x41c8 # -/* 0AB7E8 7F076CB8 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d # -/* 0AB7EC 7F076CBC AC6F0000 */ sw $t7, ($v1) # -/* 0AB7F0 7F076CC0 AC780004 */ sw $t8, 4($v1) #gDPSetRenderMode(,) -/* 0AB7F4 7F076CC4 10000026 */ b .L7F076D60 -/* 0AB7F8 7F076CC8 24420008 */ addiu $v0, $v0, 8 -.L7F076CCC: -/* 0AB7FC 7F076CCC 10E0000A */ beqz $a3, .L7F076CF8 -/* 0AB800 7F076CD0 00401825 */ move $v1, $v0 -/* 0AB804 7F076CD4 00401825 */ move $v1, $v0 -/* 0AB808 7F076CD8 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 # -/* 0AB80C 7F076CDC 3C090C19 */ lui $t1, (0x0C193078 >> 16) # lui $t1, 0xc19 # -/* 0AB810 7F076CE0 35293078 */ ori $t1, (0x0C193078 & 0xFFFF) # ori $t1, $t1, 0x3078 # -/* 0AB814 7F076CE4 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d # -/* 0AB818 7F076CE8 AC790000 */ sw $t9, ($v1) # -/* 0AB81C 7F076CEC AC690004 */ sw $t1, 4($v1) #gDPSetRenderMode(,) -/* 0AB820 7F076CF0 1000001B */ b .L7F076D60 -/* 0AB824 7F076CF4 24420008 */ addiu $v0, $v0, 8 -.L7F076CF8: -/* 0AB828 7F076CF8 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 # -/* 0AB82C 7F076CFC 3C0B0C19 */ lui $t3, (0x0C193048 >> 16) # lui $t3, 0xc19 # -/* 0AB830 7F076D00 356B3048 */ ori $t3, (0x0C193048 & 0xFFFF) # ori $t3, $t3, 0x3048 # -/* 0AB834 7F076D04 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d # -/* 0AB838 7F076D08 AC6A0000 */ sw $t2, ($v1) # -/* 0AB83C 7F076D0C AC6B0004 */ sw $t3, 4($v1) #gDPSetRenderMode(,) -/* 0AB840 7F076D10 10000013 */ b .L7F076D60 -/* 0AB844 7F076D14 24420008 */ addiu $v0, $v0, 8 -.L7F076D18: -/* 0AB848 7F076D18 10E0000A */ beqz $a3, .L7F076D44 -/* 0AB84C 7F076D1C 00401825 */ move $v1, $v0 -/* 0AB850 7F076D20 00401825 */ move $v1, $v0 -/* 0AB854 7F076D24 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 # -/* 0AB858 7F076D28 3C0D0C18 */ lui $t5, (0x0C184B50 >> 16) # lui $t5, 0xc18 # -/* 0AB85C 7F076D2C 35AD4B50 */ ori $t5, (0x0C184B50 & 0xFFFF) # ori $t5, $t5, 0x4b50 # -/* 0AB860 7F076D30 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d # -/* 0AB864 7F076D34 AC6C0000 */ sw $t4, ($v1) # -/* 0AB868 7F076D38 AC6D0004 */ sw $t5, 4($v1) #gDPSetRenderMode(,) -/* 0AB86C 7F076D3C 10000008 */ b .L7F076D60 -/* 0AB870 7F076D40 24420008 */ addiu $v0, $v0, 8 -.L7F076D44: -/* 0AB874 7F076D44 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 # -/* 0AB878 7F076D48 3C0F0C18 */ lui $t7, (0x0C184340 >> 16) # lui $t7, 0xc18 # -/* 0AB87C 7F076D4C 35EF4340 */ ori $t7, (0x0C184340 & 0xFFFF) # ori $t7, $t7, 0x4340 # -/* 0AB880 7F076D50 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d # -/* 0AB884 7F076D54 AC6E0000 */ sw $t6, ($v1) # -/* 0AB888 7F076D58 AC6F0004 */ sw $t7, 4($v1) #gDPSetRenderMode(,) -/* 0AB88C 7F076D5C 24420008 */ addiu $v0, $v0, 8 -.L7F076D60: -/* 0AB890 7F076D60 03E00008 */ jr $ra -/* 0AB894 7F076D64 AC820000 */ sw $v0, ($a0) -) -#endif - - - - - -#ifdef NONMATCHING -void likely_generate_DL_for_image_declaration(void) { +void likely_generate_DL_for_image_declaration(Gfx**, struct sImageTableEntry*, s32, s32, s32) { } #else @@ -750,7 +324,7 @@ glabel likely_generate_DL_for_image_declaration /* 0AB8D8 7F076DA8 AFAF016C */ sw $t7, 0x16c($sp) /* 0AB8DC 7F076DAC 00C02825 */ move $a1, $a2 /* 0AB8E0 7F076DB0 24060001 */ li $a2, 1 -/* 0AB8E4 7F076DB4 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0AB8E4 7F076DB4 0FC1DA66 */ jal texSetRenderMode /* 0AB8E8 7F076DB8 27A4016C */ addiu $a0, $sp, 0x16c /* 0AB8EC 7F076DBC 2A010002 */ slti $at, $s0, 2 /* 0AB8F0 7F076DC0 1420000D */ bnez $at, .L7F076DF8 @@ -793,14 +367,14 @@ glabel likely_generate_DL_for_image_declaration /* 0AB978 7F076E48 2C410BB9 */ sltiu $at, $v0, 0xbb9 /* 0AB97C 7F076E4C 10200004 */ beqz $at, .L7F076E60 /* 0AB980 7F076E50 02E02025 */ move $a0, $s7 -/* 0AB984 7F076E54 0FC32F06 */ jal load_image_to_buffer +/* 0AB984 7F076E54 0FC32F06 */ jal texLoad /* 0AB988 7F076E58 00002825 */ move $a1, $zero /* 0AB98C 7F076E5C 8EE20000 */ lw $v0, ($s7) .L7F076E60: /* 0AB990 7F076E60 3C018000 */ lui $at, 0x8000 /* 0AB994 7F076E64 00411825 */ or $v1, $v0, $at /* 0AB998 7F076E68 9464FFF8 */ lhu $a0, -8($v1) -/* 0AB99C 7F076E6C 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 0AB99C 7F076E6C 0FC32EC3 */ jal texFindInPool /* 0AB9A0 7F076E70 00002825 */ move $a1, $zero /* 0AB9A4 7F076E74 92E30006 */ lbu $v1, 6($s7) /* 0AB9A8 7F076E78 0040B025 */ move $s6, $v0 @@ -896,7 +470,7 @@ glabel likely_generate_DL_for_image_declaration /* 0ABAF4 7F076FC4 27A4016C */ addiu $a0, $sp, 0x16c /* 0ABAF8 7F076FC8 8FA50178 */ lw $a1, 0x178($sp) /* 0ABAFC 7F076FCC 24060001 */ li $a2, 1 -/* 0ABB00 7F076FD0 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0ABB00 7F076FD0 0FC1DA66 */ jal texSetRenderMode /* 0ABB04 7F076FD4 02003825 */ move $a3, $s0 /* 0ABB08 7F076FD8 2A010002 */ slti $at, $s0, 2 /* 0ABB0C 7F076FDC 1420000D */ bnez $at, .L7F077014 @@ -1268,7 +842,7 @@ glabel likely_generate_DL_for_image_declaration .L7F077538: /* 0AC068 7F077538 8FA50178 */ lw $a1, 0x178($sp) /* 0AC06C 7F07753C 24060002 */ li $a2, 2 -/* 0AC070 7F077540 0FC1DA66 */ jal generate_microcode_for_othermode_setting +/* 0AC070 7F077540 0FC1DA66 */ jal texSetRenderMode /* 0AC074 7F077544 02003825 */ move $a3, $s0 /* 0AC078 7F077548 2A010002 */ slti $at, $s0, 2 /* 0AC07C 7F07754C 14200012 */ bnez $at, .L7F077598 @@ -1534,11 +1108,11 @@ glabel likely_generate_DL_for_image_declaration /* 0AC44C 7F07791C 000E7880 */ sll $t7, $t6, 2 /* 0AC450 7F077920 05E1000A */ bgez $t7, .L7F07794C /* 0AC454 7F077924 00000000 */ nop -/* 0AC458 7F077928 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 0AC458 7F077928 0FC331C5 */ jal texGetWidthAtLod /* 0AC45C 7F07792C 02202825 */ move $a1, $s1 /* 0AC460 7F077930 0040A825 */ move $s5, $v0 /* 0AC464 7F077934 02C02025 */ move $a0, $s6 -/* 0AC468 7F077938 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 0AC468 7F077938 0FC331FF */ jal texGetHeightAtLod /* 0AC46C 7F07793C 02202825 */ move $a1, $s1 /* 0AC470 7F077940 0040A025 */ move $s4, $v0 /* 0AC474 7F077944 10000008 */ b .L7F077968 diff --git a/src/game/padhalllv.c b/src/game/padhalllv.c index 395b4b0a..3ee2ab5a 100644 --- a/src/game/padhalllv.c +++ b/src/game/padhalllv.c @@ -1,5 +1,8 @@ #include #include "padhalllv.h" +#include "bondtypes.h" +#include "chrai.h" +#include "random.h" //pd decomp has a filesplit here //all ge versions align properly @@ -13,8 +16,8 @@ void sub_GAME_7F08EBD0(void) { GLOBAL_ASM( .text glabel sub_GAME_7F08EBD0 -/* 0C3700 7F08EBD0 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0) -/* 0C3704 7F08EBD4 8C425D00 */ lw $v0, %lo(g_chraiCurrentSetup+0)($v0) +/* 0C3700 7F08EBD0 3C028007 */ lui $v0, %hi(g_CurrentSetup+0) +/* 0C3704 7F08EBD4 8C425D00 */ lw $v0, %lo(g_CurrentSetup+0)($v0) /* 0C3708 7F08EBD8 27BDFFF0 */ addiu $sp, $sp, -0x10 /* 0C370C 7F08EBDC F7B40008 */ sdc1 $f20, 8($sp) /* 0C3710 7F08EBE0 AFA50014 */ sw $a1, 0x14($sp) @@ -26,12 +29,12 @@ glabel sub_GAME_7F08EBD0 /* 0C3728 7F08EBF8 44810000 */ mtc1 $at, $f0 /* 0C372C 7F08EBFC 05C0001F */ bltz $t6, .L7F08EC7C /* 0C3730 7F08EC00 00402025 */ move $a0, $v0 -/* 0C3734 7F08EC04 3C068007 */ lui $a2, %hi(g_chraiCurrentSetup+0x18) +/* 0C3734 7F08EC04 3C068007 */ lui $a2, %hi(g_CurrentSetup+0x18) /* 0C3738 7F08EC08 C4EC0008 */ lwc1 $f12, 8($a3) /* 0C373C 7F08EC0C C4F00000 */ lwc1 $f16, ($a3) /* 0C3740 7F08EC10 4480A000 */ mtc1 $zero, $f20 /* 0C3744 7F08EC14 2407002C */ li $a3, 44 -/* 0C3748 7F08EC18 8CC65D18 */ lw $a2, %lo(g_chraiCurrentSetup+0x18)($a2) +/* 0C3748 7F08EC18 8CC65D18 */ lw $a2, %lo(g_CurrentSetup+0x18)($a2) /* 0C374C 7F08EC1C 8C450000 */ lw $a1, ($v0) .L7F08EC20: /* 0C3750 7F08EC20 00A70019 */ multu $a1, $a3 @@ -87,9 +90,9 @@ glabel sub_GAME_7F08EC8C /* 0C37D0 7F08ECA0 00000000 */ nop /* 0C37D4 7F08ECA4 8CCE0000 */ lw $t6, ($a2) /* 0C37D8 7F08ECA8 240A002C */ li $t2, 44 -/* 0C37DC 7F08ECAC 3C0B8007 */ lui $t3, %hi(g_chraiCurrentSetup+0) +/* 0C37DC 7F08ECAC 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0) /* 0C37E0 7F08ECB0 01CA0019 */ multu $t6, $t2 -/* 0C37E4 7F08ECB4 256B5D00 */ addiu $t3, %lo(g_chraiCurrentSetup+0) # addiu $t3, $t3, 0x5d00 +/* 0C37E4 7F08ECB4 256B5D00 */ addiu $t3, %lo(g_CurrentSetup+0) # addiu $t3, $t3, 0x5d00 /* 0C37E8 7F08ECB8 8D650018 */ lw $a1, 0x18($t3) /* 0C37EC 7F08ECBC C4E20008 */ lwc1 $f2, 8($a3) /* 0C37F0 7F08ECC0 C4EE0000 */ lwc1 $f14, ($a3) @@ -139,249 +142,121 @@ glabel sub_GAME_7F08EC8C #endif +waygroup *sub_GAME_7F08ED60(s32 *groupnums, s32 value) +{ + waygroup *groups = g_CurrentSetup.waypointgroups; + while (*groupnums >= 0) + { + waygroup *group = &groups[*groupnums]; + if (group->dist == value) + { + return group; + } + *groupnums++; + } -#ifdef NONMATCHING -void sub_GAME_7F08ED60(void) { - + return NULL; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08ED60 -/* 0C3890 7F08ED60 8C830000 */ lw $v1, ($a0) -/* 0C3894 7F08ED64 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+4) -/* 0C3898 7F08ED68 00A03025 */ move $a2, $a1 -/* 0C389C 7F08ED6C 0460000E */ bltz $v1, .L7F08EDA8 -/* 0C38A0 7F08ED70 8C425D04 */ lw $v0, %lo(g_chraiCurrentSetup+4)($v0) -/* 0C38A4 7F08ED74 2407000C */ li $a3, 12 -.L7F08ED78: -/* 0C38A8 7F08ED78 00670019 */ multu $v1, $a3 -/* 0C38AC 7F08ED7C 00007012 */ mflo $t6 -/* 0C38B0 7F08ED80 01C22821 */ addu $a1, $t6, $v0 -/* 0C38B4 7F08ED84 8CAF0008 */ lw $t7, 8($a1) -/* 0C38B8 7F08ED88 54CF0004 */ bnel $a2, $t7, .L7F08ED9C -/* 0C38BC 7F08ED8C 8C830004 */ lw $v1, 4($a0) -/* 0C38C0 7F08ED90 03E00008 */ jr $ra -/* 0C38C4 7F08ED94 00A01025 */ move $v0, $a1 - -/* 0C38C8 7F08ED98 8C830004 */ lw $v1, 4($a0) -.L7F08ED9C: -/* 0C38CC 7F08ED9C 24840004 */ addiu $a0, $a0, 4 -/* 0C38D0 7F08EDA0 0461FFF5 */ bgez $v1, .L7F08ED78 -/* 0C38D4 7F08EDA4 00000000 */ nop -.L7F08EDA8: -/* 0C38D8 7F08EDA8 00001025 */ move $v0, $zero -/* 0C38DC 7F08EDAC 03E00008 */ jr $ra -/* 0C38E0 7F08EDB0 00000000 */ nop -) -#endif +/** + * For each group number in the given list assign value to their + * dist if their dist has no value (ie. is negative). + */ +void sub_GAME_7F08EDB4(s32 *groupnums, s32 value) +{ + waygroup *groups = g_CurrentSetup.waypointgroups; + while (*groupnums >= 0) + { + waygroup *group = &groups[*groupnums]; + if (group->dist < 0) + { + group->dist = value; + } -#ifdef NONMATCHING -void sub_GAME_7F08EDB4(void) { - + groupnums++; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08EDB4 -/* 0C38E4 7F08EDB4 8C830000 */ lw $v1, ($a0) -/* 0C38E8 7F08EDB8 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+4) -/* 0C38EC 7F08EDBC 00A03025 */ move $a2, $a1 -/* 0C38F0 7F08EDC0 0460000D */ bltz $v1, .L7F08EDF8 -/* 0C38F4 7F08EDC4 8C425D04 */ lw $v0, %lo(g_chraiCurrentSetup+4)($v0) -/* 0C38F8 7F08EDC8 2407000C */ li $a3, 12 -.L7F08EDCC: -/* 0C38FC 7F08EDCC 00670019 */ multu $v1, $a3 -/* 0C3900 7F08EDD0 00007012 */ mflo $t6 -/* 0C3904 7F08EDD4 01C22821 */ addu $a1, $t6, $v0 -/* 0C3908 7F08EDD8 8CAF0008 */ lw $t7, 8($a1) -/* 0C390C 7F08EDDC 05E30003 */ bgezl $t7, .L7F08EDEC -/* 0C3910 7F08EDE0 8C830004 */ lw $v1, 4($a0) -/* 0C3914 7F08EDE4 ACA60008 */ sw $a2, 8($a1) -/* 0C3918 7F08EDE8 8C830004 */ lw $v1, 4($a0) -.L7F08EDEC: -/* 0C391C 7F08EDEC 24840004 */ addiu $a0, $a0, 4 -/* 0C3920 7F08EDF0 0461FFF6 */ bgez $v1, .L7F08EDCC -/* 0C3924 7F08EDF4 00000000 */ nop -.L7F08EDF8: -/* 0C3928 7F08EDF8 03E00008 */ jr $ra -/* 0C392C 7F08EDFC 00000000 */ nop -) -#endif +/** + * Iterate the given groups and find any with an dist matching arg1. + * For all groups that match, iterate their neighbouring groups and set their + * dist to arg1 + 1, but only if their they have no existing dist value. + * + * Return true if any matched. + */ +bool sub_GAME_7F08EE00(struct waygroup *group, s32 arg1) +{ + bool result = FALSE; + while (group->neighbours) + { + if (group->dist == arg1) + { + result = TRUE; + sub_GAME_7F08EDB4(group->neighbours, arg1 + 1); + } + group++; + } -#ifdef NONMATCHING -void sub_GAME_7F08EE00(void) { - + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08EE00 -/* 0C3930 7F08EE00 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C3934 7F08EE04 AFBF0024 */ sw $ra, 0x24($sp) -/* 0C3938 7F08EE08 AFB20020 */ sw $s2, 0x20($sp) -/* 0C393C 7F08EE0C AFB1001C */ sw $s1, 0x1c($sp) -/* 0C3940 7F08EE10 AFB00018 */ sw $s0, 0x18($sp) -/* 0C3944 7F08EE14 8C860000 */ lw $a2, ($a0) -/* 0C3948 7F08EE18 00808025 */ move $s0, $a0 -/* 0C394C 7F08EE1C 00A08825 */ move $s1, $a1 -/* 0C3950 7F08EE20 10C0000C */ beqz $a2, .L7F08EE54 -/* 0C3954 7F08EE24 00009025 */ move $s2, $zero -/* 0C3958 7F08EE28 8E0E0008 */ lw $t6, 8($s0) -.L7F08EE2C: -/* 0C395C 7F08EE2C 00C02025 */ move $a0, $a2 -/* 0C3960 7F08EE30 26250001 */ addiu $a1, $s1, 1 -/* 0C3964 7F08EE34 562E0004 */ bnel $s1, $t6, .L7F08EE48 -/* 0C3968 7F08EE38 8E06000C */ lw $a2, 0xc($s0) -/* 0C396C 7F08EE3C 0FC23B6D */ jal sub_GAME_7F08EDB4 -/* 0C3970 7F08EE40 24120001 */ li $s2, 1 -/* 0C3974 7F08EE44 8E06000C */ lw $a2, 0xc($s0) -.L7F08EE48: -/* 0C3978 7F08EE48 2610000C */ addiu $s0, $s0, 0xc -/* 0C397C 7F08EE4C 54C0FFF7 */ bnezl $a2, .L7F08EE2C -/* 0C3980 7F08EE50 8E0E0008 */ lw $t6, 8($s0) -.L7F08EE54: -/* 0C3984 7F08EE54 8FBF0024 */ lw $ra, 0x24($sp) -/* 0C3988 7F08EE58 02401025 */ move $v0, $s2 -/* 0C398C 7F08EE5C 8FB20020 */ lw $s2, 0x20($sp) -/* 0C3990 7F08EE60 8FB00018 */ lw $s0, 0x18($sp) -/* 0C3994 7F08EE64 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C3998 7F08EE68 03E00008 */ jr $ra -/* 0C399C 7F08EE6C 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif +bool sub_GAME_7F08EE70(struct waygroup *from, struct waygroup *to, struct waygroup *groups, s32 arg3) +{ + bool result = TRUE; + struct waygroup *group; + s32 i; + for (group = groups; group->neighbours; group++) + { + group->dist = -1; + } + from->dist = 0; -#ifdef NONMATCHING -void sub_GAME_7F08EE70(void) { + for (i = 0; (arg3 || to->dist < 0) && result; i++) + { + result = sub_GAME_7F08EE00(groups, i); + } + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08EE70 -/* 0C39A0 7F08EE70 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C39A4 7F08EE74 AFBF0024 */ sw $ra, 0x24($sp) -/* 0C39A8 7F08EE78 AFB30020 */ sw $s3, 0x20($sp) -/* 0C39AC 7F08EE7C AFB2001C */ sw $s2, 0x1c($sp) -/* 0C39B0 7F08EE80 AFB10018 */ sw $s1, 0x18($sp) -/* 0C39B4 7F08EE84 AFB00014 */ sw $s0, 0x14($sp) -/* 0C39B8 7F08EE88 8CCE0000 */ lw $t6, ($a2) -/* 0C39BC 7F08EE8C 00C08825 */ move $s1, $a2 -/* 0C39C0 7F08EE90 00E09025 */ move $s2, $a3 -/* 0C39C4 7F08EE94 00A09825 */ move $s3, $a1 -/* 0C39C8 7F08EE98 24080001 */ li $t0, 1 -/* 0C39CC 7F08EE9C 11C00007 */ beqz $t6, .L7F08EEBC -/* 0C39D0 7F08EEA0 00C01025 */ move $v0, $a2 -/* 0C39D4 7F08EEA4 2403FFFF */ li $v1, -1 -/* 0C39D8 7F08EEA8 8C4F000C */ lw $t7, 0xc($v0) -.L7F08EEAC: -/* 0C39DC 7F08EEAC 2442000C */ addiu $v0, $v0, 0xc -/* 0C39E0 7F08EEB0 AC43FFFC */ sw $v1, -4($v0) -/* 0C39E4 7F08EEB4 55E0FFFD */ bnezl $t7, .L7F08EEAC -/* 0C39E8 7F08EEB8 8C4F000C */ lw $t7, 0xc($v0) -.L7F08EEBC: -/* 0C39EC 7F08EEBC AC800008 */ sw $zero, 8($a0) -/* 0C39F0 7F08EEC0 16400003 */ bnez $s2, .L7F08EED0 -/* 0C39F4 7F08EEC4 00008025 */ move $s0, $zero -/* 0C39F8 7F08EEC8 8E780008 */ lw $t8, 8($s3) -/* 0C39FC 7F08EECC 0701000B */ bgez $t8, .L7F08EEFC -.L7F08EED0: -/* 0C3A00 7F08EED0 02202025 */ move $a0, $s1 -.L7F08EED4: -/* 0C3A04 7F08EED4 0FC23B80 */ jal sub_GAME_7F08EE00 -/* 0C3A08 7F08EED8 02002825 */ move $a1, $s0 -/* 0C3A0C 7F08EEDC 26100001 */ addiu $s0, $s0, 1 -/* 0C3A10 7F08EEE0 16400004 */ bnez $s2, .L7F08EEF4 -/* 0C3A14 7F08EEE4 00404025 */ move $t0, $v0 -/* 0C3A18 7F08EEE8 8E790008 */ lw $t9, 8($s3) -/* 0C3A1C 7F08EEEC 07230004 */ bgezl $t9, .L7F08EF00 -/* 0C3A20 7F08EEF0 8FBF0024 */ lw $ra, 0x24($sp) -.L7F08EEF4: -/* 0C3A24 7F08EEF4 5500FFF7 */ bnezl $t0, .L7F08EED4 -/* 0C3A28 7F08EEF8 02202025 */ move $a0, $s1 -.L7F08EEFC: -/* 0C3A2C 7F08EEFC 8FBF0024 */ lw $ra, 0x24($sp) -.L7F08EF00: -/* 0C3A30 7F08EF00 8FB00014 */ lw $s0, 0x14($sp) -/* 0C3A34 7F08EF04 8FB10018 */ lw $s1, 0x18($sp) -/* 0C3A38 7F08EF08 8FB2001C */ lw $s2, 0x1c($sp) -/* 0C3A3C 7F08EF0C 8FB30020 */ lw $s3, 0x20($sp) -/* 0C3A40 7F08EF10 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C3A44 7F08EF14 03E00008 */ jr $ra -/* 0C3A48 7F08EF18 01001025 */ move $v0, $t0 -) -#endif +bool sub_GAME_7F08EF1C(waygroup *from, waygroup *to, waygroup *groups) +{ + u32 stack[2]; + bool result = sub_GAME_7F08EE70(from, to, groups, 0); + if (result) + { + waygroup *curto = to; + s32 i = curto->dist - 1; + while (i >= 0) + { + curto->dist += 10000; + curto = sub_GAME_7F08ED60(curto->neighbours, i); + i--; + } -#ifdef NONMATCHING -void sub_GAME_7F08EF1C(void) { + curto->dist += 10000; + } + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08EF1C -/* 0C3A4C 7F08EF1C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C3A50 7F08EF20 AFBF001C */ sw $ra, 0x1c($sp) -/* 0C3A54 7F08EF24 AFB10018 */ sw $s1, 0x18($sp) -/* 0C3A58 7F08EF28 AFB00014 */ sw $s0, 0x14($sp) -/* 0C3A5C 7F08EF2C AFA50034 */ sw $a1, 0x34($sp) -/* 0C3A60 7F08EF30 0FC23B9C */ jal sub_GAME_7F08EE70 -/* 0C3A64 7F08EF34 00003825 */ move $a3, $zero -/* 0C3A68 7F08EF38 8FA50034 */ lw $a1, 0x34($sp) -/* 0C3A6C 7F08EF3C 10400012 */ beqz $v0, .L7F08EF88 -/* 0C3A70 7F08EF40 AFA20024 */ sw $v0, 0x24($sp) -/* 0C3A74 7F08EF44 8CB00008 */ lw $s0, 8($a1) -/* 0C3A78 7F08EF48 00A08825 */ move $s1, $a1 -/* 0C3A7C 7F08EF4C 2610FFFF */ addiu $s0, $s0, -1 -/* 0C3A80 7F08EF50 0602000B */ bltzl $s0, .L7F08EF80 -/* 0C3A84 7F08EF54 8E380008 */ lw $t8, 8($s1) -.L7F08EF58: -/* 0C3A88 7F08EF58 8E2E0008 */ lw $t6, 8($s1) -/* 0C3A8C 7F08EF5C 8E240000 */ lw $a0, ($s1) -/* 0C3A90 7F08EF60 02002825 */ move $a1, $s0 -/* 0C3A94 7F08EF64 25CF2710 */ addiu $t7, $t6, 0x2710 -/* 0C3A98 7F08EF68 0FC23B58 */ jal sub_GAME_7F08ED60 -/* 0C3A9C 7F08EF6C AE2F0008 */ sw $t7, 8($s1) -/* 0C3AA0 7F08EF70 2610FFFF */ addiu $s0, $s0, -1 -/* 0C3AA4 7F08EF74 0601FFF8 */ bgez $s0, .L7F08EF58 -/* 0C3AA8 7F08EF78 00408825 */ move $s1, $v0 -/* 0C3AAC 7F08EF7C 8E380008 */ lw $t8, 8($s1) -.L7F08EF80: -/* 0C3AB0 7F08EF80 27192710 */ addiu $t9, $t8, 0x2710 -/* 0C3AB4 7F08EF84 AE390008 */ sw $t9, 8($s1) -.L7F08EF88: -/* 0C3AB8 7F08EF88 8FBF001C */ lw $ra, 0x1c($sp) -/* 0C3ABC 7F08EF8C 8FA20024 */ lw $v0, 0x24($sp) -/* 0C3AC0 7F08EF90 8FB00014 */ lw $s0, 0x14($sp) -/* 0C3AC4 7F08EF94 8FB10018 */ lw $s1, 0x18($sp) -/* 0C3AC8 7F08EF98 03E00008 */ jr $ra -/* 0C3ACC 7F08EF9C 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - #ifdef NONMATCHING +// unused and similar to waypointFindRoute void sub_GAME_7F08EFA0(void) { } @@ -402,8 +277,8 @@ glabel sub_GAME_7F08EFA0 /* 0C3AF8 7F08EFC8 AFA60038 */ sw $a2, 0x38($sp) /* 0C3AFC 7F08EFCC 14200022 */ bnez $at, .L7F08F058 /* 0C3B00 7F08EFD0 00C08825 */ move $s1, $a2 -/* 0C3B04 7F08EFD4 3C068007 */ lui $a2, %hi(g_chraiCurrentSetup+4) -/* 0C3B08 7F08EFD8 8CC65D04 */ lw $a2, %lo(g_chraiCurrentSetup+4)($a2) +/* 0C3B04 7F08EFD4 3C068007 */ lui $a2, %hi(g_CurrentSetup+4) +/* 0C3B08 7F08EFD8 8CC65D04 */ lw $a2, %lo(g_CurrentSetup+4)($a2) /* 0C3B0C 7F08EFDC 50C0001F */ beql $a2, $zero, .L7F08F05C /* 0C3B10 7F08EFE0 AE200000 */ sw $zero, ($s1) /* 0C3B14 7F08EFE4 0FC23BC7 */ jal sub_GAME_7F08EF1C @@ -456,1184 +331,441 @@ glabel sub_GAME_7F08EFA0 #endif -#ifdef NONMATCHING -struct Pad* findPadWithDistAndSet(s32 *padNumList,s32 desiredDist, u32 setIndex) // findPadWithDistAndSet +waypoint *findPadWithDistAndSet(s32 *pointnums, s32 arg1, s32 groupnum) { - s32 padNum; - struct Pad *currPad; + waypoint *points = g_CurrentSetup.pathwaypoints; - padNum = padNumList[0]; - - while (padNum >= 0) + while (*pointnums >= 0) { - currPad = g_chraiCurrentSetup.pathwaypoints + padNum; - if (setIndex == currPad->pathSetIndex) { - if (desiredDist == currPad->dist_tmp) { - return currPad; - } + waypoint *point = &points[*pointnums]; + + if (point->groupNum == groupnum && point->dist == arg1) + { + return point; } - padNumList += 1; - padNum = *padNumList; - } - - return (struct Pad*)0; -} -#else -GLOBAL_ASM( -.text -glabel findPadWithDistAndSet -/* 0C3BC0 7F08F090 8C830000 */ lw $v1, ($a0) -/* 0C3BC4 7F08F094 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0) -/* 0C3BC8 7F08F098 00A03825 */ move $a3, $a1 -/* 0C3BCC 7F08F09C 0460000F */ bltz $v1, .L7F08F0DC -/* 0C3BD0 7F08F0A0 8C425D00 */ lw $v0, %lo(g_chraiCurrentSetup+0)($v0) -/* 0C3BD4 7F08F0A4 00037100 */ sll $t6, $v1, 4 -.L7F08F0A8: -/* 0C3BD8 7F08F0A8 01C22821 */ addu $a1, $t6, $v0 -/* 0C3BDC 7F08F0AC 8CAF0008 */ lw $t7, 8($a1) -/* 0C3BE0 7F08F0B0 54CF0007 */ bnel $a2, $t7, .L7F08F0D0 -/* 0C3BE4 7F08F0B4 8C830004 */ lw $v1, 4($a0) -/* 0C3BE8 7F08F0B8 8CB8000C */ lw $t8, 0xc($a1) -/* 0C3BEC 7F08F0BC 54F80004 */ bnel $a3, $t8, .L7F08F0D0 -/* 0C3BF0 7F08F0C0 8C830004 */ lw $v1, 4($a0) -/* 0C3BF4 7F08F0C4 03E00008 */ jr $ra -/* 0C3BF8 7F08F0C8 00A01025 */ move $v0, $a1 - -/* 0C3BFC 7F08F0CC 8C830004 */ lw $v1, 4($a0) -.L7F08F0D0: -/* 0C3C00 7F08F0D0 24840004 */ addiu $a0, $a0, 4 -/* 0C3C04 7F08F0D4 0463FFF4 */ bgezl $v1, .L7F08F0A8 -/* 0C3C08 7F08F0D8 00037100 */ sll $t6, $v1, 4 -.L7F08F0DC: -/* 0C3C0C 7F08F0DC 00001025 */ move $v0, $zero -/* 0C3C10 7F08F0E0 03E00008 */ jr $ra -/* 0C3C14 7F08F0E4 00000000 */ nop -) -#endif - - - - -#ifdef NONMATCHING -void sub_GAME_7F08F0E8(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F0E8 -/* 0C3C18 7F08F0E8 8C830000 */ lw $v1, ($a0) -/* 0C3C1C 7F08F0EC 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0) -/* 0C3C20 7F08F0F0 00A03825 */ move $a3, $a1 -/* 0C3C24 7F08F0F4 0460000E */ bltz $v1, .L7F08F130 -/* 0C3C28 7F08F0F8 8C425D00 */ lw $v0, %lo(g_chraiCurrentSetup+0)($v0) -/* 0C3C2C 7F08F0FC 00037100 */ sll $t6, $v1, 4 -.L7F08F100: -/* 0C3C30 7F08F100 01C22821 */ addu $a1, $t6, $v0 -/* 0C3C34 7F08F104 8CAF0008 */ lw $t7, 8($a1) -/* 0C3C38 7F08F108 54CF0006 */ bnel $a2, $t7, .L7F08F124 -/* 0C3C3C 7F08F10C 8C830004 */ lw $v1, 4($a0) -/* 0C3C40 7F08F110 8CB8000C */ lw $t8, 0xc($a1) -/* 0C3C44 7F08F114 07030003 */ bgezl $t8, .L7F08F124 -/* 0C3C48 7F08F118 8C830004 */ lw $v1, 4($a0) -/* 0C3C4C 7F08F11C ACA7000C */ sw $a3, 0xc($a1) -/* 0C3C50 7F08F120 8C830004 */ lw $v1, 4($a0) -.L7F08F124: -/* 0C3C54 7F08F124 24840004 */ addiu $a0, $a0, 4 -/* 0C3C58 7F08F128 0463FFF5 */ bgezl $v1, .L7F08F100 -/* 0C3C5C 7F08F12C 00037100 */ sll $t6, $v1, 4 -.L7F08F130: -/* 0C3C60 7F08F130 03E00008 */ jr $ra -/* 0C3C64 7F08F134 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F08F138(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F138 -/* 0C3C68 7F08F138 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C3C6C 7F08F13C AFBF002C */ sw $ra, 0x2c($sp) -/* 0C3C70 7F08F140 AFB40028 */ sw $s4, 0x28($sp) -/* 0C3C74 7F08F144 AFB30024 */ sw $s3, 0x24($sp) -/* 0C3C78 7F08F148 AFB20020 */ sw $s2, 0x20($sp) -/* 0C3C7C 7F08F14C AFB1001C */ sw $s1, 0x1c($sp) -/* 0C3C80 7F08F150 AFB00018 */ sw $s0, 0x18($sp) -/* 0C3C84 7F08F154 8C820000 */ lw $v0, ($a0) -/* 0C3C88 7F08F158 3C138007 */ lui $s3, %hi(g_chraiCurrentSetup+0) -/* 0C3C8C 7F08F15C 00808025 */ move $s0, $a0 -/* 0C3C90 7F08F160 00A08825 */ move $s1, $a1 -/* 0C3C94 7F08F164 00C0A025 */ move $s4, $a2 -/* 0C3C98 7F08F168 00009025 */ move $s2, $zero -/* 0C3C9C 7F08F16C 04400011 */ bltz $v0, .L7F08F1B4 -/* 0C3CA0 7F08F170 8E735D00 */ lw $s3, %lo(g_chraiCurrentSetup+0)($s3) -/* 0C3CA4 7F08F174 00027100 */ sll $t6, $v0, 4 -.L7F08F178: -/* 0C3CA8 7F08F178 01D31821 */ addu $v1, $t6, $s3 -/* 0C3CAC 7F08F17C 8C6F000C */ lw $t7, 0xc($v1) -/* 0C3CB0 7F08F180 562F0009 */ bnel $s1, $t7, .L7F08F1A8 -/* 0C3CB4 7F08F184 8E020004 */ lw $v0, 4($s0) -/* 0C3CB8 7F08F188 8C640004 */ lw $a0, 4($v1) -/* 0C3CBC 7F08F18C 26250001 */ addiu $a1, $s1, 1 -/* 0C3CC0 7F08F190 02803025 */ move $a2, $s4 -/* 0C3CC4 7F08F194 50800004 */ beql $a0, $zero, .L7F08F1A8 -/* 0C3CC8 7F08F198 8E020004 */ lw $v0, 4($s0) -/* 0C3CCC 7F08F19C 0FC23C3A */ jal sub_GAME_7F08F0E8 -/* 0C3CD0 7F08F1A0 24120001 */ li $s2, 1 -/* 0C3CD4 7F08F1A4 8E020004 */ lw $v0, 4($s0) -.L7F08F1A8: -/* 0C3CD8 7F08F1A8 26100004 */ addiu $s0, $s0, 4 -/* 0C3CDC 7F08F1AC 0443FFF2 */ bgezl $v0, .L7F08F178 -/* 0C3CE0 7F08F1B0 00027100 */ sll $t6, $v0, 4 -.L7F08F1B4: -/* 0C3CE4 7F08F1B4 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C3CE8 7F08F1B8 02401025 */ move $v0, $s2 -/* 0C3CEC 7F08F1BC 8FB20020 */ lw $s2, 0x20($sp) -/* 0C3CF0 7F08F1C0 8FB00018 */ lw $s0, 0x18($sp) -/* 0C3CF4 7F08F1C4 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C3CF8 7F08F1C8 8FB30024 */ lw $s3, 0x24($sp) -/* 0C3CFC 7F08F1CC 8FB40028 */ lw $s4, 0x28($sp) -/* 0C3D00 7F08F1D0 03E00008 */ jr $ra -/* 0C3D04 7F08F1D4 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - - - -#ifdef NONMATCHING -void do_BFS_withinPathSet(void) { - -} -#else -GLOBAL_ASM( -.text -glabel do_BFS_withinPathSet -/* 0C3D08 7F08F1D8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C3D0C 7F08F1DC AFBF002C */ sw $ra, 0x2c($sp) -/* 0C3D10 7F08F1E0 AFB50028 */ sw $s5, 0x28($sp) -/* 0C3D14 7F08F1E4 AFB40024 */ sw $s4, 0x24($sp) -/* 0C3D18 7F08F1E8 AFB30020 */ sw $s3, 0x20($sp) -/* 0C3D1C 7F08F1EC AFB2001C */ sw $s2, 0x1c($sp) -/* 0C3D20 7F08F1F0 AFB10018 */ sw $s1, 0x18($sp) -/* 0C3D24 7F08F1F4 AFB00014 */ sw $s0, 0x14($sp) -/* 0C3D28 7F08F1F8 8C8E0008 */ lw $t6, 8($a0) -/* 0C3D2C 7F08F1FC 2415000C */ li $s5, 12 -/* 0C3D30 7F08F200 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0) -/* 0C3D34 7F08F204 01D50019 */ multu $t6, $s5 -/* 0C3D38 7F08F208 24425D00 */ addiu $v0, %lo(g_chraiCurrentSetup+0) # addiu $v0, $v0, 0x5d00 -/* 0C3D3C 7F08F20C 8C510004 */ lw $s1, 4($v0) -/* 0C3D40 7F08F210 00809025 */ move $s2, $a0 -/* 0C3D44 7F08F214 00C09825 */ move $s3, $a2 -/* 0C3D48 7F08F218 00A0A025 */ move $s4, $a1 -/* 0C3D4C 7F08F21C 8C480000 */ lw $t0, ($v0) -/* 0C3D50 7F08F220 2404FFFF */ li $a0, -1 -/* 0C3D54 7F08F224 00008025 */ move $s0, $zero -/* 0C3D58 7F08F228 00007812 */ mflo $t7 -/* 0C3D5C 7F08F22C 022FC021 */ addu $t8, $s1, $t7 -/* 0C3D60 7F08F230 8F030004 */ lw $v1, 4($t8) -/* 0C3D64 7F08F234 8C670000 */ lw $a3, ($v1) -/* 0C3D68 7F08F238 04E00007 */ bltz $a3, .L7F08F258 -/* 0C3D6C 7F08F23C 0007C900 */ sll $t9, $a3, 4 -.L7F08F240: -/* 0C3D70 7F08F240 03281021 */ addu $v0, $t9, $t0 -/* 0C3D74 7F08F244 AC44000C */ sw $a0, 0xc($v0) -/* 0C3D78 7F08F248 8C670004 */ lw $a3, 4($v1) -/* 0C3D7C 7F08F24C 24630004 */ addiu $v1, $v1, 4 -/* 0C3D80 7F08F250 04E3FFFB */ bgezl $a3, .L7F08F240 -/* 0C3D84 7F08F254 0007C900 */ sll $t9, $a3, 4 -.L7F08F258: -/* 0C3D88 7F08F258 16600004 */ bnez $s3, .L7F08F26C -/* 0C3D8C 7F08F25C AE40000C */ sw $zero, 0xc($s2) -/* 0C3D90 7F08F260 8E89000C */ lw $t1, 0xc($s4) -/* 0C3D94 7F08F264 05230011 */ bgezl $t1, .L7F08F2AC -/* 0C3D98 7F08F268 8FBF002C */ lw $ra, 0x2c($sp) -.L7F08F26C: -/* 0C3D9C 7F08F26C 8E460008 */ lw $a2, 8($s2) -.L7F08F270: -/* 0C3DA0 7F08F270 02002825 */ move $a1, $s0 -/* 0C3DA4 7F08F274 00D50019 */ multu $a2, $s5 -/* 0C3DA8 7F08F278 00005012 */ mflo $t2 -/* 0C3DAC 7F08F27C 022A5821 */ addu $t3, $s1, $t2 -/* 0C3DB0 7F08F280 0FC23C4E */ jal sub_GAME_7F08F138 -/* 0C3DB4 7F08F284 8D640004 */ lw $a0, 4($t3) -/* 0C3DB8 7F08F288 26100001 */ addiu $s0, $s0, 1 -/* 0C3DBC 7F08F28C 16600004 */ bnez $s3, .L7F08F2A0 -/* 0C3DC0 7F08F290 00401825 */ move $v1, $v0 -/* 0C3DC4 7F08F294 8E8C000C */ lw $t4, 0xc($s4) -/* 0C3DC8 7F08F298 05830004 */ bgezl $t4, .L7F08F2AC -/* 0C3DCC 7F08F29C 8FBF002C */ lw $ra, 0x2c($sp) -.L7F08F2A0: -/* 0C3DD0 7F08F2A0 5460FFF3 */ bnezl $v1, .L7F08F270 -/* 0C3DD4 7F08F2A4 8E460008 */ lw $a2, 8($s2) -/* 0C3DD8 7F08F2A8 8FBF002C */ lw $ra, 0x2c($sp) -.L7F08F2AC: -/* 0C3DDC 7F08F2AC 8FB00014 */ lw $s0, 0x14($sp) -/* 0C3DE0 7F08F2B0 8FB10018 */ lw $s1, 0x18($sp) -/* 0C3DE4 7F08F2B4 8FB2001C */ lw $s2, 0x1c($sp) -/* 0C3DE8 7F08F2B8 8FB30020 */ lw $s3, 0x20($sp) -/* 0C3DEC 7F08F2BC 8FB40024 */ lw $s4, 0x24($sp) -/* 0C3DF0 7F08F2C0 8FB50028 */ lw $s5, 0x28($sp) -/* 0C3DF4 7F08F2C4 03E00008 */ jr $ra -/* 0C3DF8 7F08F2C8 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - - - - - -#ifdef NONMATCHING -void sub_GAME_7F08F2CC(struct Pad *g_Startpad,struct Pad *endPad) -{ - s32 dist; - - do_BFS_withinPathSet(g_Startpad,endPad,0); // do_BFS_withinPathSet - dist = endPad->dist_tmp + -1; - - while (dist >= 0) { - endPad->dist_tmp = endPad->dist_tmp + 10000; - endPad = findPadWithDistAndSet(endPad->neighbours,dist,g_Startpad->pathSetIndex); // findPadWithDistAndSet - dist = dist + -1; - } - - - dist = endPad->dist_tmp; - endPad->dist_tmp = dist + 10000; - return; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F2CC -/* 0C3DFC 7F08F2CC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C3E00 7F08F2D0 AFBF0024 */ sw $ra, 0x24($sp) -/* 0C3E04 7F08F2D4 AFB20020 */ sw $s2, 0x20($sp) -/* 0C3E08 7F08F2D8 00809025 */ move $s2, $a0 -/* 0C3E0C 7F08F2DC AFB1001C */ sw $s1, 0x1c($sp) -/* 0C3E10 7F08F2E0 AFB00018 */ sw $s0, 0x18($sp) -/* 0C3E14 7F08F2E4 AFA5002C */ sw $a1, 0x2c($sp) -/* 0C3E18 7F08F2E8 0FC23C76 */ jal do_BFS_withinPathSet -/* 0C3E1C 7F08F2EC 00003025 */ move $a2, $zero -/* 0C3E20 7F08F2F0 8FB1002C */ lw $s1, 0x2c($sp) -/* 0C3E24 7F08F2F4 8E30000C */ lw $s0, 0xc($s1) -/* 0C3E28 7F08F2F8 2610FFFF */ addiu $s0, $s0, -1 -/* 0C3E2C 7F08F2FC 0602000C */ bltzl $s0, .L7F08F330 -/* 0C3E30 7F08F300 8E38000C */ lw $t8, 0xc($s1) -.L7F08F304: -/* 0C3E34 7F08F304 8E2E000C */ lw $t6, 0xc($s1) -/* 0C3E38 7F08F308 8E240004 */ lw $a0, 4($s1) -/* 0C3E3C 7F08F30C 02002825 */ move $a1, $s0 -/* 0C3E40 7F08F310 25CF2710 */ addiu $t7, $t6, 0x2710 -/* 0C3E44 7F08F314 AE2F000C */ sw $t7, 0xc($s1) -/* 0C3E48 7F08F318 0FC23C24 */ jal findPadWithDistAndSet -/* 0C3E4C 7F08F31C 8E460008 */ lw $a2, 8($s2) -/* 0C3E50 7F08F320 2610FFFF */ addiu $s0, $s0, -1 -/* 0C3E54 7F08F324 0601FFF7 */ bgez $s0, .L7F08F304 -/* 0C3E58 7F08F328 00408825 */ move $s1, $v0 -/* 0C3E5C 7F08F32C 8E38000C */ lw $t8, 0xc($s1) -.L7F08F330: -/* 0C3E60 7F08F330 27192710 */ addiu $t9, $t8, 0x2710 -/* 0C3E64 7F08F334 AE39000C */ sw $t9, 0xc($s1) -/* 0C3E68 7F08F338 8FBF0024 */ lw $ra, 0x24($sp) -/* 0C3E6C 7F08F33C 8FB20020 */ lw $s2, 0x20($sp) -/* 0C3E70 7F08F340 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C3E74 7F08F344 8FB00018 */ lw $s0, 0x18($sp) -/* 0C3E78 7F08F348 03E00008 */ jr $ra -/* 0C3E7C 7F08F34C 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F08F350(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F350 -/* 0C3E80 7F08F350 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C3E84 7F08F354 AFB50028 */ sw $s5, 0x28($sp) -/* 0C3E88 7F08F358 AFB40024 */ sw $s4, 0x24($sp) -/* 0C3E8C 7F08F35C AFB30020 */ sw $s3, 0x20($sp) -/* 0C3E90 7F08F360 AFB10018 */ sw $s1, 0x18($sp) -/* 0C3E94 7F08F364 28E10002 */ slti $at, $a3, 2 -/* 0C3E98 7F08F368 00E09825 */ move $s3, $a3 -/* 0C3E9C 7F08F36C 0080A025 */ move $s4, $a0 -/* 0C3EA0 7F08F370 00A0A825 */ move $s5, $a1 -/* 0C3EA4 7F08F374 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C3EA8 7F08F378 AFB2001C */ sw $s2, 0x1c($sp) -/* 0C3EAC 7F08F37C AFB00014 */ sw $s0, 0x14($sp) -/* 0C3EB0 7F08F380 AFA60038 */ sw $a2, 0x38($sp) -/* 0C3EB4 7F08F384 1420001D */ bnez $at, .L7F08F3FC -/* 0C3EB8 7F08F388 00C08825 */ move $s1, $a2 -/* 0C3EBC 7F08F38C 0FC23CB3 */ jal sub_GAME_7F08F2CC -/* 0C3EC0 7F08F390 00000000 */ nop -/* 0C3EC4 7F08F394 8FA20038 */ lw $v0, 0x38($sp) -/* 0C3EC8 7F08F398 02809025 */ move $s2, $s4 -/* 0C3ECC 7F08F39C 2673270F */ addiu $s3, $s3, 0x270f -/* 0C3ED0 7F08F3A0 AC540000 */ sw $s4, ($v0) -/* 0C3ED4 7F08F3A4 8EAE000C */ lw $t6, 0xc($s5) -/* 0C3ED8 7F08F3A8 24102711 */ li $s0, 10001 -/* 0C3EDC 7F08F3AC 24510004 */ addiu $s1, $v0, 4 -/* 0C3EE0 7F08F3B0 29C12711 */ slti $at, $t6, 0x2711 -/* 0C3EE4 7F08F3B4 14200011 */ bnez $at, .L7F08F3FC -/* 0C3EE8 7F08F3B8 2A612712 */ slti $at, $s3, 0x2712 -/* 0C3EEC 7F08F3BC 54200010 */ bnezl $at, .L7F08F400 -/* 0C3EF0 7F08F3C0 AE200000 */ sw $zero, ($s1) -/* 0C3EF4 7F08F3C4 8E440004 */ lw $a0, 4($s2) -.L7F08F3C8: -/* 0C3EF8 7F08F3C8 02002825 */ move $a1, $s0 -/* 0C3EFC 7F08F3CC 0FC23C24 */ jal findPadWithDistAndSet -/* 0C3F00 7F08F3D0 8E860008 */ lw $a2, 8($s4) -/* 0C3F04 7F08F3D4 AE220000 */ sw $v0, ($s1) -/* 0C3F08 7F08F3D8 8EAF000C */ lw $t7, 0xc($s5) -/* 0C3F0C 7F08F3DC 26100001 */ addiu $s0, $s0, 1 -/* 0C3F10 7F08F3E0 00409025 */ move $s2, $v0 -/* 0C3F14 7F08F3E4 01F0082A */ slt $at, $t7, $s0 -/* 0C3F18 7F08F3E8 14200004 */ bnez $at, .L7F08F3FC -/* 0C3F1C 7F08F3EC 26310004 */ addiu $s1, $s1, 4 -/* 0C3F20 7F08F3F0 0213082A */ slt $at, $s0, $s3 -/* 0C3F24 7F08F3F4 5420FFF4 */ bnezl $at, .L7F08F3C8 -/* 0C3F28 7F08F3F8 8E440004 */ lw $a0, 4($s2) -.L7F08F3FC: -/* 0C3F2C 7F08F3FC AE200000 */ sw $zero, ($s1) -.L7F08F400: -/* 0C3F30 7F08F400 8FB80038 */ lw $t8, 0x38($sp) -/* 0C3F34 7F08F404 26310004 */ addiu $s1, $s1, 4 -/* 0C3F38 7F08F408 8FBF002C */ lw $ra, 0x2c($sp) -/* 0C3F3C 7F08F40C 02381023 */ subu $v0, $s1, $t8 -/* 0C3F40 7F08F410 0002C883 */ sra $t9, $v0, 2 -/* 0C3F44 7F08F414 8FB10018 */ lw $s1, 0x18($sp) -/* 0C3F48 7F08F418 8FB50028 */ lw $s5, 0x28($sp) -/* 0C3F4C 7F08F41C 8FB40024 */ lw $s4, 0x24($sp) -/* 0C3F50 7F08F420 8FB30020 */ lw $s3, 0x20($sp) -/* 0C3F54 7F08F424 8FB2001C */ lw $s2, 0x1c($sp) -/* 0C3F58 7F08F428 8FB00014 */ lw $s0, 0x14($sp) -/* 0C3F5C 7F08F42C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0C3F60 7F08F430 03E00008 */ jr $ra -/* 0C3F64 7F08F434 03201025 */ move $v0, $t9 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F08F438(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F438 -/* 0C3F68 7F08F438 27BDFFF8 */ addiu $sp, $sp, -8 -/* 0C3F6C 7F08F43C AFB00004 */ sw $s0, 4($sp) -/* 0C3F70 7F08F440 AFA60010 */ sw $a2, 0x10($sp) -/* 0C3F74 7F08F444 AFA70014 */ sw $a3, 0x14($sp) -/* 0C3F78 7F08F448 8C880004 */ lw $t0, 4($a0) -/* 0C3F7C 7F08F44C 3C0A8007 */ lui $t2, %hi(g_chraiCurrentSetup+0) -/* 0C3F80 7F08F450 254A5D00 */ addiu $t2, %lo(g_chraiCurrentSetup+0) # addiu $t2, $t2, 0x5d00 -/* 0C3F84 7F08F454 8D090000 */ lw $t1, ($t0) -/* 0C3F88 7F08F458 00A08025 */ move $s0, $a1 -/* 0C3F8C 7F08F45C 8D420000 */ lw $v0, ($t2) -/* 0C3F90 7F08F460 0520001C */ bltz $t1, .L7F08F4D4 -/* 0C3F94 7F08F464 8D430004 */ lw $v1, 4($t2) -/* 0C3F98 7F08F468 240A000C */ li $t2, 12 -/* 0C3F9C 7F08F46C 00097100 */ sll $t6, $t1, 4 -.L7F08F470: -/* 0C3FA0 7F08F470 01C22021 */ addu $a0, $t6, $v0 -/* 0C3FA4 7F08F474 8C850004 */ lw $a1, 4($a0) -/* 0C3FA8 7F08F478 8CA60000 */ lw $a2, ($a1) -/* 0C3FAC 7F08F47C 04C00011 */ bltz $a2, .L7F08F4C4 -/* 0C3FB0 7F08F480 00067900 */ sll $t7, $a2, 4 -.L7F08F484: -/* 0C3FB4 7F08F484 01E23821 */ addu $a3, $t7, $v0 -/* 0C3FB8 7F08F488 8CF80008 */ lw $t8, 8($a3) -/* 0C3FBC 7F08F48C 030A0019 */ multu $t8, $t2 -/* 0C3FC0 7F08F490 0000C812 */ mflo $t9 -/* 0C3FC4 7F08F494 03235821 */ addu $t3, $t9, $v1 -/* 0C3FC8 7F08F498 560B0007 */ bnel $s0, $t3, .L7F08F4B8 -/* 0C3FCC 7F08F49C 8CA60004 */ lw $a2, 4($a1) -/* 0C3FD0 7F08F4A0 8FAC0010 */ lw $t4, 0x10($sp) -/* 0C3FD4 7F08F4A4 AD840000 */ sw $a0, ($t4) -/* 0C3FD8 7F08F4A8 8FAD0014 */ lw $t5, 0x14($sp) -/* 0C3FDC 7F08F4AC 1000000D */ b .L7F08F4E4 -/* 0C3FE0 7F08F4B0 ADA70000 */ sw $a3, ($t5) -/* 0C3FE4 7F08F4B4 8CA60004 */ lw $a2, 4($a1) -.L7F08F4B8: -/* 0C3FE8 7F08F4B8 24A50004 */ addiu $a1, $a1, 4 -/* 0C3FEC 7F08F4BC 04C3FFF1 */ bgezl $a2, .L7F08F484 -/* 0C3FF0 7F08F4C0 00067900 */ sll $t7, $a2, 4 -.L7F08F4C4: -/* 0C3FF4 7F08F4C4 8D090004 */ lw $t1, 4($t0) -/* 0C3FF8 7F08F4C8 25080004 */ addiu $t0, $t0, 4 -/* 0C3FFC 7F08F4CC 0523FFE8 */ bgezl $t1, .L7F08F470 -/* 0C4000 7F08F4D0 00097100 */ sll $t6, $t1, 4 -.L7F08F4D4: -/* 0C4004 7F08F4D4 8FAE0014 */ lw $t6, 0x14($sp) -/* 0C4008 7F08F4D8 ADC00000 */ sw $zero, ($t6) -/* 0C400C 7F08F4DC 8FAF0010 */ lw $t7, 0x10($sp) -/* 0C4010 7F08F4E0 ADE00000 */ sw $zero, ($t7) -.L7F08F4E4: -/* 0C4014 7F08F4E4 8FB00004 */ lw $s0, 4($sp) -/* 0C4018 7F08F4E8 03E00008 */ jr $ra -/* 0C401C 7F08F4EC 27BD0008 */ addiu $sp, $sp, 8 -) -#endif - - - - - -#ifdef NONMATCHING -void waypointFindRoute(void) { - -} -#else -GLOBAL_ASM( -.text -glabel waypointFindRoute -/* 0C4020 7F08F4F0 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0C4024 7F08F4F4 AFB00018 */ sw $s0, 0x18($sp) -/* 0C4028 7F08F4F8 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+4) -/* 0C402C 7F08F4FC 8E105D04 */ lw $s0, %lo(g_chraiCurrentSetup+4)($s0) -/* 0C4030 7F08F500 AFB60030 */ sw $s6, 0x30($sp) -/* 0C4034 7F08F504 AFB40028 */ sw $s4, 0x28($sp) -/* 0C4038 7F08F508 AFB1001C */ sw $s1, 0x1c($sp) -/* 0C403C 7F08F50C 00E08825 */ move $s1, $a3 -/* 0C4040 7F08F510 0080B025 */ move $s6, $a0 -/* 0C4044 7F08F514 AFBF003C */ sw $ra, 0x3c($sp) -/* 0C4048 7F08F518 AFBE0038 */ sw $fp, 0x38($sp) -/* 0C404C 7F08F51C AFB70034 */ sw $s7, 0x34($sp) -/* 0C4050 7F08F520 AFB5002C */ sw $s5, 0x2c($sp) -/* 0C4054 7F08F524 AFB30024 */ sw $s3, 0x24($sp) -/* 0C4058 7F08F528 AFB20020 */ sw $s2, 0x20($sp) -/* 0C405C 7F08F52C AFA50074 */ sw $a1, 0x74($sp) -/* 0C4060 7F08F530 AFA60078 */ sw $a2, 0x78($sp) -/* 0C4064 7F08F534 1200003F */ beqz $s0, .L7F08F634 -/* 0C4068 7F08F538 00C0A025 */ move $s4, $a2 -/* 0C406C 7F08F53C 8C8E0008 */ lw $t6, 8($a0) -/* 0C4070 7F08F540 2402000C */ li $v0, 12 -/* 0C4074 7F08F544 8CB90008 */ lw $t9, 8($a1) -/* 0C4078 7F08F548 01C20019 */ multu $t6, $v0 -/* 0C407C 7F08F54C 02003025 */ move $a2, $s0 -/* 0C4080 7F08F550 00007812 */ mflo $t7 -/* 0C4084 7F08F554 01F09821 */ addu $s3, $t7, $s0 -/* 0C4088 7F08F558 02602025 */ move $a0, $s3 -/* 0C408C 7F08F55C 03220019 */ multu $t9, $v0 -/* 0C4090 7F08F560 00004012 */ mflo $t0 -/* 0C4094 7F08F564 0110F021 */ addu $fp, $t0, $s0 -/* 0C4098 7F08F568 0FC23BC7 */ jal sub_GAME_7F08EF1C -/* 0C409C 7F08F56C 03C02825 */ move $a1, $fp -/* 0C40A0 7F08F570 50400031 */ beql $v0, $zero, .L7F08F638 -/* 0C40A4 7F08F574 AE800000 */ sw $zero, ($s4) -/* 0C40A8 7F08F578 8E700008 */ lw $s0, 8($s3) -/* 0C40AC 7F08F57C 8FC90008 */ lw $t1, 8($fp) -/* 0C40B0 7F08F580 02C0A825 */ move $s5, $s6 -/* 0C40B4 7F08F584 26100001 */ addiu $s0, $s0, 1 -/* 0C40B8 7F08F588 0130082A */ slt $at, $t1, $s0 -/* 0C40BC 7F08F58C 14200021 */ bnez $at, .L7F08F614 -/* 0C40C0 7F08F590 02609025 */ move $s2, $s3 -/* 0C40C4 7F08F594 2A210002 */ slti $at, $s1, 2 -/* 0C40C8 7F08F598 1420001E */ bnez $at, .L7F08F614 -/* 0C40CC 7F08F59C 27B70044 */ addiu $s7, $sp, 0x44 -/* 0C40D0 7F08F5A0 27B60048 */ addiu $s6, $sp, 0x48 -/* 0C40D4 7F08F5A4 8E440000 */ lw $a0, ($s2) -.L7F08F5A8: -/* 0C40D8 7F08F5A8 0FC23B58 */ jal sub_GAME_7F08ED60 -/* 0C40DC 7F08F5AC 02002825 */ move $a1, $s0 -/* 0C40E0 7F08F5B0 00409825 */ move $s3, $v0 -/* 0C40E4 7F08F5B4 02402025 */ move $a0, $s2 -/* 0C40E8 7F08F5B8 00402825 */ move $a1, $v0 -/* 0C40EC 7F08F5BC 02C03025 */ move $a2, $s6 -/* 0C40F0 7F08F5C0 0FC23D0E */ jal sub_GAME_7F08F438 -/* 0C40F4 7F08F5C4 02E03825 */ move $a3, $s7 -/* 0C40F8 7F08F5C8 02A02025 */ move $a0, $s5 -/* 0C40FC 7F08F5CC 8FA50048 */ lw $a1, 0x48($sp) -/* 0C4100 7F08F5D0 02803025 */ move $a2, $s4 -/* 0C4104 7F08F5D4 0FC23CD4 */ jal sub_GAME_7F08F350 -/* 0C4108 7F08F5D8 02203825 */ move $a3, $s1 -/* 0C410C 7F08F5DC 8FCC0008 */ lw $t4, 8($fp) -/* 0C4110 7F08F5E0 26100001 */ addiu $s0, $s0, 1 -/* 0C4114 7F08F5E4 244AFFFF */ addiu $t2, $v0, -1 -/* 0C4118 7F08F5E8 02228823 */ subu $s1, $s1, $v0 -/* 0C411C 7F08F5EC 000A5880 */ sll $t3, $t2, 2 -/* 0C4120 7F08F5F0 0190082A */ slt $at, $t4, $s0 -/* 0C4124 7F08F5F4 26310001 */ addiu $s1, $s1, 1 -/* 0C4128 7F08F5F8 028BA021 */ addu $s4, $s4, $t3 -/* 0C412C 7F08F5FC 8FB50044 */ lw $s5, 0x44($sp) -/* 0C4130 7F08F600 14200004 */ bnez $at, .L7F08F614 -/* 0C4134 7F08F604 02609025 */ move $s2, $s3 -/* 0C4138 7F08F608 2A210002 */ slti $at, $s1, 2 -/* 0C413C 7F08F60C 5020FFE6 */ beql $at, $zero, .L7F08F5A8 -/* 0C4140 7F08F610 8E440000 */ lw $a0, ($s2) -.L7F08F614: -/* 0C4144 7F08F614 02A02025 */ move $a0, $s5 -/* 0C4148 7F08F618 8FA50074 */ lw $a1, 0x74($sp) -/* 0C414C 7F08F61C 02803025 */ move $a2, $s4 -/* 0C4150 7F08F620 0FC23CD4 */ jal sub_GAME_7F08F350 -/* 0C4154 7F08F624 02203825 */ move $a3, $s1 -/* 0C4158 7F08F628 244DFFFF */ addiu $t5, $v0, -1 -/* 0C415C 7F08F62C 000D7080 */ sll $t6, $t5, 2 -/* 0C4160 7F08F630 028EA021 */ addu $s4, $s4, $t6 -.L7F08F634: -/* 0C4164 7F08F634 AE800000 */ sw $zero, ($s4) -.L7F08F638: -/* 0C4168 7F08F638 8FAF0078 */ lw $t7, 0x78($sp) -/* 0C416C 7F08F63C 26940004 */ addiu $s4, $s4, 4 -/* 0C4170 7F08F640 8FBF003C */ lw $ra, 0x3c($sp) -/* 0C4174 7F08F644 028F1023 */ subu $v0, $s4, $t7 -/* 0C4178 7F08F648 0002C083 */ sra $t8, $v0, 2 -/* 0C417C 7F08F64C 8FB40028 */ lw $s4, 0x28($sp) -/* 0C4180 7F08F650 8FBE0038 */ lw $fp, 0x38($sp) -/* 0C4184 7F08F654 8FB70034 */ lw $s7, 0x34($sp) -/* 0C4188 7F08F658 8FB60030 */ lw $s6, 0x30($sp) -/* 0C418C 7F08F65C 8FB5002C */ lw $s5, 0x2c($sp) -/* 0C4190 7F08F660 8FB30024 */ lw $s3, 0x24($sp) -/* 0C4194 7F08F664 8FB20020 */ lw $s2, 0x20($sp) -/* 0C4198 7F08F668 8FB1001C */ lw $s1, 0x1c($sp) -/* 0C419C 7F08F66C 8FB00018 */ lw $s0, 0x18($sp) -/* 0C41A0 7F08F670 27BD0070 */ addiu $sp, $sp, 0x70 -/* 0C41A4 7F08F674 03E00008 */ jr $ra -/* 0C41A8 7F08F678 03001025 */ move $v0, $t8 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F08F67C(void) { - // func0f115390 in PD: - struct waypoint *waypoint = g_StageSetup.waypoints; - - while (waypoint->padnum >= 0) { - waypoint->unk0c = -1; - waypoint++; + *pointnums++; } + return NULL; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F67C -/* 0C41AC 7F08F67C 3C028007 */ lui $v0, %hi(g_chraiCurrentSetup+0) -/* 0C41B0 7F08F680 8C425D00 */ lw $v0, %lo(g_chraiCurrentSetup+0)($v0) -/* 0C41B4 7F08F684 2403FFFF */ li $v1, -1 -/* 0C41B8 7F08F688 8C4E0000 */ lw $t6, ($v0) -/* 0C41BC 7F08F68C 05C00006 */ bltz $t6, .L7F08F6A8 -/* 0C41C0 7F08F690 00000000 */ nop -/* 0C41C4 7F08F694 8C4F0010 */ lw $t7, 0x10($v0) -.L7F08F698: -/* 0C41C8 7F08F698 AC43000C */ sw $v1, 0xc($v0) -/* 0C41CC 7F08F69C 24420010 */ addiu $v0, $v0, 0x10 -/* 0C41D0 7F08F6A0 05E3FFFD */ bgezl $t7, .L7F08F698 -/* 0C41D4 7F08F6A4 8C4F0010 */ lw $t7, 0x10($v0) -.L7F08F6A8: -/* 0C41D8 7F08F6A8 03E00008 */ jr $ra -/* 0C41DC 7F08F6AC 00000000 */ nop -) -#endif +void sub_GAME_7F08F0E8(s32 *pointnums, s32 value, s32 groupnum) +{ + waypoint *waypoints = g_CurrentSetup.pathwaypoints; + while (*pointnums >= 0) + { + waypoint *waypoint = &waypoints[*pointnums]; + if (waypoint->groupNum == groupnum && waypoint->dist < 0) + { + waypoint->dist = value; + } -#ifdef NONMATCHING -void sub_GAME_7F08F6B0(void) { - + *pointnums++; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F6B0 -/* 0C41E0 7F08F6B0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0C41E4 7F08F6B4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C41E8 7F08F6B8 8C8E0000 */ lw $t6, ($a0) -/* 0C41EC 7F08F6BC 00A03825 */ move $a3, $a1 -/* 0C41F0 7F08F6C0 00004825 */ move $t1, $zero -/* 0C41F4 7F08F6C4 05C00006 */ bltz $t6, .L7F08F6E0 -/* 0C41F8 7F08F6C8 00801025 */ move $v0, $a0 -/* 0C41FC 7F08F6CC 8C4F0004 */ lw $t7, 4($v0) -.L7F08F6D0: -/* 0C4200 7F08F6D0 25290001 */ addiu $t1, $t1, 1 -/* 0C4204 7F08F6D4 24420004 */ addiu $v0, $v0, 4 -/* 0C4208 7F08F6D8 05E3FFFD */ bgezl $t7, .L7F08F6D0 -/* 0C420C 7F08F6DC 8C4F0004 */ lw $t7, 4($v0) -.L7F08F6E0: -/* 0C4210 7F08F6E0 AFA40020 */ sw $a0, 0x20($sp) -/* 0C4214 7F08F6E4 AFA70024 */ sw $a3, 0x24($sp) -/* 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) -/* 0C4228 7F08F6F8 8FAC0020 */ lw $t4, 0x20($sp) -/* 0C422C 7F08F6FC 0049001B */ divu $zero, $v0, $t1 -/* 0C4230 7F08F700 00005810 */ mfhi $t3 -/* 0C4234 7F08F704 0169082A */ slt $at, $t3, $t1 -/* 0C4238 7F08F708 15200002 */ bnez $t1, .L7F08F714 -/* 0C423C 7F08F70C 00000000 */ nop -/* 0C4240 7F08F710 0007000D */ break 7 -.L7F08F714: -/* 0C4244 7F08F714 01605025 */ move $t2, $t3 -/* 0C4248 7F08F718 1020003C */ beqz $at, .L7F08F80C -/* 0C424C 7F08F71C 01603025 */ move $a2, $t3 -/* 0C4250 7F08F720 012B1823 */ subu $v1, $t1, $t3 -/* 0C4254 7F08F724 30780003 */ andi $t8, $v1, 3 -/* 0C4258 7F08F728 13000011 */ beqz $t8, .L7F08F770 -/* 0C425C 7F08F72C 030B4021 */ addu $t0, $t8, $t3 -/* 0C4260 7F08F730 0006C880 */ sll $t9, $a2, 2 -/* 0C4264 7F08F734 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) -/* 0C4268 7F08F738 8CA55D00 */ lw $a1, %lo(g_chraiCurrentSetup+0)($a1) -/* 0C426C 7F08F73C 01991021 */ addu $v0, $t4, $t9 -.L7F08F740: -/* 0C4270 7F08F740 8C4D0000 */ lw $t5, ($v0) -/* 0C4274 7F08F744 24C60001 */ addiu $a2, $a2, 1 -/* 0C4278 7F08F748 000D7100 */ sll $t6, $t5, 4 -/* 0C427C 7F08F74C 01C52021 */ addu $a0, $t6, $a1 -/* 0C4280 7F08F750 8C8F000C */ lw $t7, 0xc($a0) -/* 0C4284 7F08F754 14EF0003 */ bne $a3, $t7, .L7F08F764 -/* 0C4288 7F08F758 00000000 */ nop -/* 0C428C 7F08F75C 10000066 */ b .L7F08F8F8 -/* 0C4290 7F08F760 00801025 */ move $v0, $a0 -.L7F08F764: -/* 0C4294 7F08F764 1506FFF6 */ bne $t0, $a2, .L7F08F740 -/* 0C4298 7F08F768 24420004 */ addiu $v0, $v0, 4 -/* 0C429C 7F08F76C 10C90027 */ beq $a2, $t1, .L7F08F80C -.L7F08F770: -/* 0C42A0 7F08F770 0006C080 */ sll $t8, $a2, 2 -/* 0C42A4 7F08F774 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) -/* 0C42A8 7F08F778 8CA55D00 */ lw $a1, %lo(g_chraiCurrentSetup+0)($a1) -/* 0C42AC 7F08F77C 01981021 */ addu $v0, $t4, $t8 -.L7F08F780: -/* 0C42B0 7F08F780 8C590000 */ lw $t9, ($v0) -/* 0C42B4 7F08F784 24C60004 */ addiu $a2, $a2, 4 -/* 0C42B8 7F08F788 00196900 */ sll $t5, $t9, 4 -/* 0C42BC 7F08F78C 01A52021 */ addu $a0, $t5, $a1 -/* 0C42C0 7F08F790 8C8E000C */ lw $t6, 0xc($a0) -/* 0C42C4 7F08F794 54EE0004 */ bnel $a3, $t6, .L7F08F7A8 -/* 0C42C8 7F08F798 8C4F0004 */ lw $t7, 4($v0) -/* 0C42CC 7F08F79C 10000056 */ b .L7F08F8F8 -/* 0C42D0 7F08F7A0 00801025 */ move $v0, $a0 -/* 0C42D4 7F08F7A4 8C4F0004 */ lw $t7, 4($v0) -.L7F08F7A8: -/* 0C42D8 7F08F7A8 000FC100 */ sll $t8, $t7, 4 -/* 0C42DC 7F08F7AC 03051821 */ addu $v1, $t8, $a1 -/* 0C42E0 7F08F7B0 8C79000C */ lw $t9, 0xc($v1) -/* 0C42E4 7F08F7B4 54F90004 */ bnel $a3, $t9, .L7F08F7C8 -/* 0C42E8 7F08F7B8 8C4D0008 */ lw $t5, 8($v0) -/* 0C42EC 7F08F7BC 1000004E */ b .L7F08F8F8 -/* 0C42F0 7F08F7C0 00601025 */ move $v0, $v1 -/* 0C42F4 7F08F7C4 8C4D0008 */ lw $t5, 8($v0) -.L7F08F7C8: -/* 0C42F8 7F08F7C8 000D7100 */ sll $t6, $t5, 4 -/* 0C42FC 7F08F7CC 01C51821 */ addu $v1, $t6, $a1 -/* 0C4300 7F08F7D0 8C6F000C */ lw $t7, 0xc($v1) -/* 0C4304 7F08F7D4 54EF0004 */ bnel $a3, $t7, .L7F08F7E8 -/* 0C4308 7F08F7D8 8C58000C */ lw $t8, 0xc($v0) -/* 0C430C 7F08F7DC 10000046 */ b .L7F08F8F8 -/* 0C4310 7F08F7E0 00601025 */ move $v0, $v1 -/* 0C4314 7F08F7E4 8C58000C */ lw $t8, 0xc($v0) -.L7F08F7E8: -/* 0C4318 7F08F7E8 0018C900 */ sll $t9, $t8, 4 -/* 0C431C 7F08F7EC 03251821 */ addu $v1, $t9, $a1 -/* 0C4320 7F08F7F0 8C6D000C */ lw $t5, 0xc($v1) -/* 0C4324 7F08F7F4 14ED0003 */ bne $a3, $t5, .L7F08F804 -/* 0C4328 7F08F7F8 00000000 */ nop -/* 0C432C 7F08F7FC 1000003E */ b .L7F08F8F8 -/* 0C4330 7F08F800 00601025 */ move $v0, $v1 -.L7F08F804: -/* 0C4334 7F08F804 14C9FFDE */ bne $a2, $t1, .L7F08F780 -/* 0C4338 7F08F808 24420010 */ addiu $v0, $v0, 0x10 -.L7F08F80C: -/* 0C433C 7F08F80C 19600039 */ blez $t3, .L7F08F8F4 -/* 0C4340 7F08F810 00003025 */ move $a2, $zero -/* 0C4344 7F08F814 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+0) -/* 0C4348 7F08F818 31630003 */ andi $v1, $t3, 3 -/* 0C434C 7F08F81C 10600010 */ beqz $v1, .L7F08F860 -/* 0C4350 7F08F820 8CA55D00 */ lw $a1, %lo(g_chraiCurrentSetup+0)($a1) -/* 0C4354 7F08F824 00007080 */ sll $t6, $zero, 2 -/* 0C4358 7F08F828 018E1021 */ addu $v0, $t4, $t6 -/* 0C435C 7F08F82C 00604025 */ move $t0, $v1 -.L7F08F830: -/* 0C4360 7F08F830 8C4F0000 */ lw $t7, ($v0) -/* 0C4364 7F08F834 24C60001 */ addiu $a2, $a2, 1 -/* 0C4368 7F08F838 000FC100 */ sll $t8, $t7, 4 -/* 0C436C 7F08F83C 03052021 */ addu $a0, $t8, $a1 -/* 0C4370 7F08F840 8C99000C */ lw $t9, 0xc($a0) -/* 0C4374 7F08F844 14F90003 */ bne $a3, $t9, .L7F08F854 -/* 0C4378 7F08F848 00000000 */ nop -/* 0C437C 7F08F84C 1000002A */ b .L7F08F8F8 -/* 0C4380 7F08F850 00801025 */ move $v0, $a0 -.L7F08F854: -/* 0C4384 7F08F854 1506FFF6 */ bne $t0, $a2, .L7F08F830 -/* 0C4388 7F08F858 24420004 */ addiu $v0, $v0, 4 -/* 0C438C 7F08F85C 10CB0025 */ beq $a2, $t3, .L7F08F8F4 -.L7F08F860: -/* 0C4390 7F08F860 00066880 */ sll $t5, $a2, 2 -/* 0C4394 7F08F864 018D1021 */ addu $v0, $t4, $t5 -.L7F08F868: -/* 0C4398 7F08F868 8C4E0000 */ lw $t6, ($v0) -/* 0C439C 7F08F86C 24C60004 */ addiu $a2, $a2, 4 -/* 0C43A0 7F08F870 000E7900 */ sll $t7, $t6, 4 -/* 0C43A4 7F08F874 01E52021 */ addu $a0, $t7, $a1 -/* 0C43A8 7F08F878 8C98000C */ lw $t8, 0xc($a0) -/* 0C43AC 7F08F87C 54F80004 */ bnel $a3, $t8, .L7F08F890 -/* 0C43B0 7F08F880 8C590004 */ lw $t9, 4($v0) -/* 0C43B4 7F08F884 1000001C */ b .L7F08F8F8 -/* 0C43B8 7F08F888 00801025 */ move $v0, $a0 -/* 0C43BC 7F08F88C 8C590004 */ lw $t9, 4($v0) -.L7F08F890: -/* 0C43C0 7F08F890 00196900 */ sll $t5, $t9, 4 -/* 0C43C4 7F08F894 01A51821 */ addu $v1, $t5, $a1 -/* 0C43C8 7F08F898 8C6E000C */ lw $t6, 0xc($v1) -/* 0C43CC 7F08F89C 54EE0004 */ bnel $a3, $t6, .L7F08F8B0 -/* 0C43D0 7F08F8A0 8C4F0008 */ lw $t7, 8($v0) -/* 0C43D4 7F08F8A4 10000014 */ b .L7F08F8F8 -/* 0C43D8 7F08F8A8 00601025 */ move $v0, $v1 -/* 0C43DC 7F08F8AC 8C4F0008 */ lw $t7, 8($v0) -.L7F08F8B0: -/* 0C43E0 7F08F8B0 000FC100 */ sll $t8, $t7, 4 -/* 0C43E4 7F08F8B4 03051821 */ addu $v1, $t8, $a1 -/* 0C43E8 7F08F8B8 8C79000C */ lw $t9, 0xc($v1) -/* 0C43EC 7F08F8BC 54F90004 */ bnel $a3, $t9, .L7F08F8D0 -/* 0C43F0 7F08F8C0 8C4D000C */ lw $t5, 0xc($v0) -/* 0C43F4 7F08F8C4 1000000C */ b .L7F08F8F8 -/* 0C43F8 7F08F8C8 00601025 */ move $v0, $v1 -/* 0C43FC 7F08F8CC 8C4D000C */ lw $t5, 0xc($v0) -.L7F08F8D0: -/* 0C4400 7F08F8D0 000D7100 */ sll $t6, $t5, 4 -/* 0C4404 7F08F8D4 01C51821 */ addu $v1, $t6, $a1 -/* 0C4408 7F08F8D8 8C6F000C */ lw $t7, 0xc($v1) -/* 0C440C 7F08F8DC 14EF0003 */ bne $a3, $t7, .L7F08F8EC -/* 0C4410 7F08F8E0 00000000 */ nop -/* 0C4414 7F08F8E4 10000004 */ b .L7F08F8F8 -/* 0C4418 7F08F8E8 00601025 */ move $v0, $v1 -.L7F08F8EC: -/* 0C441C 7F08F8EC 14CAFFDE */ bne $a2, $t2, .L7F08F868 -/* 0C4420 7F08F8F0 24420010 */ addiu $v0, $v0, 0x10 -.L7F08F8F4: -/* 0C4424 7F08F8F4 00001025 */ move $v0, $zero -.L7F08F8F8: -/* 0C4428 7F08F8F8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C442C 7F08F8FC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0C4430 7F08F900 03E00008 */ jr $ra -/* 0C4434 7F08F904 00000000 */ nop -) -#endif +bool sub_GAME_7F08F138(s32 *pointnums, s32 arg1, s32 groupnum) +{ + bool result = FALSE; + waypoint *points = g_CurrentSetup.pathwaypoints; + while (*pointnums >= 0) + { + waypoint *point = &points[*pointnums]; + if (arg1 == point->dist && point->neighbours) + { + result = TRUE; + sub_GAME_7F08F0E8(point->neighbours, arg1 + 1, groupnum); + } -#ifdef NONMATCHING -void sub_GAME_7F08F908(void) { + pointnums++; + } + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08F908 -/* 0C4438 7F08F908 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C443C 7F08F90C AFBF001C */ sw $ra, 0x1c($sp) -/* 0C4440 7F08F910 AFB00018 */ sw $s0, 0x18($sp) -/* 0C4444 7F08F914 8C8E0000 */ lw $t6, ($a0) -/* 0C4448 7F08F918 00A08025 */ move $s0, $a1 -/* 0C444C 7F08F91C 00004825 */ move $t1, $zero -/* 0C4450 7F08F920 05C00006 */ bltz $t6, .L7F08F93C -/* 0C4454 7F08F924 00801025 */ move $v0, $a0 -/* 0C4458 7F08F928 8C4F0004 */ lw $t7, 4($v0) -.L7F08F92C: -/* 0C445C 7F08F92C 25290001 */ addiu $t1, $t1, 1 -/* 0C4460 7F08F930 24420004 */ addiu $v0, $v0, 4 -/* 0C4464 7F08F934 05E3FFFD */ bgezl $t7, .L7F08F92C -/* 0C4468 7F08F938 8C4F0004 */ lw $t7, 4($v0) -.L7F08F93C: -/* 0C446C 7F08F93C AFA40028 */ sw $a0, 0x28($sp) -/* 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) -/* 0C4480 7F08F950 8FBF001C */ lw $ra, 0x1c($sp) -/* 0C4484 7F08F954 0049001B */ divu $zero, $v0, $t1 -/* 0C4488 7F08F958 00005810 */ mfhi $t3 -/* 0C448C 7F08F95C 0169082A */ slt $at, $t3, $t1 -/* 0C4490 7F08F960 15200002 */ bnez $t1, .L7F08F96C -/* 0C4494 7F08F964 00000000 */ nop -/* 0C4498 7F08F968 0007000D */ break 7 -.L7F08F96C: -/* 0C449C 7F08F96C 01605025 */ move $t2, $t3 -/* 0C44A0 7F08F970 10200043 */ beqz $at, .L7F08FA80 -/* 0C44A4 7F08F974 01603025 */ move $a2, $t3 -/* 0C44A8 7F08F978 012B1823 */ subu $v1, $t1, $t3 -/* 0C44AC 7F08F97C 30780003 */ andi $t8, $v1, 3 -/* 0C44B0 7F08F980 13000013 */ beqz $t8, .L7F08F9D0 -/* 0C44B4 7F08F984 030B4021 */ addu $t0, $t8, $t3 -/* 0C44B8 7F08F988 0006C880 */ sll $t9, $a2, 2 -/* 0C44BC 7F08F98C 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+4) -/* 0C44C0 7F08F990 8CA55D04 */ lw $a1, %lo(g_chraiCurrentSetup+4)($a1) -/* 0C44C4 7F08F994 01991021 */ addu $v0, $t4, $t9 -/* 0C44C8 7F08F998 2407000C */ li $a3, 12 -.L7F08F99C: -/* 0C44CC 7F08F99C 8C4D0000 */ lw $t5, ($v0) -/* 0C44D0 7F08F9A0 24C60001 */ addiu $a2, $a2, 1 -/* 0C44D4 7F08F9A4 01A70019 */ multu $t5, $a3 -/* 0C44D8 7F08F9A8 00007012 */ mflo $t6 -/* 0C44DC 7F08F9AC 01C52021 */ addu $a0, $t6, $a1 -/* 0C44E0 7F08F9B0 8C8F0008 */ lw $t7, 8($a0) -/* 0C44E4 7F08F9B4 160F0003 */ bne $s0, $t7, .L7F08F9C4 -/* 0C44E8 7F08F9B8 00000000 */ nop -/* 0C44EC 7F08F9BC 10000071 */ b .L7F08FB84 -/* 0C44F0 7F08F9C0 00801025 */ move $v0, $a0 -.L7F08F9C4: -/* 0C44F4 7F08F9C4 1506FFF5 */ bne $t0, $a2, .L7F08F99C -/* 0C44F8 7F08F9C8 24420004 */ addiu $v0, $v0, 4 -/* 0C44FC 7F08F9CC 10C9002C */ beq $a2, $t1, .L7F08FA80 -.L7F08F9D0: -/* 0C4500 7F08F9D0 0006C080 */ sll $t8, $a2, 2 -/* 0C4504 7F08F9D4 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+4) -/* 0C4508 7F08F9D8 8CA55D04 */ lw $a1, %lo(g_chraiCurrentSetup+4)($a1) -/* 0C450C 7F08F9DC 01981021 */ addu $v0, $t4, $t8 -/* 0C4510 7F08F9E0 2407000C */ li $a3, 12 -.L7F08F9E4: -/* 0C4514 7F08F9E4 8C590000 */ lw $t9, ($v0) -/* 0C4518 7F08F9E8 24C60004 */ addiu $a2, $a2, 4 -/* 0C451C 7F08F9EC 03270019 */ multu $t9, $a3 -/* 0C4520 7F08F9F0 00006812 */ mflo $t5 -/* 0C4524 7F08F9F4 01A52021 */ addu $a0, $t5, $a1 -/* 0C4528 7F08F9F8 8C8E0008 */ lw $t6, 8($a0) -/* 0C452C 7F08F9FC 560E0004 */ bnel $s0, $t6, .L7F08FA10 -/* 0C4530 7F08FA00 8C4F0004 */ lw $t7, 4($v0) -/* 0C4534 7F08FA04 1000005F */ b .L7F08FB84 -/* 0C4538 7F08FA08 00801025 */ move $v0, $a0 -/* 0C453C 7F08FA0C 8C4F0004 */ lw $t7, 4($v0) -.L7F08FA10: -/* 0C4540 7F08FA10 01E70019 */ multu $t7, $a3 -/* 0C4544 7F08FA14 0000C012 */ mflo $t8 -/* 0C4548 7F08FA18 03051821 */ addu $v1, $t8, $a1 -/* 0C454C 7F08FA1C 8C790008 */ lw $t9, 8($v1) -/* 0C4550 7F08FA20 56190004 */ bnel $s0, $t9, .L7F08FA34 -/* 0C4554 7F08FA24 8C4D0008 */ lw $t5, 8($v0) -/* 0C4558 7F08FA28 10000056 */ b .L7F08FB84 -/* 0C455C 7F08FA2C 00601025 */ move $v0, $v1 -/* 0C4560 7F08FA30 8C4D0008 */ lw $t5, 8($v0) -.L7F08FA34: -/* 0C4564 7F08FA34 01A70019 */ multu $t5, $a3 -/* 0C4568 7F08FA38 00007012 */ mflo $t6 -/* 0C456C 7F08FA3C 01C51821 */ addu $v1, $t6, $a1 -/* 0C4570 7F08FA40 8C6F0008 */ lw $t7, 8($v1) -/* 0C4574 7F08FA44 560F0004 */ bnel $s0, $t7, .L7F08FA58 -/* 0C4578 7F08FA48 8C58000C */ lw $t8, 0xc($v0) -/* 0C457C 7F08FA4C 1000004D */ b .L7F08FB84 -/* 0C4580 7F08FA50 00601025 */ move $v0, $v1 -/* 0C4584 7F08FA54 8C58000C */ lw $t8, 0xc($v0) -.L7F08FA58: -/* 0C4588 7F08FA58 03070019 */ multu $t8, $a3 -/* 0C458C 7F08FA5C 0000C812 */ mflo $t9 -/* 0C4590 7F08FA60 03251821 */ addu $v1, $t9, $a1 -/* 0C4594 7F08FA64 8C6D0008 */ lw $t5, 8($v1) -/* 0C4598 7F08FA68 160D0003 */ bne $s0, $t5, .L7F08FA78 -/* 0C459C 7F08FA6C 00000000 */ nop -/* 0C45A0 7F08FA70 10000044 */ b .L7F08FB84 -/* 0C45A4 7F08FA74 00601025 */ move $v0, $v1 -.L7F08FA78: -/* 0C45A8 7F08FA78 14C9FFDA */ bne $a2, $t1, .L7F08F9E4 -/* 0C45AC 7F08FA7C 24420010 */ addiu $v0, $v0, 0x10 -.L7F08FA80: -/* 0C45B0 7F08FA80 2407000C */ li $a3, 12 -/* 0C45B4 7F08FA84 1960003E */ blez $t3, .L7F08FB80 -/* 0C45B8 7F08FA88 00003025 */ move $a2, $zero -/* 0C45BC 7F08FA8C 3C058007 */ lui $a1, %hi(g_chraiCurrentSetup+4) -/* 0C45C0 7F08FA90 31630003 */ andi $v1, $t3, 3 -/* 0C45C4 7F08FA94 10600011 */ beqz $v1, .L7F08FADC -/* 0C45C8 7F08FA98 8CA55D04 */ lw $a1, %lo(g_chraiCurrentSetup+4)($a1) -/* 0C45CC 7F08FA9C 00007080 */ sll $t6, $zero, 2 -/* 0C45D0 7F08FAA0 018E1021 */ addu $v0, $t4, $t6 -/* 0C45D4 7F08FAA4 00604025 */ move $t0, $v1 -.L7F08FAA8: -/* 0C45D8 7F08FAA8 8C4F0000 */ lw $t7, ($v0) -/* 0C45DC 7F08FAAC 24C60001 */ addiu $a2, $a2, 1 -/* 0C45E0 7F08FAB0 01E70019 */ multu $t7, $a3 -/* 0C45E4 7F08FAB4 0000C012 */ mflo $t8 -/* 0C45E8 7F08FAB8 03052021 */ addu $a0, $t8, $a1 -/* 0C45EC 7F08FABC 8C990008 */ lw $t9, 8($a0) -/* 0C45F0 7F08FAC0 16190003 */ bne $s0, $t9, .L7F08FAD0 -/* 0C45F4 7F08FAC4 00000000 */ nop -/* 0C45F8 7F08FAC8 1000002E */ b .L7F08FB84 -/* 0C45FC 7F08FACC 00801025 */ move $v0, $a0 -.L7F08FAD0: -/* 0C4600 7F08FAD0 1506FFF5 */ bne $t0, $a2, .L7F08FAA8 -/* 0C4604 7F08FAD4 24420004 */ addiu $v0, $v0, 4 -/* 0C4608 7F08FAD8 10CB0029 */ beq $a2, $t3, .L7F08FB80 -.L7F08FADC: -/* 0C460C 7F08FADC 00066880 */ sll $t5, $a2, 2 -/* 0C4610 7F08FAE0 018D1021 */ addu $v0, $t4, $t5 -.L7F08FAE4: -/* 0C4614 7F08FAE4 8C4E0000 */ lw $t6, ($v0) -/* 0C4618 7F08FAE8 24C60004 */ addiu $a2, $a2, 4 -/* 0C461C 7F08FAEC 01C70019 */ multu $t6, $a3 -/* 0C4620 7F08FAF0 00007812 */ mflo $t7 -/* 0C4624 7F08FAF4 01E52021 */ addu $a0, $t7, $a1 -/* 0C4628 7F08FAF8 8C980008 */ lw $t8, 8($a0) -/* 0C462C 7F08FAFC 56180004 */ bnel $s0, $t8, .L7F08FB10 -/* 0C4630 7F08FB00 8C590004 */ lw $t9, 4($v0) -/* 0C4634 7F08FB04 1000001F */ b .L7F08FB84 -/* 0C4638 7F08FB08 00801025 */ move $v0, $a0 -/* 0C463C 7F08FB0C 8C590004 */ lw $t9, 4($v0) -.L7F08FB10: -/* 0C4640 7F08FB10 03270019 */ multu $t9, $a3 -/* 0C4644 7F08FB14 00006812 */ mflo $t5 -/* 0C4648 7F08FB18 01A51821 */ addu $v1, $t5, $a1 -/* 0C464C 7F08FB1C 8C6E0008 */ lw $t6, 8($v1) -/* 0C4650 7F08FB20 560E0004 */ bnel $s0, $t6, .L7F08FB34 -/* 0C4654 7F08FB24 8C4F0008 */ lw $t7, 8($v0) -/* 0C4658 7F08FB28 10000016 */ b .L7F08FB84 -/* 0C465C 7F08FB2C 00601025 */ move $v0, $v1 -/* 0C4660 7F08FB30 8C4F0008 */ lw $t7, 8($v0) -.L7F08FB34: -/* 0C4664 7F08FB34 01E70019 */ multu $t7, $a3 -/* 0C4668 7F08FB38 0000C012 */ mflo $t8 -/* 0C466C 7F08FB3C 03051821 */ addu $v1, $t8, $a1 -/* 0C4670 7F08FB40 8C790008 */ lw $t9, 8($v1) -/* 0C4674 7F08FB44 56190004 */ bnel $s0, $t9, .L7F08FB58 -/* 0C4678 7F08FB48 8C4D000C */ lw $t5, 0xc($v0) -/* 0C467C 7F08FB4C 1000000D */ b .L7F08FB84 -/* 0C4680 7F08FB50 00601025 */ move $v0, $v1 -/* 0C4684 7F08FB54 8C4D000C */ lw $t5, 0xc($v0) -.L7F08FB58: -/* 0C4688 7F08FB58 01A70019 */ multu $t5, $a3 -/* 0C468C 7F08FB5C 00007012 */ mflo $t6 -/* 0C4690 7F08FB60 01C51821 */ addu $v1, $t6, $a1 -/* 0C4694 7F08FB64 8C6F0008 */ lw $t7, 8($v1) -/* 0C4698 7F08FB68 160F0003 */ bne $s0, $t7, .L7F08FB78 -/* 0C469C 7F08FB6C 00000000 */ nop -/* 0C46A0 7F08FB70 10000004 */ b .L7F08FB84 -/* 0C46A4 7F08FB74 00601025 */ move $v0, $v1 -.L7F08FB78: -/* 0C46A8 7F08FB78 14CAFFDA */ bne $a2, $t2, .L7F08FAE4 -/* 0C46AC 7F08FB7C 24420010 */ addiu $v0, $v0, 0x10 -.L7F08FB80: -/* 0C46B0 7F08FB80 00001025 */ move $v0, $zero -.L7F08FB84: -/* 0C46B4 7F08FB84 8FB00018 */ lw $s0, 0x18($sp) -/* 0C46B8 7F08FB88 03E00008 */ jr $ra -/* 0C46BC 7F08FB8C 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif +void do_BFS_withinPathSet(waypoint *from, waypoint *to, s32 arg2) +{ + waygroup *groups = g_CurrentSetup.waypointgroups; + waypoint *points = g_CurrentSetup.pathwaypoints; + waypoint *point; + s32 *pointnums = groups[from->groupNum].waypoints; + s32 i; + bool more; + while (*pointnums >= 0) + { + point = &points[*pointnums]; + point->dist = -1; + pointnums++; + } + from->dist = 0; -#ifdef NONMATCHING -void sub_GAME_7F08FB90(void) { + more = TRUE; + for (i = 0; (arg2 || to->dist < 0) && more; i++) + { + more = sub_GAME_7F08F138(groups[from->groupNum].waypoints, i, from->groupNum); + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08FB90 -/* 0C46C0 7F08FB90 3C068007 */ lui $a2, %hi(g_chraiCurrentSetup+4) -/* 0C46C4 7F08FB94 8CC65D04 */ lw $a2, %lo(g_chraiCurrentSetup+4)($a2) -/* 0C46C8 7F08FB98 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0C46CC 7F08FB9C AFB10018 */ sw $s1, 0x18($sp) -/* 0C46D0 7F08FBA0 00808825 */ move $s1, $a0 -/* 0C46D4 7F08FBA4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0C46D8 7F08FBA8 10C00056 */ beqz $a2, .L7F08FD04 -/* 0C46DC 7F08FBAC AFB00014 */ sw $s0, 0x14($sp) -/* 0C46E0 7F08FBB0 8C8E0008 */ lw $t6, 8($a0) -/* 0C46E4 7F08FBB4 2402000C */ li $v0, 12 -/* 0C46E8 7F08FBB8 8CB80008 */ lw $t8, 8($a1) -/* 0C46EC 7F08FBBC 01C20019 */ multu $t6, $v0 -/* 0C46F0 7F08FBC0 00003825 */ move $a3, $zero -/* 0C46F4 7F08FBC4 00007812 */ mflo $t7 -/* 0C46F8 7F08FBC8 01E68021 */ addu $s0, $t7, $a2 -/* 0C46FC 7F08FBCC 00000000 */ nop -/* 0C4700 7F08FBD0 03020019 */ multu $t8, $v0 -/* 0C4704 7F08FBD4 0000C812 */ mflo $t9 -/* 0C4708 7F08FBD8 03262021 */ addu $a0, $t9, $a2 -/* 0C470C 7F08FBDC 16040016 */ bne $s0, $a0, .L7F08FC38 -/* 0C4710 7F08FBE0 00000000 */ nop -/* 0C4714 7F08FBE4 0FC23D9F */ jal sub_GAME_7F08F67C -/* 0C4718 7F08FBE8 AFA5005C */ sw $a1, 0x5c($sp) -/* 0C471C 7F08FBEC 8FA4005C */ lw $a0, 0x5c($sp) -/* 0C4720 7F08FBF0 02202825 */ move $a1, $s1 -/* 0C4724 7F08FBF4 0FC23C76 */ jal do_BFS_withinPathSet -/* 0C4728 7F08FBF8 24060001 */ li $a2, 1 -/* 0C472C 7F08FBFC 8E240004 */ lw $a0, 4($s1) -/* 0C4730 7F08FC00 0FC23DAC */ jal sub_GAME_7F08F6B0 -/* 0C4734 7F08FC04 2405FFFF */ li $a1, -1 -/* 0C4738 7F08FC08 50400004 */ beql $v0, $zero, .L7F08FC1C -/* 0C473C 7F08FC0C 8E25000C */ lw $a1, 0xc($s1) -/* 0C4740 7F08FC10 1000003E */ b .L7F08FD0C -/* 0C4744 7F08FC14 8FBF001C */ lw $ra, 0x1c($sp) -/* 0C4748 7F08FC18 8E25000C */ lw $a1, 0xc($s1) -.L7F08FC1C: -/* 0C474C 7F08FC1C 8E240004 */ lw $a0, 4($s1) -/* 0C4750 7F08FC20 0FC23DAC */ jal sub_GAME_7F08F6B0 -/* 0C4754 7F08FC24 24A50001 */ addiu $a1, $a1, 1 -/* 0C4758 7F08FC28 50400037 */ beql $v0, $zero, .L7F08FD08 -/* 0C475C 7F08FC2C 00001025 */ move $v0, $zero -/* 0C4760 7F08FC30 10000036 */ b .L7F08FD0C -/* 0C4764 7F08FC34 8FBF001C */ lw $ra, 0x1c($sp) -.L7F08FC38: -/* 0C4768 7F08FC38 0FC23B9C */ jal sub_GAME_7F08EE70 -/* 0C476C 7F08FC3C 02002825 */ move $a1, $s0 -/* 0C4770 7F08FC40 8E080008 */ lw $t0, 8($s0) -/* 0C4774 7F08FC44 2405FFFF */ li $a1, -1 -/* 0C4778 7F08FC48 0502002F */ bltzl $t0, .L7F08FD08 -/* 0C477C 7F08FC4C 00001025 */ move $v0, $zero -/* 0C4780 7F08FC50 0FC23E42 */ jal sub_GAME_7F08F908 -/* 0C4784 7F08FC54 8E040000 */ lw $a0, ($s0) -/* 0C4788 7F08FC58 10400013 */ beqz $v0, .L7F08FCA8 -/* 0C478C 7F08FC5C 00402825 */ move $a1, $v0 -/* 0C4790 7F08FC60 02002025 */ move $a0, $s0 -/* 0C4794 7F08FC64 27A60040 */ addiu $a2, $sp, 0x40 -/* 0C4798 7F08FC68 0FC23D0E */ jal sub_GAME_7F08F438 -/* 0C479C 7F08FC6C 27A7003C */ addiu $a3, $sp, 0x3c -/* 0C47A0 7F08FC70 8FA50040 */ lw $a1, 0x40($sp) -/* 0C47A4 7F08FC74 02202025 */ move $a0, $s1 -/* 0C47A8 7F08FC78 27A60030 */ addiu $a2, $sp, 0x30 -/* 0C47AC 7F08FC7C 14B10003 */ bne $a1, $s1, .L7F08FC8C -/* 0C47B0 7F08FC80 00000000 */ nop -/* 0C47B4 7F08FC84 10000020 */ b .L7F08FD08 -/* 0C47B8 7F08FC88 8FA2003C */ lw $v0, 0x3c($sp) -.L7F08FC8C: -/* 0C47BC 7F08FC8C 0FC23CD4 */ jal sub_GAME_7F08F350 -/* 0C47C0 7F08FC90 24070003 */ li $a3, 3 -/* 0C47C4 7F08FC94 28410003 */ slti $at, $v0, 3 -/* 0C47C8 7F08FC98 5420001B */ bnezl $at, .L7F08FD08 -/* 0C47CC 7F08FC9C 00001025 */ move $v0, $zero -/* 0C47D0 7F08FCA0 10000019 */ b .L7F08FD08 -/* 0C47D4 7F08FCA4 8FA20034 */ lw $v0, 0x34($sp) -.L7F08FCA8: -/* 0C47D8 7F08FCA8 8E050008 */ lw $a1, 8($s0) -/* 0C47DC 7F08FCAC 8E040000 */ lw $a0, ($s0) -/* 0C47E0 7F08FCB0 0FC23B58 */ jal sub_GAME_7F08ED60 -/* 0C47E4 7F08FCB4 24A5FFFF */ addiu $a1, $a1, -1 -/* 0C47E8 7F08FCB8 10400012 */ beqz $v0, .L7F08FD04 -/* 0C47EC 7F08FCBC 00402825 */ move $a1, $v0 -/* 0C47F0 7F08FCC0 02002025 */ move $a0, $s0 -/* 0C47F4 7F08FCC4 27A60028 */ addiu $a2, $sp, 0x28 -/* 0C47F8 7F08FCC8 0FC23D0E */ jal sub_GAME_7F08F438 -/* 0C47FC 7F08FCCC 27A70024 */ addiu $a3, $sp, 0x24 -/* 0C4800 7F08FCD0 8FA40028 */ lw $a0, 0x28($sp) -/* 0C4804 7F08FCD4 02202825 */ move $a1, $s1 -/* 0C4808 7F08FCD8 0FC23C76 */ jal do_BFS_withinPathSet -/* 0C480C 7F08FCDC 24060001 */ li $a2, 1 -/* 0C4810 7F08FCE0 8E25000C */ lw $a1, 0xc($s1) -/* 0C4814 7F08FCE4 8E240004 */ lw $a0, 4($s1) -/* 0C4818 7F08FCE8 8E260008 */ lw $a2, 8($s1) -/* 0C481C 7F08FCEC 0FC23C24 */ jal findPadWithDistAndSet -/* 0C4820 7F08FCF0 24A50001 */ addiu $a1, $a1, 1 -/* 0C4824 7F08FCF4 50400004 */ beql $v0, $zero, .L7F08FD08 -/* 0C4828 7F08FCF8 00001025 */ move $v0, $zero -/* 0C482C 7F08FCFC 10000003 */ b .L7F08FD0C -/* 0C4830 7F08FD00 8FBF001C */ lw $ra, 0x1c($sp) -.L7F08FD04: -/* 0C4834 7F08FD04 00001025 */ move $v0, $zero -.L7F08FD08: -/* 0C4838 7F08FD08 8FBF001C */ lw $ra, 0x1c($sp) -.L7F08FD0C: -/* 0C483C 7F08FD0C 8FB00014 */ lw $s0, 0x14($sp) -/* 0C4840 7F08FD10 8FB10018 */ lw $s1, 0x18($sp) -/* 0C4844 7F08FD14 03E00008 */ jr $ra -/* 0C4848 7F08FD18 27BD0058 */ addiu $sp, $sp, 0x58 -) -#endif +void sub_GAME_7F08F2CC(waypoint *from, waypoint *to) +{ + waypoint *curto; + s32 value; + do_BFS_withinPathSet(from, to, 0); + value = to->dist - 1; + curto = to; -#ifdef NONMATCHING -void sub_GAME_7F08FD1C(void) { + while (value >= 0) + { + curto->dist += 10000; + curto = findPadWithDistAndSet(curto->neighbours, value, from->groupNum); + value--; + } + + curto->dist += 10000; +} + + +s32 sub_GAME_7F08F350(waypoint *from, waypoint *to, waypoint **arr, s32 arrlen) +{ + waypoint **arrptr = arr; + waypoint *curfrom; + s32 i; + + if (arrlen >= 2) + { + sub_GAME_7F08F2CC(from, to); + + *arr = from; + arrptr++; + + curfrom = from; + arrlen += 9999; + i = 10001; + + while (i <= to->dist && i < arrlen) + { + curfrom = findPadWithDistAndSet(curfrom->neighbours, i, from->groupNum); + *arrptr = curfrom; + arrptr++; + i++; + } + } + + *arrptr = NULL; + arrptr++; + + return arrptr - arr; +} + + +void sub_GAME_7F08F438(waygroup *groupa, waygroup *groupb, waypoint **pointa, waypoint **pointb) +{ + waypoint *points = g_CurrentSetup.pathwaypoints; + waygroup *groups = g_CurrentSetup.waypointgroups; + s32 *groupapointnums = groupa->waypoints; + s32 stack; + + while (*groupapointnums >= 0) + { + waypoint *groupapoint = &points[*groupapointnums]; + s32 *neighbournums = groupapoint->neighbours; + + while (*neighbournums >= 0) + { + waypoint *neighbour = &points[*neighbournums]; + + if (groupb == &groups[neighbour->groupNum]) + { + *pointa = groupapoint; + *pointb = neighbour; + return; + } + + neighbournums++; + } + + groupapointnums++; + } + *pointb = NULL; + *pointa = NULL; +} + + +/** + * Find a route from frompoint to topoint. The arr argument will be populated + * with pointers to the route's waypoints. If arr is not big enough then only + * the first part of the route will be populated into the array. + * + * The return value is the number of elements populated into the array. + */ +s32 waypointFindRoute(waypoint *frompoint, waypoint *topoint, waypoint **arr, s32 arrlen) +{ + waypoint **arrptr = arr; + waygroup *groups = g_CurrentSetup.waypointgroups; + + if (groups) + { + waygroup *fromgroup = &groups[frompoint->groupNum]; + waygroup *togroup = &groups[topoint->groupNum]; + + if (sub_GAME_7F08EF1C(fromgroup, togroup, groups)) + { + waypoint *curfrompoint = frompoint; + waygroup *curfromgroup = fromgroup; + s32 i; + + for (i = fromgroup->dist + 1; i <= togroup->dist && arrlen >= 2; i++) + { + s32 numwritten; + waygroup *nextfromgroup = sub_GAME_7F08ED60(curfromgroup->neighbours, i); + waypoint *tmppoint; + waypoint *nextfrompoint; + + sub_GAME_7F08F438(curfromgroup, nextfromgroup, &tmppoint, &nextfrompoint); + numwritten = sub_GAME_7F08F350(curfrompoint, tmppoint, arrptr, arrlen) - 1; + + arrlen -= numwritten; + arrptr += numwritten; + + curfrompoint = nextfrompoint; + curfromgroup = nextfromgroup; + } + + arrptr += sub_GAME_7F08F350(curfrompoint, topoint, arrptr, arrlen) - 1; + } + } + + *arrptr = NULL; + arrptr++; + + return arrptr - arr; +} + + +void resetWaypointDistances(void) +{ + waypoint * waypoint; + waypoint = g_CurrentSetup.pathwaypoints; + + while (waypoint->padID >= 0) + { + waypoint->dist = -1; + waypoint++; + } +} + + +waypoint *sub_GAME_7F08F6B0(s32 *pointnums, s32 arg1) +{ + s32 len = 0; + s32 randomindex; + s32 i; + + while (pointnums[len] >= 0) + { + len++; + } + + // This is effectively randomly dividing the pointnums list into two, + // then checking the upper portion before the lower portion. Both loops + // have the same logic so this seems unusual, but there is reason to do + // this if they want the returned waypoint to be any random waypoint that + // meets the arg1 criteria, with equal weighting. + + randomindex = randomGetNext() % len; + + for (i = randomindex; i < len; i++) + { + waypoint *point = &g_CurrentSetup.pathwaypoints[pointnums[i]]; + + if (point->dist == arg1) + { + return point; + } + } + + for (i = 0; i < randomindex; i++) + { + waypoint *point = &g_CurrentSetup.pathwaypoints[pointnums[i]]; + + if (point->dist == arg1) + { + return point; + } + } + + return NULL; +} + + +waygroup *sub_GAME_7F08F908(s32 *groupnums, s32 arg1) +{ + s32 len = 0; + s32 randomindex; + s32 i; + + while (groupnums[len] >= 0) + { + len++; + } + + // Similar to the above function, return a random waygroup + // which matches the arg1 criteria. + randomindex = randomGetNext() % len; + + for (i = randomindex; i < len; i++) + { + waygroup *group = &g_CurrentSetup.waypointgroups[groupnums[i]]; + + if (group->dist == arg1) + { + return group; + } + } + + for (i = 0; i < randomindex; i++) + { + waygroup *group = &g_CurrentSetup.waypointgroups[groupnums[i]]; + + if (group->dist == arg1) + { + return group; + } + } + + return NULL; +} + + +waypoint *sub_GAME_7F08FB90(waypoint *pointa, waypoint *pointb) +{ + if (g_CurrentSetup.waypointgroups) + { + waygroup *groupa = &g_CurrentSetup.waypointgroups[pointa->groupNum]; + waygroup *groupb = &g_CurrentSetup.waypointgroups[pointb->groupNum]; + waypoint *result; + s32 stack; + + if (groupa == groupb) + { + resetWaypointDistances(); + do_BFS_withinPathSet(pointb, pointa, 1); + + result = sub_GAME_7F08F6B0(pointa->neighbours, -1); + + if (result) + { + return result; + } + + result = sub_GAME_7F08F6B0(pointa->neighbours, pointa->dist + 1); + + if (result) + { + return result; + } + } + else + { + sub_GAME_7F08EE70(groupb, groupa, g_CurrentSetup.waypointgroups, 0); + + if (groupa->dist >= 0) + { + waygroup *tmpgroup = sub_GAME_7F08F908(groupa->neighbours, -1); + + if (tmpgroup) + { + waypoint *sp48; + waypoint *sp44; + waypoint *arr[3]; + + sub_GAME_7F08F438(groupa, tmpgroup, &sp48, &sp44); + + if (sp48 == pointa) + { + return sp44; + } + + if (sub_GAME_7F08F350(pointa, sp48, arr, 3) >= 3) + { + return arr[1]; + } + } + else + { + waygroup *tmpgroup = sub_GAME_7F08ED60(groupa->neighbours, groupa->dist - 1); + + if (tmpgroup) + { + waypoint *sp30; + waypoint *sp2c; + + sub_GAME_7F08F438(groupa, tmpgroup, &sp30, &sp2c); + do_BFS_withinPathSet(sp30, pointa, 1); + result = findPadWithDistAndSet(pointa->neighbours, pointa->dist + 1, pointa->groupNum); + + if (result) + { + return result; + } + } + } + } + } + } + + return NULL; +} + + +void sub_GAME_7F08FD1C(void) +{ + waypoint* waypoints; + s32 count; + waypoint* entry; + waypoint* from; + waypoint* to; + waypoint** arr_entry; + u32 unused[0x30]; + + waypoints = g_CurrentSetup.pathwaypoints; + + if (waypoints != NULL) + { + waypoint *arr; + count = 0; + entry = waypoints; + + while (entry->padID >= 0) + { + entry++; + count++; + } + + from = &waypoints[randomGetNext() % count]; + to = &waypoints[randomGetNext() % count]; + + if (waypointFindRoute(from, to, &arr, 0x32) != 0) + { + for (arr_entry = &arr; *arr_entry; arr_entry++) + { + // do nothing + } + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F08FD1C -/* 0C484C 7F08FD1C 3C088007 */ lui $t0, %hi(g_chraiCurrentSetup+0) -/* 0C4850 7F08FD20 8D085D00 */ lw $t0, %lo(g_chraiCurrentSetup+0)($t0) -/* 0C4854 7F08FD24 27BDFF08 */ addiu $sp, $sp, -0xf8 -/* 0C4858 7F08FD28 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C485C 7F08FD2C 5100002F */ beql $t0, $zero, .L7F08FDEC -/* 0C4860 7F08FD30 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C4864 7F08FD34 8D0E0000 */ lw $t6, ($t0) -/* 0C4868 7F08FD38 00001825 */ move $v1, $zero -/* 0C486C 7F08FD3C 01001025 */ move $v0, $t0 -/* 0C4870 7F08FD40 05C20007 */ bltzl $t6, .L7F08FD60 -/* 0C4874 7F08FD44 AFA300F0 */ sw $v1, 0xf0($sp) -/* 0C4878 7F08FD48 8C4F0010 */ lw $t7, 0x10($v0) -.L7F08FD4C: -/* 0C487C 7F08FD4C 24420010 */ addiu $v0, $v0, 0x10 -/* 0C4880 7F08FD50 24630001 */ addiu $v1, $v1, 1 -/* 0C4884 7F08FD54 05E3FFFD */ bgezl $t7, .L7F08FD4C -/* 0C4888 7F08FD58 8C4F0010 */ lw $t7, 0x10($v0) -/* 0C488C 7F08FD5C AFA300F0 */ sw $v1, 0xf0($sp) -.L7F08FD60: -/* 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) -/* 0C48A0 7F08FD70 0043001B */ divu $zero, $v0, $v1 -/* 0C48A4 7F08FD74 0000C010 */ mfhi $t8 -/* 0C48A8 7F08FD78 0018C900 */ sll $t9, $t8, 4 -/* 0C48AC 7F08FD7C 14600002 */ bnez $v1, .L7F08FD88 -/* 0C48B0 7F08FD80 00000000 */ nop -/* 0C48B4 7F08FD84 0007000D */ break 7 -.L7F08FD88: -/* 0C48B8 7F08FD88 03284821 */ addu $t1, $t9, $t0 -/* 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) -/* 0C48CC 7F08FD9C 8FA400E8 */ lw $a0, 0xe8($sp) -/* 0C48D0 7F08FDA0 0043001B */ divu $zero, $v0, $v1 -/* 0C48D4 7F08FDA4 00005010 */ mfhi $t2 -/* 0C48D8 7F08FDA8 000A5900 */ sll $t3, $t2, 4 -/* 0C48DC 7F08FDAC 14600002 */ bnez $v1, .L7F08FDB8 -/* 0C48E0 7F08FDB0 00000000 */ nop -/* 0C48E4 7F08FDB4 0007000D */ break 7 -.L7F08FDB8: -/* 0C48E8 7F08FDB8 27A6001C */ addiu $a2, $sp, 0x1c -/* 0C48EC 7F08FDBC 24070032 */ li $a3, 50 -/* 0C48F0 7F08FDC0 0FC23D3C */ jal waypointFindRoute -/* 0C48F4 7F08FDC4 01682821 */ addu $a1, $t3, $t0 -/* 0C48F8 7F08FDC8 10400007 */ beqz $v0, .L7F08FDE8 -/* 0C48FC 7F08FDCC 8FAC001C */ lw $t4, 0x1c($sp) -/* 0C4900 7F08FDD0 11800005 */ beqz $t4, .L7F08FDE8 -/* 0C4904 7F08FDD4 27A2001C */ addiu $v0, $sp, 0x1c -/* 0C4908 7F08FDD8 8C4D0004 */ lw $t5, 4($v0) -.L7F08FDDC: -/* 0C490C 7F08FDDC 24420004 */ addiu $v0, $v0, 4 -/* 0C4910 7F08FDE0 55A0FFFE */ bnezl $t5, .L7F08FDDC -/* 0C4914 7F08FDE4 8C4D0004 */ lw $t5, 4($v0) -.L7F08FDE8: -/* 0C4918 7F08FDE8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F08FDEC: -/* 0C491C 7F08FDEC 27BD00F8 */ addiu $sp, $sp, 0xf8 -/* 0C4920 7F08FDF0 03E00008 */ jr $ra -/* 0C4924 7F08FDF4 00000000 */ nop -) -#endif diff --git a/src/game/padhalllv.h b/src/game/padhalllv.h index 012c82b5..89f8b0a3 100644 --- a/src/game/padhalllv.h +++ b/src/game/padhalllv.h @@ -4,4 +4,4 @@ -#endif \ No newline at end of file +#endif diff --git a/src/game/player.c b/src/game/player.c index ebc61824..7b03df41 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -4,12 +4,20 @@ #include "unk_092E50.h" #include "bondview.h" #include "lvl.h" +#include "fog.h" +#include "bg.h" +#include "othermodemicrocode.h" +#include "fr.h" +#include "image_bank.h" + +#define SKYABS(val) (val >= 0.0f ? (val) : -(val)) // bss -s32 copyof_stagenum; +s32 g_SkyStageNum; s32 dword_CODE_bss_80079E94; -char dword_CODE_bss_80079E98[0x48]; +Mtxf dword_CODE_bss_80079E98; +u32 dword_CODE_bss_80079ED8; struct player *g_playerPointers[4]; struct player_data g_playerPlayerData[4]; @@ -27,415 +35,110 @@ PLAYER_ID array_PLAYER_IDs[4]; //s32 dword_CODE_bss_8007A0C8; //s32 dword_CODE_bss_8007A0CC; +void sub_GAME_7F093880(f32 offset_x, f32 offset_y, coord3d* out) { + Mtxf* player_mtxf; + coord2d coords; + f32 screen_top; - - -#ifdef NONMATCHING -void sub_GAME_7F093880(f32 arg0, f32 arg1, ? arg2) { - f32 sp18; - f32 sp1C; - f32 sp20; - s32 sp24; - - // Node 0 - sp24 = currentPlayerGetMatrix10D4(); - sp1C = (f32) (getPlayer_c_screenleft() + arg0); - sp18 = getPlayer_c_screentop(); - sp20 = (f32) (fogGetCurrentEnvironmentp()->unk38 + (arg1 + sp18)); - sub_GAME_7F077EEC(&sp1C, arg2, 0x42c80000); - return matrix_4x4_rotate_vector_in_place(sp24, arg2); + player_mtxf = currentPlayerGetMatrix10D4(); + coords.x = getPlayer_c_screenleft() + offset_x; + screen_top = getPlayer_c_screentop(); + coords.y = fogGetCurrentEnvironmentp()->WaterConcavity + (offset_y + screen_top); + sub_GAME_7F077EEC(&coords, out, 100.0f); + matrix_4x4_rotate_vector_in_place(player_mtxf, out->f); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F093880 -/* 0C83B0 7F093880 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0C83B4 7F093884 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C83B8 7F093888 E7AC0028 */ swc1 $f12, 0x28($sp) -/* 0C83BC 7F09388C E7AE002C */ swc1 $f14, 0x2c($sp) -/* 0C83C0 7F093890 0FC1E111 */ jal currentPlayerGetMatrix10D4 -/* 0C83C4 7F093894 AFA60030 */ sw $a2, 0x30($sp) -/* 0C83C8 7F093898 0FC1E131 */ jal getPlayer_c_screenleft -/* 0C83CC 7F09389C AFA20024 */ sw $v0, 0x24($sp) -/* 0C83D0 7F0938A0 C7A40028 */ lwc1 $f4, 0x28($sp) -/* 0C83D4 7F0938A4 46040180 */ add.s $f6, $f0, $f4 -/* 0C83D8 7F0938A8 0FC1E135 */ jal getPlayer_c_screentop -/* 0C83DC 7F0938AC E7A6001C */ swc1 $f6, 0x1c($sp) -/* 0C83E0 7F0938B0 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C83E4 7F0938B4 E7A00018 */ swc1 $f0, 0x18($sp) -/* 0C83E8 7F0938B8 C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 0C83EC 7F0938BC C7AA0018 */ lwc1 $f10, 0x18($sp) -/* 0C83F0 7F0938C0 C4520038 */ lwc1 $f18, 0x38($v0) -/* 0C83F4 7F0938C4 27A4001C */ addiu $a0, $sp, 0x1c -/* 0C83F8 7F0938C8 460A4400 */ add.s $f16, $f8, $f10 -/* 0C83FC 7F0938CC 8FA50030 */ lw $a1, 0x30($sp) -/* 0C8400 7F0938D0 3C0642C8 */ lui $a2, 0x42c8 -/* 0C8404 7F0938D4 46109100 */ add.s $f4, $f18, $f16 -/* 0C8408 7F0938D8 0FC1DFBB */ jal sub_GAME_7F077EEC -/* 0C840C 7F0938DC E7A40020 */ swc1 $f4, 0x20($sp) -/* 0C8410 7F0938E0 8FA40024 */ lw $a0, 0x24($sp) -/* 0C8414 7F0938E4 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place -/* 0C8418 7F0938E8 8FA50030 */ lw $a1, 0x30($sp) -/* 0C841C 7F0938EC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C8420 7F0938F0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0C8424 7F0938F4 03E00008 */ jr $ra -/* 0C8428 7F0938F8 00000000 */ nop -) -#endif - - - - -#ifdef NONMATCHING -f32 sub_GAME_7F0938FC(void *arg0, void *arg1, void *arg2) { +bool sub_GAME_7F0938FC(coord3d *arg0, coord3d *arg1, f32 *arg2) +{ + coord3d *campos = bondviewGetCurrentPlayersPosition(); + f32 f12 = 2.0f * arg0->y / sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[2] * arg0->f[2] + 0.0001f); + f32 sp2c; + f32 f12_2; f32 sp24; - f32 sp2C; - s32 temp_s1; - f32 temp_f12; - f32 temp_f2; - f32 temp_f12_2; - f32 phi_f12; - f32 phi_f16; - f32 phi_f2; - f32 phi_return; + u32 stack[2]; - // Node 0 - temp_s1 = bondviewGetCurrentPlayersPosition(); - temp_f12 = ((arg0->unk4 + arg0->unk4) / sqrtf((((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)) + D_80057520), *arg0)); - phi_f12 = temp_f12; - if (1.0f < temp_f12) + if (f12 > 1.0f) { - // Node 1 - phi_f12 = 1.0f; + f12 = 1.0f; } - // Node 2 - *arg2 = (f32) (1.0f - phi_f12); - if (0.0f == arg0->unk4) + + *arg2 = 1.0f - f12; + + if (arg0->y == 0.0f) { - // Node 3 - phi_f16 = D_80057524; + sp24 = 0.01f; } else { - // Node 4 - phi_f16 = arg0->unk4; + sp24 = arg0->y; } - // Node 5 - phi_return = 0.0f; - if (0.0f < phi_f16) + + if (sp24 > 0.0f) { - // Node 6 - sp24 = (f32) phi_f16; - temp_f2 = ((fogGetCurrentEnvironmentp(phi_f12, 1.0f)->unkC - temp_s1->unk4) / phi_f16); - sp2C = temp_f2; - temp_f12_2 = (sqrtf(((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)), *arg0) * temp_f2); - phi_f2 = temp_f2; - if (D_80057528 < temp_f12_2) + sp2c = (fogGetCurrentEnvironmentp()->CloudRepeat - campos->y) / sp24; + f12_2 = sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[2] * arg0->f[2]) * sp2c; + + if (f12_2 > 300000) { - // Node 7 - phi_f2 = (temp_f2 * (D_80057528 / temp_f12_2)); + sp2c *= 300000 / f12_2; } - // Node 8 - *arg1 = (f32) ((*arg0 * phi_f2) + *temp_s1); - arg1->unk4 = (f32) (temp_s1->unk4 + (phi_f2 * phi_f16)); - arg1->unk8 = (f32) ((arg0->unk8 * phi_f2) + temp_s1->unk8); - phi_return = 1.401298464324817e-45f; + + arg1->x = campos->x + sp2c * arg0->f[0]; + arg1->y = campos->y + sp2c * sp24; + arg1->z = campos->z + sp2c * arg0->f[2]; + + return TRUE; } - // Node 9 - return phi_return; + + return FALSE; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80057520 -.word 0x38d1b717 /*0.000099999997*/ -glabel D_80057524 -.word 0x3c23d70a /*0.0099999998*/ -glabel D_80057528 -.word 0x48927c00 /*300000.0*/ -.text -glabel sub_GAME_7F0938FC -/* 0C842C 7F0938FC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0C8430 7F093900 AFBF001C */ sw $ra, 0x1c($sp) -/* 0C8434 7F093904 AFB00014 */ sw $s0, 0x14($sp) -/* 0C8438 7F093908 00808025 */ move $s0, $a0 -/* 0C843C 7F09390C AFB10018 */ sw $s1, 0x18($sp) -/* 0C8440 7F093910 AFA5003C */ sw $a1, 0x3c($sp) -/* 0C8444 7F093914 0FC227F5 */ jal bondviewGetCurrentPlayersPosition -/* 0C8448 7F093918 AFA60040 */ sw $a2, 0x40($sp) -/* 0C844C 7F09391C C6000008 */ lwc1 $f0, 8($s0) -/* 0C8450 7F093920 C60E0000 */ lwc1 $f14, ($s0) -/* 0C8454 7F093924 3C018005 */ lui $at, %hi(D_80057520) -/* 0C8458 7F093928 46000102 */ mul.s $f4, $f0, $f0 -/* 0C845C 7F09392C C42A7520 */ lwc1 $f10, %lo(D_80057520)($at) -/* 0C8460 7F093930 00408825 */ move $s1, $v0 -/* 0C8464 7F093934 460E7182 */ mul.s $f6, $f14, $f14 -/* 0C8468 7F093938 46062200 */ add.s $f8, $f4, $f6 -/* 0C846C 7F09393C 0C007DF8 */ jal sqrtf -/* 0C8470 7F093940 460A4300 */ add.s $f12, $f8, $f10 -/* 0C8474 7F093944 C6020004 */ lwc1 $f2, 4($s0) -/* 0C8478 7F093948 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C847C 7F09394C 44817000 */ mtc1 $at, $f14 -/* 0C8480 7F093950 46021100 */ add.s $f4, $f2, $f2 -/* 0C8484 7F093954 3C018005 */ lui $at, %hi(D_80057524) -/* 0C8488 7F093958 00001025 */ move $v0, $zero -/* 0C848C 7F09395C 46002303 */ div.s $f12, $f4, $f0 -/* 0C8490 7F093960 460C703C */ c.lt.s $f14, $f12 -/* 0C8494 7F093964 00000000 */ nop -/* 0C8498 7F093968 45020003 */ bc1fl .L7F093978 -/* 0C849C 7F09396C 460C7181 */ sub.s $f6, $f14, $f12 -/* 0C84A0 7F093970 46007306 */ mov.s $f12, $f14 -/* 0C84A4 7F093974 460C7181 */ sub.s $f6, $f14, $f12 -.L7F093978: -/* 0C84A8 7F093978 8FAE0040 */ lw $t6, 0x40($sp) -/* 0C84AC 7F09397C 44800000 */ mtc1 $zero, $f0 -/* 0C84B0 7F093980 E5C60000 */ swc1 $f6, ($t6) -/* 0C84B4 7F093984 C6020004 */ lwc1 $f2, 4($s0) -/* 0C84B8 7F093988 46020032 */ c.eq.s $f0, $f2 -/* 0C84BC 7F09398C 00000000 */ nop -/* 0C84C0 7F093990 45020004 */ bc1fl .L7F0939A4 -/* 0C84C4 7F093994 46001406 */ mov.s $f16, $f2 -/* 0C84C8 7F093998 10000002 */ b .L7F0939A4 -/* 0C84CC 7F09399C C4307524 */ lwc1 $f16, %lo(D_80057524)($at) -/* 0C84D0 7F0939A0 46001406 */ mov.s $f16, $f2 -.L7F0939A4: -/* 0C84D4 7F0939A4 4610003C */ c.lt.s $f0, $f16 -/* 0C84D8 7F0939A8 00000000 */ nop -/* 0C84DC 7F0939AC 4500002D */ bc1f .L7F093A64 -/* 0C84E0 7F0939B0 00000000 */ nop -/* 0C84E4 7F0939B4 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C84E8 7F0939B8 E7B00024 */ swc1 $f16, 0x24($sp) -/* 0C84EC 7F0939BC C448000C */ lwc1 $f8, 0xc($v0) -/* 0C84F0 7F0939C0 C62A0004 */ lwc1 $f10, 4($s1) -/* 0C84F4 7F0939C4 C7B00024 */ lwc1 $f16, 0x24($sp) -/* 0C84F8 7F0939C8 C6000008 */ lwc1 $f0, 8($s0) -/* 0C84FC 7F0939CC 460A4101 */ sub.s $f4, $f8, $f10 -/* 0C8500 7F0939D0 C60E0000 */ lwc1 $f14, ($s0) -/* 0C8504 7F0939D4 46000182 */ mul.s $f6, $f0, $f0 -/* 0C8508 7F0939D8 00000000 */ nop -/* 0C850C 7F0939DC 460E7202 */ mul.s $f8, $f14, $f14 -/* 0C8510 7F0939E0 46102083 */ div.s $f2, $f4, $f16 -/* 0C8514 7F0939E4 46083300 */ add.s $f12, $f6, $f8 -/* 0C8518 7F0939E8 0C007DF8 */ jal sqrtf -/* 0C851C 7F0939EC E7A2002C */ swc1 $f2, 0x2c($sp) -/* 0C8520 7F0939F0 C7A2002C */ lwc1 $f2, 0x2c($sp) -/* 0C8524 7F0939F4 3C018005 */ lui $at, %hi(D_80057528) -/* 0C8528 7F0939F8 C4327528 */ lwc1 $f18, %lo(D_80057528)($at) -/* 0C852C 7F0939FC 46020302 */ mul.s $f12, $f0, $f2 -/* 0C8530 7F093A00 C7B00024 */ lwc1 $f16, 0x24($sp) -/* 0C8534 7F093A04 460C903C */ c.lt.s $f18, $f12 -/* 0C8538 7F093A08 00000000 */ nop -/* 0C853C 7F093A0C 45020005 */ bc1fl .L7F093A24 -/* 0C8540 7F093A10 C6040000 */ lwc1 $f4, ($s0) -/* 0C8544 7F093A14 460C9283 */ div.s $f10, $f18, $f12 -/* 0C8548 7F093A18 460A1082 */ mul.s $f2, $f2, $f10 -/* 0C854C 7F093A1C 00000000 */ nop -/* 0C8550 7F093A20 C6040000 */ lwc1 $f4, ($s0) -.L7F093A24: -/* 0C8554 7F093A24 C6280000 */ lwc1 $f8, ($s1) -/* 0C8558 7F093A28 8FA3003C */ lw $v1, 0x3c($sp) -/* 0C855C 7F093A2C 46022182 */ mul.s $f6, $f4, $f2 -/* 0C8560 7F093A30 24020001 */ li $v0, 1 -/* 0C8564 7F093A34 46083280 */ add.s $f10, $f6, $f8 -/* 0C8568 7F093A38 46101182 */ mul.s $f6, $f2, $f16 -/* 0C856C 7F093A3C E46A0000 */ swc1 $f10, ($v1) -/* 0C8570 7F093A40 C6240004 */ lwc1 $f4, 4($s1) -/* 0C8574 7F093A44 46062200 */ add.s $f8, $f4, $f6 -/* 0C8578 7F093A48 E4680004 */ swc1 $f8, 4($v1) -/* 0C857C 7F093A4C C60A0008 */ lwc1 $f10, 8($s0) -/* 0C8580 7F093A50 C6260008 */ lwc1 $f6, 8($s1) -/* 0C8584 7F093A54 46025102 */ mul.s $f4, $f10, $f2 -/* 0C8588 7F093A58 46062200 */ add.s $f8, $f4, $f6 -/* 0C858C 7F093A5C 10000001 */ b .L7F093A64 -/* 0C8590 7F093A60 E4680008 */ swc1 $f8, 8($v1) -.L7F093A64: -/* 0C8594 7F093A64 8FBF001C */ lw $ra, 0x1c($sp) -/* 0C8598 7F093A68 8FB00014 */ lw $s0, 0x14($sp) -/* 0C859C 7F093A6C 8FB10018 */ lw $s1, 0x18($sp) -/* 0C85A0 7F093A70 03E00008 */ jr $ra -/* 0C85A4 7F093A74 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - - - -#ifdef NONMATCHING -f32 sub_GAME_7F093A78(void *arg0, void *arg1, void *arg2) { +bool sub_GAME_7F093A78(coord3d *arg0, coord3d *arg1, f32 *arg2) +{ + coord3d *campos = bondviewGetCurrentPlayersPosition(); + f32 f12 = -2.0f * arg0->y / sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[2] * arg0->f[2] + 0.0001f); + f32 sp2c; + f32 f12_2; f32 sp24; - f32 sp2C; - s32 temp_s1; - f32 temp_f2_2; - f32 temp_f2; - f32 temp_f12; - f32 phi_f2; - f32 phi_f16; - f32 phi_f2_2; - f32 phi_return; + u32 stack[2]; - // Node 0 - temp_s1 = bondviewGetCurrentPlayersPosition(); - temp_f2_2 = ((-2.0f * arg0->unk4) / sqrtf((((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)) + D_8005752C), *arg0)); - phi_f2 = temp_f2_2; - if (1.0f < temp_f2_2) + if (f12 > 1.0f) { - // Node 1 - phi_f2 = 1.0f; + f12 = 1.0f; } - // Node 2 - *arg2 = (f32) (1.0f - phi_f2); - if (0.0f == arg0->unk4) + + *arg2 = 1.0f - f12; + + if (arg0->y == 0.0f) { - // Node 3 - phi_f16 = D_80057530; + sp24 = -0.01f; } else { - // Node 4 - phi_f16 = arg0->unk4; + sp24 = arg0->y; } - // Node 5 - phi_return = arg0->unk4; - if (phi_f16 < 0.0f) - { - // Node 6 - sp24 = (f32) phi_f16; - temp_f2 = ((fogGetCurrentEnvironmentp(1.0f, 0.0f)->unk24 - temp_s1->unk4) / phi_f16); - sp2C = temp_f2; - temp_f12 = (sqrtf(((arg0->unk8 * arg0->unk8) + (*arg0 * *arg0)), *arg0) * temp_f2); - phi_f2_2 = temp_f2; - if (D_80057534 < temp_f12) - { - // Node 7 - phi_f2_2 = (temp_f2 * (D_80057534 / temp_f12)); - } - // Node 8 - *arg1 = (f32) ((*arg0 * phi_f2_2) + *temp_s1); - arg1->unk4 = (f32) (temp_s1->unk4 + (phi_f2_2 * phi_f16)); - arg1->unk8 = (f32) ((arg0->unk8 * phi_f2_2) + temp_s1->unk8); - phi_return = 1.401298464324817e-45f; - } - // Node 9 - return phi_return; -} -#else -GLOBAL_ASM( -.late_rodata -glabel D_8005752C -.word 0x38d1b717 /*0.000099999997*/ -glabel D_80057530 -.word 0xbc23d70a /*-0.01*/ -glabel D_80057534 -.word 0x48927c00 /*300000.0*/ -.text -glabel sub_GAME_7F093A78 -/* 0C85A8 7F093A78 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0C85AC 7F093A7C AFBF001C */ sw $ra, 0x1c($sp) -/* 0C85B0 7F093A80 AFB00014 */ sw $s0, 0x14($sp) -/* 0C85B4 7F093A84 00808025 */ move $s0, $a0 -/* 0C85B8 7F093A88 AFB10018 */ sw $s1, 0x18($sp) -/* 0C85BC 7F093A8C AFA5003C */ sw $a1, 0x3c($sp) -/* 0C85C0 7F093A90 0FC227F5 */ jal bondviewGetCurrentPlayersPosition -/* 0C85C4 7F093A94 AFA60040 */ sw $a2, 0x40($sp) -/* 0C85C8 7F093A98 C6000008 */ lwc1 $f0, 8($s0) -/* 0C85CC 7F093A9C C60E0000 */ lwc1 $f14, ($s0) -/* 0C85D0 7F093AA0 3C018005 */ lui $at, %hi(D_8005752C) -/* 0C85D4 7F093AA4 46000102 */ mul.s $f4, $f0, $f0 -/* 0C85D8 7F093AA8 C42A752C */ lwc1 $f10, %lo(D_8005752C)($at) -/* 0C85DC 7F093AAC 00408825 */ move $s1, $v0 -/* 0C85E0 7F093AB0 460E7182 */ mul.s $f6, $f14, $f14 -/* 0C85E4 7F093AB4 46062200 */ add.s $f8, $f4, $f6 -/* 0C85E8 7F093AB8 0C007DF8 */ jal sqrtf -/* 0C85EC 7F093ABC 460A4300 */ add.s $f12, $f8, $f10 -/* 0C85F0 7F093AC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C85F4 7F093AC4 44816000 */ mtc1 $at, $f12 -/* 0C85F8 7F093AC8 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 0C85FC 7F093ACC 44812000 */ mtc1 $at, $f4 -/* 0C8600 7F093AD0 C6060004 */ lwc1 $f6, 4($s0) -/* 0C8604 7F093AD4 3C018005 */ lui $at, %hi(D_80057530) -/* 0C8608 7F093AD8 00001025 */ move $v0, $zero -/* 0C860C 7F093ADC 46062202 */ mul.s $f8, $f4, $f6 -/* 0C8610 7F093AE0 46004083 */ div.s $f2, $f8, $f0 -/* 0C8614 7F093AE4 4602603C */ c.lt.s $f12, $f2 -/* 0C8618 7F093AE8 00000000 */ nop -/* 0C861C 7F093AEC 45020003 */ bc1fl .L7F093AFC -/* 0C8620 7F093AF0 46026281 */ sub.s $f10, $f12, $f2 -/* 0C8624 7F093AF4 46006086 */ mov.s $f2, $f12 -/* 0C8628 7F093AF8 46026281 */ sub.s $f10, $f12, $f2 -.L7F093AFC: -/* 0C862C 7F093AFC 8FAE0040 */ lw $t6, 0x40($sp) -/* 0C8630 7F093B00 44807000 */ mtc1 $zero, $f14 -/* 0C8634 7F093B04 E5CA0000 */ swc1 $f10, ($t6) -/* 0C8638 7F093B08 C6000004 */ lwc1 $f0, 4($s0) -/* 0C863C 7F093B0C 46007032 */ c.eq.s $f14, $f0 -/* 0C8640 7F093B10 00000000 */ nop -/* 0C8644 7F093B14 45020004 */ bc1fl .L7F093B28 -/* 0C8648 7F093B18 46000406 */ mov.s $f16, $f0 -/* 0C864C 7F093B1C 10000002 */ b .L7F093B28 -/* 0C8650 7F093B20 C4307530 */ lwc1 $f16, %lo(D_80057530)($at) -/* 0C8654 7F093B24 46000406 */ mov.s $f16, $f0 -.L7F093B28: -/* 0C8658 7F093B28 460E803C */ c.lt.s $f16, $f14 -/* 0C865C 7F093B2C 00000000 */ nop -/* 0C8660 7F093B30 4500002D */ bc1f .L7F093BE8 -/* 0C8664 7F093B34 00000000 */ nop -/* 0C8668 7F093B38 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C866C 7F093B3C E7B00024 */ swc1 $f16, 0x24($sp) -/* 0C8670 7F093B40 C4440024 */ lwc1 $f4, 0x24($v0) -/* 0C8674 7F093B44 C6260004 */ lwc1 $f6, 4($s1) -/* 0C8678 7F093B48 C7B00024 */ lwc1 $f16, 0x24($sp) -/* 0C867C 7F093B4C C6000008 */ lwc1 $f0, 8($s0) -/* 0C8680 7F093B50 46062201 */ sub.s $f8, $f4, $f6 -/* 0C8684 7F093B54 C60E0000 */ lwc1 $f14, ($s0) -/* 0C8688 7F093B58 46000282 */ mul.s $f10, $f0, $f0 -/* 0C868C 7F093B5C 00000000 */ nop -/* 0C8690 7F093B60 460E7102 */ mul.s $f4, $f14, $f14 -/* 0C8694 7F093B64 46104083 */ div.s $f2, $f8, $f16 -/* 0C8698 7F093B68 46045300 */ add.s $f12, $f10, $f4 -/* 0C869C 7F093B6C 0C007DF8 */ jal sqrtf -/* 0C86A0 7F093B70 E7A2002C */ swc1 $f2, 0x2c($sp) -/* 0C86A4 7F093B74 C7A2002C */ lwc1 $f2, 0x2c($sp) -/* 0C86A8 7F093B78 3C018005 */ lui $at, %hi(D_80057534) -/* 0C86AC 7F093B7C C4327534 */ lwc1 $f18, %lo(D_80057534)($at) -/* 0C86B0 7F093B80 46020302 */ mul.s $f12, $f0, $f2 -/* 0C86B4 7F093B84 C7B00024 */ lwc1 $f16, 0x24($sp) -/* 0C86B8 7F093B88 460C903C */ c.lt.s $f18, $f12 -/* 0C86BC 7F093B8C 00000000 */ nop -/* 0C86C0 7F093B90 45020005 */ bc1fl .L7F093BA8 -/* 0C86C4 7F093B94 C6080000 */ lwc1 $f8, ($s0) -/* 0C86C8 7F093B98 460C9183 */ div.s $f6, $f18, $f12 -/* 0C86CC 7F093B9C 46061082 */ mul.s $f2, $f2, $f6 -/* 0C86D0 7F093BA0 00000000 */ nop -/* 0C86D4 7F093BA4 C6080000 */ lwc1 $f8, ($s0) -.L7F093BA8: -/* 0C86D8 7F093BA8 C6240000 */ lwc1 $f4, ($s1) -/* 0C86DC 7F093BAC 8FA3003C */ lw $v1, 0x3c($sp) -/* 0C86E0 7F093BB0 46024282 */ mul.s $f10, $f8, $f2 -/* 0C86E4 7F093BB4 24020001 */ li $v0, 1 -/* 0C86E8 7F093BB8 46045180 */ add.s $f6, $f10, $f4 -/* 0C86EC 7F093BBC 46101282 */ mul.s $f10, $f2, $f16 -/* 0C86F0 7F093BC0 E4660000 */ swc1 $f6, ($v1) -/* 0C86F4 7F093BC4 C6280004 */ lwc1 $f8, 4($s1) -/* 0C86F8 7F093BC8 460A4100 */ add.s $f4, $f8, $f10 -/* 0C86FC 7F093BCC E4640004 */ swc1 $f4, 4($v1) -/* 0C8700 7F093BD0 C6060008 */ lwc1 $f6, 8($s0) -/* 0C8704 7F093BD4 C62A0008 */ lwc1 $f10, 8($s1) -/* 0C8708 7F093BD8 46023202 */ mul.s $f8, $f6, $f2 -/* 0C870C 7F093BDC 460A4100 */ add.s $f4, $f8, $f10 -/* 0C8710 7F093BE0 10000001 */ b .L7F093BE8 -/* 0C8714 7F093BE4 E4640008 */ swc1 $f4, 8($v1) -.L7F093BE8: -/* 0C8718 7F093BE8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0C871C 7F093BEC 8FB00014 */ lw $s0, 0x14($sp) -/* 0C8720 7F093BF0 8FB10018 */ lw $s1, 0x18($sp) -/* 0C8724 7F093BF4 03E00008 */ jr $ra -/* 0C8728 7F093BF8 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif + if (sp24 < 0.0f) + { + sp2c = (fogGetCurrentEnvironmentp()->WaterRepeat - campos->y) / sp24; + f12_2 = sqrtf(arg0->f[0] * arg0->f[0] + arg0->f[2] * arg0->f[2]) * sp2c; + + if (f12_2 > 300000) + { + sp2c *= 300000 / f12_2; + } + + arg1->x = campos->x + sp2c * arg0->f[0]; + arg1->y = campos->y + sp2c * sp24; + arg1->z = campos->z + sp2c * arg0->f[2]; + + return TRUE; + } + + return FALSE; +} void sub_GAME_7F093BFC(coord3d *arg0, coord3d* arg1, coord3d* out) @@ -448,6966 +151,2285 @@ void sub_GAME_7F093BFC(coord3d *arg0, coord3d* arg1, coord3d* out) out->z = ((arg1->z - arg0->z) * temp_f0) + arg0->z; } -f32 sub_GAME_7F093C48(f32 a, f32 b, f32 c) +f32 skyClamp(f32 a, f32 b, f32 c) { if (a < b) { return b; } + if (c < a) { return c; } + return a; } - -f32 addpoint5tofloat(f32 arg0) { +f32 skyRound(f32 arg0) +{ return (f32) (s32) (arg0 + 0.5f); } +void skyChooseCloudVtxColour(SkyRelated18 *arg0, f32 arg1) +{ + f32 r = fogGetCurrentEnvironmentp()->Red; + f32 g = fogGetCurrentEnvironmentp()->Green; + f32 b = fogGetCurrentEnvironmentp()->Blue; + u32 unused; + arg0->r = r + fogGetCurrentEnvironmentp()->CloudRed * (1.0f - r / 255.0f) * (1.0f - arg1); + arg0->g = g + fogGetCurrentEnvironmentp()->CloudGreen * (1.0f - g / 255.0f) * (1.0f - arg1); + arg0->b = b + fogGetCurrentEnvironmentp()->CloudBlue * (1.0f - b / 255.0f) * (1.0f - arg1); - -#ifdef NONMATCHING -void sub_GAME_7F093CB0(void) { - + arg0->a = 0xff; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F093CB0 -/* 0C87E0 7F093CB0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C87E4 7F093CB4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C87E8 7F093CB8 AFA40030 */ sw $a0, 0x30($sp) -/* 0C87EC 7F093CBC 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C87F0 7F093CC0 AFA50034 */ sw $a1, 0x34($sp) -/* 0C87F4 7F093CC4 904E0008 */ lbu $t6, 8($v0) -/* 0C87F8 7F093CC8 448E2000 */ mtc1 $t6, $f4 -/* 0C87FC 7F093CCC 05C10005 */ bgez $t6, .L7F093CE4 -/* 0C8800 7F093CD0 468021A0 */ cvt.s.w $f6, $f4 -/* 0C8804 7F093CD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8808 7F093CD8 44814000 */ mtc1 $at, $f8 -/* 0C880C 7F093CDC 00000000 */ nop -/* 0C8810 7F093CE0 46083180 */ add.s $f6, $f6, $f8 -.L7F093CE4: -/* 0C8814 7F093CE4 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8818 7F093CE8 E7A6002C */ swc1 $f6, 0x2c($sp) -/* 0C881C 7F093CEC 904F0009 */ lbu $t7, 9($v0) -/* 0C8820 7F093CF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8824 7F093CF4 448F5000 */ mtc1 $t7, $f10 -/* 0C8828 7F093CF8 05E10004 */ bgez $t7, .L7F093D0C -/* 0C882C 7F093CFC 46805420 */ cvt.s.w $f16, $f10 -/* 0C8830 7F093D00 44819000 */ mtc1 $at, $f18 -/* 0C8834 7F093D04 00000000 */ nop -/* 0C8838 7F093D08 46128400 */ add.s $f16, $f16, $f18 -.L7F093D0C: -/* 0C883C 7F093D0C 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8840 7F093D10 E7B00028 */ swc1 $f16, 0x28($sp) -/* 0C8844 7F093D14 9058000A */ lbu $t8, 0xa($v0) -/* 0C8848 7F093D18 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C884C 7F093D1C 44982000 */ mtc1 $t8, $f4 -/* 0C8850 7F093D20 07010004 */ bgez $t8, .L7F093D34 -/* 0C8854 7F093D24 46802220 */ cvt.s.w $f8, $f4 -/* 0C8858 7F093D28 44813000 */ mtc1 $at, $f6 -/* 0C885C 7F093D2C 00000000 */ nop -/* 0C8860 7F093D30 46064200 */ add.s $f8, $f8, $f6 -.L7F093D34: -/* 0C8864 7F093D34 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8868 7F093D38 E7A80024 */ swc1 $f8, 0x24($sp) -/* 0C886C 7F093D3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C8870 7F093D40 44811000 */ mtc1 $at, $f2 -/* 0C8874 7F093D44 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C8878 7F093D48 44818000 */ mtc1 $at, $f16 -/* 0C887C 7F093D4C C7AC002C */ lwc1 $f12, 0x2c($sp) -/* 0C8880 7F093D50 C4520014 */ lwc1 $f18, 0x14($v0) -/* 0C8884 7F093D54 C7AA0034 */ lwc1 $f10, 0x34($sp) -/* 0C8888 7F093D58 46106103 */ div.s $f4, $f12, $f16 -/* 0C888C 7F093D5C 24080001 */ li $t0, 1 -/* 0C8890 7F093D60 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8894 7F093D64 8FA90030 */ lw $t1, 0x30($sp) -/* 0C8898 7F093D68 460A1001 */ sub.s $f0, $f2, $f10 -/* 0C889C 7F093D6C 46041181 */ sub.s $f6, $f2, $f4 -/* 0C88A0 7F093D70 46069202 */ mul.s $f8, $f18, $f6 -/* 0C88A4 7F093D74 00000000 */ nop -/* 0C88A8 7F093D78 46004282 */ mul.s $f10, $f8, $f0 -/* 0C88AC 7F093D7C 460C5400 */ add.s $f16, $f10, $f12 -/* 0C88B0 7F093D80 4459F800 */ cfc1 $t9, $31 -/* 0C88B4 7F093D84 44C8F800 */ ctc1 $t0, $31 -/* 0C88B8 7F093D88 00000000 */ nop -/* 0C88BC 7F093D8C 46008124 */ cvt.w.s $f4, $f16 -/* 0C88C0 7F093D90 4448F800 */ cfc1 $t0, $31 -/* 0C88C4 7F093D94 00000000 */ nop -/* 0C88C8 7F093D98 31080078 */ andi $t0, $t0, 0x78 -/* 0C88CC 7F093D9C 11000012 */ beqz $t0, .L7F093DE8 -/* 0C88D0 7F093DA0 00000000 */ nop -/* 0C88D4 7F093DA4 44812000 */ mtc1 $at, $f4 -/* 0C88D8 7F093DA8 24080001 */ li $t0, 1 -/* 0C88DC 7F093DAC 46048101 */ sub.s $f4, $f16, $f4 -/* 0C88E0 7F093DB0 44C8F800 */ ctc1 $t0, $31 -/* 0C88E4 7F093DB4 00000000 */ nop -/* 0C88E8 7F093DB8 46002124 */ cvt.w.s $f4, $f4 -/* 0C88EC 7F093DBC 4448F800 */ cfc1 $t0, $31 -/* 0C88F0 7F093DC0 00000000 */ nop -/* 0C88F4 7F093DC4 31080078 */ andi $t0, $t0, 0x78 -/* 0C88F8 7F093DC8 15000005 */ bnez $t0, .L7F093DE0 -/* 0C88FC 7F093DCC 00000000 */ nop -/* 0C8900 7F093DD0 44082000 */ mfc1 $t0, $f4 -/* 0C8904 7F093DD4 3C018000 */ lui $at, 0x8000 -/* 0C8908 7F093DD8 10000007 */ b .L7F093DF8 -/* 0C890C 7F093DDC 01014025 */ or $t0, $t0, $at -.L7F093DE0: -/* 0C8910 7F093DE0 10000005 */ b .L7F093DF8 -/* 0C8914 7F093DE4 2408FFFF */ li $t0, -1 -.L7F093DE8: -/* 0C8918 7F093DE8 44082000 */ mfc1 $t0, $f4 -/* 0C891C 7F093DEC 00000000 */ nop -/* 0C8920 7F093DF0 0500FFFB */ bltz $t0, .L7F093DE0 -/* 0C8924 7F093DF4 00000000 */ nop -.L7F093DF8: -/* 0C8928 7F093DF8 44D9F800 */ ctc1 $t9, $31 -/* 0C892C 7F093DFC A1280014 */ sb $t0, 0x14($t1) -/* 0C8930 7F093E00 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8934 7F093E04 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 0C8938 7F093E08 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C893C 7F093E0C 44819000 */ mtc1 $at, $f18 -/* 0C8940 7F093E10 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C8944 7F093E14 44813000 */ mtc1 $at, $f6 -/* 0C8948 7F093E18 C7A00028 */ lwc1 $f0, 0x28($sp) -/* 0C894C 7F093E1C C4500018 */ lwc1 $f16, 0x18($v0) -/* 0C8950 7F093E20 240B0001 */ li $t3, 1 -/* 0C8954 7F093E24 46060203 */ div.s $f8, $f0, $f6 -/* 0C8958 7F093E28 C7A6001C */ lwc1 $f6, 0x1c($sp) -/* 0C895C 7F093E2C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8960 7F093E30 8FAC0030 */ lw $t4, 0x30($sp) -/* 0C8964 7F093E34 46089281 */ sub.s $f10, $f18, $f8 -/* 0C8968 7F093E38 460A8102 */ mul.s $f4, $f16, $f10 -/* 0C896C 7F093E3C 00000000 */ nop -/* 0C8970 7F093E40 46062482 */ mul.s $f18, $f4, $f6 -/* 0C8974 7F093E44 46009200 */ add.s $f8, $f18, $f0 -/* 0C8978 7F093E48 444AF800 */ cfc1 $t2, $31 -/* 0C897C 7F093E4C 44CBF800 */ ctc1 $t3, $31 -/* 0C8980 7F093E50 00000000 */ nop -/* 0C8984 7F093E54 46004424 */ cvt.w.s $f16, $f8 -/* 0C8988 7F093E58 444BF800 */ cfc1 $t3, $31 -/* 0C898C 7F093E5C 00000000 */ nop -/* 0C8990 7F093E60 316B0078 */ andi $t3, $t3, 0x78 -/* 0C8994 7F093E64 11600012 */ beqz $t3, .L7F093EB0 -/* 0C8998 7F093E68 00000000 */ nop -/* 0C899C 7F093E6C 44818000 */ mtc1 $at, $f16 -/* 0C89A0 7F093E70 240B0001 */ li $t3, 1 -/* 0C89A4 7F093E74 46104401 */ sub.s $f16, $f8, $f16 -/* 0C89A8 7F093E78 44CBF800 */ ctc1 $t3, $31 -/* 0C89AC 7F093E7C 00000000 */ nop -/* 0C89B0 7F093E80 46008424 */ cvt.w.s $f16, $f16 -/* 0C89B4 7F093E84 444BF800 */ cfc1 $t3, $31 -/* 0C89B8 7F093E88 00000000 */ nop -/* 0C89BC 7F093E8C 316B0078 */ andi $t3, $t3, 0x78 -/* 0C89C0 7F093E90 15600005 */ bnez $t3, .L7F093EA8 -/* 0C89C4 7F093E94 00000000 */ nop -/* 0C89C8 7F093E98 440B8000 */ mfc1 $t3, $f16 -/* 0C89CC 7F093E9C 3C018000 */ lui $at, 0x8000 -/* 0C89D0 7F093EA0 10000007 */ b .L7F093EC0 -/* 0C89D4 7F093EA4 01615825 */ or $t3, $t3, $at -.L7F093EA8: -/* 0C89D8 7F093EA8 10000005 */ b .L7F093EC0 -/* 0C89DC 7F093EAC 240BFFFF */ li $t3, -1 -.L7F093EB0: -/* 0C89E0 7F093EB0 440B8000 */ mfc1 $t3, $f16 -/* 0C89E4 7F093EB4 00000000 */ nop -/* 0C89E8 7F093EB8 0560FFFB */ bltz $t3, .L7F093EA8 -/* 0C89EC 7F093EBC 00000000 */ nop -.L7F093EC0: -/* 0C89F0 7F093EC0 44CAF800 */ ctc1 $t2, $31 -/* 0C89F4 7F093EC4 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C89F8 7F093EC8 A18B0015 */ sb $t3, 0x15($t4) -/* 0C89FC 7F093ECC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C8A00 7F093ED0 44815000 */ mtc1 $at, $f10 -/* 0C8A04 7F093ED4 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C8A08 7F093ED8 44812000 */ mtc1 $at, $f4 -/* 0C8A0C 7F093EDC C7A00024 */ lwc1 $f0, 0x24($sp) -/* 0C8A10 7F093EE0 C448001C */ lwc1 $f8, 0x1c($v0) -/* 0C8A14 7F093EE4 240E0001 */ li $t6, 1 -/* 0C8A18 7F093EE8 46040183 */ div.s $f6, $f0, $f4 -/* 0C8A1C 7F093EEC C7A4001C */ lwc1 $f4, 0x1c($sp) -/* 0C8A20 7F093EF0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8A24 7F093EF4 8FAF0030 */ lw $t7, 0x30($sp) -/* 0C8A28 7F093EF8 241800FF */ li $t8, 255 -/* 0C8A2C 7F093EFC 46065481 */ sub.s $f18, $f10, $f6 -/* 0C8A30 7F093F00 46124402 */ mul.s $f16, $f8, $f18 -/* 0C8A34 7F093F04 00000000 */ nop -/* 0C8A38 7F093F08 46048282 */ mul.s $f10, $f16, $f4 -/* 0C8A3C 7F093F0C 46005180 */ add.s $f6, $f10, $f0 -/* 0C8A40 7F093F10 444DF800 */ cfc1 $t5, $31 -/* 0C8A44 7F093F14 44CEF800 */ ctc1 $t6, $31 -/* 0C8A48 7F093F18 00000000 */ nop -/* 0C8A4C 7F093F1C 46003224 */ cvt.w.s $f8, $f6 -/* 0C8A50 7F093F20 444EF800 */ cfc1 $t6, $31 -/* 0C8A54 7F093F24 00000000 */ nop -/* 0C8A58 7F093F28 31CE0078 */ andi $t6, $t6, 0x78 -/* 0C8A5C 7F093F2C 11C00012 */ beqz $t6, .L7F093F78 -/* 0C8A60 7F093F30 00000000 */ nop -/* 0C8A64 7F093F34 44814000 */ mtc1 $at, $f8 -/* 0C8A68 7F093F38 240E0001 */ li $t6, 1 -/* 0C8A6C 7F093F3C 46083201 */ sub.s $f8, $f6, $f8 -/* 0C8A70 7F093F40 44CEF800 */ ctc1 $t6, $31 -/* 0C8A74 7F093F44 00000000 */ nop -/* 0C8A78 7F093F48 46004224 */ cvt.w.s $f8, $f8 -/* 0C8A7C 7F093F4C 444EF800 */ cfc1 $t6, $31 -/* 0C8A80 7F093F50 00000000 */ nop -/* 0C8A84 7F093F54 31CE0078 */ andi $t6, $t6, 0x78 -/* 0C8A88 7F093F58 15C00005 */ bnez $t6, .L7F093F70 -/* 0C8A8C 7F093F5C 00000000 */ nop -/* 0C8A90 7F093F60 440E4000 */ mfc1 $t6, $f8 -/* 0C8A94 7F093F64 3C018000 */ lui $at, 0x8000 -/* 0C8A98 7F093F68 10000007 */ b .L7F093F88 -/* 0C8A9C 7F093F6C 01C17025 */ or $t6, $t6, $at -.L7F093F70: -/* 0C8AA0 7F093F70 10000005 */ b .L7F093F88 -/* 0C8AA4 7F093F74 240EFFFF */ li $t6, -1 -.L7F093F78: -/* 0C8AA8 7F093F78 440E4000 */ mfc1 $t6, $f8 -/* 0C8AAC 7F093F7C 00000000 */ nop -/* 0C8AB0 7F093F80 05C0FFFB */ bltz $t6, .L7F093F70 -/* 0C8AB4 7F093F84 00000000 */ nop -.L7F093F88: -/* 0C8AB8 7F093F88 A1EE0016 */ sb $t6, 0x16($t7) -/* 0C8ABC 7F093F8C A1F80017 */ sb $t8, 0x17($t7) -/* 0C8AC0 7F093F90 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C8AC4 7F093F94 44CDF800 */ ctc1 $t5, $31 -/* 0C8AC8 7F093F98 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0C8ACC 7F093F9C 03E00008 */ jr $ra -/* 0C8AD0 7F093FA0 00000000 */ nop -) -#endif +void sub_GAME_7F093FA4(SkyRelated18 *arg0, f32 arg1) +{ + f32 r = fogGetCurrentEnvironmentp()->Red; + f32 g = fogGetCurrentEnvironmentp()->Green; + f32 b = fogGetCurrentEnvironmentp()->Blue; + u32 unused; - - -#ifdef NONMATCHING -void sub_GAME_7F093FA4(void) { - + arg0->r = r + fogGetCurrentEnvironmentp()->WaterRed * (1.0f - r / 255.0f) * (1.0f - arg1); + arg0->g = g + fogGetCurrentEnvironmentp()->WaterGreen * (1.0f - g / 255.0f) * (1.0f - arg1); + arg0->b = b + fogGetCurrentEnvironmentp()->WaterBlue * (1.0f - b / 255.0f) * (1.0f - arg1); + arg0->a = 0xff; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F093FA4 -/* 0C8AD4 7F093FA4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C8AD8 7F093FA8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C8ADC 7F093FAC AFA40030 */ sw $a0, 0x30($sp) -/* 0C8AE0 7F093FB0 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8AE4 7F093FB4 AFA50034 */ sw $a1, 0x34($sp) -/* 0C8AE8 7F093FB8 904E0008 */ lbu $t6, 8($v0) -/* 0C8AEC 7F093FBC 448E2000 */ mtc1 $t6, $f4 -/* 0C8AF0 7F093FC0 05C10005 */ bgez $t6, .L7F093FD8 -/* 0C8AF4 7F093FC4 468021A0 */ cvt.s.w $f6, $f4 -/* 0C8AF8 7F093FC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8AFC 7F093FCC 44814000 */ mtc1 $at, $f8 -/* 0C8B00 7F093FD0 00000000 */ nop -/* 0C8B04 7F093FD4 46083180 */ add.s $f6, $f6, $f8 -.L7F093FD8: -/* 0C8B08 7F093FD8 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8B0C 7F093FDC E7A6002C */ swc1 $f6, 0x2c($sp) -/* 0C8B10 7F093FE0 904F0009 */ lbu $t7, 9($v0) -/* 0C8B14 7F093FE4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8B18 7F093FE8 448F5000 */ mtc1 $t7, $f10 -/* 0C8B1C 7F093FEC 05E10004 */ bgez $t7, .L7F094000 -/* 0C8B20 7F093FF0 46805420 */ cvt.s.w $f16, $f10 -/* 0C8B24 7F093FF4 44819000 */ mtc1 $at, $f18 -/* 0C8B28 7F093FF8 00000000 */ nop -/* 0C8B2C 7F093FFC 46128400 */ add.s $f16, $f16, $f18 -.L7F094000: -/* 0C8B30 7F094000 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8B34 7F094004 E7B00028 */ swc1 $f16, 0x28($sp) -/* 0C8B38 7F094008 9058000A */ lbu $t8, 0xa($v0) -/* 0C8B3C 7F09400C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C8B40 7F094010 44982000 */ mtc1 $t8, $f4 -/* 0C8B44 7F094014 07010004 */ bgez $t8, .L7F094028 -/* 0C8B48 7F094018 46802220 */ cvt.s.w $f8, $f4 -/* 0C8B4C 7F09401C 44813000 */ mtc1 $at, $f6 -/* 0C8B50 7F094020 00000000 */ nop -/* 0C8B54 7F094024 46064200 */ add.s $f8, $f8, $f6 -.L7F094028: -/* 0C8B58 7F094028 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8B5C 7F09402C E7A80024 */ swc1 $f8, 0x24($sp) -/* 0C8B60 7F094030 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C8B64 7F094034 44811000 */ mtc1 $at, $f2 -/* 0C8B68 7F094038 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C8B6C 7F09403C 44818000 */ mtc1 $at, $f16 -/* 0C8B70 7F094040 C7AC002C */ lwc1 $f12, 0x2c($sp) -/* 0C8B74 7F094044 C452002C */ lwc1 $f18, 0x2c($v0) -/* 0C8B78 7F094048 C7AA0034 */ lwc1 $f10, 0x34($sp) -/* 0C8B7C 7F09404C 46106103 */ div.s $f4, $f12, $f16 -/* 0C8B80 7F094050 24080001 */ li $t0, 1 -/* 0C8B84 7F094054 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8B88 7F094058 8FA90030 */ lw $t1, 0x30($sp) -/* 0C8B8C 7F09405C 460A1001 */ sub.s $f0, $f2, $f10 -/* 0C8B90 7F094060 46041181 */ sub.s $f6, $f2, $f4 -/* 0C8B94 7F094064 46069202 */ mul.s $f8, $f18, $f6 -/* 0C8B98 7F094068 00000000 */ nop -/* 0C8B9C 7F09406C 46004282 */ mul.s $f10, $f8, $f0 -/* 0C8BA0 7F094070 460C5400 */ add.s $f16, $f10, $f12 -/* 0C8BA4 7F094074 4459F800 */ cfc1 $t9, $31 -/* 0C8BA8 7F094078 44C8F800 */ ctc1 $t0, $31 -/* 0C8BAC 7F09407C 00000000 */ nop -/* 0C8BB0 7F094080 46008124 */ cvt.w.s $f4, $f16 -/* 0C8BB4 7F094084 4448F800 */ cfc1 $t0, $31 -/* 0C8BB8 7F094088 00000000 */ nop -/* 0C8BBC 7F09408C 31080078 */ andi $t0, $t0, 0x78 -/* 0C8BC0 7F094090 11000012 */ beqz $t0, .L7F0940DC -/* 0C8BC4 7F094094 00000000 */ nop -/* 0C8BC8 7F094098 44812000 */ mtc1 $at, $f4 -/* 0C8BCC 7F09409C 24080001 */ li $t0, 1 -/* 0C8BD0 7F0940A0 46048101 */ sub.s $f4, $f16, $f4 -/* 0C8BD4 7F0940A4 44C8F800 */ ctc1 $t0, $31 -/* 0C8BD8 7F0940A8 00000000 */ nop -/* 0C8BDC 7F0940AC 46002124 */ cvt.w.s $f4, $f4 -/* 0C8BE0 7F0940B0 4448F800 */ cfc1 $t0, $31 -/* 0C8BE4 7F0940B4 00000000 */ nop -/* 0C8BE8 7F0940B8 31080078 */ andi $t0, $t0, 0x78 -/* 0C8BEC 7F0940BC 15000005 */ bnez $t0, .L7F0940D4 -/* 0C8BF0 7F0940C0 00000000 */ nop -/* 0C8BF4 7F0940C4 44082000 */ mfc1 $t0, $f4 -/* 0C8BF8 7F0940C8 3C018000 */ lui $at, 0x8000 -/* 0C8BFC 7F0940CC 10000007 */ b .L7F0940EC -/* 0C8C00 7F0940D0 01014025 */ or $t0, $t0, $at -.L7F0940D4: -/* 0C8C04 7F0940D4 10000005 */ b .L7F0940EC -/* 0C8C08 7F0940D8 2408FFFF */ li $t0, -1 -.L7F0940DC: -/* 0C8C0C 7F0940DC 44082000 */ mfc1 $t0, $f4 -/* 0C8C10 7F0940E0 00000000 */ nop -/* 0C8C14 7F0940E4 0500FFFB */ bltz $t0, .L7F0940D4 -/* 0C8C18 7F0940E8 00000000 */ nop -.L7F0940EC: -/* 0C8C1C 7F0940EC 44D9F800 */ ctc1 $t9, $31 -/* 0C8C20 7F0940F0 A1280014 */ sb $t0, 0x14($t1) -/* 0C8C24 7F0940F4 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8C28 7F0940F8 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 0C8C2C 7F0940FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C8C30 7F094100 44819000 */ mtc1 $at, $f18 -/* 0C8C34 7F094104 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C8C38 7F094108 44813000 */ mtc1 $at, $f6 -/* 0C8C3C 7F09410C C7A00028 */ lwc1 $f0, 0x28($sp) -/* 0C8C40 7F094110 C4500030 */ lwc1 $f16, 0x30($v0) -/* 0C8C44 7F094114 240B0001 */ li $t3, 1 -/* 0C8C48 7F094118 46060203 */ div.s $f8, $f0, $f6 -/* 0C8C4C 7F09411C C7A6001C */ lwc1 $f6, 0x1c($sp) -/* 0C8C50 7F094120 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8C54 7F094124 8FAC0030 */ lw $t4, 0x30($sp) -/* 0C8C58 7F094128 46089281 */ sub.s $f10, $f18, $f8 -/* 0C8C5C 7F09412C 460A8102 */ mul.s $f4, $f16, $f10 -/* 0C8C60 7F094130 00000000 */ nop -/* 0C8C64 7F094134 46062482 */ mul.s $f18, $f4, $f6 -/* 0C8C68 7F094138 46009200 */ add.s $f8, $f18, $f0 -/* 0C8C6C 7F09413C 444AF800 */ cfc1 $t2, $31 -/* 0C8C70 7F094140 44CBF800 */ ctc1 $t3, $31 -/* 0C8C74 7F094144 00000000 */ nop -/* 0C8C78 7F094148 46004424 */ cvt.w.s $f16, $f8 -/* 0C8C7C 7F09414C 444BF800 */ cfc1 $t3, $31 -/* 0C8C80 7F094150 00000000 */ nop -/* 0C8C84 7F094154 316B0078 */ andi $t3, $t3, 0x78 -/* 0C8C88 7F094158 11600012 */ beqz $t3, .L7F0941A4 -/* 0C8C8C 7F09415C 00000000 */ nop -/* 0C8C90 7F094160 44818000 */ mtc1 $at, $f16 -/* 0C8C94 7F094164 240B0001 */ li $t3, 1 -/* 0C8C98 7F094168 46104401 */ sub.s $f16, $f8, $f16 -/* 0C8C9C 7F09416C 44CBF800 */ ctc1 $t3, $31 -/* 0C8CA0 7F094170 00000000 */ nop -/* 0C8CA4 7F094174 46008424 */ cvt.w.s $f16, $f16 -/* 0C8CA8 7F094178 444BF800 */ cfc1 $t3, $31 -/* 0C8CAC 7F09417C 00000000 */ nop -/* 0C8CB0 7F094180 316B0078 */ andi $t3, $t3, 0x78 -/* 0C8CB4 7F094184 15600005 */ bnez $t3, .L7F09419C -/* 0C8CB8 7F094188 00000000 */ nop -/* 0C8CBC 7F09418C 440B8000 */ mfc1 $t3, $f16 -/* 0C8CC0 7F094190 3C018000 */ lui $at, 0x8000 -/* 0C8CC4 7F094194 10000007 */ b .L7F0941B4 -/* 0C8CC8 7F094198 01615825 */ or $t3, $t3, $at -.L7F09419C: -/* 0C8CCC 7F09419C 10000005 */ b .L7F0941B4 -/* 0C8CD0 7F0941A0 240BFFFF */ li $t3, -1 -.L7F0941A4: -/* 0C8CD4 7F0941A4 440B8000 */ mfc1 $t3, $f16 -/* 0C8CD8 7F0941A8 00000000 */ nop -/* 0C8CDC 7F0941AC 0560FFFB */ bltz $t3, .L7F09419C -/* 0C8CE0 7F0941B0 00000000 */ nop -.L7F0941B4: -/* 0C8CE4 7F0941B4 44CAF800 */ ctc1 $t2, $31 -/* 0C8CE8 7F0941B8 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8CEC 7F0941BC A18B0015 */ sb $t3, 0x15($t4) -/* 0C8CF0 7F0941C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C8CF4 7F0941C4 44815000 */ mtc1 $at, $f10 -/* 0C8CF8 7F0941C8 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 0C8CFC 7F0941CC 44812000 */ mtc1 $at, $f4 -/* 0C8D00 7F0941D0 C7A00024 */ lwc1 $f0, 0x24($sp) -/* 0C8D04 7F0941D4 C4480034 */ lwc1 $f8, 0x34($v0) -/* 0C8D08 7F0941D8 240E0001 */ li $t6, 1 -/* 0C8D0C 7F0941DC 46040183 */ div.s $f6, $f0, $f4 -/* 0C8D10 7F0941E0 C7A4001C */ lwc1 $f4, 0x1c($sp) -/* 0C8D14 7F0941E4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8D18 7F0941E8 8FAF0030 */ lw $t7, 0x30($sp) -/* 0C8D1C 7F0941EC 241800FF */ li $t8, 255 -/* 0C8D20 7F0941F0 46065481 */ sub.s $f18, $f10, $f6 -/* 0C8D24 7F0941F4 46124402 */ mul.s $f16, $f8, $f18 -/* 0C8D28 7F0941F8 00000000 */ nop -/* 0C8D2C 7F0941FC 46048282 */ mul.s $f10, $f16, $f4 -/* 0C8D30 7F094200 46005180 */ add.s $f6, $f10, $f0 -/* 0C8D34 7F094204 444DF800 */ cfc1 $t5, $31 -/* 0C8D38 7F094208 44CEF800 */ ctc1 $t6, $31 -/* 0C8D3C 7F09420C 00000000 */ nop -/* 0C8D40 7F094210 46003224 */ cvt.w.s $f8, $f6 -/* 0C8D44 7F094214 444EF800 */ cfc1 $t6, $31 -/* 0C8D48 7F094218 00000000 */ nop -/* 0C8D4C 7F09421C 31CE0078 */ andi $t6, $t6, 0x78 -/* 0C8D50 7F094220 11C00012 */ beqz $t6, .L7F09426C -/* 0C8D54 7F094224 00000000 */ nop -/* 0C8D58 7F094228 44814000 */ mtc1 $at, $f8 -/* 0C8D5C 7F09422C 240E0001 */ li $t6, 1 -/* 0C8D60 7F094230 46083201 */ sub.s $f8, $f6, $f8 -/* 0C8D64 7F094234 44CEF800 */ ctc1 $t6, $31 -/* 0C8D68 7F094238 00000000 */ nop -/* 0C8D6C 7F09423C 46004224 */ cvt.w.s $f8, $f8 -/* 0C8D70 7F094240 444EF800 */ cfc1 $t6, $31 -/* 0C8D74 7F094244 00000000 */ nop -/* 0C8D78 7F094248 31CE0078 */ andi $t6, $t6, 0x78 -/* 0C8D7C 7F09424C 15C00005 */ bnez $t6, .L7F094264 -/* 0C8D80 7F094250 00000000 */ nop -/* 0C8D84 7F094254 440E4000 */ mfc1 $t6, $f8 -/* 0C8D88 7F094258 3C018000 */ lui $at, 0x8000 -/* 0C8D8C 7F09425C 10000007 */ b .L7F09427C -/* 0C8D90 7F094260 01C17025 */ or $t6, $t6, $at -.L7F094264: -/* 0C8D94 7F094264 10000005 */ b .L7F09427C -/* 0C8D98 7F094268 240EFFFF */ li $t6, -1 -.L7F09426C: -/* 0C8D9C 7F09426C 440E4000 */ mfc1 $t6, $f8 -/* 0C8DA0 7F094270 00000000 */ nop -/* 0C8DA4 7F094274 05C0FFFB */ bltz $t6, .L7F094264 -/* 0C8DA8 7F094278 00000000 */ nop -.L7F09427C: -/* 0C8DAC 7F09427C A1EE0016 */ sb $t6, 0x16($t7) -/* 0C8DB0 7F094280 A1F80017 */ sb $t8, 0x17($t7) -/* 0C8DB4 7F094284 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C8DB8 7F094288 44CDF800 */ ctc1 $t5, $31 -/* 0C8DBC 7F09428C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0C8DC0 7F094290 03E00008 */ jr $ra -/* 0C8DC4 7F094294 00000000 */ nop -) -#endif +u32 sub_GAME_7F094298(f32 arg0) +{ + u32 result; + if (arg0 > 32767.9f) { arg0 = 32767.9f; } + if (arg0 < -32767.9f) { arg0 = -32767.9f; } + if (arg0 < 0) + { + result = arg0 * -65536; + result = -result; + } + else + { + result = 65536 * arg0; + } -#ifdef NONMATCHING -void sub_GAME_7F094298(void) { - + return result; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80057538 -.word 0x46ffffcd /*32767.9*/ -glabel D_8005753C -.word 0xc6ffffcd /*-32767.9*/ - -.text -glabel sub_GAME_7F094298 -/* 0C8DC8 7F094298 3C018005 */ lui $at, %hi(D_80057538) -/* 0C8DCC 7F09429C C4207538 */ lwc1 $f0, %lo(D_80057538)($at) -/* 0C8DD0 7F0942A0 44802000 */ mtc1 $zero, $f4 -/* 0C8DD4 7F0942A4 3C018005 */ lui $at, %hi(D_8005753C) -/* 0C8DD8 7F0942A8 460C003C */ c.lt.s $f0, $f12 -/* 0C8DDC 7F0942AC 00000000 */ nop -/* 0C8DE0 7F0942B0 45000002 */ bc1f .L7F0942BC -/* 0C8DE4 7F0942B4 00000000 */ nop -/* 0C8DE8 7F0942B8 46000306 */ mov.s $f12, $f0 -.L7F0942BC: -/* 0C8DEC 7F0942BC C420753C */ lwc1 $f0, %lo(D_8005753C)($at) -/* 0C8DF0 7F0942C0 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0C8DF4 7F0942C4 4600603C */ c.lt.s $f12, $f0 -/* 0C8DF8 7F0942C8 00000000 */ nop -/* 0C8DFC 7F0942CC 45020003 */ bc1fl .L7F0942DC -/* 0C8E00 7F0942D0 4604603C */ c.lt.s $f12, $f4 -/* 0C8E04 7F0942D4 46000306 */ mov.s $f12, $f0 -/* 0C8E08 7F0942D8 4604603C */ c.lt.s $f12, $f4 -.L7F0942DC: -/* 0C8E0C 7F0942DC 00000000 */ nop -/* 0C8E10 7F0942E0 4502002C */ bc1fl .L7F094394 -/* 0C8E14 7F0942E4 44818000 */ mtc1 $at, $f16 -/* 0C8E18 7F0942E8 3C01C780 */ li $at, 0xC7800000 # -65536.000000 -/* 0C8E1C 7F0942EC 44813000 */ mtc1 $at, $f6 -/* 0C8E20 7F0942F0 24030001 */ li $v1, 1 -/* 0C8E24 7F0942F4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8E28 7F0942F8 46066202 */ mul.s $f8, $f12, $f6 -/* 0C8E2C 7F0942FC 444EF800 */ cfc1 $t6, $31 -/* 0C8E30 7F094300 44C3F800 */ ctc1 $v1, $31 -/* 0C8E34 7F094304 00000000 */ nop -/* 0C8E38 7F094308 460042A4 */ cvt.w.s $f10, $f8 -/* 0C8E3C 7F09430C 4443F800 */ cfc1 $v1, $31 -/* 0C8E40 7F094310 00000000 */ nop -/* 0C8E44 7F094314 30630078 */ andi $v1, $v1, 0x78 -/* 0C8E48 7F094318 50600017 */ beql $v1, $zero, .L7F094378 -/* 0C8E4C 7F09431C 44035000 */ mfc1 $v1, $f10 -/* 0C8E50 7F094320 44815000 */ mtc1 $at, $f10 -/* 0C8E54 7F094324 24030001 */ li $v1, 1 -/* 0C8E58 7F094328 460A4281 */ sub.s $f10, $f8, $f10 -/* 0C8E5C 7F09432C 44C3F800 */ ctc1 $v1, $31 -/* 0C8E60 7F094330 00000000 */ nop -/* 0C8E64 7F094334 460052A4 */ cvt.w.s $f10, $f10 -/* 0C8E68 7F094338 4443F800 */ cfc1 $v1, $31 -/* 0C8E6C 7F09433C 00000000 */ nop -/* 0C8E70 7F094340 30630078 */ andi $v1, $v1, 0x78 -/* 0C8E74 7F094344 54600008 */ bnezl $v1, .L7F094368 -/* 0C8E78 7F094348 2403FFFF */ li $v1, -1 -/* 0C8E7C 7F09434C 44035000 */ mfc1 $v1, $f10 -/* 0C8E80 7F094350 3C018000 */ lui $at, 0x8000 -/* 0C8E84 7F094354 44CEF800 */ ctc1 $t6, $31 -/* 0C8E88 7F094358 00611825 */ or $v1, $v1, $at -/* 0C8E8C 7F09435C 03E00008 */ jr $ra -/* 0C8E90 7F094360 00031023 */ negu $v0, $v1 - -/* 0C8E94 7F094364 2403FFFF */ li $v1, -1 -.L7F094368: -/* 0C8E98 7F094368 44CEF800 */ ctc1 $t6, $31 -/* 0C8E9C 7F09436C 03E00008 */ jr $ra -/* 0C8EA0 7F094370 00031023 */ negu $v0, $v1 - -/* 0C8EA4 7F094374 44035000 */ mfc1 $v1, $f10 -.L7F094378: -/* 0C8EA8 7F094378 00000000 */ nop -/* 0C8EAC 7F09437C 0462FFFA */ bltzl $v1, .L7F094368 -/* 0C8EB0 7F094380 2403FFFF */ li $v1, -1 -/* 0C8EB4 7F094384 44CEF800 */ ctc1 $t6, $31 -/* 0C8EB8 7F094388 03E00008 */ jr $ra -/* 0C8EBC 7F09438C 00031023 */ negu $v0, $v1 - -/* 0C8EC0 7F094390 44818000 */ mtc1 $at, $f16 -.L7F094394: -/* 0C8EC4 7F094394 24030001 */ li $v1, 1 -/* 0C8EC8 7F094398 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C8ECC 7F09439C 460C8482 */ mul.s $f18, $f16, $f12 -/* 0C8ED0 7F0943A0 444FF800 */ cfc1 $t7, $31 -/* 0C8ED4 7F0943A4 44C3F800 */ ctc1 $v1, $31 -/* 0C8ED8 7F0943A8 00000000 */ nop -/* 0C8EDC 7F0943AC 46009124 */ cvt.w.s $f4, $f18 -/* 0C8EE0 7F0943B0 4443F800 */ cfc1 $v1, $31 -/* 0C8EE4 7F0943B4 00000000 */ nop -/* 0C8EE8 7F0943B8 30630078 */ andi $v1, $v1, 0x78 -/* 0C8EEC 7F0943BC 50600013 */ beql $v1, $zero, .L7F09440C -/* 0C8EF0 7F0943C0 44032000 */ mfc1 $v1, $f4 -/* 0C8EF4 7F0943C4 44812000 */ mtc1 $at, $f4 -/* 0C8EF8 7F0943C8 24030001 */ li $v1, 1 -/* 0C8EFC 7F0943CC 46049101 */ sub.s $f4, $f18, $f4 -/* 0C8F00 7F0943D0 44C3F800 */ ctc1 $v1, $31 -/* 0C8F04 7F0943D4 00000000 */ nop -/* 0C8F08 7F0943D8 46002124 */ cvt.w.s $f4, $f4 -/* 0C8F0C 7F0943DC 4443F800 */ cfc1 $v1, $31 -/* 0C8F10 7F0943E0 00000000 */ nop -/* 0C8F14 7F0943E4 30630078 */ andi $v1, $v1, 0x78 -/* 0C8F18 7F0943E8 14600005 */ bnez $v1, .L7F094400 -/* 0C8F1C 7F0943EC 00000000 */ nop -/* 0C8F20 7F0943F0 44032000 */ mfc1 $v1, $f4 -/* 0C8F24 7F0943F4 3C018000 */ lui $at, 0x8000 -/* 0C8F28 7F0943F8 10000007 */ b .L7F094418 -/* 0C8F2C 7F0943FC 00611825 */ or $v1, $v1, $at -.L7F094400: -/* 0C8F30 7F094400 10000005 */ b .L7F094418 -/* 0C8F34 7F094404 2403FFFF */ li $v1, -1 -/* 0C8F38 7F094408 44032000 */ mfc1 $v1, $f4 -.L7F09440C: -/* 0C8F3C 7F09440C 00000000 */ nop -/* 0C8F40 7F094410 0460FFFB */ bltz $v1, .L7F094400 -/* 0C8F44 7F094414 00000000 */ nop -.L7F094418: -/* 0C8F48 7F094418 44CFF800 */ ctc1 $t7, $31 -/* 0C8F4C 7F09441C 00000000 */ nop -/* 0C8F50 7F094420 00000000 */ nop -/* 0C8F54 7F094424 03E00008 */ jr $ra -/* 0C8F58 7F094428 00601025 */ move $v0, $v1 -) -#endif - - - -void store_stagenum_to_copyof_stagenum(s32 stagenum) { - copyof_stagenum = stagenum; +void skySetStageNum(s32 stagenum) { + g_SkyStageNum = stagenum; } void sub_GAME_7F094438(void) { #if defined(VERSION_EU) - D_8003FD94[0] = (g_GlobalTimerDelta + D_8003FD94[0]); + g_SkyCloudOffset += g_GlobalTimerDelta; #else - D_8003FD94[0] = (g_ClockTimer + D_8003FD94[0]); + g_SkyCloudOffset += g_ClockTimer; #endif - if ( D_8003FD94[0] > 4096.0f) + if ( g_SkyCloudOffset > 4096.0f) { - D_8003FD94[0] -= 4096.0f; + g_SkyCloudOffset -= 4096.0f; } } +Gfx *skyRender(Gfx *gdl) +{ + coord3d sp6a4; + coord3d sp698; + coord3d sp68c; + coord3d sp680; + coord3d sp674; + coord3d sp668; + coord3d sp65c; + coord3d sp650; + coord3d sp644; + coord3d sp638; + coord3d sp62c; + coord3d sp620; + coord3d sp614; + coord3d sp608; + coord3d sp5fc; + coord3d sp5f0; + coord3d sp5e4; + coord3d sp5d8; + coord3d sp5cc; + coord3d sp5c0; + coord3d sp5b4; + coord3d sp5a8; + coord3d sp59c; + coord3d sp590; + f32 sp58c; + f32 sp588; + f32 sp584; + f32 sp580; + f32 sp57c; + f32 sp578; + f32 sp574; + f32 sp570; + f32 sp56c; + f32 sp568; + f32 sp564; + f32 sp560; + f32 sp55c; + f32 sp558; + f32 sp554; + f32 sp550; + f32 sp54c; + f32 sp548; + s32 s1; + s32 j; + s32 k; + s32 sp538; + s32 sp534; + s32 sp530; + s32 sp52c; + SkyRelated18 sp4b4[5]; + SkyRelated18 sp43c[5]; + f32 tmp; + f32 scale; + bool sp430; + struct CurrentEnvironmentRecord *env; + scale = get_room_data_float1() / 30.0f; + sp430 = FALSE; + env = fogGetCurrentEnvironmentp(); + if (!fogGetCurrentEnvironmentp()->Clouds) + { + if (getPlayerCount() == 1) + { + gDPSetCycleType(gdl++, G_CYC_FILL); -#ifdef NONMATCHING -void sub_GAME_7F094488(void) { + gdl = viSetFillColor(gdl, env->Red, env->Green, env->Blue); + gDPFillRectangle(gdl++, viGetViewLeft(), viGetViewTop(), + viGetViewLeft() + viGetViewWidth() - 1, + viGetViewTop() + viGetViewHeight() - 1); + + gDPPipeSync(gdl++); + return gdl; + } + + gDPPipeSync(gdl++); + gDPSetCycleType(gdl++, G_CYC_FILL); + + gDPSetRenderMode(gdl++, G_RM_NOOP, G_RM_NOOP2); + + gDPFillRectangle(gdl++, + g_CurrentPlayer->viewleft, g_CurrentPlayer->viewtop, + (g_CurrentPlayer->viewleft + g_CurrentPlayer->viewx) - 1, + (g_CurrentPlayer->viewtop + g_CurrentPlayer->viewy) - 1); + + gDPPipeSync(gdl++); + return gdl; + } + + gdl = viSetFillColor(gdl, env->Red, env->Green, env->Blue); + + if (&sp6a4); + + sub_GAME_7F093880(0.0f, 0.0f, &sp6a4); + sub_GAME_7F093880(getPlayer_c_screenwidth() - 0.1f, 0.0f, &sp698); + sub_GAME_7F093880(0.0f, getPlayer_c_screenheight() - 0.1f, &sp68c); + sub_GAME_7F093880(getPlayer_c_screenwidth() - 0.1f, getPlayer_c_screenheight() - 0.1f, &sp680); + + sp538 = sub_GAME_7F0938FC(&sp6a4, &sp644, &sp58c); + sp534 = sub_GAME_7F0938FC(&sp698, &sp638, &sp588); + sp530 = sub_GAME_7F0938FC(&sp68c, &sp62c, &sp584); + sp52c = sub_GAME_7F0938FC(&sp680, &sp620, &sp580); + + sub_GAME_7F093A78(&sp6a4, &sp5e4, &sp56c); + sub_GAME_7F093A78(&sp698, &sp5d8, &sp568); + sub_GAME_7F093A78(&sp68c, &sp5cc, &sp564); + sub_GAME_7F093A78(&sp680, &sp5c0, &sp560); + + if (sp538 != sp530) + { + sp54c = getPlayer_c_screentop() + getPlayer_c_screenheight() * (sp6a4.f[1] / (sp6a4.f[1] - sp68c.f[1])); + + sub_GAME_7F093880(0.0f, sp54c, &sp65c); + sub_GAME_7F093BFC(&sp6a4, &sp68c, &sp65c); + sub_GAME_7F0938FC(&sp65c, &sp5fc, &sp574); + sub_GAME_7F093A78(&sp65c, &sp59c, &sp554); + } + else + { + sp54c = 0.0f; + } + + if (sp534 != sp52c) + { + sp548 = getPlayer_c_screentop() + getPlayer_c_screenheight() * (sp698.f[1] / (sp698.f[1] - sp680.f[1])); + + sub_GAME_7F093880(getPlayer_c_screenwidth() - 0.1f, sp548, &sp650); + sub_GAME_7F093BFC(&sp698, &sp680, &sp650); + sub_GAME_7F0938FC(&sp650, &sp5f0, &sp570); + sub_GAME_7F093A78(&sp650, &sp590, &sp550); + } + else + { + sp548 = 0.0f; + } + + if (sp538 != sp534) + { + sub_GAME_7F093880(getPlayer_c_screenleft() + getPlayer_c_screenwidth() * (sp6a4.f[1] / (sp6a4.f[1] - sp698.f[1])), 0.0f, &sp674); + sub_GAME_7F093BFC(&sp6a4, &sp698, &sp674); + sub_GAME_7F0938FC(&sp674, &sp614, &sp57c); + sub_GAME_7F093A78(&sp674, &sp5b4, &sp55c); + } + + if (sp530 != sp52c) + { + tmp = getPlayer_c_screenleft() + getPlayer_c_screenwidth() * (sp68c.f[1] / (sp68c.f[1] - sp680.f[1])); + + sub_GAME_7F093880(tmp, getPlayer_c_screenheight() - 0.1f, &sp668); + sub_GAME_7F093BFC(&sp68c, &sp680, &sp668); + sub_GAME_7F0938FC(&sp668, &sp608, &sp578); + sub_GAME_7F093A78(&sp668, &sp5a8, &sp558); + } + + switch ((sp538 << 3) | (sp534 << 2) | (sp530 << 1) | sp52c) + { + case 15: + s1 = 0; + break; + + case 0: + s1 = 4; + sp43c[0].unk00 = sp5e4.f[0] * scale; + sp43c[0].unk04 = sp5e4.f[1] * scale; + sp43c[0].unk08 = sp5e4.f[2] * scale; + sp43c[1].unk00 = sp5d8.f[0] * scale; + sp43c[1].unk04 = sp5d8.f[1] * scale; + sp43c[1].unk08 = sp5d8.f[2] * scale; + sp43c[2].unk00 = sp5cc.f[0] * scale; + sp43c[2].unk04 = sp5cc.f[1] * scale; + sp43c[2].unk08 = sp5cc.f[2] * scale; + sp43c[3].unk00 = sp5c0.f[0] * scale; + sp43c[3].unk04 = sp5c0.f[1] * scale; + sp43c[3].unk08 = sp5c0.f[2] * scale; + sp43c[0].unk0c = sp5e4.f[0]; + sp43c[0].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5d8.f[0]; + sp43c[1].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5cc.f[0]; + sp43c[2].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp5c0.f[0]; + sp43c[3].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp56c); + sub_GAME_7F093FA4(&sp43c[1], sp568); + sub_GAME_7F093FA4(&sp43c[2], sp564); + sub_GAME_7F093FA4(&sp43c[3], sp560); + break; + + case 3: + s1 = 4; + sp43c[0].unk00 = sp5e4.f[0] * scale; + sp43c[0].unk04 = sp5e4.f[1] * scale; + sp43c[0].unk08 = sp5e4.f[2] * scale; + sp43c[1].unk00 = sp5d8.f[0] * scale; + sp43c[1].unk04 = sp5d8.f[1] * scale; + sp43c[1].unk08 = sp5d8.f[2] * scale; + sp43c[2].unk00 = sp59c.f[0] * scale; + sp43c[2].unk04 = sp59c.f[1] * scale; + sp43c[2].unk08 = sp59c.f[2] * scale; + sp43c[3].unk00 = sp590.f[0] * scale; + sp43c[3].unk04 = sp590.f[1] * scale; + sp43c[3].unk08 = sp590.f[2] * scale; + sp43c[0].unk0c = sp5e4.f[0]; + sp43c[0].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5d8.f[0]; + sp43c[1].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp59c.f[0]; + sp43c[2].unk10 = sp59c.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp590.f[0]; + sp43c[3].unk10 = sp590.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp56c); + sub_GAME_7F093FA4(&sp43c[1], sp568); + sub_GAME_7F093FA4(&sp43c[2], sp554); + sub_GAME_7F093FA4(&sp43c[3], sp550); + break; + + case 12: + s1 = 4; + sp430 = TRUE; + sp43c[0].unk00 = sp5c0.f[0] * scale; + sp43c[0].unk04 = sp5c0.f[1] * scale; + sp43c[0].unk08 = sp5c0.f[2] * scale; + sp43c[1].unk00 = sp5cc.f[0] * scale; + sp43c[1].unk04 = sp5cc.f[1] * scale; + sp43c[1].unk08 = sp5cc.f[2] * scale; + sp43c[2].unk00 = sp590.f[0] * scale; + sp43c[2].unk04 = sp590.f[1] * scale; + sp43c[2].unk08 = sp590.f[2] * scale; + sp43c[3].unk00 = sp59c.f[0] * scale; + sp43c[3].unk04 = sp59c.f[1] * scale; + sp43c[3].unk08 = sp59c.f[2] * scale; + sp43c[0].unk0c = sp5c0.f[0]; + sp43c[0].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5cc.f[0]; + sp43c[1].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp590.f[0]; + sp43c[2].unk10 = sp590.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp59c.f[0]; + sp43c[3].unk10 = sp59c.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp560); + sub_GAME_7F093FA4(&sp43c[1], sp564); + sub_GAME_7F093FA4(&sp43c[2], sp550); + sub_GAME_7F093FA4(&sp43c[3], sp554); + break; + + case 10: + s1 = 4; + sp43c[0].unk00 = sp5d8.f[0] * scale; + sp43c[0].unk04 = sp5d8.f[1] * scale; + sp43c[0].unk08 = sp5d8.f[2] * scale; + sp43c[1].unk00 = sp5c0.f[0] * scale; + sp43c[1].unk04 = sp5c0.f[1] * scale; + sp43c[1].unk08 = sp5c0.f[2] * scale; + sp43c[2].unk00 = sp5b4.f[0] * scale; + sp43c[2].unk04 = sp5b4.f[1] * scale; + sp43c[2].unk08 = sp5b4.f[2] * scale; + sp43c[3].unk00 = sp5a8.f[0] * scale; + sp43c[3].unk04 = sp5a8.f[1] * scale; + sp43c[3].unk08 = sp5a8.f[2] * scale; + sp43c[0].unk0c = sp5d8.f[0]; + sp43c[0].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5c0.f[0]; + sp43c[1].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5b4.f[0]; + sp43c[2].unk10 = sp5b4.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp5a8.f[0]; + sp43c[3].unk10 = sp5a8.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp568); + sub_GAME_7F093FA4(&sp43c[1], sp560); + sub_GAME_7F093FA4(&sp43c[2], sp55c); + sub_GAME_7F093FA4(&sp43c[3], sp558); + break; + + case 5: + s1 = 4; + sp43c[0].unk00 = sp5cc.f[0] * scale; + sp43c[0].unk04 = sp5cc.f[1] * scale; + sp43c[0].unk08 = sp5cc.f[2] * scale; + sp43c[1].unk00 = sp5e4.f[0] * scale; + sp43c[1].unk04 = sp5e4.f[1] * scale; + sp43c[1].unk08 = sp5e4.f[2] * scale; + sp43c[2].unk00 = sp5a8.f[0] * scale; + sp43c[2].unk04 = sp5a8.f[1] * scale; + sp43c[2].unk08 = sp5a8.f[2] * scale; + sp43c[3].unk00 = sp5b4.f[0] * scale; + sp43c[3].unk04 = sp5b4.f[1] * scale; + sp43c[3].unk08 = sp5b4.f[2] * scale; + sp43c[0].unk0c = sp5cc.f[0]; + sp43c[0].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5e4.f[0]; + sp43c[1].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5a8.f[0]; + sp43c[2].unk10 = sp5a8.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp5b4.f[0]; + sp43c[3].unk10 = sp5b4.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp564); + sub_GAME_7F093FA4(&sp43c[1], sp56c); + sub_GAME_7F093FA4(&sp43c[2], sp558); + sub_GAME_7F093FA4(&sp43c[3], sp55c); + break; + + case 14: + s1 = 3; + sp43c[0].unk00 = sp5c0.f[0] * scale; + sp43c[0].unk04 = sp5c0.f[1] * scale; + sp43c[0].unk08 = sp5c0.f[2] * scale; + sp43c[1].unk00 = sp5a8.f[0] * scale; + sp43c[1].unk04 = sp5a8.f[1] * scale; + sp43c[1].unk08 = sp5a8.f[2] * scale; + sp43c[2].unk00 = sp590.f[0] * scale; + sp43c[2].unk04 = sp590.f[1] * scale; + sp43c[2].unk08 = sp590.f[2] * scale; + sp43c[0].unk0c = sp5c0.f[0]; + sp43c[0].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5a8.f[0]; + sp43c[1].unk10 = sp5a8.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp590.f[0]; + sp43c[2].unk10 = sp590.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp560); + sub_GAME_7F093FA4(&sp43c[1], sp558); + sub_GAME_7F093FA4(&sp43c[2], sp550); + break; + + case 13: + s1 = 3; + sp43c[0].unk00 = sp5cc.f[0] * scale; + sp43c[0].unk04 = sp5cc.f[1] * scale; + sp43c[0].unk08 = sp5cc.f[2] * scale; + sp43c[1].unk00 = sp59c.f[0] * scale; + sp43c[1].unk04 = sp59c.f[1] * scale; + sp43c[1].unk08 = sp59c.f[2] * scale; + sp43c[2].unk00 = sp5a8.f[0] * scale; + sp43c[2].unk04 = sp5a8.f[1] * scale; + sp43c[2].unk08 = sp5a8.f[2] * scale; + sp43c[0].unk0c = sp5cc.f[0]; + sp43c[0].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp59c.f[0]; + sp43c[1].unk10 = sp59c.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5a8.f[0]; + sp43c[2].unk10 = sp5a8.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp564); + sub_GAME_7F093FA4(&sp43c[1], sp554); + sub_GAME_7F093FA4(&sp43c[2], sp558); + break; + + case 11: + s1 = 3; + sp43c[0].unk00 = sp5d8.f[0] * scale; + sp43c[0].unk04 = sp5d8.f[1] * scale; + sp43c[0].unk08 = sp5d8.f[2] * scale; + sp43c[1].unk00 = sp590.f[0] * scale; + sp43c[1].unk04 = sp590.f[1] * scale; + sp43c[1].unk08 = sp590.f[2] * scale; + sp43c[2].unk00 = sp5b4.f[0] * scale; + sp43c[2].unk04 = sp5b4.f[1] * scale; + sp43c[2].unk08 = sp5b4.f[2] * scale; + sp43c[0].unk0c = sp5d8.f[0]; + sp43c[0].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp590.f[0]; + sp43c[1].unk10 = sp590.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5b4.f[0]; + sp43c[2].unk10 = sp5b4.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp568); + sub_GAME_7F093FA4(&sp43c[1], sp550); + sub_GAME_7F093FA4(&sp43c[2], sp55c); + break; + + case 7: + s1 = 3; + sp43c[0].unk00 = sp5e4.f[0] * scale; + sp43c[0].unk04 = sp5e4.f[1] * scale; + sp43c[0].unk08 = sp5e4.f[2] * scale; + sp43c[1].unk00 = sp5b4.f[0] * scale; + sp43c[1].unk04 = sp5b4.f[1] * scale; + sp43c[1].unk08 = sp5b4.f[2] * scale; + sp43c[2].unk00 = sp59c.f[0] * scale; + sp43c[2].unk04 = sp59c.f[1] * scale; + sp43c[2].unk08 = sp59c.f[2] * scale; + sp43c[0].unk0c = sp5e4.f[0]; + sp43c[0].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5b4.f[0]; + sp43c[1].unk10 = sp5b4.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp59c.f[0]; + sp43c[2].unk10 = sp59c.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp56c); + sub_GAME_7F093FA4(&sp43c[1], sp55c); + sub_GAME_7F093FA4(&sp43c[2], sp554); + break; + + case 1: + s1 = 5; + sp43c[0].unk00 = sp5cc.f[0] * scale; + sp43c[0].unk04 = sp5cc.f[1] * scale; + sp43c[0].unk08 = sp5cc.f[2] * scale; + sp43c[1].unk00 = sp5e4.f[0] * scale; + sp43c[1].unk04 = sp5e4.f[1] * scale; + sp43c[1].unk08 = sp5e4.f[2] * scale; + sp43c[2].unk00 = sp5d8.f[0] * scale; + sp43c[2].unk04 = sp5d8.f[1] * scale; + sp43c[2].unk08 = sp5d8.f[2] * scale; + sp43c[3].unk00 = sp590.f[0] * scale; + sp43c[3].unk04 = sp590.f[1] * scale; + sp43c[3].unk08 = sp590.f[2] * scale; + sp43c[4].unk00 = sp5a8.f[0] * scale; + sp43c[4].unk04 = sp5a8.f[1] * scale; + sp43c[4].unk08 = sp5a8.f[2] * scale; + sp43c[0].unk0c = sp5cc.f[0]; + sp43c[0].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5e4.f[0]; + sp43c[1].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5d8.f[0]; + sp43c[2].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp590.f[0]; + sp43c[3].unk10 = sp590.f[2] + g_SkyCloudOffset; + sp43c[4].unk0c = sp5a8.f[0]; + sp43c[4].unk10 = sp5a8.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp564); + sub_GAME_7F093FA4(&sp43c[1], sp56c); + sub_GAME_7F093FA4(&sp43c[2], sp568); + sub_GAME_7F093FA4(&sp43c[3], sp550); + sub_GAME_7F093FA4(&sp43c[4], sp558); + break; + + case 2: + s1 = 5; + sp43c[0].unk00 = sp5e4.f[0] * scale; + sp43c[0].unk04 = sp5e4.f[1] * scale; + sp43c[0].unk08 = sp5e4.f[2] * scale; + sp43c[1].unk00 = sp5d8.f[0] * scale; + sp43c[1].unk04 = sp5d8.f[1] * scale; + sp43c[1].unk08 = sp5d8.f[2] * scale; + sp43c[2].unk00 = sp5c0.f[0] * scale; + sp43c[2].unk04 = sp5c0.f[1] * scale; + sp43c[2].unk08 = sp5c0.f[2] * scale; + sp43c[3].unk00 = sp5a8.f[0] * scale; + sp43c[3].unk04 = sp5a8.f[1] * scale; + sp43c[3].unk08 = sp5a8.f[2] * scale; + sp43c[4].unk00 = sp59c.f[0] * scale; + sp43c[4].unk04 = sp59c.f[1] * scale; + sp43c[4].unk08 = sp59c.f[2] * scale; + sp43c[0].unk0c = sp5e4.f[0]; + sp43c[0].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5d8.f[0]; + sp43c[1].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5c0.f[0]; + sp43c[2].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp5a8.f[0]; + sp43c[3].unk10 = sp5a8.f[2] + g_SkyCloudOffset; + sp43c[4].unk0c = sp59c.f[0]; + sp43c[4].unk10 = sp59c.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp56c); + sub_GAME_7F093FA4(&sp43c[1], sp568); + sub_GAME_7F093FA4(&sp43c[2], sp560); + sub_GAME_7F093FA4(&sp43c[3], sp558); + sub_GAME_7F093FA4(&sp43c[4], sp554); + break; + + case 4: + s1 = 5; + sp43c[0].unk00 = sp5c0.f[0] * scale; + sp43c[0].unk04 = sp5c0.f[1] * scale; + sp43c[0].unk08 = sp5c0.f[2] * scale; + sp43c[1].unk00 = sp5cc.f[0] * scale; + sp43c[1].unk04 = sp5cc.f[1] * scale; + sp43c[1].unk08 = sp5cc.f[2] * scale; + sp43c[2].unk00 = sp5e4.f[0] * scale; + sp43c[2].unk04 = sp5e4.f[1] * scale; + sp43c[2].unk08 = sp5e4.f[2] * scale; + sp43c[3].unk00 = sp5b4.f[0] * scale; + sp43c[3].unk04 = sp5b4.f[1] * scale; + sp43c[3].unk08 = sp5b4.f[2] * scale; + sp43c[4].unk00 = sp590.f[0] * scale; + sp43c[4].unk04 = sp590.f[1] * scale; + sp43c[4].unk08 = sp590.f[2] * scale; + sp43c[0].unk0c = sp5c0.f[0]; + sp43c[0].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5cc.f[0]; + sp43c[1].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5e4.f[0]; + sp43c[2].unk10 = sp5e4.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp5b4.f[0]; + sp43c[3].unk10 = sp5b4.f[2] + g_SkyCloudOffset; + sp43c[4].unk0c = sp590.f[0]; + sp43c[4].unk10 = sp590.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp560); + sub_GAME_7F093FA4(&sp43c[1], sp564); + sub_GAME_7F093FA4(&sp43c[2], sp56c); + sub_GAME_7F093FA4(&sp43c[3], sp55c); + sub_GAME_7F093FA4(&sp43c[4], sp550); + break; + + case 8: + s1 = 5; + sp43c[0].unk00 = sp5d8.f[0] * scale; + sp43c[0].unk04 = sp5d8.f[1] * scale; + sp43c[0].unk08 = sp5d8.f[2] * scale; + sp43c[1].unk00 = sp5c0.f[0] * scale; + sp43c[1].unk04 = sp5c0.f[1] * scale; + sp43c[1].unk08 = sp5c0.f[2] * scale; + sp43c[2].unk00 = sp5cc.f[0] * scale; + sp43c[2].unk04 = sp5cc.f[1] * scale; + sp43c[2].unk08 = sp5cc.f[2] * scale; + sp43c[3].unk00 = sp59c.f[0] * scale; + sp43c[3].unk04 = sp59c.f[1] * scale; + sp43c[3].unk08 = sp59c.f[2] * scale; + sp43c[4].unk00 = sp5b4.f[0] * scale; + sp43c[4].unk04 = sp5b4.f[1] * scale; + sp43c[4].unk08 = sp5b4.f[2] * scale; + sp43c[0].unk0c = sp5d8.f[0]; + sp43c[0].unk10 = sp5d8.f[2] + g_SkyCloudOffset; + sp43c[1].unk0c = sp5c0.f[0]; + sp43c[1].unk10 = sp5c0.f[2] + g_SkyCloudOffset; + sp43c[2].unk0c = sp5cc.f[0]; + sp43c[2].unk10 = sp5cc.f[2] + g_SkyCloudOffset; + sp43c[3].unk0c = sp59c.f[0]; + sp43c[3].unk10 = sp59c.f[2] + g_SkyCloudOffset; + sp43c[4].unk0c = sp5b4.f[0]; + sp43c[4].unk10 = sp5b4.f[2] + g_SkyCloudOffset; + + sub_GAME_7F093FA4(&sp43c[0], sp568); + sub_GAME_7F093FA4(&sp43c[1], sp560); + sub_GAME_7F093FA4(&sp43c[2], sp564); + sub_GAME_7F093FA4(&sp43c[3], sp554); + sub_GAME_7F093FA4(&sp43c[4], sp55c); + break; + + default: + return gdl; + } + + if (s1 > 0) + { + Mtxf sp3cc; + Mtxf sp38c; + SkyRelated38 sp274[5]; + s32 i; + s32 unused[3]; + + matrix_4x4_multiply(currentPlayerGetProjectionMatrixF(), currentPlayerGetMatrix10CC(), &sp3cc); + guScaleF(dword_CODE_bss_80079E98.m, 1.0f / scale, 1.0f / scale, 1.0f / scale); + matrix_4x4_multiply(&sp3cc, &dword_CODE_bss_80079E98, &sp38c); + + for (i = 0; i < s1; i++) + { + sub_GAME_7F097388(&sp43c[i], &sp38c, 130, 65535.0f, 65535.0f, &sp274[i]); + + sp274[i].unk28 = skyClamp(sp274[i].unk28, getPlayer_c_screenleft() * 4.0f, (getPlayer_c_screenleft() + getPlayer_c_screenwidth()) * 4.0f - 1.0f); + sp274[i].unk2c = skyClamp(sp274[i].unk2c, getPlayer_c_screentop() * 4.0f, (getPlayer_c_screentop() + getPlayer_c_screenheight()) * 4.0f - 1.0f); + + if (sp274[i].unk2c > getPlayer_c_screentop() * 4.0f + 4.0f + && sp274[i].unk2c < (getPlayer_c_screentop() + getPlayer_c_screenheight()) * 4.0f - 4.0f) + { + sp274[i].unk2c -= 4.0f; + } + } + + if (!fogGetCurrentEnvironmentp()->IsWater) + { + f32 f14 = 1279.0f; + f32 f2 = 0.0f; + f32 f16 = 959.0f; + f32 f12 = 0.0f; + + for (j = 0; j < s1; j++) + { + if (sp274[j].unk28 < f14) { f14 = sp274[j].unk28; } + if (sp274[j].unk28 > f2) { f2 = sp274[j].unk28; } + + if (sp274[j].unk2c < f16) { f16 = sp274[j].unk2c; } + if (sp274[j].unk2c > f12) { f12 = sp274[j].unk2c; } + } + + gDPPipeSync(gdl++); + gDPSetCycleType(gdl++, G_CYC_FILL); + gDPSetRenderMode(gdl++, G_RM_NOOP, G_RM_NOOP2); + gDPSetTexturePersp(gdl++, G_TP_NONE); + gDPFillRectangle(gdl++, (s32)(f14 * 0.25f), (s32)(f16 * 0.25f), (s32)(f2 * 0.25f), (s32)(f12 * 0.25f)); + gDPPipeSync(gdl++); + gDPSetTexturePersp(gdl++, G_TP_PERSP); + } + else + { + gDPPipeSync(gdl++); + + likely_generate_DL_for_image_declaration(&gdl, &skywaterimages[fogGetCurrentEnvironmentp()->WaterImageId], 1, 0, 2); + gdl = sub_GAME_7F09343C(gdl, 0); // ??? + gDPSetRenderMode(gdl++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + + if (s1 == 4) + { + gdl = sub_GAME_7F097818(gdl, &sp274[0], &sp274[1], &sp274[3], 130.0f, TRUE); + + if (sp430) + { + sp274[0].unk2c++; + sp274[1].unk2c++; + sp274[2].unk2c++; + sp274[3].unk2c++; + } + + gdl = sub_GAME_7F097818(gdl, &sp274[3], &sp274[2], &sp274[0], 130.0f, TRUE); + } + else if (s1 == 5) + { + gdl = sub_GAME_7F097818(gdl, &sp274[0], &sp274[1], &sp274[2], 130.0f, TRUE); + gdl = sub_GAME_7F097818(gdl, &sp274[0], &sp274[2], &sp274[3], 130.0f, TRUE); + gdl = sub_GAME_7F097818(gdl, &sp274[0], &sp274[3], &sp274[4], 130.0f, TRUE); + } + else if (s1 == 3) + { + gdl = sub_GAME_7F097818(gdl, &sp274[0], &sp274[1], &sp274[2], 130.0f, TRUE); + } + } + } + + switch ((sp538 << 3) | (sp534 << 2) | (sp530 << 1) | sp52c) + { + case 0: + return gdl; + + case 15: + s1 = 4; + sp4b4[0].unk00 = sp644.f[0] * scale; + sp4b4[0].unk04 = sp644.f[1] * scale; + sp4b4[0].unk08 = sp644.f[2] * scale; + sp4b4[1].unk00 = sp638.f[0] * scale; + sp4b4[1].unk04 = sp638.f[1] * scale; + sp4b4[1].unk08 = sp638.f[2] * scale; + sp4b4[2].unk00 = sp62c.f[0] * scale; + sp4b4[2].unk04 = sp62c.f[1] * scale; + sp4b4[2].unk08 = sp62c.f[2] * scale; + sp4b4[3].unk00 = sp620.f[0] * scale; + sp4b4[3].unk04 = sp620.f[1] * scale; + sp4b4[3].unk08 = sp620.f[2] * scale; + sp4b4[0].unk0c = sp644.f[0] * 0.1f; + sp4b4[0].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp638.f[0] * 0.1f; + sp4b4[1].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp62c.f[0] * 0.1f; + sp4b4[2].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp620.f[0] * 0.1f; + sp4b4[3].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp58c); + skyChooseCloudVtxColour(&sp4b4[1], sp588); + skyChooseCloudVtxColour(&sp4b4[2], sp584); + skyChooseCloudVtxColour(&sp4b4[3], sp580); + break; + + case 12: + s1 = 4; + sp4b4[0].unk00 = sp644.f[0] * scale; + sp4b4[0].unk04 = sp644.f[1] * scale; + sp4b4[0].unk08 = sp644.f[2] * scale; + sp4b4[1].unk00 = sp638.f[0] * scale; + sp4b4[1].unk04 = sp638.f[1] * scale; + sp4b4[1].unk08 = sp638.f[2] * scale; + sp4b4[2].unk00 = sp5fc.f[0] * scale; + sp4b4[2].unk04 = sp5fc.f[1] * scale; + sp4b4[2].unk08 = sp5fc.f[2] * scale; + sp4b4[3].unk00 = sp5f0.f[0] * scale; + sp4b4[3].unk04 = sp5f0.f[1] * scale; + sp4b4[3].unk08 = sp5f0.f[2] * scale; + sp4b4[0].unk0c = sp644.f[0] * 0.1f; + sp4b4[0].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp638.f[0] * 0.1f; + sp4b4[1].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp5fc.f[0] * 0.1f; + sp4b4[2].unk10 = sp5fc.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp5f0.f[0] * 0.1f; + sp4b4[3].unk10 = sp5f0.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp58c); + skyChooseCloudVtxColour(&sp4b4[1], sp588); + skyChooseCloudVtxColour(&sp4b4[2], sp574); + skyChooseCloudVtxColour(&sp4b4[3], sp570); + break; + + case 3: + s1 = 4; + sp4b4[0].unk00 = sp620.f[0] * scale; + sp4b4[0].unk04 = sp620.f[1] * scale; + sp4b4[0].unk08 = sp620.f[2] * scale; + sp4b4[1].unk00 = sp62c.f[0] * scale; + sp4b4[1].unk04 = sp62c.f[1] * scale; + sp4b4[1].unk08 = sp62c.f[2] * scale; + sp4b4[2].unk00 = sp5f0.f[0] * scale; + sp4b4[2].unk04 = sp5f0.f[1] * scale; + sp4b4[2].unk08 = sp5f0.f[2] * scale; + sp4b4[3].unk00 = sp5fc.f[0] * scale; + sp4b4[3].unk04 = sp5fc.f[1] * scale; + sp4b4[3].unk08 = sp5fc.f[2] * scale; + sp4b4[0].unk0c = sp620.f[0] * 0.1f; + sp4b4[0].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp62c.f[0] * 0.1f; + sp4b4[1].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp5f0.f[0] * 0.1f; + sp4b4[2].unk10 = sp5f0.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp5fc.f[0] * 0.1f; + sp4b4[3].unk10 = sp5fc.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp580); + skyChooseCloudVtxColour(&sp4b4[1], sp584); + skyChooseCloudVtxColour(&sp4b4[2], sp570); + skyChooseCloudVtxColour(&sp4b4[3], sp574); + break; + + case 5: + s1 = 4; + sp4b4[0].unk00 = sp638.f[0] * scale; + sp4b4[0].unk04 = sp638.f[1] * scale; + sp4b4[0].unk08 = sp638.f[2] * scale; + sp4b4[1].unk00 = sp620.f[0] * scale; + sp4b4[1].unk04 = sp620.f[1] * scale; + sp4b4[1].unk08 = sp620.f[2] * scale; + sp4b4[2].unk00 = sp614.f[0] * scale; + sp4b4[2].unk04 = sp614.f[1] * scale; + sp4b4[2].unk08 = sp614.f[2] * scale; + sp4b4[3].unk00 = sp608.f[0] * scale; + sp4b4[3].unk04 = sp608.f[1] * scale; + sp4b4[3].unk08 = sp608.f[2] * scale; + sp4b4[0].unk0c = sp638.f[0] * 0.1f; + sp4b4[0].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp620.f[0] * 0.1f; + sp4b4[1].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp614.f[0] * 0.1f; + sp4b4[2].unk10 = sp614.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp608.f[0] * 0.1f; + sp4b4[3].unk10 = sp608.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp588); + skyChooseCloudVtxColour(&sp4b4[1], sp580); + skyChooseCloudVtxColour(&sp4b4[2], sp57c); + skyChooseCloudVtxColour(&sp4b4[3], sp578); + break; + + case 10: + s1 = 4; + sp4b4[0].unk00 = sp62c.f[0] * scale; + sp4b4[0].unk04 = sp62c.f[1] * scale; + sp4b4[0].unk08 = sp62c.f[2] * scale; + sp4b4[1].unk00 = sp644.f[0] * scale; + sp4b4[1].unk04 = sp644.f[1] * scale; + sp4b4[1].unk08 = sp644.f[2] * scale; + sp4b4[2].unk00 = sp608.f[0] * scale; + sp4b4[2].unk04 = sp608.f[1] * scale; + sp4b4[2].unk08 = sp608.f[2] * scale; + sp4b4[3].unk00 = sp614.f[0] * scale; + sp4b4[3].unk04 = sp614.f[1] * scale; + sp4b4[3].unk08 = sp614.f[2] * scale; + sp4b4[0].unk0c = sp62c.f[0] * 0.1f; + sp4b4[0].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp644.f[0] * 0.1f; + sp4b4[1].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp608.f[0] * 0.1f; + sp4b4[2].unk10 = sp608.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp614.f[0] * 0.1f; + sp4b4[3].unk10 = sp614.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp584); + skyChooseCloudVtxColour(&sp4b4[1], sp58c); + skyChooseCloudVtxColour(&sp4b4[2], sp578); + skyChooseCloudVtxColour(&sp4b4[3], sp57c); + break; + + case 1: + s1 = 3; + sp4b4[0].unk00 = sp620.f[0] * scale; + sp4b4[0].unk04 = sp620.f[1] * scale; + sp4b4[0].unk08 = sp620.f[2] * scale; + sp4b4[1].unk00 = sp608.f[0] * scale; + sp4b4[1].unk04 = sp608.f[1] * scale; + sp4b4[1].unk08 = sp608.f[2] * scale; + sp4b4[2].unk00 = sp5f0.f[0] * scale; + sp4b4[2].unk04 = sp5f0.f[1] * scale; + sp4b4[2].unk08 = sp5f0.f[2] * scale; + sp4b4[0].unk0c = sp620.f[0] * 0.1f; + sp4b4[0].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp608.f[0] * 0.1f; + sp4b4[1].unk10 = sp608.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp5f0.f[0] * 0.1f; + sp4b4[2].unk10 = sp5f0.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp580); + skyChooseCloudVtxColour(&sp4b4[1], sp578); + skyChooseCloudVtxColour(&sp4b4[2], sp570); + break; + + case 2: + s1 = 3; + sp4b4[0].unk00 = sp62c.f[0] * scale; + sp4b4[0].unk04 = sp62c.f[1] * scale; + sp4b4[0].unk08 = sp62c.f[2] * scale; + sp4b4[1].unk00 = sp5fc.f[0] * scale; + sp4b4[1].unk04 = sp5fc.f[1] * scale; + sp4b4[1].unk08 = sp5fc.f[2] * scale; + sp4b4[2].unk00 = sp608.f[0] * scale; + sp4b4[2].unk04 = sp608.f[1] * scale; + sp4b4[2].unk08 = sp608.f[2] * scale; + sp4b4[0].unk0c = sp62c.f[0] * 0.1f; + sp4b4[0].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp5fc.f[0] * 0.1f; + sp4b4[1].unk10 = sp5fc.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp608.f[0] * 0.1f; + sp4b4[2].unk10 = sp608.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp584); + skyChooseCloudVtxColour(&sp4b4[1], sp574); + skyChooseCloudVtxColour(&sp4b4[2], sp578); + break; + + case 4: + s1 = 3; + sp4b4[0].unk00 = sp638.f[0] * scale; + sp4b4[0].unk04 = sp638.f[1] * scale; + sp4b4[0].unk08 = sp638.f[2] * scale; + sp4b4[1].unk00 = sp5f0.f[0] * scale; + sp4b4[1].unk04 = sp5f0.f[1] * scale; + sp4b4[1].unk08 = sp5f0.f[2] * scale; + sp4b4[2].unk00 = sp614.f[0] * scale; + sp4b4[2].unk04 = sp614.f[1] * scale; + sp4b4[2].unk08 = sp614.f[2] * scale; + sp4b4[0].unk0c = sp638.f[0] * 0.1f; + sp4b4[0].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp5f0.f[0] * 0.1f; + sp4b4[1].unk10 = sp5f0.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp614.f[0] * 0.1f; + sp4b4[2].unk10 = sp614.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp588); + skyChooseCloudVtxColour(&sp4b4[1], sp570); + skyChooseCloudVtxColour(&sp4b4[2], sp57c); + break; + + case 8: + s1 = 3; + sp4b4[0].unk00 = sp644.f[0] * scale; + sp4b4[0].unk04 = sp644.f[1] * scale; + sp4b4[0].unk08 = sp644.f[2] * scale; + sp4b4[1].unk00 = sp614.f[0] * scale; + sp4b4[1].unk04 = sp614.f[1] * scale; + sp4b4[1].unk08 = sp614.f[2] * scale; + sp4b4[2].unk00 = sp5fc.f[0] * scale; + sp4b4[2].unk04 = sp5fc.f[1] * scale; + sp4b4[2].unk08 = sp5fc.f[2] * scale; + sp4b4[0].unk0c = sp644.f[0] * 0.1f; + sp4b4[0].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp614.f[0] * 0.1f; + sp4b4[1].unk10 = sp614.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp5fc.f[0] * 0.1f; + sp4b4[2].unk10 = sp5fc.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp58c); + skyChooseCloudVtxColour(&sp4b4[1], sp57c); + skyChooseCloudVtxColour(&sp4b4[2], sp574); + break; + + case 14: + s1 = 5; + sp4b4[0].unk00 = sp62c.f[0] * scale; + sp4b4[0].unk04 = sp62c.f[1] * scale; + sp4b4[0].unk08 = sp62c.f[2] * scale; + sp4b4[1].unk00 = sp644.f[0] * scale; + sp4b4[1].unk04 = sp644.f[1] * scale; + sp4b4[1].unk08 = sp644.f[2] * scale; + sp4b4[2].unk00 = sp638.f[0] * scale; + sp4b4[2].unk04 = sp638.f[1] * scale; + sp4b4[2].unk08 = sp638.f[2] * scale; + sp4b4[3].unk00 = sp5f0.f[0] * scale; + sp4b4[3].unk04 = sp5f0.f[1] * scale; + sp4b4[3].unk08 = sp5f0.f[2] * scale; + sp4b4[4].unk00 = sp608.f[0] * scale; + sp4b4[4].unk04 = sp608.f[1] * scale; + sp4b4[4].unk08 = sp608.f[2] * scale; + sp4b4[0].unk0c = sp62c.f[0] * 0.1f; + sp4b4[0].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp644.f[0] * 0.1f; + sp4b4[1].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp638.f[0] * 0.1f; + sp4b4[2].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp5f0.f[0] * 0.1f; + sp4b4[3].unk10 = sp5f0.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[4].unk0c = sp608.f[0] * 0.1f; + sp4b4[4].unk10 = sp608.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp584); + skyChooseCloudVtxColour(&sp4b4[1], sp58c); + skyChooseCloudVtxColour(&sp4b4[2], sp588); + skyChooseCloudVtxColour(&sp4b4[3], sp570); + skyChooseCloudVtxColour(&sp4b4[4], sp578); + break; + + case 13: + s1 = 5; + sp4b4[0].unk00 = sp644.f[0] * scale; + sp4b4[0].unk04 = sp644.f[1] * scale; + sp4b4[0].unk08 = sp644.f[2] * scale; + sp4b4[1].unk00 = sp638.f[0] * scale; + sp4b4[1].unk04 = sp638.f[1] * scale; + sp4b4[1].unk08 = sp638.f[2] * scale; + sp4b4[2].unk00 = sp620.f[0] * scale; + sp4b4[2].unk04 = sp620.f[1] * scale; + sp4b4[2].unk08 = sp620.f[2] * scale; + sp4b4[3].unk00 = sp608.f[0] * scale; + sp4b4[3].unk04 = sp608.f[1] * scale; + sp4b4[3].unk08 = sp608.f[2] * scale; + sp4b4[4].unk00 = sp5fc.f[0] * scale; + sp4b4[4].unk04 = sp5fc.f[1] * scale; + sp4b4[4].unk08 = sp5fc.f[2] * scale; + sp4b4[0].unk0c = sp644.f[0] * 0.1f; + sp4b4[0].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp638.f[0] * 0.1f; + sp4b4[1].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp620.f[0] * 0.1f; + sp4b4[2].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp608.f[0] * 0.1f; + sp4b4[3].unk10 = sp608.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[4].unk0c = sp5fc.f[0] * 0.1f; + sp4b4[4].unk10 = sp5fc.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp58c); + skyChooseCloudVtxColour(&sp4b4[1], sp588); + skyChooseCloudVtxColour(&sp4b4[2], sp580); + skyChooseCloudVtxColour(&sp4b4[3], sp578); + skyChooseCloudVtxColour(&sp4b4[4], sp574); + break; + + case 11: + s1 = 5; + sp4b4[0].unk00 = sp620.f[0] * scale; + sp4b4[0].unk04 = sp620.f[1] * scale; + sp4b4[0].unk08 = sp620.f[2] * scale; + sp4b4[1].unk00 = sp62c.f[0] * scale; + sp4b4[1].unk04 = sp62c.f[1] * scale; + sp4b4[1].unk08 = sp62c.f[2] * scale; + sp4b4[2].unk00 = sp644.f[0] * scale; + sp4b4[2].unk04 = sp644.f[1] * scale; + sp4b4[2].unk08 = sp644.f[2] * scale; + sp4b4[3].unk00 = sp614.f[0] * scale; + sp4b4[3].unk04 = sp614.f[1] * scale; + sp4b4[3].unk08 = sp614.f[2] * scale; + sp4b4[4].unk00 = sp5f0.f[0] * scale; + sp4b4[4].unk04 = sp5f0.f[1] * scale; + sp4b4[4].unk08 = sp5f0.f[2] * scale; + sp4b4[0].unk0c = sp620.f[0] * 0.1f; + sp4b4[0].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp62c.f[0] * 0.1f; + sp4b4[1].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp644.f[0] * 0.1f; + sp4b4[2].unk10 = sp644.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp614.f[0] * 0.1f; + sp4b4[3].unk10 = sp614.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[4].unk0c = sp5f0.f[0] * 0.1f; + sp4b4[4].unk10 = sp5f0.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp580); + skyChooseCloudVtxColour(&sp4b4[1], sp584); + skyChooseCloudVtxColour(&sp4b4[2], sp58c); + skyChooseCloudVtxColour(&sp4b4[3], sp57c); + skyChooseCloudVtxColour(&sp4b4[4], sp570); + break; + + case 7: + s1 = 5; + sp4b4[0].unk00 = sp638.f[0] * scale; + sp4b4[0].unk04 = sp638.f[1] * scale; + sp4b4[0].unk08 = sp638.f[2] * scale; + sp4b4[1].unk00 = sp620.f[0] * scale; + sp4b4[1].unk04 = sp620.f[1] * scale; + sp4b4[1].unk08 = sp620.f[2] * scale; + sp4b4[2].unk00 = sp62c.f[0] * scale; + sp4b4[2].unk04 = sp62c.f[1] * scale; + sp4b4[2].unk08 = sp62c.f[2] * scale; + sp4b4[3].unk00 = sp5fc.f[0] * scale; + sp4b4[3].unk04 = sp5fc.f[1] * scale; + sp4b4[3].unk08 = sp5fc.f[2] * scale; + sp4b4[4].unk00 = sp614.f[0] * scale; + sp4b4[4].unk04 = sp614.f[1] * scale; + sp4b4[4].unk08 = sp614.f[2] * scale; + sp4b4[0].unk0c = sp638.f[0] * 0.1f; + sp4b4[0].unk10 = sp638.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[1].unk0c = sp620.f[0] * 0.1f; + sp4b4[1].unk10 = sp620.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[2].unk0c = sp62c.f[0] * 0.1f; + sp4b4[2].unk10 = sp62c.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[3].unk0c = sp5fc.f[0] * 0.1f; + sp4b4[3].unk10 = sp5fc.f[2] * 0.1f + g_SkyCloudOffset; + sp4b4[4].unk0c = sp614.f[0] * 0.1f; + sp4b4[4].unk10 = sp614.f[2] * 0.1f + g_SkyCloudOffset; + + skyChooseCloudVtxColour(&sp4b4[0], sp588); + skyChooseCloudVtxColour(&sp4b4[1], sp580); + skyChooseCloudVtxColour(&sp4b4[2], sp584); + skyChooseCloudVtxColour(&sp4b4[3], sp574); + skyChooseCloudVtxColour(&sp4b4[4], sp57c); + break; + + default: + return gdl; + } + + gDPPipeSync(gdl++); + + likely_generate_DL_for_image_declaration(&gdl, &skywaterimages[fogGetCurrentEnvironmentp()->SkyImageId], 1, 0, 2); + + if (1); + + gDPSetEnvColor(gdl++, fogGetCurrentEnvironmentp()->Red, fogGetCurrentEnvironmentp()->Green, fogGetCurrentEnvironmentp()->Blue, 0xff); + gDPSetCombineLERP(gdl++, + SHADE, ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, SHADE, + SHADE, ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, SHADE); + + { + Mtxf sp1ec; + Mtxf sp1ac; + SkyRelated38 sp94[5]; + s32 i; + s32 stack[2]; + + matrix_4x4_multiply(currentPlayerGetProjectionMatrixF(), currentPlayerGetMatrix10CC(), &sp1ec); + guScaleF(dword_CODE_bss_80079E98.m, 1.0f / scale, 1.0f / scale, 1.0f / scale); + matrix_4x4_multiply(&sp1ec, &dword_CODE_bss_80079E98, &sp1ac); + + for (i = 0; i < s1; i++) + { + sub_GAME_7F097388(&sp4b4[i], &sp1ac, 130, 65535.0f, 65535.0f, &sp94[i]); + + sp94[i].unk28 = skyClamp(sp94[i].unk28, getPlayer_c_screenleft() * 4.0f, (getPlayer_c_screenleft() + getPlayer_c_screenwidth()) * 4.0f - 1.0f); + sp94[i].unk2c = skyClamp(sp94[i].unk2c, getPlayer_c_screentop() * 4.0f, (getPlayer_c_screentop() + getPlayer_c_screenheight()) * 4.0f - 1.0f); + } + + if (s1 == 4) + { + if (((sp538 << 3) | (sp534 << 2) | (sp530 << 1) | sp52c) == 12) + { + if (sp548 < sp54c) + { + if (sp94[3].unk2c >= sp94[1].unk2c + 4.0f) + { + sp94[0].unk28 = getPlayer_c_screenleft() * 4.0f; + sp94[0].unk2c = getPlayer_c_screentop() * 4.0f; + sp94[1].unk28 = (getPlayer_c_screenleft() + getPlayer_c_screenwidth()) * 4.0f - 1.0f; + sp94[1].unk2c = getPlayer_c_screentop() * 4.0f; + sp94[2].unk28 = getPlayer_c_screenleft() * 4.0f; + sp94[3].unk28 = (getPlayer_c_screenleft() + getPlayer_c_screenwidth()) * 4.0f - 1.0f; + + gdl = sub_GAME_7F098A2C(gdl, &sp94[0], &sp94[1], &sp94[2], &sp94[3], 130.0f); + } + else + { + gdl = sub_GAME_7F097818(gdl, &sp94[0], &sp94[1], &sp94[2], 130.0f, TRUE); + } + } + else if (sp94[2].unk2c >= sp94[0].unk2c + 4.0f) + { + sp94[0].unk28 = getPlayer_c_screenleft() * 4.0f; + sp94[0].unk2c = getPlayer_c_screentop() * 4.0f; + sp94[1].unk28 = (getPlayer_c_screenleft() + getPlayer_c_screenwidth()) * 4.0f - 1.0f; + sp94[1].unk2c = getPlayer_c_screentop() * 4.0f; + sp94[2].unk28 = getPlayer_c_screenleft() * 4.0f; + sp94[3].unk28 = (getPlayer_c_screenleft() + getPlayer_c_screenwidth()) * 4.0f - 1.0f; + + gdl = sub_GAME_7F098A2C(gdl, &sp94[1], &sp94[0], &sp94[3], &sp94[2], 130.0f); + } + else + { + gdl = sub_GAME_7F097818(gdl, &sp94[1], &sp94[0], &sp94[3], 130.0f, TRUE); + } + } + else + { + gdl = sub_GAME_7F097818(gdl, &sp94[0], &sp94[1], &sp94[3], 130.0f, TRUE); + gdl = sub_GAME_7F097818(gdl, &sp94[3], &sp94[2], &sp94[0], 130.0f, TRUE); + } + } + else if (s1 == 5) + { + gdl = sub_GAME_7F097818(gdl, &sp94[0], &sp94[1], &sp94[2], 130.0f, TRUE); + gdl = sub_GAME_7F097818(gdl, &sp94[0], &sp94[2], &sp94[3], 130.0f, TRUE); + gdl = sub_GAME_7F097818(gdl, &sp94[0], &sp94[3], &sp94[4], 130.0f, TRUE); + } + else if (s1 == 3) + { + gdl = sub_GAME_7F097818(gdl, &sp94[0], &sp94[1], &sp94[2], 130.0f, TRUE); + } + } + + return gdl; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_80057540 -.word 0x3dcccccd /*0.1*/ -/*D:80057544*/ -glabel jpt_80057544 -.word .L7F094A48 -.word .L7F095284 -.word .L7F0953CC -.word .L7F094B4C -.word .L7F095514 -.word .L7F094E60 -.word .L7F0957A4 -.word .L7F0951BC -.word .L7F09565C -.word .L7F0957A4 -.word .L7F094D5C -.word .L7F0950F4 -.word .L7F094C50 -.word .L7F09502C -.word .L7F094F64 -.word .L7F094A40 - -glabel D_80057584 -.word 0x477fff00 /*65535.0*/ -glabel D_80057588 -.word 0x449fe000 /*1279.0*/ -glabel D_8005758C -.word 0x446fc000 /*959.0*/ - -/*D:80057590*/ -glabel jpt_80057590 -.word .L7F095E14 -.word .L7F09643C -.word .L7F09652C -.word .L7F096094 -.word .L7F09661C -.word .L7F0961CC -.word .L7F096E20 -.word .L7F096C98 -.word .L7F09670C -.word .L7F096E20 -.word .L7F096304 -.word .L7F096B10 -.word .L7F095F58 -.word .L7F096984 -.word .L7F0967FC -.word .L7F095E1C - -glabel D_800575D0 -.word 0x477fff00 /*65535.0*/ -glabel D_800575D4 -.word 0x46fffe00 /*32767.0*/ -glabel D_800575D8 -.word 0x46fffe00 /*32767.0*/ -glabel D_800575DC -.word 0x43ff8000 /*511.0*/ -glabel D_800575E0 -.word 0xc57fa000 /*-4090.0*/ -glabel D_800575E4 -.word 0xc57fa000 /*-4090.0*/ -.text -glabel sub_GAME_7F094488 -/* 0C8FB8 7F094488 27BDF950 */ addiu $sp, $sp, -0x6b0 -/* 0C8FBC 7F09448C AFBF004C */ sw $ra, 0x4c($sp) -/* 0C8FC0 7F094490 AFB10048 */ sw $s1, 0x48($sp) -/* 0C8FC4 7F094494 AFB00044 */ sw $s0, 0x44($sp) -/* 0C8FC8 7F094498 F7BC0038 */ sdc1 $f28, 0x38($sp) -/* 0C8FCC 7F09449C F7BA0030 */ sdc1 $f26, 0x30($sp) -/* 0C8FD0 7F0944A0 F7B80028 */ sdc1 $f24, 0x28($sp) -/* 0C8FD4 7F0944A4 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0C8FD8 7F0944A8 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0C8FDC 7F0944AC 0FC2D20F */ jal get_room_data_float1 -/* 0C8FE0 7F0944B0 AFA406B0 */ sw $a0, 0x6b0($sp) -/* 0C8FE4 7F0944B4 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 0C8FE8 7F0944B8 44812000 */ mtc1 $at, $f4 -/* 0C8FEC 7F0944BC AFA00430 */ sw $zero, 0x430($sp) -/* 0C8FF0 7F0944C0 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8FF4 7F0944C4 46040603 */ div.s $f24, $f0, $f4 -/* 0C8FF8 7F0944C8 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0C8FFC 7F0944CC 00408025 */ move $s0, $v0 -/* 0C9000 7F0944D0 904E000B */ lbu $t6, 0xb($v0) -/* 0C9004 7F0944D4 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0C9008 7F0944D8 55C0007B */ bnezl $t6, .L7F0946C8 -/* 0C900C 7F0944DC 92050008 */ lbu $a1, 8($s0) -/* 0C9010 7F0944E0 0FC26919 */ jal getPlayerCount -/* 0C9014 7F0944E4 00000000 */ nop -/* 0C9018 7F0944E8 24010001 */ li $at, 1 -/* 0C901C 7F0944EC 1441003B */ bne $v0, $at, .L7F0945DC -/* 0C9020 7F0944F0 3C088008 */ lui $t0, %hi(g_CurrentPlayer) -/* 0C9024 7F0944F4 8FAF06B0 */ lw $t7, 0x6b0($sp) -/* 0C9028 7F0944F8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 -/* 0C902C 7F0944FC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 -/* 0C9030 7F094500 25F80008 */ addiu $t8, $t7, 8 -/* 0C9034 7F094504 AFB806B0 */ sw $t8, 0x6b0($sp) -/* 0C9038 7F094508 3C0A0030 */ lui $t2, 0x30 -/* 0C903C 7F09450C ADEA0004 */ sw $t2, 4($t7) -/* 0C9040 7F094510 ADF90000 */ sw $t9, ($t7) -/* 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 viSetFillColor -/* 0C9054 7F094524 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0C9058 7F094528 244B0008 */ addiu $t3, $v0, 8 -/* 0C905C 7F09452C AFAB06B0 */ sw $t3, 0x6b0($sp) -/* 0C9060 7F094530 0C001127 */ jal viGetViewWidth -/* 0C9064 7F094534 00408825 */ move $s1, $v0 -/* 0C9068 7F094538 0C001145 */ jal viGetViewLeft -/* 0C906C 7F09453C A7A2007A */ sh $v0, 0x7a($sp) -/* 0C9070 7F094540 0C001149 */ jal viGetViewTop -/* 0C9074 7F094544 A7A2007C */ sh $v0, 0x7c($sp) -/* 0C9078 7F094548 00028400 */ sll $s0, $v0, 0x10 -/* 0C907C 7F09454C 00106403 */ sra $t4, $s0, 0x10 -/* 0C9080 7F094550 0C00112B */ jal viGetViewHeight -/* 0C9084 7F094554 01808025 */ move $s0, $t4 -/* 0C9088 7F094558 87AD007C */ lh $t5, 0x7c($sp) -/* 0C908C 7F09455C 87AE007A */ lh $t6, 0x7a($sp) -/* 0C9090 7F094560 00505821 */ addu $t3, $v0, $s0 -/* 0C9094 7F094564 256CFFFF */ addiu $t4, $t3, -1 -/* 0C9098 7F094568 01AE7821 */ addu $t7, $t5, $t6 -/* 0C909C 7F09456C 25F8FFFF */ addiu $t8, $t7, -1 -/* 0C90A0 7F094570 318D03FF */ andi $t5, $t4, 0x3ff -/* 0C90A4 7F094574 000D7080 */ sll $t6, $t5, 2 -/* 0C90A8 7F094578 331903FF */ andi $t9, $t8, 0x3ff -/* 0C90AC 7F09457C 3C01F600 */ lui $at, 0xf600 -/* 0C90B0 7F094580 01C17825 */ or $t7, $t6, $at -/* 0C90B4 7F094584 00195380 */ sll $t2, $t9, 0xe -/* 0C90B8 7F094588 01EAC025 */ or $t8, $t7, $t2 -/* 0C90BC 7F09458C 0C001145 */ jal viGetViewLeft -/* 0C90C0 7F094590 AE380000 */ sw $t8, ($s1) -/* 0C90C4 7F094594 00028400 */ sll $s0, $v0, 0x10 -/* 0C90C8 7F094598 0010CC03 */ sra $t9, $s0, 0x10 -/* 0C90CC 7F09459C 0C001149 */ jal viGetViewTop -/* 0C90D0 7F0945A0 03208025 */ move $s0, $t9 -/* 0C90D4 7F0945A4 304B03FF */ andi $t3, $v0, 0x3ff -/* 0C90D8 7F0945A8 320D03FF */ andi $t5, $s0, 0x3ff -/* 0C90DC 7F0945AC 000D7380 */ sll $t6, $t5, 0xe -/* 0C90E0 7F0945B0 000B6080 */ sll $t4, $t3, 2 -/* 0C90E4 7F0945B4 018E7825 */ or $t7, $t4, $t6 -/* 0C90E8 7F0945B8 AE2F0004 */ sw $t7, 4($s1) -/* 0C90EC 7F0945BC 8FAA06B0 */ lw $t2, 0x6b0($sp) -/* 0C90F0 7F0945C0 3C19E700 */ lui $t9, 0xe700 -/* 0C90F4 7F0945C4 25580008 */ addiu $t8, $t2, 8 -/* 0C90F8 7F0945C8 AFB806B0 */ sw $t8, 0x6b0($sp) -/* 0C90FC 7F0945CC AD400004 */ sw $zero, 4($t2) -/* 0C9100 7F0945D0 AD590000 */ sw $t9, ($t2) -/* 0C9104 7F0945D4 10000B62 */ b .L7F097360 -/* 0C9108 7F0945D8 8FA206B0 */ lw $v0, 0x6b0($sp) -.L7F0945DC: -/* 0C910C 7F0945DC 8FAB06B0 */ lw $t3, 0x6b0($sp) -/* 0C9110 7F0945E0 3C09E700 */ lui $t1, 0xe700 -/* 0C9114 7F0945E4 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 -/* 0C9118 7F0945E8 256D0008 */ addiu $t5, $t3, 8 -/* 0C911C 7F0945EC AFAD06B0 */ sw $t5, 0x6b0($sp) -/* 0C9120 7F0945F0 AD600004 */ sw $zero, 4($t3) -/* 0C9124 7F0945F4 AD690000 */ sw $t1, ($t3) -/* 0C9128 7F0945F8 8FAC06B0 */ lw $t4, 0x6b0($sp) -/* 0C912C 7F0945FC 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 -/* 0C9130 7F094600 3C0A0030 */ lui $t2, 0x30 -/* 0C9134 7F094604 258E0008 */ addiu $t6, $t4, 8 -/* 0C9138 7F094608 AFAE06B0 */ sw $t6, 0x6b0($sp) -/* 0C913C 7F09460C AD8A0004 */ sw $t2, 4($t4) -/* 0C9140 7F094610 AD8F0000 */ sw $t7, ($t4) -/* 0C9144 7F094614 8FB806B0 */ lw $t8, 0x6b0($sp) -/* 0C9148 7F094618 3C0BB900 */ lui $t3, (0xB900031D >> 16) # lui $t3, 0xb900 -/* 0C914C 7F09461C 356B031D */ ori $t3, (0xB900031D & 0xFFFF) # ori $t3, $t3, 0x31d -/* 0C9150 7F094620 27190008 */ addiu $t9, $t8, 8 -/* 0C9154 7F094624 AFB906B0 */ sw $t9, 0x6b0($sp) -/* 0C9158 7F094628 AF000004 */ sw $zero, 4($t8) -/* 0C915C 7F09462C AF0B0000 */ sw $t3, ($t8) -/* 0C9160 7F094630 8FA606B0 */ lw $a2, 0x6b0($sp) -/* 0C9164 7F094634 2508A0B0 */ addiu $t0, %lo(g_CurrentPlayer) # addiu $t0, $t0, -0x5f50 -/* 0C9168 7F094638 8D020000 */ lw $v0, ($t0) -/* 0C916C 7F09463C 24CC0008 */ addiu $t4, $a2, 8 -/* 0C9170 7F094640 AFAC06B0 */ sw $t4, 0x6b0($sp) -/* 0C9174 7F094644 844E07F4 */ lh $t6, 0x7f4($v0) -/* 0C9178 7F094648 844F07F0 */ lh $t7, 0x7f0($v0) -/* 0C917C 7F09464C 844C07F6 */ lh $t4, 0x7f6($v0) -/* 0C9180 7F094650 3C01F600 */ lui $at, 0xf600 -/* 0C9184 7F094654 01CF5021 */ addu $t2, $t6, $t7 -/* 0C9188 7F094658 844E07F2 */ lh $t6, 0x7f2($v0) -/* 0C918C 7F09465C 2558FFFF */ addiu $t8, $t2, -1 -/* 0C9190 7F094660 331903FF */ andi $t9, $t8, 0x3ff -/* 0C9194 7F094664 018E7821 */ addu $t7, $t4, $t6 -/* 0C9198 7F094668 25EAFFFF */ addiu $t2, $t7, -1 -/* 0C919C 7F09466C 00195B80 */ sll $t3, $t9, 0xe -/* 0C91A0 7F094670 315803FF */ andi $t8, $t2, 0x3ff -/* 0C91A4 7F094674 0018C880 */ sll $t9, $t8, 2 -/* 0C91A8 7F094678 01616825 */ or $t5, $t3, $at -/* 0C91AC 7F09467C 01B95825 */ or $t3, $t5, $t9 -/* 0C91B0 7F094680 ACCB0000 */ sw $t3, ($a2) -/* 0C91B4 7F094684 8D020000 */ lw $v0, ($t0) -/* 0C91B8 7F094688 844C07F4 */ lh $t4, 0x7f4($v0) -/* 0C91BC 7F09468C 844A07F6 */ lh $t2, 0x7f6($v0) -/* 0C91C0 7F094690 318E03FF */ andi $t6, $t4, 0x3ff -/* 0C91C4 7F094694 315803FF */ andi $t8, $t2, 0x3ff -/* 0C91C8 7F094698 00186880 */ sll $t5, $t8, 2 -/* 0C91CC 7F09469C 000E7B80 */ sll $t7, $t6, 0xe -/* 0C91D0 7F0946A0 01EDC825 */ or $t9, $t7, $t5 -/* 0C91D4 7F0946A4 ACD90004 */ sw $t9, 4($a2) -/* 0C91D8 7F0946A8 8FAB06B0 */ lw $t3, 0x6b0($sp) -/* 0C91DC 7F0946AC 256C0008 */ addiu $t4, $t3, 8 -/* 0C91E0 7F0946B0 AFAC06B0 */ sw $t4, 0x6b0($sp) -/* 0C91E4 7F0946B4 AD600004 */ sw $zero, 4($t3) -/* 0C91E8 7F0946B8 AD690000 */ sw $t1, ($t3) -/* 0C91EC 7F0946BC 10000B28 */ b .L7F097360 -/* 0C91F0 7F0946C0 8FA206B0 */ lw $v0, 0x6b0($sp) -/* 0C91F4 7F0946C4 92050008 */ lbu $a1, 8($s0) -.L7F0946C8: -/* 0C91F8 7F0946C8 92060009 */ lbu $a2, 9($s0) -/* 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 -/* 0C920C 7F0946DC AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0C9210 7F0946E0 02203025 */ move $a2, $s1 -/* 0C9214 7F0946E4 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C9218 7F0946E8 46006386 */ mov.s $f14, $f12 -/* 0C921C 7F0946EC 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0C9220 7F0946F0 00000000 */ nop -/* 0C9224 7F0946F4 3C018005 */ lui $at, %hi(D_80057540) -/* 0C9228 7F0946F8 C43C7540 */ lwc1 $f28, %lo(D_80057540)($at) -/* 0C922C 7F0946FC 44807000 */ mtc1 $zero, $f14 -/* 0C9230 7F094700 27A60698 */ addiu $a2, $sp, 0x698 -/* 0C9234 7F094704 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C9238 7F094708 461C0301 */ sub.s $f12, $f0, $f28 -/* 0C923C 7F09470C 0FC1E12D */ jal getPlayer_c_screenheight -/* 0C9240 7F094710 00000000 */ nop -/* 0C9244 7F094714 44806000 */ mtc1 $zero, $f12 -/* 0C9248 7F094718 461C0381 */ sub.s $f14, $f0, $f28 -/* 0C924C 7F09471C 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C9250 7F094720 27A6068C */ addiu $a2, $sp, 0x68c -/* 0C9254 7F094724 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0C9258 7F094728 00000000 */ nop -/* 0C925C 7F09472C 0FC1E12D */ jal getPlayer_c_screenheight -/* 0C9260 7F094730 46000586 */ mov.s $f22, $f0 -/* 0C9264 7F094734 461CB301 */ sub.s $f12, $f22, $f28 -/* 0C9268 7F094738 27A60680 */ addiu $a2, $sp, 0x680 -/* 0C926C 7F09473C 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C9270 7F094740 461C0381 */ sub.s $f14, $f0, $f28 -/* 0C9274 7F094744 02202025 */ move $a0, $s1 -/* 0C9278 7F094748 27A50644 */ addiu $a1, $sp, 0x644 -/* 0C927C 7F09474C 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C9280 7F094750 27A6058C */ addiu $a2, $sp, 0x58c -/* 0C9284 7F094754 AFA20538 */ sw $v0, 0x538($sp) -/* 0C9288 7F094758 27A40698 */ addiu $a0, $sp, 0x698 -/* 0C928C 7F09475C 27A50638 */ addiu $a1, $sp, 0x638 -/* 0C9290 7F094760 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C9294 7F094764 27A60588 */ addiu $a2, $sp, 0x588 -/* 0C9298 7F094768 AFA20534 */ sw $v0, 0x534($sp) -/* 0C929C 7F09476C 27A4068C */ addiu $a0, $sp, 0x68c -/* 0C92A0 7F094770 27A5062C */ addiu $a1, $sp, 0x62c -/* 0C92A4 7F094774 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C92A8 7F094778 27A60584 */ addiu $a2, $sp, 0x584 -/* 0C92AC 7F09477C AFA20530 */ sw $v0, 0x530($sp) -/* 0C92B0 7F094780 27A40680 */ addiu $a0, $sp, 0x680 -/* 0C92B4 7F094784 27A50620 */ addiu $a1, $sp, 0x620 -/* 0C92B8 7F094788 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C92BC 7F09478C 27A60580 */ addiu $a2, $sp, 0x580 -/* 0C92C0 7F094790 AFA2052C */ sw $v0, 0x52c($sp) -/* 0C92C4 7F094794 02202025 */ move $a0, $s1 -/* 0C92C8 7F094798 27A505E4 */ addiu $a1, $sp, 0x5e4 -/* 0C92CC 7F09479C 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C92D0 7F0947A0 27A6056C */ addiu $a2, $sp, 0x56c -/* 0C92D4 7F0947A4 27A40698 */ addiu $a0, $sp, 0x698 -/* 0C92D8 7F0947A8 27A505D8 */ addiu $a1, $sp, 0x5d8 -/* 0C92DC 7F0947AC 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C92E0 7F0947B0 27A60568 */ addiu $a2, $sp, 0x568 -/* 0C92E4 7F0947B4 27A4068C */ addiu $a0, $sp, 0x68c -/* 0C92E8 7F0947B8 27A505CC */ addiu $a1, $sp, 0x5cc -/* 0C92EC 7F0947BC 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C92F0 7F0947C0 27A60564 */ addiu $a2, $sp, 0x564 -/* 0C92F4 7F0947C4 27A40680 */ addiu $a0, $sp, 0x680 -/* 0C92F8 7F0947C8 27A505C0 */ addiu $a1, $sp, 0x5c0 -/* 0C92FC 7F0947CC 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C9300 7F0947D0 27A60560 */ addiu $a2, $sp, 0x560 -/* 0C9304 7F0947D4 8FAE0538 */ lw $t6, 0x538($sp) -/* 0C9308 7F0947D8 8FAA0530 */ lw $t2, 0x530($sp) -/* 0C930C 7F0947DC 51CA001F */ beql $t6, $t2, .L7F09485C -/* 0C9310 7F0947E0 44802000 */ mtc1 $zero, $f4 -/* 0C9314 7F0947E4 0FC1E135 */ jal getPlayer_c_screentop -/* 0C9318 7F0947E8 00000000 */ nop -/* 0C931C 7F0947EC 0FC1E12D */ jal getPlayer_c_screenheight -/* 0C9320 7F0947F0 46000586 */ mov.s $f22, $f0 -/* 0C9324 7F0947F4 C7A206A8 */ lwc1 $f2, 0x6a8($sp) -/* 0C9328 7F0947F8 C7B00690 */ lwc1 $f16, 0x690($sp) -/* 0C932C 7F0947FC 27B0065C */ addiu $s0, $sp, 0x65c -/* 0C9330 7F094800 44806000 */ mtc1 $zero, $f12 -/* 0C9334 7F094804 46101181 */ sub.s $f6, $f2, $f16 -/* 0C9338 7F094808 02003025 */ move $a2, $s0 -/* 0C933C 7F09480C 46061203 */ div.s $f8, $f2, $f6 -/* 0C9340 7F094810 46004282 */ mul.s $f10, $f8, $f0 -/* 0C9344 7F094814 46165380 */ add.s $f14, $f10, $f22 -/* 0C9348 7F094818 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C934C 7F09481C E7AE054C */ swc1 $f14, 0x54c($sp) -/* 0C9350 7F094820 02202025 */ move $a0, $s1 -/* 0C9354 7F094824 27A5068C */ addiu $a1, $sp, 0x68c -/* 0C9358 7F094828 0FC24EFF */ jal sub_GAME_7F093BFC -/* 0C935C 7F09482C 02003025 */ move $a2, $s0 -/* 0C9360 7F094830 02002025 */ move $a0, $s0 -/* 0C9364 7F094834 27A505FC */ addiu $a1, $sp, 0x5fc -/* 0C9368 7F094838 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C936C 7F09483C 27A60574 */ addiu $a2, $sp, 0x574 -/* 0C9370 7F094840 02002025 */ move $a0, $s0 -/* 0C9374 7F094844 27A5059C */ addiu $a1, $sp, 0x59c -/* 0C9378 7F094848 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C937C 7F09484C 27A60554 */ addiu $a2, $sp, 0x554 -/* 0C9380 7F094850 10000005 */ b .L7F094868 -/* 0C9384 7F094854 8FB80534 */ lw $t8, 0x534($sp) -/* 0C9388 7F094858 44802000 */ mtc1 $zero, $f4 -.L7F09485C: -/* 0C938C 7F09485C 00000000 */ nop -/* 0C9390 7F094860 E7A4054C */ swc1 $f4, 0x54c($sp) -/* 0C9394 7F094864 8FB80534 */ lw $t8, 0x534($sp) -.L7F094868: -/* 0C9398 7F094868 8FAF052C */ lw $t7, 0x52c($sp) -/* 0C939C 7F09486C 530F0021 */ beql $t8, $t7, .L7F0948F4 -/* 0C93A0 7F094870 44804000 */ mtc1 $zero, $f8 -/* 0C93A4 7F094874 0FC1E135 */ jal getPlayer_c_screentop -/* 0C93A8 7F094878 00000000 */ nop -/* 0C93AC 7F09487C 0FC1E12D */ jal getPlayer_c_screenheight -/* 0C93B0 7F094880 46000586 */ mov.s $f22, $f0 -/* 0C93B4 7F094884 C7B0069C */ lwc1 $f16, 0x69c($sp) -/* 0C93B8 7F094888 C7A60684 */ lwc1 $f6, 0x684($sp) -/* 0C93BC 7F09488C 46068201 */ sub.s $f8, $f16, $f6 -/* 0C93C0 7F094890 46088283 */ div.s $f10, $f16, $f8 -/* 0C93C4 7F094894 46005102 */ mul.s $f4, $f10, $f0 -/* 0C93C8 7F094898 46162180 */ add.s $f6, $f4, $f22 -/* 0C93CC 7F09489C 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0C93D0 7F0948A0 E7A60548 */ swc1 $f6, 0x548($sp) -/* 0C93D4 7F0948A4 27B00650 */ addiu $s0, $sp, 0x650 -/* 0C93D8 7F0948A8 02003025 */ move $a2, $s0 -/* 0C93DC 7F0948AC 461C0301 */ sub.s $f12, $f0, $f28 -/* 0C93E0 7F0948B0 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C93E4 7F0948B4 C7AE0548 */ lwc1 $f14, 0x548($sp) -/* 0C93E8 7F0948B8 27A40698 */ addiu $a0, $sp, 0x698 -/* 0C93EC 7F0948BC 27A50680 */ addiu $a1, $sp, 0x680 -/* 0C93F0 7F0948C0 0FC24EFF */ jal sub_GAME_7F093BFC -/* 0C93F4 7F0948C4 02003025 */ move $a2, $s0 -/* 0C93F8 7F0948C8 02002025 */ move $a0, $s0 -/* 0C93FC 7F0948CC 27A505F0 */ addiu $a1, $sp, 0x5f0 -/* 0C9400 7F0948D0 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C9404 7F0948D4 27A60570 */ addiu $a2, $sp, 0x570 -/* 0C9408 7F0948D8 02002025 */ move $a0, $s0 -/* 0C940C 7F0948DC 27A50590 */ addiu $a1, $sp, 0x590 -/* 0C9410 7F0948E0 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C9414 7F0948E4 27A60550 */ addiu $a2, $sp, 0x550 -/* 0C9418 7F0948E8 10000005 */ b .L7F094900 -/* 0C941C 7F0948EC 8FAD0538 */ lw $t5, 0x538($sp) -/* 0C9420 7F0948F0 44804000 */ mtc1 $zero, $f8 -.L7F0948F4: -/* 0C9424 7F0948F4 00000000 */ nop -/* 0C9428 7F0948F8 E7A80548 */ swc1 $f8, 0x548($sp) -/* 0C942C 7F0948FC 8FAD0538 */ lw $t5, 0x538($sp) -.L7F094900: -/* 0C9430 7F094900 8FB90534 */ lw $t9, 0x534($sp) -/* 0C9434 7F094904 51B9001C */ beql $t5, $t9, .L7F094978 -/* 0C9438 7F094908 8FAB0530 */ lw $t3, 0x530($sp) -/* 0C943C 7F09490C 0FC1E131 */ jal getPlayer_c_screenleft -/* 0C9440 7F094910 00000000 */ nop -/* 0C9444 7F094914 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0C9448 7F094918 46000586 */ mov.s $f22, $f0 -/* 0C944C 7F09491C C7A206A8 */ lwc1 $f2, 0x6a8($sp) -/* 0C9450 7F094920 C7B0069C */ lwc1 $f16, 0x69c($sp) -/* 0C9454 7F094924 27B00674 */ addiu $s0, $sp, 0x674 -/* 0C9458 7F094928 44807000 */ mtc1 $zero, $f14 -/* 0C945C 7F09492C 46101281 */ sub.s $f10, $f2, $f16 -/* 0C9460 7F094930 02003025 */ move $a2, $s0 -/* 0C9464 7F094934 460A1103 */ div.s $f4, $f2, $f10 -/* 0C9468 7F094938 46002182 */ mul.s $f6, $f4, $f0 -/* 0C946C 7F09493C 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C9470 7F094940 46163300 */ add.s $f12, $f6, $f22 -/* 0C9474 7F094944 02202025 */ move $a0, $s1 -/* 0C9478 7F094948 27A50698 */ addiu $a1, $sp, 0x698 -/* 0C947C 7F09494C 0FC24EFF */ jal sub_GAME_7F093BFC -/* 0C9480 7F094950 02003025 */ move $a2, $s0 -/* 0C9484 7F094954 02002025 */ move $a0, $s0 -/* 0C9488 7F094958 27A50614 */ addiu $a1, $sp, 0x614 -/* 0C948C 7F09495C 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C9490 7F094960 27A6057C */ addiu $a2, $sp, 0x57c -/* 0C9494 7F094964 02002025 */ move $a0, $s0 -/* 0C9498 7F094968 27A505B4 */ addiu $a1, $sp, 0x5b4 -/* 0C949C 7F09496C 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C94A0 7F094970 27A6055C */ addiu $a2, $sp, 0x55c -/* 0C94A4 7F094974 8FAB0530 */ lw $t3, 0x530($sp) -.L7F094978: -/* 0C94A8 7F094978 8FAC052C */ lw $t4, 0x52c($sp) -/* 0C94AC 7F09497C 516C001E */ beql $t3, $t4, .L7F0949F8 -/* 0C94B0 7F094980 8FAE0538 */ lw $t6, 0x538($sp) -/* 0C94B4 7F094984 0FC1E131 */ jal getPlayer_c_screenleft -/* 0C94B8 7F094988 00000000 */ nop -/* 0C94BC 7F09498C 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0C94C0 7F094990 46000586 */ mov.s $f22, $f0 -/* 0C94C4 7F094994 C7B00690 */ lwc1 $f16, 0x690($sp) -/* 0C94C8 7F094998 C7A80684 */ lwc1 $f8, 0x684($sp) -/* 0C94CC 7F09499C 46088281 */ sub.s $f10, $f16, $f8 -/* 0C94D0 7F0949A0 460A8103 */ div.s $f4, $f16, $f10 -/* 0C94D4 7F0949A4 46002182 */ mul.s $f6, $f4, $f0 -/* 0C94D8 7F0949A8 0FC1E12D */ jal getPlayer_c_screenheight -/* 0C94DC 7F0949AC 46163500 */ add.s $f20, $f6, $f22 -/* 0C94E0 7F0949B0 27B00668 */ addiu $s0, $sp, 0x668 -/* 0C94E4 7F0949B4 02003025 */ move $a2, $s0 -/* 0C94E8 7F0949B8 4600A306 */ mov.s $f12, $f20 -/* 0C94EC 7F0949BC 0FC24E20 */ jal sub_GAME_7F093880 -/* 0C94F0 7F0949C0 461C0381 */ sub.s $f14, $f0, $f28 -/* 0C94F4 7F0949C4 27A4068C */ addiu $a0, $sp, 0x68c -/* 0C94F8 7F0949C8 27A50680 */ addiu $a1, $sp, 0x680 -/* 0C94FC 7F0949CC 0FC24EFF */ jal sub_GAME_7F093BFC -/* 0C9500 7F0949D0 02003025 */ move $a2, $s0 -/* 0C9504 7F0949D4 02002025 */ move $a0, $s0 -/* 0C9508 7F0949D8 27A50608 */ addiu $a1, $sp, 0x608 -/* 0C950C 7F0949DC 0FC24E3F */ jal sub_GAME_7F0938FC -/* 0C9510 7F0949E0 27A60578 */ addiu $a2, $sp, 0x578 -/* 0C9514 7F0949E4 02002025 */ move $a0, $s0 -/* 0C9518 7F0949E8 27A505A8 */ addiu $a1, $sp, 0x5a8 -/* 0C951C 7F0949EC 0FC24E9E */ jal sub_GAME_7F093A78 -/* 0C9520 7F0949F0 27A60558 */ addiu $a2, $sp, 0x558 -/* 0C9524 7F0949F4 8FAE0538 */ lw $t6, 0x538($sp) -.L7F0949F8: -/* 0C9528 7F0949F8 8FB80534 */ lw $t8, 0x534($sp) -/* 0C952C 7F0949FC 8FB90530 */ lw $t9, 0x530($sp) -/* 0C9530 7F094A00 000E50C0 */ sll $t2, $t6, 3 -/* 0C9534 7F094A04 8FAE052C */ lw $t6, 0x52c($sp) -/* 0C9538 7F094A08 00187880 */ sll $t7, $t8, 2 -/* 0C953C 7F094A0C 014F6825 */ or $t5, $t2, $t7 -/* 0C9540 7F094A10 00195840 */ sll $t3, $t9, 1 -/* 0C9544 7F094A14 01AB6025 */ or $t4, $t5, $t3 -/* 0C9548 7F094A18 018EC025 */ or $t8, $t4, $t6 -/* 0C954C 7F094A1C 2F010010 */ sltiu $at, $t8, 0x10 -/* 0C9550 7F094A20 10200360 */ beqz $at, .L7F0957A4 -/* 0C9554 7F094A24 AFB8005C */ sw $t8, 0x5c($sp) -/* 0C9558 7F094A28 00185080 */ sll $t2, $t8, 2 -/* 0C955C 7F094A2C 3C018005 */ lui $at, %hi(jpt_80057544) -/* 0C9560 7F094A30 002A0821 */ addu $at, $at, $t2 -/* 0C9564 7F094A34 8C2A7544 */ lw $t2, %lo(jpt_80057544)($at) -.L7F094A38: -/* 0C9568 7F094A38 01400008 */ jr $t2 -/* 0C956C 7F094A3C 00000000 */ nop -.L7F094A40: -/* 0C9570 7F094A40 1000035A */ b .L7F0957AC -/* 0C9574 7F094A44 00008825 */ move $s1, $zero -.L7F094A48: -/* 0C9578 7F094A48 C7A205E4 */ lwc1 $f2, 0x5e4($sp) -/* 0C957C 7F094A4C C7AA05E8 */ lwc1 $f10, 0x5e8($sp) -/* 0C9580 7F094A50 C7AC05EC */ lwc1 $f12, 0x5ec($sp) -/* 0C9584 7F094A54 46181202 */ mul.s $f8, $f2, $f24 -/* 0C9588 7F094A58 C7AE05D8 */ lwc1 $f14, 0x5d8($sp) -/* 0C958C 7F094A5C C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0C9590 7F094A60 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9594 7F094A64 C7AA05DC */ lwc1 $f10, 0x5dc($sp) -/* 0C9598 7F094A68 C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0C959C 7F094A6C 46186182 */ mul.s $f6, $f12, $f24 -/* 0C95A0 7F094A70 E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C95A4 7F094A74 C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0C95A8 7F094A78 46187202 */ mul.s $f8, $f14, $f24 -/* 0C95AC 7F094A7C E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C95B0 7F094A80 C7B605C0 */ lwc1 $f22, 0x5c0($sp) -/* 0C95B4 7F094A84 46185102 */ mul.s $f4, $f10, $f24 -/* 0C95B8 7F094A88 E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C95BC 7F094A8C C7AA05D0 */ lwc1 $f10, 0x5d0($sp) -/* 0C95C0 7F094A90 46188182 */ mul.s $f6, $f16, $f24 -/* 0C95C4 7F094A94 E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C95C8 7F094A98 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) -/* 0C95CC 7F094A9C 46189202 */ mul.s $f8, $f18, $f24 -/* 0C95D0 7F094AA0 E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C95D4 7F094AA4 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C95D8 7F094AA8 46185102 */ mul.s $f4, $f10, $f24 -/* 0C95DC 7F094AAC E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C95E0 7F094AB0 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) -/* 0C95E4 7F094AB4 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C95E8 7F094AB8 E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C95EC 7F094ABC C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C95F0 7F094AC0 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C95F4 7F094AC4 E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C95F8 7F094AC8 24110004 */ li $s1, 4 -/* 0C95FC 7F094ACC 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9600 7F094AD0 E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C9604 7F094AD4 46008280 */ add.s $f10, $f16, $f0 -/* 0C9608 7F094AD8 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C960C 7F094ADC E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9610 7F094AE0 46006200 */ add.s $f8, $f12, $f0 -/* 0C9614 7F094AE4 E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0C9618 7F094AE8 E7A40488 */ swc1 $f4, 0x488($sp) -/* 0C961C 7F094AEC 4600A100 */ add.s $f4, $f20, $f0 -/* 0C9620 7F094AF0 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0C9624 7F094AF4 E7A6048C */ swc1 $f6, 0x48c($sp) -/* 0C9628 7F094AF8 4600D180 */ add.s $f6, $f26, $f0 -/* 0C962C 7F094AFC E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0C9630 7F094B00 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9634 7F094B04 8FA5056C */ lw $a1, 0x56c($sp) -/* 0C9638 7F094B08 E7A60494 */ swc1 $f6, 0x494($sp) -/* 0C963C 7F094B0C E7A20448 */ swc1 $f2, 0x448($sp) -/* 0C9640 7F094B10 E7AE0460 */ swc1 $f14, 0x460($sp) -/* 0C9644 7F094B14 E7B20478 */ swc1 $f18, 0x478($sp) -/* 0C9648 7F094B18 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C964C 7F094B1C E7B60490 */ swc1 $f22, 0x490($sp) -/* 0C9650 7F094B20 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9654 7F094B24 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9658 7F094B28 8FA50568 */ lw $a1, 0x568($sp) -/* 0C965C 7F094B2C 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9660 7F094B30 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9664 7F094B34 8FA50564 */ lw $a1, 0x564($sp) -/* 0C9668 7F094B38 27A40484 */ addiu $a0, $sp, 0x484 -/* 0C966C 7F094B3C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9670 7F094B40 8FA50560 */ lw $a1, 0x560($sp) -/* 0C9674 7F094B44 10000319 */ b .L7F0957AC -/* 0C9678 7F094B48 00000000 */ nop -.L7F094B4C: -/* 0C967C 7F094B4C C7A205E4 */ lwc1 $f2, 0x5e4($sp) -/* 0C9680 7F094B50 C7AA05E8 */ lwc1 $f10, 0x5e8($sp) -/* 0C9684 7F094B54 C7AC05EC */ lwc1 $f12, 0x5ec($sp) -/* 0C9688 7F094B58 46181202 */ mul.s $f8, $f2, $f24 -/* 0C968C 7F094B5C C7AE05D8 */ lwc1 $f14, 0x5d8($sp) -/* 0C9690 7F094B60 C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0C9694 7F094B64 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9698 7F094B68 C7AA05DC */ lwc1 $f10, 0x5dc($sp) -/* 0C969C 7F094B6C C7B2059C */ lwc1 $f18, 0x59c($sp) -/* 0C96A0 7F094B70 46186182 */ mul.s $f6, $f12, $f24 -/* 0C96A4 7F094B74 E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C96A8 7F094B78 C7B405A4 */ lwc1 $f20, 0x5a4($sp) -/* 0C96AC 7F094B7C 46187202 */ mul.s $f8, $f14, $f24 -/* 0C96B0 7F094B80 E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C96B4 7F094B84 C7B60590 */ lwc1 $f22, 0x590($sp) -/* 0C96B8 7F094B88 46185102 */ mul.s $f4, $f10, $f24 -/* 0C96BC 7F094B8C E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C96C0 7F094B90 C7AA05A0 */ lwc1 $f10, 0x5a0($sp) -/* 0C96C4 7F094B94 46188182 */ mul.s $f6, $f16, $f24 -/* 0C96C8 7F094B98 E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C96CC 7F094B9C C7BA0598 */ lwc1 $f26, 0x598($sp) -/* 0C96D0 7F094BA0 46189202 */ mul.s $f8, $f18, $f24 -/* 0C96D4 7F094BA4 E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C96D8 7F094BA8 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C96DC 7F094BAC 46185102 */ mul.s $f4, $f10, $f24 -/* 0C96E0 7F094BB0 E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C96E4 7F094BB4 C7AA0594 */ lwc1 $f10, 0x594($sp) -/* 0C96E8 7F094BB8 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C96EC 7F094BBC E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C96F0 7F094BC0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C96F4 7F094BC4 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C96F8 7F094BC8 E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C96FC 7F094BCC 24110004 */ li $s1, 4 -/* 0C9700 7F094BD0 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9704 7F094BD4 E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C9708 7F094BD8 46008280 */ add.s $f10, $f16, $f0 -/* 0C970C 7F094BDC 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C9710 7F094BE0 E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9714 7F094BE4 46006200 */ add.s $f8, $f12, $f0 -/* 0C9718 7F094BE8 E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0C971C 7F094BEC E7A40488 */ swc1 $f4, 0x488($sp) -/* 0C9720 7F094BF0 4600A100 */ add.s $f4, $f20, $f0 -/* 0C9724 7F094BF4 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0C9728 7F094BF8 E7A6048C */ swc1 $f6, 0x48c($sp) -/* 0C972C 7F094BFC 4600D180 */ add.s $f6, $f26, $f0 -/* 0C9730 7F094C00 E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0C9734 7F094C04 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9738 7F094C08 8FA5056C */ lw $a1, 0x56c($sp) -/* 0C973C 7F094C0C E7A60494 */ swc1 $f6, 0x494($sp) -/* 0C9740 7F094C10 E7A20448 */ swc1 $f2, 0x448($sp) -/* 0C9744 7F094C14 E7AE0460 */ swc1 $f14, 0x460($sp) -/* 0C9748 7F094C18 E7B20478 */ swc1 $f18, 0x478($sp) -/* 0C974C 7F094C1C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9750 7F094C20 E7B60490 */ swc1 $f22, 0x490($sp) -/* 0C9754 7F094C24 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9758 7F094C28 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C975C 7F094C2C 8FA50568 */ lw $a1, 0x568($sp) -/* 0C9760 7F094C30 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9764 7F094C34 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9768 7F094C38 8FA50554 */ lw $a1, 0x554($sp) -/* 0C976C 7F094C3C 27A40484 */ addiu $a0, $sp, 0x484 -/* 0C9770 7F094C40 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9774 7F094C44 8FA50550 */ lw $a1, 0x550($sp) -/* 0C9778 7F094C48 100002D8 */ b .L7F0957AC -/* 0C977C 7F094C4C 00000000 */ nop -.L7F094C50: -/* 0C9780 7F094C50 C7B605C0 */ lwc1 $f22, 0x5c0($sp) -/* 0C9784 7F094C54 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) -/* 0C9788 7F094C58 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) -/* 0C978C 7F094C5C 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C9790 7F094C60 C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0C9794 7F094C64 C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0C9798 7F094C68 46185102 */ mul.s $f4, $f10, $f24 -/* 0C979C 7F094C6C C7AA05D0 */ lwc1 $f10, 0x5d0($sp) -/* 0C97A0 7F094C70 C7AE0590 */ lwc1 $f14, 0x590($sp) -/* 0C97A4 7F094C74 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C97A8 7F094C78 E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C97AC 7F094C7C C7B00598 */ lwc1 $f16, 0x598($sp) -/* 0C97B0 7F094C80 46189202 */ mul.s $f8, $f18, $f24 -/* 0C97B4 7F094C84 E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C97B8 7F094C88 C7A2059C */ lwc1 $f2, 0x59c($sp) -/* 0C97BC 7F094C8C 46185102 */ mul.s $f4, $f10, $f24 -/* 0C97C0 7F094C90 E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C97C4 7F094C94 C7AA0594 */ lwc1 $f10, 0x594($sp) -/* 0C97C8 7F094C98 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C97CC 7F094C9C E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C97D0 7F094CA0 C7AC05A4 */ lwc1 $f12, 0x5a4($sp) -/* 0C97D4 7F094CA4 46187202 */ mul.s $f8, $f14, $f24 -/* 0C97D8 7F094CA8 E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C97DC 7F094CAC 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C97E0 7F094CB0 46185102 */ mul.s $f4, $f10, $f24 -/* 0C97E4 7F094CB4 E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C97E8 7F094CB8 C7AA05A0 */ lwc1 $f10, 0x5a0($sp) -/* 0C97EC 7F094CBC 46188182 */ mul.s $f6, $f16, $f24 -/* 0C97F0 7F094CC0 E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C97F4 7F094CC4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C97F8 7F094CC8 46181202 */ mul.s $f8, $f2, $f24 -/* 0C97FC 7F094CCC E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C9800 7F094CD0 240F0001 */ li $t7, 1 -/* 0C9804 7F094CD4 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9808 7F094CD8 E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C980C 7F094CDC 4600A280 */ add.s $f10, $f20, $f0 -/* 0C9810 7F094CE0 46186182 */ mul.s $f6, $f12, $f24 -/* 0C9814 7F094CE4 E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9818 7F094CE8 4600D200 */ add.s $f8, $f26, $f0 -/* 0C981C 7F094CEC 24110004 */ li $s1, 4 -/* 0C9820 7F094CF0 E7A40488 */ swc1 $f4, 0x488($sp) -/* 0C9824 7F094CF4 46008100 */ add.s $f4, $f16, $f0 -/* 0C9828 7F094CF8 AFAF0430 */ sw $t7, 0x430($sp) -/* 0C982C 7F094CFC E7A6048C */ swc1 $f6, 0x48c($sp) -/* 0C9830 7F094D00 46006180 */ add.s $f6, $f12, $f0 -/* 0C9834 7F094D04 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0C9838 7F094D08 E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0C983C 7F094D0C E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0C9840 7F094D10 E7A60494 */ swc1 $f6, 0x494($sp) -/* 0C9844 7F094D14 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9848 7F094D18 8FA50560 */ lw $a1, 0x560($sp) -/* 0C984C 7F094D1C E7B60448 */ swc1 $f22, 0x448($sp) -/* 0C9850 7F094D20 E7B20460 */ swc1 $f18, 0x460($sp) -/* 0C9854 7F094D24 E7AE0478 */ swc1 $f14, 0x478($sp) -/* 0C9858 7F094D28 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C985C 7F094D2C E7A20490 */ swc1 $f2, 0x490($sp) -/* 0C9860 7F094D30 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9864 7F094D34 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9868 7F094D38 8FA50564 */ lw $a1, 0x564($sp) -/* 0C986C 7F094D3C 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9870 7F094D40 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9874 7F094D44 8FA50550 */ lw $a1, 0x550($sp) -/* 0C9878 7F094D48 27A40484 */ addiu $a0, $sp, 0x484 -/* 0C987C 7F094D4C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9880 7F094D50 8FA50554 */ lw $a1, 0x554($sp) -/* 0C9884 7F094D54 10000295 */ b .L7F0957AC -/* 0C9888 7F094D58 00000000 */ nop -.L7F094D5C: -/* 0C988C 7F094D5C C7AE05D8 */ lwc1 $f14, 0x5d8($sp) -/* 0C9890 7F094D60 C7AA05DC */ lwc1 $f10, 0x5dc($sp) -/* 0C9894 7F094D64 C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0C9898 7F094D68 46187202 */ mul.s $f8, $f14, $f24 -/* 0C989C 7F094D6C C7B605C0 */ lwc1 $f22, 0x5c0($sp) -/* 0C98A0 7F094D70 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) -/* 0C98A4 7F094D74 46185102 */ mul.s $f4, $f10, $f24 -/* 0C98A8 7F094D78 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) -/* 0C98AC 7F094D7C C7A205B4 */ lwc1 $f2, 0x5b4($sp) -/* 0C98B0 7F094D80 46188182 */ mul.s $f6, $f16, $f24 -/* 0C98B4 7F094D84 E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C98B8 7F094D88 C7AC05BC */ lwc1 $f12, 0x5bc($sp) -/* 0C98BC 7F094D8C 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C98C0 7F094D90 E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C98C4 7F094D94 C7B205A8 */ lwc1 $f18, 0x5a8($sp) -/* 0C98C8 7F094D98 46185102 */ mul.s $f4, $f10, $f24 -/* 0C98CC 7F094D9C E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C98D0 7F094DA0 C7AA05B8 */ lwc1 $f10, 0x5b8($sp) -/* 0C98D4 7F094DA4 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C98D8 7F094DA8 E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C98DC 7F094DAC C7B405B0 */ lwc1 $f20, 0x5b0($sp) -/* 0C98E0 7F094DB0 46181202 */ mul.s $f8, $f2, $f24 -/* 0C98E4 7F094DB4 E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C98E8 7F094DB8 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C98EC 7F094DBC 46185102 */ mul.s $f4, $f10, $f24 -/* 0C98F0 7F094DC0 E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C98F4 7F094DC4 C7AA05AC */ lwc1 $f10, 0x5ac($sp) -/* 0C98F8 7F094DC8 46186182 */ mul.s $f6, $f12, $f24 -/* 0C98FC 7F094DCC E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C9900 7F094DD0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9904 7F094DD4 46189202 */ mul.s $f8, $f18, $f24 -/* 0C9908 7F094DD8 E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C990C 7F094DDC 24110004 */ li $s1, 4 -/* 0C9910 7F094DE0 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9914 7F094DE4 E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C9918 7F094DE8 4600D280 */ add.s $f10, $f26, $f0 -/* 0C991C 7F094DEC 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C9920 7F094DF0 E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9924 7F094DF4 46008200 */ add.s $f8, $f16, $f0 -/* 0C9928 7F094DF8 E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0C992C 7F094DFC E7A40488 */ swc1 $f4, 0x488($sp) -/* 0C9930 7F094E00 46006100 */ add.s $f4, $f12, $f0 -/* 0C9934 7F094E04 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0C9938 7F094E08 E7A6048C */ swc1 $f6, 0x48c($sp) -/* 0C993C 7F094E0C 4600A180 */ add.s $f6, $f20, $f0 -/* 0C9940 7F094E10 E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0C9944 7F094E14 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9948 7F094E18 8FA50568 */ lw $a1, 0x568($sp) -/* 0C994C 7F094E1C E7A60494 */ swc1 $f6, 0x494($sp) -/* 0C9950 7F094E20 E7AE0448 */ swc1 $f14, 0x448($sp) -/* 0C9954 7F094E24 E7B60460 */ swc1 $f22, 0x460($sp) -/* 0C9958 7F094E28 E7A20478 */ swc1 $f2, 0x478($sp) -/* 0C995C 7F094E2C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9960 7F094E30 E7B20490 */ swc1 $f18, 0x490($sp) -/* 0C9964 7F094E34 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9968 7F094E38 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C996C 7F094E3C 8FA50560 */ lw $a1, 0x560($sp) -/* 0C9970 7F094E40 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9974 7F094E44 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9978 7F094E48 8FA5055C */ lw $a1, 0x55c($sp) -/* 0C997C 7F094E4C 27A40484 */ addiu $a0, $sp, 0x484 -/* 0C9980 7F094E50 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9984 7F094E54 8FA50558 */ lw $a1, 0x558($sp) -/* 0C9988 7F094E58 10000254 */ b .L7F0957AC -/* 0C998C 7F094E5C 00000000 */ nop -.L7F094E60: -/* 0C9990 7F094E60 C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0C9994 7F094E64 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) -/* 0C9998 7F094E68 C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0C999C 7F094E6C 46189202 */ mul.s $f8, $f18, $f24 -/* 0C99A0 7F094E70 C7A205E4 */ lwc1 $f2, 0x5e4($sp) -/* 0C99A4 7F094E74 C7AC05EC */ lwc1 $f12, 0x5ec($sp) -/* 0C99A8 7F094E78 46185102 */ mul.s $f4, $f10, $f24 -/* 0C99AC 7F094E7C C7AA05E8 */ lwc1 $f10, 0x5e8($sp) -/* 0C99B0 7F094E80 C7B605A8 */ lwc1 $f22, 0x5a8($sp) -/* 0C99B4 7F094E84 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C99B8 7F094E88 E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C99BC 7F094E8C C7BA05B0 */ lwc1 $f26, 0x5b0($sp) -/* 0C99C0 7F094E90 46181202 */ mul.s $f8, $f2, $f24 -/* 0C99C4 7F094E94 E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C99C8 7F094E98 C7AE05B4 */ lwc1 $f14, 0x5b4($sp) -/* 0C99CC 7F094E9C 46185102 */ mul.s $f4, $f10, $f24 -/* 0C99D0 7F094EA0 E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C99D4 7F094EA4 C7AA05AC */ lwc1 $f10, 0x5ac($sp) -/* 0C99D8 7F094EA8 46186182 */ mul.s $f6, $f12, $f24 -/* 0C99DC 7F094EAC E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C99E0 7F094EB0 C7B005BC */ lwc1 $f16, 0x5bc($sp) -/* 0C99E4 7F094EB4 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C99E8 7F094EB8 E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C99EC 7F094EBC 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C99F0 7F094EC0 46185102 */ mul.s $f4, $f10, $f24 -/* 0C99F4 7F094EC4 E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C99F8 7F094EC8 C7AA05B8 */ lwc1 $f10, 0x5b8($sp) -/* 0C99FC 7F094ECC 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C9A00 7F094ED0 E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C9A04 7F094ED4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9A08 7F094ED8 46187202 */ mul.s $f8, $f14, $f24 -/* 0C9A0C 7F094EDC E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C9A10 7F094EE0 24110004 */ li $s1, 4 -/* 0C9A14 7F094EE4 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9A18 7F094EE8 E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C9A1C 7F094EEC 46006280 */ add.s $f10, $f12, $f0 -/* 0C9A20 7F094EF0 46188182 */ mul.s $f6, $f16, $f24 -/* 0C9A24 7F094EF4 E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9A28 7F094EF8 4600A200 */ add.s $f8, $f20, $f0 -/* 0C9A2C 7F094EFC E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0C9A30 7F094F00 E7A40488 */ swc1 $f4, 0x488($sp) -/* 0C9A34 7F094F04 4600D100 */ add.s $f4, $f26, $f0 -/* 0C9A38 7F094F08 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0C9A3C 7F094F0C E7A6048C */ swc1 $f6, 0x48c($sp) -/* 0C9A40 7F094F10 46008180 */ add.s $f6, $f16, $f0 -/* 0C9A44 7F094F14 E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0C9A48 7F094F18 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9A4C 7F094F1C 8FA50564 */ lw $a1, 0x564($sp) -/* 0C9A50 7F094F20 E7A60494 */ swc1 $f6, 0x494($sp) -/* 0C9A54 7F094F24 E7B20448 */ swc1 $f18, 0x448($sp) -/* 0C9A58 7F094F28 E7A20460 */ swc1 $f2, 0x460($sp) -/* 0C9A5C 7F094F2C E7B60478 */ swc1 $f22, 0x478($sp) -/* 0C9A60 7F094F30 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9A64 7F094F34 E7AE0490 */ swc1 $f14, 0x490($sp) -/* 0C9A68 7F094F38 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9A6C 7F094F3C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9A70 7F094F40 8FA5056C */ lw $a1, 0x56c($sp) -/* 0C9A74 7F094F44 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9A78 7F094F48 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9A7C 7F094F4C 8FA50558 */ lw $a1, 0x558($sp) -/* 0C9A80 7F094F50 27A40484 */ addiu $a0, $sp, 0x484 -/* 0C9A84 7F094F54 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9A88 7F094F58 8FA5055C */ lw $a1, 0x55c($sp) -/* 0C9A8C 7F094F5C 10000213 */ b .L7F0957AC -/* 0C9A90 7F094F60 00000000 */ nop -.L7F094F64: -/* 0C9A94 7F094F64 C7B605C0 */ lwc1 $f22, 0x5c0($sp) -/* 0C9A98 7F094F68 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) -/* 0C9A9C 7F094F6C C7BA05C8 */ lwc1 $f26, 0x5c8($sp) -/* 0C9AA0 7F094F70 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C9AA4 7F094F74 C7AE05A8 */ lwc1 $f14, 0x5a8($sp) -/* 0C9AA8 7F094F78 C7B005B0 */ lwc1 $f16, 0x5b0($sp) -/* 0C9AAC 7F094F7C 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9AB0 7F094F80 C7AA05AC */ lwc1 $f10, 0x5ac($sp) -/* 0C9AB4 7F094F84 C7A20590 */ lwc1 $f2, 0x590($sp) -/* 0C9AB8 7F094F88 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C9ABC 7F094F8C E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C9AC0 7F094F90 C7AC0598 */ lwc1 $f12, 0x598($sp) -/* 0C9AC4 7F094F94 46187202 */ mul.s $f8, $f14, $f24 -/* 0C9AC8 7F094F98 E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C9ACC 7F094F9C 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C9AD0 7F094FA0 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9AD4 7F094FA4 E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C9AD8 7F094FA8 C7AA0594 */ lwc1 $f10, 0x594($sp) -/* 0C9ADC 7F094FAC 46188182 */ mul.s $f6, $f16, $f24 -/* 0C9AE0 7F094FB0 E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C9AE4 7F094FB4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9AE8 7F094FB8 46181202 */ mul.s $f8, $f2, $f24 -/* 0C9AEC 7F094FBC E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C9AF0 7F094FC0 24110003 */ li $s1, 3 -/* 0C9AF4 7F094FC4 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9AF8 7F094FC8 E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C9AFC 7F094FCC 46008280 */ add.s $f10, $f16, $f0 -/* 0C9B00 7F094FD0 46186182 */ mul.s $f6, $f12, $f24 -/* 0C9B04 7F094FD4 E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C9B08 7F094FD8 4600D200 */ add.s $f8, $f26, $f0 -/* 0C9B0C 7F094FDC E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0C9B10 7F094FE0 E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C9B14 7F094FE4 46006100 */ add.s $f4, $f12, $f0 -/* 0C9B18 7F094FE8 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0C9B1C 7F094FEC E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C9B20 7F094FF0 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9B24 7F094FF4 E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0C9B28 7F094FF8 8FA50560 */ lw $a1, 0x560($sp) -/* 0C9B2C 7F094FFC E7B60448 */ swc1 $f22, 0x448($sp) -/* 0C9B30 7F095000 E7AE0460 */ swc1 $f14, 0x460($sp) -/* 0C9B34 7F095004 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9B38 7F095008 E7A20478 */ swc1 $f2, 0x478($sp) -/* 0C9B3C 7F09500C 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9B40 7F095010 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9B44 7F095014 8FA50558 */ lw $a1, 0x558($sp) -/* 0C9B48 7F095018 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9B4C 7F09501C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9B50 7F095020 8FA50550 */ lw $a1, 0x550($sp) -/* 0C9B54 7F095024 100001E1 */ b .L7F0957AC -/* 0C9B58 7F095028 00000000 */ nop -.L7F09502C: -/* 0C9B5C 7F09502C C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0C9B60 7F095030 C7A805D0 */ lwc1 $f8, 0x5d0($sp) -/* 0C9B64 7F095034 C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0C9B68 7F095038 46189182 */ mul.s $f6, $f18, $f24 -/* 0C9B6C 7F09503C C7A2059C */ lwc1 $f2, 0x59c($sp) -/* 0C9B70 7F095040 C7AC05A4 */ lwc1 $f12, 0x5a4($sp) -/* 0C9B74 7F095044 46184282 */ mul.s $f10, $f8, $f24 -/* 0C9B78 7F095048 C7A805A0 */ lwc1 $f8, 0x5a0($sp) -/* 0C9B7C 7F09504C C7AE05A8 */ lwc1 $f14, 0x5a8($sp) -/* 0C9B80 7F095050 4618A102 */ mul.s $f4, $f20, $f24 -/* 0C9B84 7F095054 E7A6043C */ swc1 $f6, 0x43c($sp) -/* 0C9B88 7F095058 C7B005B0 */ lwc1 $f16, 0x5b0($sp) -/* 0C9B8C 7F09505C 46181182 */ mul.s $f6, $f2, $f24 -/* 0C9B90 7F095060 E7AA0440 */ swc1 $f10, 0x440($sp) -/* 0C9B94 7F095064 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C9B98 7F095068 46184282 */ mul.s $f10, $f8, $f24 -/* 0C9B9C 7F09506C E7A40444 */ swc1 $f4, 0x444($sp) -/* 0C9BA0 7F095070 C7A805AC */ lwc1 $f8, 0x5ac($sp) -/* 0C9BA4 7F095074 46186102 */ mul.s $f4, $f12, $f24 -/* 0C9BA8 7F095078 E7A60454 */ swc1 $f6, 0x454($sp) -/* 0C9BAC 7F09507C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9BB0 7F095080 46187182 */ mul.s $f6, $f14, $f24 -/* 0C9BB4 7F095084 E7AA0458 */ swc1 $f10, 0x458($sp) -/* 0C9BB8 7F095088 24110003 */ li $s1, 3 -/* 0C9BBC 7F09508C 46184282 */ mul.s $f10, $f8, $f24 -/* 0C9BC0 7F095090 E7A4045C */ swc1 $f4, 0x45c($sp) -/* 0C9BC4 7F095094 46006200 */ add.s $f8, $f12, $f0 -/* 0C9BC8 7F095098 46188102 */ mul.s $f4, $f16, $f24 -/* 0C9BCC 7F09509C E7A6046C */ swc1 $f6, 0x46c($sp) -/* 0C9BD0 7F0950A0 4600A180 */ add.s $f6, $f20, $f0 -/* 0C9BD4 7F0950A4 E7A80464 */ swc1 $f8, 0x464($sp) -/* 0C9BD8 7F0950A8 E7AA0470 */ swc1 $f10, 0x470($sp) -/* 0C9BDC 7F0950AC 46008280 */ add.s $f10, $f16, $f0 -/* 0C9BE0 7F0950B0 E7A6044C */ swc1 $f6, 0x44c($sp) -/* 0C9BE4 7F0950B4 E7A40474 */ swc1 $f4, 0x474($sp) -/* 0C9BE8 7F0950B8 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9BEC 7F0950BC E7AA047C */ swc1 $f10, 0x47c($sp) -/* 0C9BF0 7F0950C0 8FA50564 */ lw $a1, 0x564($sp) -/* 0C9BF4 7F0950C4 E7B20448 */ swc1 $f18, 0x448($sp) -/* 0C9BF8 7F0950C8 E7A20460 */ swc1 $f2, 0x460($sp) -/* 0C9BFC 7F0950CC 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9C00 7F0950D0 E7AE0478 */ swc1 $f14, 0x478($sp) -/* 0C9C04 7F0950D4 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9C08 7F0950D8 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9C0C 7F0950DC 8FA50554 */ lw $a1, 0x554($sp) -/* 0C9C10 7F0950E0 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9C14 7F0950E4 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9C18 7F0950E8 8FA50558 */ lw $a1, 0x558($sp) -/* 0C9C1C 7F0950EC 100001AF */ b .L7F0957AC -/* 0C9C20 7F0950F0 00000000 */ nop -.L7F0950F4: -/* 0C9C24 7F0950F4 C7AE05D8 */ lwc1 $f14, 0x5d8($sp) -/* 0C9C28 7F0950F8 C7A605DC */ lwc1 $f6, 0x5dc($sp) -/* 0C9C2C 7F0950FC C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0C9C30 7F095100 46187102 */ mul.s $f4, $f14, $f24 -/* 0C9C34 7F095104 C7B20590 */ lwc1 $f18, 0x590($sp) -/* 0C9C38 7F095108 C7B40598 */ lwc1 $f20, 0x598($sp) -/* 0C9C3C 7F09510C 46183202 */ mul.s $f8, $f6, $f24 -/* 0C9C40 7F095110 C7A60594 */ lwc1 $f6, 0x594($sp) -/* 0C9C44 7F095114 C7A205B4 */ lwc1 $f2, 0x5b4($sp) -/* 0C9C48 7F095118 46188282 */ mul.s $f10, $f16, $f24 -/* 0C9C4C 7F09511C E7A4043C */ swc1 $f4, 0x43c($sp) -/* 0C9C50 7F095120 C7AC05BC */ lwc1 $f12, 0x5bc($sp) -/* 0C9C54 7F095124 46189102 */ mul.s $f4, $f18, $f24 -/* 0C9C58 7F095128 E7A80440 */ swc1 $f8, 0x440($sp) -/* 0C9C5C 7F09512C 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C9C60 7F095130 46183202 */ mul.s $f8, $f6, $f24 -/* 0C9C64 7F095134 E7AA0444 */ swc1 $f10, 0x444($sp) -/* 0C9C68 7F095138 C7A605B8 */ lwc1 $f6, 0x5b8($sp) -/* 0C9C6C 7F09513C 4618A282 */ mul.s $f10, $f20, $f24 -/* 0C9C70 7F095140 E7A40454 */ swc1 $f4, 0x454($sp) -/* 0C9C74 7F095144 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9C78 7F095148 46181102 */ mul.s $f4, $f2, $f24 -/* 0C9C7C 7F09514C E7A80458 */ swc1 $f8, 0x458($sp) -/* 0C9C80 7F095150 24110003 */ li $s1, 3 -/* 0C9C84 7F095154 46183202 */ mul.s $f8, $f6, $f24 -/* 0C9C88 7F095158 E7AA045C */ swc1 $f10, 0x45c($sp) -/* 0C9C8C 7F09515C 4600A180 */ add.s $f6, $f20, $f0 -/* 0C9C90 7F095160 46186282 */ mul.s $f10, $f12, $f24 -/* 0C9C94 7F095164 E7A4046C */ swc1 $f4, 0x46c($sp) -/* 0C9C98 7F095168 46008100 */ add.s $f4, $f16, $f0 -/* 0C9C9C 7F09516C E7A60464 */ swc1 $f6, 0x464($sp) -/* 0C9CA0 7F095170 E7A80470 */ swc1 $f8, 0x470($sp) -/* 0C9CA4 7F095174 46006200 */ add.s $f8, $f12, $f0 -/* 0C9CA8 7F095178 E7A4044C */ swc1 $f4, 0x44c($sp) -/* 0C9CAC 7F09517C E7AA0474 */ swc1 $f10, 0x474($sp) -/* 0C9CB0 7F095180 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9CB4 7F095184 E7A8047C */ swc1 $f8, 0x47c($sp) -/* 0C9CB8 7F095188 8FA50568 */ lw $a1, 0x568($sp) -/* 0C9CBC 7F09518C E7AE0448 */ swc1 $f14, 0x448($sp) -/* 0C9CC0 7F095190 E7B20460 */ swc1 $f18, 0x460($sp) -/* 0C9CC4 7F095194 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9CC8 7F095198 E7A20478 */ swc1 $f2, 0x478($sp) -/* 0C9CCC 7F09519C 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9CD0 7F0951A0 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9CD4 7F0951A4 8FA50550 */ lw $a1, 0x550($sp) -/* 0C9CD8 7F0951A8 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9CDC 7F0951AC 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9CE0 7F0951B0 8FA5055C */ lw $a1, 0x55c($sp) -/* 0C9CE4 7F0951B4 1000017D */ b .L7F0957AC -/* 0C9CE8 7F0951B8 00000000 */ nop -.L7F0951BC: -/* 0C9CEC 7F0951BC C7A205E4 */ lwc1 $f2, 0x5e4($sp) -/* 0C9CF0 7F0951C0 C7A405E8 */ lwc1 $f4, 0x5e8($sp) -/* 0C9CF4 7F0951C4 C7AC05EC */ lwc1 $f12, 0x5ec($sp) -/* 0C9CF8 7F0951C8 46181282 */ mul.s $f10, $f2, $f24 -/* 0C9CFC 7F0951CC C7AE05B4 */ lwc1 $f14, 0x5b4($sp) -/* 0C9D00 7F0951D0 C7B005BC */ lwc1 $f16, 0x5bc($sp) -/* 0C9D04 7F0951D4 46182182 */ mul.s $f6, $f4, $f24 -/* 0C9D08 7F0951D8 C7A405B8 */ lwc1 $f4, 0x5b8($sp) -/* 0C9D0C 7F0951DC C7B2059C */ lwc1 $f18, 0x59c($sp) -/* 0C9D10 7F0951E0 46186202 */ mul.s $f8, $f12, $f24 -/* 0C9D14 7F0951E4 E7AA043C */ swc1 $f10, 0x43c($sp) -/* 0C9D18 7F0951E8 C7B405A4 */ lwc1 $f20, 0x5a4($sp) -/* 0C9D1C 7F0951EC 46187282 */ mul.s $f10, $f14, $f24 -/* 0C9D20 7F0951F0 E7A60440 */ swc1 $f6, 0x440($sp) -/* 0C9D24 7F0951F4 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C9D28 7F0951F8 46182182 */ mul.s $f6, $f4, $f24 -/* 0C9D2C 7F0951FC E7A80444 */ swc1 $f8, 0x444($sp) -/* 0C9D30 7F095200 C7A405A0 */ lwc1 $f4, 0x5a0($sp) -/* 0C9D34 7F095204 46188202 */ mul.s $f8, $f16, $f24 -/* 0C9D38 7F095208 E7AA0454 */ swc1 $f10, 0x454($sp) -/* 0C9D3C 7F09520C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9D40 7F095210 46189282 */ mul.s $f10, $f18, $f24 -/* 0C9D44 7F095214 E7A60458 */ swc1 $f6, 0x458($sp) -/* 0C9D48 7F095218 24110003 */ li $s1, 3 -/* 0C9D4C 7F09521C 46182182 */ mul.s $f6, $f4, $f24 -/* 0C9D50 7F095220 E7A8045C */ swc1 $f8, 0x45c($sp) -/* 0C9D54 7F095224 46008100 */ add.s $f4, $f16, $f0 -/* 0C9D58 7F095228 4618A202 */ mul.s $f8, $f20, $f24 -/* 0C9D5C 7F09522C E7AA046C */ swc1 $f10, 0x46c($sp) -/* 0C9D60 7F095230 46006280 */ add.s $f10, $f12, $f0 -/* 0C9D64 7F095234 E7A40464 */ swc1 $f4, 0x464($sp) -/* 0C9D68 7F095238 E7A60470 */ swc1 $f6, 0x470($sp) -/* 0C9D6C 7F09523C 4600A180 */ add.s $f6, $f20, $f0 -/* 0C9D70 7F095240 E7AA044C */ swc1 $f10, 0x44c($sp) -/* 0C9D74 7F095244 E7A80474 */ swc1 $f8, 0x474($sp) -/* 0C9D78 7F095248 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9D7C 7F09524C E7A6047C */ swc1 $f6, 0x47c($sp) -/* 0C9D80 7F095250 8FA5056C */ lw $a1, 0x56c($sp) -/* 0C9D84 7F095254 E7A20448 */ swc1 $f2, 0x448($sp) -/* 0C9D88 7F095258 E7AE0460 */ swc1 $f14, 0x460($sp) -/* 0C9D8C 7F09525C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9D90 7F095260 E7B20478 */ swc1 $f18, 0x478($sp) -/* 0C9D94 7F095264 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9D98 7F095268 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9D9C 7F09526C 8FA5055C */ lw $a1, 0x55c($sp) -/* 0C9DA0 7F095270 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9DA4 7F095274 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9DA8 7F095278 8FA50554 */ lw $a1, 0x554($sp) -/* 0C9DAC 7F09527C 1000014B */ b .L7F0957AC -/* 0C9DB0 7F095280 00000000 */ nop -.L7F095284: -/* 0C9DB4 7F095284 C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0C9DB8 7F095288 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) -/* 0C9DBC 7F09528C C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0C9DC0 7F095290 46189202 */ mul.s $f8, $f18, $f24 -/* 0C9DC4 7F095294 C7A205E4 */ lwc1 $f2, 0x5e4($sp) -/* 0C9DC8 7F095298 C7AC05EC */ lwc1 $f12, 0x5ec($sp) -/* 0C9DCC 7F09529C 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9DD0 7F0952A0 C7AA05E8 */ lwc1 $f10, 0x5e8($sp) -/* 0C9DD4 7F0952A4 C7AE05D8 */ lwc1 $f14, 0x5d8($sp) -/* 0C9DD8 7F0952A8 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C9DDC 7F0952AC E7A8043C */ swc1 $f8, 0x43c($sp) -/* 0C9DE0 7F0952B0 C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0C9DE4 7F0952B4 46181202 */ mul.s $f8, $f2, $f24 -/* 0C9DE8 7F0952B8 E7A40440 */ swc1 $f4, 0x440($sp) -/* 0C9DEC 7F0952BC C7B60590 */ lwc1 $f22, 0x590($sp) -/* 0C9DF0 7F0952C0 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9DF4 7F0952C4 E7A60444 */ swc1 $f6, 0x444($sp) -/* 0C9DF8 7F0952C8 C7AA05DC */ lwc1 $f10, 0x5dc($sp) -/* 0C9DFC 7F0952CC 46186182 */ mul.s $f6, $f12, $f24 -/* 0C9E00 7F0952D0 E7A80454 */ swc1 $f8, 0x454($sp) -/* 0C9E04 7F0952D4 C7BA0598 */ lwc1 $f26, 0x598($sp) -/* 0C9E08 7F0952D8 46187202 */ mul.s $f8, $f14, $f24 -/* 0C9E0C 7F0952DC E7A40458 */ swc1 $f4, 0x458($sp) -/* 0C9E10 7F0952E0 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C9E14 7F0952E4 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9E18 7F0952E8 E7A6045C */ swc1 $f6, 0x45c($sp) -/* 0C9E1C 7F0952EC C7AA0594 */ lwc1 $f10, 0x594($sp) -/* 0C9E20 7F0952F0 46188182 */ mul.s $f6, $f16, $f24 -/* 0C9E24 7F0952F4 E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0C9E28 7F0952F8 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0C9E2C 7F0952FC 4618B202 */ mul.s $f8, $f22, $f24 -/* 0C9E30 7F095300 E7A40470 */ swc1 $f4, 0x470($sp) -/* 0C9E34 7F095304 24110005 */ li $s1, 5 -/* 0C9E38 7F095308 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9E3C 7F09530C E7A60474 */ swc1 $f6, 0x474($sp) -/* 0C9E40 7F095310 27A4043C */ addiu $a0, $sp, 0x43c -/* 0C9E44 7F095314 4618D182 */ mul.s $f6, $f26, $f24 -/* 0C9E48 7F095318 E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9E4C 7F09531C C7A805A8 */ lwc1 $f8, 0x5a8($sp) -/* 0C9E50 7F095320 8FA50564 */ lw $a1, 0x564($sp) -/* 0C9E54 7F095324 E7A40488 */ swc1 $f4, 0x488($sp) -/* 0C9E58 7F095328 46184282 */ mul.s $f10, $f8, $f24 -/* 0C9E5C 7F09532C C7A405AC */ lwc1 $f4, 0x5ac($sp) -/* 0C9E60 7F095330 E7A6048C */ swc1 $f6, 0x48c($sp) -/* 0C9E64 7F095334 C7A805B0 */ lwc1 $f8, 0x5b0($sp) -/* 0C9E68 7F095338 46182182 */ mul.s $f6, $f4, $f24 -/* 0C9E6C 7F09533C 4600A100 */ add.s $f4, $f20, $f0 -/* 0C9E70 7F095340 E7B20448 */ swc1 $f18, 0x448($sp) -/* 0C9E74 7F095344 E7AA049C */ swc1 $f10, 0x49c($sp) -/* 0C9E78 7F095348 46184282 */ mul.s $f10, $f8, $f24 -/* 0C9E7C 7F09534C 46008200 */ add.s $f8, $f16, $f0 -/* 0C9E80 7F095350 E7A4044C */ swc1 $f4, 0x44c($sp) -/* 0C9E84 7F095354 E7A604A0 */ swc1 $f6, 0x4a0($sp) -/* 0C9E88 7F095358 C7A405A8 */ lwc1 $f4, 0x5a8($sp) -/* 0C9E8C 7F09535C 46006180 */ add.s $f6, $f12, $f0 -/* 0C9E90 7F095360 E7A8047C */ swc1 $f8, 0x47c($sp) -/* 0C9E94 7F095364 E7AA04A4 */ swc1 $f10, 0x4a4($sp) -/* 0C9E98 7F095368 4600D280 */ add.s $f10, $f26, $f0 -/* 0C9E9C 7F09536C E7A60464 */ swc1 $f6, 0x464($sp) -/* 0C9EA0 7F095370 C7A605B0 */ lwc1 $f6, 0x5b0($sp) -/* 0C9EA4 7F095374 E7A20460 */ swc1 $f2, 0x460($sp) -/* 0C9EA8 7F095378 E7AA0494 */ swc1 $f10, 0x494($sp) -/* 0C9EAC 7F09537C 46003200 */ add.s $f8, $f6, $f0 -/* 0C9EB0 7F095380 E7AE0478 */ swc1 $f14, 0x478($sp) -/* 0C9EB4 7F095384 E7B60490 */ swc1 $f22, 0x490($sp) -/* 0C9EB8 7F095388 E7A404A8 */ swc1 $f4, 0x4a8($sp) -/* 0C9EBC 7F09538C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9EC0 7F095390 E7A804AC */ swc1 $f8, 0x4ac($sp) -/* 0C9EC4 7F095394 27A40454 */ addiu $a0, $sp, 0x454 -/* 0C9EC8 7F095398 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9ECC 7F09539C 8FA5056C */ lw $a1, 0x56c($sp) -/* 0C9ED0 7F0953A0 27A4046C */ addiu $a0, $sp, 0x46c -/* 0C9ED4 7F0953A4 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9ED8 7F0953A8 8FA50568 */ lw $a1, 0x568($sp) -/* 0C9EDC 7F0953AC 27A40484 */ addiu $a0, $sp, 0x484 -/* 0C9EE0 7F0953B0 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9EE4 7F0953B4 8FA50550 */ lw $a1, 0x550($sp) -/* 0C9EE8 7F0953B8 27A4049C */ addiu $a0, $sp, 0x49c -/* 0C9EEC 7F0953BC 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0C9EF0 7F0953C0 8FA50558 */ lw $a1, 0x558($sp) -/* 0C9EF4 7F0953C4 100000F9 */ b .L7F0957AC -/* 0C9EF8 7F0953C8 00000000 */ nop -.L7F0953CC: -/* 0C9EFC 7F0953CC C7BA05E4 */ lwc1 $f26, 0x5e4($sp) -/* 0C9F00 7F0953D0 C7B605EC */ lwc1 $f22, 0x5ec($sp) -/* 0C9F04 7F0953D4 C7B405D8 */ lwc1 $f20, 0x5d8($sp) -/* 0C9F08 7F0953D8 4618D482 */ mul.s $f18, $f26, $f24 -/* 0C9F0C 7F0953DC C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0C9F10 7F0953E0 C7AE05C0 */ lwc1 $f14, 0x5c0($sp) -/* 0C9F14 7F0953E4 4618B302 */ mul.s $f12, $f22, $f24 -/* 0C9F18 7F0953E8 C7AA059C */ lwc1 $f10, 0x59c($sp) -/* 0C9F1C 7F0953EC C7A805E8 */ lwc1 $f8, 0x5e8($sp) -/* 0C9F20 7F0953F0 4618A182 */ mul.s $f6, $f20, $f24 -/* 0C9F24 7F0953F4 C7A405C8 */ lwc1 $f4, 0x5c8($sp) -/* 0C9F28 7F0953F8 C7A205A4 */ lwc1 $f2, 0x5a4($sp) -/* 0C9F2C 7F0953FC 46184202 */ mul.s $f8, $f8, $f24 -/* 0C9F30 7F095400 C7A005DC */ lwc1 $f0, 0x5dc($sp) -/* 0C9F34 7F095404 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0C9F38 7F095408 E7B2043C */ swc1 $f18, 0x43c($sp) -/* 0C9F3C 7F09540C 46180002 */ mul.s $f0, $f0, $f24 -/* 0C9F40 7F095410 C7B205C4 */ lwc1 $f18, 0x5c4($sp) -/* 0C9F44 7F095414 E7AC0444 */ swc1 $f12, 0x444($sp) -/* 0C9F48 7F095418 46188302 */ mul.s $f12, $f16, $f24 -/* 0C9F4C 7F09541C E7A80440 */ swc1 $f8, 0x440($sp) -/* 0C9F50 7F095420 C7A805A8 */ lwc1 $f8, 0x5a8($sp) -/* 0C9F54 7F095424 46189482 */ mul.s $f18, $f18, $f24 -/* 0C9F58 7F095428 E7A60454 */ swc1 $f6, 0x454($sp) -/* 0C9F5C 7F09542C C7A605AC */ lwc1 $f6, 0x5ac($sp) -/* 0C9F60 7F095430 46184202 */ mul.s $f8, $f8, $f24 -/* 0C9F64 7F095434 E7A00458 */ swc1 $f0, 0x458($sp) -/* 0C9F68 7F095438 C7A005B0 */ lwc1 $f0, 0x5b0($sp) -/* 0C9F6C 7F09543C 24110005 */ li $s1, 5 -/* 0C9F70 7F095440 E7AC045C */ swc1 $f12, 0x45c($sp) -/* 0C9F74 7F095444 46187302 */ mul.s $f12, $f14, $f24 -/* 0C9F78 7F095448 E7B20470 */ swc1 $f18, 0x470($sp) -/* 0C9F7C 7F09544C C7B205A0 */ lwc1 $f18, 0x5a0($sp) -/* 0C9F80 7F095450 46180002 */ mul.s $f0, $f0, $f24 -/* 0C9F84 7F095454 E7A80484 */ swc1 $f8, 0x484($sp) -/* 0C9F88 7F095458 C428FD94 */ lwc1 $f8, %lo(D_8003FD94)($at) -/* 0C9F8C 7F09545C 46189482 */ mul.s $f18, $f18, $f24 -/* 0C9F90 7F095460 E7AC046C */ swc1 $f12, 0x46c($sp) -/* 0C9F94 7F095464 46082300 */ add.s $f12, $f4, $f8 -/* 0C9F98 7F095468 46182102 */ mul.s $f4, $f4, $f24 -/* 0C9F9C 7F09546C E7A0048C */ swc1 $f0, 0x48c($sp) -/* 0C9FA0 7F095470 46081000 */ add.s $f0, $f2, $f8 -/* 0C9FA4 7F095474 46183182 */ mul.s $f6, $f6, $f24 -/* 0C9FA8 7F095478 E7B204A0 */ swc1 $f18, 0x4a0($sp) -/* 0C9FAC 7F09547C 46088400 */ add.s $f16, $f16, $f8 -/* 0C9FB0 7F095480 46181082 */ mul.s $f2, $f2, $f24 -/* 0C9FB4 7F095484 C7B205B0 */ lwc1 $f18, 0x5b0($sp) -/* 0C9FB8 7F095488 E7A40474 */ swc1 $f4, 0x474($sp) -/* 0C9FBC 7F09548C 46185102 */ mul.s $f4, $f10, $f24 -/* 0C9FC0 7F095490 E7A60488 */ swc1 $f6, 0x488($sp) -/* 0C9FC4 7F095494 4608B580 */ add.s $f22, $f22, $f8 -/* 0C9FC8 7F095498 C7A605A8 */ lwc1 $f6, 0x5a8($sp) -/* 0C9FCC 7F09549C E7A204A4 */ swc1 $f2, 0x4a4($sp) -/* 0C9FD0 7F0954A0 46089200 */ add.s $f8, $f18, $f8 -/* 0C9FD4 7F0954A4 E7BA0448 */ swc1 $f26, 0x448($sp) -/* 0C9FD8 7F0954A8 E7A4049C */ swc1 $f4, 0x49c($sp) -/* 0C9FDC 7F0954AC E7B6044C */ swc1 $f22, 0x44c($sp) -/* 0C9FE0 7F0954B0 E7B40460 */ swc1 $f20, 0x460($sp) -/* 0C9FE4 7F0954B4 E7B00464 */ swc1 $f16, 0x464($sp) -/* 0C9FE8 7F0954B8 E7AE0478 */ swc1 $f14, 0x478($sp) -/* 0C9FEC 7F0954BC E7AC047C */ swc1 $f12, 0x47c($sp) -/* 0C9FF0 7F0954C0 E7A60490 */ swc1 $f6, 0x490($sp) -/* 0C9FF4 7F0954C4 E7A80494 */ swc1 $f8, 0x494($sp) -/* 0C9FF8 7F0954C8 E7AA04A8 */ swc1 $f10, 0x4a8($sp) -/* 0C9FFC 7F0954CC E7A004AC */ swc1 $f0, 0x4ac($sp) -/* 0CA000 7F0954D0 27A4043C */ addiu $a0, $sp, 0x43c -/* 0CA004 7F0954D4 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA008 7F0954D8 8FA5056C */ lw $a1, 0x56c($sp) -/* 0CA00C 7F0954DC 27A40454 */ addiu $a0, $sp, 0x454 -/* 0CA010 7F0954E0 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA014 7F0954E4 8FA50568 */ lw $a1, 0x568($sp) -/* 0CA018 7F0954E8 27A4046C */ addiu $a0, $sp, 0x46c -/* 0CA01C 7F0954EC 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA020 7F0954F0 8FA50560 */ lw $a1, 0x560($sp) -/* 0CA024 7F0954F4 27A40484 */ addiu $a0, $sp, 0x484 -/* 0CA028 7F0954F8 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA02C 7F0954FC 8FA50558 */ lw $a1, 0x558($sp) -/* 0CA030 7F095500 27A4049C */ addiu $a0, $sp, 0x49c -/* 0CA034 7F095504 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA038 7F095508 8FA50554 */ lw $a1, 0x554($sp) -/* 0CA03C 7F09550C 100000A7 */ b .L7F0957AC -/* 0CA040 7F095510 00000000 */ nop -.L7F095514: -/* 0CA044 7F095514 C7B605C0 */ lwc1 $f22, 0x5c0($sp) -/* 0CA048 7F095518 C7A605C4 */ lwc1 $f6, 0x5c4($sp) -/* 0CA04C 7F09551C C7BA05C8 */ lwc1 $f26, 0x5c8($sp) -/* 0CA050 7F095520 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CA054 7F095524 C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0CA058 7F095528 C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0CA05C 7F09552C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA060 7F095530 C7A605D0 */ lwc1 $f6, 0x5d0($sp) -/* 0CA064 7F095534 C7A205E4 */ lwc1 $f2, 0x5e4($sp) -/* 0CA068 7F095538 4618D282 */ mul.s $f10, $f26, $f24 -/* 0CA06C 7F09553C E7A4043C */ swc1 $f4, 0x43c($sp) -/* 0CA070 7F095540 C7AC05EC */ lwc1 $f12, 0x5ec($sp) -/* 0CA074 7F095544 46189102 */ mul.s $f4, $f18, $f24 -/* 0CA078 7F095548 E7A80440 */ swc1 $f8, 0x440($sp) -/* 0CA07C 7F09554C C7AE05B4 */ lwc1 $f14, 0x5b4($sp) -/* 0CA080 7F095550 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA084 7F095554 E7AA0444 */ swc1 $f10, 0x444($sp) -/* 0CA088 7F095558 C7A605E8 */ lwc1 $f6, 0x5e8($sp) -/* 0CA08C 7F09555C 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CA090 7F095560 E7A40454 */ swc1 $f4, 0x454($sp) -/* 0CA094 7F095564 C7B005BC */ lwc1 $f16, 0x5bc($sp) -/* 0CA098 7F095568 46181102 */ mul.s $f4, $f2, $f24 -/* 0CA09C 7F09556C E7A80458 */ swc1 $f8, 0x458($sp) -/* 0CA0A0 7F095570 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CA0A4 7F095574 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA0A8 7F095578 E7AA045C */ swc1 $f10, 0x45c($sp) -/* 0CA0AC 7F09557C C7A605B8 */ lwc1 $f6, 0x5b8($sp) -/* 0CA0B0 7F095580 46186282 */ mul.s $f10, $f12, $f24 -/* 0CA0B4 7F095584 E7A4046C */ swc1 $f4, 0x46c($sp) -/* 0CA0B8 7F095588 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CA0BC 7F09558C 46187102 */ mul.s $f4, $f14, $f24 -/* 0CA0C0 7F095590 E7A80470 */ swc1 $f8, 0x470($sp) -/* 0CA0C4 7F095594 24110005 */ li $s1, 5 -/* 0CA0C8 7F095598 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA0CC 7F09559C E7AA0474 */ swc1 $f10, 0x474($sp) -/* 0CA0D0 7F0955A0 27A4043C */ addiu $a0, $sp, 0x43c -/* 0CA0D4 7F0955A4 46188282 */ mul.s $f10, $f16, $f24 -/* 0CA0D8 7F0955A8 E7A40484 */ swc1 $f4, 0x484($sp) -/* 0CA0DC 7F0955AC C7A40590 */ lwc1 $f4, 0x590($sp) -/* 0CA0E0 7F0955B0 8FA50560 */ lw $a1, 0x560($sp) -/* 0CA0E4 7F0955B4 E7A80488 */ swc1 $f8, 0x488($sp) -/* 0CA0E8 7F0955B8 46182182 */ mul.s $f6, $f4, $f24 -/* 0CA0EC 7F0955BC C7A80594 */ lwc1 $f8, 0x594($sp) -/* 0CA0F0 7F0955C0 E7AA048C */ swc1 $f10, 0x48c($sp) -/* 0CA0F4 7F0955C4 C7A40598 */ lwc1 $f4, 0x598($sp) -/* 0CA0F8 7F0955C8 46184282 */ mul.s $f10, $f8, $f24 -/* 0CA0FC 7F0955CC 4600D200 */ add.s $f8, $f26, $f0 -/* 0CA100 7F0955D0 E7B60448 */ swc1 $f22, 0x448($sp) -/* 0CA104 7F0955D4 E7A6049C */ swc1 $f6, 0x49c($sp) -/* 0CA108 7F0955D8 46182182 */ mul.s $f6, $f4, $f24 -/* 0CA10C 7F0955DC 46006100 */ add.s $f4, $f12, $f0 -/* 0CA110 7F0955E0 E7A8044C */ swc1 $f8, 0x44c($sp) -/* 0CA114 7F0955E4 E7AA04A0 */ swc1 $f10, 0x4a0($sp) -/* 0CA118 7F0955E8 C7A80590 */ lwc1 $f8, 0x590($sp) -/* 0CA11C 7F0955EC 4600A280 */ add.s $f10, $f20, $f0 -/* 0CA120 7F0955F0 E7A4047C */ swc1 $f4, 0x47c($sp) -/* 0CA124 7F0955F4 E7A604A4 */ swc1 $f6, 0x4a4($sp) -/* 0CA128 7F0955F8 46008180 */ add.s $f6, $f16, $f0 -/* 0CA12C 7F0955FC E7AA0464 */ swc1 $f10, 0x464($sp) -/* 0CA130 7F095600 C7AA0598 */ lwc1 $f10, 0x598($sp) -/* 0CA134 7F095604 E7B20460 */ swc1 $f18, 0x460($sp) -/* 0CA138 7F095608 E7A60494 */ swc1 $f6, 0x494($sp) -/* 0CA13C 7F09560C 46005100 */ add.s $f4, $f10, $f0 -/* 0CA140 7F095610 E7A20478 */ swc1 $f2, 0x478($sp) -/* 0CA144 7F095614 E7AE0490 */ swc1 $f14, 0x490($sp) -/* 0CA148 7F095618 E7A804A8 */ swc1 $f8, 0x4a8($sp) -/* 0CA14C 7F09561C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA150 7F095620 E7A404AC */ swc1 $f4, 0x4ac($sp) -/* 0CA154 7F095624 27A40454 */ addiu $a0, $sp, 0x454 -/* 0CA158 7F095628 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA15C 7F09562C 8FA50564 */ lw $a1, 0x564($sp) -/* 0CA160 7F095630 27A4046C */ addiu $a0, $sp, 0x46c -/* 0CA164 7F095634 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA168 7F095638 8FA5056C */ lw $a1, 0x56c($sp) -/* 0CA16C 7F09563C 27A40484 */ addiu $a0, $sp, 0x484 -/* 0CA170 7F095640 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA174 7F095644 8FA5055C */ lw $a1, 0x55c($sp) -/* 0CA178 7F095648 27A4049C */ addiu $a0, $sp, 0x49c -/* 0CA17C 7F09564C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA180 7F095650 8FA50550 */ lw $a1, 0x550($sp) -/* 0CA184 7F095654 10000055 */ b .L7F0957AC -/* 0CA188 7F095658 00000000 */ nop -.L7F09565C: -/* 0CA18C 7F09565C C7AE05D8 */ lwc1 $f14, 0x5d8($sp) -/* 0CA190 7F095660 C7A805DC */ lwc1 $f8, 0x5dc($sp) -/* 0CA194 7F095664 C7B005E0 */ lwc1 $f16, 0x5e0($sp) -/* 0CA198 7F095668 46187182 */ mul.s $f6, $f14, $f24 -/* 0CA19C 7F09566C C7B605C0 */ lwc1 $f22, 0x5c0($sp) -/* 0CA1A0 7F095670 C7BA05C8 */ lwc1 $f26, 0x5c8($sp) -/* 0CA1A4 7F095674 46184282 */ mul.s $f10, $f8, $f24 -/* 0CA1A8 7F095678 C7A805C4 */ lwc1 $f8, 0x5c4($sp) -/* 0CA1AC 7F09567C C7B205CC */ lwc1 $f18, 0x5cc($sp) -/* 0CA1B0 7F095680 46188102 */ mul.s $f4, $f16, $f24 -/* 0CA1B4 7F095684 E7A6043C */ swc1 $f6, 0x43c($sp) -/* 0CA1B8 7F095688 C7B405D4 */ lwc1 $f20, 0x5d4($sp) -/* 0CA1BC 7F09568C 4618B182 */ mul.s $f6, $f22, $f24 -/* 0CA1C0 7F095690 E7AA0440 */ swc1 $f10, 0x440($sp) -/* 0CA1C4 7F095694 C7A2059C */ lwc1 $f2, 0x59c($sp) -/* 0CA1C8 7F095698 46184282 */ mul.s $f10, $f8, $f24 -/* 0CA1CC 7F09569C E7A40444 */ swc1 $f4, 0x444($sp) -/* 0CA1D0 7F0956A0 C7A805D0 */ lwc1 $f8, 0x5d0($sp) -/* 0CA1D4 7F0956A4 4618D102 */ mul.s $f4, $f26, $f24 -/* 0CA1D8 7F0956A8 E7A60454 */ swc1 $f6, 0x454($sp) -/* 0CA1DC 7F0956AC C7AC05A4 */ lwc1 $f12, 0x5a4($sp) -/* 0CA1E0 7F0956B0 46189182 */ mul.s $f6, $f18, $f24 -/* 0CA1E4 7F0956B4 E7AA0458 */ swc1 $f10, 0x458($sp) -/* 0CA1E8 7F0956B8 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CA1EC 7F0956BC 46184282 */ mul.s $f10, $f8, $f24 -/* 0CA1F0 7F0956C0 E7A4045C */ swc1 $f4, 0x45c($sp) -/* 0CA1F4 7F0956C4 C7A805A0 */ lwc1 $f8, 0x5a0($sp) -/* 0CA1F8 7F0956C8 4618A102 */ mul.s $f4, $f20, $f24 -/* 0CA1FC 7F0956CC E7A6046C */ swc1 $f6, 0x46c($sp) -/* 0CA200 7F0956D0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CA204 7F0956D4 46181182 */ mul.s $f6, $f2, $f24 -/* 0CA208 7F0956D8 E7AA0470 */ swc1 $f10, 0x470($sp) -/* 0CA20C 7F0956DC 24110005 */ li $s1, 5 -/* 0CA210 7F0956E0 46184282 */ mul.s $f10, $f8, $f24 -/* 0CA214 7F0956E4 E7A40474 */ swc1 $f4, 0x474($sp) -/* 0CA218 7F0956E8 27A4043C */ addiu $a0, $sp, 0x43c -/* 0CA21C 7F0956EC 46186102 */ mul.s $f4, $f12, $f24 -/* 0CA220 7F0956F0 E7A60484 */ swc1 $f6, 0x484($sp) -/* 0CA224 7F0956F4 C7A605B4 */ lwc1 $f6, 0x5b4($sp) -/* 0CA228 7F0956F8 8FA50568 */ lw $a1, 0x568($sp) -/* 0CA22C 7F0956FC E7AA0488 */ swc1 $f10, 0x488($sp) -/* 0CA230 7F095700 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA234 7F095704 C7AA05B8 */ lwc1 $f10, 0x5b8($sp) -/* 0CA238 7F095708 E7A4048C */ swc1 $f4, 0x48c($sp) -/* 0CA23C 7F09570C C7A605BC */ lwc1 $f6, 0x5bc($sp) -/* 0CA240 7F095710 46185102 */ mul.s $f4, $f10, $f24 -/* 0CA244 7F095714 46008280 */ add.s $f10, $f16, $f0 -/* 0CA248 7F095718 E7AE0448 */ swc1 $f14, 0x448($sp) -/* 0CA24C 7F09571C E7A8049C */ swc1 $f8, 0x49c($sp) -/* 0CA250 7F095720 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA254 7F095724 4600A180 */ add.s $f6, $f20, $f0 -/* 0CA258 7F095728 E7AA044C */ swc1 $f10, 0x44c($sp) -/* 0CA25C 7F09572C E7A404A0 */ swc1 $f4, 0x4a0($sp) -/* 0CA260 7F095730 C7AA05B4 */ lwc1 $f10, 0x5b4($sp) -/* 0CA264 7F095734 4600D100 */ add.s $f4, $f26, $f0 -/* 0CA268 7F095738 E7A6047C */ swc1 $f6, 0x47c($sp) -/* 0CA26C 7F09573C E7A804A4 */ swc1 $f8, 0x4a4($sp) -/* 0CA270 7F095740 46006200 */ add.s $f8, $f12, $f0 -/* 0CA274 7F095744 E7A40464 */ swc1 $f4, 0x464($sp) -/* 0CA278 7F095748 C7A405BC */ lwc1 $f4, 0x5bc($sp) -/* 0CA27C 7F09574C E7B60460 */ swc1 $f22, 0x460($sp) -/* 0CA280 7F095750 E7A80494 */ swc1 $f8, 0x494($sp) -/* 0CA284 7F095754 46002180 */ add.s $f6, $f4, $f0 -/* 0CA288 7F095758 E7B20478 */ swc1 $f18, 0x478($sp) -/* 0CA28C 7F09575C E7A20490 */ swc1 $f2, 0x490($sp) -/* 0CA290 7F095760 E7AA04A8 */ swc1 $f10, 0x4a8($sp) -/* 0CA294 7F095764 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA298 7F095768 E7A604AC */ swc1 $f6, 0x4ac($sp) -/* 0CA29C 7F09576C 27A40454 */ addiu $a0, $sp, 0x454 -/* 0CA2A0 7F095770 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA2A4 7F095774 8FA50560 */ lw $a1, 0x560($sp) -/* 0CA2A8 7F095778 27A4046C */ addiu $a0, $sp, 0x46c -/* 0CA2AC 7F09577C 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA2B0 7F095780 8FA50564 */ lw $a1, 0x564($sp) -/* 0CA2B4 7F095784 27A40484 */ addiu $a0, $sp, 0x484 -/* 0CA2B8 7F095788 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA2BC 7F09578C 8FA50554 */ lw $a1, 0x554($sp) -/* 0CA2C0 7F095790 27A4049C */ addiu $a0, $sp, 0x49c -/* 0CA2C4 7F095794 0FC24FE9 */ jal sub_GAME_7F093FA4 -/* 0CA2C8 7F095798 8FA5055C */ lw $a1, 0x55c($sp) -/* 0CA2CC 7F09579C 10000003 */ b .L7F0957AC -/* 0CA2D0 7F0957A0 00000000 */ nop -def_7F094A38: -.L7F0957A4: -/* 0CA2D4 7F0957A4 100006EE */ b .L7F097360 -/* 0CA2D8 7F0957A8 8FA206B0 */ lw $v0, 0x6b0($sp) -.L7F0957AC: -/* 0CA2DC 7F0957AC 5A20018E */ blezl $s1, .L7F095DE8 -/* 0CA2E0 7F0957B0 8FAA005C */ lw $t2, 0x5c($sp) -/* 0CA2E4 7F0957B4 0FC1E0F9 */ jal currentPlayerGetProjectionMatrixF -/* 0CA2E8 7F0957B8 00000000 */ nop -/* 0CA2EC 7F0957BC 0FC1E0F1 */ jal currentPlayerGetMatrix10CC -/* 0CA2F0 7F0957C0 00408025 */ move $s0, $v0 -/* 0CA2F4 7F0957C4 02002025 */ move $a0, $s0 -/* 0CA2F8 7F0957C8 00402825 */ move $a1, $v0 -/* 0CA2FC 7F0957CC 0FC16032 */ jal matrix_4x4_multiply -/* 0CA300 7F0957D0 27A603CC */ addiu $a2, $sp, 0x3cc -/* 0CA304 7F0957D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CA308 7F0957D8 44814000 */ mtc1 $at, $f8 -/* 0CA30C 7F0957DC 3C048008 */ lui $a0, %hi(dword_CODE_bss_80079E98) -/* 0CA310 7F0957E0 24849E98 */ addiu $a0, %lo(dword_CODE_bss_80079E98) # addiu $a0, $a0, -0x6168 -/* 0CA314 7F0957E4 46184003 */ div.s $f0, $f8, $f24 -/* 0CA318 7F0957E8 44050000 */ mfc1 $a1, $f0 -/* 0CA31C 7F0957EC 44060000 */ mfc1 $a2, $f0 -/* 0CA320 7F0957F0 44070000 */ mfc1 $a3, $f0 -/* 0CA324 7F0957F4 0C005BA4 */ jal guScaleF -/* 0CA328 7F0957F8 00000000 */ nop -/* 0CA32C 7F0957FC 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079E98) -/* 0CA330 7F095800 24A59E98 */ addiu $a1, %lo(dword_CODE_bss_80079E98) # addiu $a1, $a1, -0x6168 -/* 0CA334 7F095804 27A403CC */ addiu $a0, $sp, 0x3cc -/* 0CA338 7F095808 0FC16032 */ jal matrix_4x4_multiply -/* 0CA33C 7F09580C 27A6038C */ addiu $a2, $sp, 0x38c -/* 0CA340 7F095810 1A20004E */ blez $s1, .L7F09594C -/* 0CA344 7F095814 AFA00270 */ sw $zero, 0x270($sp) -/* 0CA348 7F095818 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CA34C 7F09581C 27A4043C */ addiu $a0, $sp, 0x43c -/* 0CA350 7F095820 4481D000 */ mtc1 $at, $f26 -/* 0CA354 7F095824 AFA40058 */ sw $a0, 0x58($sp) -/* 0CA358 7F095828 27B00274 */ addiu $s0, $sp, 0x274 -.L7F09582C: -/* 0CA35C 7F09582C 3C018005 */ lui $at, %hi(D_80057584) -/* 0CA360 7F095830 C4207584 */ lwc1 $f0, %lo(D_80057584)($at) -/* 0CA364 7F095834 8FA40058 */ lw $a0, 0x58($sp) -/* 0CA368 7F095838 27A5038C */ addiu $a1, $sp, 0x38c -/* 0CA36C 7F09583C 44070000 */ mfc1 $a3, $f0 -/* 0CA370 7F095840 24060082 */ li $a2, 130 -/* 0CA374 7F095844 AFB00014 */ sw $s0, 0x14($sp) -/* 0CA378 7F095848 0FC25CE2 */ jal sub_GAME_7F097388 -/* 0CA37C 7F09584C E7A00010 */ swc1 $f0, 0x10($sp) -/* 0CA380 7F095850 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CA384 7F095854 00000000 */ nop -/* 0CA388 7F095858 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CA38C 7F09585C 46000506 */ mov.s $f20, $f0 -/* 0CA390 7F095860 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CA394 7F095864 46000586 */ mov.s $f22, $f0 -/* 0CA398 7F095868 46160280 */ add.s $f10, $f0, $f22 -/* 0CA39C 7F09586C 461AA382 */ mul.s $f14, $f20, $f26 -/* 0CA3A0 7F095870 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CA3A4 7F095874 44813000 */ mtc1 $at, $f6 -/* 0CA3A8 7F095878 461A5102 */ mul.s $f4, $f10, $f26 -/* 0CA3AC 7F09587C C60C0028 */ lwc1 $f12, 0x28($s0) -/* 0CA3B0 7F095880 46062201 */ sub.s $f8, $f4, $f6 -/* 0CA3B4 7F095884 44064000 */ mfc1 $a2, $f8 -/* 0CA3B8 7F095888 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CA3BC 7F09588C 00000000 */ nop -/* 0CA3C0 7F095890 0FC1E135 */ jal getPlayer_c_screentop -/* 0CA3C4 7F095894 E6000028 */ swc1 $f0, 0x28($s0) -/* 0CA3C8 7F095898 0FC1E135 */ jal getPlayer_c_screentop -/* 0CA3CC 7F09589C 46000506 */ mov.s $f20, $f0 -/* 0CA3D0 7F0958A0 0FC1E12D */ jal getPlayer_c_screenheight -/* 0CA3D4 7F0958A4 46000586 */ mov.s $f22, $f0 -/* 0CA3D8 7F0958A8 46160280 */ add.s $f10, $f0, $f22 -/* 0CA3DC 7F0958AC 461AA382 */ mul.s $f14, $f20, $f26 -/* 0CA3E0 7F0958B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CA3E4 7F0958B4 44813000 */ mtc1 $at, $f6 -/* 0CA3E8 7F0958B8 461A5102 */ mul.s $f4, $f10, $f26 -/* 0CA3EC 7F0958BC C60C002C */ lwc1 $f12, 0x2c($s0) -/* 0CA3F0 7F0958C0 46062201 */ sub.s $f8, $f4, $f6 -/* 0CA3F4 7F0958C4 44064000 */ mfc1 $a2, $f8 -/* 0CA3F8 7F0958C8 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CA3FC 7F0958CC 00000000 */ nop -/* 0CA400 7F0958D0 0FC1E135 */ jal getPlayer_c_screentop -/* 0CA404 7F0958D4 E600002C */ swc1 $f0, 0x2c($s0) -/* 0CA408 7F0958D8 461A0282 */ mul.s $f10, $f0, $f26 -/* 0CA40C 7F0958DC C606002C */ lwc1 $f6, 0x2c($s0) -/* 0CA410 7F0958E0 461A5100 */ add.s $f4, $f10, $f26 -/* 0CA414 7F0958E4 4606203C */ c.lt.s $f4, $f6 -/* 0CA418 7F0958E8 00000000 */ nop -/* 0CA41C 7F0958EC 45020010 */ bc1fl .L7F095930 -/* 0CA420 7F0958F0 8FB90058 */ lw $t9, 0x58($sp) -/* 0CA424 7F0958F4 0FC1E135 */ jal getPlayer_c_screentop -/* 0CA428 7F0958F8 00000000 */ nop -/* 0CA42C 7F0958FC 0FC1E12D */ jal getPlayer_c_screenheight -/* 0CA430 7F095900 46000506 */ mov.s $f20, $f0 -/* 0CA434 7F095904 46140200 */ add.s $f8, $f0, $f20 -/* 0CA438 7F095908 C602002C */ lwc1 $f2, 0x2c($s0) -/* 0CA43C 7F09590C 461A4282 */ mul.s $f10, $f8, $f26 -/* 0CA440 7F095910 461A5101 */ sub.s $f4, $f10, $f26 -/* 0CA444 7F095914 4604103C */ c.lt.s $f2, $f4 -/* 0CA448 7F095918 00000000 */ nop -/* 0CA44C 7F09591C 45020004 */ bc1fl .L7F095930 -/* 0CA450 7F095920 8FB90058 */ lw $t9, 0x58($sp) -/* 0CA454 7F095924 461A1181 */ sub.s $f6, $f2, $f26 -/* 0CA458 7F095928 E606002C */ swc1 $f6, 0x2c($s0) -/* 0CA45C 7F09592C 8FB90058 */ lw $t9, 0x58($sp) -.L7F095930: -/* 0CA460 7F095930 8FA20270 */ lw $v0, 0x270($sp) -/* 0CA464 7F095934 26100038 */ addiu $s0, $s0, 0x38 -/* 0CA468 7F095938 272D0018 */ addiu $t5, $t9, 0x18 -/* 0CA46C 7F09593C 24420001 */ addiu $v0, $v0, 1 -/* 0CA470 7F095940 AFA20270 */ sw $v0, 0x270($sp) -/* 0CA474 7F095944 1451FFB9 */ bne $v0, $s1, .L7F09582C -/* 0CA478 7F095948 AFAD0058 */ sw $t5, 0x58($sp) -.L7F09594C: -/* 0CA47C 7F09594C 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CA480 7F095950 00000000 */ nop -/* 0CA484 7F095954 904B0020 */ lbu $t3, 0x20($v0) -/* 0CA488 7F095958 8FAE06B0 */ lw $t6, 0x6b0($sp) -/* 0CA48C 7F09595C 3C0FE700 */ lui $t7, 0xe700 -/* 0CA490 7F095960 156000A6 */ bnez $t3, .L7F095BFC -/* 0CA494 7F095964 25CA0008 */ addiu $t2, $t6, 8 -/* 0CA498 7F095968 3C018005 */ lui $at, %hi(D_80057588) -/* 0CA49C 7F09596C C4327588 */ lwc1 $f18, %lo(D_80057588)($at) -/* 0CA4A0 7F095970 3C018005 */ lui $at, %hi(D_8005758C) -/* 0CA4A4 7F095974 C434758C */ lwc1 $f20, %lo(D_8005758C)($at) -/* 0CA4A8 7F095978 44808000 */ mtc1 $zero, $f16 -/* 0CA4AC 7F09597C 00001825 */ move $v1, $zero -/* 0CA4B0 7F095980 46009086 */ mov.s $f2, $f18 -/* 0CA4B4 7F095984 4600A386 */ mov.s $f14, $f20 -/* 0CA4B8 7F095988 1A200054 */ blez $s1, .L7F095ADC -/* 0CA4BC 7F09598C 46008306 */ mov.s $f12, $f16 -/* 0CA4C0 7F095990 32220001 */ andi $v0, $s1, 1 -/* 0CA4C4 7F095994 10400019 */ beqz $v0, .L7F0959FC -/* 0CA4C8 7F095998 C7A0029C */ lwc1 $f0, 0x29c($sp) -/* 0CA4CC 7F09599C 4612003C */ c.lt.s $f0, $f18 -/* 0CA4D0 7F0959A0 44804000 */ mtc1 $zero, $f8 -/* 0CA4D4 7F0959A4 44805000 */ mtc1 $zero, $f10 -/* 0CA4D8 7F0959A8 24030001 */ li $v1, 1 -/* 0CA4DC 7F0959AC 45020003 */ bc1fl .L7F0959BC -/* 0CA4E0 7F0959B0 4600403C */ c.lt.s $f8, $f0 -/* 0CA4E4 7F0959B4 46000086 */ mov.s $f2, $f0 -/* 0CA4E8 7F0959B8 4600403C */ c.lt.s $f8, $f0 -.L7F0959BC: -/* 0CA4EC 7F0959BC 00000000 */ nop -/* 0CA4F0 7F0959C0 45020003 */ bc1fl .L7F0959D0 -/* 0CA4F4 7F0959C4 C7A002A0 */ lwc1 $f0, 0x2a0($sp) -/* 0CA4F8 7F0959C8 46000306 */ mov.s $f12, $f0 -/* 0CA4FC 7F0959CC C7A002A0 */ lwc1 $f0, 0x2a0($sp) -.L7F0959D0: -/* 0CA500 7F0959D0 4614003C */ c.lt.s $f0, $f20 -/* 0CA504 7F0959D4 00000000 */ nop -/* 0CA508 7F0959D8 45020003 */ bc1fl .L7F0959E8 -/* 0CA50C 7F0959DC 4600503C */ c.lt.s $f10, $f0 -/* 0CA510 7F0959E0 46000386 */ mov.s $f14, $f0 -/* 0CA514 7F0959E4 4600503C */ c.lt.s $f10, $f0 -.L7F0959E8: -/* 0CA518 7F0959E8 00000000 */ nop -/* 0CA51C 7F0959EC 45000002 */ bc1f .L7F0959F8 -/* 0CA520 7F0959F0 00000000 */ nop -/* 0CA524 7F0959F4 46000406 */ mov.s $f16, $f0 -.L7F0959F8: -/* 0CA528 7F0959F8 10710038 */ beq $v1, $s1, .L7F095ADC -.L7F0959FC: -/* 0CA52C 7F0959FC 000360C0 */ sll $t4, $v1, 3 -/* 0CA530 7F095A00 0011C0C0 */ sll $t8, $s1, 3 -/* 0CA534 7F095A04 0311C023 */ subu $t8, $t8, $s1 -/* 0CA538 7F095A08 01836023 */ subu $t4, $t4, $v1 -/* 0CA53C 7F095A0C 27AE0274 */ addiu $t6, $sp, 0x274 -/* 0CA540 7F095A10 000C60C0 */ sll $t4, $t4, 3 -/* 0CA544 7F095A14 0018C0C0 */ sll $t8, $t8, 3 -/* 0CA548 7F095A18 030E2021 */ addu $a0, $t8, $t6 -/* 0CA54C 7F095A1C 018E1021 */ addu $v0, $t4, $t6 -/* 0CA550 7F095A20 C4400028 */ lwc1 $f0, 0x28($v0) -.L7F095A24: -/* 0CA554 7F095A24 4602003C */ c.lt.s $f0, $f2 -/* 0CA558 7F095A28 00000000 */ nop -/* 0CA55C 7F095A2C 45020003 */ bc1fl .L7F095A3C -/* 0CA560 7F095A30 4600603C */ c.lt.s $f12, $f0 -/* 0CA564 7F095A34 46000086 */ mov.s $f2, $f0 -/* 0CA568 7F095A38 4600603C */ c.lt.s $f12, $f0 -.L7F095A3C: -/* 0CA56C 7F095A3C 00000000 */ nop -/* 0CA570 7F095A40 45020003 */ bc1fl .L7F095A50 -/* 0CA574 7F095A44 C440002C */ lwc1 $f0, 0x2c($v0) -/* 0CA578 7F095A48 46000306 */ mov.s $f12, $f0 -/* 0CA57C 7F095A4C C440002C */ lwc1 $f0, 0x2c($v0) -.L7F095A50: -/* 0CA580 7F095A50 460E003C */ c.lt.s $f0, $f14 -/* 0CA584 7F095A54 00000000 */ nop -/* 0CA588 7F095A58 45020003 */ bc1fl .L7F095A68 -/* 0CA58C 7F095A5C 4600803C */ c.lt.s $f16, $f0 -/* 0CA590 7F095A60 46000386 */ mov.s $f14, $f0 -/* 0CA594 7F095A64 4600803C */ c.lt.s $f16, $f0 -.L7F095A68: -/* 0CA598 7F095A68 00000000 */ nop -/* 0CA59C 7F095A6C 45020003 */ bc1fl .L7F095A7C -/* 0CA5A0 7F095A70 C4400060 */ lwc1 $f0, 0x60($v0) -/* 0CA5A4 7F095A74 46000406 */ mov.s $f16, $f0 -/* 0CA5A8 7F095A78 C4400060 */ lwc1 $f0, 0x60($v0) -.L7F095A7C: -/* 0CA5AC 7F095A7C 4602003C */ c.lt.s $f0, $f2 -/* 0CA5B0 7F095A80 00000000 */ nop -/* 0CA5B4 7F095A84 45020003 */ bc1fl .L7F095A94 -/* 0CA5B8 7F095A88 4600603C */ c.lt.s $f12, $f0 -/* 0CA5BC 7F095A8C 46000086 */ mov.s $f2, $f0 -/* 0CA5C0 7F095A90 4600603C */ c.lt.s $f12, $f0 -.L7F095A94: -/* 0CA5C4 7F095A94 00000000 */ nop -/* 0CA5C8 7F095A98 45020003 */ bc1fl .L7F095AA8 -/* 0CA5CC 7F095A9C C4400064 */ lwc1 $f0, 0x64($v0) -/* 0CA5D0 7F095AA0 46000306 */ mov.s $f12, $f0 -/* 0CA5D4 7F095AA4 C4400064 */ lwc1 $f0, 0x64($v0) -.L7F095AA8: -/* 0CA5D8 7F095AA8 24420070 */ addiu $v0, $v0, 0x70 -/* 0CA5DC 7F095AAC 460E003C */ c.lt.s $f0, $f14 -/* 0CA5E0 7F095AB0 00000000 */ nop -/* 0CA5E4 7F095AB4 45020003 */ bc1fl .L7F095AC4 -/* 0CA5E8 7F095AB8 4600803C */ c.lt.s $f16, $f0 -/* 0CA5EC 7F095ABC 46000386 */ mov.s $f14, $f0 -/* 0CA5F0 7F095AC0 4600803C */ c.lt.s $f16, $f0 -.L7F095AC4: -/* 0CA5F4 7F095AC4 00000000 */ nop -/* 0CA5F8 7F095AC8 45000002 */ bc1f .L7F095AD4 -/* 0CA5FC 7F095ACC 00000000 */ nop -/* 0CA600 7F095AD0 46000406 */ mov.s $f16, $f0 -.L7F095AD4: -/* 0CA604 7F095AD4 5444FFD3 */ bnel $v0, $a0, .L7F095A24 -/* 0CA608 7F095AD8 C4400028 */ lwc1 $f0, 0x28($v0) -.L7F095ADC: -/* 0CA60C 7F095ADC 8FAA06B0 */ lw $t2, 0x6b0($sp) -/* 0CA610 7F095AE0 3C19E700 */ lui $t9, 0xe700 -/* 0CA614 7F095AE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CA618 7F095AE8 254F0008 */ addiu $t7, $t2, 8 -/* 0CA61C 7F095AEC AFAF06B0 */ sw $t7, 0x6b0($sp) -/* 0CA620 7F095AF0 AD400004 */ sw $zero, 4($t2) -/* 0CA624 7F095AF4 AD590000 */ sw $t9, ($t2) -/* 0CA628 7F095AF8 8FAD06B0 */ lw $t5, 0x6b0($sp) -/* 0CA62C 7F095AFC 44810000 */ mtc1 $at, $f0 -/* 0CA630 7F095B00 3C0CBA00 */ lui $t4, (0xBA001402 >> 16) # lui $t4, 0xba00 -/* 0CA634 7F095B04 25AB0008 */ addiu $t3, $t5, 8 -/* 0CA638 7F095B08 AFAB06B0 */ sw $t3, 0x6b0($sp) -/* 0CA63C 7F095B0C 358C1402 */ ori $t4, (0xBA001402 & 0xFFFF) # ori $t4, $t4, 0x1402 -/* 0CA640 7F095B10 3C180030 */ lui $t8, 0x30 -/* 0CA644 7F095B14 46006102 */ mul.s $f4, $f12, $f0 -/* 0CA648 7F095B18 ADB80004 */ sw $t8, 4($t5) -/* 0CA64C 7F095B1C ADAC0000 */ sw $t4, ($t5) -/* 0CA650 7F095B20 8FAE06B0 */ lw $t6, 0x6b0($sp) -/* 0CA654 7F095B24 46008202 */ mul.s $f8, $f16, $f0 -/* 0CA658 7F095B28 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 0CA65C 7F095B2C 25CA0008 */ addiu $t2, $t6, 8 -/* 0CA660 7F095B30 AFAA06B0 */ sw $t2, 0x6b0($sp) -/* 0CA664 7F095B34 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0CA668 7F095B38 ADCF0000 */ sw $t7, ($t6) -/* 0CA66C 7F095B3C ADC00004 */ sw $zero, 4($t6) -/* 0CA670 7F095B40 4600218D */ trunc.w.s $f6, $f4 -/* 0CA674 7F095B44 8FB906B0 */ lw $t9, 0x6b0($sp) -/* 0CA678 7F095B48 46001102 */ mul.s $f4, $f2, $f0 -/* 0CA67C 7F095B4C 4600428D */ trunc.w.s $f10, $f8 -/* 0CA680 7F095B50 272D0008 */ addiu $t5, $t9, 8 -/* 0CA684 7F095B54 46007202 */ mul.s $f8, $f14, $f0 -/* 0CA688 7F095B58 3C07BA00 */ lui $a3, (0xBA001301 >> 16) # lui $a3, 0xba00 -/* 0CA68C 7F095B5C AFAD06B0 */ sw $t5, 0x6b0($sp) -/* 0CA690 7F095B60 34E71301 */ ori $a3, (0xBA001301 & 0xFFFF) # ori $a3, $a3, 0x1301 -/* 0CA694 7F095B64 AF270000 */ sw $a3, ($t9) -/* 0CA698 7F095B68 AF200004 */ sw $zero, 4($t9) -/* 0CA69C 7F095B6C 8FA606B0 */ lw $a2, 0x6b0($sp) -/* 0CA6A0 7F095B70 440E3000 */ mfc1 $t6, $f6 -/* 0CA6A4 7F095B74 440B5000 */ mfc1 $t3, $f10 -/* 0CA6A8 7F095B78 24CC0008 */ addiu $t4, $a2, 8 -/* 0CA6AC 7F095B7C 31CA03FF */ andi $t2, $t6, 0x3ff -/* 0CA6B0 7F095B80 4600428D */ trunc.w.s $f10, $f8 -/* 0CA6B4 7F095B84 000A7B80 */ sll $t7, $t2, 0xe -/* 0CA6B8 7F095B88 AFAC06B0 */ sw $t4, 0x6b0($sp) -/* 0CA6BC 7F095B8C 4600218D */ trunc.w.s $f6, $f4 -/* 0CA6C0 7F095B90 3C01F600 */ lui $at, 0xf600 -/* 0CA6C4 7F095B94 01E1C825 */ or $t9, $t7, $at -/* 0CA6C8 7F095B98 316C03FF */ andi $t4, $t3, 0x3ff -/* 0CA6CC 7F095B9C 000CC080 */ sll $t8, $t4, 2 -/* 0CA6D0 7F095BA0 03387025 */ or $t6, $t9, $t8 -/* 0CA6D4 7F095BA4 44195000 */ mfc1 $t9, $f10 -/* 0CA6D8 7F095BA8 440F3000 */ mfc1 $t7, $f6 -/* 0CA6DC 7F095BAC ACCE0000 */ sw $t6, ($a2) -/* 0CA6E0 7F095BB0 333803FF */ andi $t8, $t9, 0x3ff -/* 0CA6E4 7F095BB4 31ED03FF */ andi $t5, $t7, 0x3ff -/* 0CA6E8 7F095BB8 000D5B80 */ sll $t3, $t5, 0xe -/* 0CA6EC 7F095BBC 00187080 */ sll $t6, $t8, 2 -/* 0CA6F0 7F095BC0 016E5025 */ or $t2, $t3, $t6 -/* 0CA6F4 7F095BC4 ACCA0004 */ sw $t2, 4($a2) -/* 0CA6F8 7F095BC8 8FAF06B0 */ lw $t7, 0x6b0($sp) -/* 0CA6FC 7F095BCC 3C0CE700 */ lui $t4, 0xe700 -/* 0CA700 7F095BD0 3C0B0008 */ lui $t3, 8 -/* 0CA704 7F095BD4 25ED0008 */ addiu $t5, $t7, 8 -/* 0CA708 7F095BD8 AFAD06B0 */ sw $t5, 0x6b0($sp) -/* 0CA70C 7F095BDC ADE00004 */ sw $zero, 4($t7) -/* 0CA710 7F095BE0 ADEC0000 */ sw $t4, ($t7) -/* 0CA714 7F095BE4 8FB906B0 */ lw $t9, 0x6b0($sp) -/* 0CA718 7F095BE8 27380008 */ addiu $t8, $t9, 8 -/* 0CA71C 7F095BEC AFB806B0 */ sw $t8, 0x6b0($sp) -/* 0CA720 7F095BF0 AF2B0004 */ sw $t3, 4($t9) -/* 0CA724 7F095BF4 1000007B */ b .L7F095DE4 -/* 0CA728 7F095BF8 AF270000 */ sw $a3, ($t9) -.L7F095BFC: -/* 0CA72C 7F095BFC AFAA06B0 */ sw $t2, 0x6b0($sp) -/* 0CA730 7F095C00 ADC00004 */ sw $zero, 4($t6) -/* 0CA734 7F095C04 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CA738 7F095C08 ADCF0000 */ sw $t7, ($t6) -/* 0CA73C 7F095C0C 844D0028 */ lh $t5, 0x28($v0) -/* 0CA740 7F095C10 3C198009 */ lui $t9, %hi(skywaterimages) -/* 0CA744 7F095C14 8F39D124 */ lw $t9, %lo(skywaterimages)($t9) -/* 0CA748 7F095C18 000D6080 */ sll $t4, $t5, 2 -/* 0CA74C 7F095C1C 018D6023 */ subu $t4, $t4, $t5 -/* 0CA750 7F095C20 000C6080 */ sll $t4, $t4, 2 -/* 0CA754 7F095C24 24180002 */ li $t8, 2 -/* 0CA758 7F095C28 AFB80010 */ sw $t8, 0x10($sp) -/* 0CA75C 7F095C2C 27A406B0 */ addiu $a0, $sp, 0x6b0 -/* 0CA760 7F095C30 24060001 */ li $a2, 1 -/* 0CA764 7F095C34 00003825 */ move $a3, $zero -/* 0CA768 7F095C38 0FC1DB5A */ jal likely_generate_DL_for_image_declaration -/* 0CA76C 7F095C3C 01992821 */ addu $a1, $t4, $t9 -/* 0CA770 7F095C40 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CA774 7F095C44 0FC24D0F */ jal sub_GAME_7F09343C -/* 0CA778 7F095C48 00002825 */ move $a1, $zero -/* 0CA77C 7F095C4C 244B0008 */ addiu $t3, $v0, 8 -/* 0CA780 7F095C50 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 0CA784 7F095C54 3C0A0F0A */ lui $t2, (0x0F0A4000 >> 16) # lui $t2, 0xf0a -/* 0CA788 7F095C58 354A4000 */ ori $t2, (0x0F0A4000 & 0xFFFF) # ori $t2, $t2, 0x4000 -/* 0CA78C 7F095C5C 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 0CA790 7F095C60 AFAB06B0 */ sw $t3, 0x6b0($sp) -/* 0CA794 7F095C64 24010004 */ li $at, 4 -/* 0CA798 7F095C68 AC4A0004 */ sw $t2, 4($v0) -/* 0CA79C 7F095C6C 1621002A */ bne $s1, $at, .L7F095D18 -/* 0CA7A0 7F095C70 AC4E0000 */ sw $t6, ($v0) -/* 0CA7A4 7F095C74 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CA7A8 7F095C78 44812000 */ mtc1 $at, $f4 -/* 0CA7AC 7F095C7C 27B00274 */ addiu $s0, $sp, 0x274 -/* 0CA7B0 7F095C80 27B1031C */ addiu $s1, $sp, 0x31c -/* 0CA7B4 7F095C84 240F0001 */ li $t7, 1 -/* 0CA7B8 7F095C88 AFAF0014 */ sw $t7, 0x14($sp) -/* 0CA7BC 7F095C8C 02203825 */ move $a3, $s1 -/* 0CA7C0 7F095C90 02002825 */ move $a1, $s0 -/* 0CA7C4 7F095C94 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CA7C8 7F095C98 27A602AC */ addiu $a2, $sp, 0x2ac -/* 0CA7CC 7F095C9C 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CA7D0 7F095CA0 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0CA7D4 7F095CA4 8FAD0430 */ lw $t5, 0x430($sp) -/* 0CA7D8 7F095CA8 00402025 */ move $a0, $v0 -/* 0CA7DC 7F095CAC 02202825 */ move $a1, $s1 -/* 0CA7E0 7F095CB0 11A0000F */ beqz $t5, .L7F095CF0 -/* 0CA7E4 7F095CB4 27A602E4 */ addiu $a2, $sp, 0x2e4 -/* 0CA7E8 7F095CB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CA7EC 7F095CBC 44811000 */ mtc1 $at, $f2 -/* 0CA7F0 7F095CC0 C7A602D8 */ lwc1 $f6, 0x2d8($sp) -/* 0CA7F4 7F095CC4 C7A002A0 */ lwc1 $f0, 0x2a0($sp) -/* 0CA7F8 7F095CC8 C7AA0310 */ lwc1 $f10, 0x310($sp) -/* 0CA7FC 7F095CCC 46023200 */ add.s $f8, $f6, $f2 -/* 0CA800 7F095CD0 C7A60348 */ lwc1 $f6, 0x348($sp) -/* 0CA804 7F095CD4 46020000 */ add.s $f0, $f0, $f2 -/* 0CA808 7F095CD8 E7A802D8 */ swc1 $f8, 0x2d8($sp) -/* 0CA80C 7F095CDC 46025100 */ add.s $f4, $f10, $f2 -/* 0CA810 7F095CE0 E7A002A0 */ swc1 $f0, 0x2a0($sp) -/* 0CA814 7F095CE4 46023200 */ add.s $f8, $f6, $f2 -/* 0CA818 7F095CE8 E7A40310 */ swc1 $f4, 0x310($sp) -/* 0CA81C 7F095CEC E7A80348 */ swc1 $f8, 0x348($sp) -.L7F095CF0: -/* 0CA820 7F095CF0 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CA824 7F095CF4 44815000 */ mtc1 $at, $f10 -/* 0CA828 7F095CF8 240C0001 */ li $t4, 1 -/* 0CA82C 7F095CFC AFAC0014 */ sw $t4, 0x14($sp) -/* 0CA830 7F095D00 02003825 */ move $a3, $s0 -/* 0CA834 7F095D04 AFA406B0 */ sw $a0, 0x6b0($sp) -/* 0CA838 7F095D08 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CA83C 7F095D0C E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0CA840 7F095D10 10000034 */ b .L7F095DE4 -/* 0CA844 7F095D14 AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F095D18: -/* 0CA848 7F095D18 24010005 */ li $at, 5 -/* 0CA84C 7F095D1C 16210024 */ bne $s1, $at, .L7F095DB0 -/* 0CA850 7F095D20 27B00274 */ addiu $s0, $sp, 0x274 -/* 0CA854 7F095D24 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CA858 7F095D28 44812000 */ mtc1 $at, $f4 -/* 0CA85C 7F095D2C 24190001 */ li $t9, 1 -/* 0CA860 7F095D30 AFB90014 */ sw $t9, 0x14($sp) -/* 0CA864 7F095D34 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CA868 7F095D38 02002825 */ move $a1, $s0 -/* 0CA86C 7F095D3C 27A602AC */ addiu $a2, $sp, 0x2ac -/* 0CA870 7F095D40 27A702E4 */ addiu $a3, $sp, 0x2e4 -/* 0CA874 7F095D44 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CA878 7F095D48 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0CA87C 7F095D4C 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CA880 7F095D50 44813000 */ mtc1 $at, $f6 -/* 0CA884 7F095D54 27B1031C */ addiu $s1, $sp, 0x31c -/* 0CA888 7F095D58 24180001 */ li $t8, 1 -/* 0CA88C 7F095D5C AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0CA890 7F095D60 AFB80014 */ sw $t8, 0x14($sp) -/* 0CA894 7F095D64 02203825 */ move $a3, $s1 -/* 0CA898 7F095D68 00402025 */ move $a0, $v0 -/* 0CA89C 7F095D6C 02002825 */ move $a1, $s0 -/* 0CA8A0 7F095D70 27A602E4 */ addiu $a2, $sp, 0x2e4 -/* 0CA8A4 7F095D74 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CA8A8 7F095D78 E7A60010 */ swc1 $f6, 0x10($sp) -/* 0CA8AC 7F095D7C 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CA8B0 7F095D80 44814000 */ mtc1 $at, $f8 -/* 0CA8B4 7F095D84 240B0001 */ li $t3, 1 -/* 0CA8B8 7F095D88 AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0CA8BC 7F095D8C AFAB0014 */ sw $t3, 0x14($sp) -/* 0CA8C0 7F095D90 00402025 */ move $a0, $v0 -/* 0CA8C4 7F095D94 02002825 */ move $a1, $s0 -/* 0CA8C8 7F095D98 02203025 */ move $a2, $s1 -/* 0CA8CC 7F095D9C 27A70354 */ addiu $a3, $sp, 0x354 -/* 0CA8D0 7F095DA0 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CA8D4 7F095DA4 E7A80010 */ swc1 $f8, 0x10($sp) -/* 0CA8D8 7F095DA8 1000000E */ b .L7F095DE4 -/* 0CA8DC 7F095DAC AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F095DB0: -/* 0CA8E0 7F095DB0 24010003 */ li $at, 3 -/* 0CA8E4 7F095DB4 1621000B */ bne $s1, $at, .L7F095DE4 -/* 0CA8E8 7F095DB8 27A50274 */ addiu $a1, $sp, 0x274 -/* 0CA8EC 7F095DBC 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CA8F0 7F095DC0 44815000 */ mtc1 $at, $f10 -/* 0CA8F4 7F095DC4 240E0001 */ li $t6, 1 -/* 0CA8F8 7F095DC8 AFAE0014 */ sw $t6, 0x14($sp) -/* 0CA8FC 7F095DCC 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CA900 7F095DD0 27A602AC */ addiu $a2, $sp, 0x2ac -/* 0CA904 7F095DD4 27A702E4 */ addiu $a3, $sp, 0x2e4 -/* 0CA908 7F095DD8 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CA90C 7F095DDC E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0CA910 7F095DE0 AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F095DE4: -/* 0CA914 7F095DE4 8FAA005C */ lw $t2, 0x5c($sp) -.L7F095DE8: -/* 0CA918 7F095DE8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CA91C 7F095DEC 4481D000 */ mtc1 $at, $f26 -/* 0CA920 7F095DF0 2D410010 */ sltiu $at, $t2, 0x10 -/* 0CA924 7F095DF4 1020040A */ beqz $at, .L7F096E20 -/* 0CA928 7F095DF8 8FA306B0 */ lw $v1, 0x6b0($sp) -/* 0CA92C 7F095DFC 000A5080 */ sll $t2, $t2, 2 -/* 0CA930 7F095E00 3C018005 */ lui $at, %hi(jpt_80057590) -/* 0CA934 7F095E04 002A0821 */ addu $at, $at, $t2 -/* 0CA938 7F095E08 8C2A7590 */ lw $t2, %lo(jpt_80057590)($at) -.L7F095E0C: -/* 0CA93C 7F095E0C 01400008 */ jr $t2 -/* 0CA940 7F095E10 00000000 */ nop -.L7F095E14: -/* 0CA944 7F095E14 10000552 */ b .L7F097360 -/* 0CA948 7F095E18 00601025 */ move $v0, $v1 -.L7F095E1C: -/* 0CA94C 7F095E1C C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CA950 7F095E20 C7A60648 */ lwc1 $f6, 0x648($sp) -/* 0CA954 7F095E24 C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CA958 7F095E28 46181102 */ mul.s $f4, $f2, $f24 -/* 0CA95C 7F095E2C C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CA960 7F095E30 C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CA964 7F095E34 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA968 7F095E38 C7A6063C */ lwc1 $f6, 0x63c($sp) -/* 0CA96C 7F095E3C C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CA970 7F095E40 46186282 */ mul.s $f10, $f12, $f24 -/* 0CA974 7F095E44 E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CA978 7F095E48 C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CA97C 7F095E4C 46187102 */ mul.s $f4, $f14, $f24 -/* 0CA980 7F095E50 E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CA984 7F095E54 C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CA988 7F095E58 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA98C 7F095E5C E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CA990 7F095E60 C7A60630 */ lwc1 $f6, 0x630($sp) -/* 0CA994 7F095E64 46188282 */ mul.s $f10, $f16, $f24 -/* 0CA998 7F095E68 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CA99C 7F095E6C 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CA9A0 7F095E70 46189102 */ mul.s $f4, $f18, $f24 -/* 0CA9A4 7F095E74 E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CA9A8 7F095E78 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CA9AC 7F095E7C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA9B0 7F095E80 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CA9B4 7F095E84 C7A60624 */ lwc1 $f6, 0x624($sp) -/* 0CA9B8 7F095E88 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CA9BC 7F095E8C E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CA9C0 7F095E90 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CA9C4 7F095E94 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CA9C8 7F095E98 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CA9CC 7F095E9C 24110004 */ li $s1, 4 -/* 0CA9D0 7F095EA0 46183202 */ mul.s $f8, $f6, $f24 -/* 0CA9D4 7F095EA4 E7AA04EC */ swc1 $f10, 0x4ec($sp) -/* 0CA9D8 7F095EA8 C7AA0628 */ lwc1 $f10, 0x628($sp) -/* 0CA9DC 7F095EAC 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CA9E0 7F095EB0 E7A404FC */ swc1 $f4, 0x4fc($sp) -/* 0CA9E4 7F095EB4 46185102 */ mul.s $f4, $f10, $f24 -/* 0CA9E8 7F095EB8 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CA9EC 7F095EBC E7A80500 */ swc1 $f8, 0x500($sp) -/* 0CA9F0 7F095EC0 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CA9F4 7F095EC4 00000000 */ nop -/* 0CA9F8 7F095EC8 461C6202 */ mul.s $f8, $f12, $f28 -/* 0CA9FC 7F095ECC E7A40504 */ swc1 $f4, 0x504($sp) -/* 0CAA00 7F095ED0 461C7102 */ mul.s $f4, $f14, $f28 -/* 0CAA04 7F095ED4 E7A604C0 */ swc1 $f6, 0x4c0($sp) -/* 0CAA08 7F095ED8 461C8182 */ mul.s $f6, $f16, $f28 -/* 0CAA0C 7F095EDC 46004280 */ add.s $f10, $f8, $f0 -/* 0CAA10 7F095EE0 E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CAA14 7F095EE4 E7AA04C4 */ swc1 $f10, 0x4c4($sp) -/* 0CAA18 7F095EE8 461C9282 */ mul.s $f10, $f18, $f28 -/* 0CAA1C 7F095EEC 46003200 */ add.s $f8, $f6, $f0 -/* 0CAA20 7F095EF0 461CA102 */ mul.s $f4, $f20, $f28 -/* 0CAA24 7F095EF4 E7A804DC */ swc1 $f8, 0x4dc($sp) -/* 0CAA28 7F095EF8 461CB202 */ mul.s $f8, $f22, $f28 -/* 0CAA2C 7F095EFC E7AA04F0 */ swc1 $f10, 0x4f0($sp) -/* 0CAA30 7F095F00 C7AA0628 */ lwc1 $f10, 0x628($sp) -/* 0CAA34 7F095F04 46002180 */ add.s $f6, $f4, $f0 -/* 0CAA38 7F095F08 461C5102 */ mul.s $f4, $f10, $f28 -/* 0CAA3C 7F095F0C E7A80508 */ swc1 $f8, 0x508($sp) -/* 0CAA40 7F095F10 44814000 */ mtc1 $at, $f8 -/* 0CAA44 7F095F14 E7A604F4 */ swc1 $f6, 0x4f4($sp) -/* 0CAA48 7F095F18 46184283 */ div.s $f10, $f8, $f24 -/* 0CAA4C 7F095F1C 46002180 */ add.s $f6, $f4, $f0 -/* 0CAA50 7F095F20 E7A6050C */ swc1 $f6, 0x50c($sp) -/* 0CAA54 7F095F24 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAA58 7F095F28 E7AA0058 */ swc1 $f10, 0x58($sp) -/* 0CAA5C 7F095F2C 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CAA60 7F095F30 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAA64 7F095F34 8FA50588 */ lw $a1, 0x588($sp) -/* 0CAA68 7F095F38 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CAA6C 7F095F3C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAA70 7F095F40 8FA50584 */ lw $a1, 0x584($sp) -/* 0CAA74 7F095F44 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CAA78 7F095F48 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAA7C 7F095F4C 8FA50580 */ lw $a1, 0x580($sp) -/* 0CAA80 7F095F50 100003B6 */ b .L7F096E2C -/* 0CAA84 7F095F54 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F095F58: -/* 0CAA88 7F095F58 C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CAA8C 7F095F5C C7A60648 */ lwc1 $f6, 0x648($sp) -/* 0CAA90 7F095F60 C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CAA94 7F095F64 46181102 */ mul.s $f4, $f2, $f24 -/* 0CAA98 7F095F68 C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CAA9C 7F095F6C C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CAAA0 7F095F70 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAAA4 7F095F74 C7A6063C */ lwc1 $f6, 0x63c($sp) -/* 0CAAA8 7F095F78 C7B205FC */ lwc1 $f18, 0x5fc($sp) -/* 0CAAAC 7F095F7C 46186282 */ mul.s $f10, $f12, $f24 -/* 0CAAB0 7F095F80 E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CAAB4 7F095F84 C7B40604 */ lwc1 $f20, 0x604($sp) -/* 0CAAB8 7F095F88 46187102 */ mul.s $f4, $f14, $f24 -/* 0CAABC 7F095F8C E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CAAC0 7F095F90 C7B605F0 */ lwc1 $f22, 0x5f0($sp) -/* 0CAAC4 7F095F94 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAAC8 7F095F98 E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CAACC 7F095F9C C7A60600 */ lwc1 $f6, 0x600($sp) -/* 0CAAD0 7F095FA0 46188282 */ mul.s $f10, $f16, $f24 -/* 0CAAD4 7F095FA4 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CAAD8 7F095FA8 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CAADC 7F095FAC 46189102 */ mul.s $f4, $f18, $f24 -/* 0CAAE0 7F095FB0 E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CAAE4 7F095FB4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CAAE8 7F095FB8 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAAEC 7F095FBC E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CAAF0 7F095FC0 C7A605F4 */ lwc1 $f6, 0x5f4($sp) -/* 0CAAF4 7F095FC4 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CAAF8 7F095FC8 E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CAAFC 7F095FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CAB00 7F095FD0 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CAB04 7F095FD4 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CAB08 7F095FD8 24110004 */ li $s1, 4 -/* 0CAB0C 7F095FDC 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAB10 7F095FE0 E7AA04EC */ swc1 $f10, 0x4ec($sp) -/* 0CAB14 7F095FE4 C7AA05F8 */ lwc1 $f10, 0x5f8($sp) -/* 0CAB18 7F095FE8 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CAB1C 7F095FEC E7A404FC */ swc1 $f4, 0x4fc($sp) -/* 0CAB20 7F095FF0 46185102 */ mul.s $f4, $f10, $f24 -/* 0CAB24 7F095FF4 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CAB28 7F095FF8 E7A80500 */ swc1 $f8, 0x500($sp) -/* 0CAB2C 7F095FFC 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CAB30 7F096000 00000000 */ nop -/* 0CAB34 7F096004 461C6202 */ mul.s $f8, $f12, $f28 -/* 0CAB38 7F096008 E7A40504 */ swc1 $f4, 0x504($sp) -/* 0CAB3C 7F09600C 461C7102 */ mul.s $f4, $f14, $f28 -/* 0CAB40 7F096010 E7A604C0 */ swc1 $f6, 0x4c0($sp) -/* 0CAB44 7F096014 461C8182 */ mul.s $f6, $f16, $f28 -/* 0CAB48 7F096018 46004280 */ add.s $f10, $f8, $f0 -/* 0CAB4C 7F09601C E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CAB50 7F096020 E7AA04C4 */ swc1 $f10, 0x4c4($sp) -/* 0CAB54 7F096024 461C9282 */ mul.s $f10, $f18, $f28 -/* 0CAB58 7F096028 46003200 */ add.s $f8, $f6, $f0 -/* 0CAB5C 7F09602C 461CA102 */ mul.s $f4, $f20, $f28 -/* 0CAB60 7F096030 E7A804DC */ swc1 $f8, 0x4dc($sp) -/* 0CAB64 7F096034 461CB202 */ mul.s $f8, $f22, $f28 -/* 0CAB68 7F096038 E7AA04F0 */ swc1 $f10, 0x4f0($sp) -/* 0CAB6C 7F09603C C7AA05F8 */ lwc1 $f10, 0x5f8($sp) -/* 0CAB70 7F096040 46002180 */ add.s $f6, $f4, $f0 -/* 0CAB74 7F096044 461C5102 */ mul.s $f4, $f10, $f28 -/* 0CAB78 7F096048 E7A80508 */ swc1 $f8, 0x508($sp) -/* 0CAB7C 7F09604C 44814000 */ mtc1 $at, $f8 -/* 0CAB80 7F096050 E7A604F4 */ swc1 $f6, 0x4f4($sp) -/* 0CAB84 7F096054 46184283 */ div.s $f10, $f8, $f24 -/* 0CAB88 7F096058 46002180 */ add.s $f6, $f4, $f0 -/* 0CAB8C 7F09605C E7A6050C */ swc1 $f6, 0x50c($sp) -/* 0CAB90 7F096060 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAB94 7F096064 E7AA0058 */ swc1 $f10, 0x58($sp) -/* 0CAB98 7F096068 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CAB9C 7F09606C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CABA0 7F096070 8FA50588 */ lw $a1, 0x588($sp) -/* 0CABA4 7F096074 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CABA8 7F096078 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CABAC 7F09607C 8FA50574 */ lw $a1, 0x574($sp) -/* 0CABB0 7F096080 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CABB4 7F096084 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CABB8 7F096088 8FA50570 */ lw $a1, 0x570($sp) -/* 0CABBC 7F09608C 10000367 */ b .L7F096E2C -/* 0CABC0 7F096090 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F096094: -/* 0CABC4 7F096094 C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CABC8 7F096098 C7A60624 */ lwc1 $f6, 0x624($sp) -/* 0CABCC 7F09609C C7A20628 */ lwc1 $f2, 0x628($sp) -/* 0CABD0 7F0960A0 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CABD4 7F0960A4 C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CABD8 7F0960A8 C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CABDC 7F0960AC 46183202 */ mul.s $f8, $f6, $f24 -/* 0CABE0 7F0960B0 C7A60630 */ lwc1 $f6, 0x630($sp) -/* 0CABE4 7F0960B4 C7B005F0 */ lwc1 $f16, 0x5f0($sp) -/* 0CABE8 7F0960B8 46181282 */ mul.s $f10, $f2, $f24 -/* 0CABEC 7F0960BC E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CABF0 7F0960C0 C7AC05FC */ lwc1 $f12, 0x5fc($sp) -/* 0CABF4 7F0960C4 46189102 */ mul.s $f4, $f18, $f24 -/* 0CABF8 7F0960C8 E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CABFC 7F0960CC C7AE0604 */ lwc1 $f14, 0x604($sp) -/* 0CAC00 7F0960D0 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAC04 7F0960D4 E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CAC08 7F0960D8 C7A605F4 */ lwc1 $f6, 0x5f4($sp) -/* 0CAC0C 7F0960DC 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CAC10 7F0960E0 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CAC14 7F0960E4 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CAC18 7F0960E8 46188102 */ mul.s $f4, $f16, $f24 -/* 0CAC1C 7F0960EC E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CAC20 7F0960F0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CAC24 7F0960F4 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAC28 7F0960F8 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CAC2C 7F0960FC C7AA05F8 */ lwc1 $f10, 0x5f8($sp) -/* 0CAC30 7F096100 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CAC34 7F096104 E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CAC38 7F096108 46185102 */ mul.s $f4, $f10, $f24 -/* 0CAC3C 7F09610C 24110004 */ li $s1, 4 -/* 0CAC40 7F096110 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CAC44 7F096114 46186182 */ mul.s $f6, $f12, $f24 -/* 0CAC48 7F096118 C7A80600 */ lwc1 $f8, 0x600($sp) -/* 0CAC4C 7F09611C 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CAC50 7F096120 8FA50580 */ lw $a1, 0x580($sp) -/* 0CAC54 7F096124 46184282 */ mul.s $f10, $f8, $f24 -/* 0CAC58 7F096128 E7A404EC */ swc1 $f4, 0x4ec($sp) -/* 0CAC5C 7F09612C 46187102 */ mul.s $f4, $f14, $f24 -/* 0CAC60 7F096130 E7A604FC */ swc1 $f6, 0x4fc($sp) -/* 0CAC64 7F096134 461CB182 */ mul.s $f6, $f22, $f28 -/* 0CAC68 7F096138 E7AA0500 */ swc1 $f10, 0x500($sp) -/* 0CAC6C 7F09613C 461C1202 */ mul.s $f8, $f2, $f28 -/* 0CAC70 7F096140 E7A40504 */ swc1 $f4, 0x504($sp) -/* 0CAC74 7F096144 461C9102 */ mul.s $f4, $f18, $f28 -/* 0CAC78 7F096148 E7A604C0 */ swc1 $f6, 0x4c0($sp) -/* 0CAC7C 7F09614C 461CA182 */ mul.s $f6, $f20, $f28 -/* 0CAC80 7F096150 46004280 */ add.s $f10, $f8, $f0 -/* 0CAC84 7F096154 E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CAC88 7F096158 C7A405F8 */ lwc1 $f4, 0x5f8($sp) -/* 0CAC8C 7F09615C E7AA04C4 */ swc1 $f10, 0x4c4($sp) -/* 0CAC90 7F096160 461C8282 */ mul.s $f10, $f16, $f28 -/* 0CAC94 7F096164 46003200 */ add.s $f8, $f6, $f0 -/* 0CAC98 7F096168 461C2182 */ mul.s $f6, $f4, $f28 -/* 0CAC9C 7F09616C E7A804DC */ swc1 $f8, 0x4dc($sp) -/* 0CACA0 7F096170 E7AA04F0 */ swc1 $f10, 0x4f0($sp) -/* 0CACA4 7F096174 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CACA8 7F096178 46003200 */ add.s $f8, $f6, $f0 -/* 0CACAC 7F09617C 461C7102 */ mul.s $f4, $f14, $f28 -/* 0CACB0 7F096180 E7A804F4 */ swc1 $f8, 0x4f4($sp) -/* 0CACB4 7F096184 44814000 */ mtc1 $at, $f8 -/* 0CACB8 7F096188 E7AA0508 */ swc1 $f10, 0x508($sp) -/* 0CACBC 7F09618C 46184283 */ div.s $f10, $f8, $f24 -/* 0CACC0 7F096190 46002180 */ add.s $f6, $f4, $f0 -/* 0CACC4 7F096194 E7A6050C */ swc1 $f6, 0x50c($sp) -/* 0CACC8 7F096198 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CACCC 7F09619C E7AA0058 */ swc1 $f10, 0x58($sp) -/* 0CACD0 7F0961A0 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CACD4 7F0961A4 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CACD8 7F0961A8 8FA50584 */ lw $a1, 0x584($sp) -/* 0CACDC 7F0961AC 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CACE0 7F0961B0 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CACE4 7F0961B4 8FA50570 */ lw $a1, 0x570($sp) -/* 0CACE8 7F0961B8 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CACEC 7F0961BC 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CACF0 7F0961C0 8FA50574 */ lw $a1, 0x574($sp) -/* 0CACF4 7F0961C4 10000319 */ b .L7F096E2C -/* 0CACF8 7F0961C8 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F0961CC: -/* 0CACFC 7F0961CC C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CAD00 7F0961D0 C7A6063C */ lwc1 $f6, 0x63c($sp) -/* 0CAD04 7F0961D4 C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CAD08 7F0961D8 46187102 */ mul.s $f4, $f14, $f24 -/* 0CAD0C 7F0961DC C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CAD10 7F0961E0 C7A20628 */ lwc1 $f2, 0x628($sp) -/* 0CAD14 7F0961E4 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAD18 7F0961E8 C7A60624 */ lwc1 $f6, 0x624($sp) -/* 0CAD1C 7F0961EC C7B40614 */ lwc1 $f20, 0x614($sp) -/* 0CAD20 7F0961F0 46188282 */ mul.s $f10, $f16, $f24 -/* 0CAD24 7F0961F4 E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CAD28 7F0961F8 C7AC0608 */ lwc1 $f12, 0x608($sp) -/* 0CAD2C 7F0961FC 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CAD30 7F096200 E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CAD34 7F096204 C7B20610 */ lwc1 $f18, 0x610($sp) -/* 0CAD38 7F096208 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAD3C 7F09620C E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CAD40 7F096210 C7A60618 */ lwc1 $f6, 0x618($sp) -/* 0CAD44 7F096214 46181282 */ mul.s $f10, $f2, $f24 -/* 0CAD48 7F096218 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CAD4C 7F09621C 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CAD50 7F096220 4618A102 */ mul.s $f4, $f20, $f24 -/* 0CAD54 7F096224 E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CAD58 7F096228 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CAD5C 7F09622C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAD60 7F096230 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CAD64 7F096234 C7AA061C */ lwc1 $f10, 0x61c($sp) -/* 0CAD68 7F096238 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CAD6C 7F09623C E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CAD70 7F096240 46185102 */ mul.s $f4, $f10, $f24 -/* 0CAD74 7F096244 24110004 */ li $s1, 4 -/* 0CAD78 7F096248 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CAD7C 7F09624C 46186182 */ mul.s $f6, $f12, $f24 -/* 0CAD80 7F096250 C7A8060C */ lwc1 $f8, 0x60c($sp) -/* 0CAD84 7F096254 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CAD88 7F096258 8FA50588 */ lw $a1, 0x588($sp) -/* 0CAD8C 7F09625C 46184282 */ mul.s $f10, $f8, $f24 -/* 0CAD90 7F096260 E7A404EC */ swc1 $f4, 0x4ec($sp) -/* 0CAD94 7F096264 46189102 */ mul.s $f4, $f18, $f24 -/* 0CAD98 7F096268 E7A604FC */ swc1 $f6, 0x4fc($sp) -/* 0CAD9C 7F09626C 461C7182 */ mul.s $f6, $f14, $f28 -/* 0CADA0 7F096270 E7AA0500 */ swc1 $f10, 0x500($sp) -/* 0CADA4 7F096274 461C8202 */ mul.s $f8, $f16, $f28 -/* 0CADA8 7F096278 E7A40504 */ swc1 $f4, 0x504($sp) -/* 0CADAC 7F09627C 461CB102 */ mul.s $f4, $f22, $f28 -/* 0CADB0 7F096280 E7A604C0 */ swc1 $f6, 0x4c0($sp) -/* 0CADB4 7F096284 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CADB8 7F096288 46004280 */ add.s $f10, $f8, $f0 -/* 0CADBC 7F09628C E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CADC0 7F096290 C7A4061C */ lwc1 $f4, 0x61c($sp) -/* 0CADC4 7F096294 E7AA04C4 */ swc1 $f10, 0x4c4($sp) -/* 0CADC8 7F096298 461CA282 */ mul.s $f10, $f20, $f28 -/* 0CADCC 7F09629C 46003200 */ add.s $f8, $f6, $f0 -/* 0CADD0 7F0962A0 461C2182 */ mul.s $f6, $f4, $f28 -/* 0CADD4 7F0962A4 E7A804DC */ swc1 $f8, 0x4dc($sp) -/* 0CADD8 7F0962A8 E7AA04F0 */ swc1 $f10, 0x4f0($sp) -/* 0CADDC 7F0962AC 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CADE0 7F0962B0 46003200 */ add.s $f8, $f6, $f0 -/* 0CADE4 7F0962B4 461C9102 */ mul.s $f4, $f18, $f28 -/* 0CADE8 7F0962B8 E7A804F4 */ swc1 $f8, 0x4f4($sp) -/* 0CADEC 7F0962BC 44814000 */ mtc1 $at, $f8 -/* 0CADF0 7F0962C0 E7AA0508 */ swc1 $f10, 0x508($sp) -/* 0CADF4 7F0962C4 46184283 */ div.s $f10, $f8, $f24 -/* 0CADF8 7F0962C8 46002180 */ add.s $f6, $f4, $f0 -/* 0CADFC 7F0962CC E7A6050C */ swc1 $f6, 0x50c($sp) -/* 0CAE00 7F0962D0 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAE04 7F0962D4 E7AA0058 */ swc1 $f10, 0x58($sp) -/* 0CAE08 7F0962D8 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CAE0C 7F0962DC 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAE10 7F0962E0 8FA50580 */ lw $a1, 0x580($sp) -/* 0CAE14 7F0962E4 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CAE18 7F0962E8 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAE1C 7F0962EC 8FA5057C */ lw $a1, 0x57c($sp) -/* 0CAE20 7F0962F0 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CAE24 7F0962F4 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAE28 7F0962F8 8FA50578 */ lw $a1, 0x578($sp) -/* 0CAE2C 7F0962FC 100002CB */ b .L7F096E2C -/* 0CAE30 7F096300 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F096304: -/* 0CAE34 7F096304 C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CAE38 7F096308 C7A60630 */ lwc1 $f6, 0x630($sp) -/* 0CAE3C 7F09630C C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CAE40 7F096310 46189102 */ mul.s $f4, $f18, $f24 -/* 0CAE44 7F096314 C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CAE48 7F096318 C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CAE4C 7F09631C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAE50 7F096320 C7A60648 */ lwc1 $f6, 0x648($sp) -/* 0CAE54 7F096324 C7B60608 */ lwc1 $f22, 0x608($sp) -/* 0CAE58 7F096328 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CAE5C 7F09632C E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CAE60 7F096330 C7AE0614 */ lwc1 $f14, 0x614($sp) -/* 0CAE64 7F096334 46181102 */ mul.s $f4, $f2, $f24 -/* 0CAE68 7F096338 E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CAE6C 7F09633C C7B0061C */ lwc1 $f16, 0x61c($sp) -/* 0CAE70 7F096340 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAE74 7F096344 E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CAE78 7F096348 C7A6060C */ lwc1 $f6, 0x60c($sp) -/* 0CAE7C 7F09634C 46186282 */ mul.s $f10, $f12, $f24 -/* 0CAE80 7F096350 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CAE84 7F096354 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CAE88 7F096358 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CAE8C 7F09635C E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CAE90 7F096360 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CAE94 7F096364 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAE98 7F096368 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CAE9C 7F09636C C7AA0610 */ lwc1 $f10, 0x610($sp) -/* 0CAEA0 7F096370 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CAEA4 7F096374 E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CAEA8 7F096378 46185102 */ mul.s $f4, $f10, $f24 -/* 0CAEAC 7F09637C 24110004 */ li $s1, 4 -/* 0CAEB0 7F096380 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CAEB4 7F096384 46187182 */ mul.s $f6, $f14, $f24 -/* 0CAEB8 7F096388 C7A80618 */ lwc1 $f8, 0x618($sp) -/* 0CAEBC 7F09638C 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CAEC0 7F096390 8FA50584 */ lw $a1, 0x584($sp) -/* 0CAEC4 7F096394 46184282 */ mul.s $f10, $f8, $f24 -/* 0CAEC8 7F096398 E7A404EC */ swc1 $f4, 0x4ec($sp) -/* 0CAECC 7F09639C 46188102 */ mul.s $f4, $f16, $f24 -/* 0CAED0 7F0963A0 E7A604FC */ swc1 $f6, 0x4fc($sp) -/* 0CAED4 7F0963A4 461C9182 */ mul.s $f6, $f18, $f28 -/* 0CAED8 7F0963A8 E7AA0500 */ swc1 $f10, 0x500($sp) -/* 0CAEDC 7F0963AC 461CA202 */ mul.s $f8, $f20, $f28 -/* 0CAEE0 7F0963B0 E7A40504 */ swc1 $f4, 0x504($sp) -/* 0CAEE4 7F0963B4 461C1102 */ mul.s $f4, $f2, $f28 -/* 0CAEE8 7F0963B8 E7A604C0 */ swc1 $f6, 0x4c0($sp) -/* 0CAEEC 7F0963BC 461C6182 */ mul.s $f6, $f12, $f28 -/* 0CAEF0 7F0963C0 46004280 */ add.s $f10, $f8, $f0 -/* 0CAEF4 7F0963C4 E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CAEF8 7F0963C8 C7A40610 */ lwc1 $f4, 0x610($sp) -/* 0CAEFC 7F0963CC E7AA04C4 */ swc1 $f10, 0x4c4($sp) -/* 0CAF00 7F0963D0 461CB282 */ mul.s $f10, $f22, $f28 -/* 0CAF04 7F0963D4 46003200 */ add.s $f8, $f6, $f0 -/* 0CAF08 7F0963D8 461C2182 */ mul.s $f6, $f4, $f28 -/* 0CAF0C 7F0963DC E7A804DC */ swc1 $f8, 0x4dc($sp) -/* 0CAF10 7F0963E0 E7AA04F0 */ swc1 $f10, 0x4f0($sp) -/* 0CAF14 7F0963E4 461C7282 */ mul.s $f10, $f14, $f28 -/* 0CAF18 7F0963E8 46003200 */ add.s $f8, $f6, $f0 -/* 0CAF1C 7F0963EC 461C8102 */ mul.s $f4, $f16, $f28 -/* 0CAF20 7F0963F0 E7A804F4 */ swc1 $f8, 0x4f4($sp) -/* 0CAF24 7F0963F4 44814000 */ mtc1 $at, $f8 -/* 0CAF28 7F0963F8 E7AA0508 */ swc1 $f10, 0x508($sp) -/* 0CAF2C 7F0963FC 46184283 */ div.s $f10, $f8, $f24 -/* 0CAF30 7F096400 46002180 */ add.s $f6, $f4, $f0 -/* 0CAF34 7F096404 E7A6050C */ swc1 $f6, 0x50c($sp) -/* 0CAF38 7F096408 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAF3C 7F09640C E7AA0058 */ swc1 $f10, 0x58($sp) -/* 0CAF40 7F096410 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CAF44 7F096414 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAF48 7F096418 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CAF4C 7F09641C 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CAF50 7F096420 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAF54 7F096424 8FA50578 */ lw $a1, 0x578($sp) -/* 0CAF58 7F096428 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CAF5C 7F09642C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CAF60 7F096430 8FA5057C */ lw $a1, 0x57c($sp) -/* 0CAF64 7F096434 1000027D */ b .L7F096E2C -/* 0CAF68 7F096438 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F09643C: -/* 0CAF6C 7F09643C C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CAF70 7F096440 C7A60624 */ lwc1 $f6, 0x624($sp) -/* 0CAF74 7F096444 C7A20628 */ lwc1 $f2, 0x628($sp) -/* 0CAF78 7F096448 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CAF7C 7F09644C C7AE0608 */ lwc1 $f14, 0x608($sp) -/* 0CAF80 7F096450 C7B20610 */ lwc1 $f18, 0x610($sp) -/* 0CAF84 7F096454 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAF88 7F096458 C7A6060C */ lwc1 $f6, 0x60c($sp) -/* 0CAF8C 7F09645C C7B005F0 */ lwc1 $f16, 0x5f0($sp) -/* 0CAF90 7F096460 46181282 */ mul.s $f10, $f2, $f24 -/* 0CAF94 7F096464 E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CAF98 7F096468 C7AC05F8 */ lwc1 $f12, 0x5f8($sp) -/* 0CAF9C 7F09646C 46187102 */ mul.s $f4, $f14, $f24 -/* 0CAFA0 7F096470 E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CAFA4 7F096474 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CAFA8 7F096478 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAFAC 7F09647C E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CAFB0 7F096480 C7A605F4 */ lwc1 $f6, 0x5f4($sp) -/* 0CAFB4 7F096484 46189282 */ mul.s $f10, $f18, $f24 -/* 0CAFB8 7F096488 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CAFBC 7F09648C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CAFC0 7F096490 46188102 */ mul.s $f4, $f16, $f24 -/* 0CAFC4 7F096494 E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CAFC8 7F096498 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CAFCC 7F09649C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CAFD0 7F0964A0 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CAFD4 7F0964A4 24110003 */ li $s1, 3 -/* 0CAFD8 7F0964A8 46186282 */ mul.s $f10, $f12, $f24 -/* 0CAFDC 7F0964AC E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CAFE0 7F0964B0 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CAFE4 7F0964B4 461CB102 */ mul.s $f4, $f22, $f28 -/* 0CAFE8 7F0964B8 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CAFEC 7F0964BC 8FA50580 */ lw $a1, 0x580($sp) -/* 0CAFF0 7F0964C0 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CAFF4 7F0964C4 E7AA04EC */ swc1 $f10, 0x4ec($sp) -/* 0CAFF8 7F0964C8 461C7282 */ mul.s $f10, $f14, $f28 -/* 0CAFFC 7F0964CC E7A404C0 */ swc1 $f4, 0x4c0($sp) -/* 0CB000 7F0964D0 461C9102 */ mul.s $f4, $f18, $f28 -/* 0CB004 7F0964D4 46003200 */ add.s $f8, $f6, $f0 -/* 0CB008 7F0964D8 E7AA04D8 */ swc1 $f10, 0x4d8($sp) -/* 0CB00C 7F0964DC E7A804C4 */ swc1 $f8, 0x4c4($sp) -/* 0CB010 7F0964E0 461C8202 */ mul.s $f8, $f16, $f28 -/* 0CB014 7F0964E4 46002180 */ add.s $f6, $f4, $f0 -/* 0CB018 7F0964E8 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CB01C 7F0964EC E7A604DC */ swc1 $f6, 0x4dc($sp) -/* 0CB020 7F0964F0 44813000 */ mtc1 $at, $f6 -/* 0CB024 7F0964F4 E7A804F0 */ swc1 $f8, 0x4f0($sp) -/* 0CB028 7F0964F8 46183203 */ div.s $f8, $f6, $f24 -/* 0CB02C 7F0964FC 46005100 */ add.s $f4, $f10, $f0 -/* 0CB030 7F096500 E7A404F4 */ swc1 $f4, 0x4f4($sp) -/* 0CB034 7F096504 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB038 7F096508 E7A80058 */ swc1 $f8, 0x58($sp) -/* 0CB03C 7F09650C 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB040 7F096510 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB044 7F096514 8FA50578 */ lw $a1, 0x578($sp) -/* 0CB048 7F096518 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB04C 7F09651C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB050 7F096520 8FA50570 */ lw $a1, 0x570($sp) -/* 0CB054 7F096524 10000241 */ b .L7F096E2C -/* 0CB058 7F096528 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F09652C: -/* 0CB05C 7F09652C C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CB060 7F096530 C7A40630 */ lwc1 $f4, 0x630($sp) -/* 0CB064 7F096534 C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CB068 7F096538 46189282 */ mul.s $f10, $f18, $f24 -/* 0CB06C 7F09653C C7AC05FC */ lwc1 $f12, 0x5fc($sp) -/* 0CB070 7F096540 C7AE0604 */ lwc1 $f14, 0x604($sp) -/* 0CB074 7F096544 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB078 7F096548 C7A40600 */ lwc1 $f4, 0x600($sp) -/* 0CB07C 7F09654C C7A20608 */ lwc1 $f2, 0x608($sp) -/* 0CB080 7F096550 4618A202 */ mul.s $f8, $f20, $f24 -/* 0CB084 7F096554 E7AA04B4 */ swc1 $f10, 0x4b4($sp) -/* 0CB088 7F096558 C7B00610 */ lwc1 $f16, 0x610($sp) -/* 0CB08C 7F09655C 46186282 */ mul.s $f10, $f12, $f24 -/* 0CB090 7F096560 E7A604B8 */ swc1 $f6, 0x4b8($sp) -/* 0CB094 7F096564 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB098 7F096568 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB09C 7F09656C E7A804BC */ swc1 $f8, 0x4bc($sp) -/* 0CB0A0 7F096570 C7A4060C */ lwc1 $f4, 0x60c($sp) -/* 0CB0A4 7F096574 46187202 */ mul.s $f8, $f14, $f24 -/* 0CB0A8 7F096578 E7AA04CC */ swc1 $f10, 0x4cc($sp) -/* 0CB0AC 7F09657C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB0B0 7F096580 46181282 */ mul.s $f10, $f2, $f24 -/* 0CB0B4 7F096584 E7A604D0 */ swc1 $f6, 0x4d0($sp) -/* 0CB0B8 7F096588 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB0BC 7F09658C 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB0C0 7F096590 E7A804D4 */ swc1 $f8, 0x4d4($sp) -/* 0CB0C4 7F096594 24110003 */ li $s1, 3 -/* 0CB0C8 7F096598 46188202 */ mul.s $f8, $f16, $f24 -/* 0CB0CC 7F09659C E7AA04E4 */ swc1 $f10, 0x4e4($sp) -/* 0CB0D0 7F0965A0 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB0D4 7F0965A4 461C9282 */ mul.s $f10, $f18, $f28 -/* 0CB0D8 7F0965A8 E7A604E8 */ swc1 $f6, 0x4e8($sp) -/* 0CB0DC 7F0965AC 8FA50584 */ lw $a1, 0x584($sp) -/* 0CB0E0 7F0965B0 461CA102 */ mul.s $f4, $f20, $f28 -/* 0CB0E4 7F0965B4 E7A804EC */ swc1 $f8, 0x4ec($sp) -/* 0CB0E8 7F0965B8 461C6202 */ mul.s $f8, $f12, $f28 -/* 0CB0EC 7F0965BC E7AA04C0 */ swc1 $f10, 0x4c0($sp) -/* 0CB0F0 7F0965C0 461C7282 */ mul.s $f10, $f14, $f28 -/* 0CB0F4 7F0965C4 46002180 */ add.s $f6, $f4, $f0 -/* 0CB0F8 7F0965C8 E7A804D8 */ swc1 $f8, 0x4d8($sp) -/* 0CB0FC 7F0965CC E7A604C4 */ swc1 $f6, 0x4c4($sp) -/* 0CB100 7F0965D0 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CB104 7F0965D4 46005100 */ add.s $f4, $f10, $f0 -/* 0CB108 7F0965D8 461C8202 */ mul.s $f8, $f16, $f28 -/* 0CB10C 7F0965DC E7A404DC */ swc1 $f4, 0x4dc($sp) -/* 0CB110 7F0965E0 44812000 */ mtc1 $at, $f4 -/* 0CB114 7F0965E4 E7A604F0 */ swc1 $f6, 0x4f0($sp) -/* 0CB118 7F0965E8 46182183 */ div.s $f6, $f4, $f24 -/* 0CB11C 7F0965EC 46004280 */ add.s $f10, $f8, $f0 -/* 0CB120 7F0965F0 E7AA04F4 */ swc1 $f10, 0x4f4($sp) -/* 0CB124 7F0965F4 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB128 7F0965F8 E7A60058 */ swc1 $f6, 0x58($sp) -/* 0CB12C 7F0965FC 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB130 7F096600 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB134 7F096604 8FA50574 */ lw $a1, 0x574($sp) -/* 0CB138 7F096608 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB13C 7F09660C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB140 7F096610 8FA50578 */ lw $a1, 0x578($sp) -/* 0CB144 7F096614 10000205 */ b .L7F096E2C -/* 0CB148 7F096618 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F09661C: -/* 0CB14C 7F09661C C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CB150 7F096620 C7AA063C */ lwc1 $f10, 0x63c($sp) -/* 0CB154 7F096624 C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CB158 7F096628 46187202 */ mul.s $f8, $f14, $f24 -/* 0CB15C 7F09662C C7A205F0 */ lwc1 $f2, 0x5f0($sp) -/* 0CB160 7F096630 C7AC05F8 */ lwc1 $f12, 0x5f8($sp) -/* 0CB164 7F096634 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB168 7F096638 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) -/* 0CB16C 7F09663C C7B40614 */ lwc1 $f20, 0x614($sp) -/* 0CB170 7F096640 46188182 */ mul.s $f6, $f16, $f24 -/* 0CB174 7F096644 E7A804B4 */ swc1 $f8, 0x4b4($sp) -/* 0CB178 7F096648 C7B2061C */ lwc1 $f18, 0x61c($sp) -/* 0CB17C 7F09664C 46181202 */ mul.s $f8, $f2, $f24 -/* 0CB180 7F096650 E7A404B8 */ swc1 $f4, 0x4b8($sp) -/* 0CB184 7F096654 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB188 7F096658 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB18C 7F09665C E7A604BC */ swc1 $f6, 0x4bc($sp) -/* 0CB190 7F096660 C7AA0618 */ lwc1 $f10, 0x618($sp) -/* 0CB194 7F096664 46186182 */ mul.s $f6, $f12, $f24 -/* 0CB198 7F096668 E7A804CC */ swc1 $f8, 0x4cc($sp) -/* 0CB19C 7F09666C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB1A0 7F096670 4618A202 */ mul.s $f8, $f20, $f24 -/* 0CB1A4 7F096674 E7A404D0 */ swc1 $f4, 0x4d0($sp) -/* 0CB1A8 7F096678 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB1AC 7F09667C 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB1B0 7F096680 E7A604D4 */ swc1 $f6, 0x4d4($sp) -/* 0CB1B4 7F096684 24110003 */ li $s1, 3 -/* 0CB1B8 7F096688 46189182 */ mul.s $f6, $f18, $f24 -/* 0CB1BC 7F09668C E7A804E4 */ swc1 $f8, 0x4e4($sp) -/* 0CB1C0 7F096690 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB1C4 7F096694 461C7202 */ mul.s $f8, $f14, $f28 -/* 0CB1C8 7F096698 E7A404E8 */ swc1 $f4, 0x4e8($sp) -/* 0CB1CC 7F09669C 8FA50588 */ lw $a1, 0x588($sp) -/* 0CB1D0 7F0966A0 461C8282 */ mul.s $f10, $f16, $f28 -/* 0CB1D4 7F0966A4 E7A604EC */ swc1 $f6, 0x4ec($sp) -/* 0CB1D8 7F0966A8 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CB1DC 7F0966AC E7A804C0 */ swc1 $f8, 0x4c0($sp) -/* 0CB1E0 7F0966B0 461C6202 */ mul.s $f8, $f12, $f28 -/* 0CB1E4 7F0966B4 46005100 */ add.s $f4, $f10, $f0 -/* 0CB1E8 7F0966B8 E7A604D8 */ swc1 $f6, 0x4d8($sp) -/* 0CB1EC 7F0966BC E7A404C4 */ swc1 $f4, 0x4c4($sp) -/* 0CB1F0 7F0966C0 461CA102 */ mul.s $f4, $f20, $f28 -/* 0CB1F4 7F0966C4 46004280 */ add.s $f10, $f8, $f0 -/* 0CB1F8 7F0966C8 461C9182 */ mul.s $f6, $f18, $f28 -/* 0CB1FC 7F0966CC E7AA04DC */ swc1 $f10, 0x4dc($sp) -/* 0CB200 7F0966D0 44815000 */ mtc1 $at, $f10 -/* 0CB204 7F0966D4 E7A404F0 */ swc1 $f4, 0x4f0($sp) -/* 0CB208 7F0966D8 46185103 */ div.s $f4, $f10, $f24 -/* 0CB20C 7F0966DC 46003200 */ add.s $f8, $f6, $f0 -/* 0CB210 7F0966E0 E7A804F4 */ swc1 $f8, 0x4f4($sp) -/* 0CB214 7F0966E4 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB218 7F0966E8 E7A40058 */ swc1 $f4, 0x58($sp) -/* 0CB21C 7F0966EC 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB220 7F0966F0 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB224 7F0966F4 8FA50570 */ lw $a1, 0x570($sp) -/* 0CB228 7F0966F8 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB22C 7F0966FC 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB230 7F096700 8FA5057C */ lw $a1, 0x57c($sp) -/* 0CB234 7F096704 100001C9 */ b .L7F096E2C -/* 0CB238 7F096708 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F09670C: -/* 0CB23C 7F09670C C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CB240 7F096710 C7A80648 */ lwc1 $f8, 0x648($sp) -/* 0CB244 7F096714 C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CB248 7F096718 46181182 */ mul.s $f6, $f2, $f24 -/* 0CB24C 7F09671C C7B20614 */ lwc1 $f18, 0x614($sp) -/* 0CB250 7F096720 C7B4061C */ lwc1 $f20, 0x61c($sp) -/* 0CB254 7F096724 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB258 7F096728 C7A80618 */ lwc1 $f8, 0x618($sp) -/* 0CB25C 7F09672C C7AE05FC */ lwc1 $f14, 0x5fc($sp) -/* 0CB260 7F096730 46186102 */ mul.s $f4, $f12, $f24 -/* 0CB264 7F096734 E7A604B4 */ swc1 $f6, 0x4b4($sp) -/* 0CB268 7F096738 C7B00604 */ lwc1 $f16, 0x604($sp) -/* 0CB26C 7F09673C 46189182 */ mul.s $f6, $f18, $f24 -/* 0CB270 7F096740 E7AA04B8 */ swc1 $f10, 0x4b8($sp) -/* 0CB274 7F096744 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB278 7F096748 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB27C 7F09674C E7A404BC */ swc1 $f4, 0x4bc($sp) -/* 0CB280 7F096750 C7A80600 */ lwc1 $f8, 0x600($sp) -/* 0CB284 7F096754 4618A102 */ mul.s $f4, $f20, $f24 -/* 0CB288 7F096758 E7A604CC */ swc1 $f6, 0x4cc($sp) -/* 0CB28C 7F09675C C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB290 7F096760 46187182 */ mul.s $f6, $f14, $f24 -/* 0CB294 7F096764 E7AA04D0 */ swc1 $f10, 0x4d0($sp) -/* 0CB298 7F096768 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB29C 7F09676C 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB2A0 7F096770 E7A404D4 */ swc1 $f4, 0x4d4($sp) -/* 0CB2A4 7F096774 24110003 */ li $s1, 3 -/* 0CB2A8 7F096778 46188102 */ mul.s $f4, $f16, $f24 -/* 0CB2AC 7F09677C E7A604E4 */ swc1 $f6, 0x4e4($sp) -/* 0CB2B0 7F096780 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB2B4 7F096784 461C1182 */ mul.s $f6, $f2, $f28 -/* 0CB2B8 7F096788 E7AA04E8 */ swc1 $f10, 0x4e8($sp) -/* 0CB2BC 7F09678C 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CB2C0 7F096790 461C6202 */ mul.s $f8, $f12, $f28 -/* 0CB2C4 7F096794 E7A404EC */ swc1 $f4, 0x4ec($sp) -/* 0CB2C8 7F096798 461C9102 */ mul.s $f4, $f18, $f28 -/* 0CB2CC 7F09679C E7A604C0 */ swc1 $f6, 0x4c0($sp) -/* 0CB2D0 7F0967A0 461CA182 */ mul.s $f6, $f20, $f28 -/* 0CB2D4 7F0967A4 46004280 */ add.s $f10, $f8, $f0 -/* 0CB2D8 7F0967A8 E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CB2DC 7F0967AC E7AA04C4 */ swc1 $f10, 0x4c4($sp) -/* 0CB2E0 7F0967B0 461C7282 */ mul.s $f10, $f14, $f28 -/* 0CB2E4 7F0967B4 46003200 */ add.s $f8, $f6, $f0 -/* 0CB2E8 7F0967B8 461C8102 */ mul.s $f4, $f16, $f28 -/* 0CB2EC 7F0967BC E7A804DC */ swc1 $f8, 0x4dc($sp) -/* 0CB2F0 7F0967C0 44814000 */ mtc1 $at, $f8 -/* 0CB2F4 7F0967C4 E7AA04F0 */ swc1 $f10, 0x4f0($sp) -/* 0CB2F8 7F0967C8 46184283 */ div.s $f10, $f8, $f24 -/* 0CB2FC 7F0967CC 46002180 */ add.s $f6, $f4, $f0 -/* 0CB300 7F0967D0 E7A604F4 */ swc1 $f6, 0x4f4($sp) -/* 0CB304 7F0967D4 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB308 7F0967D8 E7AA0058 */ swc1 $f10, 0x58($sp) -/* 0CB30C 7F0967DC 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB310 7F0967E0 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB314 7F0967E4 8FA5057C */ lw $a1, 0x57c($sp) -/* 0CB318 7F0967E8 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB31C 7F0967EC 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB320 7F0967F0 8FA50574 */ lw $a1, 0x574($sp) -/* 0CB324 7F0967F4 1000018D */ b .L7F096E2C -/* 0CB328 7F0967F8 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F0967FC: -/* 0CB32C 7F0967FC C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CB330 7F096800 C7A60630 */ lwc1 $f6, 0x630($sp) -/* 0CB334 7F096804 C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CB338 7F096808 46189102 */ mul.s $f4, $f18, $f24 -/* 0CB33C 7F09680C C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CB340 7F096810 C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CB344 7F096814 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB348 7F096818 C7A60648 */ lwc1 $f6, 0x648($sp) -/* 0CB34C 7F09681C C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CB350 7F096820 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CB354 7F096824 E7A404B4 */ swc1 $f4, 0x4b4($sp) -/* 0CB358 7F096828 C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CB35C 7F09682C 46181102 */ mul.s $f4, $f2, $f24 -/* 0CB360 7F096830 E7A804B8 */ swc1 $f8, 0x4b8($sp) -/* 0CB364 7F096834 C7B605F0 */ lwc1 $f22, 0x5f0($sp) -/* 0CB368 7F096838 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB36C 7F09683C E7AA04BC */ swc1 $f10, 0x4bc($sp) -/* 0CB370 7F096840 C7A6063C */ lwc1 $f6, 0x63c($sp) -/* 0CB374 7F096844 46186282 */ mul.s $f10, $f12, $f24 -/* 0CB378 7F096848 E7A404CC */ swc1 $f4, 0x4cc($sp) -/* 0CB37C 7F09684C 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB380 7F096850 46187102 */ mul.s $f4, $f14, $f24 -/* 0CB384 7F096854 E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CB388 7F096858 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB38C 7F09685C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB390 7F096860 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CB394 7F096864 C7A605F4 */ lwc1 $f6, 0x5f4($sp) -/* 0CB398 7F096868 46188282 */ mul.s $f10, $f16, $f24 -/* 0CB39C 7F09686C E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CB3A0 7F096870 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB3A4 7F096874 4618B102 */ mul.s $f4, $f22, $f24 -/* 0CB3A8 7F096878 E7A804E8 */ swc1 $f8, 0x4e8($sp) -/* 0CB3AC 7F09687C 24110005 */ li $s1, 5 -/* 0CB3B0 7F096880 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB3B4 7F096884 E7AA04EC */ swc1 $f10, 0x4ec($sp) -/* 0CB3B8 7F096888 C7AA05F8 */ lwc1 $f10, 0x5f8($sp) -/* 0CB3BC 7F09688C C7A60608 */ lwc1 $f6, 0x608($sp) -/* 0CB3C0 7F096890 E7A404FC */ swc1 $f4, 0x4fc($sp) -/* 0CB3C4 7F096894 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB3C8 7F096898 C7AA060C */ lwc1 $f10, 0x60c($sp) -/* 0CB3CC 7F09689C E7A80500 */ swc1 $f8, 0x500($sp) -/* 0CB3D0 7F0968A0 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB3D4 7F0968A4 C7A60610 */ lwc1 $f6, 0x610($sp) -/* 0CB3D8 7F0968A8 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB3DC 7F0968AC 8FA50584 */ lw $a1, 0x584($sp) -/* 0CB3E0 7F0968B0 E7A40504 */ swc1 $f4, 0x504($sp) -/* 0CB3E4 7F0968B4 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB3E8 7F0968B8 E7A80514 */ swc1 $f8, 0x514($sp) -/* 0CB3EC 7F0968BC 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB3F0 7F0968C0 00000000 */ nop -/* 0CB3F4 7F0968C4 461C9282 */ mul.s $f10, $f18, $f28 -/* 0CB3F8 7F0968C8 E7A40518 */ swc1 $f4, 0x518($sp) -/* 0CB3FC 7F0968CC 461CA102 */ mul.s $f4, $f20, $f28 -/* 0CB400 7F0968D0 E7A8051C */ swc1 $f8, 0x51c($sp) -/* 0CB404 7F0968D4 461C1202 */ mul.s $f8, $f2, $f28 -/* 0CB408 7F0968D8 E7AA04C0 */ swc1 $f10, 0x4c0($sp) -/* 0CB40C 7F0968DC 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CB410 7F0968E0 46002180 */ add.s $f6, $f4, $f0 -/* 0CB414 7F0968E4 E7A804D8 */ swc1 $f8, 0x4d8($sp) -/* 0CB418 7F0968E8 E7A604C4 */ swc1 $f6, 0x4c4($sp) -/* 0CB41C 7F0968EC 461C7182 */ mul.s $f6, $f14, $f28 -/* 0CB420 7F0968F0 46005100 */ add.s $f4, $f10, $f0 -/* 0CB424 7F0968F4 461C8202 */ mul.s $f8, $f16, $f28 -/* 0CB428 7F0968F8 E7A404DC */ swc1 $f4, 0x4dc($sp) -/* 0CB42C 7F0968FC 461CB102 */ mul.s $f4, $f22, $f28 -/* 0CB430 7F096900 E7A604F0 */ swc1 $f6, 0x4f0($sp) -/* 0CB434 7F096904 C7A605F8 */ lwc1 $f6, 0x5f8($sp) -/* 0CB438 7F096908 46004280 */ add.s $f10, $f8, $f0 -/* 0CB43C 7F09690C 461C3202 */ mul.s $f8, $f6, $f28 -/* 0CB440 7F096910 E7A40508 */ swc1 $f4, 0x508($sp) -/* 0CB444 7F096914 C7A40608 */ lwc1 $f4, 0x608($sp) -/* 0CB448 7F096918 E7AA04F4 */ swc1 $f10, 0x4f4($sp) -/* 0CB44C 7F09691C 461C2182 */ mul.s $f6, $f4, $f28 -/* 0CB450 7F096920 46004280 */ add.s $f10, $f8, $f0 -/* 0CB454 7F096924 C7A80610 */ lwc1 $f8, 0x610($sp) -/* 0CB458 7F096928 E7AA050C */ swc1 $f10, 0x50c($sp) -/* 0CB45C 7F09692C E7A60520 */ swc1 $f6, 0x520($sp) -/* 0CB460 7F096930 44813000 */ mtc1 $at, $f6 -/* 0CB464 7F096934 461C4282 */ mul.s $f10, $f8, $f28 -/* 0CB468 7F096938 46183203 */ div.s $f8, $f6, $f24 -/* 0CB46C 7F09693C 46005100 */ add.s $f4, $f10, $f0 -/* 0CB470 7F096940 E7A40524 */ swc1 $f4, 0x524($sp) -/* 0CB474 7F096944 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB478 7F096948 E7A80058 */ swc1 $f8, 0x58($sp) -/* 0CB47C 7F09694C 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB480 7F096950 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB484 7F096954 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CB488 7F096958 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB48C 7F09695C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB490 7F096960 8FA50588 */ lw $a1, 0x588($sp) -/* 0CB494 7F096964 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CB498 7F096968 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB49C 7F09696C 8FA50570 */ lw $a1, 0x570($sp) -/* 0CB4A0 7F096970 27A40514 */ addiu $a0, $sp, 0x514 -/* 0CB4A4 7F096974 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB4A8 7F096978 8FA50578 */ lw $a1, 0x578($sp) -/* 0CB4AC 7F09697C 1000012B */ b .L7F096E2C -/* 0CB4B0 7F096980 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F096984: -/* 0CB4B4 7F096984 C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CB4B8 7F096988 C7A40648 */ lwc1 $f4, 0x648($sp) -/* 0CB4BC 7F09698C C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CB4C0 7F096990 46181282 */ mul.s $f10, $f2, $f24 -/* 0CB4C4 7F096994 C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CB4C8 7F096998 C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CB4CC 7F09699C 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB4D0 7F0969A0 C7A4063C */ lwc1 $f4, 0x63c($sp) -/* 0CB4D4 7F0969A4 C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CB4D8 7F0969A8 46186202 */ mul.s $f8, $f12, $f24 -/* 0CB4DC 7F0969AC E7AA04B4 */ swc1 $f10, 0x4b4($sp) -/* 0CB4E0 7F0969B0 C7B205FC */ lwc1 $f18, 0x5fc($sp) -/* 0CB4E4 7F0969B4 46187282 */ mul.s $f10, $f14, $f24 -/* 0CB4E8 7F0969B8 E7A604B8 */ swc1 $f6, 0x4b8($sp) -/* 0CB4EC 7F0969BC C7B40604 */ lwc1 $f20, 0x604($sp) -/* 0CB4F0 7F0969C0 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB4F4 7F0969C4 E7A804BC */ swc1 $f8, 0x4bc($sp) -/* 0CB4F8 7F0969C8 C7A40624 */ lwc1 $f4, 0x624($sp) -/* 0CB4FC 7F0969CC 46188202 */ mul.s $f8, $f16, $f24 -/* 0CB500 7F0969D0 E7AA04CC */ swc1 $f10, 0x4cc($sp) -/* 0CB504 7F0969D4 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB508 7F0969D8 4618B282 */ mul.s $f10, $f22, $f24 -/* 0CB50C 7F0969DC E7A604D0 */ swc1 $f6, 0x4d0($sp) -/* 0CB510 7F0969E0 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB514 7F0969E4 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB518 7F0969E8 E7A804D4 */ swc1 $f8, 0x4d4($sp) -/* 0CB51C 7F0969EC C7A80628 */ lwc1 $f8, 0x628($sp) -/* 0CB520 7F0969F0 C7A40608 */ lwc1 $f4, 0x608($sp) -/* 0CB524 7F0969F4 E7AA04E4 */ swc1 $f10, 0x4e4($sp) -/* 0CB528 7F0969F8 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB52C 7F0969FC C7A8060C */ lwc1 $f8, 0x60c($sp) -/* 0CB530 7F096A00 E7A604E8 */ swc1 $f6, 0x4e8($sp) -/* 0CB534 7F096A04 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB538 7F096A08 C7A40610 */ lwc1 $f4, 0x610($sp) -/* 0CB53C 7F096A0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB540 7F096A10 24110005 */ li $s1, 5 -/* 0CB544 7F096A14 E7AA04EC */ swc1 $f10, 0x4ec($sp) -/* 0CB548 7F096A18 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB54C 7F096A1C 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB550 7F096A20 E7A604FC */ swc1 $f6, 0x4fc($sp) -/* 0CB554 7F096A24 46182182 */ mul.s $f6, $f4, $f24 -/* 0CB558 7F096A28 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CB55C 7F096A2C 46189202 */ mul.s $f8, $f18, $f24 -/* 0CB560 7F096A30 E7AA0500 */ swc1 $f10, 0x500($sp) -/* 0CB564 7F096A34 C7AA0600 */ lwc1 $f10, 0x600($sp) -/* 0CB568 7F096A38 E7A60504 */ swc1 $f6, 0x504($sp) -/* 0CB56C 7F096A3C 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB570 7F096A40 E7A80514 */ swc1 $f8, 0x514($sp) -/* 0CB574 7F096A44 4618A182 */ mul.s $f6, $f20, $f24 -/* 0CB578 7F096A48 00000000 */ nop -/* 0CB57C 7F096A4C 461C1202 */ mul.s $f8, $f2, $f28 -/* 0CB580 7F096A50 E7A40518 */ swc1 $f4, 0x518($sp) -/* 0CB584 7F096A54 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CB588 7F096A58 E7A6051C */ swc1 $f6, 0x51c($sp) -/* 0CB58C 7F096A5C 461C7182 */ mul.s $f6, $f14, $f28 -/* 0CB590 7F096A60 E7A804C0 */ swc1 $f8, 0x4c0($sp) -/* 0CB594 7F096A64 461C8202 */ mul.s $f8, $f16, $f28 -/* 0CB598 7F096A68 46005100 */ add.s $f4, $f10, $f0 -/* 0CB59C 7F096A6C E7A604D8 */ swc1 $f6, 0x4d8($sp) -/* 0CB5A0 7F096A70 C7A60628 */ lwc1 $f6, 0x628($sp) -/* 0CB5A4 7F096A74 E7A404C4 */ swc1 $f4, 0x4c4($sp) -/* 0CB5A8 7F096A78 461CB102 */ mul.s $f4, $f22, $f28 -/* 0CB5AC 7F096A7C 46004280 */ add.s $f10, $f8, $f0 -/* 0CB5B0 7F096A80 461C3202 */ mul.s $f8, $f6, $f28 -/* 0CB5B4 7F096A84 E7AA04DC */ swc1 $f10, 0x4dc($sp) -/* 0CB5B8 7F096A88 E7A404F0 */ swc1 $f4, 0x4f0($sp) -/* 0CB5BC 7F096A8C C7A40608 */ lwc1 $f4, 0x608($sp) -/* 0CB5C0 7F096A90 46004280 */ add.s $f10, $f8, $f0 -/* 0CB5C4 7F096A94 461C2182 */ mul.s $f6, $f4, $f28 -/* 0CB5C8 7F096A98 C7A80610 */ lwc1 $f8, 0x610($sp) -/* 0CB5CC 7F096A9C E7AA04F4 */ swc1 $f10, 0x4f4($sp) -/* 0CB5D0 7F096AA0 461C4282 */ mul.s $f10, $f8, $f28 -/* 0CB5D4 7F096AA4 E7A60508 */ swc1 $f6, 0x508($sp) -/* 0CB5D8 7F096AA8 461C9182 */ mul.s $f6, $f18, $f28 -/* 0CB5DC 7F096AAC 46005100 */ add.s $f4, $f10, $f0 -/* 0CB5E0 7F096AB0 461CA202 */ mul.s $f8, $f20, $f28 -/* 0CB5E4 7F096AB4 E7A60520 */ swc1 $f6, 0x520($sp) -/* 0CB5E8 7F096AB8 E7A4050C */ swc1 $f4, 0x50c($sp) -/* 0CB5EC 7F096ABC 44812000 */ mtc1 $at, $f4 -/* 0CB5F0 7F096AC0 00000000 */ nop -/* 0CB5F4 7F096AC4 46182183 */ div.s $f6, $f4, $f24 -/* 0CB5F8 7F096AC8 46004280 */ add.s $f10, $f8, $f0 -/* 0CB5FC 7F096ACC E7AA0524 */ swc1 $f10, 0x524($sp) -/* 0CB600 7F096AD0 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB604 7F096AD4 E7A60058 */ swc1 $f6, 0x58($sp) -/* 0CB608 7F096AD8 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB60C 7F096ADC 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB610 7F096AE0 8FA50588 */ lw $a1, 0x588($sp) -/* 0CB614 7F096AE4 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB618 7F096AE8 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB61C 7F096AEC 8FA50580 */ lw $a1, 0x580($sp) -/* 0CB620 7F096AF0 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CB624 7F096AF4 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB628 7F096AF8 8FA50578 */ lw $a1, 0x578($sp) -/* 0CB62C 7F096AFC 27A40514 */ addiu $a0, $sp, 0x514 -/* 0CB630 7F096B00 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB634 7F096B04 8FA50574 */ lw $a1, 0x574($sp) -/* 0CB638 7F096B08 100000C8 */ b .L7F096E2C -/* 0CB63C 7F096B0C 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F096B10: -/* 0CB640 7F096B10 C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CB644 7F096B14 C7AA0624 */ lwc1 $f10, 0x624($sp) -/* 0CB648 7F096B18 C7A60628 */ lwc1 $f6, 0x628($sp) -/* 0CB64C 7F096B1C 4618B202 */ mul.s $f8, $f22, $f24 -/* 0CB650 7F096B20 C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CB654 7F096B24 C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CB658 7F096B28 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB65C 7F096B2C C7A20644 */ lwc1 $f2, 0x644($sp) -/* 0CB660 7F096B30 C7AC064C */ lwc1 $f12, 0x64c($sp) -/* 0CB664 7F096B34 C7AE0614 */ lwc1 $f14, 0x614($sp) -/* 0CB668 7F096B38 E7A804B4 */ swc1 $f8, 0x4b4($sp) -/* 0CB66C 7F096B3C 46183202 */ mul.s $f8, $f6, $f24 -/* 0CB670 7F096B40 C7B0061C */ lwc1 $f16, 0x61c($sp) -/* 0CB674 7F096B44 E7A404B8 */ swc1 $f4, 0x4b8($sp) -/* 0CB678 7F096B48 46189282 */ mul.s $f10, $f18, $f24 -/* 0CB67C 7F096B4C C7A40630 */ lwc1 $f4, 0x630($sp) -/* 0CB680 7F096B50 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB684 7F096B54 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB688 7F096B58 E7A804BC */ swc1 $f8, 0x4bc($sp) -/* 0CB68C 7F096B5C 46182202 */ mul.s $f8, $f4, $f24 -/* 0CB690 7F096B60 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB694 7F096B64 E7AA04CC */ swc1 $f10, 0x4cc($sp) -/* 0CB698 7F096B68 4618A282 */ mul.s $f10, $f20, $f24 -/* 0CB69C 7F096B6C 24110005 */ li $s1, 5 -/* 0CB6A0 7F096B70 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB6A4 7F096B74 46181102 */ mul.s $f4, $f2, $f24 -/* 0CB6A8 7F096B78 E7A804D0 */ swc1 $f8, 0x4d0($sp) -/* 0CB6AC 7F096B7C C7A80648 */ lwc1 $f8, 0x648($sp) -/* 0CB6B0 7F096B80 8FA50580 */ lw $a1, 0x580($sp) -/* 0CB6B4 7F096B84 E7AA04D4 */ swc1 $f10, 0x4d4($sp) -/* 0CB6B8 7F096B88 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB6BC 7F096B8C E7A404E4 */ swc1 $f4, 0x4e4($sp) -/* 0CB6C0 7F096B90 46186102 */ mul.s $f4, $f12, $f24 -/* 0CB6C4 7F096B94 E7AA04E8 */ swc1 $f10, 0x4e8($sp) -/* 0CB6C8 7F096B98 46187202 */ mul.s $f8, $f14, $f24 -/* 0CB6CC 7F096B9C C7AA0618 */ lwc1 $f10, 0x618($sp) -/* 0CB6D0 7F096BA0 E7A404EC */ swc1 $f4, 0x4ec($sp) -/* 0CB6D4 7F096BA4 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB6D8 7F096BA8 C7AA05F0 */ lwc1 $f10, 0x5f0($sp) -/* 0CB6DC 7F096BAC E7A804FC */ swc1 $f8, 0x4fc($sp) -/* 0CB6E0 7F096BB0 46188202 */ mul.s $f8, $f16, $f24 -/* 0CB6E4 7F096BB4 E7A40500 */ swc1 $f4, 0x500($sp) -/* 0CB6E8 7F096BB8 46185102 */ mul.s $f4, $f10, $f24 -/* 0CB6EC 7F096BBC E7A80504 */ swc1 $f8, 0x504($sp) -/* 0CB6F0 7F096BC0 C7A805F4 */ lwc1 $f8, 0x5f4($sp) -/* 0CB6F4 7F096BC4 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB6F8 7F096BC8 E7A40514 */ swc1 $f4, 0x514($sp) -/* 0CB6FC 7F096BCC C7A405F8 */ lwc1 $f4, 0x5f8($sp) -/* 0CB700 7F096BD0 46182202 */ mul.s $f8, $f4, $f24 -/* 0CB704 7F096BD4 E7AA0518 */ swc1 $f10, 0x518($sp) -/* 0CB708 7F096BD8 461CB282 */ mul.s $f10, $f22, $f28 -/* 0CB70C 7F096BDC 00000000 */ nop -/* 0CB710 7F096BE0 461C3102 */ mul.s $f4, $f6, $f28 -/* 0CB714 7F096BE4 E7A8051C */ swc1 $f8, 0x51c($sp) -/* 0CB718 7F096BE8 E7AA04C0 */ swc1 $f10, 0x4c0($sp) -/* 0CB71C 7F096BEC 461C9282 */ mul.s $f10, $f18, $f28 -/* 0CB720 7F096BF0 46002200 */ add.s $f8, $f4, $f0 -/* 0CB724 7F096BF4 461CA182 */ mul.s $f6, $f20, $f28 -/* 0CB728 7F096BF8 E7A804C4 */ swc1 $f8, 0x4c4($sp) -/* 0CB72C 7F096BFC 461C1202 */ mul.s $f8, $f2, $f28 -/* 0CB730 7F096C00 E7AA04D8 */ swc1 $f10, 0x4d8($sp) -/* 0CB734 7F096C04 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CB738 7F096C08 46003100 */ add.s $f4, $f6, $f0 -/* 0CB73C 7F096C0C E7A804F0 */ swc1 $f8, 0x4f0($sp) -/* 0CB740 7F096C10 E7A404DC */ swc1 $f4, 0x4dc($sp) -/* 0CB744 7F096C14 461C7102 */ mul.s $f4, $f14, $f28 -/* 0CB748 7F096C18 46005180 */ add.s $f6, $f10, $f0 -/* 0CB74C 7F096C1C 461C8202 */ mul.s $f8, $f16, $f28 -/* 0CB750 7F096C20 E7A604F4 */ swc1 $f6, 0x4f4($sp) -/* 0CB754 7F096C24 C7A605F0 */ lwc1 $f6, 0x5f0($sp) -/* 0CB758 7F096C28 E7A40508 */ swc1 $f4, 0x508($sp) -/* 0CB75C 7F096C2C 461C3102 */ mul.s $f4, $f6, $f28 -/* 0CB760 7F096C30 46004280 */ add.s $f10, $f8, $f0 -/* 0CB764 7F096C34 C7A805F8 */ lwc1 $f8, 0x5f8($sp) -/* 0CB768 7F096C38 E7AA050C */ swc1 $f10, 0x50c($sp) -/* 0CB76C 7F096C3C 461C4282 */ mul.s $f10, $f8, $f28 -/* 0CB770 7F096C40 E7A40520 */ swc1 $f4, 0x520($sp) -/* 0CB774 7F096C44 44812000 */ mtc1 $at, $f4 -/* 0CB778 7F096C48 00000000 */ nop -/* 0CB77C 7F096C4C 46182203 */ div.s $f8, $f4, $f24 -/* 0CB780 7F096C50 46005180 */ add.s $f6, $f10, $f0 -/* 0CB784 7F096C54 E7A60524 */ swc1 $f6, 0x524($sp) -/* 0CB788 7F096C58 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB78C 7F096C5C E7A80058 */ swc1 $f8, 0x58($sp) -/* 0CB790 7F096C60 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB794 7F096C64 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB798 7F096C68 8FA50584 */ lw $a1, 0x584($sp) -/* 0CB79C 7F096C6C 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB7A0 7F096C70 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB7A4 7F096C74 8FA5058C */ lw $a1, 0x58c($sp) -/* 0CB7A8 7F096C78 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CB7AC 7F096C7C 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB7B0 7F096C80 8FA5057C */ lw $a1, 0x57c($sp) -/* 0CB7B4 7F096C84 27A40514 */ addiu $a0, $sp, 0x514 -/* 0CB7B8 7F096C88 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB7BC 7F096C8C 8FA50570 */ lw $a1, 0x570($sp) -/* 0CB7C0 7F096C90 10000066 */ b .L7F096E2C -/* 0CB7C4 7F096C94 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F096C98: -/* 0CB7C8 7F096C98 C7AE0638 */ lwc1 $f14, 0x638($sp) -/* 0CB7CC 7F096C9C C7A6063C */ lwc1 $f6, 0x63c($sp) -/* 0CB7D0 7F096CA0 C7B00640 */ lwc1 $f16, 0x640($sp) -/* 0CB7D4 7F096CA4 46187282 */ mul.s $f10, $f14, $f24 -/* 0CB7D8 7F096CA8 C7B60620 */ lwc1 $f22, 0x620($sp) -/* 0CB7DC 7F096CAC C7A20628 */ lwc1 $f2, 0x628($sp) -/* 0CB7E0 7F096CB0 46183102 */ mul.s $f4, $f6, $f24 -/* 0CB7E4 7F096CB4 C7A60624 */ lwc1 $f6, 0x624($sp) -/* 0CB7E8 7F096CB8 C7B2062C */ lwc1 $f18, 0x62c($sp) -/* 0CB7EC 7F096CBC 46188202 */ mul.s $f8, $f16, $f24 -/* 0CB7F0 7F096CC0 E7AA04B4 */ swc1 $f10, 0x4b4($sp) -/* 0CB7F4 7F096CC4 C7B40634 */ lwc1 $f20, 0x634($sp) -/* 0CB7F8 7F096CC8 4618B282 */ mul.s $f10, $f22, $f24 -/* 0CB7FC 7F096CCC E7A404B8 */ swc1 $f4, 0x4b8($sp) -/* 0CB800 7F096CD0 C7AC05FC */ lwc1 $f12, 0x5fc($sp) -/* 0CB804 7F096CD4 46183102 */ mul.s $f4, $f6, $f24 -/* 0CB808 7F096CD8 E7A804BC */ swc1 $f8, 0x4bc($sp) -/* 0CB80C 7F096CDC C7A60630 */ lwc1 $f6, 0x630($sp) -/* 0CB810 7F096CE0 46181202 */ mul.s $f8, $f2, $f24 -/* 0CB814 7F096CE4 E7AA04CC */ swc1 $f10, 0x4cc($sp) -/* 0CB818 7F096CE8 3C018004 */ lui $at, %hi(D_8003FD94) -/* 0CB81C 7F096CEC 46189282 */ mul.s $f10, $f18, $f24 -/* 0CB820 7F096CF0 E7A404D0 */ swc1 $f4, 0x4d0($sp) -/* 0CB824 7F096CF4 C420FD94 */ lwc1 $f0, %lo(D_8003FD94)($at) -/* 0CB828 7F096CF8 46183102 */ mul.s $f4, $f6, $f24 -/* 0CB82C 7F096CFC E7A804D4 */ swc1 $f8, 0x4d4($sp) -/* 0CB830 7F096D00 C7A60600 */ lwc1 $f6, 0x600($sp) -/* 0CB834 7F096D04 4618A202 */ mul.s $f8, $f20, $f24 -/* 0CB838 7F096D08 E7AA04E4 */ swc1 $f10, 0x4e4($sp) -/* 0CB83C 7F096D0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CB840 7F096D10 46186282 */ mul.s $f10, $f12, $f24 -/* 0CB844 7F096D14 E7A404E8 */ swc1 $f4, 0x4e8($sp) -/* 0CB848 7F096D18 24110005 */ li $s1, 5 -/* 0CB84C 7F096D1C 46183102 */ mul.s $f4, $f6, $f24 -/* 0CB850 7F096D20 E7A804EC */ swc1 $f8, 0x4ec($sp) -/* 0CB854 7F096D24 C7A80604 */ lwc1 $f8, 0x604($sp) -/* 0CB858 7F096D28 C7A60614 */ lwc1 $f6, 0x614($sp) -/* 0CB85C 7F096D2C E7AA04FC */ swc1 $f10, 0x4fc($sp) -/* 0CB860 7F096D30 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB864 7F096D34 C7A80618 */ lwc1 $f8, 0x618($sp) -/* 0CB868 7F096D38 E7A40500 */ swc1 $f4, 0x500($sp) -/* 0CB86C 7F096D3C 46183102 */ mul.s $f4, $f6, $f24 -/* 0CB870 7F096D40 C7A6061C */ lwc1 $f6, 0x61c($sp) -/* 0CB874 7F096D44 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CB878 7F096D48 8FA50588 */ lw $a1, 0x588($sp) -/* 0CB87C 7F096D4C E7AA0504 */ swc1 $f10, 0x504($sp) -/* 0CB880 7F096D50 46184282 */ mul.s $f10, $f8, $f24 -/* 0CB884 7F096D54 E7A40514 */ swc1 $f4, 0x514($sp) -/* 0CB888 7F096D58 46183102 */ mul.s $f4, $f6, $f24 -/* 0CB88C 7F096D5C 00000000 */ nop -/* 0CB890 7F096D60 461C7202 */ mul.s $f8, $f14, $f28 -/* 0CB894 7F096D64 E7AA0518 */ swc1 $f10, 0x518($sp) -/* 0CB898 7F096D68 461C8282 */ mul.s $f10, $f16, $f28 -/* 0CB89C 7F096D6C E7A4051C */ swc1 $f4, 0x51c($sp) -/* 0CB8A0 7F096D70 461CB102 */ mul.s $f4, $f22, $f28 -/* 0CB8A4 7F096D74 E7A804C0 */ swc1 $f8, 0x4c0($sp) -/* 0CB8A8 7F096D78 461C1202 */ mul.s $f8, $f2, $f28 -/* 0CB8AC 7F096D7C 46005180 */ add.s $f6, $f10, $f0 -/* 0CB8B0 7F096D80 E7A404D8 */ swc1 $f4, 0x4d8($sp) -/* 0CB8B4 7F096D84 E7A604C4 */ swc1 $f6, 0x4c4($sp) -/* 0CB8B8 7F096D88 461C9182 */ mul.s $f6, $f18, $f28 -/* 0CB8BC 7F096D8C 46004280 */ add.s $f10, $f8, $f0 -/* 0CB8C0 7F096D90 461CA102 */ mul.s $f4, $f20, $f28 -/* 0CB8C4 7F096D94 E7AA04DC */ swc1 $f10, 0x4dc($sp) -/* 0CB8C8 7F096D98 461C6282 */ mul.s $f10, $f12, $f28 -/* 0CB8CC 7F096D9C E7A604F0 */ swc1 $f6, 0x4f0($sp) -/* 0CB8D0 7F096DA0 C7A60604 */ lwc1 $f6, 0x604($sp) -/* 0CB8D4 7F096DA4 46002200 */ add.s $f8, $f4, $f0 -/* 0CB8D8 7F096DA8 461C3102 */ mul.s $f4, $f6, $f28 -/* 0CB8DC 7F096DAC E7AA0508 */ swc1 $f10, 0x508($sp) -/* 0CB8E0 7F096DB0 C7AA0614 */ lwc1 $f10, 0x614($sp) -/* 0CB8E4 7F096DB4 E7A804F4 */ swc1 $f8, 0x4f4($sp) -/* 0CB8E8 7F096DB8 461C5182 */ mul.s $f6, $f10, $f28 -/* 0CB8EC 7F096DBC 46002200 */ add.s $f8, $f4, $f0 -/* 0CB8F0 7F096DC0 C7A4061C */ lwc1 $f4, 0x61c($sp) -/* 0CB8F4 7F096DC4 E7A8050C */ swc1 $f8, 0x50c($sp) -/* 0CB8F8 7F096DC8 E7A60520 */ swc1 $f6, 0x520($sp) -/* 0CB8FC 7F096DCC 44813000 */ mtc1 $at, $f6 -/* 0CB900 7F096DD0 461C2202 */ mul.s $f8, $f4, $f28 -/* 0CB904 7F096DD4 46183103 */ div.s $f4, $f6, $f24 -/* 0CB908 7F096DD8 46004280 */ add.s $f10, $f8, $f0 -/* 0CB90C 7F096DDC E7AA0524 */ swc1 $f10, 0x524($sp) -/* 0CB910 7F096DE0 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB914 7F096DE4 E7A40058 */ swc1 $f4, 0x58($sp) -/* 0CB918 7F096DE8 27A404CC */ addiu $a0, $sp, 0x4cc -/* 0CB91C 7F096DEC 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB920 7F096DF0 8FA50580 */ lw $a1, 0x580($sp) -/* 0CB924 7F096DF4 27A404E4 */ addiu $a0, $sp, 0x4e4 -/* 0CB928 7F096DF8 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB92C 7F096DFC 8FA50584 */ lw $a1, 0x584($sp) -/* 0CB930 7F096E00 27A404FC */ addiu $a0, $sp, 0x4fc -/* 0CB934 7F096E04 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB938 7F096E08 8FA50574 */ lw $a1, 0x574($sp) -/* 0CB93C 7F096E0C 27A40514 */ addiu $a0, $sp, 0x514 -/* 0CB940 7F096E10 0FC24F2C */ jal sub_GAME_7F093CB0 -/* 0CB944 7F096E14 8FA5057C */ lw $a1, 0x57c($sp) -/* 0CB948 7F096E18 10000004 */ b .L7F096E2C -/* 0CB94C 7F096E1C 8FAF06B0 */ lw $t7, 0x6b0($sp) -def_7F095E0C: -.L7F096E20: -/* 0CB950 7F096E20 1000014F */ b .L7F097360 -/* 0CB954 7F096E24 00601025 */ move $v0, $v1 -/* 0CB958 7F096E28 8FAF06B0 */ lw $t7, 0x6b0($sp) -.L7F096E2C: -/* 0CB95C 7F096E2C 3C0CE700 */ lui $t4, 0xe700 -/* 0CB960 7F096E30 25ED0008 */ addiu $t5, $t7, 8 -/* 0CB964 7F096E34 AFAD06B0 */ sw $t5, 0x6b0($sp) -/* 0CB968 7F096E38 ADE00004 */ sw $zero, 4($t7) -/* 0CB96C 7F096E3C 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CB970 7F096E40 ADEC0000 */ sw $t4, ($t7) -/* 0CB974 7F096E44 84590010 */ lh $t9, 0x10($v0) -/* 0CB978 7F096E48 3C0B8009 */ lui $t3, %hi(skywaterimages) -/* 0CB97C 7F096E4C 8D6BD124 */ lw $t3, %lo(skywaterimages)($t3) -/* 0CB980 7F096E50 0019C080 */ sll $t8, $t9, 2 -/* 0CB984 7F096E54 0319C023 */ subu $t8, $t8, $t9 -/* 0CB988 7F096E58 0018C080 */ sll $t8, $t8, 2 -/* 0CB98C 7F096E5C 240E0002 */ li $t6, 2 -/* 0CB990 7F096E60 AFAE0010 */ sw $t6, 0x10($sp) -/* 0CB994 7F096E64 27A406B0 */ addiu $a0, $sp, 0x6b0 -/* 0CB998 7F096E68 24060001 */ li $a2, 1 -/* 0CB99C 7F096E6C 00003825 */ move $a3, $zero -/* 0CB9A0 7F096E70 0FC1DB5A */ jal likely_generate_DL_for_image_declaration -/* 0CB9A4 7F096E74 030B2821 */ addu $a1, $t8, $t3 -/* 0CB9A8 7F096E78 8FAA06B0 */ lw $t2, 0x6b0($sp) -/* 0CB9AC 7F096E7C 3C0DFB00 */ lui $t5, 0xfb00 -/* 0CB9B0 7F096E80 254F0008 */ addiu $t7, $t2, 8 -/* 0CB9B4 7F096E84 AFAF06B0 */ sw $t7, 0x6b0($sp) -/* 0CB9B8 7F096E88 AD4D0000 */ sw $t5, ($t2) -/* 0CB9BC 7F096E8C 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CB9C0 7F096E90 AFAA0228 */ sw $t2, 0x228($sp) -/* 0CB9C4 7F096E94 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CB9C8 7F096E98 00408025 */ move $s0, $v0 -/* 0CB9CC 7F096E9C 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CB9D0 7F096EA0 AFA2006C */ sw $v0, 0x6c($sp) -/* 0CB9D4 7F096EA4 8FAB006C */ lw $t3, 0x6c($sp) -/* 0CB9D8 7F096EA8 9059000A */ lbu $t9, 0xa($v0) -/* 0CB9DC 7F096EAC 916A0008 */ lbu $t2, 8($t3) -/* 0CB9E0 7F096EB0 0019C200 */ sll $t8, $t9, 8 -/* 0CB9E4 7F096EB4 92190009 */ lbu $t9, 9($s0) -/* 0CB9E8 7F096EB8 000A7E00 */ sll $t7, $t2, 0x18 -/* 0CB9EC 7F096EBC 030F6825 */ or $t5, $t8, $t7 -/* 0CB9F0 7F096EC0 8FB80228 */ lw $t8, 0x228($sp) -/* 0CB9F4 7F096EC4 00195C00 */ sll $t3, $t9, 0x10 -/* 0CB9F8 7F096EC8 01AB7025 */ or $t6, $t5, $t3 -/* 0CB9FC 7F096ECC 35CA00FF */ ori $t2, $t6, 0xff -/* 0CBA00 7F096ED0 AF0A0004 */ sw $t2, 4($t8) -/* 0CBA04 7F096ED4 8FAF06B0 */ lw $t7, 0x6b0($sp) -/* 0CBA08 7F096ED8 3C0D55FE */ lui $t5, (0x55FEF97C >> 16) # lui $t5, 0x55fe -/* 0CBA0C 7F096EDC 3C19FC40 */ lui $t9, (0xFC40FE81 >> 16) # lui $t9, 0xfc40 -/* 0CBA10 7F096EE0 25EC0008 */ addiu $t4, $t7, 8 -/* 0CBA14 7F096EE4 AFAC06B0 */ sw $t4, 0x6b0($sp) -/* 0CBA18 7F096EE8 3739FE81 */ ori $t9, (0xFC40FE81 & 0xFFFF) # ori $t9, $t9, 0xfe81 -/* 0CBA1C 7F096EEC 35ADF97C */ ori $t5, (0x55FEF97C & 0xFFFF) # ori $t5, $t5, 0xf97c -/* 0CBA20 7F096EF0 ADED0004 */ sw $t5, 4($t7) -/* 0CBA24 7F096EF4 0FC1E0F9 */ jal currentPlayerGetProjectionMatrixF -/* 0CBA28 7F096EF8 ADF90000 */ sw $t9, ($t7) -/* 0CBA2C 7F096EFC 0FC1E0F1 */ jal currentPlayerGetMatrix10CC -/* 0CBA30 7F096F00 00408025 */ move $s0, $v0 -/* 0CBA34 7F096F04 02002025 */ move $a0, $s0 -/* 0CBA38 7F096F08 00402825 */ move $a1, $v0 -/* 0CBA3C 7F096F0C 0FC16032 */ jal matrix_4x4_multiply -/* 0CBA40 7F096F10 27A601E4 */ addiu $a2, $sp, 0x1e4 -/* 0CBA44 7F096F14 C7A80058 */ lwc1 $f8, 0x58($sp) -/* 0CBA48 7F096F18 3C048008 */ lui $a0, %hi(dword_CODE_bss_80079E98) -/* 0CBA4C 7F096F1C 24849E98 */ addiu $a0, %lo(dword_CODE_bss_80079E98) # addiu $a0, $a0, -0x6168 -/* 0CBA50 7F096F20 44054000 */ mfc1 $a1, $f8 -/* 0CBA54 7F096F24 44064000 */ mfc1 $a2, $f8 -/* 0CBA58 7F096F28 44074000 */ mfc1 $a3, $f8 -/* 0CBA5C 7F096F2C 0C005BA4 */ jal guScaleF -/* 0CBA60 7F096F30 00000000 */ nop -/* 0CBA64 7F096F34 3C058008 */ lui $a1, %hi(dword_CODE_bss_80079E98) -/* 0CBA68 7F096F38 24A59E98 */ addiu $a1, %lo(dword_CODE_bss_80079E98) # addiu $a1, $a1, -0x6168 -/* 0CBA6C 7F096F3C 27A401E4 */ addiu $a0, $sp, 0x1e4 -/* 0CBA70 7F096F40 0FC16032 */ jal matrix_4x4_multiply -/* 0CBA74 7F096F44 27A601A4 */ addiu $a2, $sp, 0x1a4 -/* 0CBA78 7F096F48 1A200036 */ blez $s1, .L7F097024 -/* 0CBA7C 7F096F4C AFA00088 */ sw $zero, 0x88($sp) -/* 0CBA80 7F096F50 27A404B4 */ addiu $a0, $sp, 0x4b4 -/* 0CBA84 7F096F54 AFA40058 */ sw $a0, 0x58($sp) -/* 0CBA88 7F096F58 27B0008C */ addiu $s0, $sp, 0x8c -.L7F096F5C: -/* 0CBA8C 7F096F5C 3C018005 */ lui $at, %hi(D_800575D0) -/* 0CBA90 7F096F60 C42075D0 */ lwc1 $f0, %lo(D_800575D0)($at) -/* 0CBA94 7F096F64 8FA40058 */ lw $a0, 0x58($sp) -/* 0CBA98 7F096F68 27A501A4 */ addiu $a1, $sp, 0x1a4 -/* 0CBA9C 7F096F6C 44070000 */ mfc1 $a3, $f0 -/* 0CBAA0 7F096F70 24060082 */ li $a2, 130 -/* 0CBAA4 7F096F74 AFB00014 */ sw $s0, 0x14($sp) -/* 0CBAA8 7F096F78 0FC25CE2 */ jal sub_GAME_7F097388 -/* 0CBAAC 7F096F7C E7A00010 */ swc1 $f0, 0x10($sp) -/* 0CBAB0 7F096F80 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBAB4 7F096F84 00000000 */ nop -/* 0CBAB8 7F096F88 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBABC 7F096F8C 46000506 */ mov.s $f20, $f0 -/* 0CBAC0 7F096F90 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CBAC4 7F096F94 46000586 */ mov.s $f22, $f0 -/* 0CBAC8 7F096F98 46160280 */ add.s $f10, $f0, $f22 -/* 0CBACC 7F096F9C 461AA382 */ mul.s $f14, $f20, $f26 -/* 0CBAD0 7F096FA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBAD4 7F096FA4 44812000 */ mtc1 $at, $f4 -/* 0CBAD8 7F096FA8 461A5182 */ mul.s $f6, $f10, $f26 -/* 0CBADC 7F096FAC C60C0028 */ lwc1 $f12, 0x28($s0) -/* 0CBAE0 7F096FB0 46043201 */ sub.s $f8, $f6, $f4 -/* 0CBAE4 7F096FB4 44064000 */ mfc1 $a2, $f8 -/* 0CBAE8 7F096FB8 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CBAEC 7F096FBC 00000000 */ nop -/* 0CBAF0 7F096FC0 0FC1E135 */ jal getPlayer_c_screentop -/* 0CBAF4 7F096FC4 E6000028 */ swc1 $f0, 0x28($s0) -/* 0CBAF8 7F096FC8 0FC1E135 */ jal getPlayer_c_screentop -/* 0CBAFC 7F096FCC 46000506 */ mov.s $f20, $f0 -/* 0CBB00 7F096FD0 0FC1E12D */ jal getPlayer_c_screenheight -/* 0CBB04 7F096FD4 46000586 */ mov.s $f22, $f0 -/* 0CBB08 7F096FD8 46160280 */ add.s $f10, $f0, $f22 -/* 0CBB0C 7F096FDC 461AA382 */ mul.s $f14, $f20, $f26 -/* 0CBB10 7F096FE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBB14 7F096FE4 44812000 */ mtc1 $at, $f4 -/* 0CBB18 7F096FE8 461A5182 */ mul.s $f6, $f10, $f26 -/* 0CBB1C 7F096FEC C60C002C */ lwc1 $f12, 0x2c($s0) -/* 0CBB20 7F096FF0 46043201 */ sub.s $f8, $f6, $f4 -/* 0CBB24 7F096FF4 44064000 */ mfc1 $a2, $f8 -/* 0CBB28 7F096FF8 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CBB2C 7F096FFC 00000000 */ nop -/* 0CBB30 7F097000 8FA20088 */ lw $v0, 0x88($sp) -/* 0CBB34 7F097004 E600002C */ swc1 $f0, 0x2c($s0) -/* 0CBB38 7F097008 8FAB0058 */ lw $t3, 0x58($sp) -/* 0CBB3C 7F09700C 24420001 */ addiu $v0, $v0, 1 -/* 0CBB40 7F097010 AFA20088 */ sw $v0, 0x88($sp) -/* 0CBB44 7F097014 256E0018 */ addiu $t6, $t3, 0x18 -/* 0CBB48 7F097018 AFAE0058 */ sw $t6, 0x58($sp) -/* 0CBB4C 7F09701C 1451FFCF */ bne $v0, $s1, .L7F096F5C -/* 0CBB50 7F097020 26100038 */ addiu $s0, $s0, 0x38 -.L7F097024: -/* 0CBB54 7F097024 24010004 */ li $at, 4 -/* 0CBB58 7F097028 16210099 */ bne $s1, $at, .L7F097290 -/* 0CBB5C 7F09702C 8FAA005C */ lw $t2, 0x5c($sp) -/* 0CBB60 7F097030 2401000C */ li $at, 12 -/* 0CBB64 7F097034 1541007E */ bne $t2, $at, .L7F097230 -/* 0CBB68 7F097038 27B0008C */ addiu $s0, $sp, 0x8c -/* 0CBB6C 7F09703C C7AA0548 */ lwc1 $f10, 0x548($sp) -/* 0CBB70 7F097040 C7A6054C */ lwc1 $f6, 0x54c($sp) -/* 0CBB74 7F097044 C7A800F0 */ lwc1 $f8, 0xf0($sp) -/* 0CBB78 7F097048 4606503C */ c.lt.s $f10, $f6 -/* 0CBB7C 7F09704C C7AA00B8 */ lwc1 $f10, 0xb8($sp) -/* 0CBB80 7F097050 4502003D */ bc1fl .L7F097148 -/* 0CBB84 7F097054 461A5180 */ add.s $f6, $f10, $f26 -/* 0CBB88 7F097058 461A4280 */ add.s $f10, $f8, $f26 -/* 0CBB8C 7F09705C C7A40160 */ lwc1 $f4, 0x160($sp) -/* 0CBB90 7F097060 27A5008C */ addiu $a1, $sp, 0x8c -/* 0CBB94 7F097064 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBB98 7F097068 4604503E */ c.le.s $f10, $f4 -/* 0CBB9C 7F09706C 27A600C4 */ addiu $a2, $sp, 0xc4 -/* 0CBBA0 7F097070 27A700FC */ addiu $a3, $sp, 0xfc -/* 0CBBA4 7F097074 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBBA8 7F097078 4500002C */ bc1f .L7F09712C -/* 0CBBAC 7F09707C 24180001 */ li $t8, 1 -/* 0CBBB0 7F097080 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBBB4 7F097084 00000000 */ nop -/* 0CBBB8 7F097088 461A0182 */ mul.s $f6, $f0, $f26 -/* 0CBBBC 7F09708C 0FC1E135 */ jal getPlayer_c_screentop -/* 0CBBC0 7F097090 E7A600B4 */ swc1 $f6, 0xb4($sp) -/* 0CBBC4 7F097094 461A0202 */ mul.s $f8, $f0, $f26 -/* 0CBBC8 7F097098 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBBCC 7F09709C E7A800B8 */ swc1 $f8, 0xb8($sp) -/* 0CBBD0 7F0970A0 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CBBD4 7F0970A4 46000506 */ mov.s $f20, $f0 -/* 0CBBD8 7F0970A8 46140100 */ add.s $f4, $f0, $f20 -/* 0CBBDC 7F0970AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBBE0 7F0970B0 44813000 */ mtc1 $at, $f6 -/* 0CBBE4 7F0970B4 461A2282 */ mul.s $f10, $f4, $f26 -/* 0CBBE8 7F0970B8 46065201 */ sub.s $f8, $f10, $f6 -/* 0CBBEC 7F0970BC 0FC1E135 */ jal getPlayer_c_screentop -/* 0CBBF0 7F0970C0 E7A800EC */ swc1 $f8, 0xec($sp) -/* 0CBBF4 7F0970C4 461A0102 */ mul.s $f4, $f0, $f26 -/* 0CBBF8 7F0970C8 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBBFC 7F0970CC E7A400F0 */ swc1 $f4, 0xf0($sp) -/* 0CBC00 7F0970D0 461A0282 */ mul.s $f10, $f0, $f26 -/* 0CBC04 7F0970D4 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBC08 7F0970D8 E7AA0124 */ swc1 $f10, 0x124($sp) -/* 0CBC0C 7F0970DC 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CBC10 7F0970E0 46000506 */ mov.s $f20, $f0 -/* 0CBC14 7F0970E4 46140180 */ add.s $f6, $f0, $f20 -/* 0CBC18 7F0970E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBC1C 7F0970EC 44812000 */ mtc1 $at, $f4 -/* 0CBC20 7F0970F0 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBC24 7F0970F4 461A3202 */ mul.s $f8, $f6, $f26 -/* 0CBC28 7F0970F8 44813000 */ mtc1 $at, $f6 -/* 0CBC2C 7F0970FC 27B10134 */ addiu $s1, $sp, 0x134 -/* 0CBC30 7F097100 27A5008C */ addiu $a1, $sp, 0x8c -/* 0CBC34 7F097104 AFB10010 */ sw $s1, 0x10($sp) -/* 0CBC38 7F097108 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBC3C 7F09710C 27A600C4 */ addiu $a2, $sp, 0xc4 -/* 0CBC40 7F097110 46044281 */ sub.s $f10, $f8, $f4 -/* 0CBC44 7F097114 27A700FC */ addiu $a3, $sp, 0xfc -/* 0CBC48 7F097118 E7A60014 */ swc1 $f6, 0x14($sp) -/* 0CBC4C 7F09711C 0FC2628B */ jal sub_GAME_7F098A2C -/* 0CBC50 7F097120 E7AA015C */ swc1 $f10, 0x15c($sp) -/* 0CBC54 7F097124 1000008D */ b .L7F09735C -/* 0CBC58 7F097128 AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F09712C: -/* 0CBC5C 7F09712C 44814000 */ mtc1 $at, $f8 -/* 0CBC60 7F097130 AFB80014 */ sw $t8, 0x14($sp) -/* 0CBC64 7F097134 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBC68 7F097138 E7A80010 */ swc1 $f8, 0x10($sp) -/* 0CBC6C 7F09713C 10000087 */ b .L7F09735C -/* 0CBC70 7F097140 AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0CBC74 7F097144 461A5180 */ add.s $f6, $f10, $f26 -.L7F097148: -/* 0CBC78 7F097148 C7A40128 */ lwc1 $f4, 0x128($sp) -/* 0CBC7C 7F09714C 27A6008C */ addiu $a2, $sp, 0x8c -/* 0CBC80 7F097150 27A70134 */ addiu $a3, $sp, 0x134 -/* 0CBC84 7F097154 4604303E */ c.le.s $f6, $f4 -/* 0CBC88 7F097158 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBC8C 7F09715C 27A500C4 */ addiu $a1, $sp, 0xc4 -/* 0CBC90 7F097160 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBC94 7F097164 4500002C */ bc1f .L7F097218 -/* 0CBC98 7F097168 240C0001 */ li $t4, 1 -/* 0CBC9C 7F09716C 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBCA0 7F097170 00000000 */ nop -/* 0CBCA4 7F097174 461A0202 */ mul.s $f8, $f0, $f26 -/* 0CBCA8 7F097178 0FC1E135 */ jal getPlayer_c_screentop -/* 0CBCAC 7F09717C E7A800B4 */ swc1 $f8, 0xb4($sp) -/* 0CBCB0 7F097180 461A0282 */ mul.s $f10, $f0, $f26 -/* 0CBCB4 7F097184 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBCB8 7F097188 E7AA00B8 */ swc1 $f10, 0xb8($sp) -/* 0CBCBC 7F09718C 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CBCC0 7F097190 46000506 */ mov.s $f20, $f0 -/* 0CBCC4 7F097194 46140100 */ add.s $f4, $f0, $f20 -/* 0CBCC8 7F097198 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBCCC 7F09719C 44814000 */ mtc1 $at, $f8 -/* 0CBCD0 7F0971A0 461A2182 */ mul.s $f6, $f4, $f26 -/* 0CBCD4 7F0971A4 46083281 */ sub.s $f10, $f6, $f8 -/* 0CBCD8 7F0971A8 0FC1E135 */ jal getPlayer_c_screentop -/* 0CBCDC 7F0971AC E7AA00EC */ swc1 $f10, 0xec($sp) -/* 0CBCE0 7F0971B0 461A0102 */ mul.s $f4, $f0, $f26 -/* 0CBCE4 7F0971B4 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBCE8 7F0971B8 E7A400F0 */ swc1 $f4, 0xf0($sp) -/* 0CBCEC 7F0971BC 461A0182 */ mul.s $f6, $f0, $f26 -/* 0CBCF0 7F0971C0 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CBCF4 7F0971C4 E7A60124 */ swc1 $f6, 0x124($sp) -/* 0CBCF8 7F0971C8 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CBCFC 7F0971CC 46000506 */ mov.s $f20, $f0 -/* 0CBD00 7F0971D0 46140200 */ add.s $f8, $f0, $f20 -/* 0CBD04 7F0971D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBD08 7F0971D8 44812000 */ mtc1 $at, $f4 -/* 0CBD0C 7F0971DC 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBD10 7F0971E0 461A4282 */ mul.s $f10, $f8, $f26 -/* 0CBD14 7F0971E4 44814000 */ mtc1 $at, $f8 -/* 0CBD18 7F0971E8 27AF00FC */ addiu $t7, $sp, 0xfc -/* 0CBD1C 7F0971EC 27A6008C */ addiu $a2, $sp, 0x8c -/* 0CBD20 7F0971F0 27A70134 */ addiu $a3, $sp, 0x134 -/* 0CBD24 7F0971F4 AFAF0010 */ sw $t7, 0x10($sp) -/* 0CBD28 7F0971F8 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBD2C 7F0971FC 46045181 */ sub.s $f6, $f10, $f4 -/* 0CBD30 7F097200 27A500C4 */ addiu $a1, $sp, 0xc4 -/* 0CBD34 7F097204 E7A80014 */ swc1 $f8, 0x14($sp) -/* 0CBD38 7F097208 0FC2628B */ jal sub_GAME_7F098A2C -/* 0CBD3C 7F09720C E7A6015C */ swc1 $f6, 0x15c($sp) -/* 0CBD40 7F097210 10000052 */ b .L7F09735C -/* 0CBD44 7F097214 AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F097218: -/* 0CBD48 7F097218 44815000 */ mtc1 $at, $f10 -/* 0CBD4C 7F09721C AFAC0014 */ sw $t4, 0x14($sp) -/* 0CBD50 7F097220 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBD54 7F097224 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0CBD58 7F097228 1000004C */ b .L7F09735C -/* 0CBD5C 7F09722C AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F097230: -/* 0CBD60 7F097230 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBD64 7F097234 44812000 */ mtc1 $at, $f4 -/* 0CBD68 7F097238 27B10134 */ addiu $s1, $sp, 0x134 -/* 0CBD6C 7F09723C 24190001 */ li $t9, 1 -/* 0CBD70 7F097240 AFB90014 */ sw $t9, 0x14($sp) -/* 0CBD74 7F097244 02203825 */ move $a3, $s1 -/* 0CBD78 7F097248 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBD7C 7F09724C 02002825 */ move $a1, $s0 -/* 0CBD80 7F097250 27A600C4 */ addiu $a2, $sp, 0xc4 -/* 0CBD84 7F097254 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBD88 7F097258 E7A40010 */ swc1 $f4, 0x10($sp) -/* 0CBD8C 7F09725C 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBD90 7F097260 44813000 */ mtc1 $at, $f6 -/* 0CBD94 7F097264 240D0001 */ li $t5, 1 -/* 0CBD98 7F097268 AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0CBD9C 7F09726C AFAD0014 */ sw $t5, 0x14($sp) -/* 0CBDA0 7F097270 00402025 */ move $a0, $v0 -/* 0CBDA4 7F097274 02202825 */ move $a1, $s1 -/* 0CBDA8 7F097278 27A600FC */ addiu $a2, $sp, 0xfc -/* 0CBDAC 7F09727C 02003825 */ move $a3, $s0 -/* 0CBDB0 7F097280 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBDB4 7F097284 E7A60010 */ swc1 $f6, 0x10($sp) -/* 0CBDB8 7F097288 10000034 */ b .L7F09735C -/* 0CBDBC 7F09728C AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F097290: -/* 0CBDC0 7F097290 24010005 */ li $at, 5 -/* 0CBDC4 7F097294 16210024 */ bne $s1, $at, .L7F097328 -/* 0CBDC8 7F097298 27B0008C */ addiu $s0, $sp, 0x8c -/* 0CBDCC 7F09729C 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBDD0 7F0972A0 44814000 */ mtc1 $at, $f8 -/* 0CBDD4 7F0972A4 240B0001 */ li $t3, 1 -/* 0CBDD8 7F0972A8 AFAB0014 */ sw $t3, 0x14($sp) -/* 0CBDDC 7F0972AC 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBDE0 7F0972B0 02002825 */ move $a1, $s0 -/* 0CBDE4 7F0972B4 27A600C4 */ addiu $a2, $sp, 0xc4 -/* 0CBDE8 7F0972B8 27A700FC */ addiu $a3, $sp, 0xfc -/* 0CBDEC 7F0972BC 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBDF0 7F0972C0 E7A80010 */ swc1 $f8, 0x10($sp) -/* 0CBDF4 7F0972C4 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBDF8 7F0972C8 44815000 */ mtc1 $at, $f10 -/* 0CBDFC 7F0972CC 27B10134 */ addiu $s1, $sp, 0x134 -/* 0CBE00 7F0972D0 240E0001 */ li $t6, 1 -/* 0CBE04 7F0972D4 AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0CBE08 7F0972D8 AFAE0014 */ sw $t6, 0x14($sp) -/* 0CBE0C 7F0972DC 02203825 */ move $a3, $s1 -/* 0CBE10 7F0972E0 00402025 */ move $a0, $v0 -/* 0CBE14 7F0972E4 02002825 */ move $a1, $s0 -/* 0CBE18 7F0972E8 27A600FC */ addiu $a2, $sp, 0xfc -/* 0CBE1C 7F0972EC 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBE20 7F0972F0 E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0CBE24 7F0972F4 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBE28 7F0972F8 44812000 */ mtc1 $at, $f4 -/* 0CBE2C 7F0972FC 240A0001 */ li $t2, 1 -/* 0CBE30 7F097300 AFA206B0 */ sw $v0, 0x6b0($sp) -/* 0CBE34 7F097304 AFAA0014 */ sw $t2, 0x14($sp) -/* 0CBE38 7F097308 00402025 */ move $a0, $v0 -/* 0CBE3C 7F09730C 02002825 */ move $a1, $s0 -/* 0CBE40 7F097310 02203025 */ move $a2, $s1 -/* 0CBE44 7F097314 27A7016C */ addiu $a3, $sp, 0x16c -/* 0CBE48 7F097318 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBE4C 7F09731C E7A40010 */ swc1 $f4, 0x10($sp) -/* 0CBE50 7F097320 1000000E */ b .L7F09735C -/* 0CBE54 7F097324 AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F097328: -/* 0CBE58 7F097328 24010003 */ li $at, 3 -/* 0CBE5C 7F09732C 1621000B */ bne $s1, $at, .L7F09735C -/* 0CBE60 7F097330 27A5008C */ addiu $a1, $sp, 0x8c -/* 0CBE64 7F097334 3C014302 */ li $at, 0x43020000 # 130.000000 -/* 0CBE68 7F097338 44813000 */ mtc1 $at, $f6 -/* 0CBE6C 7F09733C 24180001 */ li $t8, 1 -/* 0CBE70 7F097340 AFB80014 */ sw $t8, 0x14($sp) -/* 0CBE74 7F097344 8FA406B0 */ lw $a0, 0x6b0($sp) -/* 0CBE78 7F097348 27A600C4 */ addiu $a2, $sp, 0xc4 -/* 0CBE7C 7F09734C 27A700FC */ addiu $a3, $sp, 0xfc -/* 0CBE80 7F097350 0FC25E06 */ jal sub_GAME_7F097818 -/* 0CBE84 7F097354 E7A60010 */ swc1 $f6, 0x10($sp) -/* 0CBE88 7F097358 AFA206B0 */ sw $v0, 0x6b0($sp) -.L7F09735C: -/* 0CBE8C 7F09735C 8FA206B0 */ lw $v0, 0x6b0($sp) -.L7F097360: -/* 0CBE90 7F097360 8FBF004C */ lw $ra, 0x4c($sp) -/* 0CBE94 7F097364 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0CBE98 7F097368 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0CBE9C 7F09736C D7B80028 */ ldc1 $f24, 0x28($sp) -/* 0CBEA0 7F097370 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* 0CBEA4 7F097374 D7BC0038 */ ldc1 $f28, 0x38($sp) -/* 0CBEA8 7F097378 8FB00044 */ lw $s0, 0x44($sp) -/* 0CBEAC 7F09737C 8FB10048 */ lw $s1, 0x48($sp) -/* 0CBEB0 7F097380 03E00008 */ jr $ra -/* 0CBEB4 7F097384 27BD06B0 */ addiu $sp, $sp, 0x6b0 -) -#endif +void sub_GAME_7F097388(SkyRelated18 *arg0, Mtxf *arg1, u16 arg2, f32 arg3, f32 arg4, SkyRelated38 *arg5) +{ + f32 sp68[4]; + f32 sp64; + f32 sp60; + f32 f22; + f32 f0; + f32 sp48[4]; + f32 sp38[4]; + f32 mult; + mult = arg2 / 65536.0f; + sp68[0] = (arg0->unk00 * arg1->m[0][0] + arg0->unk04 * arg1->m[1][0] + arg0->unk08 * arg1->m[2][0]) + arg1->m[3][0]; + sp68[1] = (arg0->unk00 * arg1->m[0][1] + arg0->unk04 * arg1->m[1][1] + arg0->unk08 * arg1->m[2][1]) + arg1->m[3][1]; + sp68[2] = (arg0->unk00 * arg1->m[0][2] + arg0->unk04 * arg1->m[1][2] + arg0->unk08 * arg1->m[2][2]) + arg1->m[3][2]; + sp68[3] = (arg0->unk00 * arg1->m[0][3] + arg0->unk04 * arg1->m[1][3] + arg0->unk08 * arg1->m[2][3]) + arg1->m[3][3]; -#ifdef NONMATCHING -void sub_GAME_7F097388(void) { + sp60 = arg0->unk0c * (arg3 / 65536.0f); + sp64 = arg0->unk10 * (arg4 / 65536.0f); + if (sp68[3] == 0.0f) + { + f22 = 32767.0f; + } + else + { + f22 = 1.0f / (sp68[3] * mult); + } + + f0 = f22; + if (f0 < 0.0f) { f0 = 32767.0f; } + + sp48[0] = sp68[0] * f0 * mult; + sp48[1] = sp68[1] * f0 * mult; + sp48[2] = sp68[2] * f0 * mult; + sp48[3] = sp68[3] * f0 * mult; + + sp38[0] = sp48[0] * (getPlayer_c_screenwidth() * 2) + (getPlayer_c_screenwidth() * 2 + getPlayer_c_screenleft() * 4); + sp38[1] = -sp48[1] * (getPlayer_c_screenheight() * 2) + (getPlayer_c_screenheight() * 2 + getPlayer_c_screentop() * 4); + + sp38[2] = sp48[2] * 511.0f + 511.0f; + sp38[3] = sp48[3] * 0 + 0; + + sp38[0] = skyClamp(sp38[0], -4090.0f, 4090.0f); + sp38[1] = skyClamp(sp38[1], -4090.0f, 4090.0f); + sp38[2] = skyClamp(sp38[2], 0.0f, 32767.0f); + sp38[3] = skyClamp(sp38[3], 0.0f, 32767.0f); + + arg5->unk00 = sp68[0]; + arg5->unk04 = sp68[1]; + arg5->unk08 = sp68[2]; + arg5->unk0c = sp68[3]; + arg5->unk20 = sp60; + arg5->unk24 = sp64; + arg5->unk28 = sp38[0]; + arg5->unk2c = sp38[1] - fogGetCurrentEnvironmentp()->WaterConcavity * 4.0f; + arg5->unk30 = sp38[2]; + arg5->unk34 = f22; + + arg5->r = arg0->r; + arg5->g = arg0->g; + arg5->b = arg0->b; + arg5->a = arg0->a; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F097388 -/* 0CBEB8 7F097388 27BDFF88 */ addiu $sp, $sp, -0x78 -/* 0CBEBC 7F09738C 30CEFFFF */ andi $t6, $a2, 0xffff -/* 0CBEC0 7F097390 448E2000 */ mtc1 $t6, $f4 -/* 0CBEC4 7F097394 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CBEC8 7F097398 44816000 */ mtc1 $at, $f12 -/* 0CBECC 7F09739C AFB00020 */ sw $s0, 0x20($sp) -/* 0CBED0 7F0973A0 44877000 */ mtc1 $a3, $f14 -/* 0CBED4 7F0973A4 00808025 */ move $s0, $a0 -/* 0CBED8 7F0973A8 AFBF0024 */ sw $ra, 0x24($sp) -/* 0CBEDC 7F0973AC F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0CBEE0 7F0973B0 AFA60080 */ sw $a2, 0x80($sp) -/* 0CBEE4 7F0973B4 05C10005 */ bgez $t6, .L7F0973CC -/* 0CBEE8 7F0973B8 468021A0 */ cvt.s.w $f6, $f4 -/* 0CBEEC 7F0973BC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0CBEF0 7F0973C0 44814000 */ mtc1 $at, $f8 -/* 0CBEF4 7F0973C4 00000000 */ nop -/* 0CBEF8 7F0973C8 46083180 */ add.s $f6, $f6, $f8 -.L7F0973CC: -/* 0CBEFC 7F0973CC C60A0000 */ lwc1 $f10, ($s0) -/* 0CBF00 7F0973D0 C4B20000 */ lwc1 $f18, ($a1) -/* 0CBF04 7F0973D4 460C3003 */ div.s $f0, $f6, $f12 -/* 0CBF08 7F0973D8 C4A60010 */ lwc1 $f6, 0x10($a1) -/* 0CBF0C 7F0973DC C6080004 */ lwc1 $f8, 4($s0) -/* 0CBF10 7F0973E0 44808000 */ mtc1 $zero, $f16 -/* 0CBF14 7F0973E4 46125102 */ mul.s $f4, $f10, $f18 -/* 0CBF18 7F0973E8 00000000 */ nop -/* 0CBF1C 7F0973EC 46064282 */ mul.s $f10, $f8, $f6 -/* 0CBF20 7F0973F0 C4A60020 */ lwc1 $f6, 0x20($a1) -/* 0CBF24 7F0973F4 C6080008 */ lwc1 $f8, 8($s0) -/* 0CBF28 7F0973F8 460A2480 */ add.s $f18, $f4, $f10 -/* 0CBF2C 7F0973FC 46064102 */ mul.s $f4, $f8, $f6 -/* 0CBF30 7F097400 C4A80030 */ lwc1 $f8, 0x30($a1) -/* 0CBF34 7F097404 46000086 */ mov.s $f2, $f0 -/* 0CBF38 7F097408 46049280 */ add.s $f10, $f18, $f4 -/* 0CBF3C 7F09740C 460A4180 */ add.s $f6, $f8, $f10 -/* 0CBF40 7F097410 E7A60068 */ swc1 $f6, 0x68($sp) -/* 0CBF44 7F097414 C6120000 */ lwc1 $f18, ($s0) -/* 0CBF48 7F097418 C4A40004 */ lwc1 $f4, 4($a1) -/* 0CBF4C 7F09741C C60A0004 */ lwc1 $f10, 4($s0) -/* 0CBF50 7F097420 C4A60014 */ lwc1 $f6, 0x14($a1) -/* 0CBF54 7F097424 46049202 */ mul.s $f8, $f18, $f4 -/* 0CBF58 7F097428 00000000 */ nop -/* 0CBF5C 7F09742C 46065482 */ mul.s $f18, $f10, $f6 -/* 0CBF60 7F097430 C4A60024 */ lwc1 $f6, 0x24($a1) -/* 0CBF64 7F097434 C60A0008 */ lwc1 $f10, 8($s0) -/* 0CBF68 7F097438 46124100 */ add.s $f4, $f8, $f18 -/* 0CBF6C 7F09743C 46065202 */ mul.s $f8, $f10, $f6 -/* 0CBF70 7F097440 C4AA0034 */ lwc1 $f10, 0x34($a1) -/* 0CBF74 7F097444 46082480 */ add.s $f18, $f4, $f8 -/* 0CBF78 7F097448 46125180 */ add.s $f6, $f10, $f18 -/* 0CBF7C 7F09744C E7A6006C */ swc1 $f6, 0x6c($sp) -/* 0CBF80 7F097450 C6040000 */ lwc1 $f4, ($s0) -/* 0CBF84 7F097454 C4A80008 */ lwc1 $f8, 8($a1) -/* 0CBF88 7F097458 C6120004 */ lwc1 $f18, 4($s0) -/* 0CBF8C 7F09745C C4A60018 */ lwc1 $f6, 0x18($a1) -/* 0CBF90 7F097460 46082282 */ mul.s $f10, $f4, $f8 -/* 0CBF94 7F097464 00000000 */ nop -/* 0CBF98 7F097468 46069102 */ mul.s $f4, $f18, $f6 -/* 0CBF9C 7F09746C C4A60028 */ lwc1 $f6, 0x28($a1) -/* 0CBFA0 7F097470 C6120008 */ lwc1 $f18, 8($s0) -/* 0CBFA4 7F097474 46045200 */ add.s $f8, $f10, $f4 -/* 0CBFA8 7F097478 46069282 */ mul.s $f10, $f18, $f6 -/* 0CBFAC 7F09747C C4B20038 */ lwc1 $f18, 0x38($a1) -/* 0CBFB0 7F097480 460A4100 */ add.s $f4, $f8, $f10 -/* 0CBFB4 7F097484 46049180 */ add.s $f6, $f18, $f4 -/* 0CBFB8 7F097488 E7A60070 */ swc1 $f6, 0x70($sp) -/* 0CBFBC 7F09748C C4AA000C */ lwc1 $f10, 0xc($a1) -/* 0CBFC0 7F097490 C6080000 */ lwc1 $f8, ($s0) -/* 0CBFC4 7F097494 C4A6001C */ lwc1 $f6, 0x1c($a1) -/* 0CBFC8 7F097498 C6040004 */ lwc1 $f4, 4($s0) -/* 0CBFCC 7F09749C 460A4482 */ mul.s $f18, $f8, $f10 -/* 0CBFD0 7F0974A0 00000000 */ nop -/* 0CBFD4 7F0974A4 46062202 */ mul.s $f8, $f4, $f6 -/* 0CBFD8 7F0974A8 C4A6002C */ lwc1 $f6, 0x2c($a1) -/* 0CBFDC 7F0974AC C6040008 */ lwc1 $f4, 8($s0) -/* 0CBFE0 7F0974B0 46089280 */ add.s $f10, $f18, $f8 -/* 0CBFE4 7F0974B4 46062482 */ mul.s $f18, $f4, $f6 -/* 0CBFE8 7F0974B8 C4A4003C */ lwc1 $f4, 0x3c($a1) -/* 0CBFEC 7F0974BC 46125200 */ add.s $f8, $f10, $f18 -/* 0CBFF0 7F0974C0 460C7483 */ div.s $f18, $f14, $f12 -/* 0CBFF4 7F0974C4 46082180 */ add.s $f6, $f4, $f8 -/* 0CBFF8 7F0974C8 E7A60074 */ swc1 $f6, 0x74($sp) -/* 0CBFFC 7F0974CC C60A000C */ lwc1 $f10, 0xc($s0) -/* 0CC000 7F0974D0 C7A60088 */ lwc1 $f6, 0x88($sp) -/* 0CC004 7F0974D4 46125102 */ mul.s $f4, $f10, $f18 -/* 0CC008 7F0974D8 460C3283 */ div.s $f10, $f6, $f12 -/* 0CC00C 7F0974DC E7A40060 */ swc1 $f4, 0x60($sp) -/* 0CC010 7F0974E0 C6080010 */ lwc1 $f8, 0x10($s0) -/* 0CC014 7F0974E4 C7A40074 */ lwc1 $f4, 0x74($sp) -/* 0CC018 7F0974E8 46048032 */ c.eq.s $f16, $f4 -/* 0CC01C 7F0974EC 460A4482 */ mul.s $f18, $f8, $f10 -/* 0CC020 7F0974F0 E7B20064 */ swc1 $f18, 0x64($sp) -/* 0CC024 7F0974F4 45000004 */ bc1f .L7F097508 -/* 0CC028 7F0974F8 C7B20068 */ lwc1 $f18, 0x68($sp) -/* 0CC02C 7F0974FC 3C018005 */ lui $at, %hi(D_800575D4) -/* 0CC030 7F097500 10000006 */ b .L7F09751C -/* 0CC034 7F097504 C43475D4 */ lwc1 $f20, %lo(D_800575D4)($at) -.L7F097508: -/* 0CC038 7F097508 C7A80074 */ lwc1 $f8, 0x74($sp) -/* 0CC03C 7F09750C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CC040 7F097510 44813000 */ mtc1 $at, $f6 -/* 0CC044 7F097514 46004282 */ mul.s $f10, $f8, $f0 -/* 0CC048 7F097518 460A3503 */ div.s $f20, $f6, $f10 -.L7F09751C: -/* 0CC04C 7F09751C 4610A03C */ c.lt.s $f20, $f16 -/* 0CC050 7F097520 4600A006 */ mov.s $f0, $f20 -/* 0CC054 7F097524 45000002 */ bc1f .L7F097530 -/* 0CC058 7F097528 3C018005 */ lui $at, %hi(D_800575D8) -/* 0CC05C 7F09752C C42075D8 */ lwc1 $f0, %lo(D_800575D8)($at) -.L7F097530: -/* 0CC060 7F097530 46009102 */ mul.s $f4, $f18, $f0 -/* 0CC064 7F097534 C7A6006C */ lwc1 $f6, 0x6c($sp) -/* 0CC068 7F097538 46022202 */ mul.s $f8, $f4, $f2 -/* 0CC06C 7F09753C C7A40070 */ lwc1 $f4, 0x70($sp) -/* 0CC070 7F097540 46003282 */ mul.s $f10, $f6, $f0 -/* 0CC074 7F097544 E7A80048 */ swc1 $f8, 0x48($sp) -/* 0CC078 7F097548 46025482 */ mul.s $f18, $f10, $f2 -/* 0CC07C 7F09754C C7AA0074 */ lwc1 $f10, 0x74($sp) -/* 0CC080 7F097550 46002202 */ mul.s $f8, $f4, $f0 -/* 0CC084 7F097554 E7B2004C */ swc1 $f18, 0x4c($sp) -/* 0CC088 7F097558 46024182 */ mul.s $f6, $f8, $f2 -/* 0CC08C 7F09755C 00000000 */ nop -/* 0CC090 7F097560 46005482 */ mul.s $f18, $f10, $f0 -/* 0CC094 7F097564 E7A60050 */ swc1 $f6, 0x50($sp) -/* 0CC098 7F097568 46029102 */ mul.s $f4, $f18, $f2 -/* 0CC09C 7F09756C 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CC0A0 7F097570 E7A40054 */ swc1 $f4, 0x54($sp) -/* 0CC0A4 7F097574 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CC0A8 7F097578 E7A0002C */ swc1 $f0, 0x2c($sp) -/* 0CC0AC 7F09757C 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CC0B0 7F097580 E7A00030 */ swc1 $f0, 0x30($sp) -/* 0CC0B4 7F097584 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CC0B8 7F097588 44811000 */ mtc1 $at, $f2 -/* 0CC0BC 7F09758C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CC0C0 7F097590 44814000 */ mtc1 $at, $f8 -/* 0CC0C4 7F097594 C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 0CC0C8 7F097598 46080182 */ mul.s $f6, $f0, $f8 -/* 0CC0CC 7F09759C C7A80048 */ lwc1 $f8, 0x48($sp) -/* 0CC0D0 7F0975A0 46025482 */ mul.s $f18, $f10, $f2 -/* 0CC0D4 7F0975A4 C7AA002C */ lwc1 $f10, 0x2c($sp) -/* 0CC0D8 7F0975A8 46123100 */ add.s $f4, $f6, $f18 -/* 0CC0DC 7F0975AC 46025182 */ mul.s $f6, $f10, $f2 -/* 0CC0E0 7F0975B0 00000000 */ nop -/* 0CC0E4 7F0975B4 46064482 */ mul.s $f18, $f8, $f6 -/* 0CC0E8 7F0975B8 46122280 */ add.s $f10, $f4, $f18 -/* 0CC0EC 7F0975BC 0FC1E12D */ jal getPlayer_c_screenheight -/* 0CC0F0 7F0975C0 E7AA0038 */ swc1 $f10, 0x38($sp) -/* 0CC0F4 7F0975C4 0FC1E12D */ jal getPlayer_c_screenheight -/* 0CC0F8 7F0975C8 E7A0002C */ swc1 $f0, 0x2c($sp) -/* 0CC0FC 7F0975CC 0FC1E135 */ jal getPlayer_c_screentop -/* 0CC100 7F0975D0 E7A00030 */ swc1 $f0, 0x30($sp) -/* 0CC104 7F0975D4 3C018005 */ lui $at, %hi(D_800575DC) -/* 0CC108 7F0975D8 C42275DC */ lwc1 $f2, %lo(D_800575DC)($at) -/* 0CC10C 7F0975DC 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CC110 7F0975E0 44818000 */ mtc1 $at, $f16 -/* 0CC114 7F0975E4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CC118 7F0975E8 44814000 */ mtc1 $at, $f8 -/* 0CC11C 7F0975EC C7A40030 */ lwc1 $f4, 0x30($sp) -/* 0CC120 7F0975F0 3C018005 */ lui $at, %hi(D_800575E0) -/* 0CC124 7F0975F4 46080182 */ mul.s $f6, $f0, $f8 -/* 0CC128 7F0975F8 C7A8004C */ lwc1 $f8, 0x4c($sp) -/* 0CC12C 7F0975FC 3C06457F */ lui $a2, (0x457FA000 >> 16) # lui $a2, 0x457f -/* 0CC130 7F097600 46102482 */ mul.s $f18, $f4, $f16 -/* 0CC134 7F097604 46004107 */ neg.s $f4, $f8 -/* 0CC138 7F097608 34C6A000 */ ori $a2, (0x457FA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CC13C 7F09760C C42E75E0 */ lwc1 $f14, %lo(D_800575E0)($at) -/* 0CC140 7F097610 C7AC0038 */ lwc1 $f12, 0x38($sp) -/* 0CC144 7F097614 46123280 */ add.s $f10, $f6, $f18 -/* 0CC148 7F097618 C7A6002C */ lwc1 $f6, 0x2c($sp) -/* 0CC14C 7F09761C 46103482 */ mul.s $f18, $f6, $f16 -/* 0CC150 7F097620 00000000 */ nop -/* 0CC154 7F097624 46122202 */ mul.s $f8, $f4, $f18 -/* 0CC158 7F097628 C7A40050 */ lwc1 $f4, 0x50($sp) -/* 0CC15C 7F09762C 46022482 */ mul.s $f18, $f4, $f2 -/* 0CC160 7F097630 46085180 */ add.s $f6, $f10, $f8 -/* 0CC164 7F097634 C7A80054 */ lwc1 $f8, 0x54($sp) -/* 0CC168 7F097638 46029280 */ add.s $f10, $f18, $f2 -/* 0CC16C 7F09763C E7A6003C */ swc1 $f6, 0x3c($sp) -/* 0CC170 7F097640 44803000 */ mtc1 $zero, $f6 -/* 0CC174 7F097644 E7AA0040 */ swc1 $f10, 0x40($sp) -/* 0CC178 7F097648 46064102 */ mul.s $f4, $f8, $f6 -/* 0CC17C 7F09764C 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC180 7F097650 E7A40044 */ swc1 $f4, 0x44($sp) -/* 0CC184 7F097654 3C018005 */ lui $at, %hi(D_800575E4) -/* 0CC188 7F097658 3C06457F */ lui $a2, (0x457FA000 >> 16) # lui $a2, 0x457f -/* 0CC18C 7F09765C E7A00038 */ swc1 $f0, 0x38($sp) -/* 0CC190 7F097660 34C6A000 */ ori $a2, (0x457FA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CC194 7F097664 C42E75E4 */ lwc1 $f14, %lo(D_800575E4)($at) -/* 0CC198 7F097668 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC19C 7F09766C C7AC003C */ lwc1 $f12, 0x3c($sp) -/* 0CC1A0 7F097670 44807000 */ mtc1 $zero, $f14 -/* 0CC1A4 7F097674 3C0646FF */ lui $a2, (0x46FFFE00 >> 16) # lui $a2, 0x46ff -/* 0CC1A8 7F097678 E7A0003C */ swc1 $f0, 0x3c($sp) -/* 0CC1AC 7F09767C 34C6FE00 */ ori $a2, (0x46FFFE00 & 0xFFFF) # ori $a2, $a2, 0xfe00 -/* 0CC1B0 7F097680 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC1B4 7F097684 C7AC0040 */ lwc1 $f12, 0x40($sp) -/* 0CC1B8 7F097688 44807000 */ mtc1 $zero, $f14 -/* 0CC1BC 7F09768C 3C0646FF */ lui $a2, (0x46FFFE00 >> 16) # lui $a2, 0x46ff -/* 0CC1C0 7F097690 E7A00040 */ swc1 $f0, 0x40($sp) -/* 0CC1C4 7F097694 34C6FE00 */ ori $a2, (0x46FFFE00 & 0xFFFF) # ori $a2, $a2, 0xfe00 -/* 0CC1C8 7F097698 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC1CC 7F09769C C7AC0044 */ lwc1 $f12, 0x44($sp) -/* 0CC1D0 7F0976A0 8FA3008C */ lw $v1, 0x8c($sp) -/* 0CC1D4 7F0976A4 C7B20068 */ lwc1 $f18, 0x68($sp) -/* 0CC1D8 7F0976A8 E7A00044 */ swc1 $f0, 0x44($sp) -/* 0CC1DC 7F0976AC E4720000 */ swc1 $f18, ($v1) -/* 0CC1E0 7F0976B0 C7AA006C */ lwc1 $f10, 0x6c($sp) -/* 0CC1E4 7F0976B4 E46A0004 */ swc1 $f10, 4($v1) -/* 0CC1E8 7F0976B8 C7A80070 */ lwc1 $f8, 0x70($sp) -/* 0CC1EC 7F0976BC E4680008 */ swc1 $f8, 8($v1) -/* 0CC1F0 7F0976C0 C7A60074 */ lwc1 $f6, 0x74($sp) -/* 0CC1F4 7F0976C4 E466000C */ swc1 $f6, 0xc($v1) -/* 0CC1F8 7F0976C8 C7A40060 */ lwc1 $f4, 0x60($sp) -/* 0CC1FC 7F0976CC E4640020 */ swc1 $f4, 0x20($v1) -/* 0CC200 7F0976D0 C7B20064 */ lwc1 $f18, 0x64($sp) -/* 0CC204 7F0976D4 E4720024 */ swc1 $f18, 0x24($v1) -/* 0CC208 7F0976D8 C7AA0038 */ lwc1 $f10, 0x38($sp) -/* 0CC20C 7F0976DC 0FC2E9CB */ jal fogGetCurrentEnvironmentp -/* 0CC210 7F0976E0 E46A0028 */ swc1 $f10, 0x28($v1) -/* 0CC214 7F0976E4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CC218 7F0976E8 44813000 */ mtc1 $at, $f6 -/* 0CC21C 7F0976EC C4480038 */ lwc1 $f8, 0x38($v0) -/* 0CC220 7F0976F0 C7B2003C */ lwc1 $f18, 0x3c($sp) -/* 0CC224 7F0976F4 8FA3008C */ lw $v1, 0x8c($sp) -/* 0CC228 7F0976F8 46064102 */ mul.s $f4, $f8, $f6 -/* 0CC22C 7F0976FC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0CC230 7F097700 46049281 */ sub.s $f10, $f18, $f4 -/* 0CC234 7F097704 E46A002C */ swc1 $f10, 0x2c($v1) -/* 0CC238 7F097708 C7A80040 */ lwc1 $f8, 0x40($sp) -/* 0CC23C 7F09770C E4740034 */ swc1 $f20, 0x34($v1) -/* 0CC240 7F097710 E4680030 */ swc1 $f8, 0x30($v1) -/* 0CC244 7F097714 920F0014 */ lbu $t7, 0x14($s0) -/* 0CC248 7F097718 448F3000 */ mtc1 $t7, $f6 -/* 0CC24C 7F09771C 05E10004 */ bgez $t7, .L7F097730 -/* 0CC250 7F097720 468034A0 */ cvt.s.w $f18, $f6 -/* 0CC254 7F097724 44812000 */ mtc1 $at, $f4 -/* 0CC258 7F097728 00000000 */ nop -/* 0CC25C 7F09772C 46049480 */ add.s $f18, $f18, $f4 -.L7F097730: -/* 0CC260 7F097730 E4720010 */ swc1 $f18, 0x10($v1) -/* 0CC264 7F097734 92180015 */ lbu $t8, 0x15($s0) -/* 0CC268 7F097738 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0CC26C 7F09773C 44985000 */ mtc1 $t8, $f10 -/* 0CC270 7F097740 07010004 */ bgez $t8, .L7F097754 -/* 0CC274 7F097744 46805220 */ cvt.s.w $f8, $f10 -/* 0CC278 7F097748 44813000 */ mtc1 $at, $f6 -/* 0CC27C 7F09774C 00000000 */ nop -/* 0CC280 7F097750 46064200 */ add.s $f8, $f8, $f6 -.L7F097754: -/* 0CC284 7F097754 E4680014 */ swc1 $f8, 0x14($v1) -/* 0CC288 7F097758 92190016 */ lbu $t9, 0x16($s0) -/* 0CC28C 7F09775C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0CC290 7F097760 44992000 */ mtc1 $t9, $f4 -/* 0CC294 7F097764 07210004 */ bgez $t9, .L7F097778 -/* 0CC298 7F097768 468024A0 */ cvt.s.w $f18, $f4 -/* 0CC29C 7F09776C 44815000 */ mtc1 $at, $f10 -/* 0CC2A0 7F097770 00000000 */ nop -/* 0CC2A4 7F097774 460A9480 */ add.s $f18, $f18, $f10 -.L7F097778: -/* 0CC2A8 7F097778 E4720018 */ swc1 $f18, 0x18($v1) -/* 0CC2AC 7F09777C 92080017 */ lbu $t0, 0x17($s0) -/* 0CC2B0 7F097780 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0CC2B4 7F097784 44883000 */ mtc1 $t0, $f6 -/* 0CC2B8 7F097788 05010004 */ bgez $t0, .L7F09779C -/* 0CC2BC 7F09778C 46803220 */ cvt.s.w $f8, $f6 -/* 0CC2C0 7F097790 44812000 */ mtc1 $at, $f4 -/* 0CC2C4 7F097794 00000000 */ nop -/* 0CC2C8 7F097798 46044200 */ add.s $f8, $f8, $f4 -.L7F09779C: -/* 0CC2CC 7F09779C E468001C */ swc1 $f8, 0x1c($v1) -/* 0CC2D0 7F0977A0 8FBF0024 */ lw $ra, 0x24($sp) -/* 0CC2D4 7F0977A4 8FB00020 */ lw $s0, 0x20($sp) -/* 0CC2D8 7F0977A8 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0CC2DC 7F0977AC 03E00008 */ jr $ra -/* 0CC2E0 7F0977B0 27BD0078 */ addiu $sp, $sp, 0x78 -) -#endif - - - -s32 sub_GAME_7F0977B4(f32 *arg0, f32 *arg1) +bool sub_GAME_7F0977B4(SkyRelated38 *arg0, SkyRelated38 *arg1) { f32 f0; f32 f1; - f0 = arg0[10] - arg1[10]; - f1 = arg0[11] - arg1[11]; - return sqrtf((f0 * f0) + (f1 * f1)) < 1.0f ? 1 : 0; + f0 = arg0->unk28 - arg1->unk28; + f1 = arg0->unk2c - arg1->unk2c; + return sqrtf((f0 * f0) + (f1 * f1)) < 1.0f ? TRUE : FALSE; } +Gfx *sub_GAME_7F097818(Gfx *gdl, SkyRelated38 *arg1, SkyRelated38 *arg2, SkyRelated38 *arg3, f32 arg4, bool textured) +{ + SkyRelated38 *sp484; + SkyRelated38 *sp480; + SkyRelated38 *sp47c; + s32 i; + f32 sp474; + f32 sp470; + f32 sp46c; + f32 sp468; + f32 sp464; + f32 sp460; + f32 sp45c[1]; + f32 sp458[1]; + f32 sp454[1]; + f32 sp450[1]; + f32 sp44c[1]; + f32 sp448[1]; + f32 sp444; + f32 sp440; -#ifdef NONMATCHING -void sub_GAME_7F097818(void) { + f32 sp43c[1]; + f32 sp438[1]; + f32 sp434[1]; + f32 sp430[1]; + f32 sp42c[1]; + f32 sp428[1]; + f32 sp424[1]; + f32 sp420[1]; + f32 sp41c; + f32 sp418; + f32 sp414; + f32 sp410; + f32 sp40c; + f32 sp408; + f32 sp404; + f32 sp400; + + f32 sp3fc[1]; + f32 sp3f8[1]; + f32 sp3f4[1]; + f32 sp3f0[1]; + f32 sp3ec[1]; + f32 sp3e8[1]; + f32 sp3e4[1]; + f32 sp3e0[1]; + + f32 sp3dc[1]; + f32 sp3d8[1]; + f32 sp3d4[1]; + f32 sp3d0[1]; + f32 sp3cc[1]; + f32 sp3c8[1]; + f32 sp3c4[1]; + f32 sp3c0[1]; + + f32 sp3bc[1]; + f32 sp3b8[1]; + f32 sp3b4[1]; + f32 sp3b0[1]; + f32 sp3ac[1]; + f32 sp3a8[1]; + f32 sp3a4[1]; + f32 sp3a0[1]; + f32 sp39c[1]; + f32 sp398[1]; + f32 sp394[1]; + f32 sp390[1]; + f32 sp38c[1]; + f32 sp388[1]; + f32 sp384[1]; + f32 sp380[1]; + f32 sp37c; + f32 sp378; + f32 sp374[1]; + f32 sp370[1]; + f32 sp36c[1]; + f32 sp368; + f32 sp364[1]; + f32 sp360[1]; + f32 sp35c[1]; + f32 sp358[1]; + f32 sp354[1]; + f32 sp350[1]; + f32 sp34c[1]; + f32 sp348[1]; + f32 sp344[1]; + f32 sp340[1]; + f32 sp33c[1]; + f32 sp338[1]; + f32 sp334[1]; + f32 sp330[1]; + f32 sp310[8]; + f32 sp2f0[8]; + f32 sp2d0[8]; + f32 sp2b0[8]; + f32 sp290[8]; + f32 sp270[8]; + f32 sp250[8]; + f32 sp230[8]; + f32 sp210[8]; + f32 f2; + f32 sp208[1]; + f32 sp204[1]; + f32 sp200[1]; + u32 stack[4]; + f32 sp1d0[8]; + f32 sp1b0[8]; + u32 stack2; + f32 sp1a8[1]; + f32 sp1a4[1]; + f32 sp1a0[1]; + SkyRelated38 *swap1; + SkyRelated38 *swap2; + SkyRelated38 *swap3; + f32 sp190[1]; + u32 stack3; + + if (sub_GAME_7F0977B4(arg1, arg2) || sub_GAME_7F0977B4(arg2, arg3) || sub_GAME_7F0977B4(arg3, arg1)) + { + return gdl; + } + + sp378 = arg4 / 65536.0f; + + sp474 = arg2->unk28 - arg1->unk28; + sp470 = arg2->unk2c - arg1->unk2c; + sp46c = arg3->unk28 - arg1->unk28; + sp468 = arg3->unk2c - arg1->unk2c; + + sp444 = ((sp46c * sp470) - (sp474 * sp468)) / 65536.0f; + + if (sp444 == 0.0f) + { + return gdl; + } + + sp440 = 1.0f / sp444; + + sp484 = arg1; + sp480 = arg2; + sp47c = arg3; + + if (sp480->unk2c < sp484->unk2c) + { + swap1 = sp480; + sp480 = sp484; + sp484 = swap1; + + sp444 *= -1.0f; + sp440 *= -1.0f; + } + + if (sp47c->unk2c < sp480->unk2c) + { + swap2 = sp480; + sp480 = sp47c; + sp47c = swap2; + + sp444 *= -1.0f; + sp440 *= -1.0f; + } + + if (sp480->unk2c < sp484->unk2c) + { + swap3 = sp480; + sp480 = sp484; + sp484 = swap3; + + sp444 *= -1.0f; + sp440 *= -1.0f; + } + + sp420[0] = sp480->unk28 * 0.25f; + sp424[0] = 0.0f; + sp428[0] = sp484->unk28 * 0.25f; + sp42c[0] = 0.0f; + sp430[0] = sp484->unk28 * 0.25f; + sp434[0] = 0.0f; + sp43c[0] = 0.0f; + sp438[0] = 0.0f; + + sp448[0] = sp47c->unk28; + sp44c[0] = sp47c->unk2c; + sp450[0] = sp480->unk28; + sp454[0] = sp480->unk2c; + sp458[0] = sp484->unk28; + sp45c[0] = sp484->unk2c; + + sp474 = sp450[0] - sp458[0]; + sp470 = sp454[0] - sp45c[0]; + sp46c = sp448[0] - sp458[0]; + sp468 = sp44c[0] - sp45c[0]; + sp464 = sp448[0] - sp450[0]; + sp460 = sp44c[0] - sp454[0]; + + sp3fc[0] = 0.0f; + sp3f8[0] = 0.0f; + sp3dc[0] = 0.0f; + sp3d8[0] = 0.0f; + sp3a0[0] = 0.0f; + sp3a8[0] = 0.0f; + sp3b0[0] = 0.0f; + sp3bc[0] = 0.0f; + sp3b8[0] = 0.0f; + sp380[0] = 0.0f; + sp388[0] = 0.0f; + sp390[0] = 0.0f; + sp39c[0] = 0.0f; + sp398[0] = 0.0f; + + sp3e0[0] = sp464 / 4.0f; + sp3e4[0] = sp460 / 4.0f; + sp3e8[0] = sp474 / 4.0f; + sp3ec[0] = sp470 / 4.0f; + sp3f0[0] = sp46c / 4.0f; + sp3f4[0] = sp468 / 4.0f; + + sp3c0[0] = sp464 * 4.0f; + sp3c4[0] = sp460 * 4.0f; + sp3c8[0] = sp474 * 4.0f; + sp3cc[0] = sp470 * 4.0f; + sp3d0[0] = sp46c * 4.0f; + sp3d4[0] = sp468 * 4.0f; + + sp3a4[0] = 4.0f / sp460; + sp3ac[0] = 4.0f / sp470; + sp3b4[0] = 4.0f / sp468; + + sp384[0] = sp464 / sp460; + sp38c[0] = sp474 / sp470; + sp394[0] = sp46c / sp468; + + sp384[0] = skyClamp(sp384[0], -1878.0f, 1877.0f); + sp38c[0] = skyClamp(sp38c[0], -1878.0f, 1877.0f); + sp394[0] = skyClamp(sp394[0], -1878.0f, 1877.0f); + + f2 = (sp484->unk2c * 0.25f); + sp37c = f2 - (s32) f2; + sp408 = sp428[0] - skyRound(sp38c[0] * 8192.0f) * (1.0f / 8192.0f) * sp37c; + sp410 = sp430[0] - skyRound(sp394[0] * 8192.0f) * (1.0f / 8192.0f) * sp37c; + + gImmp1(gdl++, G_RDPHALF_1, (textured ? (G_TRI_SHADE_TXTR << 24) : (G_TRI_FILL << 24)) + | (sp444 < 0.0f ? 0x00800000 : 0) + | (s32) sp47c->unk2c); + gImmp1(gdl++, G_RDPHALF_CONT, (s32) sp480->unk2c << 16 | (s32) sp484->unk2c); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(sp480->unk28 * 0.25f)); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(sp384[0])); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(sp410)); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(sp394[0])); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(sp408)); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(sp38c[0])); + + if (!textured) + { + return gdl; + } + + sp36c[0] = sp484->unk0c * sp378; + sp370[0] = sp480->unk0c * sp378; + sp374[0] = sp47c->unk0c * sp378; + + sp368 = sp36c[0]; + + if (sp370[0] < sp368) { sp368 = sp370[0]; } + if (sp374[0] < sp368) { sp368 = sp374[0]; } + + sp368 *= 0.5f; + + sp35c[0] = sp484->unk34 * sp368; + sp360[0] = sp480->unk34 * sp368; + sp364[0] = sp47c->unk34 * sp368; + + sp338[0] = sp35c[0] * sp484->unk20; + sp33c[0] = sp35c[0] * sp484->unk24; + sp340[0] = sp35c[0] * 32767.0f; + sp344[0] = sp360[0] * sp480->unk20; + sp348[0] = sp360[0] * sp480->unk24; + sp34c[0] = sp360[0] * 32767.0f; + sp350[0] = sp364[0] * sp47c->unk20; + sp354[0] = sp364[0] * sp47c->unk24; + sp358[0] = sp364[0] * 32767.0f; + + sp330[0] = SKYABS(sp338[0]); + sp334[0] = SKYABS(sp33c[0]); + + if (sp330[0] < SKYABS(sp344[0])) { sp330[0] = SKYABS(sp344[0]); } + if (sp334[0] < SKYABS(sp348[0])) { sp334[0] = SKYABS(sp348[0]); } + if (sp330[0] < SKYABS(sp350[0])) { sp330[0] = SKYABS(sp350[0]); } + if (sp334[0] < SKYABS(sp354[0])) { sp334[0] = SKYABS(sp354[0]); } + + sp310[0] = sp484->r + 0.5f; + sp310[1] = sp484->g + 0.5f; + sp310[2] = sp484->b + 0.5f; + sp310[3] = sp484->a + 0.5f; + + sp2f0[0] = sp480->r + 0.5f; + sp2f0[1] = sp480->g + 0.5f; + sp2f0[2] = sp480->b + 0.5f; + sp2f0[3] = sp480->a + 0.5f; + + sp2d0[0] = sp47c->r + 0.5f; + sp2d0[1] = sp47c->g + 0.5f; + sp2d0[2] = sp47c->b + 0.5f; + sp2d0[3] = sp47c->a + 0.5f; + + sp310[4] = sp338[0]; sp310[5] = sp33c[0]; sp310[6] = sp340[0]; + sp2f0[4] = sp344[0]; sp2f0[5] = sp348[0]; sp2f0[6] = sp34c[0]; + sp2d0[4] = sp350[0]; sp2d0[5] = sp354[0]; sp2d0[6] = sp358[0]; + + sp310[7] = sp484->unk30; + sp2f0[7] = sp480->unk30; + sp2d0[7] = sp47c->unk30; + + for (i = 0; i < 8; i++) + { + sp2b0[i] = sp2f0[i] - sp310[i]; + sp290[i] = sp2d0[i] - sp310[i]; + } + + for (i = 0; i < 8; i++) + { + sp250[i] = (sp290[i] * sp3cc[0] - sp2b0[i] * sp3d4[0]) / 65536.0f; + sp270[i] = (sp2b0[i] * sp3d0[0] - sp290[i] * sp3c8[0]) / 65536.0f; + sp290[i] = sp250[i] * sp440; + sp2b0[i] = sp270[i] * sp440; + sp230[i] = sp2b0[i] + sp290[i] * sp394[0]; + sp210[i] = sp310[i] - sp230[i] * sp37c; + } + + { + u32 sp168; + u32 sp164; + u32 sp160; + u32 sp15c; + u32 sp158; + u32 sp154; + u32 sp150; + u32 sp14c; + u32 sp148; + u32 sp144; + u32 sp140; + u32 sp13c; + u32 sp138; + u32 sp134; + u32 sp130; + u32 sp12c; + + sp168 = sub_GAME_7F094298(sp210[0]); + sp164 = sub_GAME_7F094298(sp210[1]); + sp160 = sub_GAME_7F094298(sp210[2]); + sp15c = sub_GAME_7F094298(sp210[3]); + + sp158 = sub_GAME_7F094298(sp290[0]); + sp154 = sub_GAME_7F094298(sp290[1]); + sp150 = sub_GAME_7F094298(sp290[2]); + sp14c = sub_GAME_7F094298(sp290[3]); + + sp138 = sub_GAME_7F094298(sp2b0[0]); + sp134 = sub_GAME_7F094298(sp2b0[1]); + sp130 = sub_GAME_7F094298(sp2b0[2]); + sp12c = sub_GAME_7F094298(sp2b0[3]); + + sp148 = sub_GAME_7F094298(sp230[0]); + sp144 = sub_GAME_7F094298(sp230[1]); + sp140 = sub_GAME_7F094298(sp230[2]); + sp13c = sub_GAME_7F094298(sp230[3]); + + gImmp1(gdl++, G_RDPHALF_1, (sp168 & 0xffff0000) | (sp164 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp160 & 0xffff0000) | (sp15c & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp158 & 0xffff0000) | (sp154 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp150 & 0xffff0000) | (sp14c & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp168 & 0x0000ffff) << 16 | (sp164 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp160 & 0x0000ffff) << 16 | (sp15c & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (sp158 & 0x0000ffff) << 16 | (sp154 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp150 & 0x0000ffff) << 16 | (sp14c & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (sp148 & 0xffff0000) | (sp144 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp140 & 0xffff0000) | (sp13c & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp138 & 0xffff0000) | (sp134 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp130 & 0xffff0000) | (sp12c & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp148 & 0x0000ffff) << 16 | (sp144 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp140 & 0x0000ffff) << 16 | (sp13c & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (sp138 & 0x0000ffff) << 16 | (sp134 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp130 & 0x0000ffff) << 16 | (sp12c & 0x0000ffff)); + } + + sp200[0] = sp330[0] / 32.0f; + sp204[0] = sp334[0] / 32.0f; + sp208[0] = sp368 / 32.0f; + + for (i = 0; i < 8; i++) + { + sp1d0[i] = SKYABS(sp290[i]) / 32.0f; + sp1b0[i] = SKYABS(sp2b0[i]) / 32.0f; + } + + sp1a0[0] = sp200[0] + (2 * sp1d0[4]) + sp1b0[4]; + sp1a4[0] = sp204[0] + (2 * sp1d0[5]) + sp1b0[5]; + sp1a8[0] = sp208[0] + (2 * sp1d0[6]) + sp1b0[6]; + + if (sp1a0[0] < sp1a4[0]) { sp1a0[0] = sp1a4[0]; } + if (sp1a0[0] < sp1a8[0]) { sp1a0[0] = sp1a8[0]; } + + sp1a0[0] /= 1024.0f; + + if (sp1a0[0] > 1.0f) + { + sp190[0] = 1.0f / sp1a0[0]; + } + else + { + sp190[0] = 1.0f; + } + + { + u32 spe8; + u32 spe4; + u32 spe0; + u32 spdc; + u32 spd8; + u32 spd4; + u32 spd0; + u32 spcc; + u32 spc8; + u32 spc4; + u32 spc0; + u32 spbc; + u32 spb8; + u32 spb4; + u32 spb0; + u32 spac; + + spe8 = sub_GAME_7F094298(sp210[4] * sp190[0]); + spe4 = sub_GAME_7F094298(sp210[5] * sp190[0]); + spe0 = sub_GAME_7F094298(sp210[6] * sp190[0]); + spdc = 0; + + spd8 = sub_GAME_7F094298(sp290[4] * sp190[0]); + spd4 = sub_GAME_7F094298(sp290[5] * sp190[0]); + spd0 = sub_GAME_7F094298(sp290[6] * sp190[0]); + spcc = 0; + + spb8 = sub_GAME_7F094298(sp2b0[4] * sp190[0]); + spb4 = sub_GAME_7F094298(sp2b0[5] * sp190[0]); + spb0 = sub_GAME_7F094298(sp2b0[6] * sp190[0]); + spac = 0; + + spc8 = sub_GAME_7F094298(sp230[4] * sp190[0]); + spc4 = sub_GAME_7F094298(sp230[5] * sp190[0]); + spc0 = sub_GAME_7F094298(sp230[6] * sp190[0]); + spbc = 0; + + gImmp1(gdl++, G_RDPHALF_1, (spe8 & 0xffff0000) | (spe4 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spe0 & 0xffff0000) | (spdc & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spd8 & 0xffff0000) | (spd4 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spd0 & 0xffff0000) | (spcc & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spe8 & 0x0000ffff) << 16 | (spe4 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (spe0 & 0x0000ffff) << 16 | (spdc & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (spd8 & 0x0000ffff) << 16 | (spd4 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (spd0 & 0x0000ffff) << 16 | (spcc & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (spc8 & 0xffff0000) | (spc4 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spc0 & 0xffff0000) | (spbc & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spb8 & 0xffff0000) | (spb4 & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spb0 & 0xffff0000) | (spac & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spc8 & 0x0000ffff) << 16 | (spc4 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (spc0 & 0x0000ffff) << 16 | (spbc & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (spb8 & 0x0000ffff) << 16 | (spb4 & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_2, (spb0 & 0x0000ffff) << 16 | (spac & 0x0000ffff)); + } + + return gdl; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800575E8 -.word 0xc4eac000 /*-1878.0*/ -glabel D_800575EC -.word 0xc4eac000 /*-1878.0*/ -glabel D_800575F0 -.word 0xc4eac000 /*-1878.0*/ -glabel D_800575F4 -.word 0x46fffe00 /*32767.0*/ -.text -glabel sub_GAME_7F097818 -/* 0CC348 7F097818 27BDFB78 */ addiu $sp, $sp, -0x488 -/* 0CC34C 7F09781C AFB00020 */ sw $s0, 0x20($sp) -/* 0CC350 7F097820 00808025 */ move $s0, $a0 -/* 0CC354 7F097824 AFBF0024 */ sw $ra, 0x24($sp) -/* 0CC358 7F097828 AFA5048C */ sw $a1, 0x48c($sp) -/* 0CC35C 7F09782C 00A02025 */ move $a0, $a1 -/* 0CC360 7F097830 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0CC364 7F097834 00C02825 */ move $a1, $a2 -/* 0CC368 7F097838 AFA60490 */ sw $a2, 0x490($sp) -/* 0CC36C 7F09783C 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CC370 7F097840 AFA70494 */ sw $a3, 0x494($sp) -/* 0CC374 7F097844 8FA60490 */ lw $a2, 0x490($sp) -/* 0CC378 7F097848 14400013 */ bnez $v0, .L7F097898 -/* 0CC37C 7F09784C 8FA70494 */ lw $a3, 0x494($sp) -/* 0CC380 7F097850 00C02025 */ move $a0, $a2 -/* 0CC384 7F097854 00E02825 */ move $a1, $a3 -/* 0CC388 7F097858 AFA60490 */ sw $a2, 0x490($sp) -/* 0CC38C 7F09785C 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CC390 7F097860 AFA70494 */ sw $a3, 0x494($sp) -/* 0CC394 7F097864 8FAF048C */ lw $t7, 0x48c($sp) -/* 0CC398 7F097868 8FA60490 */ lw $a2, 0x490($sp) -/* 0CC39C 7F09786C 1440000A */ bnez $v0, .L7F097898 -/* 0CC3A0 7F097870 8FA70494 */ lw $a3, 0x494($sp) -/* 0CC3A4 7F097874 00E02025 */ move $a0, $a3 -/* 0CC3A8 7F097878 01E02825 */ move $a1, $t7 -/* 0CC3AC 7F09787C AFA60490 */ sw $a2, 0x490($sp) -/* 0CC3B0 7F097880 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CC3B4 7F097884 AFA70494 */ sw $a3, 0x494($sp) -/* 0CC3B8 7F097888 8FA3048C */ lw $v1, 0x48c($sp) -/* 0CC3BC 7F09788C 8FA60490 */ lw $a2, 0x490($sp) -/* 0CC3C0 7F097890 10400003 */ beqz $v0, .L7F0978A0 -/* 0CC3C4 7F097894 8FA70494 */ lw $a3, 0x494($sp) -.L7F097898: -/* 0CC3C8 7F097898 1000045F */ b .L7F098A18 -/* 0CC3CC 7F09789C 02001025 */ move $v0, $s0 -.L7F0978A0: -/* 0CC3D0 7F0978A0 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CC3D4 7F0978A4 44812000 */ mtc1 $at, $f4 -/* 0CC3D8 7F0978A8 C7A80498 */ lwc1 $f8, 0x498($sp) -/* 0CC3DC 7F0978AC 4480A000 */ mtc1 $zero, $f20 -/* 0CC3E0 7F0978B0 46044183 */ div.s $f6, $f8, $f4 -/* 0CC3E4 7F0978B4 E7A60378 */ swc1 $f6, 0x378($sp) -/* 0CC3E8 7F0978B8 C4C8002C */ lwc1 $f8, 0x2c($a2) -/* 0CC3EC 7F0978BC C4CA0028 */ lwc1 $f10, 0x28($a2) -/* 0CC3F0 7F0978C0 C4600028 */ lwc1 $f0, 0x28($v1) -/* 0CC3F4 7F0978C4 E7A8005C */ swc1 $f8, 0x5c($sp) -/* 0CC3F8 7F0978C8 C4E60028 */ lwc1 $f6, 0x28($a3) -/* 0CC3FC 7F0978CC 46005301 */ sub.s $f12, $f10, $f0 -/* 0CC400 7F0978D0 C46E002C */ lwc1 $f14, 0x2c($v1) -/* 0CC404 7F0978D4 C7A4005C */ lwc1 $f4, 0x5c($sp) -/* 0CC408 7F0978D8 46003281 */ sub.s $f10, $f6, $f0 -/* 0CC40C 7F0978DC 460E2401 */ sub.s $f16, $f4, $f14 -/* 0CC410 7F0978E0 E7AA046C */ swc1 $f10, 0x46c($sp) -/* 0CC414 7F0978E4 C4E8002C */ lwc1 $f8, 0x2c($a3) -/* 0CC418 7F0978E8 C7A6046C */ lwc1 $f6, 0x46c($sp) -/* 0CC41C 7F0978EC E7A80054 */ swc1 $f8, 0x54($sp) -/* 0CC420 7F0978F0 C7A40054 */ lwc1 $f4, 0x54($sp) -/* 0CC424 7F0978F4 46103282 */ mul.s $f10, $f6, $f16 -/* 0CC428 7F0978F8 44813000 */ mtc1 $at, $f6 -/* 0CC42C 7F0978FC 460E2481 */ sub.s $f18, $f4, $f14 -/* 0CC430 7F097900 46126202 */ mul.s $f8, $f12, $f18 -/* 0CC434 7F097904 46085101 */ sub.s $f4, $f10, $f8 -/* 0CC438 7F097908 C7A8005C */ lwc1 $f8, 0x5c($sp) -/* 0CC43C 7F09790C 46062083 */ div.s $f2, $f4, $f6 -/* 0CC440 7F097910 4602A032 */ c.eq.s $f20, $f2 -/* 0CC444 7F097914 E7A20444 */ swc1 $f2, 0x444($sp) -/* 0CC448 7F097918 45020004 */ bc1fl .L7F09792C -/* 0CC44C 7F09791C 460E403C */ c.lt.s $f8, $f14 -/* 0CC450 7F097920 1000043D */ b .L7F098A18 -/* 0CC454 7F097924 02001025 */ move $v0, $s0 -/* 0CC458 7F097928 460E403C */ c.lt.s $f8, $f14 -.L7F09792C: -/* 0CC45C 7F09792C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CC460 7F097930 44815000 */ mtc1 $at, $f10 -/* 0CC464 7F097934 00604825 */ move $t1, $v1 -/* 0CC468 7F097938 00C04025 */ move $t0, $a2 -/* 0CC46C 7F09793C 00E05825 */ move $t3, $a3 -/* 0CC470 7F097940 45000009 */ bc1f .L7F097968 -/* 0CC474 7F097944 46025403 */ div.s $f16, $f10, $f2 -/* 0CC478 7F097948 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CC47C 7F09794C 44816000 */ mtc1 $at, $f12 -/* 0CC480 7F097950 00604025 */ move $t0, $v1 -/* 0CC484 7F097954 00C04825 */ move $t1, $a2 -/* 0CC488 7F097958 460C1382 */ mul.s $f14, $f2, $f12 -/* 0CC48C 7F09795C E7AE0444 */ swc1 $f14, 0x444($sp) -/* 0CC490 7F097960 460C8402 */ mul.s $f16, $f16, $f12 -/* 0CC494 7F097964 00000000 */ nop -.L7F097968: -/* 0CC498 7F097968 C500002C */ lwc1 $f0, 0x2c($t0) -/* 0CC49C 7F09796C C7A40054 */ lwc1 $f4, 0x54($sp) -/* 0CC4A0 7F097970 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CC4A4 7F097974 44816000 */ mtc1 $at, $f12 -/* 0CC4A8 7F097978 4600203C */ c.lt.s $f4, $f0 -/* 0CC4AC 7F09797C C7AE0444 */ lwc1 $f14, 0x444($sp) -/* 0CC4B0 7F097980 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CC4B4 7F097984 45020007 */ bc1fl .L7F0979A4 -/* 0CC4B8 7F097988 E7AE0444 */ swc1 $f14, 0x444($sp) -/* 0CC4BC 7F09798C 460C7382 */ mul.s $f14, $f14, $f12 -/* 0CC4C0 7F097990 01005825 */ move $t3, $t0 -/* 0CC4C4 7F097994 00E04025 */ move $t0, $a3 -/* 0CC4C8 7F097998 460C8402 */ mul.s $f16, $f16, $f12 -/* 0CC4CC 7F09799C C4E0002C */ lwc1 $f0, 0x2c($a3) -/* 0CC4D0 7F0979A0 E7AE0444 */ swc1 $f14, 0x444($sp) -.L7F0979A4: -/* 0CC4D4 7F0979A4 E7B00440 */ swc1 $f16, 0x440($sp) -/* 0CC4D8 7F0979A8 C526002C */ lwc1 $f6, 0x2c($t1) -/* 0CC4DC 7F0979AC 4606003C */ c.lt.s $f0, $f6 -/* 0CC4E0 7F0979B0 44810000 */ mtc1 $at, $f0 -/* 0CC4E4 7F0979B4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CC4E8 7F0979B8 44811000 */ mtc1 $at, $f2 -/* 0CC4EC 7F0979BC 45000008 */ bc1f .L7F0979E0 -/* 0CC4F0 7F0979C0 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CC4F4 7F0979C4 460C7382 */ mul.s $f14, $f14, $f12 -/* 0CC4F8 7F0979C8 01001025 */ move $v0, $t0 -/* 0CC4FC 7F0979CC 01204025 */ move $t0, $t1 -/* 0CC500 7F0979D0 460C8402 */ mul.s $f16, $f16, $f12 -/* 0CC504 7F0979D4 00404825 */ move $t1, $v0 -/* 0CC508 7F0979D8 E7AE0444 */ swc1 $f14, 0x444($sp) -/* 0CC50C 7F0979DC E7B00440 */ swc1 $f16, 0x440($sp) -.L7F0979E0: -/* 0CC510 7F0979E0 C50A0028 */ lwc1 $f10, 0x28($t0) -/* 0CC514 7F0979E4 44814000 */ mtc1 $at, $f8 -/* 0CC518 7F0979E8 E7B40424 */ swc1 $f20, 0x424($sp) -/* 0CC51C 7F0979EC 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea -/* 0CC520 7F0979F0 46085102 */ mul.s $f4, $f10, $f8 -/* 0CC524 7F0979F4 44815000 */ mtc1 $at, $f10 -/* 0CC528 7F0979F8 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CC52C 7F0979FC E7A40420 */ swc1 $f4, 0x420($sp) -/* 0CC530 7F097A00 C5260028 */ lwc1 $f6, 0x28($t1) -/* 0CC534 7F097A04 E7B4042C */ swc1 $f20, 0x42c($sp) -/* 0CC538 7F097A08 460A3202 */ mul.s $f8, $f6, $f10 -/* 0CC53C 7F097A0C 44813000 */ mtc1 $at, $f6 -/* 0CC540 7F097A10 3C018005 */ lui $at, %hi(D_800575E8) -/* 0CC544 7F097A14 E7A80428 */ swc1 $f8, 0x428($sp) -/* 0CC548 7F097A18 C5240028 */ lwc1 $f4, 0x28($t1) -/* 0CC54C 7F097A1C E7B40434 */ swc1 $f20, 0x434($sp) -/* 0CC550 7F097A20 E7B4043C */ swc1 $f20, 0x43c($sp) -/* 0CC554 7F097A24 46062282 */ mul.s $f10, $f4, $f6 -/* 0CC558 7F097A28 E7B40438 */ swc1 $f20, 0x438($sp) -/* 0CC55C 7F097A2C E7AA0430 */ swc1 $f10, 0x430($sp) -/* 0CC560 7F097A30 C5680028 */ lwc1 $f8, 0x28($t3) -/* 0CC564 7F097A34 E7A80448 */ swc1 $f8, 0x448($sp) -/* 0CC568 7F097A38 C564002C */ lwc1 $f4, 0x2c($t3) -/* 0CC56C 7F097A3C E7A4044C */ swc1 $f4, 0x44c($sp) -/* 0CC570 7F097A40 C5060028 */ lwc1 $f6, 0x28($t0) -/* 0CC574 7F097A44 E7A60450 */ swc1 $f6, 0x450($sp) -/* 0CC578 7F097A48 C50A002C */ lwc1 $f10, 0x2c($t0) -/* 0CC57C 7F097A4C C7A60450 */ lwc1 $f6, 0x450($sp) -/* 0CC580 7F097A50 E7AA0454 */ swc1 $f10, 0x454($sp) -/* 0CC584 7F097A54 C5280028 */ lwc1 $f8, 0x28($t1) -/* 0CC588 7F097A58 E7A80458 */ swc1 $f8, 0x458($sp) -/* 0CC58C 7F097A5C C7AA0458 */ lwc1 $f10, 0x458($sp) -/* 0CC590 7F097A60 C524002C */ lwc1 $f4, 0x2c($t1) -/* 0CC594 7F097A64 E7A60028 */ swc1 $f6, 0x28($sp) -/* 0CC598 7F097A68 460A3201 */ sub.s $f8, $f6, $f10 -/* 0CC59C 7F097A6C E7A4045C */ swc1 $f4, 0x45c($sp) -/* 0CC5A0 7F097A70 C7A40454 */ lwc1 $f4, 0x454($sp) -/* 0CC5A4 7F097A74 C7A6045C */ lwc1 $f6, 0x45c($sp) -/* 0CC5A8 7F097A78 E7A80474 */ swc1 $f8, 0x474($sp) -/* 0CC5AC 7F097A7C E7A80030 */ swc1 $f8, 0x30($sp) -/* 0CC5B0 7F097A80 E7AA002C */ swc1 $f10, 0x2c($sp) -/* 0CC5B4 7F097A84 C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 0CC5B8 7F097A88 46062401 */ sub.s $f16, $f4, $f6 -/* 0CC5BC 7F097A8C E7A4002C */ swc1 $f4, 0x2c($sp) -/* 0CC5C0 7F097A90 C7A4044C */ lwc1 $f4, 0x44c($sp) -/* 0CC5C4 7F097A94 C7AA0448 */ lwc1 $f10, 0x448($sp) -/* 0CC5C8 7F097A98 E7B403FC */ swc1 $f20, 0x3fc($sp) -/* 0CC5CC 7F097A9C 46062481 */ sub.s $f18, $f4, $f6 -/* 0CC5D0 7F097AA0 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 0CC5D4 7F097AA4 E7B403F8 */ swc1 $f20, 0x3f8($sp) -/* 0CC5D8 7F097AA8 46085201 */ sub.s $f8, $f10, $f8 -/* 0CC5DC 7F097AAC E7B403DC */ swc1 $f20, 0x3dc($sp) -/* 0CC5E0 7F097AB0 E7B403D8 */ swc1 $f20, 0x3d8($sp) -/* 0CC5E4 7F097AB4 46065301 */ sub.s $f12, $f10, $f6 -/* 0CC5E8 7F097AB8 C7AA002C */ lwc1 $f10, 0x2c($sp) -/* 0CC5EC 7F097ABC E7A8046C */ swc1 $f8, 0x46c($sp) -/* 0CC5F0 7F097AC0 E7B403A0 */ swc1 $f20, 0x3a0($sp) -/* 0CC5F4 7F097AC4 46006182 */ mul.s $f6, $f12, $f0 -/* 0CC5F8 7F097AC8 460A2381 */ sub.s $f14, $f4, $f10 -/* 0CC5FC 7F097ACC C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 0CC600 7F097AD0 E7AC0464 */ swc1 $f12, 0x464($sp) -/* 0CC604 7F097AD4 E7B403A8 */ swc1 $f20, 0x3a8($sp) -/* 0CC608 7F097AD8 46007102 */ mul.s $f4, $f14, $f0 -/* 0CC60C 7F097ADC E7AE0460 */ swc1 $f14, 0x460($sp) -/* 0CC610 7F097AE0 E7A603E0 */ swc1 $f6, 0x3e0($sp) -/* 0CC614 7F097AE4 46005182 */ mul.s $f6, $f10, $f0 -/* 0CC618 7F097AE8 E7B403B0 */ swc1 $f20, 0x3b0($sp) -/* 0CC61C 7F097AEC E7B403BC */ swc1 $f20, 0x3bc($sp) -/* 0CC620 7F097AF0 E7B403B8 */ swc1 $f20, 0x3b8($sp) -/* 0CC624 7F097AF4 E7A403E4 */ swc1 $f4, 0x3e4($sp) -/* 0CC628 7F097AF8 46008102 */ mul.s $f4, $f16, $f0 -/* 0CC62C 7F097AFC E7B40380 */ swc1 $f20, 0x380($sp) -/* 0CC630 7F097B00 E7A603E8 */ swc1 $f6, 0x3e8($sp) -/* 0CC634 7F097B04 46004182 */ mul.s $f6, $f8, $f0 -/* 0CC638 7F097B08 E7B40388 */ swc1 $f20, 0x388($sp) -/* 0CC63C 7F097B0C E7B40390 */ swc1 $f20, 0x390($sp) -/* 0CC640 7F097B10 E7B4039C */ swc1 $f20, 0x39c($sp) -/* 0CC644 7F097B14 E7A403EC */ swc1 $f4, 0x3ec($sp) -/* 0CC648 7F097B18 46009102 */ mul.s $f4, $f18, $f0 -/* 0CC64C 7F097B1C C7A00460 */ lwc1 $f0, 0x460($sp) -/* 0CC650 7F097B20 E7A603F0 */ swc1 $f6, 0x3f0($sp) -/* 0CC654 7F097B24 46026182 */ mul.s $f6, $f12, $f2 -/* 0CC658 7F097B28 E7B40398 */ swc1 $f20, 0x398($sp) -/* 0CC65C 7F097B2C AFAB047C */ sw $t3, 0x47c($sp) -/* 0CC660 7F097B30 AFA90484 */ sw $t1, 0x484($sp) -/* 0CC664 7F097B34 E7A403F4 */ swc1 $f4, 0x3f4($sp) -/* 0CC668 7F097B38 46027102 */ mul.s $f4, $f14, $f2 -/* 0CC66C 7F097B3C C42E75E8 */ lwc1 $f14, %lo(D_800575E8)($at) -/* 0CC670 7F097B40 E7A603C0 */ swc1 $f6, 0x3c0($sp) -/* 0CC674 7F097B44 46025182 */ mul.s $f6, $f10, $f2 -/* 0CC678 7F097B48 AFA80480 */ sw $t0, 0x480($sp) -/* 0CC67C 7F097B4C E7A403C4 */ swc1 $f4, 0x3c4($sp) -/* 0CC680 7F097B50 46028102 */ mul.s $f4, $f16, $f2 -/* 0CC684 7F097B54 E7A603C8 */ swc1 $f6, 0x3c8($sp) -/* 0CC688 7F097B58 46024182 */ mul.s $f6, $f8, $f2 -/* 0CC68C 7F097B5C E7A403CC */ swc1 $f4, 0x3cc($sp) -/* 0CC690 7F097B60 46029102 */ mul.s $f4, $f18, $f2 -/* 0CC694 7F097B64 E7A603D0 */ swc1 $f6, 0x3d0($sp) -/* 0CC698 7F097B68 46001183 */ div.s $f6, $f2, $f0 -/* 0CC69C 7F097B6C E7A403D4 */ swc1 $f4, 0x3d4($sp) -/* 0CC6A0 7F097B70 46101103 */ div.s $f4, $f2, $f16 -/* 0CC6A4 7F097B74 E7A603A4 */ swc1 $f6, 0x3a4($sp) -/* 0CC6A8 7F097B78 46121183 */ div.s $f6, $f2, $f18 -/* 0CC6AC 7F097B7C E7A403AC */ swc1 $f4, 0x3ac($sp) -/* 0CC6B0 7F097B80 C7A40464 */ lwc1 $f4, 0x464($sp) -/* 0CC6B4 7F097B84 46002303 */ div.s $f12, $f4, $f0 -/* 0CC6B8 7F097B88 E7A603B4 */ swc1 $f6, 0x3b4($sp) -/* 0CC6BC 7F097B8C 46124103 */ div.s $f4, $f8, $f18 -/* 0CC6C0 7F097B90 E7AC0384 */ swc1 $f12, 0x384($sp) -/* 0CC6C4 7F097B94 46105183 */ div.s $f6, $f10, $f16 -/* 0CC6C8 7F097B98 E7A40394 */ swc1 $f4, 0x394($sp) -/* 0CC6CC 7F097B9C 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC6D0 7F097BA0 E7A6038C */ swc1 $f6, 0x38c($sp) -/* 0CC6D4 7F097BA4 3C018005 */ lui $at, %hi(D_800575EC) -/* 0CC6D8 7F097BA8 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea -/* 0CC6DC 7F097BAC E7A00384 */ swc1 $f0, 0x384($sp) -/* 0CC6E0 7F097BB0 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CC6E4 7F097BB4 C42E75EC */ lwc1 $f14, %lo(D_800575EC)($at) -/* 0CC6E8 7F097BB8 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC6EC 7F097BBC C7AC038C */ lwc1 $f12, 0x38c($sp) -/* 0CC6F0 7F097BC0 3C018005 */ lui $at, %hi(D_800575F0) -/* 0CC6F4 7F097BC4 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea -/* 0CC6F8 7F097BC8 E7A0038C */ swc1 $f0, 0x38c($sp) -/* 0CC6FC 7F097BCC 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CC700 7F097BD0 C42E75F0 */ lwc1 $f14, %lo(D_800575F0)($at) -/* 0CC704 7F097BD4 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CC708 7F097BD8 C7AC0394 */ lwc1 $f12, 0x394($sp) -/* 0CC70C 7F097BDC 8FA90484 */ lw $t1, 0x484($sp) -/* 0CC710 7F097BE0 E7A00394 */ swc1 $f0, 0x394($sp) -/* 0CC714 7F097BE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CC718 7F097BE8 44813000 */ mtc1 $at, $f6 -/* 0CC71C 7F097BEC C52A002C */ lwc1 $f10, 0x2c($t1) -/* 0CC720 7F097BF0 3C014600 */ li $at, 0x46000000 # 8192.000000 -/* 0CC724 7F097BF4 46065082 */ mul.s $f2, $f10, $f6 -/* 0CC728 7F097BF8 4600120D */ trunc.w.s $f8, $f2 -/* 0CC72C 7F097BFC 44194000 */ mfc1 $t9, $f8 -/* 0CC730 7F097C00 C7A8038C */ lwc1 $f8, 0x38c($sp) -/* 0CC734 7F097C04 44992000 */ mtc1 $t9, $f4 -/* 0CC738 7F097C08 00000000 */ nop -/* 0CC73C 7F097C0C 468022A0 */ cvt.s.w $f10, $f4 -/* 0CC740 7F097C10 44812000 */ mtc1 $at, $f4 -/* 0CC744 7F097C14 00000000 */ nop -/* 0CC748 7F097C18 46044302 */ mul.s $f12, $f8, $f4 -/* 0CC74C 7F097C1C 460A1181 */ sub.s $f6, $f2, $f10 -/* 0CC750 7F097C20 0FC24F22 */ jal addpoint5tofloat -/* 0CC754 7F097C24 E7A6037C */ swc1 $f6, 0x37c($sp) -/* 0CC758 7F097C28 3C013900 */ li $at, 0x39000000 # 0.000122 -/* 0CC75C 7F097C2C 44815000 */ mtc1 $at, $f10 -/* 0CC760 7F097C30 C7A8037C */ lwc1 $f8, 0x37c($sp) -/* 0CC764 7F097C34 3C014600 */ li $at, 0x46000000 # 8192.000000 -/* 0CC768 7F097C38 460A0182 */ mul.s $f6, $f0, $f10 -/* 0CC76C 7F097C3C C7AA0428 */ lwc1 $f10, 0x428($sp) -/* 0CC770 7F097C40 46083102 */ mul.s $f4, $f6, $f8 -/* 0CC774 7F097C44 C7A80394 */ lwc1 $f8, 0x394($sp) -/* 0CC778 7F097C48 46045181 */ sub.s $f6, $f10, $f4 -/* 0CC77C 7F097C4C 44815000 */ mtc1 $at, $f10 -/* 0CC780 7F097C50 00000000 */ nop -/* 0CC784 7F097C54 460A4302 */ mul.s $f12, $f8, $f10 -/* 0CC788 7F097C58 0FC24F22 */ jal addpoint5tofloat -/* 0CC78C 7F097C5C E7A60408 */ swc1 $f6, 0x408($sp) -/* 0CC790 7F097C60 3C013900 */ li $at, 0x39000000 # 0.000122 -/* 0CC794 7F097C64 44812000 */ mtc1 $at, $f4 -/* 0CC798 7F097C68 C7A8037C */ lwc1 $f8, 0x37c($sp) -/* 0CC79C 7F097C6C 3C07B400 */ lui $a3, 0xb400 -/* 0CC7A0 7F097C70 46040182 */ mul.s $f6, $f0, $f4 -/* 0CC7A4 7F097C74 C7A40430 */ lwc1 $f4, 0x430($sp) -/* 0CC7A8 7F097C78 8FA80480 */ lw $t0, 0x480($sp) -/* 0CC7AC 7F097C7C 8FA90484 */ lw $t1, 0x484($sp) -/* 0CC7B0 7F097C80 8FAB047C */ lw $t3, 0x47c($sp) -/* 0CC7B4 7F097C84 02002825 */ move $a1, $s0 -/* 0CC7B8 7F097C88 26100008 */ addiu $s0, $s0, 8 -/* 0CC7BC 7F097C8C 46083282 */ mul.s $f10, $f6, $f8 -/* 0CC7C0 7F097C90 3C06C800 */ lui $a2, 0xc800 -/* 0CC7C4 7F097C94 00001825 */ move $v1, $zero -/* 0CC7C8 7F097C98 460A2181 */ sub.s $f6, $f4, $f10 -/* 0CC7CC 7F097C9C E7A60410 */ swc1 $f6, 0x410($sp) -/* 0CC7D0 7F097CA0 ACA70000 */ sw $a3, ($a1) -/* 0CC7D4 7F097CA4 8FB8049C */ lw $t8, 0x49c($sp) -/* 0CC7D8 7F097CA8 C7A80444 */ lwc1 $f8, 0x444($sp) -/* 0CC7DC 7F097CAC 13000003 */ beqz $t8, .L7F097CBC -/* 0CC7E0 7F097CB0 00000000 */ nop -/* 0CC7E4 7F097CB4 10000001 */ b .L7F097CBC -/* 0CC7E8 7F097CB8 3C06CE00 */ lui $a2, 0xce00 -.L7F097CBC: -/* 0CC7EC 7F097CBC 4614403C */ c.lt.s $f8, $f20 -/* 0CC7F0 7F097CC0 00000000 */ nop -/* 0CC7F4 7F097CC4 45000003 */ bc1f .L7F097CD4 -/* 0CC7F8 7F097CC8 00000000 */ nop -/* 0CC7FC 7F097CCC 10000001 */ b .L7F097CD4 -/* 0CC800 7F097CD0 3C030080 */ lui $v1, 0x80 -.L7F097CD4: -/* 0CC804 7F097CD4 C564002C */ lwc1 $f4, 0x2c($t3) -/* 0CC808 7F097CD8 00667825 */ or $t7, $v1, $a2 -/* 0CC80C 7F097CDC 02001025 */ move $v0, $s0 -/* 0CC810 7F097CE0 4600228D */ trunc.w.s $f10, $f4 -/* 0CC814 7F097CE4 3C0EB200 */ lui $t6, 0xb200 -/* 0CC818 7F097CE8 26100008 */ addiu $s0, $s0, 8 -/* 0CC81C 7F097CEC 02002025 */ move $a0, $s0 -/* 0CC820 7F097CF0 44195000 */ mfc1 $t9, $f10 -/* 0CC824 7F097CF4 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CC828 7F097CF8 26100008 */ addiu $s0, $s0, 8 -/* 0CC82C 7F097CFC 01F9C025 */ or $t8, $t7, $t9 -/* 0CC830 7F097D00 ACB80004 */ sw $t8, 4($a1) -/* 0CC834 7F097D04 AC4E0000 */ sw $t6, ($v0) -/* 0CC838 7F097D08 C506002C */ lwc1 $f6, 0x2c($t0) -/* 0CC83C 7F097D0C C524002C */ lwc1 $f4, 0x2c($t1) -/* 0CC840 7F097D10 4600320D */ trunc.w.s $f8, $f6 -/* 0CC844 7F097D14 4600228D */ trunc.w.s $f10, $f4 -/* 0CC848 7F097D18 44194000 */ mfc1 $t9, $f8 -/* 0CC84C 7F097D1C 44814000 */ mtc1 $at, $f8 -/* 0CC850 7F097D20 440F5000 */ mfc1 $t7, $f10 -/* 0CC854 7F097D24 0019C400 */ sll $t8, $t9, 0x10 -/* 0CC858 7F097D28 030FC825 */ or $t9, $t8, $t7 -/* 0CC85C 7F097D2C AC590004 */ sw $t9, 4($v0) -/* 0CC860 7F097D30 AC870000 */ sw $a3, ($a0) -/* 0CC864 7F097D34 C5060028 */ lwc1 $f6, 0x28($t0) -/* 0CC868 7F097D38 AFAB047C */ sw $t3, 0x47c($sp) -/* 0CC86C 7F097D3C AFA90484 */ sw $t1, 0x484($sp) -/* 0CC870 7F097D40 46083302 */ mul.s $f12, $f6, $f8 -/* 0CC874 7F097D44 AFA80480 */ sw $t0, 0x480($sp) -/* 0CC878 7F097D48 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CC87C 7F097D4C AFA40180 */ sw $a0, 0x180($sp) -/* 0CC880 7F097D50 8FA40180 */ lw $a0, 0x180($sp) -/* 0CC884 7F097D54 02001825 */ move $v1, $s0 -/* 0CC888 7F097D58 3C0EB200 */ lui $t6, 0xb200 -/* 0CC88C 7F097D5C AC820004 */ sw $v0, 4($a0) -/* 0CC890 7F097D60 AC6E0000 */ sw $t6, ($v1) -/* 0CC894 7F097D64 AFA3017C */ sw $v1, 0x17c($sp) -/* 0CC898 7F097D68 C7AC0384 */ lwc1 $f12, 0x384($sp) -/* 0CC89C 7F097D6C 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CC8A0 7F097D70 26100008 */ addiu $s0, $s0, 8 -/* 0CC8A4 7F097D74 8FA3017C */ lw $v1, 0x17c($sp) -/* 0CC8A8 7F097D78 02002025 */ move $a0, $s0 -/* 0CC8AC 7F097D7C 3C18B400 */ lui $t8, 0xb400 -/* 0CC8B0 7F097D80 AC620004 */ sw $v0, 4($v1) -/* 0CC8B4 7F097D84 AC980000 */ sw $t8, ($a0) -/* 0CC8B8 7F097D88 AFA40178 */ sw $a0, 0x178($sp) -/* 0CC8BC 7F097D8C C7AC0410 */ lwc1 $f12, 0x410($sp) -/* 0CC8C0 7F097D90 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CC8C4 7F097D94 26100008 */ addiu $s0, $s0, 8 -/* 0CC8C8 7F097D98 8FA40178 */ lw $a0, 0x178($sp) -/* 0CC8CC 7F097D9C 02001825 */ move $v1, $s0 -/* 0CC8D0 7F097DA0 3C0FB200 */ lui $t7, 0xb200 -/* 0CC8D4 7F097DA4 AC820004 */ sw $v0, 4($a0) -/* 0CC8D8 7F097DA8 AC6F0000 */ sw $t7, ($v1) -/* 0CC8DC 7F097DAC AFA30174 */ sw $v1, 0x174($sp) -/* 0CC8E0 7F097DB0 C7AC0394 */ lwc1 $f12, 0x394($sp) -/* 0CC8E4 7F097DB4 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CC8E8 7F097DB8 26100008 */ addiu $s0, $s0, 8 -/* 0CC8EC 7F097DBC 8FA30174 */ lw $v1, 0x174($sp) -/* 0CC8F0 7F097DC0 02002025 */ move $a0, $s0 -/* 0CC8F4 7F097DC4 3C19B400 */ lui $t9, 0xb400 -/* 0CC8F8 7F097DC8 AC620004 */ sw $v0, 4($v1) -/* 0CC8FC 7F097DCC AC990000 */ sw $t9, ($a0) -/* 0CC900 7F097DD0 AFA40170 */ sw $a0, 0x170($sp) -/* 0CC904 7F097DD4 C7AC0408 */ lwc1 $f12, 0x408($sp) -/* 0CC908 7F097DD8 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CC90C 7F097DDC 26100008 */ addiu $s0, $s0, 8 -/* 0CC910 7F097DE0 8FA40170 */ lw $a0, 0x170($sp) -/* 0CC914 7F097DE4 02001825 */ move $v1, $s0 -/* 0CC918 7F097DE8 3C0EB200 */ lui $t6, 0xb200 -/* 0CC91C 7F097DEC AC820004 */ sw $v0, 4($a0) -/* 0CC920 7F097DF0 AC6E0000 */ sw $t6, ($v1) -/* 0CC924 7F097DF4 AFA3016C */ sw $v1, 0x16c($sp) -/* 0CC928 7F097DF8 C7AC038C */ lwc1 $f12, 0x38c($sp) -/* 0CC92C 7F097DFC 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CC930 7F097E00 26100008 */ addiu $s0, $s0, 8 -/* 0CC934 7F097E04 8FA3016C */ lw $v1, 0x16c($sp) -/* 0CC938 7F097E08 8FA80480 */ lw $t0, 0x480($sp) -/* 0CC93C 7F097E0C 8FA90484 */ lw $t1, 0x484($sp) -/* 0CC940 7F097E10 8FAB047C */ lw $t3, 0x47c($sp) -/* 0CC944 7F097E14 AC620004 */ sw $v0, 4($v1) -/* 0CC948 7F097E18 8FB8049C */ lw $t8, 0x49c($sp) -/* 0CC94C 7F097E1C C7A00378 */ lwc1 $f0, 0x378($sp) -/* 0CC950 7F097E20 3C018005 */ lui $at, %hi(D_800575F4) -/* 0CC954 7F097E24 57000004 */ bnezl $t8, .L7F097E38 -/* 0CC958 7F097E28 C524000C */ lwc1 $f4, 0xc($t1) -/* 0CC95C 7F097E2C 100002FA */ b .L7F098A18 -/* 0CC960 7F097E30 02001025 */ move $v0, $s0 -/* 0CC964 7F097E34 C524000C */ lwc1 $f4, 0xc($t1) -.L7F097E38: -/* 0CC968 7F097E38 46002282 */ mul.s $f10, $f4, $f0 -/* 0CC96C 7F097E3C E7AA036C */ swc1 $f10, 0x36c($sp) -/* 0CC970 7F097E40 C506000C */ lwc1 $f6, 0xc($t0) -/* 0CC974 7F097E44 C7B2036C */ lwc1 $f18, 0x36c($sp) -/* 0CC978 7F097E48 46003202 */ mul.s $f8, $f6, $f0 -/* 0CC97C 7F097E4C E7A80370 */ swc1 $f8, 0x370($sp) -/* 0CC980 7F097E50 C564000C */ lwc1 $f4, 0xc($t3) -/* 0CC984 7F097E54 C7A60370 */ lwc1 $f6, 0x370($sp) -/* 0CC988 7F097E58 46002282 */ mul.s $f10, $f4, $f0 -/* 0CC98C 7F097E5C 4612303C */ c.lt.s $f6, $f18 -/* 0CC990 7F097E60 E7AA0374 */ swc1 $f10, 0x374($sp) -/* 0CC994 7F097E64 45000002 */ bc1f .L7F097E70 -/* 0CC998 7F097E68 C7A00374 */ lwc1 $f0, 0x374($sp) -/* 0CC99C 7F097E6C 46003486 */ mov.s $f18, $f6 -.L7F097E70: -/* 0CC9A0 7F097E70 4612003C */ c.lt.s $f0, $f18 -/* 0CC9A4 7F097E74 00000000 */ nop -/* 0CC9A8 7F097E78 45000002 */ bc1f .L7F097E84 -/* 0CC9AC 7F097E7C 00000000 */ nop -/* 0CC9B0 7F097E80 46000486 */ mov.s $f18, $f0 -.L7F097E84: -/* 0CC9B4 7F097E84 C42075F4 */ lwc1 $f0, %lo(D_800575F4)($at) -/* 0CC9B8 7F097E88 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0CC9BC 7F097E8C 44811000 */ mtc1 $at, $f2 -/* 0CC9C0 7F097E90 C5280034 */ lwc1 $f8, 0x34($t1) -/* 0CC9C4 7F097E94 46029482 */ mul.s $f18, $f18, $f2 -/* 0CC9C8 7F097E98 00000000 */ nop -/* 0CC9CC 7F097E9C 46124102 */ mul.s $f4, $f8, $f18 -/* 0CC9D0 7F097EA0 E7A4035C */ swc1 $f4, 0x35c($sp) -/* 0CC9D4 7F097EA4 C50A0034 */ lwc1 $f10, 0x34($t0) -/* 0CC9D8 7F097EA8 46125182 */ mul.s $f6, $f10, $f18 -/* 0CC9DC 7F097EAC C7AA035C */ lwc1 $f10, 0x35c($sp) -/* 0CC9E0 7F097EB0 E7A60360 */ swc1 $f6, 0x360($sp) -/* 0CC9E4 7F097EB4 C5680034 */ lwc1 $f8, 0x34($t3) -/* 0CC9E8 7F097EB8 46124102 */ mul.s $f4, $f8, $f18 -/* 0CC9EC 7F097EBC E7A40364 */ swc1 $f4, 0x364($sp) -/* 0CC9F0 7F097EC0 C5260020 */ lwc1 $f6, 0x20($t1) -/* 0CC9F4 7F097EC4 46065202 */ mul.s $f8, $f10, $f6 -/* 0CC9F8 7F097EC8 E7A80338 */ swc1 $f8, 0x338($sp) -/* 0CC9FC 7F097ECC C5240024 */ lwc1 $f4, 0x24($t1) -/* 0CCA00 7F097ED0 4608A03E */ c.le.s $f20, $f8 -/* 0CCA04 7F097ED4 46045182 */ mul.s $f6, $f10, $f4 -/* 0CCA08 7F097ED8 00000000 */ nop -/* 0CCA0C 7F097EDC 46005102 */ mul.s $f4, $f10, $f0 -/* 0CCA10 7F097EE0 E7A6033C */ swc1 $f6, 0x33c($sp) -/* 0CCA14 7F097EE4 C7A60360 */ lwc1 $f6, 0x360($sp) -/* 0CCA18 7F097EE8 E7A40340 */ swc1 $f4, 0x340($sp) -/* 0CCA1C 7F097EEC C50A0020 */ lwc1 $f10, 0x20($t0) -/* 0CCA20 7F097EF0 460A3102 */ mul.s $f4, $f6, $f10 -/* 0CCA24 7F097EF4 E7A40344 */ swc1 $f4, 0x344($sp) -/* 0CCA28 7F097EF8 C50A0024 */ lwc1 $f10, 0x24($t0) -/* 0CCA2C 7F097EFC 460A3102 */ mul.s $f4, $f6, $f10 -/* 0CCA30 7F097F00 00000000 */ nop -/* 0CCA34 7F097F04 46003282 */ mul.s $f10, $f6, $f0 -/* 0CCA38 7F097F08 E7A40348 */ swc1 $f4, 0x348($sp) -/* 0CCA3C 7F097F0C C7A40364 */ lwc1 $f4, 0x364($sp) -/* 0CCA40 7F097F10 E7AA034C */ swc1 $f10, 0x34c($sp) -/* 0CCA44 7F097F14 C5660020 */ lwc1 $f6, 0x20($t3) -/* 0CCA48 7F097F18 46062282 */ mul.s $f10, $f4, $f6 -/* 0CCA4C 7F097F1C E7AA0350 */ swc1 $f10, 0x350($sp) -/* 0CCA50 7F097F20 C5660024 */ lwc1 $f6, 0x24($t3) -/* 0CCA54 7F097F24 46062282 */ mul.s $f10, $f4, $f6 -/* 0CCA58 7F097F28 00000000 */ nop -/* 0CCA5C 7F097F2C 46002182 */ mul.s $f6, $f4, $f0 -/* 0CCA60 7F097F30 C7A0033C */ lwc1 $f0, 0x33c($sp) -/* 0CCA64 7F097F34 E7AA0354 */ swc1 $f10, 0x354($sp) -/* 0CCA68 7F097F38 45000003 */ bc1f .L7F097F48 -/* 0CCA6C 7F097F3C E7A60358 */ swc1 $f6, 0x358($sp) -/* 0CCA70 7F097F40 10000003 */ b .L7F097F50 -/* 0CCA74 7F097F44 46004386 */ mov.s $f14, $f8 -.L7F097F48: -/* 0CCA78 7F097F48 C7AE0338 */ lwc1 $f14, 0x338($sp) -/* 0CCA7C 7F097F4C 46007387 */ neg.s $f14, $f14 -.L7F097F50: -/* 0CCA80 7F097F50 4600A03E */ c.le.s $f20, $f0 -/* 0CCA84 7F097F54 00000000 */ nop -/* 0CCA88 7F097F58 45020004 */ bc1fl .L7F097F6C -/* 0CCA8C 7F097F5C 46000407 */ neg.s $f16, $f0 -/* 0CCA90 7F097F60 10000002 */ b .L7F097F6C -/* 0CCA94 7F097F64 46000406 */ mov.s $f16, $f0 -/* 0CCA98 7F097F68 46000407 */ neg.s $f16, $f0 -.L7F097F6C: -/* 0CCA9C 7F097F6C C7A00344 */ lwc1 $f0, 0x344($sp) -/* 0CCAA0 7F097F70 4600A03E */ c.le.s $f20, $f0 -/* 0CCAA4 7F097F74 00000000 */ nop -/* 0CCAA8 7F097F78 45020004 */ bc1fl .L7F097F8C -/* 0CCAAC 7F097F7C 46000307 */ neg.s $f12, $f0 -/* 0CCAB0 7F097F80 10000002 */ b .L7F097F8C -/* 0CCAB4 7F097F84 46000306 */ mov.s $f12, $f0 -/* 0CCAB8 7F097F88 46000307 */ neg.s $f12, $f0 -.L7F097F8C: -/* 0CCABC 7F097F8C 460C703C */ c.lt.s $f14, $f12 -/* 0CCAC0 7F097F90 00000000 */ nop -/* 0CCAC4 7F097F94 45020009 */ bc1fl .L7F097FBC -/* 0CCAC8 7F097F98 C7A00348 */ lwc1 $f0, 0x348($sp) -/* 0CCACC 7F097F9C 4600A03E */ c.le.s $f20, $f0 -/* 0CCAD0 7F097FA0 00000000 */ nop -/* 0CCAD4 7F097FA4 45020004 */ bc1fl .L7F097FB8 -/* 0CCAD8 7F097FA8 46000387 */ neg.s $f14, $f0 -/* 0CCADC 7F097FAC 10000002 */ b .L7F097FB8 -/* 0CCAE0 7F097FB0 46000386 */ mov.s $f14, $f0 -/* 0CCAE4 7F097FB4 46000387 */ neg.s $f14, $f0 -.L7F097FB8: -/* 0CCAE8 7F097FB8 C7A00348 */ lwc1 $f0, 0x348($sp) -.L7F097FBC: -/* 0CCAEC 7F097FBC 4600A03E */ c.le.s $f20, $f0 -/* 0CCAF0 7F097FC0 00000000 */ nop -/* 0CCAF4 7F097FC4 45020004 */ bc1fl .L7F097FD8 -/* 0CCAF8 7F097FC8 46000307 */ neg.s $f12, $f0 -/* 0CCAFC 7F097FCC 10000002 */ b .L7F097FD8 -/* 0CCB00 7F097FD0 46000306 */ mov.s $f12, $f0 -/* 0CCB04 7F097FD4 46000307 */ neg.s $f12, $f0 -.L7F097FD8: -/* 0CCB08 7F097FD8 460C803C */ c.lt.s $f16, $f12 -/* 0CCB0C 7F097FDC E7B20368 */ swc1 $f18, 0x368($sp) -/* 0CCB10 7F097FE0 4502000B */ bc1fl .L7F098010 -/* 0CCB14 7F097FE4 C7A00350 */ lwc1 $f0, 0x350($sp) -/* 0CCB18 7F097FE8 4600A03E */ c.le.s $f20, $f0 -/* 0CCB1C 7F097FEC 00000000 */ nop -/* 0CCB20 7F097FF0 45020005 */ bc1fl .L7F098008 -/* 0CCB24 7F097FF4 46000407 */ neg.s $f16, $f0 -/* 0CCB28 7F097FF8 46000406 */ mov.s $f16, $f0 -/* 0CCB2C 7F097FFC 10000003 */ b .L7F09800C -/* 0CCB30 7F098000 E7B20368 */ swc1 $f18, 0x368($sp) -/* 0CCB34 7F098004 46000407 */ neg.s $f16, $f0 -.L7F098008: -/* 0CCB38 7F098008 E7B20368 */ swc1 $f18, 0x368($sp) -.L7F09800C: -/* 0CCB3C 7F09800C C7A00350 */ lwc1 $f0, 0x350($sp) -.L7F098010: -/* 0CCB40 7F098010 4600A03E */ c.le.s $f20, $f0 -/* 0CCB44 7F098014 00000000 */ nop -/* 0CCB48 7F098018 45020004 */ bc1fl .L7F09802C -/* 0CCB4C 7F09801C 46000307 */ neg.s $f12, $f0 -/* 0CCB50 7F098020 10000002 */ b .L7F09802C -/* 0CCB54 7F098024 46000306 */ mov.s $f12, $f0 -/* 0CCB58 7F098028 46000307 */ neg.s $f12, $f0 -.L7F09802C: -/* 0CCB5C 7F09802C 460C703C */ c.lt.s $f14, $f12 -/* 0CCB60 7F098030 E7AE0330 */ swc1 $f14, 0x330($sp) -/* 0CCB64 7F098034 4502000A */ bc1fl .L7F098060 -/* 0CCB68 7F098038 C7A00354 */ lwc1 $f0, 0x354($sp) -/* 0CCB6C 7F09803C 4600A03E */ c.le.s $f20, $f0 -/* 0CCB70 7F098040 00000000 */ nop -/* 0CCB74 7F098044 45020004 */ bc1fl .L7F098058 -/* 0CCB78 7F098048 46000387 */ neg.s $f14, $f0 -/* 0CCB7C 7F09804C 10000003 */ b .L7F09805C -/* 0CCB80 7F098050 E7A00330 */ swc1 $f0, 0x330($sp) -/* 0CCB84 7F098054 46000387 */ neg.s $f14, $f0 -.L7F098058: -/* 0CCB88 7F098058 E7AE0330 */ swc1 $f14, 0x330($sp) -.L7F09805C: -/* 0CCB8C 7F09805C C7A00354 */ lwc1 $f0, 0x354($sp) -.L7F098060: -/* 0CCB90 7F098060 4600A03E */ c.le.s $f20, $f0 -/* 0CCB94 7F098064 00000000 */ nop -/* 0CCB98 7F098068 45020004 */ bc1fl .L7F09807C -/* 0CCB9C 7F09806C 46000307 */ neg.s $f12, $f0 -/* 0CCBA0 7F098070 10000002 */ b .L7F09807C -/* 0CCBA4 7F098074 46000306 */ mov.s $f12, $f0 -/* 0CCBA8 7F098078 46000307 */ neg.s $f12, $f0 -.L7F09807C: -/* 0CCBAC 7F09807C 460C803C */ c.lt.s $f16, $f12 -/* 0CCBB0 7F098080 E7B00334 */ swc1 $f16, 0x334($sp) -/* 0CCBB4 7F098084 4502000A */ bc1fl .L7F0980B0 -/* 0CCBB8 7F098088 C52A0010 */ lwc1 $f10, 0x10($t1) -/* 0CCBBC 7F09808C 4600A03E */ c.le.s $f20, $f0 -/* 0CCBC0 7F098090 00000000 */ nop -/* 0CCBC4 7F098094 45020004 */ bc1fl .L7F0980A8 -/* 0CCBC8 7F098098 46000407 */ neg.s $f16, $f0 -/* 0CCBCC 7F09809C 10000003 */ b .L7F0980AC -/* 0CCBD0 7F0980A0 E7A00334 */ swc1 $f0, 0x334($sp) -/* 0CCBD4 7F0980A4 46000407 */ neg.s $f16, $f0 -.L7F0980A8: -/* 0CCBD8 7F0980A8 E7B00334 */ swc1 $f16, 0x334($sp) -.L7F0980AC: -/* 0CCBDC 7F0980AC C52A0010 */ lwc1 $f10, 0x10($t1) -.L7F0980B0: -/* 0CCBE0 7F0980B0 27A402B0 */ addiu $a0, $sp, 0x2b0 -/* 0CCBE4 7F0980B4 27A602F0 */ addiu $a2, $sp, 0x2f0 -/* 0CCBE8 7F0980B8 46025100 */ add.s $f4, $f10, $f2 -/* 0CCBEC 7F0980BC 27A20310 */ addiu $v0, $sp, 0x310 -/* 0CCBF0 7F0980C0 27A30290 */ addiu $v1, $sp, 0x290 -/* 0CCBF4 7F0980C4 27A502D0 */ addiu $a1, $sp, 0x2d0 -/* 0CCBF8 7F0980C8 E7A40310 */ swc1 $f4, 0x310($sp) -/* 0CCBFC 7F0980CC C5260014 */ lwc1 $f6, 0x14($t1) -/* 0CCC00 7F0980D0 27A702F0 */ addiu $a3, $sp, 0x2f0 -/* 0CCC04 7F0980D4 46023200 */ add.s $f8, $f6, $f2 -/* 0CCC08 7F0980D8 E7A80314 */ swc1 $f8, 0x314($sp) -/* 0CCC0C 7F0980DC C52A0018 */ lwc1 $f10, 0x18($t1) -/* 0CCC10 7F0980E0 46025100 */ add.s $f4, $f10, $f2 -/* 0CCC14 7F0980E4 E7A40318 */ swc1 $f4, 0x318($sp) -/* 0CCC18 7F0980E8 C526001C */ lwc1 $f6, 0x1c($t1) -/* 0CCC1C 7F0980EC 46023200 */ add.s $f8, $f6, $f2 -/* 0CCC20 7F0980F0 E7A8031C */ swc1 $f8, 0x31c($sp) -/* 0CCC24 7F0980F4 C50A0010 */ lwc1 $f10, 0x10($t0) -/* 0CCC28 7F0980F8 46025100 */ add.s $f4, $f10, $f2 -/* 0CCC2C 7F0980FC E7A402F0 */ swc1 $f4, 0x2f0($sp) -/* 0CCC30 7F098100 C5060014 */ lwc1 $f6, 0x14($t0) -/* 0CCC34 7F098104 46023200 */ add.s $f8, $f6, $f2 -/* 0CCC38 7F098108 E7A802F4 */ swc1 $f8, 0x2f4($sp) -/* 0CCC3C 7F09810C C50A0018 */ lwc1 $f10, 0x18($t0) -/* 0CCC40 7F098110 46025100 */ add.s $f4, $f10, $f2 -/* 0CCC44 7F098114 E7A402F8 */ swc1 $f4, 0x2f8($sp) -/* 0CCC48 7F098118 C506001C */ lwc1 $f6, 0x1c($t0) -/* 0CCC4C 7F09811C 46023200 */ add.s $f8, $f6, $f2 -/* 0CCC50 7F098120 E7A802FC */ swc1 $f8, 0x2fc($sp) -/* 0CCC54 7F098124 C56A0010 */ lwc1 $f10, 0x10($t3) -/* 0CCC58 7F098128 46025100 */ add.s $f4, $f10, $f2 -/* 0CCC5C 7F09812C E7A402D0 */ swc1 $f4, 0x2d0($sp) -/* 0CCC60 7F098130 C5660014 */ lwc1 $f6, 0x14($t3) -/* 0CCC64 7F098134 46023200 */ add.s $f8, $f6, $f2 -/* 0CCC68 7F098138 E7A802D4 */ swc1 $f8, 0x2d4($sp) -/* 0CCC6C 7F09813C C56A0018 */ lwc1 $f10, 0x18($t3) -/* 0CCC70 7F098140 46025100 */ add.s $f4, $f10, $f2 -/* 0CCC74 7F098144 C7AA0338 */ lwc1 $f10, 0x338($sp) -/* 0CCC78 7F098148 E7A402D8 */ swc1 $f4, 0x2d8($sp) -/* 0CCC7C 7F09814C C566001C */ lwc1 $f6, 0x1c($t3) -/* 0CCC80 7F098150 E7AA0320 */ swc1 $f10, 0x320($sp) -/* 0CCC84 7F098154 C7A4033C */ lwc1 $f4, 0x33c($sp) -/* 0CCC88 7F098158 46023200 */ add.s $f8, $f6, $f2 -/* 0CCC8C 7F09815C C7A60340 */ lwc1 $f6, 0x340($sp) -/* 0CCC90 7F098160 C7AA0348 */ lwc1 $f10, 0x348($sp) -/* 0CCC94 7F098164 E7A40324 */ swc1 $f4, 0x324($sp) -/* 0CCC98 7F098168 E7A802DC */ swc1 $f8, 0x2dc($sp) -/* 0CCC9C 7F09816C C7A80344 */ lwc1 $f8, 0x344($sp) -/* 0CCCA0 7F098170 E7A60328 */ swc1 $f6, 0x328($sp) -/* 0CCCA4 7F098174 E7AA0304 */ swc1 $f10, 0x304($sp) -/* 0CCCA8 7F098178 E7A80300 */ swc1 $f8, 0x300($sp) -/* 0CCCAC 7F09817C C7A4034C */ lwc1 $f4, 0x34c($sp) -/* 0CCCB0 7F098180 C7A80354 */ lwc1 $f8, 0x354($sp) -/* 0CCCB4 7F098184 C7AA0358 */ lwc1 $f10, 0x358($sp) -/* 0CCCB8 7F098188 C7A60350 */ lwc1 $f6, 0x350($sp) -/* 0CCCBC 7F09818C E7A40308 */ swc1 $f4, 0x308($sp) -/* 0CCCC0 7F098190 E7A802E4 */ swc1 $f8, 0x2e4($sp) -/* 0CCCC4 7F098194 E7AA02E8 */ swc1 $f10, 0x2e8($sp) -/* 0CCCC8 7F098198 E7A602E0 */ swc1 $f6, 0x2e0($sp) -/* 0CCCCC 7F09819C C5240030 */ lwc1 $f4, 0x30($t1) -/* 0CCCD0 7F0981A0 27A90230 */ addiu $t1, $sp, 0x230 -/* 0CCCD4 7F0981A4 E7A4032C */ swc1 $f4, 0x32c($sp) -/* 0CCCD8 7F0981A8 C5060030 */ lwc1 $f6, 0x30($t0) -/* 0CCCDC 7F0981AC 27A80230 */ addiu $t0, $sp, 0x230 -/* 0CCCE0 7F0981B0 E7A6030C */ swc1 $f6, 0x30c($sp) -/* 0CCCE4 7F0981B4 C5680030 */ lwc1 $f8, 0x30($t3) -/* 0CCCE8 7F0981B8 E7A802EC */ swc1 $f8, 0x2ec($sp) -.L7F0981BC: -/* 0CCCEC 7F0981BC C4400000 */ lwc1 $f0, ($v0) -/* 0CCCF0 7F0981C0 C4CA0000 */ lwc1 $f10, ($a2) -/* 0CCCF4 7F0981C4 C4A60000 */ lwc1 $f6, ($a1) -/* 0CCCF8 7F0981C8 24A50004 */ addiu $a1, $a1, 4 -/* 0CCCFC 7F0981CC 46005101 */ sub.s $f4, $f10, $f0 -/* 0CCD00 7F0981D0 00A7082B */ sltu $at, $a1, $a3 -/* 0CCD04 7F0981D4 24840004 */ addiu $a0, $a0, 4 -/* 0CCD08 7F0981D8 46003201 */ sub.s $f8, $f6, $f0 -/* 0CCD0C 7F0981DC 24C60004 */ addiu $a2, $a2, 4 -/* 0CCD10 7F0981E0 24420004 */ addiu $v0, $v0, 4 -/* 0CCD14 7F0981E4 24630004 */ addiu $v1, $v1, 4 -/* 0CCD18 7F0981E8 E484FFFC */ swc1 $f4, -4($a0) -/* 0CCD1C 7F0981EC 1420FFF3 */ bnez $at, .L7F0981BC -/* 0CCD20 7F0981F0 E468FFFC */ swc1 $f8, -4($v1) -/* 0CCD24 7F0981F4 27A402B0 */ addiu $a0, $sp, 0x2b0 -/* 0CCD28 7F0981F8 27A20310 */ addiu $v0, $sp, 0x310 -/* 0CCD2C 7F0981FC 27A30290 */ addiu $v1, $sp, 0x290 -/* 0CCD30 7F098200 27A70250 */ addiu $a3, $sp, 0x250 -/* 0CCD34 7F098204 27A50270 */ addiu $a1, $sp, 0x270 -/* 0CCD38 7F098208 27A60210 */ addiu $a2, $sp, 0x210 -/* 0CCD3C 7F09820C C7B203C8 */ lwc1 $f18, 0x3c8($sp) -.L7F098210: -/* 0CCD40 7F098210 C4600000 */ lwc1 $f0, ($v1) -/* 0CCD44 7F098214 C7AA03CC */ lwc1 $f10, 0x3cc($sp) -/* 0CCD48 7F098218 C4820000 */ lwc1 $f2, ($a0) -/* 0CCD4C 7F09821C C7A603D4 */ lwc1 $f6, 0x3d4($sp) -/* 0CCD50 7F098220 460A0102 */ mul.s $f4, $f0, $f10 -/* 0CCD54 7F098224 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CCD58 7F098228 24C60004 */ addiu $a2, $a2, 4 -/* 0CCD5C 7F09822C 46023202 */ mul.s $f8, $f6, $f2 -/* 0CCD60 7F098230 44813000 */ mtc1 $at, $f6 -/* 0CCD64 7F098234 24840004 */ addiu $a0, $a0, 4 -/* 0CCD68 7F098238 24420004 */ addiu $v0, $v0, 4 -/* 0CCD6C 7F09823C 24630004 */ addiu $v1, $v1, 4 -/* 0CCD70 7F098240 24E70004 */ addiu $a3, $a3, 4 -/* 0CCD74 7F098244 24A50004 */ addiu $a1, $a1, 4 -/* 0CCD78 7F098248 46082281 */ sub.s $f10, $f4, $f8 -/* 0CCD7C 7F09824C 25080004 */ addiu $t0, $t0, 4 -/* 0CCD80 7F098250 46065303 */ div.s $f12, $f10, $f6 -/* 0CCD84 7F098254 E4ECFFFC */ swc1 $f12, -4($a3) -/* 0CCD88 7F098258 C7A403D0 */ lwc1 $f4, 0x3d0($sp) -/* 0CCD8C 7F09825C 46041202 */ mul.s $f8, $f2, $f4 -/* 0CCD90 7F098260 44812000 */ mtc1 $at, $f4 -/* 0CCD94 7F098264 00C9082B */ sltu $at, $a2, $t1 -/* 0CCD98 7F098268 46009282 */ mul.s $f10, $f18, $f0 -/* 0CCD9C 7F09826C 460A4181 */ sub.s $f6, $f8, $f10 -/* 0CCDA0 7F098270 46043203 */ div.s $f8, $f6, $f4 -/* 0CCDA4 7F098274 E4A8FFFC */ swc1 $f8, -4($a1) -/* 0CCDA8 7F098278 C7AA0440 */ lwc1 $f10, 0x440($sp) -/* 0CCDAC 7F09827C C4A4FFFC */ lwc1 $f4, -4($a1) -/* 0CCDB0 7F098280 460A6182 */ mul.s $f6, $f12, $f10 -/* 0CCDB4 7F098284 E466FFFC */ swc1 $f6, -4($v1) -/* 0CCDB8 7F098288 C7A80440 */ lwc1 $f8, 0x440($sp) -/* 0CCDBC 7F09828C C466FFFC */ lwc1 $f6, -4($v1) -/* 0CCDC0 7F098290 46082382 */ mul.s $f14, $f4, $f8 -/* 0CCDC4 7F098294 C448FFFC */ lwc1 $f8, -4($v0) -/* 0CCDC8 7F098298 E48EFFFC */ swc1 $f14, -4($a0) -/* 0CCDCC 7F09829C C7AA0394 */ lwc1 $f10, 0x394($sp) -/* 0CCDD0 7F0982A0 46065102 */ mul.s $f4, $f10, $f6 -/* 0CCDD4 7F0982A4 460E2400 */ add.s $f16, $f4, $f14 -/* 0CCDD8 7F0982A8 E510FFFC */ swc1 $f16, -4($t0) -/* 0CCDDC 7F0982AC C7AA037C */ lwc1 $f10, 0x37c($sp) -/* 0CCDE0 7F0982B0 460A8182 */ mul.s $f6, $f16, $f10 -/* 0CCDE4 7F0982B4 46064101 */ sub.s $f4, $f8, $f6 -/* 0CCDE8 7F0982B8 1420FFD5 */ bnez $at, .L7F098210 -/* 0CCDEC 7F0982BC E4C4FFFC */ swc1 $f4, -4($a2) -/* 0CCDF0 7F0982C0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCDF4 7F0982C4 C7AC0210 */ lwc1 $f12, 0x210($sp) -/* 0CCDF8 7F0982C8 AFA20168 */ sw $v0, 0x168($sp) -/* 0CCDFC 7F0982CC 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE00 7F0982D0 C7AC0214 */ lwc1 $f12, 0x214($sp) -/* 0CCE04 7F0982D4 AFA20164 */ sw $v0, 0x164($sp) -/* 0CCE08 7F0982D8 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE0C 7F0982DC C7AC0218 */ lwc1 $f12, 0x218($sp) -/* 0CCE10 7F0982E0 AFA20160 */ sw $v0, 0x160($sp) -/* 0CCE14 7F0982E4 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE18 7F0982E8 C7AC021C */ lwc1 $f12, 0x21c($sp) -/* 0CCE1C 7F0982EC AFA2015C */ sw $v0, 0x15c($sp) -/* 0CCE20 7F0982F0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE24 7F0982F4 C7AC0290 */ lwc1 $f12, 0x290($sp) -/* 0CCE28 7F0982F8 AFA20158 */ sw $v0, 0x158($sp) -/* 0CCE2C 7F0982FC 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE30 7F098300 C7AC0294 */ lwc1 $f12, 0x294($sp) -/* 0CCE34 7F098304 AFA20154 */ sw $v0, 0x154($sp) -/* 0CCE38 7F098308 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE3C 7F09830C C7AC0298 */ lwc1 $f12, 0x298($sp) -/* 0CCE40 7F098310 AFA20150 */ sw $v0, 0x150($sp) -/* 0CCE44 7F098314 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE48 7F098318 C7AC029C */ lwc1 $f12, 0x29c($sp) -/* 0CCE4C 7F09831C AFA2014C */ sw $v0, 0x14c($sp) -/* 0CCE50 7F098320 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE54 7F098324 C7AC02B0 */ lwc1 $f12, 0x2b0($sp) -/* 0CCE58 7F098328 AFA20138 */ sw $v0, 0x138($sp) -/* 0CCE5C 7F09832C 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE60 7F098330 C7AC02B4 */ lwc1 $f12, 0x2b4($sp) -/* 0CCE64 7F098334 AFA20134 */ sw $v0, 0x134($sp) -/* 0CCE68 7F098338 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE6C 7F09833C C7AC02B8 */ lwc1 $f12, 0x2b8($sp) -/* 0CCE70 7F098340 AFA20130 */ sw $v0, 0x130($sp) -/* 0CCE74 7F098344 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE78 7F098348 C7AC02BC */ lwc1 $f12, 0x2bc($sp) -/* 0CCE7C 7F09834C AFA2012C */ sw $v0, 0x12c($sp) -/* 0CCE80 7F098350 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE84 7F098354 C7AC0230 */ lwc1 $f12, 0x230($sp) -/* 0CCE88 7F098358 AFA20148 */ sw $v0, 0x148($sp) -/* 0CCE8C 7F09835C 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE90 7F098360 C7AC0234 */ lwc1 $f12, 0x234($sp) -/* 0CCE94 7F098364 AFA20144 */ sw $v0, 0x144($sp) -/* 0CCE98 7F098368 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCE9C 7F09836C C7AC0238 */ lwc1 $f12, 0x238($sp) -/* 0CCEA0 7F098370 C7AC023C */ lwc1 $f12, 0x23c($sp) -/* 0CCEA4 7F098374 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CCEA8 7F098378 AFA20140 */ sw $v0, 0x140($sp) -/* 0CCEAC 7F09837C 8FAC0140 */ lw $t4, 0x140($sp) -/* 0CCEB0 7F098380 8FAD015C */ lw $t5, 0x15c($sp) -/* 0CCEB4 7F098384 8FBF0168 */ lw $ra, 0x168($sp) -/* 0CCEB8 7F098388 3C08B400 */ lui $t0, 0xb400 -/* 0CCEBC 7F09838C 02001825 */ move $v1, $s0 -/* 0CCEC0 7F098390 AC680000 */ sw $t0, ($v1) -/* 0CCEC4 7F098394 8FB90164 */ lw $t9, 0x164($sp) -/* 0CCEC8 7F098398 3C09FFFF */ lui $t1, 0xffff -/* 0CCECC 7F09839C 03E97824 */ and $t7, $ra, $t1 -/* 0CCED0 7F0983A0 03297024 */ and $t6, $t9, $t1 -/* 0CCED4 7F0983A4 000EC402 */ srl $t8, $t6, 0x10 -/* 0CCED8 7F0983A8 01F8C825 */ or $t9, $t7, $t8 -/* 0CCEDC 7F0983AC 26100008 */ addiu $s0, $s0, 8 -/* 0CCEE0 7F0983B0 3C0AB200 */ lui $t2, 0xb200 -/* 0CCEE4 7F0983B4 AC790004 */ sw $t9, 4($v1) -/* 0CCEE8 7F0983B8 02002025 */ move $a0, $s0 -/* 0CCEEC 7F0983BC AC8A0000 */ sw $t2, ($a0) -/* 0CCEF0 7F0983C0 8FAE0160 */ lw $t6, 0x160($sp) -/* 0CCEF4 7F0983C4 01A9C024 */ and $t8, $t5, $t1 -/* 0CCEF8 7F0983C8 0018CC02 */ srl $t9, $t8, 0x10 -/* 0CCEFC 7F0983CC 01C97824 */ and $t7, $t6, $t1 -/* 0CCF00 7F0983D0 01F97025 */ or $t6, $t7, $t9 -/* 0CCF04 7F0983D4 26100008 */ addiu $s0, $s0, 8 -/* 0CCF08 7F0983D8 AC8E0004 */ sw $t6, 4($a0) -/* 0CCF0C 7F0983DC 02002825 */ move $a1, $s0 -/* 0CCF10 7F0983E0 ACA80000 */ sw $t0, ($a1) -/* 0CCF14 7F0983E4 8FB90154 */ lw $t9, 0x154($sp) -/* 0CCF18 7F0983E8 8FB80158 */ lw $t8, 0x158($sp) -/* 0CCF1C 7F0983EC 26100008 */ addiu $s0, $s0, 8 -/* 0CCF20 7F0983F0 03297024 */ and $t6, $t9, $t1 -/* 0CCF24 7F0983F4 03097824 */ and $t7, $t8, $t1 -/* 0CCF28 7F0983F8 000EC402 */ srl $t8, $t6, 0x10 -/* 0CCF2C 7F0983FC 01F8C825 */ or $t9, $t7, $t8 -/* 0CCF30 7F098400 ACB90004 */ sw $t9, 4($a1) -/* 0CCF34 7F098404 8FAB014C */ lw $t3, 0x14c($sp) -/* 0CCF38 7F098408 02003025 */ move $a2, $s0 -/* 0CCF3C 7F09840C ACCA0000 */ sw $t2, ($a2) -/* 0CCF40 7F098410 8FAE0150 */ lw $t6, 0x150($sp) -/* 0CCF44 7F098414 0169C024 */ and $t8, $t3, $t1 -/* 0CCF48 7F098418 0018CC02 */ srl $t9, $t8, 0x10 -/* 0CCF4C 7F09841C 01C97824 */ and $t7, $t6, $t1 -/* 0CCF50 7F098420 01F97025 */ or $t6, $t7, $t9 -/* 0CCF54 7F098424 26100008 */ addiu $s0, $s0, 8 -/* 0CCF58 7F098428 ACCE0004 */ sw $t6, 4($a2) -/* 0CCF5C 7F09842C 02001825 */ move $v1, $s0 -/* 0CCF60 7F098430 AC680000 */ sw $t0, ($v1) -/* 0CCF64 7F098434 8FB90164 */ lw $t9, 0x164($sp) -/* 0CCF68 7F098438 001F7C00 */ sll $t7, $ra, 0x10 -/* 0CCF6C 7F09843C 26100008 */ addiu $s0, $s0, 8 -/* 0CCF70 7F098440 332EFFFF */ andi $t6, $t9, 0xffff -/* 0CCF74 7F098444 01EEC025 */ or $t8, $t7, $t6 -/* 0CCF78 7F098448 AC780004 */ sw $t8, 4($v1) -/* 0CCF7C 7F09844C 02002025 */ move $a0, $s0 -/* 0CCF80 7F098450 AC8A0000 */ sw $t2, ($a0) -/* 0CCF84 7F098454 8FAF0160 */ lw $t7, 0x160($sp) -/* 0CCF88 7F098458 31B8FFFF */ andi $t8, $t5, 0xffff -/* 0CCF8C 7F09845C 26100008 */ addiu $s0, $s0, 8 -/* 0CCF90 7F098460 000F7400 */ sll $t6, $t7, 0x10 -/* 0CCF94 7F098464 01D8C825 */ or $t9, $t6, $t8 -/* 0CCF98 7F098468 AC990004 */ sw $t9, 4($a0) -/* 0CCF9C 7F09846C 02003825 */ move $a3, $s0 -/* 0CCFA0 7F098470 ACE80000 */ sw $t0, ($a3) -/* 0CCFA4 7F098474 8FB90154 */ lw $t9, 0x154($sp) -/* 0CCFA8 7F098478 8FAE0158 */ lw $t6, 0x158($sp) -/* 0CCFAC 7F09847C 8FA80148 */ lw $t0, 0x148($sp) -/* 0CCFB0 7F098480 332FFFFF */ andi $t7, $t9, 0xffff -/* 0CCFB4 7F098484 000EC400 */ sll $t8, $t6, 0x10 -/* 0CCFB8 7F098488 8FA60144 */ lw $a2, 0x144($sp) -/* 0CCFBC 7F09848C 030F7025 */ or $t6, $t8, $t7 -/* 0CCFC0 7F098490 26100008 */ addiu $s0, $s0, 8 -/* 0CCFC4 7F098494 ACEE0004 */ sw $t6, 4($a3) -/* 0CCFC8 7F098498 02001825 */ move $v1, $s0 -/* 0CCFCC 7F09849C AC6A0000 */ sw $t2, ($v1) -/* 0CCFD0 7F0984A0 8FB80150 */ lw $t8, 0x150($sp) -/* 0CCFD4 7F0984A4 316EFFFF */ andi $t6, $t3, 0xffff -/* 0CCFD8 7F0984A8 26100008 */ addiu $s0, $s0, 8 -/* 0CCFDC 7F0984AC 00187C00 */ sll $t7, $t8, 0x10 -/* 0CCFE0 7F0984B0 01EEC825 */ or $t9, $t7, $t6 -/* 0CCFE4 7F0984B4 AC790004 */ sw $t9, 4($v1) -/* 0CCFE8 7F0984B8 3C18B400 */ lui $t8, 0xb400 -/* 0CCFEC 7F0984BC 02002025 */ move $a0, $s0 -/* 0CCFF0 7F0984C0 00C97024 */ and $t6, $a2, $t1 -/* 0CCFF4 7F0984C4 000ECC02 */ srl $t9, $t6, 0x10 -/* 0CCFF8 7F0984C8 AC980000 */ sw $t8, ($a0) -/* 0CCFFC 7F0984CC 01097824 */ and $t7, $t0, $t1 -/* 0CD000 7F0984D0 01F9C025 */ or $t8, $t7, $t9 -/* 0CD004 7F0984D4 26100008 */ addiu $s0, $s0, 8 -/* 0CD008 7F0984D8 AC980004 */ sw $t8, 4($a0) -/* 0CD00C 7F0984DC 02002825 */ move $a1, $s0 -/* 0CD010 7F0984E0 00497824 */ and $t7, $v0, $t1 -/* 0CD014 7F0984E4 000FCC02 */ srl $t9, $t7, 0x10 -/* 0CD018 7F0984E8 01897024 */ and $t6, $t4, $t1 -/* 0CD01C 7F0984EC 01D9C025 */ or $t8, $t6, $t9 -/* 0CD020 7F0984F0 ACB80004 */ sw $t8, 4($a1) -/* 0CD024 7F0984F4 ACAA0000 */ sw $t2, ($a1) -/* 0CD028 7F0984F8 26100008 */ addiu $s0, $s0, 8 -/* 0CD02C 7F0984FC 8FAD0130 */ lw $t5, 0x130($sp) -/* 0CD030 7F098500 3C07B400 */ lui $a3, %hi(0xB4000004) # $a3, 0xb400 -/* 0CD034 7F098504 02001825 */ move $v1, $s0 -/* 0CD038 7F098508 AC670000 */ sw $a3, ($v1) -/* 0CD03C 7F09850C 8FB90134 */ lw $t9, 0x134($sp) -/* 0CD040 7F098510 8FAF0138 */ lw $t7, 0x138($sp) -/* 0CD044 7F098514 26100008 */ addiu $s0, $s0, 8 -/* 0CD048 7F098518 0329C024 */ and $t8, $t9, $t1 -/* 0CD04C 7F09851C 01E97024 */ and $t6, $t7, $t1 -/* 0CD050 7F098520 00187C02 */ srl $t7, $t8, 0x10 -/* 0CD054 7F098524 01CFC825 */ or $t9, $t6, $t7 -/* 0CD058 7F098528 AC790004 */ sw $t9, 4($v1) -/* 0CD05C 7F09852C 3C18B200 */ lui $t8, 0xb200 -/* 0CD060 7F098530 02002025 */ move $a0, $s0 -/* 0CD064 7F098534 AC980000 */ sw $t8, ($a0) -/* 0CD068 7F098538 8FAF012C */ lw $t7, 0x12c($sp) -/* 0CD06C 7F09853C 01A97024 */ and $t6, $t5, $t1 -/* 0CD070 7F098540 26100008 */ addiu $s0, $s0, 8 -/* 0CD074 7F098544 01E9C824 */ and $t9, $t7, $t1 -/* 0CD078 7F098548 0019C402 */ srl $t8, $t9, 0x10 -/* 0CD07C 7F09854C 01D87825 */ or $t7, $t6, $t8 -/* 0CD080 7F098550 AC8F0004 */ sw $t7, 4($a0) -/* 0CD084 7F098554 02002825 */ move $a1, $s0 -/* 0CD088 7F098558 00087400 */ sll $t6, $t0, 0x10 -/* 0CD08C 7F09855C 30D8FFFF */ andi $t8, $a2, 0xffff -/* 0CD090 7F098560 01D87825 */ or $t7, $t6, $t8 -/* 0CD094 7F098564 26100008 */ addiu $s0, $s0, 8 -/* 0CD098 7F098568 ACAF0004 */ sw $t7, 4($a1) -/* 0CD09C 7F09856C ACA70000 */ sw $a3, ($a1) -/* 0CD0A0 7F098570 02005825 */ move $t3, $s0 -/* 0CD0A4 7F098574 3058FFFF */ andi $t8, $v0, 0xffff -/* 0CD0A8 7F098578 000C7400 */ sll $t6, $t4, 0x10 -/* 0CD0AC 7F09857C 01D87825 */ or $t7, $t6, $t8 -/* 0CD0B0 7F098580 26100008 */ addiu $s0, $s0, 8 -/* 0CD0B4 7F098584 3C1FB200 */ lui $ra, 0xb200 -/* 0CD0B8 7F098588 AD7F0000 */ sw $ra, ($t3) -/* 0CD0BC 7F09858C AD6F0004 */ sw $t7, 4($t3) -/* 0CD0C0 7F098590 02003825 */ move $a3, $s0 -/* 0CD0C4 7F098594 3C19B400 */ lui $t9, 0xb400 -/* 0CD0C8 7F098598 ACF90000 */ sw $t9, ($a3) -/* 0CD0CC 7F09859C 8FB90134 */ lw $t9, 0x134($sp) -/* 0CD0D0 7F0985A0 8FB80138 */ lw $t8, 0x138($sp) -/* 0CD0D4 7F0985A4 26100008 */ addiu $s0, $s0, 8 -/* 0CD0D8 7F0985A8 332EFFFF */ andi $t6, $t9, 0xffff -/* 0CD0DC 7F0985AC 00187C00 */ sll $t7, $t8, 0x10 -/* 0CD0E0 7F0985B0 01EEC025 */ or $t8, $t7, $t6 -/* 0CD0E4 7F0985B4 ACF80004 */ sw $t8, %lo(0xB4000004)($a3) -/* 0CD0E8 7F0985B8 02004025 */ move $t0, $s0 -/* 0CD0EC 7F0985BC AD1F0000 */ sw $ra, ($t0) -/* 0CD0F0 7F0985C0 8FAE012C */ lw $t6, 0x12c($sp) -/* 0CD0F4 7F0985C4 000D7C00 */ sll $t7, $t5, 0x10 -/* 0CD0F8 7F0985C8 3C013D00 */ li $at, 0x3D000000 # 0.031250 -/* 0CD0FC 7F0985CC 31D8FFFF */ andi $t8, $t6, 0xffff -/* 0CD100 7F0985D0 01F8C825 */ or $t9, $t7, $t8 -/* 0CD104 7F0985D4 AD190004 */ sw $t9, 4($t0) -/* 0CD108 7F0985D8 44817000 */ mtc1 $at, $f14 -/* 0CD10C 7F0985DC C7AA0330 */ lwc1 $f10, 0x330($sp) -/* 0CD110 7F0985E0 C7A60334 */ lwc1 $f6, 0x334($sp) -/* 0CD114 7F0985E4 26100008 */ addiu $s0, $s0, 8 -/* 0CD118 7F0985E8 460E5202 */ mul.s $f8, $f10, $f14 -/* 0CD11C 7F0985EC C7AA0368 */ lwc1 $f10, 0x368($sp) -/* 0CD120 7F0985F0 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CD124 7F0985F4 460E3102 */ mul.s $f4, $f6, $f14 -/* 0CD128 7F0985F8 27A201D0 */ addiu $v0, $sp, 0x1d0 -/* 0CD12C 7F0985FC 27A501B0 */ addiu $a1, $sp, 0x1b0 -/* 0CD130 7F098600 27A601D0 */ addiu $a2, $sp, 0x1d0 -/* 0CD134 7F098604 E7A80200 */ swc1 $f8, 0x200($sp) -/* 0CD138 7F098608 460E5202 */ mul.s $f8, $f10, $f14 -/* 0CD13C 7F09860C 27A402B0 */ addiu $a0, $sp, 0x2b0 -/* 0CD140 7F098610 E7A40204 */ swc1 $f4, 0x204($sp) -/* 0CD144 7F098614 27A30290 */ addiu $v1, $sp, 0x290 -/* 0CD148 7F098618 E7A80208 */ swc1 $f8, 0x208($sp) -.L7F09861C: -/* 0CD14C 7F09861C C4600000 */ lwc1 $f0, ($v1) -/* 0CD150 7F098620 4600A03E */ c.le.s $f20, $f0 -/* 0CD154 7F098624 00000000 */ nop -/* 0CD158 7F098628 45020004 */ bc1fl .L7F09863C -/* 0CD15C 7F09862C 46000307 */ neg.s $f12, $f0 -/* 0CD160 7F098630 10000002 */ b .L7F09863C -/* 0CD164 7F098634 46000306 */ mov.s $f12, $f0 -/* 0CD168 7F098638 46000307 */ neg.s $f12, $f0 -.L7F09863C: -/* 0CD16C 7F09863C C4820000 */ lwc1 $f2, ($a0) -/* 0CD170 7F098640 460E6182 */ mul.s $f6, $f12, $f14 -/* 0CD174 7F098644 4602A03E */ c.le.s $f20, $f2 -/* 0CD178 7F098648 00000000 */ nop -/* 0CD17C 7F09864C 45000003 */ bc1f .L7F09865C -/* 0CD180 7F098650 E4C60000 */ swc1 $f6, ($a2) -/* 0CD184 7F098654 10000002 */ b .L7F098660 -/* 0CD188 7F098658 46001306 */ mov.s $f12, $f2 -.L7F09865C: -/* 0CD18C 7F09865C 46001307 */ neg.s $f12, $f2 -.L7F098660: -/* 0CD190 7F098660 460E6102 */ mul.s $f4, $f12, $f14 -/* 0CD194 7F098664 24A50004 */ addiu $a1, $a1, 4 -/* 0CD198 7F098668 24840004 */ addiu $a0, $a0, 4 -/* 0CD19C 7F09866C 24630004 */ addiu $v1, $v1, 4 -/* 0CD1A0 7F098670 24C60004 */ addiu $a2, $a2, 4 -/* 0CD1A4 7F098674 14A2FFE9 */ bne $a1, $v0, .L7F09861C -/* 0CD1A8 7F098678 E4A4FFFC */ swc1 $f4, -4($a1) -/* 0CD1AC 7F09867C 44811000 */ mtc1 $at, $f2 -/* 0CD1B0 7F098680 C7A801E0 */ lwc1 $f8, 0x1e0($sp) -/* 0CD1B4 7F098684 C7AA0200 */ lwc1 $f10, 0x200($sp) -/* 0CD1B8 7F098688 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CD1BC 7F09868C 46081182 */ mul.s $f6, $f2, $f8 -/* 0CD1C0 7F098690 C7A801C0 */ lwc1 $f8, 0x1c0($sp) -/* 0CD1C4 7F098694 46065100 */ add.s $f4, $f10, $f6 -/* 0CD1C8 7F098698 C7A601E4 */ lwc1 $f6, 0x1e4($sp) -/* 0CD1CC 7F09869C C7AA0204 */ lwc1 $f10, 0x204($sp) -/* 0CD1D0 7F0986A0 46044000 */ add.s $f0, $f8, $f4 -/* 0CD1D4 7F0986A4 46061202 */ mul.s $f8, $f2, $f6 -/* 0CD1D8 7F0986A8 C7A601C4 */ lwc1 $f6, 0x1c4($sp) -/* 0CD1DC 7F0986AC 46085100 */ add.s $f4, $f10, $f8 -/* 0CD1E0 7F0986B0 C7A801E8 */ lwc1 $f8, 0x1e8($sp) -/* 0CD1E4 7F0986B4 C7AA0208 */ lwc1 $f10, 0x208($sp) -/* 0CD1E8 7F0986B8 46043300 */ add.s $f12, $f6, $f4 -/* 0CD1EC 7F0986BC 46081182 */ mul.s $f6, $f2, $f8 -/* 0CD1F0 7F0986C0 44811000 */ mtc1 $at, $f2 -/* 0CD1F4 7F0986C4 C7A801C8 */ lwc1 $f8, 0x1c8($sp) -/* 0CD1F8 7F0986C8 460C003C */ c.lt.s $f0, $f12 -/* 0CD1FC 7F0986CC 3C013A80 */ li $at, 0x3A800000 # 0.000977 -/* 0CD200 7F0986D0 E7AC01A4 */ swc1 $f12, 0x1a4($sp) -/* 0CD204 7F0986D4 46065100 */ add.s $f4, $f10, $f6 -/* 0CD208 7F0986D8 44815000 */ mtc1 $at, $f10 -/* 0CD20C 7F0986DC 45000003 */ bc1f .L7F0986EC -/* 0CD210 7F0986E0 46044380 */ add.s $f14, $f8, $f4 -/* 0CD214 7F0986E4 46006006 */ mov.s $f0, $f12 -/* 0CD218 7F0986E8 E7AC01A4 */ swc1 $f12, 0x1a4($sp) -.L7F0986EC: -/* 0CD21C 7F0986EC 460E003C */ c.lt.s $f0, $f14 -/* 0CD220 7F0986F0 E7AE01A8 */ swc1 $f14, 0x1a8($sp) -/* 0CD224 7F0986F4 45000003 */ bc1f .L7F098704 -/* 0CD228 7F0986F8 00000000 */ nop -/* 0CD22C 7F0986FC 46007006 */ mov.s $f0, $f14 -/* 0CD230 7F098700 E7AE01A8 */ swc1 $f14, 0x1a8($sp) -.L7F098704: -/* 0CD234 7F098704 460A0002 */ mul.s $f0, $f0, $f10 -/* 0CD238 7F098708 4600103C */ c.lt.s $f2, $f0 -/* 0CD23C 7F09870C 00000000 */ nop -/* 0CD240 7F098710 45020005 */ bc1fl .L7F098728 -/* 0CD244 7F098714 E7A001A0 */ swc1 $f0, 0x1a0($sp) -/* 0CD248 7F098718 46001503 */ div.s $f20, $f2, $f0 -/* 0CD24C 7F09871C 10000003 */ b .L7F09872C -/* 0CD250 7F098720 E7A001A0 */ swc1 $f0, 0x1a0($sp) -/* 0CD254 7F098724 E7A001A0 */ swc1 $f0, 0x1a0($sp) -.L7F098728: -/* 0CD258 7F098728 46001506 */ mov.s $f20, $f2 -.L7F09872C: -/* 0CD25C 7F09872C C7A60220 */ lwc1 $f6, 0x220($sp) -/* 0CD260 7F098730 E7B40190 */ swc1 $f20, 0x190($sp) -/* 0CD264 7F098734 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CD268 7F098738 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD26C 7F09873C 00000000 */ nop -/* 0CD270 7F098740 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD274 7F098744 C7A80224 */ lwc1 $f8, 0x224($sp) -/* 0CD278 7F098748 AFA200E8 */ sw $v0, 0xe8($sp) -/* 0CD27C 7F09874C 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CD280 7F098750 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD284 7F098754 00000000 */ nop -/* 0CD288 7F098758 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD28C 7F09875C C7A40228 */ lwc1 $f4, 0x228($sp) -/* 0CD290 7F098760 AFA200E4 */ sw $v0, 0xe4($sp) -/* 0CD294 7F098764 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CD298 7F098768 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD29C 7F09876C 00000000 */ nop -/* 0CD2A0 7F098770 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD2A4 7F098774 C7AA02A0 */ lwc1 $f10, 0x2a0($sp) -/* 0CD2A8 7F098778 AFA200E0 */ sw $v0, 0xe0($sp) -/* 0CD2AC 7F09877C 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CD2B0 7F098780 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD2B4 7F098784 00000000 */ nop -/* 0CD2B8 7F098788 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD2BC 7F09878C C7A602A4 */ lwc1 $f6, 0x2a4($sp) -/* 0CD2C0 7F098790 AFA200D8 */ sw $v0, 0xd8($sp) -/* 0CD2C4 7F098794 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CD2C8 7F098798 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD2CC 7F09879C 00000000 */ nop -/* 0CD2D0 7F0987A0 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD2D4 7F0987A4 C7A802A8 */ lwc1 $f8, 0x2a8($sp) -/* 0CD2D8 7F0987A8 AFA200D4 */ sw $v0, 0xd4($sp) -/* 0CD2DC 7F0987AC 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CD2E0 7F0987B0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD2E4 7F0987B4 00000000 */ nop -/* 0CD2E8 7F0987B8 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD2EC 7F0987BC C7A402C0 */ lwc1 $f4, 0x2c0($sp) -/* 0CD2F0 7F0987C0 AFA200D0 */ sw $v0, 0xd0($sp) -/* 0CD2F4 7F0987C4 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CD2F8 7F0987C8 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD2FC 7F0987CC 00000000 */ nop -/* 0CD300 7F0987D0 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD304 7F0987D4 C7AA02C4 */ lwc1 $f10, 0x2c4($sp) -/* 0CD308 7F0987D8 AFA200B8 */ sw $v0, 0xb8($sp) -/* 0CD30C 7F0987DC 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CD310 7F0987E0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD314 7F0987E4 00000000 */ nop -/* 0CD318 7F0987E8 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD31C 7F0987EC C7A602C8 */ lwc1 $f6, 0x2c8($sp) -/* 0CD320 7F0987F0 AFA200B4 */ sw $v0, 0xb4($sp) -/* 0CD324 7F0987F4 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CD328 7F0987F8 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD32C 7F0987FC 00000000 */ nop -/* 0CD330 7F098800 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD334 7F098804 C7A80240 */ lwc1 $f8, 0x240($sp) -/* 0CD338 7F098808 AFA200B0 */ sw $v0, 0xb0($sp) -/* 0CD33C 7F09880C 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CD340 7F098810 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD344 7F098814 00000000 */ nop -/* 0CD348 7F098818 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD34C 7F09881C C7A40244 */ lwc1 $f4, 0x244($sp) -/* 0CD350 7F098820 AFA200C8 */ sw $v0, 0xc8($sp) -/* 0CD354 7F098824 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CD358 7F098828 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD35C 7F09882C 00000000 */ nop -/* 0CD360 7F098830 C7B40190 */ lwc1 $f20, 0x190($sp) -/* 0CD364 7F098834 C7AA0248 */ lwc1 $f10, 0x248($sp) -/* 0CD368 7F098838 AFA200C4 */ sw $v0, 0xc4($sp) -/* 0CD36C 7F09883C 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CD370 7F098840 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CD374 7F098844 00000000 */ nop -/* 0CD378 7F098848 8FAD00E4 */ lw $t5, 0xe4($sp) -/* 0CD37C 7F09884C 8FAC00E8 */ lw $t4, 0xe8($sp) -/* 0CD380 7F098850 3C09FFFF */ lui $t1, 0xffff -/* 0CD384 7F098854 8FA600C4 */ lw $a2, 0xc4($sp) -/* 0CD388 7F098858 8FBF00E0 */ lw $ra, 0xe0($sp) -/* 0CD38C 7F09885C 3C0EB400 */ lui $t6, 0xb400 -/* 0CD390 7F098860 01A9C024 */ and $t8, $t5, $t1 -/* 0CD394 7F098864 0018CC02 */ srl $t9, $t8, 0x10 -/* 0CD398 7F098868 AE0E0000 */ sw $t6, ($s0) -/* 0CD39C 7F09886C 01897824 */ and $t7, $t4, $t1 -/* 0CD3A0 7F098870 01F97025 */ or $t6, $t7, $t9 -/* 0CD3A4 7F098874 26040008 */ addiu $a0, $s0, 8 -/* 0CD3A8 7F098878 AE0E0004 */ sw $t6, 4($s0) -/* 0CD3AC 7F09887C 3C18B200 */ lui $t8, 0xb200 -/* 0CD3B0 7F098880 03E97824 */ and $t7, $ra, $t1 -/* 0CD3B4 7F098884 AC8F0004 */ sw $t7, 4($a0) -/* 0CD3B8 7F098888 AC980000 */ sw $t8, ($a0) -/* 0CD3BC 7F09888C 24850008 */ addiu $a1, $a0, 8 -/* 0CD3C0 7F098890 3C19B400 */ lui $t9, 0xb400 -/* 0CD3C4 7F098894 ACB90000 */ sw $t9, ($a1) -/* 0CD3C8 7F098898 8FAF00D4 */ lw $t7, 0xd4($sp) -/* 0CD3CC 7F09889C 8FAE00D8 */ lw $t6, 0xd8($sp) -/* 0CD3D0 7F0988A0 24A70008 */ addiu $a3, $a1, 8 -/* 0CD3D4 7F0988A4 01E9C824 */ and $t9, $t7, $t1 -/* 0CD3D8 7F0988A8 01C9C024 */ and $t8, $t6, $t1 -/* 0CD3DC 7F0988AC 00197402 */ srl $t6, $t9, 0x10 -/* 0CD3E0 7F0988B0 030E7825 */ or $t7, $t8, $t6 -/* 0CD3E4 7F0988B4 ACAF0004 */ sw $t7, 4($a1) -/* 0CD3E8 7F0988B8 8FAB00D0 */ lw $t3, 0xd0($sp) -/* 0CD3EC 7F0988BC 3C19B200 */ lui $t9, 0xb200 -/* 0CD3F0 7F0988C0 ACF90000 */ sw $t9, ($a3) -/* 0CD3F4 7F0988C4 0169C024 */ and $t8, $t3, $t1 -/* 0CD3F8 7F0988C8 ACF80004 */ sw $t8, 4($a3) -/* 0CD3FC 7F0988CC 24E30008 */ addiu $v1, $a3, 8 -/* 0CD400 7F0988D0 3C0EB400 */ lui $t6, 0xb400 -/* 0CD404 7F0988D4 AC6E0000 */ sw $t6, ($v1) -/* 0CD408 7F0988D8 31B8FFFF */ andi $t8, $t5, 0xffff -/* 0CD40C 7F0988DC 000CCC00 */ sll $t9, $t4, 0x10 -/* 0CD410 7F0988E0 03387025 */ or $t6, $t9, $t8 -/* 0CD414 7F0988E4 AC6E0004 */ sw $t6, 4($v1) -/* 0CD418 7F0988E8 24700008 */ addiu $s0, $v1, 8 -/* 0CD41C 7F0988EC 3C0FB200 */ lui $t7, 0xb200 -/* 0CD420 7F0988F0 001FC400 */ sll $t8, $ra, 0x10 -/* 0CD424 7F0988F4 AE180004 */ sw $t8, 4($s0) -/* 0CD428 7F0988F8 AE0F0000 */ sw $t7, ($s0) -/* 0CD42C 7F0988FC 26080008 */ addiu $t0, $s0, 8 -/* 0CD430 7F098900 3C0EB400 */ lui $t6, 0xb400 -/* 0CD434 7F098904 AD0E0000 */ sw $t6, ($t0) -/* 0CD438 7F098908 8FAE00D4 */ lw $t6, 0xd4($sp) -/* 0CD43C 7F09890C 8FB900D8 */ lw $t9, 0xd8($sp) -/* 0CD440 7F098910 8FA700C8 */ lw $a3, 0xc8($sp) -/* 0CD444 7F098914 31CFFFFF */ andi $t7, $t6, 0xffff -/* 0CD448 7F098918 0019C400 */ sll $t8, $t9, 0x10 -/* 0CD44C 7F09891C 030FC825 */ or $t9, $t8, $t7 -/* 0CD450 7F098920 AD190004 */ sw $t9, 4($t0) -/* 0CD454 7F098924 25030008 */ addiu $v1, $t0, 8 -/* 0CD458 7F098928 3C0EB200 */ lui $t6, 0xb200 -/* 0CD45C 7F09892C 000B7C00 */ sll $t7, $t3, 0x10 -/* 0CD460 7F098930 AC6F0004 */ sw $t7, 4($v1) -/* 0CD464 7F098934 AC6E0000 */ sw $t6, ($v1) -/* 0CD468 7F098938 24640008 */ addiu $a0, $v1, 8 -/* 0CD46C 7F09893C 3C19B400 */ lui $t9, 0xb400 -/* 0CD470 7F098940 00C9C024 */ and $t8, $a2, $t1 -/* 0CD474 7F098944 00187C02 */ srl $t7, $t8, 0x10 -/* 0CD478 7F098948 AC990000 */ sw $t9, ($a0) -/* 0CD47C 7F09894C 00E97024 */ and $t6, $a3, $t1 -/* 0CD480 7F098950 01CFC825 */ or $t9, $t6, $t7 -/* 0CD484 7F098954 AC990004 */ sw $t9, 4($a0) -/* 0CD488 7F098958 24850008 */ addiu $a1, $a0, 8 -/* 0CD48C 7F09895C 00497024 */ and $t6, $v0, $t1 -/* 0CD490 7F098960 3C18B200 */ lui $t8, 0xb200 -/* 0CD494 7F098964 ACB80000 */ sw $t8, ($a1) -/* 0CD498 7F098968 ACAE0004 */ sw $t6, 4($a1) -/* 0CD49C 7F09896C 8FA800B4 */ lw $t0, 0xb4($sp) -/* 0CD4A0 7F098970 8FAC00B8 */ lw $t4, 0xb8($sp) -/* 0CD4A4 7F098974 00405025 */ move $t2, $v0 -/* 0CD4A8 7F098978 24B00008 */ addiu $s0, $a1, 8 -/* 0CD4AC 7F09897C 8FAB00B0 */ lw $t3, 0xb0($sp) -/* 0CD4B0 7F098980 02001025 */ move $v0, $s0 -/* 0CD4B4 7F098984 3C0FB400 */ lui $t7, 0xb400 -/* 0CD4B8 7F098988 0109C024 */ and $t8, $t0, $t1 -/* 0CD4BC 7F09898C 00187402 */ srl $t6, $t8, 0x10 -/* 0CD4C0 7F098990 AC4F0000 */ sw $t7, ($v0) -/* 0CD4C4 7F098994 0189C824 */ and $t9, $t4, $t1 -/* 0CD4C8 7F098998 032E7825 */ or $t7, $t9, $t6 -/* 0CD4CC 7F09899C AC4F0004 */ sw $t7, 4($v0) -/* 0CD4D0 7F0989A0 26030008 */ addiu $v1, $s0, 8 -/* 0CD4D4 7F0989A4 3C18B200 */ lui $t8, 0xb200 -/* 0CD4D8 7F0989A8 0169C824 */ and $t9, $t3, $t1 -/* 0CD4DC 7F0989AC AC790004 */ sw $t9, 4($v1) -/* 0CD4E0 7F0989B0 AC780000 */ sw $t8, ($v1) -/* 0CD4E4 7F0989B4 24700008 */ addiu $s0, $v1, 8 -/* 0CD4E8 7F0989B8 3C0EB400 */ lui $t6, 0xb400 -/* 0CD4EC 7F0989BC AE0E0000 */ sw $t6, ($s0) -/* 0CD4F0 7F0989C0 30D9FFFF */ andi $t9, $a2, 0xffff -/* 0CD4F4 7F0989C4 0007C400 */ sll $t8, $a3, 0x10 -/* 0CD4F8 7F0989C8 03197025 */ or $t6, $t8, $t9 -/* 0CD4FC 7F0989CC AE0E0004 */ sw $t6, 4($s0) -/* 0CD500 7F0989D0 26050008 */ addiu $a1, $s0, 8 -/* 0CD504 7F0989D4 000ACC00 */ sll $t9, $t2, 0x10 -/* 0CD508 7F0989D8 ACB90004 */ sw $t9, 4($a1) -/* 0CD50C 7F0989DC 3C0FB200 */ lui $t7, 0xb200 -/* 0CD510 7F0989E0 ACAF0000 */ sw $t7, ($a1) -/* 0CD514 7F0989E4 24A30008 */ addiu $v1, $a1, 8 -/* 0CD518 7F0989E8 3C0EB400 */ lui $t6, 0xb400 -/* 0CD51C 7F0989EC AC6E0000 */ sw $t6, ($v1) -/* 0CD520 7F0989F0 3119FFFF */ andi $t9, $t0, 0xffff -/* 0CD524 7F0989F4 000CC400 */ sll $t8, $t4, 0x10 -/* 0CD528 7F0989F8 03197025 */ or $t6, $t8, $t9 -/* 0CD52C 7F0989FC 24640008 */ addiu $a0, $v1, 8 -/* 0CD530 7F098A00 AC6E0004 */ sw $t6, 4($v1) -/* 0CD534 7F098A04 3C0FB300 */ lui $t7, 0xb300 -/* 0CD538 7F098A08 000BCC00 */ sll $t9, $t3, 0x10 -/* 0CD53C 7F098A0C AC990004 */ sw $t9, 4($a0) -/* 0CD540 7F098A10 AC8F0000 */ sw $t7, ($a0) -/* 0CD544 7F098A14 24820008 */ addiu $v0, $a0, 8 -.L7F098A18: -/* 0CD548 7F098A18 8FBF0024 */ lw $ra, 0x24($sp) -/* 0CD54C 7F098A1C D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0CD550 7F098A20 8FB00020 */ lw $s0, 0x20($sp) -/* 0CD554 7F098A24 03E00008 */ jr $ra -/* 0CD558 7F098A28 27BD0488 */ addiu $sp, $sp, 0x488 -) -#endif +Gfx *sub_GAME_7F098A2C(Gfx *gdl, SkyRelated38 *arg1, SkyRelated38 *arg2, SkyRelated38 *arg3, SkyRelated38 *arg4, f32 arg5) +{ + SkyRelated38 *sp4cc; + SkyRelated38 *sp4c8; + SkyRelated38 *sp4c4; + s32 i; + u32 stack; + f32 sp4b8; + f32 sp4b4; + f32 sp4b0; + f32 sp4ac; + f32 sp4a8; + f32 sp4a4; + f32 sp4a0[1]; + f32 sp49c[1]; + f32 sp498[1]; + f32 sp494[1]; + f32 sp490[1]; + f32 sp48c[1]; + f32 sp488; + f32 sp484; + f32 sp480[1]; + f32 sp47c[1]; + f32 sp478[1]; + f32 sp474[1]; + f32 sp470[1]; + f32 sp46c[1]; + f32 sp468[1]; + f32 sp464[1]; + SkyRelated38 *swap1; + SkyRelated38 *swap2; + SkyRelated38 *swap3; + f32 sp454[1]; + u32 stack07; + f32 sp44c[1]; + u32 stack08; + u32 stack09; + f32 sp440[1]; + f32 sp43c[1]; + f32 sp438[1]; + f32 sp434[1]; + f32 sp430[1]; + f32 sp42c[1]; + f32 sp428[1]; + f32 sp424[1]; + f32 sp420[1]; + f32 sp41c[1]; + f32 sp418[1]; + f32 sp414[1]; + f32 sp410[1]; + f32 sp40c[1]; + f32 sp408[1]; + f32 sp404[1]; + f32 sp400[1]; + f32 sp3fc[1]; + f32 sp3f8[1]; + f32 sp3f4[1]; + f32 sp3f0[1]; + f32 sp3ec[1]; + f32 sp3e8[1]; + f32 sp3e4[1]; + f32 sp3e0[1]; + f32 sp3dc[1]; + f32 sp3d8[1]; + f32 sp3d4[1]; + f32 sp3d0[1]; + f32 sp3cc[1]; + f32 sp3c8[1]; + f32 sp3c4[1]; + f32 sp3c0; + f32 sp3bc[1]; + f32 sp3b8[1]; + f32 sp3b4[1]; + f32 sp3b0[1]; + f32 sp3ac; + f32 sp3a8[1]; + f32 sp3a4[1]; + f32 sp3a0[1]; + f32 sp39c[1]; + f32 sp398[1]; + f32 sp394[1]; + f32 sp390[1]; + f32 sp38c[1]; + f32 sp388[1]; + f32 sp384[1]; + f32 sp380[1]; + f32 sp37c[1]; + f32 sp378[1]; + f32 sp374[1]; + f32 sp370[1]; + f32 sp36c[1]; + f32 sp368[1]; + f32 sp364[1]; + f32 sp354[4]; + f32 sp334[8]; + f32 sp314[8]; + f32 sp2f4[8]; + f32 sp2d4[8]; + f32 sp2b4[8]; + f32 sp294[8]; + f32 sp274[8]; + f32 sp254[8]; + u32 stack10; + u32 stack11; + u32 stack12; + u32 stack13; + u32 stack00; + f32 sp23c[1]; + f32 sp238[1]; + f32 sp234[1]; + f32 sp214[8]; + f32 sp1f4[8]; + u32 stack03; + u32 stack04; + u32 stack05; + u32 stack06; + u32 stack15; + f32 sp1dc[1]; + f32 sp1d8[1]; + f32 sp1d4[1]; + u32 stack01; + u32 stack02; + u32 stack14; + f32 sp1c4[1]; + u32 stack16; + if (sub_GAME_7F0977B4(arg1, arg2) + || sub_GAME_7F0977B4(arg2, arg3) + || sub_GAME_7F0977B4(arg3, arg1) + || sub_GAME_7F0977B4(arg4, arg1) + || sub_GAME_7F0977B4(arg4, arg2) + || sub_GAME_7F0977B4(arg4, arg3)) + { + return gdl; + } + sp3c0 = arg5 / 65536.0f; -#ifdef NONMATCHING -void sub_GAME_7F098A2C(void) { + sp4b8 = arg2->unk28 - arg1->unk28; + sp4b4 = arg2->unk2c - arg1->unk2c; + sp4b0 = arg3->unk28 - arg1->unk28; + sp4ac = arg3->unk2c - arg1->unk2c; + sp488 = ((sp4b0 * sp4b4) - (sp4b8 * sp4ac)) / 65536.0f; + + sp484 = 1.0f / sp488; + + sp4cc = arg1; + sp4c8 = arg2; + sp4c4 = arg3; + + if (sp4c8->unk2c < sp4cc->unk2c) + { + swap1 = sp4c8; + sp4c8 = sp4cc; + sp4cc = swap1; + + sp488 *= -1.0f; + sp484 *= -1.0f; + } + + if (sp4c4->unk2c < sp4c8->unk2c) + { + swap2 = sp4c8; + sp4c8 = sp4c4; + sp4c4 = swap2; + + sp488 *= -1.0f; + sp484 *= -1.0f; + } + + if (sp4c8->unk2c < sp4cc->unk2c) + { + swap3 = sp4c8; + sp4c8 = sp4cc; + sp4cc = swap3; + + sp488 *= -1.0f; + sp484 *= -1.0f; + } + + sp464[0] = sp4c8->unk28 * 0.25f; + sp468[0] = 0.0f; + sp46c[0] = sp4cc->unk28 * 0.25f; + sp470[0] = 0.0f; + sp474[0] = sp4cc->unk28 * 0.25f; + sp478[0] = 0.0f; + sp480[0] = 0.0f; + sp47c[0] = 0.0f; + + sp48c[0] = sp4c4->unk28; + sp490[0] = sp4c4->unk2c; + sp494[0] = sp4c8->unk28; + sp498[0] = sp4c8->unk2c; + sp49c[0] = sp4cc->unk28; + sp4a0[0] = sp4cc->unk2c; + + sp4b8 = sp494[0] - sp49c[0]; + sp4b4 = sp498[0] - sp4a0[0]; + sp4b0 = sp48c[0] - sp49c[0]; + sp4ac = sp490[0] - sp4a0[0]; + sp4a8 = sp48c[0] - sp494[0]; + sp4a4 = sp490[0] - sp498[0]; + + sp440[0] = 0.0f; + sp43c[0] = 0.0f; + sp420[0] = 0.0f; + sp41c[0] = 0.0f; + sp3e4[0] = 0.0f; + sp3ec[0] = 0.0f; + sp3f4[0] = 0.0f; + sp400[0] = 0.0f; + sp3fc[0] = 0.0f; + sp3c4[0] = 0.0f; + sp3cc[0] = 0.0f; + sp3d4[0] = 0.0f; + sp3e0[0] = 0.0f; + sp3dc[0] = 0.0f; + + sp424[0] = sp4a8 / 4.0f; + sp428[0] = sp4a4 / 4.0f; + sp42c[0] = sp4b8 / 4.0f; + sp430[0] = sp4b4 / 4.0f; + sp434[0] = sp4b0 / 4.0f; + sp438[0] = sp4ac / 4.0f; + + sp404[0] = sp4a8 * 4.0f; + sp408[0] = sp4a4 * 4.0f; + sp40c[0] = sp4b8 * 4.0f; + sp410[0] = sp4b4 * 4.0f; + sp414[0] = sp4b0 * 4.0f; + sp418[0] = sp4ac * 4.0f; + + sp3e8[0] = 4.0f / sp4a4; + sp3f0[0] = 4.0f / sp4b4; + sp3f8[0] = 4.0f / sp4ac; + + sp3c8[0] = sp4a8 / sp4a4; + sp3d0[0] = sp4b8 / sp4b4; + sp3d8[0] = sp4b0 / sp4ac; + + sp3c8[0] = skyClamp(sp3c8[0], -1878.0f, 1877.0f); + sp3d0[0] = skyClamp(sp3d0[0], -1878.0f, 1877.0f); + sp3d8[0] = skyClamp(sp3d8[0], -1878.0f, 1877.0f); + + sp44c[0] = sp46c[0]; + sp454[0] = sp474[0]; + + if (arg1->unk28 < arg2->unk28) + { + f32 sp1bc; + + if (arg3->unk2c - arg4->unk2c < 1.0f) + { + sp1bc = -1878.0f; + } + else + { + sp1bc = -(getPlayer_c_screenwidth() - 0.25f) / ((arg3->unk2c - arg4->unk2c) / 4.0f); + } + + gImmp1(gdl++, G_RDPHALF_1, (G_TRI_SHADE_TXTR << 24) | 0x00800000 | (s32) arg3->unk2c); + gImmp1(gdl++, G_RDPHALF_CONT, (s32) arg4->unk2c << 16 | (s32) arg1->unk2c); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(getPlayer_c_screenleft() + getPlayer_c_screenwidth() - 0.25f)); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(sp1bc)); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(getPlayer_c_screenleft())); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(0.0f)); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(getPlayer_c_screenleft() + getPlayer_c_screenwidth() - 0.25f)); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(0.0f)); + } + else + { + f32 sp198; + + if (arg3->unk2c - arg4->unk2c < 1.0f) + { + sp198 = 1877.0f; + } + else + { + sp198 = (getPlayer_c_screenwidth() - 0.25f) / ((arg3->unk2c - arg4->unk2c) / 4.0f); + } + + gImmp1(gdl++, G_RDPHALF_1, 0xce000000 | (s32) arg3->unk2c); + gImmp1(gdl++, G_RDPHALF_CONT, (s32) arg4->unk2c << 16 | (s32) arg1->unk2c); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(getPlayer_c_screenleft())); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(sp198)); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(getPlayer_c_screenleft() + getPlayer_c_screenwidth() - 0.25f)); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(0.0f)); + + gImmp1(gdl++, G_RDPHALF_1, sub_GAME_7F094298(getPlayer_c_screenleft())); + gImmp1(gdl++, G_RDPHALF_CONT, sub_GAME_7F094298(0.0f)); + } + + sp3b0[0] = sp4cc->unk0c * sp3c0; + sp3b4[0] = sp4c8->unk0c * sp3c0; + sp3b8[0] = sp4c4->unk0c * sp3c0; + sp3bc[0] = arg4->unk0c * sp3c0; + + sp3ac = sp3b0[0]; + + if (sp3b4[0] < sp3ac) { sp3ac = sp3b4[0]; } + if (sp3b8[0] < sp3ac) { sp3ac = sp3b8[0]; } + if (sp3bc[0] < sp3ac) { sp3ac = sp3bc[0]; } + + sp3ac *= 0.5f; + + sp39c[0] = sp4cc->unk34 * sp3ac; + sp3a0[0] = sp4c8->unk34 * sp3ac; + sp3a4[0] = sp4c4->unk34 * sp3ac; + sp3a8[0] = arg4->unk34 * sp3ac; + + sp36c[0] = sp39c[0] * sp4cc->unk20; + sp370[0] = sp39c[0] * sp4cc->unk24; + sp374[0] = sp39c[0] * 32767.0f; + sp378[0] = sp3a0[0] * sp4c8->unk20; + sp37c[0] = sp3a0[0] * sp4c8->unk24; + sp380[0] = sp3a0[0] * 32767.0f; + sp384[0] = sp3a4[0] * sp4c4->unk20; + sp388[0] = sp3a4[0] * sp4c4->unk24; + sp38c[0] = sp3a4[0] * 32767.0f; + sp390[0] = sp3a8[0] * arg4->unk20; + sp394[0] = sp3a8[0] * arg4->unk24; + sp398[0] = sp3a8[0] * 32767.0f; + + sp364[0] = SKYABS(sp36c[0]); + sp368[0] = SKYABS(sp370[0]); + + if (sp364[0] < SKYABS(sp378[0])) { sp364[0] = SKYABS(sp378[0]); } + if (sp368[0] < SKYABS(sp37c[0])) { sp368[0] = SKYABS(sp37c[0]); } + if (sp364[0] < SKYABS(sp384[0])) { sp364[0] = SKYABS(sp384[0]); } + if (sp368[0] < SKYABS(sp388[0])) { sp368[0] = SKYABS(sp388[0]); } + if (sp364[0] < SKYABS(sp390[0])) { sp364[0] = SKYABS(sp390[0]); } + if (sp368[0] < SKYABS(sp394[0])) { sp368[0] = SKYABS(sp394[0]); } + + sp354[0] = sp36c[0]; sp354[1] = sp370[0]; sp354[2] = sp374[0]; + sp334[0] = sp378[0]; sp334[1] = sp37c[0]; sp334[2] = sp380[0]; + sp314[0] = sp384[0]; sp314[1] = sp388[0]; sp314[2] = sp38c[0]; + + sp354[3] = sp4cc->unk30; + sp334[3] = sp4c8->unk30; + sp314[3] = sp4c4->unk30; + + for (i = 0; i < 4; i++) + { + sp2f4[i] = sp334[i] - sp354[i]; + sp2d4[i] = sp314[i] - sp354[i]; + } + + for (i = 0; i < 4; i++) + { + sp294[i] = ((sp2d4[i] * sp410[0]) - (sp2f4[i] * sp418[0])) / 65536.0f; + sp2b4[i] = ((sp2f4[i] * sp414[0]) - (sp2d4[i] * sp40c[0])) / 65536.0f; + sp2d4[i] = sp294[i] * sp484; + sp2f4[i] = sp2b4[i] * sp484; + sp274[i] = sp2b4[i] * sp484; + sp254[i] = sp354[i]; + } + + { + f32 mult = arg4->unk2c / arg3->unk2c; + + f32 sp170 = arg4->r + ((arg1->r - arg3->r) * mult); + f32 sp16c = arg4->g + ((arg1->g - arg3->g) * mult); + f32 sp168 = arg4->b + ((arg1->b - arg3->b) * mult); + f32 sp164 = arg4->a + ((arg1->a - arg3->a) * mult); + + u32 sp160 = arg1->r * 65536.0f; + u32 sp15c = arg1->g * 65536.0f; + u32 sp158 = arg1->b * 65536.0f; + u32 sp154 = arg1->a * 65536.0f; + + u32 sp150 = sub_GAME_7F094298((sp170 - arg1->r) / ((arg2->unk28 - arg1->unk28) * 0.25f)); + u32 sp14c = sub_GAME_7F094298((sp16c - arg1->g) / ((arg2->unk28 - arg1->unk28) * 0.25f)); + u32 sp148 = sub_GAME_7F094298((sp168 - arg1->b) / ((arg2->unk28 - arg1->unk28) * 0.25f)); + u32 sp144 = sub_GAME_7F094298((sp164 - arg1->a) / ((arg2->unk28 - arg1->unk28) * 0.25f)); + + u32 sp140; + u32 sp13c; + u32 sp138; + u32 sp134; + u32 sp130; + u32 sp12c; + u32 sp128; + u32 sp124; + + sp140 = sp130 = sub_GAME_7F094298((arg3->r - arg1->r) / ((arg3->unk2c - arg1->unk2c) * 0.25f)); + sp13c = sp12c = sub_GAME_7F094298((arg3->g - arg1->g) / ((arg3->unk2c - arg1->unk2c) * 0.25f)); + sp138 = sp128 = sub_GAME_7F094298((arg3->b - arg1->b) / ((arg3->unk2c - arg1->unk2c) * 0.25f)); + sp124 = sp134 = sub_GAME_7F094298((arg3->a - arg1->a) / ((arg3->unk2c - arg1->unk2c) * 0.25f)); + + gImmp1(gdl++, G_RDPHALF_1, (sp160 & 0xffff0000) | (sp15c & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp158 & 0xffff0000) | (sp154 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp150 & 0xffff0000) | (sp14c & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp148 & 0xffff0000) | (sp144 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp160 & 0x0000ffff) << 16 | (sp15c & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp158 & 0x0000ffff) << 16 | (sp154 & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (sp150 & 0x0000ffff) << 16 | (sp14c & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp148 & 0x0000ffff) << 16 | (sp144 & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (sp140 & 0xffff0000) | (sp13c & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp138 & 0xffff0000) | (sp134 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp130 & 0xffff0000) | (sp12c & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (sp128 & 0xffff0000) | (sp124 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (sp140 & 0x0000ffff) << 16 | (sp13c & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp138 & 0x0000ffff) << 16 | (sp134 & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (sp130 & 0x0000ffff) << 16 | (sp12c & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (sp128 & 0x0000ffff) << 16 | (sp124 & 0x0000ffff)); + } + + sp234[0] = sp364[0] / 32.0f; + sp238[0] = sp368[0] / 32.0f; + sp23c[0] = sp3ac / 32.0f; + + for (i = 0; i < 4; i++) + { + sp214[i] = SKYABS(sp2d4[i]) / 32.0f; + sp1f4[i] = SKYABS(sp2f4[i]) / 32.0f; + } + + sp1d4[0] = sp234[0] + (2 * sp214[0]) + sp1f4[0]; + sp1d8[0] = sp238[0] + (2 * sp214[1]) + sp1f4[1]; + sp1dc[0] = sp23c[0] + (2 * sp214[2]) + sp1f4[2]; + + if (sp1d4[0] < sp1d8[0]) { sp1d4[0] = sp1d8[0]; } + if (sp1d4[0] < sp1dc[0]) { sp1d4[0] = sp1dc[0]; } + + sp1d4[0] *= (1.0f / 1024.0f); + + if (sp1d4[0] > 1.0f) + { + sp1c4[0] = 1.0f / sp1d4[0]; + } + else + { + sp1c4[0] = 1.0f; + } + + { + u32 spe0; + u32 spdc; + u32 spd8; + u32 spd4; + u32 spd0; + u32 spcc; + u32 spc8; + u32 spc4; + u32 spc0; + u32 spbc; + u32 spb8; + u32 spb4; + u32 spb0; + u32 spac; + u32 spa8; + u32 spa4; + + spe0 = sub_GAME_7F094298(sp254[0] * sp1c4[0]); + spdc = sub_GAME_7F094298(sp254[1] * sp1c4[0]); + spd8 = sub_GAME_7F094298(sp254[2] * sp1c4[0]); + spd4 = sub_GAME_7F094298(sp254[3] * sp1c4[0]); + + spd0 = sub_GAME_7F094298(sp2d4[0] * sp1c4[0]); + spcc = sub_GAME_7F094298(sp2d4[1] * sp1c4[0]); + spc8 = sub_GAME_7F094298(sp2d4[2] * sp1c4[0]); + spc4 = sub_GAME_7F094298(sp2d4[3] * sp1c4[0]); + + spb0 = sub_GAME_7F094298(sp2f4[0] * sp1c4[0]); + spac = sub_GAME_7F094298(sp2f4[1] * sp1c4[0]); + spa8 = sub_GAME_7F094298(sp2f4[2] * sp1c4[0]); + spa4 = sub_GAME_7F094298(sp2f4[3] * sp1c4[0]); + + spc0 = sub_GAME_7F094298(sp274[0] * sp1c4[0]); + spbc = sub_GAME_7F094298(sp274[1] * sp1c4[0]); + spb8 = sub_GAME_7F094298(sp274[2] * sp1c4[0]); + spb4 = sub_GAME_7F094298(sp274[3] * sp1c4[0]); + + gImmp1(gdl++, G_RDPHALF_1, (spe0 & 0xffff0000) | (spdc & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spd8 & 0xffff0000) | (spd4 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spd0 & 0xffff0000) | (spcc & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spc8 & 0xffff0000) | (spc4 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spe0 & 0x0000ffff) << 16 | (spdc & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (spd8 & 0x0000ffff) << 16 | (spd4 & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (spd0 & 0x0000ffff) << 16 | (spcc & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (spc8 & 0x0000ffff) << 16 | (spc4 & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (spc0 & 0xffff0000) | (spbc & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spb8 & 0xffff0000) | (spb4 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spb0 & 0xffff0000) | (spac & 0xffff0000) >> 16); + gImmp1(gdl++, G_RDPHALF_CONT, (spa8 & 0xffff0000) | (spa4 & 0xffff0000) >> 16); + + gImmp1(gdl++, G_RDPHALF_1, (spc0 & 0x0000ffff) << 16 | (spbc & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_CONT, (spb8 & 0x0000ffff) << 16 | (spb4 & 0x0000ffff)); + + gImmp1(gdl++, G_RDPHALF_1, (spb0 & 0x0000ffff) << 16 | (spac & 0x0000ffff)); + gImmp1(gdl++, G_RDPHALF_2, (spa8 & 0x0000ffff) << 16 | (spa4 & 0x0000ffff)); + } + + return gdl; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800575F8 -.word 0xc4eac000 /*-1878.0*/ -glabel D_800575FC -.word 0xc4eac000 /*-1878.0*/ -glabel D_80057600 -.word 0xc4eac000 /*-1878.0*/ -glabel D_80057604 -.word 0xc4eac000 /*-1878.0*/ -glabel D_80057608 -.word 0x44eaa000 /*1877.0*/ -glabel D_8005760C -.word 0x46fffe00 /*32767.0*/ -.text -glabel sub_GAME_7F098A2C -/* 0CD55C 7F098A2C 27BDFB30 */ addiu $sp, $sp, -0x4d0 -/* 0CD560 7F098A30 AFB00020 */ sw $s0, 0x20($sp) -/* 0CD564 7F098A34 00808025 */ move $s0, $a0 -/* 0CD568 7F098A38 AFBF0024 */ sw $ra, 0x24($sp) -/* 0CD56C 7F098A3C AFA504D4 */ sw $a1, 0x4d4($sp) -/* 0CD570 7F098A40 00A02025 */ move $a0, $a1 -/* 0CD574 7F098A44 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0CD578 7F098A48 AFA604D8 */ sw $a2, 0x4d8($sp) -/* 0CD57C 7F098A4C AFA704DC */ sw $a3, 0x4dc($sp) -/* 0CD580 7F098A50 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CD584 7F098A54 00C02825 */ move $a1, $a2 -/* 0CD588 7F098A58 14400015 */ bnez $v0, .L7F098AB0 -/* 0CD58C 7F098A5C 8FA404D8 */ lw $a0, 0x4d8($sp) -/* 0CD590 7F098A60 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CD594 7F098A64 8FA504DC */ lw $a1, 0x4dc($sp) -/* 0CD598 7F098A68 14400011 */ bnez $v0, .L7F098AB0 -/* 0CD59C 7F098A6C 8FA404DC */ lw $a0, 0x4dc($sp) -/* 0CD5A0 7F098A70 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CD5A4 7F098A74 8FA504D4 */ lw $a1, 0x4d4($sp) -/* 0CD5A8 7F098A78 1440000D */ bnez $v0, .L7F098AB0 -/* 0CD5AC 7F098A7C 8FA404E0 */ lw $a0, 0x4e0($sp) -/* 0CD5B0 7F098A80 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CD5B4 7F098A84 8FA504D4 */ lw $a1, 0x4d4($sp) -/* 0CD5B8 7F098A88 14400009 */ bnez $v0, .L7F098AB0 -/* 0CD5BC 7F098A8C 8FA404E0 */ lw $a0, 0x4e0($sp) -/* 0CD5C0 7F098A90 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CD5C4 7F098A94 8FA504D8 */ lw $a1, 0x4d8($sp) -/* 0CD5C8 7F098A98 14400005 */ bnez $v0, .L7F098AB0 -/* 0CD5CC 7F098A9C 8FA404E0 */ lw $a0, 0x4e0($sp) -/* 0CD5D0 7F098AA0 0FC25DED */ jal sub_GAME_7F0977B4 -/* 0CD5D4 7F098AA4 8FA504DC */ lw $a1, 0x4dc($sp) -/* 0CD5D8 7F098AA8 10400003 */ beqz $v0, .L7F098AB8 -/* 0CD5DC 7F098AAC C7A404E4 */ lwc1 $f4, 0x4e4($sp) -.L7F098AB0: -/* 0CD5E0 7F098AB0 10000606 */ b .L7F09A2CC -/* 0CD5E4 7F098AB4 02001025 */ move $v0, $s0 -.L7F098AB8: -/* 0CD5E8 7F098AB8 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CD5EC 7F098ABC 44813000 */ mtc1 $at, $f6 -/* 0CD5F0 7F098AC0 8FA304D4 */ lw $v1, 0x4d4($sp) -/* 0CD5F4 7F098AC4 8FA404DC */ lw $a0, 0x4dc($sp) -/* 0CD5F8 7F098AC8 46062203 */ div.s $f8, $f4, $f6 -/* 0CD5FC 7F098ACC 8FA904D8 */ lw $t1, 0x4d8($sp) -/* 0CD600 7F098AD0 00603825 */ move $a3, $v1 -/* 0CD604 7F098AD4 00804025 */ move $t0, $a0 -/* 0CD608 7F098AD8 01202825 */ move $a1, $t1 -/* 0CD60C 7F098ADC E7A803C0 */ swc1 $f8, 0x3c0($sp) -/* 0CD610 7F098AE0 C46C0028 */ lwc1 $f12, 0x28($v1) -/* 0CD614 7F098AE4 C4840028 */ lwc1 $f4, 0x28($a0) -/* 0CD618 7F098AE8 C460002C */ lwc1 $f0, 0x2c($v1) -/* 0CD61C 7F098AEC C52E002C */ lwc1 $f14, 0x2c($t1) -/* 0CD620 7F098AF0 460C2181 */ sub.s $f6, $f4, $f12 -/* 0CD624 7F098AF4 C52A0028 */ lwc1 $f10, 0x28($t1) -/* 0CD628 7F098AF8 46007081 */ sub.s $f2, $f14, $f0 -/* 0CD62C 7F098AFC E7A604B0 */ swc1 $f6, 0x4b0($sp) -/* 0CD630 7F098B00 C494002C */ lwc1 $f20, 0x2c($a0) -/* 0CD634 7F098B04 C7A804B0 */ lwc1 $f8, 0x4b0($sp) -/* 0CD638 7F098B08 460C5481 */ sub.s $f18, $f10, $f12 -/* 0CD63C 7F098B0C 46024282 */ mul.s $f10, $f8, $f2 -/* 0CD640 7F098B10 4600A401 */ sub.s $f16, $f20, $f0 -/* 0CD644 7F098B14 44814000 */ mtc1 $at, $f8 -/* 0CD648 7F098B18 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CD64C 7F098B1C 46109102 */ mul.s $f4, $f18, $f16 -/* 0CD650 7F098B20 4600703C */ c.lt.s $f14, $f0 -/* 0CD654 7F098B24 46045181 */ sub.s $f6, $f10, $f4 -/* 0CD658 7F098B28 44812000 */ mtc1 $at, $f4 -/* 0CD65C 7F098B2C 46083283 */ div.s $f10, $f6, $f8 -/* 0CD660 7F098B30 460A2183 */ div.s $f6, $f4, $f10 -/* 0CD664 7F098B34 E7AA0054 */ swc1 $f10, 0x54($sp) -/* 0CD668 7F098B38 E7AA0488 */ swc1 $f10, 0x488($sp) -/* 0CD66C 7F098B3C E7A60050 */ swc1 $f6, 0x50($sp) -/* 0CD670 7F098B40 4500000A */ bc1f .L7F098B6C -/* 0CD674 7F098B44 E7A60484 */ swc1 $f6, 0x484($sp) -/* 0CD678 7F098B48 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CD67C 7F098B4C 44811000 */ mtc1 $at, $f2 -/* 0CD680 7F098B50 00602825 */ move $a1, $v1 -/* 0CD684 7F098B54 01203825 */ move $a3, $t1 -/* 0CD688 7F098B58 46025302 */ mul.s $f12, $f10, $f2 -/* 0CD68C 7F098B5C 00000000 */ nop -/* 0CD690 7F098B60 46023382 */ mul.s $f14, $f6, $f2 -/* 0CD694 7F098B64 E7AC0488 */ swc1 $f12, 0x488($sp) -/* 0CD698 7F098B68 E7AE0484 */ swc1 $f14, 0x484($sp) -.L7F098B6C: -/* 0CD69C 7F098B6C C4A0002C */ lwc1 $f0, 0x2c($a1) -/* 0CD6A0 7F098B70 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CD6A4 7F098B74 44811000 */ mtc1 $at, $f2 -/* 0CD6A8 7F098B78 4600A03C */ c.lt.s $f20, $f0 -/* 0CD6AC 7F098B7C C7AC0488 */ lwc1 $f12, 0x488($sp) -/* 0CD6B0 7F098B80 C7AE0484 */ lwc1 $f14, 0x484($sp) -/* 0CD6B4 7F098B84 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0CD6B8 7F098B88 45020006 */ bc1fl .L7F098BA4 -/* 0CD6BC 7F098B8C E7AE0484 */ swc1 $f14, 0x484($sp) -/* 0CD6C0 7F098B90 00A04025 */ move $t0, $a1 -/* 0CD6C4 7F098B94 46027382 */ mul.s $f14, $f14, $f2 -/* 0CD6C8 7F098B98 00802825 */ move $a1, $a0 -/* 0CD6CC 7F098B9C C480002C */ lwc1 $f0, 0x2c($a0) -/* 0CD6D0 7F098BA0 E7AE0484 */ swc1 $f14, 0x484($sp) -.L7F098BA4: -/* 0CD6D4 7F098BA4 C4E8002C */ lwc1 $f8, 0x2c($a3) -/* 0CD6D8 7F098BA8 4608003C */ c.lt.s $f0, $f8 -/* 0CD6DC 7F098BAC 44810000 */ mtc1 $at, $f0 -/* 0CD6E0 7F098BB0 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CD6E4 7F098BB4 44815000 */ mtc1 $at, $f10 -/* 0CD6E8 7F098BB8 45020007 */ bc1fl .L7F098BD8 -/* 0CD6EC 7F098BBC C4A40028 */ lwc1 $f4, 0x28($a1) -/* 0CD6F0 7F098BC0 46027382 */ mul.s $f14, $f14, $f2 -/* 0CD6F4 7F098BC4 00A01025 */ move $v0, $a1 -/* 0CD6F8 7F098BC8 00E02825 */ move $a1, $a3 -/* 0CD6FC 7F098BCC 00403825 */ move $a3, $v0 -/* 0CD700 7F098BD0 E7AE0484 */ swc1 $f14, 0x484($sp) -/* 0CD704 7F098BD4 C4A40028 */ lwc1 $f4, 0x28($a1) -.L7F098BD8: -/* 0CD708 7F098BD8 4480A000 */ mtc1 $zero, $f20 -/* 0CD70C 7F098BDC 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea -/* 0CD710 7F098BE0 460A2182 */ mul.s $f6, $f4, $f10 -/* 0CD714 7F098BE4 E7B40468 */ swc1 $f20, 0x468($sp) -/* 0CD718 7F098BE8 44812000 */ mtc1 $at, $f4 -/* 0CD71C 7F098BEC 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CD720 7F098BF0 E7A60464 */ swc1 $f6, 0x464($sp) -/* 0CD724 7F098BF4 C4E80028 */ lwc1 $f8, 0x28($a3) -/* 0CD728 7F098BF8 E7B40470 */ swc1 $f20, 0x470($sp) -/* 0CD72C 7F098BFC 46044282 */ mul.s $f10, $f8, $f4 -/* 0CD730 7F098C00 44814000 */ mtc1 $at, $f8 -/* 0CD734 7F098C04 E7AA046C */ swc1 $f10, 0x46c($sp) -/* 0CD738 7F098C08 C4E60028 */ lwc1 $f6, 0x28($a3) -/* 0CD73C 7F098C0C E7B40478 */ swc1 $f20, 0x478($sp) -/* 0CD740 7F098C10 E7B40480 */ swc1 $f20, 0x480($sp) -/* 0CD744 7F098C14 46083102 */ mul.s $f4, $f6, $f8 -/* 0CD748 7F098C18 E7B4047C */ swc1 $f20, 0x47c($sp) -/* 0CD74C 7F098C1C E7A40474 */ swc1 $f4, 0x474($sp) -/* 0CD750 7F098C20 C50A0028 */ lwc1 $f10, 0x28($t0) -/* 0CD754 7F098C24 E7AA048C */ swc1 $f10, 0x48c($sp) -/* 0CD758 7F098C28 C506002C */ lwc1 $f6, 0x2c($t0) -/* 0CD75C 7F098C2C E7A60490 */ swc1 $f6, 0x490($sp) -/* 0CD760 7F098C30 C4A80028 */ lwc1 $f8, 0x28($a1) -/* 0CD764 7F098C34 E7A80494 */ swc1 $f8, 0x494($sp) -/* 0CD768 7F098C38 C4A4002C */ lwc1 $f4, 0x2c($a1) -/* 0CD76C 7F098C3C C7A80494 */ lwc1 $f8, 0x494($sp) -/* 0CD770 7F098C40 E7A40498 */ swc1 $f4, 0x498($sp) -/* 0CD774 7F098C44 C4EA0028 */ lwc1 $f10, 0x28($a3) -/* 0CD778 7F098C48 E7AA049C */ swc1 $f10, 0x49c($sp) -/* 0CD77C 7F098C4C C4E6002C */ lwc1 $f6, 0x2c($a3) -/* 0CD780 7F098C50 C7AA0498 */ lwc1 $f10, 0x498($sp) -/* 0CD784 7F098C54 C7A4049C */ lwc1 $f4, 0x49c($sp) -/* 0CD788 7F098C58 E7A604A0 */ swc1 $f6, 0x4a0($sp) -/* 0CD78C 7F098C5C C7A604A0 */ lwc1 $f6, 0x4a0($sp) -/* 0CD790 7F098C60 E7AA002C */ swc1 $f10, 0x2c($sp) -/* 0CD794 7F098C64 E7A80028 */ swc1 $f8, 0x28($sp) -/* 0CD798 7F098C68 46065081 */ sub.s $f2, $f10, $f6 -/* 0CD79C 7F098C6C C7AA0490 */ lwc1 $f10, 0x490($sp) -/* 0CD7A0 7F098C70 AFA804C4 */ sw $t0, 0x4c4($sp) -/* 0CD7A4 7F098C74 46044481 */ sub.s $f18, $f8, $f4 -/* 0CD7A8 7F098C78 C7A8048C */ lwc1 $f8, 0x48c($sp) -/* 0CD7AC 7F098C7C AFA704CC */ sw $a3, 0x4cc($sp) -/* 0CD7B0 7F098C80 46065401 */ sub.s $f16, $f10, $f6 -/* 0CD7B4 7F098C84 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 0CD7B8 7F098C88 AFA504C8 */ sw $a1, 0x4c8($sp) -/* 0CD7BC 7F098C8C 46044101 */ sub.s $f4, $f8, $f4 -/* 0CD7C0 7F098C90 E7B40440 */ swc1 $f20, 0x440($sp) -/* 0CD7C4 7F098C94 E7B4043C */ swc1 $f20, 0x43c($sp) -/* 0CD7C8 7F098C98 46064301 */ sub.s $f12, $f8, $f6 -/* 0CD7CC 7F098C9C C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 0CD7D0 7F098CA0 44813000 */ mtc1 $at, $f6 -/* 0CD7D4 7F098CA4 E7A404B0 */ swc1 $f4, 0x4b0($sp) -/* 0CD7D8 7F098CA8 46085381 */ sub.s $f14, $f10, $f8 -/* 0CD7DC 7F098CAC 46066282 */ mul.s $f10, $f12, $f6 -/* 0CD7E0 7F098CB0 44814000 */ mtc1 $at, $f8 -/* 0CD7E4 7F098CB4 E7AC04A8 */ swc1 $f12, 0x4a8($sp) -/* 0CD7E8 7F098CB8 E7AE04A4 */ swc1 $f14, 0x4a4($sp) -/* 0CD7EC 7F098CBC 46087182 */ mul.s $f6, $f14, $f8 -/* 0CD7F0 7F098CC0 E7B40420 */ swc1 $f20, 0x420($sp) -/* 0CD7F4 7F098CC4 E7B4041C */ swc1 $f20, 0x41c($sp) -/* 0CD7F8 7F098CC8 E7AA0424 */ swc1 $f10, 0x424($sp) -/* 0CD7FC 7F098CCC 44815000 */ mtc1 $at, $f10 -/* 0CD800 7F098CD0 E7B403E4 */ swc1 $f20, 0x3e4($sp) -/* 0CD804 7F098CD4 E7B403EC */ swc1 $f20, 0x3ec($sp) -/* 0CD808 7F098CD8 460A9202 */ mul.s $f8, $f18, $f10 -/* 0CD80C 7F098CDC E7A60428 */ swc1 $f6, 0x428($sp) -/* 0CD810 7F098CE0 44813000 */ mtc1 $at, $f6 -/* 0CD814 7F098CE4 E7B403F4 */ swc1 $f20, 0x3f4($sp) -/* 0CD818 7F098CE8 E7B40400 */ swc1 $f20, 0x400($sp) -/* 0CD81C 7F098CEC 46061282 */ mul.s $f10, $f2, $f6 -/* 0CD820 7F098CF0 E7B403FC */ swc1 $f20, 0x3fc($sp) -/* 0CD824 7F098CF4 E7A8042C */ swc1 $f8, 0x42c($sp) -/* 0CD828 7F098CF8 44814000 */ mtc1 $at, $f8 -/* 0CD82C 7F098CFC E7B403C4 */ swc1 $f20, 0x3c4($sp) -/* 0CD830 7F098D00 E7B403CC */ swc1 $f20, 0x3cc($sp) -/* 0CD834 7F098D04 46082182 */ mul.s $f6, $f4, $f8 -/* 0CD838 7F098D08 E7AA0430 */ swc1 $f10, 0x430($sp) -/* 0CD83C 7F098D0C 44815000 */ mtc1 $at, $f10 -/* 0CD840 7F098D10 3C018005 */ lui $at, %hi(D_800575F8) -/* 0CD844 7F098D14 E7B403D4 */ swc1 $f20, 0x3d4($sp) -/* 0CD848 7F098D18 460A8202 */ mul.s $f8, $f16, $f10 -/* 0CD84C 7F098D1C E7B403E0 */ swc1 $f20, 0x3e0($sp) -/* 0CD850 7F098D20 E7A60434 */ swc1 $f6, 0x434($sp) -/* 0CD854 7F098D24 46006182 */ mul.s $f6, $f12, $f0 -/* 0CD858 7F098D28 E7B403DC */ swc1 $f20, 0x3dc($sp) -/* 0CD85C 7F098D2C 46007282 */ mul.s $f10, $f14, $f0 -/* 0CD860 7F098D30 E7A80438 */ swc1 $f8, 0x438($sp) -/* 0CD864 7F098D34 C42E75F8 */ lwc1 $f14, %lo(D_800575F8)($at) -/* 0CD868 7F098D38 46009202 */ mul.s $f8, $f18, $f0 -/* 0CD86C 7F098D3C E7A60404 */ swc1 $f6, 0x404($sp) -/* 0CD870 7F098D40 46001182 */ mul.s $f6, $f2, $f0 -/* 0CD874 7F098D44 E7AA0408 */ swc1 $f10, 0x408($sp) -/* 0CD878 7F098D48 46002282 */ mul.s $f10, $f4, $f0 -/* 0CD87C 7F098D4C E7A8040C */ swc1 $f8, 0x40c($sp) -/* 0CD880 7F098D50 46008202 */ mul.s $f8, $f16, $f0 -/* 0CD884 7F098D54 E7A60410 */ swc1 $f6, 0x410($sp) -/* 0CD888 7F098D58 C7A604A4 */ lwc1 $f6, 0x4a4($sp) -/* 0CD88C 7F098D5C E7AA0414 */ swc1 $f10, 0x414($sp) -/* 0CD890 7F098D60 46060283 */ div.s $f10, $f0, $f6 -/* 0CD894 7F098D64 E7A80418 */ swc1 $f8, 0x418($sp) -/* 0CD898 7F098D68 46020203 */ div.s $f8, $f0, $f2 -/* 0CD89C 7F098D6C E7AA03E8 */ swc1 $f10, 0x3e8($sp) -/* 0CD8A0 7F098D70 46100283 */ div.s $f10, $f0, $f16 -/* 0CD8A4 7F098D74 E7A803F0 */ swc1 $f8, 0x3f0($sp) -/* 0CD8A8 7F098D78 C7A804A8 */ lwc1 $f8, 0x4a8($sp) -/* 0CD8AC 7F098D7C 46064303 */ div.s $f12, $f8, $f6 -/* 0CD8B0 7F098D80 E7AA03F8 */ swc1 $f10, 0x3f8($sp) -/* 0CD8B4 7F098D84 46029283 */ div.s $f10, $f18, $f2 -/* 0CD8B8 7F098D88 E7AC03C8 */ swc1 $f12, 0x3c8($sp) -/* 0CD8BC 7F098D8C 46102203 */ div.s $f8, $f4, $f16 -/* 0CD8C0 7F098D90 E7AA03D0 */ swc1 $f10, 0x3d0($sp) -/* 0CD8C4 7F098D94 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CD8C8 7F098D98 E7A803D8 */ swc1 $f8, 0x3d8($sp) -/* 0CD8CC 7F098D9C 3C018005 */ lui $at, %hi(D_800575FC) -/* 0CD8D0 7F098DA0 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea -/* 0CD8D4 7F098DA4 E7A003C8 */ swc1 $f0, 0x3c8($sp) -/* 0CD8D8 7F098DA8 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CD8DC 7F098DAC C42E75FC */ lwc1 $f14, %lo(D_800575FC)($at) -/* 0CD8E0 7F098DB0 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CD8E4 7F098DB4 C7AC03D0 */ lwc1 $f12, 0x3d0($sp) -/* 0CD8E8 7F098DB8 3C018005 */ lui $at, %hi(D_80057600) -/* 0CD8EC 7F098DBC 3C0644EA */ lui $a2, (0x44EAA000 >> 16) # lui $a2, 0x44ea -/* 0CD8F0 7F098DC0 E7A003D0 */ swc1 $f0, 0x3d0($sp) -/* 0CD8F4 7F098DC4 34C6A000 */ ori $a2, (0x44EAA000 & 0xFFFF) # ori $a2, $a2, 0xa000 -/* 0CD8F8 7F098DC8 C42E7600 */ lwc1 $f14, %lo(D_80057600)($at) -/* 0CD8FC 7F098DCC 0FC24F12 */ jal sub_GAME_7F093C48 -/* 0CD900 7F098DD0 C7AC03D8 */ lwc1 $f12, 0x3d8($sp) -/* 0CD904 7F098DD4 C7A6046C */ lwc1 $f6, 0x46c($sp) -/* 0CD908 7F098DD8 C7AA0474 */ lwc1 $f10, 0x474($sp) -/* 0CD90C 7F098DDC 8FAE04D4 */ lw $t6, 0x4d4($sp) -/* 0CD910 7F098DE0 8FB804D8 */ lw $t8, 0x4d8($sp) -/* 0CD914 7F098DE4 E7A003D8 */ swc1 $f0, 0x3d8($sp) -/* 0CD918 7F098DE8 E7A6044C */ swc1 $f6, 0x44c($sp) -/* 0CD91C 7F098DEC E7AA0454 */ swc1 $f10, 0x454($sp) -/* 0CD920 7F098DF0 C5C40028 */ lwc1 $f4, 0x28($t6) -/* 0CD924 7F098DF4 C7080028 */ lwc1 $f8, 0x28($t8) -/* 0CD928 7F098DF8 4608203C */ c.lt.s $f4, $f8 -/* 0CD92C 7F098DFC 00000000 */ nop -/* 0CD930 7F098E00 45020081 */ bc1fl .L7F099008 -/* 0CD934 7F098E04 8FAE04DC */ lw $t6, 0x4dc($sp) -/* 0CD938 7F098E08 8FB904DC */ lw $t9, 0x4dc($sp) -/* 0CD93C 7F098E0C 8FAF04E0 */ lw $t7, 0x4e0($sp) -/* 0CD940 7F098E10 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CD944 7F098E14 C726002C */ lwc1 $f6, 0x2c($t9) -/* 0CD948 7F098E18 C5EA002C */ lwc1 $f10, 0x2c($t7) -/* 0CD94C 7F098E1C 44814000 */ mtc1 $at, $f8 -/* 0CD950 7F098E20 460A3101 */ sub.s $f4, $f6, $f10 -/* 0CD954 7F098E24 4608203C */ c.lt.s $f4, $f8 -/* 0CD958 7F098E28 00000000 */ nop -/* 0CD95C 7F098E2C 45000004 */ bc1f .L7F098E40 -/* 0CD960 7F098E30 3C018005 */ lui $at, %hi(D_80057604) -/* 0CD964 7F098E34 C4267604 */ lwc1 $f6, %lo(D_80057604)($at) -/* 0CD968 7F098E38 10000010 */ b .L7F098E7C -/* 0CD96C 7F098E3C E7A601BC */ swc1 $f6, 0x1bc($sp) -.L7F098E40: -/* 0CD970 7F098E40 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CD974 7F098E44 00000000 */ nop -/* 0CD978 7F098E48 8FAE04DC */ lw $t6, 0x4dc($sp) -/* 0CD97C 7F098E4C 8FB804E0 */ lw $t8, 0x4e0($sp) -/* 0CD980 7F098E50 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CD984 7F098E54 C5CA002C */ lwc1 $f10, 0x2c($t6) -/* 0CD988 7F098E58 C704002C */ lwc1 $f4, 0x2c($t8) -/* 0CD98C 7F098E5C 44813000 */ mtc1 $at, $f6 -/* 0CD990 7F098E60 46045201 */ sub.s $f8, $f10, $f4 -/* 0CD994 7F098E64 44812000 */ mtc1 $at, $f4 -/* 0CD998 7F098E68 46064282 */ mul.s $f10, $f8, $f6 -/* 0CD99C 7F098E6C 46040201 */ sub.s $f8, $f0, $f4 -/* 0CD9A0 7F098E70 46004187 */ neg.s $f6, $f8 -/* 0CD9A4 7F098E74 460A3103 */ div.s $f4, $f6, $f10 -/* 0CD9A8 7F098E78 E7A401BC */ swc1 $f4, 0x1bc($sp) -.L7F098E7C: -/* 0CD9AC 7F098E7C 3C05B400 */ lui $a1, 0xb400 -/* 0CD9B0 7F098E80 02001025 */ move $v0, $s0 -/* 0CD9B4 7F098E84 AC450000 */ sw $a1, ($v0) -/* 0CD9B8 7F098E88 8FB904DC */ lw $t9, 0x4dc($sp) -/* 0CD9BC 7F098E8C 3C01CE80 */ lui $at, 0xce80 -/* 0CD9C0 7F098E90 26100008 */ addiu $s0, $s0, 8 -/* 0CD9C4 7F098E94 C728002C */ lwc1 $f8, 0x2c($t9) -/* 0CD9C8 7F098E98 3C19B200 */ lui $t9, 0xb200 -/* 0CD9CC 7F098E9C 02001825 */ move $v1, $s0 -/* 0CD9D0 7F098EA0 4600418D */ trunc.w.s $f6, $f8 -/* 0CD9D4 7F098EA4 26100008 */ addiu $s0, $s0, 8 -/* 0CD9D8 7F098EA8 02002025 */ move $a0, $s0 -/* 0CD9DC 7F098EAC 26100008 */ addiu $s0, $s0, 8 -/* 0CD9E0 7F098EB0 440E3000 */ mfc1 $t6, $f6 -/* 0CD9E4 7F098EB4 00000000 */ nop -/* 0CD9E8 7F098EB8 01C1C025 */ or $t8, $t6, $at -/* 0CD9EC 7F098EBC AC580004 */ sw $t8, 4($v0) -/* 0CD9F0 7F098EC0 AC790000 */ sw $t9, ($v1) -/* 0CD9F4 7F098EC4 8FAF04E0 */ lw $t7, 0x4e0($sp) -/* 0CD9F8 7F098EC8 C5EA002C */ lwc1 $f10, 0x2c($t7) -/* 0CD9FC 7F098ECC 8FAF04D4 */ lw $t7, 0x4d4($sp) -/* 0CDA00 7F098ED0 4600510D */ trunc.w.s $f4, $f10 -/* 0CDA04 7F098ED4 C5E8002C */ lwc1 $f8, 0x2c($t7) -/* 0CDA08 7F098ED8 4600418D */ trunc.w.s $f6, $f8 -/* 0CDA0C 7F098EDC 44182000 */ mfc1 $t8, $f4 -/* 0CDA10 7F098EE0 00000000 */ nop -/* 0CDA14 7F098EE4 0018CC00 */ sll $t9, $t8, 0x10 -/* 0CDA18 7F098EE8 44183000 */ mfc1 $t8, $f6 -/* 0CDA1C 7F098EEC 00000000 */ nop -/* 0CDA20 7F098EF0 03387825 */ or $t7, $t9, $t8 -/* 0CDA24 7F098EF4 AC6F0004 */ sw $t7, 4($v1) -/* 0CDA28 7F098EF8 AC850000 */ sw $a1, ($a0) -/* 0CDA2C 7F098EFC 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CDA30 7F098F00 AFA401B0 */ sw $a0, 0x1b0($sp) -/* 0CDA34 7F098F04 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CDA38 7F098F08 E7A0005C */ swc1 $f0, 0x5c($sp) -/* 0CDA3C 7F098F0C C7AA005C */ lwc1 $f10, 0x5c($sp) -/* 0CDA40 7F098F10 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CDA44 7F098F14 44814000 */ mtc1 $at, $f8 -/* 0CDA48 7F098F18 460A0100 */ add.s $f4, $f0, $f10 -/* 0CDA4C 7F098F1C 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDA50 7F098F20 46082301 */ sub.s $f12, $f4, $f8 -/* 0CDA54 7F098F24 8FAE01B0 */ lw $t6, 0x1b0($sp) -/* 0CDA58 7F098F28 02001825 */ move $v1, $s0 -/* 0CDA5C 7F098F2C 3C19B200 */ lui $t9, 0xb200 -/* 0CDA60 7F098F30 ADC20004 */ sw $v0, 4($t6) -/* 0CDA64 7F098F34 AC790000 */ sw $t9, ($v1) -/* 0CDA68 7F098F38 AFA301AC */ sw $v1, 0x1ac($sp) -/* 0CDA6C 7F098F3C C7AC01BC */ lwc1 $f12, 0x1bc($sp) -/* 0CDA70 7F098F40 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDA74 7F098F44 26100008 */ addiu $s0, $s0, 8 -/* 0CDA78 7F098F48 8FA301AC */ lw $v1, 0x1ac($sp) -/* 0CDA7C 7F098F4C 02002025 */ move $a0, $s0 -/* 0CDA80 7F098F50 3C18B400 */ lui $t8, 0xb400 -/* 0CDA84 7F098F54 AC620004 */ sw $v0, 4($v1) -/* 0CDA88 7F098F58 AC980000 */ sw $t8, ($a0) -/* 0CDA8C 7F098F5C AFA401A8 */ sw $a0, 0x1a8($sp) -/* 0CDA90 7F098F60 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CDA94 7F098F64 26100008 */ addiu $s0, $s0, 8 -/* 0CDA98 7F098F68 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDA9C 7F098F6C 46000306 */ mov.s $f12, $f0 -/* 0CDAA0 7F098F70 8FAF01A8 */ lw $t7, 0x1a8($sp) -/* 0CDAA4 7F098F74 02001825 */ move $v1, $s0 -/* 0CDAA8 7F098F78 3C0EB200 */ lui $t6, 0xb200 -/* 0CDAAC 7F098F7C ADE20004 */ sw $v0, 4($t7) -/* 0CDAB0 7F098F80 AC6E0000 */ sw $t6, ($v1) -/* 0CDAB4 7F098F84 AFA301A4 */ sw $v1, 0x1a4($sp) -/* 0CDAB8 7F098F88 26100008 */ addiu $s0, $s0, 8 -/* 0CDABC 7F098F8C 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDAC0 7F098F90 4600A306 */ mov.s $f12, $f20 -/* 0CDAC4 7F098F94 8FA301A4 */ lw $v1, 0x1a4($sp) -/* 0CDAC8 7F098F98 02002025 */ move $a0, $s0 -/* 0CDACC 7F098F9C 3C19B400 */ lui $t9, 0xb400 -/* 0CDAD0 7F098FA0 AC620004 */ sw $v0, 4($v1) -/* 0CDAD4 7F098FA4 AC990000 */ sw $t9, ($a0) -/* 0CDAD8 7F098FA8 AFA401A0 */ sw $a0, 0x1a0($sp) -/* 0CDADC 7F098FAC 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CDAE0 7F098FB0 26100008 */ addiu $s0, $s0, 8 -/* 0CDAE4 7F098FB4 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CDAE8 7F098FB8 E7A0005C */ swc1 $f0, 0x5c($sp) -/* 0CDAEC 7F098FBC C7A6005C */ lwc1 $f6, 0x5c($sp) -/* 0CDAF0 7F098FC0 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CDAF4 7F098FC4 44812000 */ mtc1 $at, $f4 -/* 0CDAF8 7F098FC8 46060280 */ add.s $f10, $f0, $f6 -/* 0CDAFC 7F098FCC 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDB00 7F098FD0 46045301 */ sub.s $f12, $f10, $f4 -/* 0CDB04 7F098FD4 8FB801A0 */ lw $t8, 0x1a0($sp) -/* 0CDB08 7F098FD8 02001825 */ move $v1, $s0 -/* 0CDB0C 7F098FDC 3C0FB200 */ lui $t7, 0xb200 -/* 0CDB10 7F098FE0 AF020004 */ sw $v0, 4($t8) -/* 0CDB14 7F098FE4 AC6F0000 */ sw $t7, ($v1) -/* 0CDB18 7F098FE8 AFA3019C */ sw $v1, 0x19c($sp) -/* 0CDB1C 7F098FEC 26100008 */ addiu $s0, $s0, 8 -/* 0CDB20 7F098FF0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDB24 7F098FF4 4600A306 */ mov.s $f12, $f20 -/* 0CDB28 7F098FF8 8FA3019C */ lw $v1, 0x19c($sp) -/* 0CDB2C 7F098FFC 10000078 */ b .L7F0991E0 -/* 0CDB30 7F099000 AC620004 */ sw $v0, 4($v1) -/* 0CDB34 7F099004 8FAE04DC */ lw $t6, 0x4dc($sp) -.L7F099008: -/* 0CDB38 7F099008 8FB904E0 */ lw $t9, 0x4e0($sp) -/* 0CDB3C 7F09900C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CDB40 7F099010 C5C8002C */ lwc1 $f8, 0x2c($t6) -/* 0CDB44 7F099014 C726002C */ lwc1 $f6, 0x2c($t9) -/* 0CDB48 7F099018 44812000 */ mtc1 $at, $f4 -/* 0CDB4C 7F09901C 46064281 */ sub.s $f10, $f8, $f6 -/* 0CDB50 7F099020 4604503C */ c.lt.s $f10, $f4 -/* 0CDB54 7F099024 00000000 */ nop -/* 0CDB58 7F099028 45000003 */ bc1f .L7F099038 -/* 0CDB5C 7F09902C 3C018005 */ lui $at, %hi(D_80057608) -/* 0CDB60 7F099030 1000000E */ b .L7F09906C -/* 0CDB64 7F099034 C42E7608 */ lwc1 $f14, %lo(D_80057608)($at) -.L7F099038: -/* 0CDB68 7F099038 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CDB6C 7F09903C 00000000 */ nop -/* 0CDB70 7F099040 8FB804DC */ lw $t8, 0x4dc($sp) -/* 0CDB74 7F099044 8FAF04E0 */ lw $t7, 0x4e0($sp) -/* 0CDB78 7F099048 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CDB7C 7F09904C C708002C */ lwc1 $f8, 0x2c($t8) -/* 0CDB80 7F099050 C5E6002C */ lwc1 $f6, 0x2c($t7) -/* 0CDB84 7F099054 44812000 */ mtc1 $at, $f4 -/* 0CDB88 7F099058 46064281 */ sub.s $f10, $f8, $f6 -/* 0CDB8C 7F09905C 44813000 */ mtc1 $at, $f6 -/* 0CDB90 7F099060 46045202 */ mul.s $f8, $f10, $f4 -/* 0CDB94 7F099064 46060281 */ sub.s $f10, $f0, $f6 -/* 0CDB98 7F099068 46085383 */ div.s $f14, $f10, $f8 -.L7F09906C: -/* 0CDB9C 7F09906C 02001025 */ move $v0, $s0 -/* 0CDBA0 7F099070 3C0EB400 */ lui $t6, 0xb400 -/* 0CDBA4 7F099074 AC4E0000 */ sw $t6, ($v0) -/* 0CDBA8 7F099078 8FB904DC */ lw $t9, 0x4dc($sp) -/* 0CDBAC 7F09907C 3C01CE00 */ lui $at, 0xce00 -/* 0CDBB0 7F099080 26100008 */ addiu $s0, $s0, 8 -/* 0CDBB4 7F099084 C724002C */ lwc1 $f4, 0x2c($t9) -/* 0CDBB8 7F099088 3C19B200 */ lui $t9, 0xb200 -/* 0CDBBC 7F09908C 02001825 */ move $v1, $s0 -/* 0CDBC0 7F099090 4600218D */ trunc.w.s $f6, $f4 -/* 0CDBC4 7F099094 26100008 */ addiu $s0, $s0, 8 -/* 0CDBC8 7F099098 02002025 */ move $a0, $s0 -/* 0CDBCC 7F09909C 26100008 */ addiu $s0, $s0, 8 -/* 0CDBD0 7F0990A0 440F3000 */ mfc1 $t7, $f6 -/* 0CDBD4 7F0990A4 00000000 */ nop -/* 0CDBD8 7F0990A8 01E17025 */ or $t6, $t7, $at -/* 0CDBDC 7F0990AC AC4E0004 */ sw $t6, 4($v0) -/* 0CDBE0 7F0990B0 AC790000 */ sw $t9, ($v1) -/* 0CDBE4 7F0990B4 8FB804E0 */ lw $t8, 0x4e0($sp) -/* 0CDBE8 7F0990B8 3C0FB400 */ lui $t7, 0xb400 -/* 0CDBEC 7F0990BC C70A002C */ lwc1 $f10, 0x2c($t8) -/* 0CDBF0 7F0990C0 8FB804D4 */ lw $t8, 0x4d4($sp) -/* 0CDBF4 7F0990C4 4600520D */ trunc.w.s $f8, $f10 -/* 0CDBF8 7F0990C8 C704002C */ lwc1 $f4, 0x2c($t8) -/* 0CDBFC 7F0990CC 4600218D */ trunc.w.s $f6, $f4 -/* 0CDC00 7F0990D0 440E4000 */ mfc1 $t6, $f8 -/* 0CDC04 7F0990D4 00000000 */ nop -/* 0CDC08 7F0990D8 000ECC00 */ sll $t9, $t6, 0x10 -/* 0CDC0C 7F0990DC 440E3000 */ mfc1 $t6, $f6 -/* 0CDC10 7F0990E0 00000000 */ nop -/* 0CDC14 7F0990E4 032EC025 */ or $t8, $t9, $t6 -/* 0CDC18 7F0990E8 AC780004 */ sw $t8, 4($v1) -/* 0CDC1C 7F0990EC AC8F0000 */ sw $t7, ($a0) -/* 0CDC20 7F0990F0 E7AE0198 */ swc1 $f14, 0x198($sp) -/* 0CDC24 7F0990F4 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CDC28 7F0990F8 AFA4018C */ sw $a0, 0x18c($sp) -/* 0CDC2C 7F0990FC 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDC30 7F099100 46000306 */ mov.s $f12, $f0 -/* 0CDC34 7F099104 8FB9018C */ lw $t9, 0x18c($sp) -/* 0CDC38 7F099108 C7AC0198 */ lwc1 $f12, 0x198($sp) -/* 0CDC3C 7F09910C 02001825 */ move $v1, $s0 -/* 0CDC40 7F099110 3C0EB200 */ lui $t6, 0xb200 -/* 0CDC44 7F099114 AF220004 */ sw $v0, 4($t9) -/* 0CDC48 7F099118 AC6E0000 */ sw $t6, ($v1) -/* 0CDC4C 7F09911C AFA30188 */ sw $v1, 0x188($sp) -/* 0CDC50 7F099120 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDC54 7F099124 26100008 */ addiu $s0, $s0, 8 -/* 0CDC58 7F099128 8FA30188 */ lw $v1, 0x188($sp) -/* 0CDC5C 7F09912C 02002025 */ move $a0, $s0 -/* 0CDC60 7F099130 3C18B400 */ lui $t8, 0xb400 -/* 0CDC64 7F099134 AC620004 */ sw $v0, 4($v1) -/* 0CDC68 7F099138 AC980000 */ sw $t8, ($a0) -/* 0CDC6C 7F09913C AFA40184 */ sw $a0, 0x184($sp) -/* 0CDC70 7F099140 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CDC74 7F099144 26100008 */ addiu $s0, $s0, 8 -/* 0CDC78 7F099148 0FC1E129 */ jal getPlayer_c_screenwidth -/* 0CDC7C 7F09914C E7A0005C */ swc1 $f0, 0x5c($sp) -/* 0CDC80 7F099150 C7AA005C */ lwc1 $f10, 0x5c($sp) -/* 0CDC84 7F099154 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CDC88 7F099158 44812000 */ mtc1 $at, $f4 -/* 0CDC8C 7F09915C 460A0200 */ add.s $f8, $f0, $f10 -/* 0CDC90 7F099160 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDC94 7F099164 46044301 */ sub.s $f12, $f8, $f4 -/* 0CDC98 7F099168 8FAF0184 */ lw $t7, 0x184($sp) -/* 0CDC9C 7F09916C 02001825 */ move $v1, $s0 -/* 0CDCA0 7F099170 3C19B200 */ lui $t9, 0xb200 -/* 0CDCA4 7F099174 ADE20004 */ sw $v0, 4($t7) -/* 0CDCA8 7F099178 AC790000 */ sw $t9, ($v1) -/* 0CDCAC 7F09917C AFA30180 */ sw $v1, 0x180($sp) -/* 0CDCB0 7F099180 26100008 */ addiu $s0, $s0, 8 -/* 0CDCB4 7F099184 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDCB8 7F099188 4600A306 */ mov.s $f12, $f20 -/* 0CDCBC 7F09918C 8FA30180 */ lw $v1, 0x180($sp) -/* 0CDCC0 7F099190 02002025 */ move $a0, $s0 -/* 0CDCC4 7F099194 3C0EB400 */ lui $t6, 0xb400 -/* 0CDCC8 7F099198 AC620004 */ sw $v0, 4($v1) -/* 0CDCCC 7F09919C AC8E0000 */ sw $t6, ($a0) -/* 0CDCD0 7F0991A0 AFA4017C */ sw $a0, 0x17c($sp) -/* 0CDCD4 7F0991A4 0FC1E131 */ jal getPlayer_c_screenleft -/* 0CDCD8 7F0991A8 26100008 */ addiu $s0, $s0, 8 -/* 0CDCDC 7F0991AC 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDCE0 7F0991B0 46000306 */ mov.s $f12, $f0 -/* 0CDCE4 7F0991B4 8FB8017C */ lw $t8, 0x17c($sp) -/* 0CDCE8 7F0991B8 02001825 */ move $v1, $s0 -/* 0CDCEC 7F0991BC 3C0FB200 */ lui $t7, 0xb200 -/* 0CDCF0 7F0991C0 AF020004 */ sw $v0, 4($t8) -/* 0CDCF4 7F0991C4 AC6F0000 */ sw $t7, ($v1) -/* 0CDCF8 7F0991C8 AFA30178 */ sw $v1, 0x178($sp) -/* 0CDCFC 7F0991CC 26100008 */ addiu $s0, $s0, 8 -/* 0CDD00 7F0991D0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CDD04 7F0991D4 4600A306 */ mov.s $f12, $f20 -/* 0CDD08 7F0991D8 8FA30178 */ lw $v1, 0x178($sp) -/* 0CDD0C 7F0991DC AC620004 */ sw $v0, 4($v1) -.L7F0991E0: -/* 0CDD10 7F0991E0 8FA804CC */ lw $t0, 0x4cc($sp) -/* 0CDD14 7F0991E4 C7A003C0 */ lwc1 $f0, 0x3c0($sp) -/* 0CDD18 7F0991E8 8FA704C8 */ lw $a3, 0x4c8($sp) -/* 0CDD1C 7F0991EC C506000C */ lwc1 $f6, 0xc($t0) -/* 0CDD20 7F0991F0 8FA904C4 */ lw $t1, 0x4c4($sp) -/* 0CDD24 7F0991F4 8FAB04E0 */ lw $t3, 0x4e0($sp) -/* 0CDD28 7F0991F8 46003282 */ mul.s $f10, $f6, $f0 -/* 0CDD2C 7F0991FC 3C018005 */ lui $at, %hi(D_8005760C) -/* 0CDD30 7F099200 E7AA03B0 */ swc1 $f10, 0x3b0($sp) -/* 0CDD34 7F099204 C4E8000C */ lwc1 $f8, 0xc($a3) -/* 0CDD38 7F099208 C7B003B0 */ lwc1 $f16, 0x3b0($sp) -/* 0CDD3C 7F09920C 46004102 */ mul.s $f4, $f8, $f0 -/* 0CDD40 7F099210 E7A403B4 */ swc1 $f4, 0x3b4($sp) -/* 0CDD44 7F099214 C526000C */ lwc1 $f6, 0xc($t1) -/* 0CDD48 7F099218 46003282 */ mul.s $f10, $f6, $f0 -/* 0CDD4C 7F09921C C7A603B4 */ lwc1 $f6, 0x3b4($sp) -/* 0CDD50 7F099220 4610303C */ c.lt.s $f6, $f16 -/* 0CDD54 7F099224 E7AA03B8 */ swc1 $f10, 0x3b8($sp) -/* 0CDD58 7F099228 C568000C */ lwc1 $f8, 0xc($t3) -/* 0CDD5C 7F09922C 46004102 */ mul.s $f4, $f8, $f0 -/* 0CDD60 7F099230 C7A003B8 */ lwc1 $f0, 0x3b8($sp) -/* 0CDD64 7F099234 45000002 */ bc1f .L7F099240 -/* 0CDD68 7F099238 E7A403BC */ swc1 $f4, 0x3bc($sp) -/* 0CDD6C 7F09923C 46003406 */ mov.s $f16, $f6 -.L7F099240: -/* 0CDD70 7F099240 4610003C */ c.lt.s $f0, $f16 -/* 0CDD74 7F099244 00000000 */ nop -/* 0CDD78 7F099248 45020003 */ bc1fl .L7F099258 -/* 0CDD7C 7F09924C C7A003BC */ lwc1 $f0, 0x3bc($sp) -/* 0CDD80 7F099250 46000406 */ mov.s $f16, $f0 -/* 0CDD84 7F099254 C7A003BC */ lwc1 $f0, 0x3bc($sp) -.L7F099258: -/* 0CDD88 7F099258 4610003C */ c.lt.s $f0, $f16 -/* 0CDD8C 7F09925C 00000000 */ nop -/* 0CDD90 7F099260 45000002 */ bc1f .L7F09926C -/* 0CDD94 7F099264 00000000 */ nop -/* 0CDD98 7F099268 46000406 */ mov.s $f16, $f0 -.L7F09926C: -/* 0CDD9C 7F09926C C420760C */ lwc1 $f0, %lo(D_8005760C)($at) -/* 0CDDA0 7F099270 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0CDDA4 7F099274 44815000 */ mtc1 $at, $f10 -/* 0CDDA8 7F099278 C5080034 */ lwc1 $f8, 0x34($t0) -/* 0CDDAC 7F09927C 460A8402 */ mul.s $f16, $f16, $f10 -/* 0CDDB0 7F099280 00000000 */ nop -/* 0CDDB4 7F099284 46104102 */ mul.s $f4, $f8, $f16 -/* 0CDDB8 7F099288 E7A4039C */ swc1 $f4, 0x39c($sp) -/* 0CDDBC 7F09928C C4E60034 */ lwc1 $f6, 0x34($a3) -/* 0CDDC0 7F099290 46103282 */ mul.s $f10, $f6, $f16 -/* 0CDDC4 7F099294 E7AA03A0 */ swc1 $f10, 0x3a0($sp) -/* 0CDDC8 7F099298 C5280034 */ lwc1 $f8, 0x34($t1) -/* 0CDDCC 7F09929C 46104102 */ mul.s $f4, $f8, $f16 -/* 0CDDD0 7F0992A0 C7A8039C */ lwc1 $f8, 0x39c($sp) -/* 0CDDD4 7F0992A4 E7A403A4 */ swc1 $f4, 0x3a4($sp) -/* 0CDDD8 7F0992A8 C5660034 */ lwc1 $f6, 0x34($t3) -/* 0CDDDC 7F0992AC 46103282 */ mul.s $f10, $f6, $f16 -/* 0CDDE0 7F0992B0 E7AA03A8 */ swc1 $f10, 0x3a8($sp) -/* 0CDDE4 7F0992B4 C5040020 */ lwc1 $f4, 0x20($t0) -/* 0CDDE8 7F0992B8 46044182 */ mul.s $f6, $f8, $f4 -/* 0CDDEC 7F0992BC E7A6036C */ swc1 $f6, 0x36c($sp) -/* 0CDDF0 7F0992C0 C50A0024 */ lwc1 $f10, 0x24($t0) -/* 0CDDF4 7F0992C4 4606A03E */ c.le.s $f20, $f6 -/* 0CDDF8 7F0992C8 460A4102 */ mul.s $f4, $f8, $f10 -/* 0CDDFC 7F0992CC 00000000 */ nop -/* 0CDE00 7F0992D0 46004282 */ mul.s $f10, $f8, $f0 -/* 0CDE04 7F0992D4 E7A40370 */ swc1 $f4, 0x370($sp) -/* 0CDE08 7F0992D8 C7A403A0 */ lwc1 $f4, 0x3a0($sp) -/* 0CDE0C 7F0992DC E7AA0374 */ swc1 $f10, 0x374($sp) -/* 0CDE10 7F0992E0 C4E80020 */ lwc1 $f8, 0x20($a3) -/* 0CDE14 7F0992E4 46082282 */ mul.s $f10, $f4, $f8 -/* 0CDE18 7F0992E8 E7AA0378 */ swc1 $f10, 0x378($sp) -/* 0CDE1C 7F0992EC C4E80024 */ lwc1 $f8, 0x24($a3) -/* 0CDE20 7F0992F0 46082282 */ mul.s $f10, $f4, $f8 -/* 0CDE24 7F0992F4 00000000 */ nop -/* 0CDE28 7F0992F8 46002202 */ mul.s $f8, $f4, $f0 -/* 0CDE2C 7F0992FC E7AA037C */ swc1 $f10, 0x37c($sp) -/* 0CDE30 7F099300 C7AA03A4 */ lwc1 $f10, 0x3a4($sp) -/* 0CDE34 7F099304 E7A80380 */ swc1 $f8, 0x380($sp) -/* 0CDE38 7F099308 C5240020 */ lwc1 $f4, 0x20($t1) -/* 0CDE3C 7F09930C 46045202 */ mul.s $f8, $f10, $f4 -/* 0CDE40 7F099310 E7A80384 */ swc1 $f8, 0x384($sp) -/* 0CDE44 7F099314 C5240024 */ lwc1 $f4, 0x24($t1) -/* 0CDE48 7F099318 46045202 */ mul.s $f8, $f10, $f4 -/* 0CDE4C 7F09931C 00000000 */ nop -/* 0CDE50 7F099320 46005102 */ mul.s $f4, $f10, $f0 -/* 0CDE54 7F099324 E7A80388 */ swc1 $f8, 0x388($sp) -/* 0CDE58 7F099328 C7A803A8 */ lwc1 $f8, 0x3a8($sp) -/* 0CDE5C 7F09932C E7A4038C */ swc1 $f4, 0x38c($sp) -/* 0CDE60 7F099330 C56A0020 */ lwc1 $f10, 0x20($t3) -/* 0CDE64 7F099334 460A4102 */ mul.s $f4, $f8, $f10 -/* 0CDE68 7F099338 C7A803A8 */ lwc1 $f8, 0x3a8($sp) -/* 0CDE6C 7F09933C E7A40390 */ swc1 $f4, 0x390($sp) -/* 0CDE70 7F099340 C56A0024 */ lwc1 $f10, 0x24($t3) -/* 0CDE74 7F099344 460A4102 */ mul.s $f4, $f8, $f10 -/* 0CDE78 7F099348 C7A803A8 */ lwc1 $f8, 0x3a8($sp) -/* 0CDE7C 7F09934C 46004282 */ mul.s $f10, $f8, $f0 -/* 0CDE80 7F099350 C7A00370 */ lwc1 $f0, 0x370($sp) -/* 0CDE84 7F099354 E7A40394 */ swc1 $f4, 0x394($sp) -/* 0CDE88 7F099358 45000003 */ bc1f .L7F099368 -/* 0CDE8C 7F09935C E7AA0398 */ swc1 $f10, 0x398($sp) -/* 0CDE90 7F099360 10000003 */ b .L7F099370 -/* 0CDE94 7F099364 46003086 */ mov.s $f2, $f6 -.L7F099368: -/* 0CDE98 7F099368 C7A2036C */ lwc1 $f2, 0x36c($sp) -/* 0CDE9C 7F09936C 46001087 */ neg.s $f2, $f2 -.L7F099370: -/* 0CDEA0 7F099370 4600A03E */ c.le.s $f20, $f0 -/* 0CDEA4 7F099374 00000000 */ nop -/* 0CDEA8 7F099378 45020004 */ bc1fl .L7F09938C -/* 0CDEAC 7F09937C 46000387 */ neg.s $f14, $f0 -/* 0CDEB0 7F099380 10000002 */ b .L7F09938C -/* 0CDEB4 7F099384 46000386 */ mov.s $f14, $f0 -/* 0CDEB8 7F099388 46000387 */ neg.s $f14, $f0 -.L7F09938C: -/* 0CDEBC 7F09938C C7A00378 */ lwc1 $f0, 0x378($sp) -/* 0CDEC0 7F099390 4600A03E */ c.le.s $f20, $f0 -/* 0CDEC4 7F099394 00000000 */ nop -/* 0CDEC8 7F099398 45020004 */ bc1fl .L7F0993AC -/* 0CDECC 7F09939C 46000307 */ neg.s $f12, $f0 -/* 0CDED0 7F0993A0 10000002 */ b .L7F0993AC -/* 0CDED4 7F0993A4 46000306 */ mov.s $f12, $f0 -/* 0CDED8 7F0993A8 46000307 */ neg.s $f12, $f0 -.L7F0993AC: -/* 0CDEDC 7F0993AC 460C103C */ c.lt.s $f2, $f12 -/* 0CDEE0 7F0993B0 00000000 */ nop -/* 0CDEE4 7F0993B4 45020009 */ bc1fl .L7F0993DC -/* 0CDEE8 7F0993B8 C7A0037C */ lwc1 $f0, 0x37c($sp) -/* 0CDEEC 7F0993BC 4600A03E */ c.le.s $f20, $f0 -/* 0CDEF0 7F0993C0 00000000 */ nop -/* 0CDEF4 7F0993C4 45020004 */ bc1fl .L7F0993D8 -/* 0CDEF8 7F0993C8 46000087 */ neg.s $f2, $f0 -/* 0CDEFC 7F0993CC 10000002 */ b .L7F0993D8 -/* 0CDF00 7F0993D0 46000086 */ mov.s $f2, $f0 -/* 0CDF04 7F0993D4 46000087 */ neg.s $f2, $f0 -.L7F0993D8: -/* 0CDF08 7F0993D8 C7A0037C */ lwc1 $f0, 0x37c($sp) -.L7F0993DC: -/* 0CDF0C 7F0993DC 4600A03E */ c.le.s $f20, $f0 -/* 0CDF10 7F0993E0 00000000 */ nop -/* 0CDF14 7F0993E4 45020004 */ bc1fl .L7F0993F8 -/* 0CDF18 7F0993E8 46000307 */ neg.s $f12, $f0 -/* 0CDF1C 7F0993EC 10000002 */ b .L7F0993F8 -/* 0CDF20 7F0993F0 46000306 */ mov.s $f12, $f0 -/* 0CDF24 7F0993F4 46000307 */ neg.s $f12, $f0 -.L7F0993F8: -/* 0CDF28 7F0993F8 460C703C */ c.lt.s $f14, $f12 -/* 0CDF2C 7F0993FC E7B003AC */ swc1 $f16, 0x3ac($sp) -/* 0CDF30 7F099400 4502000B */ bc1fl .L7F099430 -/* 0CDF34 7F099404 C7A00384 */ lwc1 $f0, 0x384($sp) -/* 0CDF38 7F099408 4600A03E */ c.le.s $f20, $f0 -/* 0CDF3C 7F09940C 00000000 */ nop -/* 0CDF40 7F099410 45020005 */ bc1fl .L7F099428 -/* 0CDF44 7F099414 46000387 */ neg.s $f14, $f0 -/* 0CDF48 7F099418 46000386 */ mov.s $f14, $f0 -/* 0CDF4C 7F09941C 10000003 */ b .L7F09942C -/* 0CDF50 7F099420 E7B003AC */ swc1 $f16, 0x3ac($sp) -/* 0CDF54 7F099424 46000387 */ neg.s $f14, $f0 -.L7F099428: -/* 0CDF58 7F099428 E7B003AC */ swc1 $f16, 0x3ac($sp) -.L7F09942C: -/* 0CDF5C 7F09942C C7A00384 */ lwc1 $f0, 0x384($sp) -.L7F099430: -/* 0CDF60 7F099430 4600A03E */ c.le.s $f20, $f0 -/* 0CDF64 7F099434 00000000 */ nop -/* 0CDF68 7F099438 45020004 */ bc1fl .L7F09944C -/* 0CDF6C 7F09943C 46000307 */ neg.s $f12, $f0 -/* 0CDF70 7F099440 10000002 */ b .L7F09944C -/* 0CDF74 7F099444 46000306 */ mov.s $f12, $f0 -/* 0CDF78 7F099448 46000307 */ neg.s $f12, $f0 -.L7F09944C: -/* 0CDF7C 7F09944C 460C103C */ c.lt.s $f2, $f12 -/* 0CDF80 7F099450 00000000 */ nop -/* 0CDF84 7F099454 45020009 */ bc1fl .L7F09947C -/* 0CDF88 7F099458 C7A00388 */ lwc1 $f0, 0x388($sp) -/* 0CDF8C 7F09945C 4600A03E */ c.le.s $f20, $f0 -/* 0CDF90 7F099460 00000000 */ nop -/* 0CDF94 7F099464 45020004 */ bc1fl .L7F099478 -/* 0CDF98 7F099468 46000087 */ neg.s $f2, $f0 -/* 0CDF9C 7F09946C 10000002 */ b .L7F099478 -/* 0CDFA0 7F099470 46000086 */ mov.s $f2, $f0 -/* 0CDFA4 7F099474 46000087 */ neg.s $f2, $f0 -.L7F099478: -/* 0CDFA8 7F099478 C7A00388 */ lwc1 $f0, 0x388($sp) -.L7F09947C: -/* 0CDFAC 7F09947C 4600A03E */ c.le.s $f20, $f0 -/* 0CDFB0 7F099480 00000000 */ nop -/* 0CDFB4 7F099484 45020004 */ bc1fl .L7F099498 -/* 0CDFB8 7F099488 46000307 */ neg.s $f12, $f0 -/* 0CDFBC 7F09948C 10000002 */ b .L7F099498 -/* 0CDFC0 7F099490 46000306 */ mov.s $f12, $f0 -/* 0CDFC4 7F099494 46000307 */ neg.s $f12, $f0 -.L7F099498: -/* 0CDFC8 7F099498 460C703C */ c.lt.s $f14, $f12 -/* 0CDFCC 7F09949C 00000000 */ nop -/* 0CDFD0 7F0994A0 45020009 */ bc1fl .L7F0994C8 -/* 0CDFD4 7F0994A4 C7A00390 */ lwc1 $f0, 0x390($sp) -/* 0CDFD8 7F0994A8 4600A03E */ c.le.s $f20, $f0 -/* 0CDFDC 7F0994AC 00000000 */ nop -/* 0CDFE0 7F0994B0 45020004 */ bc1fl .L7F0994C4 -/* 0CDFE4 7F0994B4 46000387 */ neg.s $f14, $f0 -/* 0CDFE8 7F0994B8 10000002 */ b .L7F0994C4 -/* 0CDFEC 7F0994BC 46000386 */ mov.s $f14, $f0 -/* 0CDFF0 7F0994C0 46000387 */ neg.s $f14, $f0 -.L7F0994C4: -/* 0CDFF4 7F0994C4 C7A00390 */ lwc1 $f0, 0x390($sp) -.L7F0994C8: -/* 0CDFF8 7F0994C8 4600A03E */ c.le.s $f20, $f0 -/* 0CDFFC 7F0994CC 00000000 */ nop -/* 0CE000 7F0994D0 45020004 */ bc1fl .L7F0994E4 -/* 0CE004 7F0994D4 46000307 */ neg.s $f12, $f0 -/* 0CE008 7F0994D8 10000002 */ b .L7F0994E4 -/* 0CE00C 7F0994DC 46000306 */ mov.s $f12, $f0 -/* 0CE010 7F0994E0 46000307 */ neg.s $f12, $f0 -.L7F0994E4: -/* 0CE014 7F0994E4 460C103C */ c.lt.s $f2, $f12 -/* 0CE018 7F0994E8 E7A20364 */ swc1 $f2, 0x364($sp) -/* 0CE01C 7F0994EC 4502000A */ bc1fl .L7F099518 -/* 0CE020 7F0994F0 C7A00394 */ lwc1 $f0, 0x394($sp) -/* 0CE024 7F0994F4 4600A03E */ c.le.s $f20, $f0 -/* 0CE028 7F0994F8 00000000 */ nop -/* 0CE02C 7F0994FC 45020004 */ bc1fl .L7F099510 -/* 0CE030 7F099500 46000087 */ neg.s $f2, $f0 -/* 0CE034 7F099504 10000003 */ b .L7F099514 -/* 0CE038 7F099508 E7A00364 */ swc1 $f0, 0x364($sp) -/* 0CE03C 7F09950C 46000087 */ neg.s $f2, $f0 -.L7F099510: -/* 0CE040 7F099510 E7A20364 */ swc1 $f2, 0x364($sp) -.L7F099514: -/* 0CE044 7F099514 C7A00394 */ lwc1 $f0, 0x394($sp) -.L7F099518: -/* 0CE048 7F099518 4600A03E */ c.le.s $f20, $f0 -/* 0CE04C 7F09951C 00000000 */ nop -/* 0CE050 7F099520 45020004 */ bc1fl .L7F099534 -/* 0CE054 7F099524 46000307 */ neg.s $f12, $f0 -/* 0CE058 7F099528 10000002 */ b .L7F099534 -/* 0CE05C 7F09952C 46000306 */ mov.s $f12, $f0 -/* 0CE060 7F099530 46000307 */ neg.s $f12, $f0 -.L7F099534: -/* 0CE064 7F099534 460C703C */ c.lt.s $f14, $f12 -/* 0CE068 7F099538 E7AE0368 */ swc1 $f14, 0x368($sp) -/* 0CE06C 7F09953C 4502000A */ bc1fl .L7F099568 -/* 0CE070 7F099540 C7A4036C */ lwc1 $f4, 0x36c($sp) -/* 0CE074 7F099544 4600A03E */ c.le.s $f20, $f0 -/* 0CE078 7F099548 00000000 */ nop -/* 0CE07C 7F09954C 45020004 */ bc1fl .L7F099560 -/* 0CE080 7F099550 46000387 */ neg.s $f14, $f0 -/* 0CE084 7F099554 10000003 */ b .L7F099564 -/* 0CE088 7F099558 E7A00368 */ swc1 $f0, 0x368($sp) -/* 0CE08C 7F09955C 46000387 */ neg.s $f14, $f0 -.L7F099560: -/* 0CE090 7F099560 E7AE0368 */ swc1 $f14, 0x368($sp) -.L7F099564: -/* 0CE094 7F099564 C7A4036C */ lwc1 $f4, 0x36c($sp) -.L7F099568: -/* 0CE098 7F099568 C7A80370 */ lwc1 $f8, 0x370($sp) -/* 0CE09C 7F09956C C7AA0374 */ lwc1 $f10, 0x374($sp) -/* 0CE0A0 7F099570 E7A40354 */ swc1 $f4, 0x354($sp) -/* 0CE0A4 7F099574 C7A4037C */ lwc1 $f4, 0x37c($sp) -/* 0CE0A8 7F099578 C7A60378 */ lwc1 $f6, 0x378($sp) -/* 0CE0AC 7F09957C E7A80358 */ swc1 $f8, 0x358($sp) -/* 0CE0B0 7F099580 E7AA035C */ swc1 $f10, 0x35c($sp) -/* 0CE0B4 7F099584 E7A40338 */ swc1 $f4, 0x338($sp) -/* 0CE0B8 7F099588 E7A60334 */ swc1 $f6, 0x334($sp) -/* 0CE0BC 7F09958C C7A80380 */ lwc1 $f8, 0x380($sp) -/* 0CE0C0 7F099590 C7A60388 */ lwc1 $f6, 0x388($sp) -/* 0CE0C4 7F099594 C7A4038C */ lwc1 $f4, 0x38c($sp) -/* 0CE0C8 7F099598 C7AA0384 */ lwc1 $f10, 0x384($sp) -/* 0CE0CC 7F09959C E7A8033C */ swc1 $f8, 0x33c($sp) -/* 0CE0D0 7F0995A0 E7A60318 */ swc1 $f6, 0x318($sp) -/* 0CE0D4 7F0995A4 E7A4031C */ swc1 $f4, 0x31c($sp) -/* 0CE0D8 7F0995A8 E7AA0314 */ swc1 $f10, 0x314($sp) -/* 0CE0DC 7F0995AC C5080030 */ lwc1 $f8, 0x30($t0) -/* 0CE0E0 7F0995B0 27A302F4 */ addiu $v1, $sp, 0x2f4 -/* 0CE0E4 7F0995B4 27A60334 */ addiu $a2, $sp, 0x334 -/* 0CE0E8 7F0995B8 E7A80360 */ swc1 $f8, 0x360($sp) -/* 0CE0EC 7F0995BC C4EA0030 */ lwc1 $f10, 0x30($a3) -/* 0CE0F0 7F0995C0 27A70324 */ addiu $a3, $sp, 0x324 -/* 0CE0F4 7F0995C4 27A20354 */ addiu $v0, $sp, 0x354 -/* 0CE0F8 7F0995C8 E7AA0340 */ swc1 $f10, 0x340($sp) -/* 0CE0FC 7F0995CC C5260030 */ lwc1 $f6, 0x30($t1) -/* 0CE100 7F0995D0 27A402D4 */ addiu $a0, $sp, 0x2d4 -/* 0CE104 7F0995D4 27A50314 */ addiu $a1, $sp, 0x314 -/* 0CE108 7F0995D8 E7A60320 */ swc1 $f6, 0x320($sp) -.L7F0995DC: -/* 0CE10C 7F0995DC C4400000 */ lwc1 $f0, ($v0) -/* 0CE110 7F0995E0 C4C40000 */ lwc1 $f4, ($a2) -/* 0CE114 7F0995E4 C4AA0000 */ lwc1 $f10, ($a1) -/* 0CE118 7F0995E8 24A50004 */ addiu $a1, $a1, 4 -/* 0CE11C 7F0995EC 46002201 */ sub.s $f8, $f4, $f0 -/* 0CE120 7F0995F0 00A7082B */ sltu $at, $a1, $a3 -/* 0CE124 7F0995F4 24630004 */ addiu $v1, $v1, 4 -/* 0CE128 7F0995F8 46005181 */ sub.s $f6, $f10, $f0 -/* 0CE12C 7F0995FC 24C60004 */ addiu $a2, $a2, 4 -/* 0CE130 7F099600 24420004 */ addiu $v0, $v0, 4 -/* 0CE134 7F099604 24840004 */ addiu $a0, $a0, 4 -/* 0CE138 7F099608 E468FFFC */ swc1 $f8, -4($v1) -/* 0CE13C 7F09960C 1420FFF3 */ bnez $at, .L7F0995DC -/* 0CE140 7F099610 E486FFFC */ swc1 $f6, -4($a0) -/* 0CE144 7F099614 27A302F4 */ addiu $v1, $sp, 0x2f4 -/* 0CE148 7F099618 27A20354 */ addiu $v0, $sp, 0x354 -/* 0CE14C 7F09961C 27A402D4 */ addiu $a0, $sp, 0x2d4 -/* 0CE150 7F099620 27A70294 */ addiu $a3, $sp, 0x294 -/* 0CE154 7F099624 27A502B4 */ addiu $a1, $sp, 0x2b4 -/* 0CE158 7F099628 27A80274 */ addiu $t0, $sp, 0x274 -/* 0CE15C 7F09962C 27A60254 */ addiu $a2, $sp, 0x254 -/* 0CE160 7F099630 C7B20410 */ lwc1 $f18, 0x410($sp) -/* 0CE164 7F099634 C7B0040C */ lwc1 $f16, 0x40c($sp) -/* 0CE168 7F099638 27A90264 */ addiu $t1, $sp, 0x264 -.L7F09963C: -/* 0CE16C 7F09963C C4800000 */ lwc1 $f0, ($a0) -/* 0CE170 7F099640 C4620000 */ lwc1 $f2, ($v1) -/* 0CE174 7F099644 C7A80418 */ lwc1 $f8, 0x418($sp) -/* 0CE178 7F099648 46120102 */ mul.s $f4, $f0, $f18 -/* 0CE17C 7F09964C 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CE180 7F099650 24C60004 */ addiu $a2, $a2, 4 -/* 0CE184 7F099654 46024282 */ mul.s $f10, $f8, $f2 -/* 0CE188 7F099658 44814000 */ mtc1 $at, $f8 -/* 0CE18C 7F09965C 24630004 */ addiu $v1, $v1, 4 -/* 0CE190 7F099660 24420004 */ addiu $v0, $v0, 4 -/* 0CE194 7F099664 24840004 */ addiu $a0, $a0, 4 -/* 0CE198 7F099668 24E70004 */ addiu $a3, $a3, 4 -/* 0CE19C 7F09966C 24A50004 */ addiu $a1, $a1, 4 -/* 0CE1A0 7F099670 460A2181 */ sub.s $f6, $f4, $f10 -/* 0CE1A4 7F099674 25080004 */ addiu $t0, $t0, 4 -/* 0CE1A8 7F099678 46083303 */ div.s $f12, $f6, $f8 -/* 0CE1AC 7F09967C E4ECFFFC */ swc1 $f12, -4($a3) -/* 0CE1B0 7F099680 C7A40414 */ lwc1 $f4, 0x414($sp) -/* 0CE1B4 7F099684 46041282 */ mul.s $f10, $f2, $f4 -/* 0CE1B8 7F099688 44812000 */ mtc1 $at, $f4 -/* 0CE1BC 7F09968C 00C9082B */ sltu $at, $a2, $t1 -/* 0CE1C0 7F099690 46008182 */ mul.s $f6, $f16, $f0 -/* 0CE1C4 7F099694 46065201 */ sub.s $f8, $f10, $f6 -/* 0CE1C8 7F099698 46044283 */ div.s $f10, $f8, $f4 -/* 0CE1CC 7F09969C E4AAFFFC */ swc1 $f10, -4($a1) -/* 0CE1D0 7F0996A0 C7A60484 */ lwc1 $f6, 0x484($sp) -/* 0CE1D4 7F0996A4 C4A4FFFC */ lwc1 $f4, -4($a1) -/* 0CE1D8 7F0996A8 46066202 */ mul.s $f8, $f12, $f6 -/* 0CE1DC 7F0996AC C446FFFC */ lwc1 $f6, -4($v0) -/* 0CE1E0 7F0996B0 E488FFFC */ swc1 $f8, -4($a0) -/* 0CE1E4 7F0996B4 C7AA0484 */ lwc1 $f10, 0x484($sp) -/* 0CE1E8 7F0996B8 E4C6FFFC */ swc1 $f6, -4($a2) -/* 0CE1EC 7F0996BC 460A2382 */ mul.s $f14, $f4, $f10 -/* 0CE1F0 7F0996C0 E46EFFFC */ swc1 $f14, -4($v1) -/* 0CE1F4 7F0996C4 1420FFDD */ bnez $at, .L7F09963C -/* 0CE1F8 7F0996C8 E50EFFFC */ swc1 $f14, -4($t0) -/* 0CE1FC 7F0996CC 8FA304DC */ lw $v1, 0x4dc($sp) -/* 0CE200 7F0996D0 C568002C */ lwc1 $f8, 0x2c($t3) -/* 0CE204 7F0996D4 8FA204D4 */ lw $v0, 0x4d4($sp) -/* 0CE208 7F0996D8 C464002C */ lwc1 $f4, 0x2c($v1) -/* 0CE20C 7F0996DC C4660010 */ lwc1 $f6, 0x10($v1) -/* 0CE210 7F0996E0 C44E0010 */ lwc1 $f14, 0x10($v0) -/* 0CE214 7F0996E4 46044003 */ div.s $f0, $f8, $f4 -/* 0CE218 7F0996E8 C56A0010 */ lwc1 $f10, 0x10($t3) -/* 0CE21C 7F0996EC 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CE220 7F0996F0 240E0001 */ li $t6, 1 -/* 0CE224 7F0996F4 46067201 */ sub.s $f8, $f14, $f6 -/* 0CE228 7F0996F8 46004102 */ mul.s $f4, $f8, $f0 -/* 0CE22C 7F0996FC 46045180 */ add.s $f6, $f10, $f4 -/* 0CE230 7F099700 E7A60170 */ swc1 $f6, 0x170($sp) -/* 0CE234 7F099704 C46A0014 */ lwc1 $f10, 0x14($v1) -/* 0CE238 7F099708 C4420014 */ lwc1 $f2, 0x14($v0) -/* 0CE23C 7F09970C C5680014 */ lwc1 $f8, 0x14($t3) -/* 0CE240 7F099710 460A1101 */ sub.s $f4, $f2, $f10 -/* 0CE244 7F099714 46002182 */ mul.s $f6, $f4, $f0 -/* 0CE248 7F099718 46064280 */ add.s $f10, $f8, $f6 -/* 0CE24C 7F09971C E7AA016C */ swc1 $f10, 0x16c($sp) -/* 0CE250 7F099720 C4680018 */ lwc1 $f8, 0x18($v1) -/* 0CE254 7F099724 C4500018 */ lwc1 $f16, 0x18($v0) -/* 0CE258 7F099728 C5640018 */ lwc1 $f4, 0x18($t3) -/* 0CE25C 7F09972C 46088181 */ sub.s $f6, $f16, $f8 -/* 0CE260 7F099730 46003282 */ mul.s $f10, $f6, $f0 -/* 0CE264 7F099734 460A2200 */ add.s $f8, $f4, $f10 -/* 0CE268 7F099738 E7A80168 */ swc1 $f8, 0x168($sp) -/* 0CE26C 7F09973C C464001C */ lwc1 $f4, 0x1c($v1) -/* 0CE270 7F099740 C452001C */ lwc1 $f18, 0x1c($v0) -/* 0CE274 7F099744 C566001C */ lwc1 $f6, 0x1c($t3) -/* 0CE278 7F099748 46049281 */ sub.s $f10, $f18, $f4 -/* 0CE27C 7F09974C 46005202 */ mul.s $f8, $f10, $f0 -/* 0CE280 7F099750 44815000 */ mtc1 $at, $f10 -/* 0CE284 7F099754 46083100 */ add.s $f4, $f6, $f8 -/* 0CE288 7F099758 460A7182 */ mul.s $f6, $f14, $f10 -/* 0CE28C 7F09975C E7A40164 */ swc1 $f4, 0x164($sp) -/* 0CE290 7F099760 4459F800 */ cfc1 $t9, $31 -/* 0CE294 7F099764 44CEF800 */ ctc1 $t6, $31 -/* 0CE298 7F099768 00000000 */ nop -/* 0CE29C 7F09976C 46003224 */ cvt.w.s $f8, $f6 -/* 0CE2A0 7F099770 444EF800 */ cfc1 $t6, $31 -/* 0CE2A4 7F099774 00000000 */ nop -/* 0CE2A8 7F099778 31CE0078 */ andi $t6, $t6, 0x78 -/* 0CE2AC 7F09977C 11C00012 */ beqz $t6, .L7F0997C8 -/* 0CE2B0 7F099780 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0CE2B4 7F099784 44814000 */ mtc1 $at, $f8 -/* 0CE2B8 7F099788 240E0001 */ li $t6, 1 -/* 0CE2BC 7F09978C 46083201 */ sub.s $f8, $f6, $f8 -/* 0CE2C0 7F099790 44CEF800 */ ctc1 $t6, $31 -/* 0CE2C4 7F099794 00000000 */ nop -/* 0CE2C8 7F099798 46004224 */ cvt.w.s $f8, $f8 -/* 0CE2CC 7F09979C 444EF800 */ cfc1 $t6, $31 -/* 0CE2D0 7F0997A0 00000000 */ nop -/* 0CE2D4 7F0997A4 31CE0078 */ andi $t6, $t6, 0x78 -/* 0CE2D8 7F0997A8 15C00005 */ bnez $t6, .L7F0997C0 -/* 0CE2DC 7F0997AC 00000000 */ nop -/* 0CE2E0 7F0997B0 440E4000 */ mfc1 $t6, $f8 -/* 0CE2E4 7F0997B4 3C018000 */ lui $at, 0x8000 -/* 0CE2E8 7F0997B8 10000007 */ b .L7F0997D8 -/* 0CE2EC 7F0997BC 01C17025 */ or $t6, $t6, $at -.L7F0997C0: -/* 0CE2F0 7F0997C0 10000005 */ b .L7F0997D8 -/* 0CE2F4 7F0997C4 240EFFFF */ li $t6, -1 -.L7F0997C8: -/* 0CE2F8 7F0997C8 440E4000 */ mfc1 $t6, $f8 -/* 0CE2FC 7F0997CC 00000000 */ nop -/* 0CE300 7F0997D0 05C0FFFB */ bltz $t6, .L7F0997C0 -/* 0CE304 7F0997D4 00000000 */ nop -.L7F0997D8: -/* 0CE308 7F0997D8 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CE30C 7F0997DC 44D9F800 */ ctc1 $t9, $31 -/* 0CE310 7F0997E0 44812000 */ mtc1 $at, $f4 -/* 0CE314 7F0997E4 240F0001 */ li $t7, 1 -/* 0CE318 7F0997E8 AFAE0160 */ sw $t6, 0x160($sp) -/* 0CE31C 7F0997EC 46041282 */ mul.s $f10, $f2, $f4 -/* 0CE320 7F0997F0 4458F800 */ cfc1 $t8, $31 -/* 0CE324 7F0997F4 44CFF800 */ ctc1 $t7, $31 -/* 0CE328 7F0997F8 00000000 */ nop -/* 0CE32C 7F0997FC 460051A4 */ cvt.w.s $f6, $f10 -/* 0CE330 7F099800 444FF800 */ cfc1 $t7, $31 -/* 0CE334 7F099804 00000000 */ nop -/* 0CE338 7F099808 31EF0078 */ andi $t7, $t7, 0x78 -/* 0CE33C 7F09980C 11E00012 */ beqz $t7, .L7F099858 -/* 0CE340 7F099810 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0CE344 7F099814 44813000 */ mtc1 $at, $f6 -/* 0CE348 7F099818 240F0001 */ li $t7, 1 -/* 0CE34C 7F09981C 46065181 */ sub.s $f6, $f10, $f6 -/* 0CE350 7F099820 44CFF800 */ ctc1 $t7, $31 -/* 0CE354 7F099824 00000000 */ nop -/* 0CE358 7F099828 460031A4 */ cvt.w.s $f6, $f6 -/* 0CE35C 7F09982C 444FF800 */ cfc1 $t7, $31 -/* 0CE360 7F099830 00000000 */ nop -/* 0CE364 7F099834 31EF0078 */ andi $t7, $t7, 0x78 -/* 0CE368 7F099838 15E00005 */ bnez $t7, .L7F099850 -/* 0CE36C 7F09983C 00000000 */ nop -/* 0CE370 7F099840 440F3000 */ mfc1 $t7, $f6 -/* 0CE374 7F099844 3C018000 */ lui $at, 0x8000 -/* 0CE378 7F099848 10000007 */ b .L7F099868 -/* 0CE37C 7F09984C 01E17825 */ or $t7, $t7, $at -.L7F099850: -/* 0CE380 7F099850 10000005 */ b .L7F099868 -/* 0CE384 7F099854 240FFFFF */ li $t7, -1 -.L7F099858: -/* 0CE388 7F099858 440F3000 */ mfc1 $t7, $f6 -/* 0CE38C 7F09985C 00000000 */ nop -/* 0CE390 7F099860 05E0FFFB */ bltz $t7, .L7F099850 -/* 0CE394 7F099864 00000000 */ nop -.L7F099868: -/* 0CE398 7F099868 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CE39C 7F09986C 44D8F800 */ ctc1 $t8, $31 -/* 0CE3A0 7F099870 44814000 */ mtc1 $at, $f8 -/* 0CE3A4 7F099874 240E0001 */ li $t6, 1 -/* 0CE3A8 7F099878 AFAF015C */ sw $t7, 0x15c($sp) -/* 0CE3AC 7F09987C 46088102 */ mul.s $f4, $f16, $f8 -/* 0CE3B0 7F099880 4459F800 */ cfc1 $t9, $31 -/* 0CE3B4 7F099884 44CEF800 */ ctc1 $t6, $31 -/* 0CE3B8 7F099888 00000000 */ nop -/* 0CE3BC 7F09988C 460022A4 */ cvt.w.s $f10, $f4 -/* 0CE3C0 7F099890 444EF800 */ cfc1 $t6, $31 -/* 0CE3C4 7F099894 00000000 */ nop -/* 0CE3C8 7F099898 31CE0078 */ andi $t6, $t6, 0x78 -/* 0CE3CC 7F09989C 11C00012 */ beqz $t6, .L7F0998E8 -/* 0CE3D0 7F0998A0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0CE3D4 7F0998A4 44815000 */ mtc1 $at, $f10 -/* 0CE3D8 7F0998A8 240E0001 */ li $t6, 1 -/* 0CE3DC 7F0998AC 460A2281 */ sub.s $f10, $f4, $f10 -/* 0CE3E0 7F0998B0 44CEF800 */ ctc1 $t6, $31 -/* 0CE3E4 7F0998B4 00000000 */ nop -/* 0CE3E8 7F0998B8 460052A4 */ cvt.w.s $f10, $f10 -/* 0CE3EC 7F0998BC 444EF800 */ cfc1 $t6, $31 -/* 0CE3F0 7F0998C0 00000000 */ nop -/* 0CE3F4 7F0998C4 31CE0078 */ andi $t6, $t6, 0x78 -/* 0CE3F8 7F0998C8 15C00005 */ bnez $t6, .L7F0998E0 -/* 0CE3FC 7F0998CC 00000000 */ nop -/* 0CE400 7F0998D0 440E5000 */ mfc1 $t6, $f10 -/* 0CE404 7F0998D4 3C018000 */ lui $at, 0x8000 -/* 0CE408 7F0998D8 10000007 */ b .L7F0998F8 -/* 0CE40C 7F0998DC 01C17025 */ or $t6, $t6, $at -.L7F0998E0: -/* 0CE410 7F0998E0 10000005 */ b .L7F0998F8 -/* 0CE414 7F0998E4 240EFFFF */ li $t6, -1 -.L7F0998E8: -/* 0CE418 7F0998E8 440E5000 */ mfc1 $t6, $f10 -/* 0CE41C 7F0998EC 00000000 */ nop -/* 0CE420 7F0998F0 05C0FFFB */ bltz $t6, .L7F0998E0 -/* 0CE424 7F0998F4 00000000 */ nop -.L7F0998F8: -/* 0CE428 7F0998F8 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0CE42C 7F0998FC 44D9F800 */ ctc1 $t9, $31 -/* 0CE430 7F099900 44813000 */ mtc1 $at, $f6 -/* 0CE434 7F099904 240F0001 */ li $t7, 1 -/* 0CE438 7F099908 AFAE0158 */ sw $t6, 0x158($sp) -/* 0CE43C 7F09990C 46069202 */ mul.s $f8, $f18, $f6 -/* 0CE440 7F099910 4458F800 */ cfc1 $t8, $31 -/* 0CE444 7F099914 44CFF800 */ ctc1 $t7, $31 -/* 0CE448 7F099918 00000000 */ nop -/* 0CE44C 7F09991C 46004124 */ cvt.w.s $f4, $f8 -/* 0CE450 7F099920 444FF800 */ cfc1 $t7, $31 -/* 0CE454 7F099924 00000000 */ nop -/* 0CE458 7F099928 31EF0078 */ andi $t7, $t7, 0x78 -/* 0CE45C 7F09992C 11E00012 */ beqz $t7, .L7F099978 -/* 0CE460 7F099930 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0CE464 7F099934 44812000 */ mtc1 $at, $f4 -/* 0CE468 7F099938 240F0001 */ li $t7, 1 -/* 0CE46C 7F09993C 46044101 */ sub.s $f4, $f8, $f4 -/* 0CE470 7F099940 44CFF800 */ ctc1 $t7, $31 -/* 0CE474 7F099944 00000000 */ nop -/* 0CE478 7F099948 46002124 */ cvt.w.s $f4, $f4 -/* 0CE47C 7F09994C 444FF800 */ cfc1 $t7, $31 -/* 0CE480 7F099950 00000000 */ nop -/* 0CE484 7F099954 31EF0078 */ andi $t7, $t7, 0x78 -/* 0CE488 7F099958 15E00005 */ bnez $t7, .L7F099970 -/* 0CE48C 7F09995C 00000000 */ nop -/* 0CE490 7F099960 440F2000 */ mfc1 $t7, $f4 -/* 0CE494 7F099964 3C018000 */ lui $at, 0x8000 -/* 0CE498 7F099968 10000007 */ b .L7F099988 -/* 0CE49C 7F09996C 01E17825 */ or $t7, $t7, $at -.L7F099970: -/* 0CE4A0 7F099970 10000005 */ b .L7F099988 -/* 0CE4A4 7F099974 240FFFFF */ li $t7, -1 -.L7F099978: -/* 0CE4A8 7F099978 440F2000 */ mfc1 $t7, $f4 -/* 0CE4AC 7F09997C 00000000 */ nop -/* 0CE4B0 7F099980 05E0FFFB */ bltz $t7, .L7F099970 -/* 0CE4B4 7F099984 00000000 */ nop -.L7F099988: -/* 0CE4B8 7F099988 8FB904D8 */ lw $t9, 0x4d8($sp) -/* 0CE4BC 7F09998C AFAF0154 */ sw $t7, 0x154($sp) -/* 0CE4C0 7F099990 44D8F800 */ ctc1 $t8, $31 -/* 0CE4C4 7F099994 C4460028 */ lwc1 $f6, 0x28($v0) -/* 0CE4C8 7F099998 C72A0028 */ lwc1 $f10, 0x28($t9) -/* 0CE4CC 7F09999C 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE4D0 7F0999A0 44812000 */ mtc1 $at, $f4 -/* 0CE4D4 7F0999A4 46065201 */ sub.s $f8, $f10, $f6 -/* 0CE4D8 7F0999A8 C7A60170 */ lwc1 $f6, 0x170($sp) -/* 0CE4DC 7F0999AC 46044282 */ mul.s $f10, $f8, $f4 -/* 0CE4E0 7F0999B0 460E3201 */ sub.s $f8, $f6, $f14 -/* 0CE4E4 7F0999B4 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE4E8 7F0999B8 460A4303 */ div.s $f12, $f8, $f10 -/* 0CE4EC 7F0999BC 8FA304D4 */ lw $v1, 0x4d4($sp) -/* 0CE4F0 7F0999C0 AFA20150 */ sw $v0, 0x150($sp) -/* 0CE4F4 7F0999C4 C7A4016C */ lwc1 $f4, 0x16c($sp) -/* 0CE4F8 7F0999C8 C4660014 */ lwc1 $f6, 0x14($v1) -/* 0CE4FC 7F0999CC 8FAE04D8 */ lw $t6, 0x4d8($sp) -/* 0CE500 7F0999D0 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE504 7F0999D4 46062201 */ sub.s $f8, $f4, $f6 -/* 0CE508 7F0999D8 C4640028 */ lwc1 $f4, 0x28($v1) -/* 0CE50C 7F0999DC C5CA0028 */ lwc1 $f10, 0x28($t6) -/* 0CE510 7F0999E0 46045181 */ sub.s $f6, $f10, $f4 -/* 0CE514 7F0999E4 44815000 */ mtc1 $at, $f10 -/* 0CE518 7F0999E8 00000000 */ nop -/* 0CE51C 7F0999EC 460A3102 */ mul.s $f4, $f6, $f10 -/* 0CE520 7F0999F0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE524 7F0999F4 46044303 */ div.s $f12, $f8, $f4 -/* 0CE528 7F0999F8 8FA304D4 */ lw $v1, 0x4d4($sp) -/* 0CE52C 7F0999FC AFA2014C */ sw $v0, 0x14c($sp) -/* 0CE530 7F099A00 C7A60168 */ lwc1 $f6, 0x168($sp) -/* 0CE534 7F099A04 C46A0018 */ lwc1 $f10, 0x18($v1) -/* 0CE538 7F099A08 8FB804D8 */ lw $t8, 0x4d8($sp) -/* 0CE53C 7F099A0C 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE540 7F099A10 460A3201 */ sub.s $f8, $f6, $f10 -/* 0CE544 7F099A14 C4660028 */ lwc1 $f6, 0x28($v1) -/* 0CE548 7F099A18 C7040028 */ lwc1 $f4, 0x28($t8) -/* 0CE54C 7F099A1C 46062281 */ sub.s $f10, $f4, $f6 -/* 0CE550 7F099A20 44812000 */ mtc1 $at, $f4 -/* 0CE554 7F099A24 00000000 */ nop -/* 0CE558 7F099A28 46045182 */ mul.s $f6, $f10, $f4 -/* 0CE55C 7F099A2C 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE560 7F099A30 46064303 */ div.s $f12, $f8, $f6 -/* 0CE564 7F099A34 8FA304D4 */ lw $v1, 0x4d4($sp) -/* 0CE568 7F099A38 AFA20148 */ sw $v0, 0x148($sp) -/* 0CE56C 7F099A3C C7AA0164 */ lwc1 $f10, 0x164($sp) -/* 0CE570 7F099A40 C464001C */ lwc1 $f4, 0x1c($v1) -/* 0CE574 7F099A44 8FAF04D8 */ lw $t7, 0x4d8($sp) -/* 0CE578 7F099A48 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE57C 7F099A4C 46045201 */ sub.s $f8, $f10, $f4 -/* 0CE580 7F099A50 C46A0028 */ lwc1 $f10, 0x28($v1) -/* 0CE584 7F099A54 C5E60028 */ lwc1 $f6, 0x28($t7) -/* 0CE588 7F099A58 460A3101 */ sub.s $f4, $f6, $f10 -/* 0CE58C 7F099A5C 44813000 */ mtc1 $at, $f6 -/* 0CE590 7F099A60 00000000 */ nop -/* 0CE594 7F099A64 46062282 */ mul.s $f10, $f4, $f6 -/* 0CE598 7F099A68 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE59C 7F099A6C 460A4303 */ div.s $f12, $f8, $f10 -/* 0CE5A0 7F099A70 8FA304DC */ lw $v1, 0x4dc($sp) -/* 0CE5A4 7F099A74 8FB904D4 */ lw $t9, 0x4d4($sp) -/* 0CE5A8 7F099A78 AFA20144 */ sw $v0, 0x144($sp) -/* 0CE5AC 7F099A7C C4640010 */ lwc1 $f4, 0x10($v1) -/* 0CE5B0 7F099A80 C7260010 */ lwc1 $f6, 0x10($t9) -/* 0CE5B4 7F099A84 C46A002C */ lwc1 $f10, 0x2c($v1) -/* 0CE5B8 7F099A88 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE5BC 7F099A8C 46062201 */ sub.s $f8, $f4, $f6 -/* 0CE5C0 7F099A90 C724002C */ lwc1 $f4, 0x2c($t9) -/* 0CE5C4 7F099A94 46045181 */ sub.s $f6, $f10, $f4 -/* 0CE5C8 7F099A98 44815000 */ mtc1 $at, $f10 -/* 0CE5CC 7F099A9C 00000000 */ nop -/* 0CE5D0 7F099AA0 460A3102 */ mul.s $f4, $f6, $f10 -/* 0CE5D4 7F099AA4 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE5D8 7F099AA8 46044303 */ div.s $f12, $f8, $f4 -/* 0CE5DC 7F099AAC 8FA304DC */ lw $v1, 0x4dc($sp) -/* 0CE5E0 7F099AB0 8FAE04D4 */ lw $t6, 0x4d4($sp) -/* 0CE5E4 7F099AB4 AFA20130 */ sw $v0, 0x130($sp) -/* 0CE5E8 7F099AB8 AFA20140 */ sw $v0, 0x140($sp) -/* 0CE5EC 7F099ABC C4660014 */ lwc1 $f6, 0x14($v1) -/* 0CE5F0 7F099AC0 C5CA0014 */ lwc1 $f10, 0x14($t6) -/* 0CE5F4 7F099AC4 C464002C */ lwc1 $f4, 0x2c($v1) -/* 0CE5F8 7F099AC8 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE5FC 7F099ACC 460A3201 */ sub.s $f8, $f6, $f10 -/* 0CE600 7F099AD0 C5C6002C */ lwc1 $f6, 0x2c($t6) -/* 0CE604 7F099AD4 46062281 */ sub.s $f10, $f4, $f6 -/* 0CE608 7F099AD8 44812000 */ mtc1 $at, $f4 -/* 0CE60C 7F099ADC 00000000 */ nop -/* 0CE610 7F099AE0 46045182 */ mul.s $f6, $f10, $f4 -/* 0CE614 7F099AE4 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE618 7F099AE8 46064303 */ div.s $f12, $f8, $f6 -/* 0CE61C 7F099AEC 8FB804DC */ lw $t8, 0x4dc($sp) -/* 0CE620 7F099AF0 8FAF04D4 */ lw $t7, 0x4d4($sp) -/* 0CE624 7F099AF4 AFA2012C */ sw $v0, 0x12c($sp) -/* 0CE628 7F099AF8 AFA2013C */ sw $v0, 0x13c($sp) -/* 0CE62C 7F099AFC C70A0018 */ lwc1 $f10, 0x18($t8) -/* 0CE630 7F099B00 C5E40018 */ lwc1 $f4, 0x18($t7) -/* 0CE634 7F099B04 C706002C */ lwc1 $f6, 0x2c($t8) -/* 0CE638 7F099B08 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE63C 7F099B0C 46045201 */ sub.s $f8, $f10, $f4 -/* 0CE640 7F099B10 C5EA002C */ lwc1 $f10, 0x2c($t7) -/* 0CE644 7F099B14 460A3101 */ sub.s $f4, $f6, $f10 -/* 0CE648 7F099B18 44813000 */ mtc1 $at, $f6 -/* 0CE64C 7F099B1C 00000000 */ nop -/* 0CE650 7F099B20 46062282 */ mul.s $f10, $f4, $f6 -/* 0CE654 7F099B24 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE658 7F099B28 460A4303 */ div.s $f12, $f8, $f10 -/* 0CE65C 7F099B2C 8FB904DC */ lw $t9, 0x4dc($sp) -/* 0CE660 7F099B30 8FAE04D4 */ lw $t6, 0x4d4($sp) -/* 0CE664 7F099B34 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0CE668 7F099B38 C724001C */ lwc1 $f4, 0x1c($t9) -/* 0CE66C 7F099B3C C5C6001C */ lwc1 $f6, 0x1c($t6) -/* 0CE670 7F099B40 C72A002C */ lwc1 $f10, 0x2c($t9) -/* 0CE674 7F099B44 46062201 */ sub.s $f8, $f4, $f6 -/* 0CE678 7F099B48 C5C4002C */ lwc1 $f4, 0x2c($t6) -/* 0CE67C 7F099B4C AFA20138 */ sw $v0, 0x138($sp) -/* 0CE680 7F099B50 AFA20128 */ sw $v0, 0x128($sp) -/* 0CE684 7F099B54 46045181 */ sub.s $f6, $f10, $f4 -/* 0CE688 7F099B58 44815000 */ mtc1 $at, $f10 -/* 0CE68C 7F099B5C 00000000 */ nop -/* 0CE690 7F099B60 460A3102 */ mul.s $f4, $f6, $f10 -/* 0CE694 7F099B64 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CE698 7F099B68 46044303 */ div.s $f12, $f8, $f4 -/* 0CE69C 7F099B6C 8FAB015C */ lw $t3, 0x15c($sp) -/* 0CE6A0 7F099B70 8FAA0160 */ lw $t2, 0x160($sp) -/* 0CE6A4 7F099B74 3C09FFFF */ lui $t1, 0xffff -/* 0CE6A8 7F099B78 02001825 */ move $v1, $s0 -/* 0CE6AC 7F099B7C 01697824 */ and $t7, $t3, $t1 -/* 0CE6B0 7F099B80 8FAC0128 */ lw $t4, 0x128($sp) -/* 0CE6B4 7F099B84 8FAD0138 */ lw $t5, 0x138($sp) -/* 0CE6B8 7F099B88 8FBF0158 */ lw $ra, 0x158($sp) -/* 0CE6BC 7F099B8C 000FCC02 */ srl $t9, $t7, 0x10 -/* 0CE6C0 7F099B90 0149C024 */ and $t8, $t2, $t1 -/* 0CE6C4 7F099B94 3C08B400 */ lui $t0, 0xb400 -/* 0CE6C8 7F099B98 03197025 */ or $t6, $t8, $t9 -/* 0CE6CC 7F099B9C 26100008 */ addiu $s0, $s0, 8 -/* 0CE6D0 7F099BA0 AC6E0004 */ sw $t6, 4($v1) -/* 0CE6D4 7F099BA4 AC680000 */ sw $t0, ($v1) -/* 0CE6D8 7F099BA8 02002025 */ move $a0, $s0 -/* 0CE6DC 7F099BAC 3C0FB200 */ lui $t7, 0xb200 -/* 0CE6E0 7F099BB0 AC8F0000 */ sw $t7, ($a0) -/* 0CE6E4 7F099BB4 8FB90154 */ lw $t9, 0x154($sp) -/* 0CE6E8 7F099BB8 03E9C024 */ and $t8, $ra, $t1 -/* 0CE6EC 7F099BBC 26100008 */ addiu $s0, $s0, 8 -/* 0CE6F0 7F099BC0 03297024 */ and $t6, $t9, $t1 -/* 0CE6F4 7F099BC4 000E7C02 */ srl $t7, $t6, 0x10 -/* 0CE6F8 7F099BC8 030FC825 */ or $t9, $t8, $t7 -/* 0CE6FC 7F099BCC AC990004 */ sw $t9, 4($a0) -/* 0CE700 7F099BD0 02002825 */ move $a1, $s0 -/* 0CE704 7F099BD4 ACA80000 */ sw $t0, ($a1) -/* 0CE708 7F099BD8 8FAF014C */ lw $t7, 0x14c($sp) -/* 0CE70C 7F099BDC 8FAE0150 */ lw $t6, 0x150($sp) -/* 0CE710 7F099BE0 26100008 */ addiu $s0, $s0, 8 -/* 0CE714 7F099BE4 01E9C824 */ and $t9, $t7, $t1 -/* 0CE718 7F099BE8 01C9C024 */ and $t8, $t6, $t1 -/* 0CE71C 7F099BEC 00197402 */ srl $t6, $t9, 0x10 -/* 0CE720 7F099BF0 030E7825 */ or $t7, $t8, $t6 -/* 0CE724 7F099BF4 ACAF0004 */ sw $t7, 4($a1) -/* 0CE728 7F099BF8 3C05B200 */ lui $a1, %hi(0xB2000004) # $a1, 0xb200 -/* 0CE72C 7F099BFC 02003025 */ move $a2, $s0 -/* 0CE730 7F099C00 ACC50000 */ sw $a1, ($a2) -/* 0CE734 7F099C04 8FAE0144 */ lw $t6, 0x144($sp) -/* 0CE738 7F099C08 8FB90148 */ lw $t9, 0x148($sp) -/* 0CE73C 7F099C0C 26100008 */ addiu $s0, $s0, 8 -/* 0CE740 7F099C10 01C97824 */ and $t7, $t6, $t1 -/* 0CE744 7F099C14 0329C024 */ and $t8, $t9, $t1 -/* 0CE748 7F099C18 000FCC02 */ srl $t9, $t7, 0x10 -/* 0CE74C 7F099C1C 03197025 */ or $t6, $t8, $t9 -/* 0CE750 7F099C20 ACCE0004 */ sw $t6, 4($a2) -/* 0CE754 7F099C24 02001825 */ move $v1, $s0 -/* 0CE758 7F099C28 3179FFFF */ andi $t9, $t3, 0xffff -/* 0CE75C 7F099C2C 000AC400 */ sll $t8, $t2, 0x10 -/* 0CE760 7F099C30 03197025 */ or $t6, $t8, $t9 -/* 0CE764 7F099C34 26100008 */ addiu $s0, $s0, 8 -/* 0CE768 7F099C38 AC6E0004 */ sw $t6, 4($v1) -/* 0CE76C 7F099C3C AC680000 */ sw $t0, ($v1) -/* 0CE770 7F099C40 02002025 */ move $a0, $s0 -/* 0CE774 7F099C44 AC850000 */ sw $a1, ($a0) -/* 0CE778 7F099C48 8FB90154 */ lw $t9, 0x154($sp) -/* 0CE77C 7F099C4C 001FC400 */ sll $t8, $ra, 0x10 -/* 0CE780 7F099C50 26100008 */ addiu $s0, $s0, 8 -/* 0CE784 7F099C54 332EFFFF */ andi $t6, $t9, 0xffff -/* 0CE788 7F099C58 030E7825 */ or $t7, $t8, $t6 -/* 0CE78C 7F099C5C AC8F0004 */ sw $t7, 4($a0) -/* 0CE790 7F099C60 02003825 */ move $a3, $s0 -/* 0CE794 7F099C64 ACE80000 */ sw $t0, ($a3) -/* 0CE798 7F099C68 8FAF014C */ lw $t7, 0x14c($sp) -/* 0CE79C 7F099C6C 8FB80150 */ lw $t8, 0x150($sp) -/* 0CE7A0 7F099C70 8FAA0140 */ lw $t2, 0x140($sp) -/* 0CE7A4 7F099C74 31F9FFFF */ andi $t9, $t7, 0xffff -/* 0CE7A8 7F099C78 00187400 */ sll $t6, $t8, 0x10 -/* 0CE7AC 7F099C7C 8FA8013C */ lw $t0, 0x13c($sp) -/* 0CE7B0 7F099C80 01D9C025 */ or $t8, $t6, $t9 -/* 0CE7B4 7F099C84 26100008 */ addiu $s0, $s0, 8 -/* 0CE7B8 7F099C88 ACF80004 */ sw $t8, 4($a3) -/* 0CE7BC 7F099C8C 02001825 */ move $v1, $s0 -/* 0CE7C0 7F099C90 3C0FB200 */ lui $t7, 0xb200 -/* 0CE7C4 7F099C94 AC6F0000 */ sw $t7, ($v1) -/* 0CE7C8 7F099C98 8FAF0144 */ lw $t7, 0x144($sp) -/* 0CE7CC 7F099C9C 8FB90148 */ lw $t9, 0x148($sp) -/* 0CE7D0 7F099CA0 26100008 */ addiu $s0, $s0, 8 -/* 0CE7D4 7F099CA4 31EEFFFF */ andi $t6, $t7, 0xffff -/* 0CE7D8 7F099CA8 0019C400 */ sll $t8, $t9, 0x10 -/* 0CE7DC 7F099CAC 030EC825 */ or $t9, $t8, $t6 -/* 0CE7E0 7F099CB0 0109C024 */ and $t8, $t0, $t1 -/* 0CE7E4 7F099CB4 AC790004 */ sw $t9, 4($v1) -/* 0CE7E8 7F099CB8 00187402 */ srl $t6, $t8, 0x10 -/* 0CE7EC 7F099CBC 01497824 */ and $t7, $t2, $t1 -/* 0CE7F0 7F099CC0 01EEC825 */ or $t9, $t7, $t6 -/* 0CE7F4 7F099CC4 02002025 */ move $a0, $s0 -/* 0CE7F8 7F099CC8 26100008 */ addiu $s0, $s0, 8 -/* 0CE7FC 7F099CCC 3C1FB400 */ lui $ra, 0xb400 -/* 0CE800 7F099CD0 AC990004 */ sw $t9, 4($a0) -/* 0CE804 7F099CD4 02002825 */ move $a1, $s0 -/* 0CE808 7F099CD8 00493024 */ and $a2, $v0, $t1 -/* 0CE80C 7F099CDC AC9F0000 */ sw $ra, ($a0) -/* 0CE810 7F099CE0 00067C02 */ srl $t7, $a2, 0x10 -/* 0CE814 7F099CE4 01A97024 */ and $t6, $t5, $t1 -/* 0CE818 7F099CE8 01CFC825 */ or $t9, $t6, $t7 -/* 0CE81C 7F099CEC 26100008 */ addiu $s0, $s0, 8 -/* 0CE820 7F099CF0 3C18B200 */ lui $t8, 0xb200 -/* 0CE824 7F099CF4 ACB80000 */ sw $t8, ($a1) -/* 0CE828 7F099CF8 ACB90004 */ sw $t9, %lo(0xB2000004)($a1) -/* 0CE82C 7F099CFC 02001825 */ move $v1, $s0 -/* 0CE830 7F099D00 AC7F0000 */ sw $ra, ($v1) -/* 0CE834 7F099D04 8FAE012C */ lw $t6, 0x12c($sp) -/* 0CE838 7F099D08 8FB80130 */ lw $t8, 0x130($sp) -/* 0CE83C 7F099D0C 01E03025 */ move $a2, $t7 -/* 0CE840 7F099D10 01C9C824 */ and $t9, $t6, $t1 -/* 0CE844 7F099D14 03097824 */ and $t7, $t8, $t1 -/* 0CE848 7F099D18 0019C402 */ srl $t8, $t9, 0x10 -/* 0CE84C 7F099D1C 01F87025 */ or $t6, $t7, $t8 -/* 0CE850 7F099D20 26100008 */ addiu $s0, $s0, 8 -/* 0CE854 7F099D24 02002025 */ move $a0, $s0 -/* 0CE858 7F099D28 01897824 */ and $t7, $t4, $t1 -/* 0CE85C 7F099D2C AC6E0004 */ sw $t6, 4($v1) -/* 0CE860 7F099D30 01E6C025 */ or $t8, $t7, $a2 -/* 0CE864 7F099D34 3C19B200 */ lui $t9, 0xb200 -/* 0CE868 7F099D38 AC990000 */ sw $t9, ($a0) -/* 0CE86C 7F099D3C 26100008 */ addiu $s0, $s0, 8 -/* 0CE870 7F099D40 AC980004 */ sw $t8, 4($a0) -/* 0CE874 7F099D44 02002825 */ move $a1, $s0 -/* 0CE878 7F099D48 000ACC00 */ sll $t9, $t2, 0x10 -/* 0CE87C 7F099D4C 310FFFFF */ andi $t7, $t0, 0xffff -/* 0CE880 7F099D50 032FC025 */ or $t8, $t9, $t7 -/* 0CE884 7F099D54 26100008 */ addiu $s0, $s0, 8 -/* 0CE888 7F099D58 ACB80004 */ sw $t8, %lo(0xB2000004)($a1) -/* 0CE88C 7F099D5C ACBF0000 */ sw $ra, ($a1) -/* 0CE890 7F099D60 02005825 */ move $t3, $s0 -/* 0CE894 7F099D64 304FFFFF */ andi $t7, $v0, 0xffff -/* 0CE898 7F099D68 000DCC00 */ sll $t9, $t5, 0x10 -/* 0CE89C 7F099D6C 032FC025 */ or $t8, $t9, $t7 -/* 0CE8A0 7F099D70 26100008 */ addiu $s0, $s0, 8 -/* 0CE8A4 7F099D74 3C1FB200 */ lui $ra, 0xb200 -/* 0CE8A8 7F099D78 AD7F0000 */ sw $ra, ($t3) -/* 0CE8AC 7F099D7C AD780004 */ sw $t8, 4($t3) -/* 0CE8B0 7F099D80 02003825 */ move $a3, $s0 -/* 0CE8B4 7F099D84 3C0EB400 */ lui $t6, 0xb400 -/* 0CE8B8 7F099D88 ACEE0000 */ sw $t6, ($a3) -/* 0CE8BC 7F099D8C 8FAE012C */ lw $t6, 0x12c($sp) -/* 0CE8C0 7F099D90 8FAF0130 */ lw $t7, 0x130($sp) -/* 0CE8C4 7F099D94 26100008 */ addiu $s0, $s0, 8 -/* 0CE8C8 7F099D98 31D9FFFF */ andi $t9, $t6, 0xffff -/* 0CE8CC 7F099D9C 000FC400 */ sll $t8, $t7, 0x10 -/* 0CE8D0 7F099DA0 03197825 */ or $t7, $t8, $t9 -/* 0CE8D4 7F099DA4 ACEF0004 */ sw $t7, 4($a3) -/* 0CE8D8 7F099DA8 3059FFFF */ andi $t9, $v0, 0xffff -/* 0CE8DC 7F099DAC 02004025 */ move $t0, $s0 -/* 0CE8E0 7F099DB0 000CC400 */ sll $t8, $t4, 0x10 -/* 0CE8E4 7F099DB4 03197825 */ or $t7, $t8, $t9 -/* 0CE8E8 7F099DB8 3C013D00 */ li $at, 0x3D000000 # 0.031250 -/* 0CE8EC 7F099DBC AD0F0004 */ sw $t7, 4($t0) -/* 0CE8F0 7F099DC0 AD1F0000 */ sw $ra, ($t0) -/* 0CE8F4 7F099DC4 44817000 */ mtc1 $at, $f14 -/* 0CE8F8 7F099DC8 C7A60364 */ lwc1 $f6, 0x364($sp) -/* 0CE8FC 7F099DCC C7A80368 */ lwc1 $f8, 0x368($sp) -/* 0CE900 7F099DD0 26100008 */ addiu $s0, $s0, 8 -/* 0CE904 7F099DD4 460E3282 */ mul.s $f10, $f6, $f14 -/* 0CE908 7F099DD8 C7A603AC */ lwc1 $f6, 0x3ac($sp) -/* 0CE90C 7F099DDC 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0CE910 7F099DE0 460E4102 */ mul.s $f4, $f8, $f14 -/* 0CE914 7F099DE4 27A20204 */ addiu $v0, $sp, 0x204 -/* 0CE918 7F099DE8 27A501F4 */ addiu $a1, $sp, 0x1f4 -/* 0CE91C 7F099DEC 27A402D4 */ addiu $a0, $sp, 0x2d4 -/* 0CE920 7F099DF0 E7AA0234 */ swc1 $f10, 0x234($sp) -/* 0CE924 7F099DF4 460E3282 */ mul.s $f10, $f6, $f14 -/* 0CE928 7F099DF8 27A60214 */ addiu $a2, $sp, 0x214 -/* 0CE92C 7F099DFC E7A40238 */ swc1 $f4, 0x238($sp) -/* 0CE930 7F099E00 27A302F4 */ addiu $v1, $sp, 0x2f4 -/* 0CE934 7F099E04 E7AA023C */ swc1 $f10, 0x23c($sp) -.L7F099E08: -/* 0CE938 7F099E08 C4800000 */ lwc1 $f0, ($a0) -/* 0CE93C 7F099E0C 4600A03E */ c.le.s $f20, $f0 -/* 0CE940 7F099E10 00000000 */ nop -/* 0CE944 7F099E14 45020004 */ bc1fl .L7F099E28 -/* 0CE948 7F099E18 46000307 */ neg.s $f12, $f0 -/* 0CE94C 7F099E1C 10000002 */ b .L7F099E28 -/* 0CE950 7F099E20 46000306 */ mov.s $f12, $f0 -/* 0CE954 7F099E24 46000307 */ neg.s $f12, $f0 -.L7F099E28: -/* 0CE958 7F099E28 C4620000 */ lwc1 $f2, ($v1) -/* 0CE95C 7F099E2C 460E6202 */ mul.s $f8, $f12, $f14 -/* 0CE960 7F099E30 4602A03E */ c.le.s $f20, $f2 -/* 0CE964 7F099E34 00000000 */ nop -/* 0CE968 7F099E38 45000003 */ bc1f .L7F099E48 -/* 0CE96C 7F099E3C E4C80000 */ swc1 $f8, ($a2) -/* 0CE970 7F099E40 10000002 */ b .L7F099E4C -/* 0CE974 7F099E44 46001306 */ mov.s $f12, $f2 -.L7F099E48: -/* 0CE978 7F099E48 46001307 */ neg.s $f12, $f2 -.L7F099E4C: -/* 0CE97C 7F099E4C 460E6102 */ mul.s $f4, $f12, $f14 -/* 0CE980 7F099E50 24A50004 */ addiu $a1, $a1, 4 -/* 0CE984 7F099E54 24630004 */ addiu $v1, $v1, 4 -/* 0CE988 7F099E58 24840004 */ addiu $a0, $a0, 4 -/* 0CE98C 7F099E5C 24C60004 */ addiu $a2, $a2, 4 -/* 0CE990 7F099E60 14A2FFE9 */ bne $a1, $v0, .L7F099E08 -/* 0CE994 7F099E64 E4A4FFFC */ swc1 $f4, -4($a1) -/* 0CE998 7F099E68 44811000 */ mtc1 $at, $f2 -/* 0CE99C 7F099E6C C7AA0214 */ lwc1 $f10, 0x214($sp) -/* 0CE9A0 7F099E70 C7A60234 */ lwc1 $f6, 0x234($sp) -/* 0CE9A4 7F099E74 3C013A80 */ li $at, 0x3A800000 # 0.000977 -/* 0CE9A8 7F099E78 460A1202 */ mul.s $f8, $f2, $f10 -/* 0CE9AC 7F099E7C C7AA01F4 */ lwc1 $f10, 0x1f4($sp) -/* 0CE9B0 7F099E80 46083100 */ add.s $f4, $f6, $f8 -/* 0CE9B4 7F099E84 C7A80218 */ lwc1 $f8, 0x218($sp) -/* 0CE9B8 7F099E88 C7A60238 */ lwc1 $f6, 0x238($sp) -/* 0CE9BC 7F099E8C 46045000 */ add.s $f0, $f10, $f4 -/* 0CE9C0 7F099E90 46081282 */ mul.s $f10, $f2, $f8 -/* 0CE9C4 7F099E94 C7A801F8 */ lwc1 $f8, 0x1f8($sp) -/* 0CE9C8 7F099E98 460A3100 */ add.s $f4, $f6, $f10 -/* 0CE9CC 7F099E9C C7AA021C */ lwc1 $f10, 0x21c($sp) -/* 0CE9D0 7F099EA0 C7A6023C */ lwc1 $f6, 0x23c($sp) -/* 0CE9D4 7F099EA4 46044300 */ add.s $f12, $f8, $f4 -/* 0CE9D8 7F099EA8 460A1202 */ mul.s $f8, $f2, $f10 -/* 0CE9DC 7F099EAC C7AA01FC */ lwc1 $f10, 0x1fc($sp) -/* 0CE9E0 7F099EB0 460C003C */ c.lt.s $f0, $f12 -/* 0CE9E4 7F099EB4 E7AC01D8 */ swc1 $f12, 0x1d8($sp) -/* 0CE9E8 7F099EB8 46083100 */ add.s $f4, $f6, $f8 -/* 0CE9EC 7F099EBC 44813000 */ mtc1 $at, $f6 -/* 0CE9F0 7F099EC0 45000003 */ bc1f .L7F099ED0 -/* 0CE9F4 7F099EC4 46045380 */ add.s $f14, $f10, $f4 -/* 0CE9F8 7F099EC8 46006006 */ mov.s $f0, $f12 -/* 0CE9FC 7F099ECC E7AC01D8 */ swc1 $f12, 0x1d8($sp) -.L7F099ED0: -/* 0CEA00 7F099ED0 460E003C */ c.lt.s $f0, $f14 -/* 0CEA04 7F099ED4 E7AE01DC */ swc1 $f14, 0x1dc($sp) -/* 0CEA08 7F099ED8 45000003 */ bc1f .L7F099EE8 -/* 0CEA0C 7F099EDC 00000000 */ nop -/* 0CEA10 7F099EE0 46007006 */ mov.s $f0, $f14 -/* 0CEA14 7F099EE4 E7AE01DC */ swc1 $f14, 0x1dc($sp) -.L7F099EE8: -/* 0CEA18 7F099EE8 46060002 */ mul.s $f0, $f0, $f6 -/* 0CEA1C 7F099EEC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CEA20 7F099EF0 44814000 */ mtc1 $at, $f8 -/* 0CEA24 7F099EF4 00000000 */ nop -/* 0CEA28 7F099EF8 4600403C */ c.lt.s $f8, $f0 -/* 0CEA2C 7F099EFC 00000000 */ nop -/* 0CEA30 7F099F00 45000005 */ bc1f .L7F099F18 -/* 0CEA34 7F099F04 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CEA38 7F099F08 44815000 */ mtc1 $at, $f10 -/* 0CEA3C 7F099F0C E7A001D4 */ swc1 $f0, 0x1d4($sp) -/* 0CEA40 7F099F10 10000004 */ b .L7F099F24 -/* 0CEA44 7F099F14 46005503 */ div.s $f20, $f10, $f0 -.L7F099F18: -/* 0CEA48 7F099F18 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CEA4C 7F099F1C 4481A000 */ mtc1 $at, $f20 -/* 0CEA50 7F099F20 E7A001D4 */ swc1 $f0, 0x1d4($sp) -.L7F099F24: -/* 0CEA54 7F099F24 C7A40254 */ lwc1 $f4, 0x254($sp) -/* 0CEA58 7F099F28 E7B401C4 */ swc1 $f20, 0x1c4($sp) -/* 0CEA5C 7F099F2C 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CEA60 7F099F30 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEA64 7F099F34 00000000 */ nop -/* 0CEA68 7F099F38 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEA6C 7F099F3C C7A60258 */ lwc1 $f6, 0x258($sp) -/* 0CEA70 7F099F40 AFA200E0 */ sw $v0, 0xe0($sp) -/* 0CEA74 7F099F44 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CEA78 7F099F48 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEA7C 7F099F4C 00000000 */ nop -/* 0CEA80 7F099F50 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEA84 7F099F54 C7A8025C */ lwc1 $f8, 0x25c($sp) -/* 0CEA88 7F099F58 AFA200DC */ sw $v0, 0xdc($sp) -/* 0CEA8C 7F099F5C 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CEA90 7F099F60 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEA94 7F099F64 00000000 */ nop -/* 0CEA98 7F099F68 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEA9C 7F099F6C C7AA0260 */ lwc1 $f10, 0x260($sp) -/* 0CEAA0 7F099F70 AFA200D8 */ sw $v0, 0xd8($sp) -/* 0CEAA4 7F099F74 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CEAA8 7F099F78 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEAAC 7F099F7C 00000000 */ nop -/* 0CEAB0 7F099F80 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEAB4 7F099F84 C7A402D4 */ lwc1 $f4, 0x2d4($sp) -/* 0CEAB8 7F099F88 AFA200D4 */ sw $v0, 0xd4($sp) -/* 0CEABC 7F099F8C 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CEAC0 7F099F90 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEAC4 7F099F94 00000000 */ nop -/* 0CEAC8 7F099F98 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEACC 7F099F9C C7A602D8 */ lwc1 $f6, 0x2d8($sp) -/* 0CEAD0 7F099FA0 AFA200D0 */ sw $v0, 0xd0($sp) -/* 0CEAD4 7F099FA4 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CEAD8 7F099FA8 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEADC 7F099FAC 00000000 */ nop -/* 0CEAE0 7F099FB0 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEAE4 7F099FB4 C7A802DC */ lwc1 $f8, 0x2dc($sp) -/* 0CEAE8 7F099FB8 AFA200CC */ sw $v0, 0xcc($sp) -/* 0CEAEC 7F099FBC 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CEAF0 7F099FC0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEAF4 7F099FC4 00000000 */ nop -/* 0CEAF8 7F099FC8 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEAFC 7F099FCC C7AA02E0 */ lwc1 $f10, 0x2e0($sp) -/* 0CEB00 7F099FD0 AFA200C8 */ sw $v0, 0xc8($sp) -/* 0CEB04 7F099FD4 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CEB08 7F099FD8 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB0C 7F099FDC 00000000 */ nop -/* 0CEB10 7F099FE0 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEB14 7F099FE4 C7A402F4 */ lwc1 $f4, 0x2f4($sp) -/* 0CEB18 7F099FE8 AFA200C4 */ sw $v0, 0xc4($sp) -/* 0CEB1C 7F099FEC 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CEB20 7F099FF0 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB24 7F099FF4 00000000 */ nop -/* 0CEB28 7F099FF8 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEB2C 7F099FFC C7A602F8 */ lwc1 $f6, 0x2f8($sp) -/* 0CEB30 7F09A000 AFA200B0 */ sw $v0, 0xb0($sp) -/* 0CEB34 7F09A004 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CEB38 7F09A008 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB3C 7F09A00C 00000000 */ nop -/* 0CEB40 7F09A010 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEB44 7F09A014 C7A802FC */ lwc1 $f8, 0x2fc($sp) -/* 0CEB48 7F09A018 AFA200AC */ sw $v0, 0xac($sp) -/* 0CEB4C 7F09A01C 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CEB50 7F09A020 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB54 7F09A024 00000000 */ nop -/* 0CEB58 7F09A028 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEB5C 7F09A02C C7AA0300 */ lwc1 $f10, 0x300($sp) -/* 0CEB60 7F09A030 AFA200A8 */ sw $v0, 0xa8($sp) -/* 0CEB64 7F09A034 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CEB68 7F09A038 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB6C 7F09A03C 00000000 */ nop -/* 0CEB70 7F09A040 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEB74 7F09A044 C7A40274 */ lwc1 $f4, 0x274($sp) -/* 0CEB78 7F09A048 AFA200A4 */ sw $v0, 0xa4($sp) -/* 0CEB7C 7F09A04C 4604A302 */ mul.s $f12, $f20, $f4 -/* 0CEB80 7F09A050 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB84 7F09A054 00000000 */ nop -/* 0CEB88 7F09A058 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEB8C 7F09A05C C7A60278 */ lwc1 $f6, 0x278($sp) -/* 0CEB90 7F09A060 AFA200C0 */ sw $v0, 0xc0($sp) -/* 0CEB94 7F09A064 4606A302 */ mul.s $f12, $f20, $f6 -/* 0CEB98 7F09A068 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEB9C 7F09A06C 00000000 */ nop -/* 0CEBA0 7F09A070 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEBA4 7F09A074 C7A8027C */ lwc1 $f8, 0x27c($sp) -/* 0CEBA8 7F09A078 AFA200BC */ sw $v0, 0xbc($sp) -/* 0CEBAC 7F09A07C 4608A302 */ mul.s $f12, $f20, $f8 -/* 0CEBB0 7F09A080 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEBB4 7F09A084 00000000 */ nop -/* 0CEBB8 7F09A088 C7B401C4 */ lwc1 $f20, 0x1c4($sp) -/* 0CEBBC 7F09A08C C7AA0280 */ lwc1 $f10, 0x280($sp) -/* 0CEBC0 7F09A090 AFA200B8 */ sw $v0, 0xb8($sp) -/* 0CEBC4 7F09A094 460AA302 */ mul.s $f12, $f20, $f10 -/* 0CEBC8 7F09A098 0FC250A6 */ jal sub_GAME_7F094298 -/* 0CEBCC 7F09A09C 00000000 */ nop -/* 0CEBD0 7F09A0A0 8FA800B8 */ lw $t0, 0xb8($sp) -/* 0CEBD4 7F09A0A4 8FAB00D4 */ lw $t3, 0xd4($sp) -/* 0CEBD8 7F09A0A8 8FBF00E0 */ lw $ra, 0xe0($sp) -/* 0CEBDC 7F09A0AC 3C0DB400 */ lui $t5, 0xb400 -/* 0CEBE0 7F09A0B0 AE0D0000 */ sw $t5, ($s0) -/* 0CEBE4 7F09A0B4 8FB800DC */ lw $t8, 0xdc($sp) -/* 0CEBE8 7F09A0B8 3C09FFFF */ lui $t1, 0xffff -/* 0CEBEC 7F09A0BC 03E97024 */ and $t6, $ra, $t1 -/* 0CEBF0 7F09A0C0 0309C824 */ and $t9, $t8, $t1 -/* 0CEBF4 7F09A0C4 00197C02 */ srl $t7, $t9, 0x10 -/* 0CEBF8 7F09A0C8 01CFC025 */ or $t8, $t6, $t7 -/* 0CEBFC 7F09A0CC AE180004 */ sw $t8, 4($s0) -/* 0CEC00 7F09A0D0 26040008 */ addiu $a0, $s0, 8 -/* 0CEC04 7F09A0D4 3C19B200 */ lui $t9, 0xb200 -/* 0CEC08 7F09A0D8 AC990000 */ sw $t9, ($a0) -/* 0CEC0C 7F09A0DC 8FAE00D8 */ lw $t6, 0xd8($sp) -/* 0CEC10 7F09A0E0 0169C024 */ and $t8, $t3, $t1 -/* 0CEC14 7F09A0E4 0018CC02 */ srl $t9, $t8, 0x10 -/* 0CEC18 7F09A0E8 01C97824 */ and $t7, $t6, $t1 -/* 0CEC1C 7F09A0EC 01F97025 */ or $t6, $t7, $t9 -/* 0CEC20 7F09A0F0 AC8E0004 */ sw $t6, 4($a0) -/* 0CEC24 7F09A0F4 24850008 */ addiu $a1, $a0, 8 -/* 0CEC28 7F09A0F8 ACAD0000 */ sw $t5, ($a1) -/* 0CEC2C 7F09A0FC 8FB900CC */ lw $t9, 0xcc($sp) -/* 0CEC30 7F09A100 8FB800D0 */ lw $t8, 0xd0($sp) -/* 0CEC34 7F09A104 24A60008 */ addiu $a2, $a1, 8 -/* 0CEC38 7F09A108 03297024 */ and $t6, $t9, $t1 -/* 0CEC3C 7F09A10C 03097824 */ and $t7, $t8, $t1 -/* 0CEC40 7F09A110 000EC402 */ srl $t8, $t6, 0x10 -/* 0CEC44 7F09A114 01F8C825 */ or $t9, $t7, $t8 -/* 0CEC48 7F09A118 ACB90004 */ sw $t9, 4($a1) -/* 0CEC4C 7F09A11C 8FAC00C4 */ lw $t4, 0xc4($sp) -/* 0CEC50 7F09A120 3C0EB200 */ lui $t6, 0xb200 -/* 0CEC54 7F09A124 ACCE0000 */ sw $t6, ($a2) -/* 0CEC58 7F09A128 8FAF00C8 */ lw $t7, 0xc8($sp) -/* 0CEC5C 7F09A12C 0189C824 */ and $t9, $t4, $t1 -/* 0CEC60 7F09A130 00197402 */ srl $t6, $t9, 0x10 -/* 0CEC64 7F09A134 01E9C024 */ and $t8, $t7, $t1 -/* 0CEC68 7F09A138 030E7825 */ or $t7, $t8, $t6 -/* 0CEC6C 7F09A13C ACCF0004 */ sw $t7, 4($a2) -/* 0CEC70 7F09A140 24C30008 */ addiu $v1, $a2, 8 -/* 0CEC74 7F09A144 AC6D0000 */ sw $t5, ($v1) -/* 0CEC78 7F09A148 8FAE00DC */ lw $t6, 0xdc($sp) -/* 0CEC7C 7F09A14C 001FC400 */ sll $t8, $ra, 0x10 -/* 0CEC80 7F09A150 24700008 */ addiu $s0, $v1, 8 -/* 0CEC84 7F09A154 31CFFFFF */ andi $t7, $t6, 0xffff -/* 0CEC88 7F09A158 030FC825 */ or $t9, $t8, $t7 -/* 0CEC8C 7F09A15C AC790004 */ sw $t9, 4($v1) -/* 0CEC90 7F09A160 3C0EB200 */ lui $t6, 0xb200 -/* 0CEC94 7F09A164 AE0E0000 */ sw $t6, ($s0) -/* 0CEC98 7F09A168 8FAF00D8 */ lw $t7, 0xd8($sp) -/* 0CEC9C 7F09A16C 316EFFFF */ andi $t6, $t3, 0xffff -/* 0CECA0 7F09A170 26070008 */ addiu $a3, $s0, 8 -/* 0CECA4 7F09A174 000FCC00 */ sll $t9, $t7, 0x10 -/* 0CECA8 7F09A178 032EC025 */ or $t8, $t9, $t6 -/* 0CECAC 7F09A17C AE180004 */ sw $t8, 4($s0) -/* 0CECB0 7F09A180 ACED0000 */ sw $t5, ($a3) -/* 0CECB4 7F09A184 8FB800CC */ lw $t8, 0xcc($sp) -/* 0CECB8 7F09A188 8FB900D0 */ lw $t9, 0xd0($sp) -/* 0CECBC 7F09A18C 8FAB00C0 */ lw $t3, 0xc0($sp) -/* 0CECC0 7F09A190 330FFFFF */ andi $t7, $t8, 0xffff -/* 0CECC4 7F09A194 00197400 */ sll $t6, $t9, 0x10 -/* 0CECC8 7F09A198 8FA600BC */ lw $a2, 0xbc($sp) -/* 0CECCC 7F09A19C 01CFC825 */ or $t9, $t6, $t7 -/* 0CECD0 7F09A1A0 ACF90004 */ sw $t9, 4($a3) -/* 0CECD4 7F09A1A4 3C0DB200 */ lui $t5, 0xb200 -/* 0CECD8 7F09A1A8 24E30008 */ addiu $v1, $a3, 8 -/* 0CECDC 7F09A1AC AC6D0000 */ sw $t5, ($v1) -/* 0CECE0 7F09A1B0 8FAE00C8 */ lw $t6, 0xc8($sp) -/* 0CECE4 7F09A1B4 3199FFFF */ andi $t9, $t4, 0xffff -/* 0CECE8 7F09A1B8 24640008 */ addiu $a0, $v1, 8 -/* 0CECEC 7F09A1BC 000E7C00 */ sll $t7, $t6, 0x10 -/* 0CECF0 7F09A1C0 01F9C025 */ or $t8, $t7, $t9 -/* 0CECF4 7F09A1C4 AC780004 */ sw $t8, 4($v1) -/* 0CECF8 7F09A1C8 3C0EB400 */ lui $t6, 0xb400 -/* 0CECFC 7F09A1CC 00C9C824 */ and $t9, $a2, $t1 -/* 0CED00 7F09A1D0 0019C402 */ srl $t8, $t9, 0x10 -/* 0CED04 7F09A1D4 AC8E0000 */ sw $t6, ($a0) -/* 0CED08 7F09A1D8 01697824 */ and $t7, $t3, $t1 -/* 0CED0C 7F09A1DC 01F87025 */ or $t6, $t7, $t8 -/* 0CED10 7F09A1E0 00497824 */ and $t7, $v0, $t1 -/* 0CED14 7F09A1E4 AC8E0004 */ sw $t6, 4($a0) -/* 0CED18 7F09A1E8 000FC402 */ srl $t8, $t7, 0x10 -/* 0CED1C 7F09A1EC 0109C824 */ and $t9, $t0, $t1 -/* 0CED20 7F09A1F0 24850008 */ addiu $a1, $a0, 8 -/* 0CED24 7F09A1F4 03387025 */ or $t6, $t9, $t8 -/* 0CED28 7F09A1F8 ACAE0004 */ sw $t6, 4($a1) -/* 0CED2C 7F09A1FC ACAD0000 */ sw $t5, ($a1) -/* 0CED30 7F09A200 8FBF00AC */ lw $ra, 0xac($sp) -/* 0CED34 7F09A204 8FAD00B0 */ lw $t5, 0xb0($sp) -/* 0CED38 7F09A208 00405025 */ move $t2, $v0 -/* 0CED3C 7F09A20C 24B00008 */ addiu $s0, $a1, 8 -/* 0CED40 7F09A210 8FAC00A8 */ lw $t4, 0xa8($sp) -/* 0CED44 7F09A214 8FA700A4 */ lw $a3, 0xa4($sp) -/* 0CED48 7F09A218 02001025 */ move $v0, $s0 -/* 0CED4C 7F09A21C 3C0FB400 */ lui $t7, 0xb400 -/* 0CED50 7F09A220 03E9C024 */ and $t8, $ra, $t1 -/* 0CED54 7F09A224 00187402 */ srl $t6, $t8, 0x10 -/* 0CED58 7F09A228 AC4F0000 */ sw $t7, ($v0) -/* 0CED5C 7F09A22C 01A9C824 */ and $t9, $t5, $t1 -/* 0CED60 7F09A230 032E7825 */ or $t7, $t9, $t6 -/* 0CED64 7F09A234 AC4F0004 */ sw $t7, 4($v0) -/* 0CED68 7F09A238 26030008 */ addiu $v1, $s0, 8 -/* 0CED6C 7F09A23C 3C18B200 */ lui $t8, 0xb200 -/* 0CED70 7F09A240 00E97024 */ and $t6, $a3, $t1 -/* 0CED74 7F09A244 000E7C02 */ srl $t7, $t6, 0x10 -/* 0CED78 7F09A248 AC780000 */ sw $t8, ($v1) -/* 0CED7C 7F09A24C 0189C824 */ and $t9, $t4, $t1 -/* 0CED80 7F09A250 032FC025 */ or $t8, $t9, $t7 -/* 0CED84 7F09A254 AC780004 */ sw $t8, 4($v1) -/* 0CED88 7F09A258 24700008 */ addiu $s0, $v1, 8 -/* 0CED8C 7F09A25C 3C0EB400 */ lui $t6, 0xb400 -/* 0CED90 7F09A260 AE0E0000 */ sw $t6, ($s0) -/* 0CED94 7F09A264 000B7C00 */ sll $t7, $t3, 0x10 -/* 0CED98 7F09A268 30D8FFFF */ andi $t8, $a2, 0xffff -/* 0CED9C 7F09A26C 01F87025 */ or $t6, $t7, $t8 -/* 0CEDA0 7F09A270 AE0E0004 */ sw $t6, 4($s0) -/* 0CEDA4 7F09A274 26050008 */ addiu $a1, $s0, 8 -/* 0CEDA8 7F09A278 3C19B200 */ lui $t9, 0xb200 -/* 0CEDAC 7F09A27C ACB90000 */ sw $t9, ($a1) -/* 0CEDB0 7F09A280 314EFFFF */ andi $t6, $t2, 0xffff -/* 0CEDB4 7F09A284 0008C400 */ sll $t8, $t0, 0x10 -/* 0CEDB8 7F09A288 030EC825 */ or $t9, $t8, $t6 -/* 0CEDBC 7F09A28C ACB90004 */ sw $t9, 4($a1) -/* 0CEDC0 7F09A290 24A30008 */ addiu $v1, $a1, 8 -/* 0CEDC4 7F09A294 3C0FB400 */ lui $t7, 0xb400 -/* 0CEDC8 7F09A298 AC6F0000 */ sw $t7, ($v1) -/* 0CEDCC 7F09A29C 33F9FFFF */ andi $t9, $ra, 0xffff -/* 0CEDD0 7F09A2A0 000D7400 */ sll $t6, $t5, 0x10 -/* 0CEDD4 7F09A2A4 01D97825 */ or $t7, $t6, $t9 -/* 0CEDD8 7F09A2A8 AC6F0004 */ sw $t7, 4($v1) -/* 0CEDDC 7F09A2AC 24640008 */ addiu $a0, $v1, 8 -/* 0CEDE0 7F09A2B0 3C18B300 */ lui $t8, 0xb300 -/* 0CEDE4 7F09A2B4 AC980000 */ sw $t8, ($a0) -/* 0CEDE8 7F09A2B8 000CCC00 */ sll $t9, $t4, 0x10 -/* 0CEDEC 7F09A2BC 30EFFFFF */ andi $t7, $a3, 0xffff -/* 0CEDF0 7F09A2C0 032FC025 */ or $t8, $t9, $t7 -/* 0CEDF4 7F09A2C4 AC980004 */ sw $t8, 4($a0) -/* 0CEDF8 7F09A2C8 24820008 */ addiu $v0, $a0, 8 -.L7F09A2CC: -/* 0CEDFC 7F09A2CC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0CEE00 7F09A2D0 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0CEE04 7F09A2D4 8FB00020 */ lw $s0, 0x20($sp) -/* 0CEE08 7F09A2D8 03E00008 */ jr $ra -/* 0CEE0C 7F09A2DC 27BD04D0 */ addiu $sp, $sp, 0x4d0 -) -#endif - - - diff --git a/src/game/player.h b/src/game/player.h index 7327cf57..d875a2c3 100644 --- a/src/game/player.h +++ b/src/game/player.h @@ -16,16 +16,7 @@ struct player_data { int killed_gg_owner_count; /* 0x24 */ - int killed_p1; - - /* 0x28 */ - int killed_p2; - - /* 0x2c */ - int killed_p3; - - /* 0x30 */ - int killed_p4; + int kill_counts[MAX_PLAYER_COUNT]; /* 0x34 */ int time_other_players_on_screen; @@ -106,8 +97,11 @@ void set_cur_player(s32 playernum); s32 getPlayerCount(void); void set_cur_player_screen_size(u32 width, u32 height); void set_cur_player_viewport_size(u32 ulx, u32 uly); -void store_stagenum_to_copyof_stagenum(s32 stagenum); +void skySetStageNum(s32 stagenum); void sub_GAME_7F094438(void); -Gfx * sub_GAME_7F094488(Gfx *arg0); +Gfx * skyRender(Gfx *arg0); +void sub_GAME_7F097388(SkyRelated18 *arg0, Mtxf *arg1, u16 arg2, f32 arg3, f32 arg4, SkyRelated38 *arg5); +Gfx *sub_GAME_7F097818(Gfx *gdl, SkyRelated38 *arg1, SkyRelated38 *arg2, SkyRelated38 *arg3, f32 arg4, bool textured); +Gfx *sub_GAME_7F098A2C(Gfx *gdl, SkyRelated38 *arg1, SkyRelated38 *arg2, SkyRelated38 *arg3, SkyRelated38 *arg4, f32 arg5); #endif diff --git a/src/game/player_2.c b/src/game/player_2.c index 2fbbc0fa..eb8f2357 100644 --- a/src/game/player_2.c +++ b/src/game/player_2.c @@ -8,6 +8,26 @@ #include "lvl.h" #include "player_2.h" +/* Define default values that are different between EU and the rest for initBONDdataforPlayer */ +#ifdef VERSION_EU +#define DEFAULT_FIELD_3B8_Z 8.417509f +#define DEFAULT_HEADDAMP 0.9166f +#define DEFAULT_HEADLOOKSUM_VAL 11.990406f +#define DEFAULT_VIEWPORT_V_VAL 0x220 +#define DEFAULT_C_SCREENHEIGHT 272.0f +#define DEFAULT_C_HALFHEIGHT 136.0f +#define DEFAULT_SCREENYMAXF 272.0f +#define DEFAULT_ASPECT 1.1764706f +#elif defined(VERSION_US) || defined(VERSION_JP) +#define DEFAULT_FIELD_3B8_Z 9.999998f +#define DEFAULT_HEADDAMP 0.93f +#define DEFAULT_HEADLOOKSUM_VAL 14.285716f +#define DEFAULT_VIEWPORT_V_VAL 0x1E0 +#define DEFAULT_C_SCREENHEIGHT 240.0f +#define DEFAULT_C_HALFHEIGHT 120.0f +#define DEFAULT_SCREENYMAXF 240.0f +#define DEFAULT_ASPECT 1.3333334f +#endif //newfile per EU @@ -79,2839 +99,366 @@ s32 getPlayerCount(void) return count; } -#ifdef NONMATCHING -void initBONDdataforPlayer(PLAYER_ID player) +void initBONDdataforPlayer(s32 player_num) { - int iVar1; - int iVar2; - player **ppPVar3; - int *dest; - int *src; - int *src_next; - player *pPVar4; - int array234undefined4 [234]; - int iStack4; - f32 temp_3f36e15f8e; + s32 i; + struct hand default_hand; + s32 one; - src = init_BONDdata_related_8003fda0; - dest = array234undefined4; - do { - src_next = src + 3; - *dest = *src; - dest[1] = src[1]; - dest[2] = src[2]; - src = src_next; - dest = dest + 3; - } while (src_next != (int *)0x80040148); - pPVar4 = (player *)mempAllocBytesInBank(0x2a80,4); - ppPVar3 = g_playerPointers + player; - *ppPVar3 = pPVar4; - pPVar4->unknown = 0; - (*ppPVar3)->xpos = 0.00000000; - (*ppPVar3)->ypos = 0.00000000; - (*ppPVar3)->zpos = 0.00000000; - (*ppPVar3)->xpos2 = 0.00000000; - (*ppPVar3)->ypos2 = 0.00000000; - (*ppPVar3)->zpos2 = 1.00000000; - (*ppPVar3)->xoffset = 0.00000000; - (*ppPVar3)->yoffset = 1.00000000; - (*ppPVar3)->zoffset = 0.00000000; - (*ppPVar3)->xpos3 = 0.00000000; - (*ppPVar3)->ypos3 = 0.00000000; - (*ppPVar3)->zpos3 = 0.00000000; - (*ppPVar3)->room_pointer = 0; - (*ppPVar3)->current_model_xpos = 0.00000000; - (*ppPVar3)->current_model_ypos = 0.00000000; - (*ppPVar3)->current_model_zpos = 0.00000000; - (*ppPVar3)->previous_model_xpos = 0.00000000; - (*ppPVar3)->previous_model_ypos = 0.00000000; - (*ppPVar3)->previous_model_zpos = 0.00000000; - (*ppPVar3)->current_room_xpos = 0.00000000; - (*ppPVar3)->current_room_ypos = 0.00000000; - (*ppPVar3)->current_room_zpos = 0.00000000; - (*ppPVar3)->field_6C = 0.00000000; - (*ppPVar3)->field_70 = 0.00000000; - (*ppPVar3)->stanHeight = 0.00000000; - (*ppPVar3)->field_78 = 0.00000000; - (*ppPVar3)->field_7C = 0.00000000; - (*ppPVar3)->field_80 = 0.00000000; - (*ppPVar3)->field_84 = 0.00000000; - (*ppPVar3)->field_88 = 0.00000000; - (*ppPVar3)->field_8C = 0; - (*ppPVar3)->field_90 = 0.00000000; - (*ppPVar3)->field_94 = 0; - (*ppPVar3)->field_98 = 0.00000000; - (*ppPVar3)->swaytarget = 0.00000000; - (*ppPVar3)->field_1278 = 0.00000000; - (*ppPVar3)->field_127C = 0.00000000; - (*ppPVar3)->crouchpos = 2; - (*ppPVar3)->autocrouchpos = 2; - (*ppPVar3)->ducking_height_offset = 0.00000000; - (*ppPVar3)->field_A4 = 0.00000000; - (*ppPVar3)->prop = 0; - (*ppPVar3)->field_AC = 1; - (*ppPVar3)->field_D0 = 0; - (*ppPVar3)->ptr_char_objectinstance = 0; - (*ppPVar3)->bonddead = 0; - (*ppPVar3)->bondhealth = 1.00000000; - (*ppPVar3)->bondarmour = 0.00000000; - (*ppPVar3)->oldhealth = 1.00000000; - (*ppPVar3)->oldarmour = 0.00000000; - (*ppPVar3)->apparenthealth = 1.00000000; - (*ppPVar3)->apparentarmour = 0.00000000; - (*ppPVar3)->damageshowtime = -1; - (*ppPVar3)->healthshowtime = -1; - (*ppPVar3)->field_104 = 0; - (*ppPVar3)->field_108 = 0; - (*ppPVar3)->field_10C = 0; - (*ppPVar3)->movecentrerelease = 0; - (*ppPVar3)->lookaheadcentreenabled = 1; - (*ppPVar3)->automovecentreenabled = 1; - (*ppPVar3)->fastmovecentreenabled = 0; - (*ppPVar3)->automovecentre = 1; - (*ppPVar3)->insightaimmode = 0; - (*ppPVar3)->autoyaimenabled = 1; - (*ppPVar3)->autoaimy = 0.00000000; - (*ppPVar3)->autoyaimtime = 0; - (*ppPVar3)->autoyaimtime60 = -1; - (*ppPVar3)->autoxaimenabled = 1; - (*ppPVar3)->autoaimx = 0.00000000; - (*ppPVar3)->autoxaimtime = 0; - (*ppPVar3)->autoxaimtime60 = -1; - (*ppPVar3)->vv_theta = 0.00000000; - (*ppPVar3)->speedtheta = 0.00000000; - (*ppPVar3)->vv_costheta = 1.00000000; - (*ppPVar3)->vv_sintheta = 0.00000000; - (*ppPVar3)->vv_verta = -4.00000000; - (*ppPVar3)->vv_verta360 = -229.18310547; - (*ppPVar3)->speedverta = 0.00000000; - (*ppPVar3)->vv_cosverta = 1.00000000; - (*ppPVar3)->vv_sinverta = 0.00000000; - (*ppPVar3)->speedsideways = 0.00000000; - (*ppPVar3)->speedstrafe = 0.00000000; - (*ppPVar3)->speedforwards = 0.00000000; - (*ppPVar3)->field_2A4C = 0.00000000; - (*ppPVar3)->speedboost = 1.00000000; - (*ppPVar3)->bondshotspeed.x = 0.00000000; - (*ppPVar3)->bondshotspeed.y = 0.00000000; - (*ppPVar3)->bondshotspeed.z = 0.00000000; - (*ppPVar3)->bondfadetime60 = -1.00000000; - (*ppPVar3)->bondfadetimemax60 = -1.00000000; - (*ppPVar3)->bondfadefracold = 0.00000000; - (*ppPVar3)->bondfadefracnew = 0.00000000; - (*ppPVar3)->bondbreathing = 0.00000000; - (*ppPVar3)->field_1A0 = 0; - (*ppPVar3)->watch_pause_time = 0; - (*ppPVar3)->field_1C4 = 0; - (*ppPVar3)->pause_animation_state = 0; - (*ppPVar3)->outside_watch_menu = 1; - (*ppPVar3)->open_close_solo_watch_menu = 0; - (*ppPVar3)->field_1D4 = 0.00000000; - (*ppPVar3)->field_1D8 = 0.00000000; - (*ppPVar3)->pause_watch_position = -25.00000000; - (*ppPVar3)->field_1E0 = 0.00000000; - (*ppPVar3)->field_1E4 = 1.00000000; - (*ppPVar3)->field_1E8 = 0.00000000; - (*ppPVar3)->field_1EC = 0.00000000; - (*ppPVar3)->field_1F0 = 0.00000000; - (*ppPVar3)->field_1F4 = 1.00000000; - (*ppPVar3)->pausing_flag = 0; - (*ppPVar3)->pause_starting_angle = 0.00000000; - (*ppPVar3)->field_208 = 0.00000000; - (*ppPVar3)->pause_target_angle = 0.00000000; - (*ppPVar3)->field_210 = 0.00000000; - (*ppPVar3)->field_214 = 0.00000000; - (*ppPVar3)->field_218 = 0; - (*ppPVar3)->field_21C = 1; - (*ppPVar3)->step_in_view_watch_animation = 0; - (*ppPVar3)->pause_animation_counter = 0.00000000; - (*ppPVar3)->buttons_pressed = 0; - (*ppPVar3)->field_3B6 = 0; - (*ppPVar3)->field_3B8 = 0.00000000; - (*ppPVar3)->field_3BC = 0.00000000; - *(float *)&(*ppPVar3)->field_3C0 = 9.99999809; - (*ppPVar3)->field_3C4 = 0.00000000; - (*ppPVar3)->field_3C8 = 0.00000000; - (*ppPVar3)->field_3CC = 1.00000000; - (*ppPVar3)->colourscreenred = 0xff; - (*ppPVar3)->colourscreengreen = 0xff; - (*ppPVar3)->colourscreenblue = 0xff; - (*ppPVar3)->colourscreenfrac = 0.00000000; - (*ppPVar3)->field_3E0 = -1.00000000; - (*ppPVar3)->timer_for_fade = -1.00000000; - (*ppPVar3)->colourfaderedold = 0xff; - (*ppPVar3)->colourfaderednew = 0xff; - (*ppPVar3)->colourfadegreenold = 0xff; - (*ppPVar3)->colourfadegreennew = 0xff; - (*ppPVar3)->colourfadeblueold = 0xff; - (*ppPVar3)->colourfadebluenew = 0xff; - (*ppPVar3)->colourfadefracold = 0.00000000; - (*ppPVar3)->colourfadefracnew = 0.00000000; - (*ppPVar3)->bondtype = CUFF_BLUE; - (*ppPVar3)->startnewbonddie = 1; - (*ppPVar3)->redbloodfinished = 0; - (*ppPVar3)->deathanimfinished = 0; - (*ppPVar3)->field_42c = 2; - (*ppPVar3)->controlstyle = 0; - (*ppPVar3)->field_4DC = 1; - (*ppPVar3)->field_4E0 = 1; - (*ppPVar3)->resetheadtick = 1; - (*ppPVar3)->headanim = 0; - (*ppPVar3)->field_4EC = 0.93000001; - (*ppPVar3)->headwalkingtime60 = 0; - (*ppPVar3)->headamplitude = 1.00000000; - (*ppPVar3)->sideamplitude = 1.00000000; - (*ppPVar3)->headpos = 0.00000000; - (*ppPVar3)->field_500 = 0.00000000; - (*ppPVar3)->field_504 = 0.00000000; - (*ppPVar3)->field_508 = 0.00000000; - (*ppPVar3)->field_50C = 0.00000000; - (*ppPVar3)->field_510 = 1.00000000; - (*ppPVar3)->field_514 = 0.00000000; - (*ppPVar3)->field_518 = 1.00000000; - (*ppPVar3)->field_51C = 0.00000000; - (*ppPVar3)->headpossum = 0.00000000; - (*ppPVar3)->field_524 = 0.00000000; - (*ppPVar3)->field_528 = 0.00000000; - (*ppPVar3)->field_52C = 0.00000000; - (*ppPVar3)->field_530 = 0.00000000; - *(f32 *)&(*ppPVar3)->field_534 = 14.28571606; - (*ppPVar3)->field_538 = 0; - (*ppPVar3)->field_53C = 14.28571606; - (*ppPVar3)->field_540 = 0.00000000; - (*ppPVar3)->headbodyoffset = 0.00000000; - (*ppPVar3)->field_548 = 0.00000000; - (*ppPVar3)->field_54C = 0.00000000; - (*ppPVar3)->standheight = 0.00000000; - (*ppPVar3)->standbodyoffset.x = 0.00000000; - (*ppPVar3)->standbodyoffset.y = 0.00000000; - (*ppPVar3)->standbodyoffset.z = 0.00000000; - (*ppPVar3)->standfrac = 0.00000000; - (*ppPVar3)->field_564 = 0.00000000; - (*ppPVar3)->field_568 = 0.00000000; - (*ppPVar3)->field_56C = 1.00000000; - (*ppPVar3)->field_570 = 0.00000000; - (*ppPVar3)->field_574 = 0.00000000; - (*ppPVar3)->field_578 = 1.00000000; - (*ppPVar3)->field_57C = 0.00000000; - (*ppPVar3)->field_580 = 1.00000000; - (*ppPVar3)->field_584 = 0.00000000; - (*ppPVar3)->field_588 = 0.00000000; - (*ppPVar3)->field_58C = 1.00000000; - (*ppPVar3)->field_590 = 0.00000000; - (*ppPVar3)->standcnt = 0; - iVar1 = 0; - do { - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D0 + iVar1) = 0x280; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D2 + iVar1) = 0x1e0; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D4 + iVar1) = 0x1ff; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D6 + iVar1) = 0; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7D8 + iVar1) = 0x280; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DA + iVar1) = 0x1e0; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DC + iVar1) = 0x1ff; - iVar2 = iVar1 + 0x10; - *(undefined2 *)((int)&((*ppPVar3)->field_7D0).field_7DE + iVar1) = 0; - iVar1 = iVar2; - } while (iVar2 != 0x20); - (*ppPVar3)->viewx = 100; - (*ppPVar3)->viewy = 100; - (*ppPVar3)->viewleft = 0; - (*ppPVar3)->viewtop = 0; - (*ppPVar3)->hand_invisible[0] = 0; - (*ppPVar3)->hand_invisible[1] = 0; - (*ppPVar3)->hand_item[0] = ITEM_UNARMED; - (*ppPVar3)->hand_item[1] = ITEM_UNARMED; - (*ppPVar3)->field_2A44[0] = -1; - (*ppPVar3)->field_2A44[1] = -1; - (*ppPVar3)->lock_hand_model[0] = 0; - (*ppPVar3)->lock_hand_model[1] = 0; - (*ppPVar3)->ptr_hand_weapon_buffer[0] = NULL; - (*ppPVar3)->ptr_hand_weapon_buffer[1] = NULL; - pPVar4 = *ppPVar3; - src = array234undefined4; - do { - dest = src + 3; - pPVar4->right_weapon = *src; - pPVar4->right_weapon_attack = src[1]; - pPVar4->previous_right_weapon = src[2]; - pPVar4 = (player *)&pPVar4->zpos; - src = dest; - } while (dest != &iStack4); - src = array234undefined4; - pPVar4 = *ppPVar3; - do { - dest = src + 3; - pPVar4->left_weapon = *src; - pPVar4->left_weapon_attack = src[1]; - pPVar4->left_weapon_previous = src[2]; - src = dest; - pPVar4 = (player *)&pPVar4->zpos; - } while (dest != &iStack4); - (*ppPVar3)->gunposamplitude = 1.00000000; - (*ppPVar3)->gunxamplitude = 1.00000000; - (*ppPVar3)->field_FC8 = 0; - (*ppPVar3)->field_FCC = 0; - (*ppPVar3)->field_FD0 = 0; - (*ppPVar3)->z_trigger_timer = 0; - (*ppPVar3)->field_FD8 = 0; - (*ppPVar3)->field_FDC = -1; - (*ppPVar3)->field_FDD = -1; - (*ppPVar3)->field_FDE = -1; - (*ppPVar3)->field_FDF = '\0'; - (*ppPVar3)->resetshadecol = 1; - (*ppPVar3)->field_FE4 = 0; - (*ppPVar3)->field_FE8 = 0.00000000; - (*ppPVar3)->field_FEC = 0.00000000; - (*ppPVar3)->field_FF0 = 0.00000000; - (*ppPVar3)->field_FF4 = 0.00000000; - (*ppPVar3)->guncrossdamp = 0.89999998; - (*ppPVar3)->field_FFC = 0.00000000; - (*ppPVar3)->field_1000 = 0.00000000; - (*ppPVar3)->field_1004 = 0.00000000; - (*ppPVar3)->field_1008 = 0.00000000; - (*ppPVar3)->gunaimdamp = 0.89999998; - (*ppPVar3)->field_1010 = 0.00000000; - (*ppPVar3)->holds_neg_pi = -3.14159274; - (*ppPVar3)->field_1018 = 0.00000000; - (*ppPVar3)->last_z_trigger_timer = 0; - (*ppPVar3)->copiedgoldeneye = 0; - (*ppPVar3)->ammodispflags = 0; - (*ppPVar3)->field_106C = 0.00000000; - (*ppPVar3)->field_1070 = 0.00000000; - (*ppPVar3)->field_1074 = 0.00000000; - (*ppPVar3)->field_1078 = 0; - (*ppPVar3)->field_107C = 0.00000000; - (*ppPVar3)->field_1080 = 0.00000000; - (*ppPVar3)->sniper_zoom = 60.00000000; - (*ppPVar3)->camera_zoom = 60.00000000; - (*ppPVar3)->field_108C = -1; - (*ppPVar3)->c_screenwidth = 320.00000000; - (*ppPVar3)->c_screenheight = 240.00000000; - (*ppPVar3)->c_screenleft = 0.00000000; - (*ppPVar3)->c_screentop = 0.00000000; - (*ppPVar3)->c_perspnear = 10.00000000; - (*ppPVar3)->c_perspfovy = 46.00000000; - (*ppPVar3)->c_perspaspect = 1.00000000; - (*ppPVar3)->c_halfwidth = 160.00000000; - (*ppPVar3)->c_halfheight = 120.00000000; - (*ppPVar3)->c_scalex = 1.00000000; - (*ppPVar3)->c_scaley = 1.00000000; - (*ppPVar3)->c_recipscalex = 1.00000000; - (*ppPVar3)->c_recipscaley = 1.00000000; - (*ppPVar3)->field_10C4 = 0; - (*ppPVar3)->field_10C8 = 0; - (*ppPVar3)->field_10CC = 0; - (*ppPVar3)->field_10D0 = 0; - (*ppPVar3)->field_10D4 = 0; - (*ppPVar3)->projmatrix = 0; - (*ppPVar3)->projmatrixf = 0; - (*ppPVar3)->field_10E0 = 0; - (*ppPVar3)->field_10E4 = 0; - (*ppPVar3)->field_10E8 = 0; - (*ppPVar3)->field_10EC = 0; - (*ppPVar3)->c_scalelod60 = 1.00000000; - (*ppPVar3)->c_scalelod = 1.00000000; - (*ppPVar3)->c_lodscalez = 1.00000000; - (*ppPVar3)->c_lodscalezu32 = 0x10000; - (*ppPVar3)->screenxminf = 0.00000000; - (*ppPVar3)->screenyminf = 0.00000000; - (*ppPVar3)->screenxmaxf = 320.00000000; - (*ppPVar3)->screenymaxf = 240.00000000; - (*ppPVar3)->gunsightmode = 0; - (*ppPVar3)->field_11B0 = 0; - (*ppPVar3)->field_11B4 = 0; - (*ppPVar3)->field_11B8 = 0; - (*ppPVar3)->zoomintime = 0.00000000; - (*ppPVar3)->zoomintimemax = 0.00000000; - (*ppPVar3)->zoominfovy = 60.00000000; - (*ppPVar3)->zoominfovyold = 60.00000000; - (*ppPVar3)->zoominfovynew = 60.00000000; - (*ppPVar3)->fovy = 60.00000000; - (*ppPVar3)->aspect = 1.33333337; - (*ppPVar3)->hudmessoff = 0; - (*ppPVar3)->bondmesscnt = -1; - (*ppPVar3)->ptr_inventory_first_in_cycle = 0; - (*ppPVar3)->p_itemcur = 0; - (*ppPVar3)->equipmaxitems = 0; - (*ppPVar3)->equipallguns = 0; - (*ppPVar3)->field_11F0 = 0; - (*ppPVar3)->field_11F4 = 0; - (*ppPVar3)->field_1280 = 0; - (*ppPVar3)->players_cur_animation = 0; - (*ppPVar3)->field_1288 = 0.00000000; - (*ppPVar3)->bondinvincible = '\0'; - (*ppPVar3)->field_29B8 = 7; - (*ppPVar3)->field_29BC = 1.00000000; - (*ppPVar3)->field_29C0 = 0.00000000; - (*ppPVar3)->mpmenuon = 0; - (*ppPVar3)->damagetype = 7; - (*ppPVar3)->deathcount = 0; - (*ppPVar3)->field_29E0 = random_byte; - random_byte = random_byte + 1; - (*ppPVar3)->field_29E4 = -1; - (*ppPVar3)->field_29E8 = -1; - (*ppPVar3)->field_29EC = -1; - (*ppPVar3)->field_29F0 = -1; - (*ppPVar3)->healthdisplaytime = 0; - (*ppPVar3)->field_2A30 = 0; - (*ppPVar3)->field_2A34 = 0; - (*ppPVar3)->cur_item_weapon_getname = 1; - (*ppPVar3)->actual_health = 1.00000000; - (*ppPVar3)->actual_armor = 1.00000000; - (*ppPVar3)->cur_player_control_type_0 = 0; - (*ppPVar3)->cur_player_control_type_1 = 0; - (*ppPVar3)->cur_player_control_type_2 = 0.00000000; - (*ppPVar3)->neg_vspacing_for_control_type_entry = 0; - (*ppPVar3)->has_set_control_type_data = 1; - (*ppPVar3)->field_2A6C = 0; - (*ppPVar3)->field_2A70 = 0; - visible_to_guards_flag = TRUE; - obj_collision_flag = TRUE; + default_hand = *((struct hand*)D_8003FDA0); +#if defined(VERSION_US) || defined(VERSION_JP) + g_playerPointers[player_num] = mempAllocBytesInBank(0x2A80U, 4U); +#elif defined(VERSION_EU) + g_playerPointers[player_num] = mempAllocBytesInBank(0x2A70U, 4U); +#endif + + g_playerPointers[player_num]->unknown = 0; + g_playerPointers[player_num]->pos.x = 0.0f; + g_playerPointers[player_num]->pos.y = 0.0f; + g_playerPointers[player_num]->pos.z = 0.0f; + g_playerPointers[player_num]->pos2.x = 0.0f; + g_playerPointers[player_num]->pos2.y = 0.0f; + g_playerPointers[player_num]->pos2.z = 1.0f; + g_playerPointers[player_num]->offset.x = 0.0f; + g_playerPointers[player_num]->offset.y = 1.0f; + g_playerPointers[player_num]->offset.z = 0.0f; + g_playerPointers[player_num]->pos3.x = 0.0f; + g_playerPointers[player_num]->pos3.y = 0.0f; + g_playerPointers[player_num]->pos3.z = 0.0f; + g_playerPointers[player_num]->room_pointer = NULL; + g_playerPointers[player_num]->current_model_pos.x = 0.0f; + g_playerPointers[player_num]->current_model_pos.y = 0.0f; + g_playerPointers[player_num]->current_model_pos.z = 0.0f; + g_playerPointers[player_num]->previous_model_pos.x = 0.0f; + g_playerPointers[player_num]->previous_model_pos.y = 0.0f; + g_playerPointers[player_num]->previous_model_pos.z = 0.0f; + g_playerPointers[player_num]->current_room_pos.x = 0.0f; + g_playerPointers[player_num]->current_room_pos.y = 0.0f; + g_playerPointers[player_num]->current_room_pos.z = 0.0f; + g_playerPointers[player_num]->field_6C = 0.0f; + g_playerPointers[player_num]->field_70 = 0.0f; + g_playerPointers[player_num]->stanHeight = 0.0f; + g_playerPointers[player_num]->field_78 = 0.0f; + g_playerPointers[player_num]->field_7C = 0.0f; + g_playerPointers[player_num]->field_80 = 0.0f; + g_playerPointers[player_num]->field_84 = 0.0f; + g_playerPointers[player_num]->field_88 = 0.0f; + g_playerPointers[player_num]->field_8C = 0; + g_playerPointers[player_num]->field_90 = 0.0f; + g_playerPointers[player_num]->field_94 = 0; + g_playerPointers[player_num]->field_98 = 0.0f; + g_playerPointers[player_num]->swaytarget = 0.0f; + g_playerPointers[player_num]->field_1278 = 0.0f; + g_playerPointers[player_num]->field_127C = 0.0f; + g_playerPointers[player_num]->crouchpos = 2; + g_playerPointers[player_num]->autocrouchpos = 2; + g_playerPointers[player_num]->ducking_height_offset = 0.0f; + g_playerPointers[player_num]->field_A4 = 0.0f; + g_playerPointers[player_num]->prop = NULL; + g_playerPointers[player_num]->field_AC = 1; + g_playerPointers[player_num]->field_D0 = 0; + g_playerPointers[player_num]->ptr_char_objectinstance = NULL; + g_playerPointers[player_num]->bonddead = 0; + g_playerPointers[player_num]->bondhealth = 1.0f; + g_playerPointers[player_num]->bondarmour = 0.0f; + g_playerPointers[player_num]->oldhealth = 1.0f; + g_playerPointers[player_num]->oldarmour = 0.0f; + g_playerPointers[player_num]->apparenthealth = 1.0f; + g_playerPointers[player_num]->apparentarmour = 0.0f; + g_playerPointers[player_num]->damageshowtime = -1; + g_playerPointers[player_num]->healthshowtime = -1; + g_playerPointers[player_num]->field_104 = 0; + g_playerPointers[player_num]->field_108 = 0; + g_playerPointers[player_num]->field_10C = 0; + g_playerPointers[player_num]->movecentrerelease = 0; + g_playerPointers[player_num]->lookaheadcentreenabled = 1; + g_playerPointers[player_num]->automovecentreenabled = 1; + g_playerPointers[player_num]->fastmovecentreenabled = 0; + g_playerPointers[player_num]->automovecentre = 1; + g_playerPointers[player_num]->insightaimmode = 0; + g_playerPointers[player_num]->autoyaimenabled = 1; + g_playerPointers[player_num]->autoaimy = 0.0f; + g_playerPointers[player_num]->autoyaimtime = 0; + g_playerPointers[player_num]->autoyaimtime60 = -1; + g_playerPointers[player_num]->autoxaimenabled = 1; + g_playerPointers[player_num]->autoaimx = 0.0f; + g_playerPointers[player_num]->autoxaimtime = 0; + g_playerPointers[player_num]->autoxaimtime60 = -1; + g_playerPointers[player_num]->vv_theta = 0.0f; + g_playerPointers[player_num]->speedtheta = 0.0f; + g_playerPointers[player_num]->vv_costheta = 1.0f; + g_playerPointers[player_num]->vv_sintheta = 0.0f; + g_playerPointers[player_num]->vv_verta = -4.0f; + g_playerPointers[player_num]->vv_verta360 = -229.1831f; + g_playerPointers[player_num]->speedverta = 0.0f; + g_playerPointers[player_num]->vv_cosverta = 1.0f; + g_playerPointers[player_num]->vv_sinverta = 0.0f; + g_playerPointers[player_num]->speedsideways = 0.0f; + g_playerPointers[player_num]->speedstrafe = 0.0f; + g_playerPointers[player_num]->speedforwards = 0.0f; + g_playerPointers[player_num]->field_2A4C = 0.0f; + g_playerPointers[player_num]->speedboost = 1.0f; + g_playerPointers[player_num]->bondshotspeed.x = 0.0f; + g_playerPointers[player_num]->bondshotspeed.y = 0.0f; + g_playerPointers[player_num]->bondshotspeed.z = 0.0f; + g_playerPointers[player_num]->bondfadetime60 = -1.0f; + g_playerPointers[player_num]->bondfadetimemax60 = -1.0f; + g_playerPointers[player_num]->bondfadefracold = 0.0f; + g_playerPointers[player_num]->bondfadefracnew = 0.0f; + g_playerPointers[player_num]->bondbreathing = 0.0f; + g_playerPointers[player_num]->field_1A0 = 0; + g_playerPointers[player_num]->watch_pause_time = 0; + g_playerPointers[player_num]->field_1C4 = 0; + g_playerPointers[player_num]->watch_animation_state = 0; + g_playerPointers[player_num]->outside_watch_menu = 1; + g_playerPointers[player_num]->open_close_solo_watch_menu = 0; + g_playerPointers[player_num]->field_1D4 = 0.0f; + g_playerPointers[player_num]->field_1D8 = 0.0f; + g_playerPointers[player_num]->pause_watch_position = -25; + g_playerPointers[player_num]->field_1E0 = 0.0f; + g_playerPointers[player_num]->field_1E4 = 1.0f; + g_playerPointers[player_num]->field_1E8 = 0.0f; + g_playerPointers[player_num]->field_1EC = 0.0f; + g_playerPointers[player_num]->field_1F0 = 0.0f; + g_playerPointers[player_num]->field_1F4 = 1.0f; + g_playerPointers[player_num]->pausing_flag = 0; + g_playerPointers[player_num]->pause_starting_angle = 0.0f; + g_playerPointers[player_num]->pause_related = 0.0f; + g_playerPointers[player_num]->pause_target_angle = 0.0f; + g_playerPointers[player_num]->field_210 = 0.0f; + g_playerPointers[player_num]->field_214 = 0.0f; + g_playerPointers[player_num]->field_218 = 0; + g_playerPointers[player_num]->field_21C = 1; + g_playerPointers[player_num]->step_in_view_watch_animation = 0; + g_playerPointers[player_num]->pause_animation_counter = 0.0f; + g_playerPointers[player_num]->buttons_pressed = 0; + g_playerPointers[player_num]->field_3B6 = 0; + g_playerPointers[player_num]->field_3B8.x = 0.0f; + g_playerPointers[player_num]->field_3B8.y = 0.0f; + g_playerPointers[player_num]->field_3B8.z = DEFAULT_FIELD_3B8_Z; + g_playerPointers[player_num]->field_3C4 = 0.0f; + g_playerPointers[player_num]->field_3C8 = 0.0f; + g_playerPointers[player_num]->field_3CC = 1.0f; + g_playerPointers[player_num]->colourscreenred = 0xFF; + g_playerPointers[player_num]->colourscreengreen = 0xFF; + g_playerPointers[player_num]->colourscreenblue = 0xFF; + g_playerPointers[player_num]->colourscreenfrac = 0.0f; + g_playerPointers[player_num]->colourfadetime60 = -1.0f; + g_playerPointers[player_num]->colourfadetimemax60 = -1.0f; + g_playerPointers[player_num]->colourfaderedold = 0xFF; + g_playerPointers[player_num]->colourfaderednew = 0xFF; + g_playerPointers[player_num]->colourfadegreenold = 0xFF; + g_playerPointers[player_num]->colourfadegreennew = 0xFF; + g_playerPointers[player_num]->colourfadeblueold = 0xFF; + g_playerPointers[player_num]->colourfadebluenew = 0xFF; + g_playerPointers[player_num]->colourfadefracold = 0.0f; + g_playerPointers[player_num]->colourfadefracnew = 0.0f; + g_playerPointers[player_num]->bondtype = 0; + g_playerPointers[player_num]->startnewbonddie = 1; + g_playerPointers[player_num]->redbloodfinished = 0; + g_playerPointers[player_num]->deathanimfinished = 0; + g_playerPointers[player_num]->field_42c = 2; + g_playerPointers[player_num]->controldef = 0; + g_playerPointers[player_num]->resetheadpos = 1; + g_playerPointers[player_num]->resetheadrot = 1; + g_playerPointers[player_num]->resetheadtick = 1; + g_playerPointers[player_num]->headanim = 0; + g_playerPointers[player_num]->headdamp = DEFAULT_HEADDAMP; + g_playerPointers[player_num]->headwalkingtime60 = 0; + g_playerPointers[player_num]->headamplitude = 1.0f; + g_playerPointers[player_num]->sideamplitude = 1.0f; + g_playerPointers[player_num]->headpos[0] = 0.0f; + g_playerPointers[player_num]->headpos[1] = 0.0f; + g_playerPointers[player_num]->headpos[2] = 0.0f; + g_playerPointers[player_num]->headlook[0] = 0.0f; + g_playerPointers[player_num]->headlook[1] = 0.0f; + g_playerPointers[player_num]->headlook[2] = 1.0f; + g_playerPointers[player_num]->headup[0] = 0.0f; + g_playerPointers[player_num]->headup[1] = 1.0f; + g_playerPointers[player_num]->headup[2] = 0.0f; + g_playerPointers[player_num]->headpossum[0] = 0.0f; + g_playerPointers[player_num]->headpossum[1] = 0.0f; + g_playerPointers[player_num]->headpossum[2] = 0.0f; + g_playerPointers[player_num]->headlooksum[0] = 0.0f; + g_playerPointers[player_num]->headlooksum[1] = 0.0f; + g_playerPointers[player_num]->headlooksum[2] = DEFAULT_HEADLOOKSUM_VAL; + g_playerPointers[player_num]->headupsum[0] = 0.0f; + g_playerPointers[player_num]->headupsum[1] = DEFAULT_HEADLOOKSUM_VAL; + g_playerPointers[player_num]->headupsum[2] = 0.0f; + g_playerPointers[player_num]->headbodyoffset[0] = 0.0f; + g_playerPointers[player_num]->headbodyoffset[1] = 0.0f; + g_playerPointers[player_num]->headbodyoffset[2] = 0.0f; + g_playerPointers[player_num]->standheight = 0.0f; + g_playerPointers[player_num]->standbodyoffset.x = 0.0f; + g_playerPointers[player_num]->standbodyoffset.y = 0.0f; + g_playerPointers[player_num]->standbodyoffset.z = 0.0f; + g_playerPointers[player_num]->standfrac = 0.0f; + g_playerPointers[player_num]->standlook[0][0] = 0.0f; + g_playerPointers[player_num]->standlook[0][1] = 0.0f; + g_playerPointers[player_num]->standlook[0][2] = 1.0f; + g_playerPointers[player_num]->standlook[1][0] = 0.0f; + g_playerPointers[player_num]->standlook[1][1] = 0.0f; + g_playerPointers[player_num]->standlook[1][2] = 1.0f; + g_playerPointers[player_num]->standup[0][0] = 0.0f; + g_playerPointers[player_num]->standup[0][1] = 1.0f; + g_playerPointers[player_num]->standup[0][2] = 0.0f; + g_playerPointers[player_num]->standup[1][0] = 0.0f; + g_playerPointers[player_num]->standup[1][1] = 1.0f; + g_playerPointers[player_num]->standup[1][2] = 0.0f; + g_playerPointers[player_num]->standcnt = 0; + + for (i = 0; i < 2; i++) + { + g_playerPointers[player_num]->viewports[i].vp.vscale[0] = 0x280; + g_playerPointers[player_num]->viewports[i].vp.vscale[1] = DEFAULT_VIEWPORT_V_VAL; + g_playerPointers[player_num]->viewports[i].vp.vscale[2] = 0x1FF; + g_playerPointers[player_num]->viewports[i].vp.vscale[3] = 0; + g_playerPointers[player_num]->viewports[i].vp.vtrans[0] = 0x280; + g_playerPointers[player_num]->viewports[i].vp.vtrans[1] = DEFAULT_VIEWPORT_V_VAL; + g_playerPointers[player_num]->viewports[i].vp.vtrans[2] = 0x1FF; + g_playerPointers[player_num]->viewports[i].vp.vtrans[3] = 0; + } + + g_playerPointers[player_num]->viewx = 0x64; + g_playerPointers[player_num]->viewy = 0x64; + g_playerPointers[player_num]->viewleft = 0; + g_playerPointers[player_num]->viewtop = 0; + g_playerPointers[player_num]->hand_invisible[0] = 0; + g_playerPointers[player_num]->hand_invisible[1] = 0; + g_playerPointers[player_num]->hand_item[0] = 0; + g_playerPointers[player_num]->hand_item[1] = 0; + g_playerPointers[player_num]->field_2A44[0] = -1; + g_playerPointers[player_num]->field_2A44[1] = -1; + g_playerPointers[player_num]->lock_hand_model[0] = 0; + g_playerPointers[player_num]->lock_hand_model[1] = 0; + g_playerPointers[player_num]->ptr_hand_weapon_buffer[0] = NULL; + g_playerPointers[player_num]->ptr_hand_weapon_buffer[1] = NULL; + + g_playerPointers[player_num]->hands[0] = default_hand; + g_playerPointers[player_num]->hands[1] = default_hand; + + g_playerPointers[player_num]->gunposamplitude = 1.0f; + g_playerPointers[player_num]->gunxamplitude = 1.0f; + g_playerPointers[player_num]->field_FC8 = 0; + g_playerPointers[player_num]->field_FCC = 0; + g_playerPointers[player_num]->field_FD0 = 0; + g_playerPointers[player_num]->z_trigger_timer = 0; + g_playerPointers[player_num]->field_FD8 = 0; + g_playerPointers[player_num]->field_FDC = 0xFF; + g_playerPointers[player_num]->field_FDD = 0xFF; + g_playerPointers[player_num]->field_FDE = 0xFF; + g_playerPointers[player_num]->field_FDF = 0; + g_playerPointers[player_num]->resetshadecol = 1; + g_playerPointers[player_num]->field_FE4 = 0; + g_playerPointers[player_num]->crosshair_angle.x = 0.0f; + g_playerPointers[player_num]->crosshair_angle.y = 0.0f; + g_playerPointers[player_num]->crosshair_x_pos = 0.0f; + g_playerPointers[player_num]->crosshair_y_pos = 0.0f; + g_playerPointers[player_num]->guncrossdamp = 0.9f; + g_playerPointers[player_num]->field_FFC.x = 0.0f; + g_playerPointers[player_num]->field_FFC.y = 0.0f; + g_playerPointers[player_num]->gun_azimuth_angle = 0.0f; + g_playerPointers[player_num]->gun_azimuth_turning = 0.0f; + g_playerPointers[player_num]->gunaimdamp = 0.9f; + g_playerPointers[player_num]->field_1010.x = 0.0f; + g_playerPointers[player_num]->field_1010.y = -3.1415927f; + g_playerPointers[player_num]->field_1010.z = 0.0f; + g_playerPointers[player_num]->last_z_trigger_timer = 0; + g_playerPointers[player_num]->copiedgoldeneye = 0; + g_playerPointers[player_num]->ammodispflags = 0; + g_playerPointers[player_num]->gunsync = 0.0f; + g_playerPointers[player_num]->syncchange = 0.0f; + g_playerPointers[player_num]->synccount = 0.0f; + g_playerPointers[player_num]->syncoffset = 0; + g_playerPointers[player_num]->field_107C = 0.0f; + g_playerPointers[player_num]->field_1080 = 0.0f; + g_playerPointers[player_num]->sniper_zoom = 60.0f; + g_playerPointers[player_num]->camera_zoom = 60.0f; + g_playerPointers[player_num]->field_108C = -1; + g_playerPointers[player_num]->c_screenwidth = 320.0f; + g_playerPointers[player_num]->c_screenheight = DEFAULT_C_SCREENHEIGHT; + g_playerPointers[player_num]->c_screenleft = 0.0f; + g_playerPointers[player_num]->c_screentop = 0.0f; + g_playerPointers[player_num]->c_perspnear = 10.0f; + g_playerPointers[player_num]->c_perspfovy = 46.0f; + g_playerPointers[player_num]->c_perspaspect = 1.0f; + g_playerPointers[player_num]->c_halfwidth = 160.0f; + g_playerPointers[player_num]->c_halfheight = DEFAULT_C_HALFHEIGHT; + g_playerPointers[player_num]->c_scalex = 1.0f; + g_playerPointers[player_num]->c_scaley = 1.0f; + g_playerPointers[player_num]->c_recipscalex = 1.0f; + g_playerPointers[player_num]->c_recipscaley = 1.0f; + g_playerPointers[player_num]->field_10C4 = NULL; + g_playerPointers[player_num]->field_10C8 = NULL; + g_playerPointers[player_num]->field_10CC = NULL; + g_playerPointers[player_num]->field_10D0 = 0; + g_playerPointers[player_num]->field_10D4 = NULL; + g_playerPointers[player_num]->projmatrix = NULL; + g_playerPointers[player_num]->projmatrixf = NULL; + g_playerPointers[player_num]->field_10E0 = 0; + g_playerPointers[player_num]->field_10E4 = 0; + g_playerPointers[player_num]->field_10E8 = NULL; + g_playerPointers[player_num]->field_10EC = NULL; + g_playerPointers[player_num]->c_scalelod60 = 1.0f; + g_playerPointers[player_num]->c_scalelod = 1.0f; + g_playerPointers[player_num]->c_lodscalez = 1.0f; + g_playerPointers[player_num]->c_lodscalezu32 = 0x10000; + g_playerPointers[player_num]->screenxminf = 0.0f; + g_playerPointers[player_num]->screenyminf = 0.0f; + g_playerPointers[player_num]->screenxmaxf = 320.0f; + g_playerPointers[player_num]->screenymaxf = DEFAULT_SCREENYMAXF; + g_playerPointers[player_num]->gunsightmode = 0; + g_playerPointers[player_num]->bloodImgBufPtrArray[0] = NULL; + g_playerPointers[player_num]->bloodImgBufPtrArray[1] = NULL; + g_playerPointers[player_num]->bloodImgIdx = 0; + g_playerPointers[player_num]->zoomintime = 0.0f; + g_playerPointers[player_num]->zoomintimemax = 0.0f; + g_playerPointers[player_num]->zoominfovy = 60.0f; + g_playerPointers[player_num]->zoominfovyold = 60.0f; + g_playerPointers[player_num]->zoominfovynew = 60.0f; + g_playerPointers[player_num]->fovy = 60.0f; + g_playerPointers[player_num]->aspect = DEFAULT_ASPECT; + g_playerPointers[player_num]->hudmessoff = 0; + g_playerPointers[player_num]->bondmesscnt = -1; + g_playerPointers[player_num]->ptr_inventory_first_in_cycle = NULL; + g_playerPointers[player_num]->p_itemcur = NULL; + g_playerPointers[player_num]->equipmaxitems = 0; + g_playerPointers[player_num]->equipallguns = 0; + one = 1; + g_playerPointers[player_num]->equipcuritem = 0; + g_playerPointers[player_num]->textoverrides = NULL; + g_playerPointers[player_num]->field_1280 = 0.0f; + g_playerPointers[player_num]->players_cur_animation = 0; + g_playerPointers[player_num]->field_1288 = 0.0f; + g_playerPointers[player_num]->bondinvincible = 0; + g_playerPointers[player_num]->field_29B8 = 7; + g_playerPointers[player_num]->field_29BC = 1.0f; + g_playerPointers[player_num]->field_29C0 = 0.0f; + g_playerPointers[player_num]->mpmenuon = 0; + g_playerPointers[player_num]->damagetype = 7; + g_playerPointers[player_num]->deathcount = 0; + g_playerPointers[player_num]->field_29E0 = random_byte++; + g_playerPointers[player_num]->last_kill_time[0] = -1; + g_playerPointers[player_num]->last_kill_time[1] = -1; + g_playerPointers[player_num]->last_kill_time[2] = -1; + g_playerPointers[player_num]->last_kill_time[3] = -1; + g_playerPointers[player_num]->healthdisplaytime = 0; + g_playerPointers[player_num]->field_2A30 = 0; + g_playerPointers[player_num]->field_2A34 = 0; + g_playerPointers[player_num]->cur_item_weapon_getname = 1; + g_playerPointers[player_num]->actual_health = 1.0f; + g_playerPointers[player_num]->actual_armor = 1.0f; + g_playerPointers[player_num]->cur_player_control_type_0 = 0; + g_playerPointers[player_num]->cur_player_control_type_1 = 0; + g_playerPointers[player_num]->cur_player_control_type_2 = 0.0f; + g_playerPointers[player_num]->neg_vspacing_for_control_type_entry = 0; + g_playerPointers[player_num]->has_set_control_type_data = one; + g_playerPointers[player_num]->field_2A6C = 0; + g_playerPointers[player_num]->field_2A70 = NULL; + + g_VisibleToGuardsFlag = 1; + obj_collision_flag = 1; } -#else -#ifdef VERSION_US -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(g_playerPointers) -/* 0CF040 7F09A510 27399EE0 */ addiu $t9, %lo(g_playerPointers) # 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(g_VisibleToGuardsFlag) -/* 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(g_VisibleToGuardsFlag)($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 - -#ifdef VERSION_JP -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 -/* 0CFBCC 7F09B05C 27BDFC30 */ addiu $sp, $sp, -0x3d0 -/* 0CFBD0 7F09B060 3C0F8004 */ lui $t7, %hi(D_8003FD94+0xC) # $t7, 0x8004 -/* 0CFBD4 7F09B064 25EFFDD0 */ addiu $t7, %lo(D_8003FD94+0xC) # addiu $t7, $t7, -0x230 -/* 0CFBD8 7F09B068 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CFBDC 7F09B06C AFA403D0 */ sw $a0, 0x3d0($sp) -/* 0CFBE0 7F09B070 25EB03A8 */ addiu $t3, $t7, 0x3a8 -/* 0CFBE4 7F09B074 27AE0024 */ addiu $t6, $sp, 0x24 -.L7F09B078: -/* 0CFBE8 7F09B078 8DE10000 */ lw $at, ($t7) -/* 0CFBEC 7F09B07C 25EF000C */ addiu $t7, $t7, 0xc -/* 0CFBF0 7F09B080 25CE000C */ addiu $t6, $t6, 0xc -/* 0CFBF4 7F09B084 ADC1FFF4 */ sw $at, -0xc($t6) -/* 0CFBF8 7F09B088 8DE1FFF8 */ lw $at, -8($t7) -/* 0CFBFC 7F09B08C ADC1FFF8 */ sw $at, -8($t6) -/* 0CFC00 7F09B090 8DE1FFFC */ lw $at, -4($t7) -/* 0CFC04 7F09B094 15EBFFF8 */ bne $t7, $t3, .L7F09B078 -/* 0CFC08 7F09B098 ADC1FFFC */ sw $at, -4($t6) -/* 0CFC0C 7F09B09C 24042A80 */ li $a0, 10880 -/* 0CFC10 7F09B0A0 0C0025CC */ jal mempAllocBytesInBank -/* 0CFC14 7F09B0A4 24050004 */ li $a1, 4 -/* 0CFC18 7F09B0A8 8FAC03D0 */ lw $t4, 0x3d0($sp) -/* 0CFC1C 7F09B0AC 3C198008 */ lui $t9, %hi(g_playerPointers) # $t9, 0x8008 -/* 0CFC20 7F09B0B0 27399F50 */ addiu $t9, %lo(g_playerPointers) # addiu $t9, $t9, -0x60b0 -/* 0CFC24 7F09B0B4 000C6880 */ sll $t5, $t4, 2 -/* 0CFC28 7F09B0B8 01B91821 */ addu $v1, $t5, $t9 -/* 0CFC2C 7F09B0BC AC620000 */ sw $v0, ($v1) -/* 0CFC30 7F09B0C0 AC400000 */ sw $zero, ($v0) -/* 0CFC34 7F09B0C4 44800000 */ mtc1 $zero, $f0 -/* 0CFC38 7F09B0C8 8C780000 */ lw $t8, ($v1) -/* 0CFC3C 7F09B0CC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CFC40 7F09B0D0 44811000 */ mtc1 $at, $f2 -/* 0CFC44 7F09B0D4 E7000004 */ swc1 $f0, 4($t8) -/* 0CFC48 7F09B0D8 8C6B0000 */ lw $t3, ($v1) -/* 0CFC4C 7F09B0DC 24040002 */ li $a0, 2 -/* 0CFC50 7F09B0E0 24080001 */ li $t0, 1 -/* 0CFC54 7F09B0E4 E5600008 */ swc1 $f0, 8($t3) -/* 0CFC58 7F09B0E8 8C6F0000 */ lw $t7, ($v1) -/* 0CFC5C 7F09B0EC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CFC60 7F09B0F0 44816000 */ mtc1 $at, $f12 -/* 0CFC64 7F09B0F4 E5E0000C */ swc1 $f0, 0xc($t7) -/* 0CFC68 7F09B0F8 8C6E0000 */ lw $t6, ($v1) -/* 0CFC6C 7F09B0FC 2409FFFF */ li $t1, -1 -/* 0CFC70 7F09B100 3C01C080 */ li $at, 0xC0800000 # -4.000000 -/* 0CFC74 7F09B104 E5C00010 */ swc1 $f0, 0x10($t6) -/* 0CFC78 7F09B108 8C6C0000 */ lw $t4, ($v1) -/* 0CFC7C 7F09B10C 44812000 */ mtc1 $at, $f4 -/* 0CFC80 7F09B110 3C018005 */ lui $at, %hi(D_80057610) -/* 0CFC84 7F09B114 E5800014 */ swc1 $f0, 0x14($t4) -/* 0CFC88 7F09B118 8C6D0000 */ lw $t5, ($v1) -/* 0CFC8C 7F09B11C 240200FF */ li $v0, 255 -/* 0CFC90 7F09B120 27AA0024 */ addiu $t2, $sp, 0x24 -/* 0CFC94 7F09B124 E5A20018 */ swc1 $f2, 0x18($t5) -/* 0CFC98 7F09B128 8C790000 */ lw $t9, ($v1) -/* 0CFC9C 7F09B12C E720001C */ swc1 $f0, 0x1c($t9) -/* 0CFCA0 7F09B130 8C780000 */ lw $t8, ($v1) -/* 0CFCA4 7F09B134 E7020020 */ swc1 $f2, 0x20($t8) -/* 0CFCA8 7F09B138 8C6B0000 */ lw $t3, ($v1) -/* 0CFCAC 7F09B13C E5600024 */ swc1 $f0, 0x24($t3) -/* 0CFCB0 7F09B140 8C6F0000 */ lw $t7, ($v1) -/* 0CFCB4 7F09B144 E5E00028 */ swc1 $f0, 0x28($t7) -/* 0CFCB8 7F09B148 8C6E0000 */ lw $t6, ($v1) -/* 0CFCBC 7F09B14C E5C0002C */ swc1 $f0, 0x2c($t6) -/* 0CFCC0 7F09B150 8C6C0000 */ lw $t4, ($v1) -/* 0CFCC4 7F09B154 E5800030 */ swc1 $f0, 0x30($t4) -/* 0CFCC8 7F09B158 8C6D0000 */ lw $t5, ($v1) -/* 0CFCCC 7F09B15C ADA00034 */ sw $zero, 0x34($t5) -/* 0CFCD0 7F09B160 8C790000 */ lw $t9, ($v1) -/* 0CFCD4 7F09B164 E7200038 */ swc1 $f0, 0x38($t9) -/* 0CFCD8 7F09B168 8C780000 */ lw $t8, ($v1) -/* 0CFCDC 7F09B16C E700003C */ swc1 $f0, 0x3c($t8) -/* 0CFCE0 7F09B170 8C6B0000 */ lw $t3, ($v1) -/* 0CFCE4 7F09B174 E5600040 */ swc1 $f0, 0x40($t3) -/* 0CFCE8 7F09B178 8C6F0000 */ lw $t7, ($v1) -/* 0CFCEC 7F09B17C E5E00044 */ swc1 $f0, 0x44($t7) -/* 0CFCF0 7F09B180 8C6E0000 */ lw $t6, ($v1) -/* 0CFCF4 7F09B184 E5C00048 */ swc1 $f0, 0x48($t6) -/* 0CFCF8 7F09B188 8C6C0000 */ lw $t4, ($v1) -/* 0CFCFC 7F09B18C E580004C */ swc1 $f0, 0x4c($t4) -/* 0CFD00 7F09B190 8C6D0000 */ lw $t5, ($v1) -/* 0CFD04 7F09B194 E5A00050 */ swc1 $f0, 0x50($t5) -/* 0CFD08 7F09B198 8C790000 */ lw $t9, ($v1) -/* 0CFD0C 7F09B19C E7200054 */ swc1 $f0, 0x54($t9) -/* 0CFD10 7F09B1A0 8C780000 */ lw $t8, ($v1) -/* 0CFD14 7F09B1A4 E7000058 */ swc1 $f0, 0x58($t8) -/* 0CFD18 7F09B1A8 8C6B0000 */ lw $t3, ($v1) -/* 0CFD1C 7F09B1AC E560006C */ swc1 $f0, 0x6c($t3) -/* 0CFD20 7F09B1B0 8C6F0000 */ lw $t7, ($v1) -/* 0CFD24 7F09B1B4 E5E00070 */ swc1 $f0, 0x70($t7) -/* 0CFD28 7F09B1B8 8C6E0000 */ lw $t6, ($v1) -/* 0CFD2C 7F09B1BC E5C00074 */ swc1 $f0, 0x74($t6) -/* 0CFD30 7F09B1C0 8C6C0000 */ lw $t4, ($v1) -/* 0CFD34 7F09B1C4 E5800078 */ swc1 $f0, 0x78($t4) -/* 0CFD38 7F09B1C8 8C6D0000 */ lw $t5, ($v1) -/* 0CFD3C 7F09B1CC E5A0007C */ swc1 $f0, 0x7c($t5) -/* 0CFD40 7F09B1D0 8C790000 */ lw $t9, ($v1) -/* 0CFD44 7F09B1D4 E7200080 */ swc1 $f0, 0x80($t9) -/* 0CFD48 7F09B1D8 8C780000 */ lw $t8, ($v1) -/* 0CFD4C 7F09B1DC E7000084 */ swc1 $f0, 0x84($t8) -/* 0CFD50 7F09B1E0 8C6B0000 */ lw $t3, ($v1) -/* 0CFD54 7F09B1E4 E5600088 */ swc1 $f0, 0x88($t3) -/* 0CFD58 7F09B1E8 8C6F0000 */ lw $t7, ($v1) -/* 0CFD5C 7F09B1EC ADE0008C */ sw $zero, 0x8c($t7) -/* 0CFD60 7F09B1F0 8C6E0000 */ lw $t6, ($v1) -/* 0CFD64 7F09B1F4 E5C00090 */ swc1 $f0, 0x90($t6) -/* 0CFD68 7F09B1F8 8C6C0000 */ lw $t4, ($v1) -/* 0CFD6C 7F09B1FC AD800094 */ sw $zero, 0x94($t4) -/* 0CFD70 7F09B200 8C6D0000 */ lw $t5, ($v1) -/* 0CFD74 7F09B204 E5A00098 */ swc1 $f0, 0x98($t5) -/* 0CFD78 7F09B208 8C790000 */ lw $t9, ($v1) -/* 0CFD7C 7F09B20C E7201274 */ swc1 $f0, 0x1274($t9) -/* 0CFD80 7F09B210 8C780000 */ lw $t8, ($v1) -/* 0CFD84 7F09B214 E7001278 */ swc1 $f0, 0x1278($t8) -/* 0CFD88 7F09B218 8C6B0000 */ lw $t3, ($v1) -/* 0CFD8C 7F09B21C E560127C */ swc1 $f0, 0x127c($t3) -/* 0CFD90 7F09B220 8C6F0000 */ lw $t7, ($v1) -/* 0CFD94 7F09B224 ADE4009C */ sw $a0, 0x9c($t7) -/* 0CFD98 7F09B228 8C6E0000 */ lw $t6, ($v1) -/* 0CFD9C 7F09B22C ADC429FC */ sw $a0, 0x29fc($t6) -/* 0CFDA0 7F09B230 8C6C0000 */ lw $t4, ($v1) -/* 0CFDA4 7F09B234 E58000A0 */ swc1 $f0, 0xa0($t4) -/* 0CFDA8 7F09B238 8C6D0000 */ lw $t5, ($v1) -/* 0CFDAC 7F09B23C E5A000A4 */ swc1 $f0, 0xa4($t5) -/* 0CFDB0 7F09B240 8C790000 */ lw $t9, ($v1) -/* 0CFDB4 7F09B244 AF2000A8 */ sw $zero, 0xa8($t9) -/* 0CFDB8 7F09B248 8C780000 */ lw $t8, ($v1) -/* 0CFDBC 7F09B24C AF0800AC */ sw $t0, 0xac($t8) -/* 0CFDC0 7F09B250 8C6B0000 */ lw $t3, ($v1) -/* 0CFDC4 7F09B254 AD6000D0 */ sw $zero, 0xd0($t3) -/* 0CFDC8 7F09B258 8C6F0000 */ lw $t7, ($v1) -/* 0CFDCC 7F09B25C ADE000D4 */ sw $zero, 0xd4($t7) -/* 0CFDD0 7F09B260 8C6E0000 */ lw $t6, ($v1) -/* 0CFDD4 7F09B264 ADC000D8 */ sw $zero, 0xd8($t6) -/* 0CFDD8 7F09B268 8C6C0000 */ lw $t4, ($v1) -/* 0CFDDC 7F09B26C E58200DC */ swc1 $f2, 0xdc($t4) -/* 0CFDE0 7F09B270 8C6D0000 */ lw $t5, ($v1) -/* 0CFDE4 7F09B274 E5A000E0 */ swc1 $f0, 0xe0($t5) -/* 0CFDE8 7F09B278 8C790000 */ lw $t9, ($v1) -/* 0CFDEC 7F09B27C E72200E4 */ swc1 $f2, 0xe4($t9) -/* 0CFDF0 7F09B280 8C780000 */ lw $t8, ($v1) -/* 0CFDF4 7F09B284 E70000E8 */ swc1 $f0, 0xe8($t8) -/* 0CFDF8 7F09B288 8C6B0000 */ lw $t3, ($v1) -/* 0CFDFC 7F09B28C E56200EC */ swc1 $f2, 0xec($t3) -/* 0CFE00 7F09B290 8C6F0000 */ lw $t7, ($v1) -/* 0CFE04 7F09B294 E5E000F0 */ swc1 $f0, 0xf0($t7) -/* 0CFE08 7F09B298 8C6E0000 */ lw $t6, ($v1) -/* 0CFE0C 7F09B29C E5CC00F4 */ swc1 $f12, 0xf4($t6) -/* 0CFE10 7F09B2A0 8C6C0000 */ lw $t4, ($v1) -/* 0CFE14 7F09B2A4 E58C00F8 */ swc1 $f12, 0xf8($t4) -/* 0CFE18 7F09B2A8 8C6D0000 */ lw $t5, ($v1) -/* 0CFE1C 7F09B2AC ADA00104 */ sw $zero, 0x104($t5) -/* 0CFE20 7F09B2B0 8C790000 */ lw $t9, ($v1) -/* 0CFE24 7F09B2B4 AF200108 */ sw $zero, 0x108($t9) -/* 0CFE28 7F09B2B8 8C780000 */ lw $t8, ($v1) -/* 0CFE2C 7F09B2BC AF00010C */ sw $zero, 0x10c($t8) -/* 0CFE30 7F09B2C0 8C6B0000 */ lw $t3, ($v1) -/* 0CFE34 7F09B2C4 AD600110 */ sw $zero, 0x110($t3) -/* 0CFE38 7F09B2C8 8C6F0000 */ lw $t7, ($v1) -/* 0CFE3C 7F09B2CC ADE80114 */ sw $t0, 0x114($t7) -/* 0CFE40 7F09B2D0 8C6E0000 */ lw $t6, ($v1) -/* 0CFE44 7F09B2D4 ADC80118 */ sw $t0, 0x118($t6) -/* 0CFE48 7F09B2D8 8C6C0000 */ lw $t4, ($v1) -/* 0CFE4C 7F09B2DC AD80011C */ sw $zero, 0x11c($t4) -/* 0CFE50 7F09B2E0 8C6D0000 */ lw $t5, ($v1) -/* 0CFE54 7F09B2E4 ADA80120 */ sw $t0, 0x120($t5) -/* 0CFE58 7F09B2E8 8C790000 */ lw $t9, ($v1) -/* 0CFE5C 7F09B2EC AF200124 */ sw $zero, 0x124($t9) -/* 0CFE60 7F09B2F0 8C780000 */ lw $t8, ($v1) -/* 0CFE64 7F09B2F4 AF080128 */ sw $t0, 0x128($t8) -/* 0CFE68 7F09B2F8 8C6B0000 */ lw $t3, ($v1) -/* 0CFE6C 7F09B2FC E560012C */ swc1 $f0, 0x12c($t3) -/* 0CFE70 7F09B300 8C6F0000 */ lw $t7, ($v1) -/* 0CFE74 7F09B304 ADE00130 */ sw $zero, 0x130($t7) -/* 0CFE78 7F09B308 8C6E0000 */ lw $t6, ($v1) -/* 0CFE7C 7F09B30C ADC90134 */ sw $t1, 0x134($t6) -/* 0CFE80 7F09B310 8C6C0000 */ lw $t4, ($v1) -/* 0CFE84 7F09B314 AD880138 */ sw $t0, 0x138($t4) -/* 0CFE88 7F09B318 8C6D0000 */ lw $t5, ($v1) -/* 0CFE8C 7F09B31C E5A0013C */ swc1 $f0, 0x13c($t5) -/* 0CFE90 7F09B320 8C790000 */ lw $t9, ($v1) -/* 0CFE94 7F09B324 AF200140 */ sw $zero, 0x140($t9) -/* 0CFE98 7F09B328 8C780000 */ lw $t8, ($v1) -/* 0CFE9C 7F09B32C AF090144 */ sw $t1, 0x144($t8) -/* 0CFEA0 7F09B330 8C6B0000 */ lw $t3, ($v1) -/* 0CFEA4 7F09B334 E5600148 */ swc1 $f0, 0x148($t3) -/* 0CFEA8 7F09B338 8C6F0000 */ lw $t7, ($v1) -/* 0CFEAC 7F09B33C E5E0014C */ swc1 $f0, 0x14c($t7) -/* 0CFEB0 7F09B340 8C6E0000 */ lw $t6, ($v1) -/* 0CFEB4 7F09B344 E5C20150 */ swc1 $f2, 0x150($t6) -/* 0CFEB8 7F09B348 8C6C0000 */ lw $t4, ($v1) -/* 0CFEBC 7F09B34C E5800154 */ swc1 $f0, 0x154($t4) -/* 0CFEC0 7F09B350 8C6D0000 */ lw $t5, ($v1) -/* 0CFEC4 7F09B354 E5A40158 */ swc1 $f4, 0x158($t5) -/* 0CFEC8 7F09B358 8C790000 */ lw $t9, ($v1) -/* 0CFECC 7F09B35C C4267640 */ lwc1 $f6, %lo(D_80057610)($at) -/* 0CFED0 7F09B360 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 -/* 0CFED4 7F09B364 44814000 */ mtc1 $at, $f8 -/* 0CFED8 7F09B368 E726015C */ swc1 $f6, 0x15c($t9) -/* 0CFEDC 7F09B36C 8C780000 */ lw $t8, ($v1) -/* 0CFEE0 7F09B370 3C018005 */ lui $at, %hi(D_80057614) # $at, 0x8005 -/* 0CFEE4 7F09B374 E7000160 */ swc1 $f0, 0x160($t8) -/* 0CFEE8 7F09B378 8C6B0000 */ lw $t3, ($v1) -/* 0CFEEC 7F09B37C E5620164 */ swc1 $f2, 0x164($t3) -/* 0CFEF0 7F09B380 8C6F0000 */ lw $t7, ($v1) -/* 0CFEF4 7F09B384 E5E00168 */ swc1 $f0, 0x168($t7) -/* 0CFEF8 7F09B388 8C6E0000 */ lw $t6, ($v1) -/* 0CFEFC 7F09B38C E5C0016C */ swc1 $f0, 0x16c($t6) -/* 0CFF00 7F09B390 8C6C0000 */ lw $t4, ($v1) -/* 0CFF04 7F09B394 E5800170 */ swc1 $f0, 0x170($t4) -/* 0CFF08 7F09B398 8C6D0000 */ lw $t5, ($v1) -/* 0CFF0C 7F09B39C E5A00174 */ swc1 $f0, 0x174($t5) -/* 0CFF10 7F09B3A0 8C790000 */ lw $t9, ($v1) -/* 0CFF14 7F09B3A4 E7202A4C */ swc1 $f0, 0x2a4c($t9) -/* 0CFF18 7F09B3A8 8C780000 */ lw $t8, ($v1) -/* 0CFF1C 7F09B3AC E7020178 */ swc1 $f2, 0x178($t8) -/* 0CFF20 7F09B3B0 8C6B0000 */ lw $t3, ($v1) -/* 0CFF24 7F09B3B4 E5600180 */ swc1 $f0, 0x180($t3) -/* 0CFF28 7F09B3B8 8C6F0000 */ lw $t7, ($v1) -/* 0CFF2C 7F09B3BC E5E00184 */ swc1 $f0, 0x184($t7) -/* 0CFF30 7F09B3C0 8C6E0000 */ lw $t6, ($v1) -/* 0CFF34 7F09B3C4 E5C00188 */ swc1 $f0, 0x188($t6) -/* 0CFF38 7F09B3C8 8C6C0000 */ lw $t4, ($v1) -/* 0CFF3C 7F09B3CC E58C018C */ swc1 $f12, 0x18c($t4) -/* 0CFF40 7F09B3D0 8C6D0000 */ lw $t5, ($v1) -/* 0CFF44 7F09B3D4 E5AC0190 */ swc1 $f12, 0x190($t5) -/* 0CFF48 7F09B3D8 8C790000 */ lw $t9, ($v1) -/* 0CFF4C 7F09B3DC E7200194 */ swc1 $f0, 0x194($t9) -/* 0CFF50 7F09B3E0 8C780000 */ lw $t8, ($v1) -/* 0CFF54 7F09B3E4 E7000198 */ swc1 $f0, 0x198($t8) -/* 0CFF58 7F09B3E8 8C6B0000 */ lw $t3, ($v1) -/* 0CFF5C 7F09B3EC E560019C */ swc1 $f0, 0x19c($t3) -/* 0CFF60 7F09B3F0 8C6F0000 */ lw $t7, ($v1) -/* 0CFF64 7F09B3F4 ADE001A0 */ sw $zero, 0x1a0($t7) -/* 0CFF68 7F09B3F8 8C6E0000 */ lw $t6, ($v1) -/* 0CFF6C 7F09B3FC ADC001C0 */ sw $zero, 0x1c0($t6) -/* 0CFF70 7F09B400 8C6C0000 */ lw $t4, ($v1) -/* 0CFF74 7F09B404 AD8001C4 */ sw $zero, 0x1c4($t4) -/* 0CFF78 7F09B408 8C6D0000 */ lw $t5, ($v1) -/* 0CFF7C 7F09B40C ADA001C8 */ sw $zero, 0x1c8($t5) -/* 0CFF80 7F09B410 8C790000 */ lw $t9, ($v1) -/* 0CFF84 7F09B414 AF2801CC */ sw $t0, 0x1cc($t9) -/* 0CFF88 7F09B418 8C780000 */ lw $t8, ($v1) -/* 0CFF8C 7F09B41C AF0001D0 */ sw $zero, 0x1d0($t8) -/* 0CFF90 7F09B420 8C6B0000 */ lw $t3, ($v1) -/* 0CFF94 7F09B424 E56001D4 */ swc1 $f0, 0x1d4($t3) -/* 0CFF98 7F09B428 8C6F0000 */ lw $t7, ($v1) -/* 0CFF9C 7F09B42C E5E001D8 */ swc1 $f0, 0x1d8($t7) -/* 0CFFA0 7F09B430 8C6E0000 */ lw $t6, ($v1) -/* 0CFFA4 7F09B434 E5C801DC */ swc1 $f8, 0x1dc($t6) -/* 0CFFA8 7F09B438 8C6C0000 */ lw $t4, ($v1) -/* 0CFFAC 7F09B43C E58001E0 */ swc1 $f0, 0x1e0($t4) -/* 0CFFB0 7F09B440 8C6D0000 */ lw $t5, ($v1) -/* 0CFFB4 7F09B444 E5A201E4 */ swc1 $f2, 0x1e4($t5) -/* 0CFFB8 7F09B448 8C790000 */ lw $t9, ($v1) -/* 0CFFBC 7F09B44C E72001E8 */ swc1 $f0, 0x1e8($t9) -/* 0CFFC0 7F09B450 8C780000 */ lw $t8, ($v1) -/* 0CFFC4 7F09B454 E70001EC */ swc1 $f0, 0x1ec($t8) -/* 0CFFC8 7F09B458 8C6B0000 */ lw $t3, ($v1) -/* 0CFFCC 7F09B45C E56001F0 */ swc1 $f0, 0x1f0($t3) -/* 0CFFD0 7F09B460 8C6F0000 */ lw $t7, ($v1) -/* 0CFFD4 7F09B464 E5E201F4 */ swc1 $f2, 0x1f4($t7) -/* 0CFFD8 7F09B468 8C6E0000 */ lw $t6, ($v1) -/* 0CFFDC 7F09B46C ADC00200 */ sw $zero, 0x200($t6) -/* 0CFFE0 7F09B470 8C6C0000 */ lw $t4, ($v1) -/* 0CFFE4 7F09B474 E5800204 */ swc1 $f0, 0x204($t4) -/* 0CFFE8 7F09B478 8C6D0000 */ lw $t5, ($v1) -/* 0CFFEC 7F09B47C E5A00208 */ swc1 $f0, 0x208($t5) -/* 0CFFF0 7F09B480 8C790000 */ lw $t9, ($v1) -/* 0CFFF4 7F09B484 E720020C */ swc1 $f0, 0x20c($t9) -/* 0CFFF8 7F09B488 8C780000 */ lw $t8, ($v1) -/* 0CFFFC 7F09B48C E7000210 */ swc1 $f0, 0x210($t8) -/* 0D0000 7F09B490 8C6B0000 */ lw $t3, ($v1) -/* 0D0004 7F09B494 E5600214 */ swc1 $f0, 0x214($t3) -/* 0D0008 7F09B498 8C6F0000 */ lw $t7, ($v1) -/* 0D000C 7F09B49C ADE00218 */ sw $zero, 0x218($t7) -/* 0D0010 7F09B4A0 8C6E0000 */ lw $t6, ($v1) -/* 0D0014 7F09B4A4 ADC8021C */ sw $t0, 0x21c($t6) -/* 0D0018 7F09B4A8 8C6C0000 */ lw $t4, ($v1) -/* 0D001C 7F09B4AC AD800220 */ sw $zero, 0x220($t4) -/* 0D0020 7F09B4B0 8C6D0000 */ lw $t5, ($v1) -/* 0D0024 7F09B4B4 E5A00224 */ swc1 $f0, 0x224($t5) -/* 0D0028 7F09B4B8 8C790000 */ lw $t9, ($v1) -/* 0D002C 7F09B4BC A72003B4 */ sh $zero, 0x3b4($t9) -/* 0D0030 7F09B4C0 8C780000 */ lw $t8, ($v1) -/* 0D0034 7F09B4C4 A70003B6 */ sh $zero, 0x3b6($t8) -/* 0D0038 7F09B4C8 8C6B0000 */ lw $t3, ($v1) -/* 0D003C 7F09B4CC E56003B8 */ swc1 $f0, 0x3b8($t3) -/* 0D0040 7F09B4D0 8C6F0000 */ lw $t7, ($v1) -/* 0D0044 7F09B4D4 E5E003BC */ swc1 $f0, 0x3bc($t7) -/* 0D0048 7F09B4D8 8C6E0000 */ lw $t6, ($v1) -/* 0D004C 7F09B4DC C42A7644 */ lwc1 $f10, %lo(D_80057614)($at) -/* 0D0050 7F09B4E0 E5CA03C0 */ swc1 $f10, 0x3c0($t6) -/* 0D0054 7F09B4E4 8C6C0000 */ lw $t4, ($v1) -/* 0D0058 7F09B4E8 E58003C4 */ swc1 $f0, 0x3c4($t4) -/* 0D005C 7F09B4EC 8C6D0000 */ lw $t5, ($v1) -/* 0D0060 7F09B4F0 E5A003C8 */ swc1 $f0, 0x3c8($t5) -/* 0D0064 7F09B4F4 8C790000 */ lw $t9, ($v1) -/* 0D0068 7F09B4F8 E72203CC */ swc1 $f2, 0x3cc($t9) -/* 0D006C 7F09B4FC 8C780000 */ lw $t8, ($v1) -/* 0D0070 7F09B500 AF0203D0 */ sw $v0, 0x3d0($t8) -/* 0D0074 7F09B504 8C6B0000 */ lw $t3, ($v1) -/* 0D0078 7F09B508 AD6203D4 */ sw $v0, 0x3d4($t3) -/* 0D007C 7F09B50C 8C6F0000 */ lw $t7, ($v1) -/* 0D0080 7F09B510 3C018005 */ lui $at, %hi(D_80057618) # $at, 0x8005 -/* 0D0084 7F09B514 24070020 */ li $a3, 32 -/* 0D0088 7F09B518 ADE203D8 */ sw $v0, 0x3d8($t7) -/* 0D008C 7F09B51C 8C6E0000 */ lw $t6, ($v1) -/* 0D0090 7F09B520 240601FF */ li $a2, 511 -/* 0D0094 7F09B524 240501E0 */ li $a1, 480 -/* 0D0098 7F09B528 E5C003DC */ swc1 $f0, 0x3dc($t6) -/* 0D009C 7F09B52C 8C6C0000 */ lw $t4, ($v1) -/* 0D00A0 7F09B530 E58C03E0 */ swc1 $f12, 0x3e0($t4) -/* 0D00A4 7F09B534 8C6D0000 */ lw $t5, ($v1) -/* 0D00A8 7F09B538 E5AC03E4 */ swc1 $f12, 0x3e4($t5) -/* 0D00AC 7F09B53C 8C790000 */ lw $t9, ($v1) -/* 0D00B0 7F09B540 AF2203E8 */ sw $v0, 0x3e8($t9) -/* 0D00B4 7F09B544 8C780000 */ lw $t8, ($v1) -/* 0D00B8 7F09B548 AF0203EC */ sw $v0, 0x3ec($t8) -/* 0D00BC 7F09B54C 8C6B0000 */ lw $t3, ($v1) -/* 0D00C0 7F09B550 AD6203F0 */ sw $v0, 0x3f0($t3) -/* 0D00C4 7F09B554 8C6F0000 */ lw $t7, ($v1) -/* 0D00C8 7F09B558 ADE203F4 */ sw $v0, 0x3f4($t7) -/* 0D00CC 7F09B55C 8C6E0000 */ lw $t6, ($v1) -/* 0D00D0 7F09B560 ADC203F8 */ sw $v0, 0x3f8($t6) -/* 0D00D4 7F09B564 8C6C0000 */ lw $t4, ($v1) -/* 0D00D8 7F09B568 AD8203FC */ sw $v0, 0x3fc($t4) -/* 0D00DC 7F09B56C 8C6D0000 */ lw $t5, ($v1) -/* 0D00E0 7F09B570 00001025 */ move $v0, $zero -/* 0D00E4 7F09B574 E5A00400 */ swc1 $f0, 0x400($t5) -/* 0D00E8 7F09B578 8C790000 */ lw $t9, ($v1) -/* 0D00EC 7F09B57C E7200404 */ swc1 $f0, 0x404($t9) -/* 0D00F0 7F09B580 8C780000 */ lw $t8, ($v1) -/* 0D00F4 7F09B584 AF00041C */ sw $zero, 0x41c($t8) -/* 0D00F8 7F09B588 8C6B0000 */ lw $t3, ($v1) -/* 0D00FC 7F09B58C AD680420 */ sw $t0, 0x420($t3) -/* 0D0100 7F09B590 8C6F0000 */ lw $t7, ($v1) -/* 0D0104 7F09B594 ADE00424 */ sw $zero, 0x424($t7) -/* 0D0108 7F09B598 8C6E0000 */ lw $t6, ($v1) -/* 0D010C 7F09B59C ADC00428 */ sw $zero, 0x428($t6) -/* 0D0110 7F09B5A0 8C6C0000 */ lw $t4, ($v1) -/* 0D0114 7F09B5A4 AD84042C */ sw $a0, 0x42c($t4) -/* 0D0118 7F09B5A8 8C6D0000 */ lw $t5, ($v1) -/* 0D011C 7F09B5AC 24040280 */ li $a0, 640 -/* 0D0120 7F09B5B0 ADA00430 */ sw $zero, 0x430($t5) -/* 0D0124 7F09B5B4 8C790000 */ lw $t9, ($v1) -/* 0D0128 7F09B5B8 AF2804DC */ sw $t0, 0x4dc($t9) -/* 0D012C 7F09B5BC 8C780000 */ lw $t8, ($v1) -/* 0D0130 7F09B5C0 AF0804E0 */ sw $t0, 0x4e0($t8) -/* 0D0134 7F09B5C4 8C6B0000 */ lw $t3, ($v1) -/* 0D0138 7F09B5C8 AD6804E4 */ sw $t0, 0x4e4($t3) -/* 0D013C 7F09B5CC 8C6F0000 */ lw $t7, ($v1) -/* 0D0140 7F09B5D0 ADE004E8 */ sw $zero, 0x4e8($t7) -/* 0D0144 7F09B5D4 8C6E0000 */ lw $t6, ($v1) -/* 0D0148 7F09B5D8 C4327648 */ lwc1 $f18, %lo(D_80057618)($at) -/* 0D014C 7F09B5DC 3C018005 */ lui $at, %hi(D_8005761C) # $at, 0x8005 -/* 0D0150 7F09B5E0 E5D204EC */ swc1 $f18, 0x4ec($t6) -/* 0D0154 7F09B5E4 8C6C0000 */ lw $t4, ($v1) -/* 0D0158 7F09B5E8 AD8004F0 */ sw $zero, 0x4f0($t4) -/* 0D015C 7F09B5EC 8C6D0000 */ lw $t5, ($v1) -/* 0D0160 7F09B5F0 E5A204F4 */ swc1 $f2, 0x4f4($t5) -/* 0D0164 7F09B5F4 8C790000 */ lw $t9, ($v1) -/* 0D0168 7F09B5F8 E72204F8 */ swc1 $f2, 0x4f8($t9) -/* 0D016C 7F09B5FC 8C780000 */ lw $t8, ($v1) -/* 0D0170 7F09B600 E70004FC */ swc1 $f0, 0x4fc($t8) -/* 0D0174 7F09B604 8C6B0000 */ lw $t3, ($v1) -/* 0D0178 7F09B608 E5600500 */ swc1 $f0, 0x500($t3) -/* 0D017C 7F09B60C 8C6F0000 */ lw $t7, ($v1) -/* 0D0180 7F09B610 E5E00504 */ swc1 $f0, 0x504($t7) -/* 0D0184 7F09B614 8C6E0000 */ lw $t6, ($v1) -/* 0D0188 7F09B618 C42C764C */ lwc1 $f12, %lo(D_8005761C)($at) -/* 0D018C 7F09B61C E5C00508 */ swc1 $f0, 0x508($t6) -/* 0D0190 7F09B620 8C6C0000 */ lw $t4, ($v1) -/* 0D0194 7F09B624 E580050C */ swc1 $f0, 0x50c($t4) -/* 0D0198 7F09B628 8C6D0000 */ lw $t5, ($v1) -/* 0D019C 7F09B62C E5A20510 */ swc1 $f2, 0x510($t5) -/* 0D01A0 7F09B630 8C790000 */ lw $t9, ($v1) -/* 0D01A4 7F09B634 E7200514 */ swc1 $f0, 0x514($t9) -/* 0D01A8 7F09B638 8C780000 */ lw $t8, ($v1) -/* 0D01AC 7F09B63C E7020518 */ swc1 $f2, 0x518($t8) -/* 0D01B0 7F09B640 8C6B0000 */ lw $t3, ($v1) -/* 0D01B4 7F09B644 E560051C */ swc1 $f0, 0x51c($t3) -/* 0D01B8 7F09B648 8C6F0000 */ lw $t7, ($v1) -/* 0D01BC 7F09B64C E5E00520 */ swc1 $f0, 0x520($t7) -/* 0D01C0 7F09B650 8C6E0000 */ lw $t6, ($v1) -/* 0D01C4 7F09B654 E5C00524 */ swc1 $f0, 0x524($t6) -/* 0D01C8 7F09B658 8C6C0000 */ lw $t4, ($v1) -/* 0D01CC 7F09B65C E5800528 */ swc1 $f0, 0x528($t4) -/* 0D01D0 7F09B660 8C6D0000 */ lw $t5, ($v1) -/* 0D01D4 7F09B664 E5A0052C */ swc1 $f0, 0x52c($t5) -/* 0D01D8 7F09B668 8C790000 */ lw $t9, ($v1) -/* 0D01DC 7F09B66C E7200530 */ swc1 $f0, 0x530($t9) -/* 0D01E0 7F09B670 8C780000 */ lw $t8, ($v1) -/* 0D01E4 7F09B674 E70C0534 */ swc1 $f12, 0x534($t8) -/* 0D01E8 7F09B678 8C6B0000 */ lw $t3, ($v1) -/* 0D01EC 7F09B67C E5600538 */ swc1 $f0, 0x538($t3) -/* 0D01F0 7F09B680 8C6F0000 */ lw $t7, ($v1) -/* 0D01F4 7F09B684 E5EC053C */ swc1 $f12, 0x53c($t7) -/* 0D01F8 7F09B688 8C6E0000 */ lw $t6, ($v1) -/* 0D01FC 7F09B68C E5C00540 */ swc1 $f0, 0x540($t6) -/* 0D0200 7F09B690 8C6C0000 */ lw $t4, ($v1) -/* 0D0204 7F09B694 E5800544 */ swc1 $f0, 0x544($t4) -/* 0D0208 7F09B698 8C6D0000 */ lw $t5, ($v1) -/* 0D020C 7F09B69C E5A00548 */ swc1 $f0, 0x548($t5) -/* 0D0210 7F09B6A0 8C790000 */ lw $t9, ($v1) -/* 0D0214 7F09B6A4 E720054C */ swc1 $f0, 0x54c($t9) -/* 0D0218 7F09B6A8 8C780000 */ lw $t8, ($v1) -/* 0D021C 7F09B6AC E7000550 */ swc1 $f0, 0x550($t8) -/* 0D0220 7F09B6B0 8C6B0000 */ lw $t3, ($v1) -/* 0D0224 7F09B6B4 E5600554 */ swc1 $f0, 0x554($t3) -/* 0D0228 7F09B6B8 8C6F0000 */ lw $t7, ($v1) -/* 0D022C 7F09B6BC E5E00558 */ swc1 $f0, 0x558($t7) -/* 0D0230 7F09B6C0 8C6E0000 */ lw $t6, ($v1) -/* 0D0234 7F09B6C4 E5C0055C */ swc1 $f0, 0x55c($t6) -/* 0D0238 7F09B6C8 8C6C0000 */ lw $t4, ($v1) -/* 0D023C 7F09B6CC E5800560 */ swc1 $f0, 0x560($t4) -/* 0D0240 7F09B6D0 8C6D0000 */ lw $t5, ($v1) -/* 0D0244 7F09B6D4 E5A00564 */ swc1 $f0, 0x564($t5) -/* 0D0248 7F09B6D8 8C790000 */ lw $t9, ($v1) -/* 0D024C 7F09B6DC E7200568 */ swc1 $f0, 0x568($t9) -/* 0D0250 7F09B6E0 8C780000 */ lw $t8, ($v1) -/* 0D0254 7F09B6E4 E702056C */ swc1 $f2, 0x56c($t8) -/* 0D0258 7F09B6E8 8C6B0000 */ lw $t3, ($v1) -/* 0D025C 7F09B6EC E5600570 */ swc1 $f0, 0x570($t3) -/* 0D0260 7F09B6F0 8C6F0000 */ lw $t7, ($v1) -/* 0D0264 7F09B6F4 E5E00574 */ swc1 $f0, 0x574($t7) -/* 0D0268 7F09B6F8 8C6E0000 */ lw $t6, ($v1) -/* 0D026C 7F09B6FC E5C20578 */ swc1 $f2, 0x578($t6) -/* 0D0270 7F09B700 8C6C0000 */ lw $t4, ($v1) -/* 0D0274 7F09B704 E580057C */ swc1 $f0, 0x57c($t4) -/* 0D0278 7F09B708 8C6D0000 */ lw $t5, ($v1) -/* 0D027C 7F09B70C E5A20580 */ swc1 $f2, 0x580($t5) -/* 0D0280 7F09B710 8C790000 */ lw $t9, ($v1) -/* 0D0284 7F09B714 E7200584 */ swc1 $f0, 0x584($t9) -/* 0D0288 7F09B718 8C780000 */ lw $t8, ($v1) -/* 0D028C 7F09B71C E7000588 */ swc1 $f0, 0x588($t8) -/* 0D0290 7F09B720 8C6B0000 */ lw $t3, ($v1) -/* 0D0294 7F09B724 E562058C */ swc1 $f2, 0x58c($t3) -/* 0D0298 7F09B728 8C6F0000 */ lw $t7, ($v1) -/* 0D029C 7F09B72C E5E00590 */ swc1 $f0, 0x590($t7) -/* 0D02A0 7F09B730 8C6E0000 */ lw $t6, ($v1) -/* 0D02A4 7F09B734 ADC00594 */ sw $zero, 0x594($t6) -.L7F09B738: -/* 0D02A8 7F09B738 8C6C0000 */ lw $t4, ($v1) -/* 0D02AC 7F09B73C 01826821 */ addu $t5, $t4, $v0 -/* 0D02B0 7F09B740 A5A407D0 */ sh $a0, 0x7d0($t5) -/* 0D02B4 7F09B744 8C790000 */ lw $t9, ($v1) -/* 0D02B8 7F09B748 0322C021 */ addu $t8, $t9, $v0 -/* 0D02BC 7F09B74C A70507D2 */ sh $a1, 0x7d2($t8) -/* 0D02C0 7F09B750 8C6B0000 */ lw $t3, ($v1) -/* 0D02C4 7F09B754 01627821 */ addu $t7, $t3, $v0 -/* 0D02C8 7F09B758 A5E607D4 */ sh $a2, 0x7d4($t7) -/* 0D02CC 7F09B75C 8C6E0000 */ lw $t6, ($v1) -/* 0D02D0 7F09B760 01C26021 */ addu $t4, $t6, $v0 -/* 0D02D4 7F09B764 A58007D6 */ sh $zero, 0x7d6($t4) -/* 0D02D8 7F09B768 8C6D0000 */ lw $t5, ($v1) -/* 0D02DC 7F09B76C 01A2C821 */ addu $t9, $t5, $v0 -/* 0D02E0 7F09B770 A72407D8 */ sh $a0, 0x7d8($t9) -/* 0D02E4 7F09B774 8C780000 */ lw $t8, ($v1) -/* 0D02E8 7F09B778 03025821 */ addu $t3, $t8, $v0 -/* 0D02EC 7F09B77C A56507DA */ sh $a1, 0x7da($t3) -/* 0D02F0 7F09B780 8C6F0000 */ lw $t7, ($v1) -/* 0D02F4 7F09B784 01E27021 */ addu $t6, $t7, $v0 -/* 0D02F8 7F09B788 A5C607DC */ sh $a2, 0x7dc($t6) -/* 0D02FC 7F09B78C 8C6C0000 */ lw $t4, ($v1) -/* 0D0300 7F09B790 01826821 */ addu $t5, $t4, $v0 -/* 0D0304 7F09B794 24420010 */ addiu $v0, $v0, 0x10 -/* 0D0308 7F09B798 1447FFE7 */ bne $v0, $a3, .L7F09B738 -/* 0D030C 7F09B79C A5A007DE */ sh $zero, 0x7de($t5) -/* 0D0310 7F09B7A0 8C790000 */ lw $t9, ($v1) -/* 0D0314 7F09B7A4 24020064 */ li $v0, 100 -/* 0D0318 7F09B7A8 A72207F0 */ sh $v0, 0x7f0($t9) -/* 0D031C 7F09B7AC 8C780000 */ lw $t8, ($v1) -/* 0D0320 7F09B7B0 A70207F2 */ sh $v0, 0x7f2($t8) -/* 0D0324 7F09B7B4 8C6B0000 */ lw $t3, ($v1) -/* 0D0328 7F09B7B8 A56007F4 */ sh $zero, 0x7f4($t3) -/* 0D032C 7F09B7BC 8C6F0000 */ lw $t7, ($v1) -/* 0D0330 7F09B7C0 A5E007F6 */ sh $zero, 0x7f6($t7) -/* 0D0334 7F09B7C4 8C6E0000 */ lw $t6, ($v1) -/* 0D0338 7F09B7C8 ADC007F8 */ sw $zero, 0x7f8($t6) -/* 0D033C 7F09B7CC 8C6C0000 */ lw $t4, ($v1) -/* 0D0340 7F09B7D0 AD8007FC */ sw $zero, 0x7fc($t4) -/* 0D0344 7F09B7D4 8C6D0000 */ lw $t5, ($v1) -/* 0D0348 7F09B7D8 ADA00800 */ sw $zero, 0x800($t5) -/* 0D034C 7F09B7DC 8C790000 */ lw $t9, ($v1) -/* 0D0350 7F09B7E0 AF200804 */ sw $zero, 0x804($t9) -/* 0D0354 7F09B7E4 8C780000 */ lw $t8, ($v1) -/* 0D0358 7F09B7E8 AF092A44 */ sw $t1, 0x2a44($t8) -/* 0D035C 7F09B7EC 8C6B0000 */ lw $t3, ($v1) -/* 0D0360 7F09B7F0 0140C025 */ move $t8, $t2 -/* 0D0364 7F09B7F4 AD692A48 */ sw $t1, 0x2a48($t3) -/* 0D0368 7F09B7F8 8C6F0000 */ lw $t7, ($v1) -/* 0D036C 7F09B7FC 254B03A8 */ addiu $t3, $t2, 0x3a8 -/* 0D0370 7F09B800 ADE02A50 */ sw $zero, 0x2a50($t7) -/* 0D0374 7F09B804 8C6E0000 */ lw $t6, ($v1) -/* 0D0378 7F09B808 01407825 */ move $t7, $t2 -/* 0D037C 7F09B80C ADC02A54 */ sw $zero, 0x2a54($t6) -/* 0D0380 7F09B810 8C6C0000 */ lw $t4, ($v1) -/* 0D0384 7F09B814 AD800808 */ sw $zero, 0x808($t4) -/* 0D0388 7F09B818 8C6D0000 */ lw $t5, ($v1) -/* 0D038C 7F09B81C ADA0080C */ sw $zero, 0x80c($t5) -/* 0D0390 7F09B820 8C790000 */ lw $t9, ($v1) -.L7F09B824: -/* 0D0394 7F09B824 8DE10000 */ lw $at, ($t7) -/* 0D0398 7F09B828 25EF000C */ addiu $t7, $t7, 0xc -/* 0D039C 7F09B82C 2739000C */ addiu $t9, $t9, 0xc -/* 0D03A0 7F09B830 AF210864 */ sw $at, 0x864($t9) -/* 0D03A4 7F09B834 8DE1FFF8 */ lw $at, -8($t7) -/* 0D03A8 7F09B838 AF210868 */ sw $at, 0x868($t9) -/* 0D03AC 7F09B83C 8DE1FFFC */ lw $at, -4($t7) -/* 0D03B0 7F09B840 15EBFFF8 */ bne $t7, $t3, .L7F09B824 -/* 0D03B4 7F09B844 AF21086C */ sw $at, 0x86c($t9) -/* 0D03B8 7F09B848 8C6E0000 */ lw $t6, ($v1) -/* 0D03BC 7F09B84C 254D03A8 */ addiu $t5, $t2, 0x3a8 -.L7F09B850: -/* 0D03C0 7F09B850 8F010000 */ lw $at, ($t8) -/* 0D03C4 7F09B854 2718000C */ addiu $t8, $t8, 0xc -/* 0D03C8 7F09B858 25CE000C */ addiu $t6, $t6, 0xc -/* 0D03CC 7F09B85C ADC10C0C */ sw $at, 0xc0c($t6) -/* 0D03D0 7F09B860 8F01FFF8 */ lw $at, -8($t8) -/* 0D03D4 7F09B864 ADC10C10 */ sw $at, 0xc10($t6) -/* 0D03D8 7F09B868 8F01FFFC */ lw $at, -4($t8) -/* 0D03DC 7F09B86C 170DFFF8 */ bne $t8, $t5, .L7F09B850 -/* 0D03E0 7F09B870 ADC10C14 */ sw $at, 0xc14($t6) -/* 0D03E4 7F09B874 8C6B0000 */ lw $t3, ($v1) -/* 0D03E8 7F09B878 3C018005 */ lui $at, %hi(D_80057620) # $at, 0x8005 -/* 0D03EC 7F09B87C 240200FF */ li $v0, 255 -/* 0D03F0 7F09B880 E5620FC0 */ swc1 $f2, 0xfc0($t3) -/* 0D03F4 7F09B884 8C6F0000 */ lw $t7, ($v1) -/* 0D03F8 7F09B888 24040007 */ li $a0, 7 -/* 0D03FC 7F09B88C E5E20FC4 */ swc1 $f2, 0xfc4($t7) -/* 0D0400 7F09B890 8C790000 */ lw $t9, ($v1) -/* 0D0404 7F09B894 AF200FC8 */ sw $zero, 0xfc8($t9) -/* 0D0408 7F09B898 8C6C0000 */ lw $t4, ($v1) -/* 0D040C 7F09B89C AD800FCC */ sw $zero, 0xfcc($t4) -/* 0D0410 7F09B8A0 8C6D0000 */ lw $t5, ($v1) -/* 0D0414 7F09B8A4 C42C7650 */ lwc1 $f12, %lo(D_80057620)($at) -/* 0D0418 7F09B8A8 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 0D041C 7F09B8AC ADA00FD0 */ sw $zero, 0xfd0($t5) -/* 0D0420 7F09B8B0 8C780000 */ lw $t8, ($v1) -/* 0D0424 7F09B8B4 AF000FD4 */ sw $zero, 0xfd4($t8) -/* 0D0428 7F09B8B8 8C6E0000 */ lw $t6, ($v1) -/* 0D042C 7F09B8BC ADC00FD8 */ sw $zero, 0xfd8($t6) -/* 0D0430 7F09B8C0 8C6B0000 */ lw $t3, ($v1) -/* 0D0434 7F09B8C4 A1620FDC */ sb $v0, 0xfdc($t3) -/* 0D0438 7F09B8C8 8C6F0000 */ lw $t7, ($v1) -/* 0D043C 7F09B8CC A1E20FDD */ sb $v0, 0xfdd($t7) -/* 0D0440 7F09B8D0 8C790000 */ lw $t9, ($v1) -/* 0D0444 7F09B8D4 A3220FDE */ sb $v0, 0xfde($t9) -/* 0D0448 7F09B8D8 8C6C0000 */ lw $t4, ($v1) -/* 0D044C 7F09B8DC 3C028008 */ lui $v0, %hi(random_byte) # $v0, 0x8008 -/* 0D0450 7F09B8E0 2442A12C */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x5ed4 -/* 0D0454 7F09B8E4 A1800FDF */ sb $zero, 0xfdf($t4) -/* 0D0458 7F09B8E8 8C6D0000 */ lw $t5, ($v1) -/* 0D045C 7F09B8EC ADA80FE0 */ sw $t0, 0xfe0($t5) -/* 0D0460 7F09B8F0 8C780000 */ lw $t8, ($v1) -/* 0D0464 7F09B8F4 AF000FE4 */ sw $zero, 0xfe4($t8) -/* 0D0468 7F09B8F8 8C6E0000 */ lw $t6, ($v1) -/* 0D046C 7F09B8FC E5C00FE8 */ swc1 $f0, 0xfe8($t6) -/* 0D0470 7F09B900 8C6B0000 */ lw $t3, ($v1) -/* 0D0474 7F09B904 E5600FEC */ swc1 $f0, 0xfec($t3) -/* 0D0478 7F09B908 8C6F0000 */ lw $t7, ($v1) -/* 0D047C 7F09B90C E5E00FF0 */ swc1 $f0, 0xff0($t7) -/* 0D0480 7F09B910 8C790000 */ lw $t9, ($v1) -/* 0D0484 7F09B914 E7200FF4 */ swc1 $f0, 0xff4($t9) -/* 0D0488 7F09B918 8C6C0000 */ lw $t4, ($v1) -/* 0D048C 7F09B91C E58C0FF8 */ swc1 $f12, 0xff8($t4) -/* 0D0490 7F09B920 8C6D0000 */ lw $t5, ($v1) -/* 0D0494 7F09B924 E5A00FFC */ swc1 $f0, 0xffc($t5) -/* 0D0498 7F09B928 8C780000 */ lw $t8, ($v1) -/* 0D049C 7F09B92C E7001000 */ swc1 $f0, 0x1000($t8) -/* 0D04A0 7F09B930 8C6E0000 */ lw $t6, ($v1) -/* 0D04A4 7F09B934 E5C01004 */ swc1 $f0, 0x1004($t6) -/* 0D04A8 7F09B938 8C6B0000 */ lw $t3, ($v1) -/* 0D04AC 7F09B93C E5601008 */ swc1 $f0, 0x1008($t3) -/* 0D04B0 7F09B940 8C6F0000 */ lw $t7, ($v1) -/* 0D04B4 7F09B944 E5EC100C */ swc1 $f12, 0x100c($t7) -/* 0D04B8 7F09B948 44816000 */ mtc1 $at, $f12 -/* 0D04BC 7F09B94C 8C790000 */ lw $t9, ($v1) -/* 0D04C0 7F09B950 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 0D04C4 7F09B954 44817000 */ mtc1 $at, $f14 -/* 0D04C8 7F09B958 3C014370 */ li $at, 0x43700000 # 240.000000 -/* 0D04CC 7F09B95C 44818000 */ mtc1 $at, $f16 -/* 0D04D0 7F09B960 E7201010 */ swc1 $f0, 0x1010($t9) -/* 0D04D4 7F09B964 3C018005 */ lui $at, %hi(D_80057624) # $at, 0x8005 -/* 0D04D8 7F09B968 C4247654 */ lwc1 $f4, %lo(D_80057624)($at) -/* 0D04DC 7F09B96C 8C6C0000 */ lw $t4, ($v1) -/* 0D04E0 7F09B970 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0D04E4 7F09B974 44813000 */ mtc1 $at, $f6 -/* 0D04E8 7F09B978 E5841014 */ swc1 $f4, 0x1014($t4) -/* 0D04EC 7F09B97C 8C6D0000 */ lw $t5, ($v1) -/* 0D04F0 7F09B980 3C014238 */ li $at, 0x42380000 # 46.000000 -/* 0D04F4 7F09B984 44814000 */ mtc1 $at, $f8 -/* 0D04F8 7F09B988 E5A01018 */ swc1 $f0, 0x1018($t5) -/* 0D04FC 7F09B98C 8C780000 */ lw $t8, ($v1) -/* 0D0500 7F09B990 3C014320 */ li $at, 0x43200000 # 160.000000 -/* 0D0504 7F09B994 44815000 */ mtc1 $at, $f10 -/* 0D0508 7F09B998 AF00105C */ sw $zero, 0x105c($t8) -/* 0D050C 7F09B99C 8C6E0000 */ lw $t6, ($v1) -/* 0D0510 7F09B9A0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 0D0514 7F09B9A4 44819000 */ mtc1 $at, $f18 -/* 0D0518 7F09B9A8 ADC01060 */ sw $zero, 0x1060($t6) -/* 0D051C 7F09B9AC 8C6B0000 */ lw $t3, ($v1) -/* 0D0520 7F09B9B0 3C018005 */ lui $at, %hi(D_80057628) # $at, 0x8005 -/* 0D0524 7F09B9B4 AD601064 */ sw $zero, 0x1064($t3) -/* 0D0528 7F09B9B8 8C6F0000 */ lw $t7, ($v1) -/* 0D052C 7F09B9BC E5E0106C */ swc1 $f0, 0x106c($t7) -/* 0D0530 7F09B9C0 8C790000 */ lw $t9, ($v1) -/* 0D0534 7F09B9C4 E7201070 */ swc1 $f0, 0x1070($t9) -/* 0D0538 7F09B9C8 8C6C0000 */ lw $t4, ($v1) -/* 0D053C 7F09B9CC E5801074 */ swc1 $f0, 0x1074($t4) -/* 0D0540 7F09B9D0 8C6D0000 */ lw $t5, ($v1) -/* 0D0544 7F09B9D4 ADA01078 */ sw $zero, 0x1078($t5) -/* 0D0548 7F09B9D8 8C780000 */ lw $t8, ($v1) -/* 0D054C 7F09B9DC E700107C */ swc1 $f0, 0x107c($t8) -/* 0D0550 7F09B9E0 8C6E0000 */ lw $t6, ($v1) -/* 0D0554 7F09B9E4 E5C01080 */ swc1 $f0, 0x1080($t6) -/* 0D0558 7F09B9E8 8C6B0000 */ lw $t3, ($v1) -/* 0D055C 7F09B9EC E56C1084 */ swc1 $f12, 0x1084($t3) -/* 0D0560 7F09B9F0 8C6F0000 */ lw $t7, ($v1) -/* 0D0564 7F09B9F4 E5EC1088 */ swc1 $f12, 0x1088($t7) -/* 0D0568 7F09B9F8 8C790000 */ lw $t9, ($v1) -/* 0D056C 7F09B9FC AF29108C */ sw $t1, 0x108c($t9) -/* 0D0570 7F09BA00 8C6C0000 */ lw $t4, ($v1) -/* 0D0574 7F09BA04 E58E1090 */ swc1 $f14, 0x1090($t4) -/* 0D0578 7F09BA08 8C6D0000 */ lw $t5, ($v1) -/* 0D057C 7F09BA0C E5B01094 */ swc1 $f16, 0x1094($t5) -/* 0D0580 7F09BA10 8C780000 */ lw $t8, ($v1) -/* 0D0584 7F09BA14 E7001098 */ swc1 $f0, 0x1098($t8) -/* 0D0588 7F09BA18 8C6E0000 */ lw $t6, ($v1) -/* 0D058C 7F09BA1C E5C0109C */ swc1 $f0, 0x109c($t6) -/* 0D0590 7F09BA20 8C6B0000 */ lw $t3, ($v1) -/* 0D0594 7F09BA24 E56610A0 */ swc1 $f6, 0x10a0($t3) -/* 0D0598 7F09BA28 8C6F0000 */ lw $t7, ($v1) -/* 0D059C 7F09BA2C E5E810A4 */ swc1 $f8, 0x10a4($t7) -/* 0D05A0 7F09BA30 8C790000 */ lw $t9, ($v1) -/* 0D05A4 7F09BA34 E72210A8 */ swc1 $f2, 0x10a8($t9) -/* 0D05A8 7F09BA38 8C6C0000 */ lw $t4, ($v1) -/* 0D05AC 7F09BA3C E58A10AC */ swc1 $f10, 0x10ac($t4) -/* 0D05B0 7F09BA40 8C6D0000 */ lw $t5, ($v1) -/* 0D05B4 7F09BA44 E5B210B0 */ swc1 $f18, 0x10b0($t5) -/* 0D05B8 7F09BA48 8C780000 */ lw $t8, ($v1) -/* 0D05BC 7F09BA4C E70210B4 */ swc1 $f2, 0x10b4($t8) -/* 0D05C0 7F09BA50 8C6E0000 */ lw $t6, ($v1) -/* 0D05C4 7F09BA54 E5C210B8 */ swc1 $f2, 0x10b8($t6) -/* 0D05C8 7F09BA58 8C6B0000 */ lw $t3, ($v1) -/* 0D05CC 7F09BA5C E56210BC */ swc1 $f2, 0x10bc($t3) -/* 0D05D0 7F09BA60 8C6F0000 */ lw $t7, ($v1) -/* 0D05D4 7F09BA64 E5E210C0 */ swc1 $f2, 0x10c0($t7) -/* 0D05D8 7F09BA68 8C790000 */ lw $t9, ($v1) -/* 0D05DC 7F09BA6C AF2010C4 */ sw $zero, 0x10c4($t9) -/* 0D05E0 7F09BA70 8C6C0000 */ lw $t4, ($v1) -/* 0D05E4 7F09BA74 AD8010C8 */ sw $zero, 0x10c8($t4) -/* 0D05E8 7F09BA78 8C6D0000 */ lw $t5, ($v1) -/* 0D05EC 7F09BA7C ADA010CC */ sw $zero, 0x10cc($t5) -/* 0D05F0 7F09BA80 8C780000 */ lw $t8, ($v1) -/* 0D05F4 7F09BA84 AF0010D0 */ sw $zero, 0x10d0($t8) -/* 0D05F8 7F09BA88 8C6E0000 */ lw $t6, ($v1) -/* 0D05FC 7F09BA8C ADC010D4 */ sw $zero, 0x10d4($t6) -/* 0D0600 7F09BA90 8C6B0000 */ lw $t3, ($v1) -/* 0D0604 7F09BA94 AD6010D8 */ sw $zero, 0x10d8($t3) -/* 0D0608 7F09BA98 8C6F0000 */ lw $t7, ($v1) -/* 0D060C 7F09BA9C ADE010DC */ sw $zero, 0x10dc($t7) -/* 0D0610 7F09BAA0 8C790000 */ lw $t9, ($v1) -/* 0D0614 7F09BAA4 AF2010E0 */ sw $zero, 0x10e0($t9) -/* 0D0618 7F09BAA8 8C6C0000 */ lw $t4, ($v1) -/* 0D061C 7F09BAAC 3C190001 */ lui $t9, 1 -/* 0D0620 7F09BAB0 AD8010E4 */ sw $zero, 0x10e4($t4) -/* 0D0624 7F09BAB4 8C6D0000 */ lw $t5, ($v1) -/* 0D0628 7F09BAB8 ADA010E8 */ sw $zero, 0x10e8($t5) -/* 0D062C 7F09BABC 8C780000 */ lw $t8, ($v1) -/* 0D0630 7F09BAC0 AF0010EC */ sw $zero, 0x10ec($t8) -/* 0D0634 7F09BAC4 8C6E0000 */ lw $t6, ($v1) -/* 0D0638 7F09BAC8 E5C210F0 */ swc1 $f2, 0x10f0($t6) -/* 0D063C 7F09BACC 8C6B0000 */ lw $t3, ($v1) -/* 0D0640 7F09BAD0 E56210F4 */ swc1 $f2, 0x10f4($t3) -/* 0D0644 7F09BAD4 8C6F0000 */ lw $t7, ($v1) -/* 0D0648 7F09BAD8 E5E210F8 */ swc1 $f2, 0x10f8($t7) -/* 0D064C 7F09BADC 8C6C0000 */ lw $t4, ($v1) -/* 0D0650 7F09BAE0 AD9910FC */ sw $t9, 0x10fc($t4) -/* 0D0654 7F09BAE4 8C6D0000 */ lw $t5, ($v1) -/* 0D0658 7F09BAE8 E5A01118 */ swc1 $f0, 0x1118($t5) -/* 0D065C 7F09BAEC 8C780000 */ lw $t8, ($v1) -/* 0D0660 7F09BAF0 E700111C */ swc1 $f0, 0x111c($t8) -/* 0D0664 7F09BAF4 8C6E0000 */ lw $t6, ($v1) -/* 0D0668 7F09BAF8 E5CE1120 */ swc1 $f14, 0x1120($t6) -/* 0D066C 7F09BAFC 8C6B0000 */ lw $t3, ($v1) -/* 0D0670 7F09BB00 E5701124 */ swc1 $f16, 0x1124($t3) -/* 0D0674 7F09BB04 8C6F0000 */ lw $t7, ($v1) -/* 0D0678 7F09BB08 ADE01128 */ sw $zero, 0x1128($t7) -/* 0D067C 7F09BB0C 8C790000 */ lw $t9, ($v1) -/* 0D0680 7F09BB10 AF2011B0 */ sw $zero, 0x11b0($t9) -/* 0D0684 7F09BB14 8C6C0000 */ lw $t4, ($v1) -/* 0D0688 7F09BB18 AD8011B4 */ sw $zero, 0x11b4($t4) -/* 0D068C 7F09BB1C 8C6D0000 */ lw $t5, ($v1) -/* 0D0690 7F09BB20 ADA011B8 */ sw $zero, 0x11b8($t5) -/* 0D0694 7F09BB24 8C780000 */ lw $t8, ($v1) -/* 0D0698 7F09BB28 E70011BC */ swc1 $f0, 0x11bc($t8) -/* 0D069C 7F09BB2C 8C6E0000 */ lw $t6, ($v1) -/* 0D06A0 7F09BB30 E5C011C0 */ swc1 $f0, 0x11c0($t6) -/* 0D06A4 7F09BB34 8C6B0000 */ lw $t3, ($v1) -/* 0D06A8 7F09BB38 E56C11C4 */ swc1 $f12, 0x11c4($t3) -/* 0D06AC 7F09BB3C 8C6F0000 */ lw $t7, ($v1) -/* 0D06B0 7F09BB40 E5EC11C8 */ swc1 $f12, 0x11c8($t7) -/* 0D06B4 7F09BB44 8C790000 */ lw $t9, ($v1) -/* 0D06B8 7F09BB48 E72C11CC */ swc1 $f12, 0x11cc($t9) -/* 0D06BC 7F09BB4C 8C6C0000 */ lw $t4, ($v1) -/* 0D06C0 7F09BB50 E58C11D0 */ swc1 $f12, 0x11d0($t4) -/* 0D06C4 7F09BB54 8C6D0000 */ lw $t5, ($v1) -/* 0D06C8 7F09BB58 C4247658 */ lwc1 $f4, %lo(D_80057628)($at) -/* 0D06CC 7F09BB5C 3C018003 */ lui $at, %hi(g_VisibleToGuardsFlag) # $at, 0x8003 -/* 0D06D0 7F09BB60 E5A411D4 */ swc1 $f4, 0x11d4($t5) -/* 0D06D4 7F09BB64 8C780000 */ lw $t8, ($v1) -/* 0D06D8 7F09BB68 AF0011D8 */ sw $zero, 0x11d8($t8) -/* 0D06DC 7F09BB6C 8C6E0000 */ lw $t6, ($v1) -/* 0D06E0 7F09BB70 ADC911DC */ sw $t1, 0x11dc($t6) -/* 0D06E4 7F09BB74 8C6B0000 */ lw $t3, ($v1) -/* 0D06E8 7F09BB78 AD6011E0 */ sw $zero, 0x11e0($t3) -/* 0D06EC 7F09BB7C 8C6F0000 */ lw $t7, ($v1) -/* 0D06F0 7F09BB80 ADE011E4 */ sw $zero, 0x11e4($t7) -/* 0D06F4 7F09BB84 8C790000 */ lw $t9, ($v1) -/* 0D06F8 7F09BB88 AF2011E8 */ sw $zero, 0x11e8($t9) -/* 0D06FC 7F09BB8C 8C6C0000 */ lw $t4, ($v1) -/* 0D0700 7F09BB90 AD8011EC */ sw $zero, 0x11ec($t4) -/* 0D0704 7F09BB94 8C6D0000 */ lw $t5, ($v1) -/* 0D0708 7F09BB98 ADA011F0 */ sw $zero, 0x11f0($t5) -/* 0D070C 7F09BB9C 8C780000 */ lw $t8, ($v1) -/* 0D0710 7F09BBA0 AF0011F4 */ sw $zero, 0x11f4($t8) -/* 0D0714 7F09BBA4 8C6E0000 */ lw $t6, ($v1) -/* 0D0718 7F09BBA8 E5C01280 */ swc1 $f0, 0x1280($t6) -/* 0D071C 7F09BBAC 8C6B0000 */ lw $t3, ($v1) -/* 0D0720 7F09BBB0 AD601284 */ sw $zero, 0x1284($t3) -/* 0D0724 7F09BBB4 8C6F0000 */ lw $t7, ($v1) -/* 0D0728 7F09BBB8 E5E01288 */ swc1 $f0, 0x1288($t7) -/* 0D072C 7F09BBBC 8C790000 */ lw $t9, ($v1) -/* 0D0730 7F09BBC0 A32012B6 */ sb $zero, 0x12b6($t9) -/* 0D0734 7F09BBC4 8C6C0000 */ lw $t4, ($v1) -/* 0D0738 7F09BBC8 AD8429B8 */ sw $a0, 0x29b8($t4) -/* 0D073C 7F09BBCC 8C6D0000 */ lw $t5, ($v1) -/* 0D0740 7F09BBD0 E5A229BC */ swc1 $f2, 0x29bc($t5) -/* 0D0744 7F09BBD4 8C780000 */ lw $t8, ($v1) -/* 0D0748 7F09BBD8 E70029C0 */ swc1 $f0, 0x29c0($t8) -/* 0D074C 7F09BBDC 8C6E0000 */ lw $t6, ($v1) -/* 0D0750 7F09BBE0 ADC029C4 */ sw $zero, 0x29c4($t6) -/* 0D0754 7F09BBE4 8C6B0000 */ lw $t3, ($v1) -/* 0D0758 7F09BBE8 AD6429D4 */ sw $a0, 0x29d4($t3) -/* 0D075C 7F09BBEC 8C6F0000 */ lw $t7, ($v1) -/* 0D0760 7F09BBF0 ADE029D8 */ sw $zero, 0x29d8($t7) -/* 0D0764 7F09BBF4 8C6C0000 */ lw $t4, ($v1) -/* 0D0768 7F09BBF8 8C590000 */ lw $t9, ($v0) -/* 0D076C 7F09BBFC AD9929E0 */ sw $t9, 0x29e0($t4) -/* 0D0770 7F09BC00 8C4D0000 */ lw $t5, ($v0) -/* 0D0774 7F09BC04 8C6E0000 */ lw $t6, ($v1) -/* 0D0778 7F09BC08 25B80001 */ addiu $t8, $t5, 1 -/* 0D077C 7F09BC0C AC580000 */ sw $t8, ($v0) -/* 0D0780 7F09BC10 ADC929E4 */ sw $t1, 0x29e4($t6) -/* 0D0784 7F09BC14 8C6B0000 */ lw $t3, ($v1) -/* 0D0788 7F09BC18 AD6929E8 */ sw $t1, 0x29e8($t3) -/* 0D078C 7F09BC1C 8C6F0000 */ lw $t7, ($v1) -/* 0D0790 7F09BC20 ADE929EC */ sw $t1, 0x29ec($t7) -/* 0D0794 7F09BC24 8C790000 */ lw $t9, ($v1) -/* 0D0798 7F09BC28 AF2929F0 */ sw $t1, 0x29f0($t9) -/* 0D079C 7F09BC2C 8C6C0000 */ lw $t4, ($v1) -/* 0D07A0 7F09BC30 AD802A00 */ sw $zero, 0x2a00($t4) -/* 0D07A4 7F09BC34 8C6D0000 */ lw $t5, ($v1) -/* 0D07A8 7F09BC38 ADA02A30 */ sw $zero, 0x2a30($t5) -/* 0D07AC 7F09BC3C 8C780000 */ lw $t8, ($v1) -/* 0D07B0 7F09BC40 AF002A34 */ sw $zero, 0x2a34($t8) -/* 0D07B4 7F09BC44 8C6E0000 */ lw $t6, ($v1) -/* 0D07B8 7F09BC48 ADC82A38 */ sw $t0, 0x2a38($t6) -/* 0D07BC 7F09BC4C 8C6B0000 */ lw $t3, ($v1) -/* 0D07C0 7F09BC50 E5622A3C */ swc1 $f2, 0x2a3c($t3) -/* 0D07C4 7F09BC54 8C6F0000 */ lw $t7, ($v1) -/* 0D07C8 7F09BC58 E5E22A40 */ swc1 $f2, 0x2a40($t7) -/* 0D07CC 7F09BC5C 8C790000 */ lw $t9, ($v1) -/* 0D07D0 7F09BC60 AF202A58 */ sw $zero, 0x2a58($t9) -/* 0D07D4 7F09BC64 8C6C0000 */ lw $t4, ($v1) -/* 0D07D8 7F09BC68 AD802A5C */ sw $zero, 0x2a5c($t4) -/* 0D07DC 7F09BC6C 8C6D0000 */ lw $t5, ($v1) -/* 0D07E0 7F09BC70 E5A02A60 */ swc1 $f0, 0x2a60($t5) -/* 0D07E4 7F09BC74 8C780000 */ lw $t8, ($v1) -/* 0D07E8 7F09BC78 AF002A64 */ sw $zero, 0x2a64($t8) -/* 0D07EC 7F09BC7C 8C6E0000 */ lw $t6, ($v1) -/* 0D07F0 7F09BC80 ADC82A68 */ sw $t0, 0x2a68($t6) -/* 0D07F4 7F09BC84 8C6B0000 */ lw $t3, ($v1) -/* 0D07F8 7F09BC88 AD602A6C */ sw $zero, 0x2a6c($t3) -/* 0D07FC 7F09BC8C 8C6F0000 */ lw $t7, ($v1) -/* 0D0800 7F09BC90 ADE02A70 */ sw $zero, 0x2a70($t7) -/* 0D0804 7F09BC94 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D0808 7F09BC98 AC286504 */ sw $t0, %lo(g_VisibleToGuardsFlag)($at) -/* 0D080C 7F09BC9C 3C018003 */ lui $at, %hi(obj_collision_flag) # $at, 0x8003 -/* 0D0810 7F09BCA0 AC286508 */ sw $t0, %lo(obj_collision_flag)($at) -/* 0D0814 7F09BCA4 03E00008 */ jr $ra -/* 0D0818 7F09BCA8 27BD03D0 */ addiu $sp, $sp, 0x3d0 -) -#endif - -#if defined(VERSION_EU) -GLOBAL_ASM( -.late_rodata -glabel D_80057610 -.word 0xc3652ee0 /*-229.18311*/ -glabel D_80057614 -.word 0x4106ae1e -glabel D_80057618 -.word 0x3f6aa64c -glabel D_8005761C -.word 0x413fd8b4 -glabel D_80057620 -.word 0x3f666666 /*0.89999998*/ -glabel D_80057624 -.word 0xc0490fdb /*-3.1415927*/ -glabel D_80057628 -.word 0x3f969697 -.text -glabel initBONDdataforPlayer -/* 0CC3EC 7F0999FC 27BDFC30 */ addiu $sp, $sp, -0x3d0 -/* 0CC3F0 7F099A00 3C0F8004 */ lui $t7, %hi(D_8003FD94+0xC) # $t7, 0x8004 -/* 0CC3F4 7F099A04 25EF99F0 */ addiu $t7, %lo(D_8003FD94+0xC) # addiu $t7, $t7, -0x6610 -/* 0CC3F8 7F099A08 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CC3FC 7F099A0C AFA403D0 */ sw $a0, 0x3d0($sp) -/* 0CC400 7F099A10 25EB03A8 */ addiu $t3, $t7, 0x3a8 -/* 0CC404 7F099A14 27AE0024 */ addiu $t6, $sp, 0x24 -.L7F099A18: -/* 0CC408 7F099A18 8DE10000 */ lw $at, ($t7) -/* 0CC40C 7F099A1C 25EF000C */ addiu $t7, $t7, 0xc -/* 0CC410 7F099A20 25CE000C */ addiu $t6, $t6, 0xc -/* 0CC414 7F099A24 ADC1FFF4 */ sw $at, -0xc($t6) -/* 0CC418 7F099A28 8DE1FFF8 */ lw $at, -8($t7) -/* 0CC41C 7F099A2C ADC1FFF8 */ sw $at, -8($t6) -/* 0CC420 7F099A30 8DE1FFFC */ lw $at, -4($t7) -/* 0CC424 7F099A34 15EBFFF8 */ bne $t7, $t3, .L7F099A18 -/* 0CC428 7F099A38 ADC1FFFC */ sw $at, -4($t6) -/* 0CC42C 7F099A3C 24042A70 */ li $a0, 10864 -/* 0CC430 7F099A40 0C0022E0 */ jal mempAllocBytesInBank -/* 0CC434 7F099A44 24050004 */ li $a1, 4 -/* 0CC438 7F099A48 8FAC03D0 */ lw $t4, 0x3d0($sp) -/* 0CC43C 7F099A4C 3C198007 */ lui $t9, %hi(g_playerPointers) # $t9, 0x8007 -/* 0CC440 7F099A50 273989F0 */ addiu $t9, %lo(g_playerPointers) # addiu $t9, $t9, -0x7610 -/* 0CC444 7F099A54 000C6880 */ sll $t5, $t4, 2 -/* 0CC448 7F099A58 01B91821 */ addu $v1, $t5, $t9 -/* 0CC44C 7F099A5C AC620000 */ sw $v0, ($v1) -/* 0CC450 7F099A60 AC400000 */ sw $zero, ($v0) -/* 0CC454 7F099A64 44800000 */ mtc1 $zero, $f0 -/* 0CC458 7F099A68 8C780000 */ lw $t8, ($v1) -/* 0CC45C 7F099A6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CC460 7F099A70 44811000 */ mtc1 $at, $f2 -/* 0CC464 7F099A74 E7000004 */ swc1 $f0, 4($t8) -/* 0CC468 7F099A78 8C6B0000 */ lw $t3, ($v1) -/* 0CC46C 7F099A7C 24040002 */ li $a0, 2 -/* 0CC470 7F099A80 24080001 */ li $t0, 1 -/* 0CC474 7F099A84 E5600008 */ swc1 $f0, 8($t3) -/* 0CC478 7F099A88 8C6F0000 */ lw $t7, ($v1) -/* 0CC47C 7F099A8C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0CC480 7F099A90 44816000 */ mtc1 $at, $f12 -/* 0CC484 7F099A94 E5E0000C */ swc1 $f0, 0xc($t7) -/* 0CC488 7F099A98 8C6E0000 */ lw $t6, ($v1) -/* 0CC48C 7F099A9C 2409FFFF */ li $t1, -1 -/* 0CC490 7F099AA0 3C01C080 */ li $at, 0xC0800000 # -4.000000 -/* 0CC494 7F099AA4 E5C00010 */ swc1 $f0, 0x10($t6) -/* 0CC498 7F099AA8 8C6C0000 */ lw $t4, ($v1) -/* 0CC49C 7F099AAC 44812000 */ mtc1 $at, $f4 -/* 0CC4A0 7F099AB0 3C018005 */ lui $at, %hi(D_80057610) -/* 0CC4A4 7F099AB4 E5800014 */ swc1 $f0, 0x14($t4) -/* 0CC4A8 7F099AB8 8C6D0000 */ lw $t5, ($v1) -/* 0CC4AC 7F099ABC 240200FF */ li $v0, 255 -/* 0CC4B0 7F099AC0 27AA0024 */ addiu $t2, $sp, 0x24 -/* 0CC4B4 7F099AC4 E5A20018 */ swc1 $f2, 0x18($t5) -/* 0CC4B8 7F099AC8 8C790000 */ lw $t9, ($v1) -/* 0CC4BC 7F099ACC E720001C */ swc1 $f0, 0x1c($t9) -/* 0CC4C0 7F099AD0 8C780000 */ lw $t8, ($v1) -/* 0CC4C4 7F099AD4 E7020020 */ swc1 $f2, 0x20($t8) -/* 0CC4C8 7F099AD8 8C6B0000 */ lw $t3, ($v1) -/* 0CC4CC 7F099ADC E5600024 */ swc1 $f0, 0x24($t3) -/* 0CC4D0 7F099AE0 8C6F0000 */ lw $t7, ($v1) -/* 0CC4D4 7F099AE4 E5E00028 */ swc1 $f0, 0x28($t7) -/* 0CC4D8 7F099AE8 8C6E0000 */ lw $t6, ($v1) -/* 0CC4DC 7F099AEC E5C0002C */ swc1 $f0, 0x2c($t6) -/* 0CC4E0 7F099AF0 8C6C0000 */ lw $t4, ($v1) -/* 0CC4E4 7F099AF4 E5800030 */ swc1 $f0, 0x30($t4) -/* 0CC4E8 7F099AF8 8C6D0000 */ lw $t5, ($v1) -/* 0CC4EC 7F099AFC ADA00034 */ sw $zero, 0x34($t5) -/* 0CC4F0 7F099B00 8C790000 */ lw $t9, ($v1) -/* 0CC4F4 7F099B04 E7200038 */ swc1 $f0, 0x38($t9) -/* 0CC4F8 7F099B08 8C780000 */ lw $t8, ($v1) -/* 0CC4FC 7F099B0C E700003C */ swc1 $f0, 0x3c($t8) -/* 0CC500 7F099B10 8C6B0000 */ lw $t3, ($v1) -/* 0CC504 7F099B14 E5600040 */ swc1 $f0, 0x40($t3) -/* 0CC508 7F099B18 8C6F0000 */ lw $t7, ($v1) -/* 0CC50C 7F099B1C E5E00044 */ swc1 $f0, 0x44($t7) -/* 0CC510 7F099B20 8C6E0000 */ lw $t6, ($v1) -/* 0CC514 7F099B24 E5C00048 */ swc1 $f0, 0x48($t6) -/* 0CC518 7F099B28 8C6C0000 */ lw $t4, ($v1) -/* 0CC51C 7F099B2C E580004C */ swc1 $f0, 0x4c($t4) -/* 0CC520 7F099B30 8C6D0000 */ lw $t5, ($v1) -/* 0CC524 7F099B34 E5A00050 */ swc1 $f0, 0x50($t5) -/* 0CC528 7F099B38 8C790000 */ lw $t9, ($v1) -/* 0CC52C 7F099B3C E7200054 */ swc1 $f0, 0x54($t9) -/* 0CC530 7F099B40 8C780000 */ lw $t8, ($v1) -/* 0CC534 7F099B44 E7000058 */ swc1 $f0, 0x58($t8) -/* 0CC538 7F099B48 8C6B0000 */ lw $t3, ($v1) -/* 0CC53C 7F099B4C E560006C */ swc1 $f0, 0x6c($t3) -/* 0CC540 7F099B50 8C6F0000 */ lw $t7, ($v1) -/* 0CC544 7F099B54 E5E00070 */ swc1 $f0, 0x70($t7) -/* 0CC548 7F099B58 8C6E0000 */ lw $t6, ($v1) -/* 0CC54C 7F099B5C E5C00074 */ swc1 $f0, 0x74($t6) -/* 0CC550 7F099B60 8C6C0000 */ lw $t4, ($v1) -/* 0CC554 7F099B64 E5800078 */ swc1 $f0, 0x78($t4) -/* 0CC558 7F099B68 8C6D0000 */ lw $t5, ($v1) -/* 0CC55C 7F099B6C E5A0007C */ swc1 $f0, 0x7c($t5) -/* 0CC560 7F099B70 8C790000 */ lw $t9, ($v1) -/* 0CC564 7F099B74 E7200080 */ swc1 $f0, 0x80($t9) -/* 0CC568 7F099B78 8C780000 */ lw $t8, ($v1) -/* 0CC56C 7F099B7C E7000084 */ swc1 $f0, 0x84($t8) -/* 0CC570 7F099B80 8C6B0000 */ lw $t3, ($v1) -/* 0CC574 7F099B84 E5600088 */ swc1 $f0, 0x88($t3) -/* 0CC578 7F099B88 8C6F0000 */ lw $t7, ($v1) -/* 0CC57C 7F099B8C ADE0008C */ sw $zero, 0x8c($t7) -/* 0CC580 7F099B90 8C6E0000 */ lw $t6, ($v1) -/* 0CC584 7F099B94 E5C00090 */ swc1 $f0, 0x90($t6) -/* 0CC588 7F099B98 8C6C0000 */ lw $t4, ($v1) -/* 0CC58C 7F099B9C AD800094 */ sw $zero, 0x94($t4) -/* 0CC590 7F099BA0 8C6D0000 */ lw $t5, ($v1) -/* 0CC594 7F099BA4 E5A00098 */ swc1 $f0, 0x98($t5) -/* 0CC598 7F099BA8 8C790000 */ lw $t9, ($v1) -/* 0CC59C 7F099BAC E720126C */ swc1 $f0, 0x126c($t9) -/* 0CC5A0 7F099BB0 8C780000 */ lw $t8, ($v1) -/* 0CC5A4 7F099BB4 E7001270 */ swc1 $f0, 0x1270($t8) -/* 0CC5A8 7F099BB8 8C6B0000 */ lw $t3, ($v1) -/* 0CC5AC 7F099BBC E5601274 */ swc1 $f0, 0x1274($t3) -/* 0CC5B0 7F099BC0 8C6F0000 */ lw $t7, ($v1) -/* 0CC5B4 7F099BC4 ADE4009C */ sw $a0, 0x9c($t7) -/* 0CC5B8 7F099BC8 8C6E0000 */ lw $t6, ($v1) -/* 0CC5BC 7F099BCC ADC429F4 */ sw $a0, 0x29f4($t6) -/* 0CC5C0 7F099BD0 8C6C0000 */ lw $t4, ($v1) -/* 0CC5C4 7F099BD4 E58000A0 */ swc1 $f0, 0xa0($t4) -/* 0CC5C8 7F099BD8 8C6D0000 */ lw $t5, ($v1) -/* 0CC5CC 7F099BDC E5A000A4 */ swc1 $f0, 0xa4($t5) -/* 0CC5D0 7F099BE0 8C790000 */ lw $t9, ($v1) -/* 0CC5D4 7F099BE4 AF2000A8 */ sw $zero, 0xa8($t9) -/* 0CC5D8 7F099BE8 8C780000 */ lw $t8, ($v1) -/* 0CC5DC 7F099BEC AF0800AC */ sw $t0, 0xac($t8) -/* 0CC5E0 7F099BF0 8C6B0000 */ lw $t3, ($v1) -/* 0CC5E4 7F099BF4 AD6000D0 */ sw $zero, 0xd0($t3) -/* 0CC5E8 7F099BF8 8C6F0000 */ lw $t7, ($v1) -/* 0CC5EC 7F099BFC ADE000D4 */ sw $zero, 0xd4($t7) -/* 0CC5F0 7F099C00 8C6E0000 */ lw $t6, ($v1) -/* 0CC5F4 7F099C04 ADC000D8 */ sw $zero, 0xd8($t6) -/* 0CC5F8 7F099C08 8C6C0000 */ lw $t4, ($v1) -/* 0CC5FC 7F099C0C E58200DC */ swc1 $f2, 0xdc($t4) -/* 0CC600 7F099C10 8C6D0000 */ lw $t5, ($v1) -/* 0CC604 7F099C14 E5A000E0 */ swc1 $f0, 0xe0($t5) -/* 0CC608 7F099C18 8C790000 */ lw $t9, ($v1) -/* 0CC60C 7F099C1C E72200E4 */ swc1 $f2, 0xe4($t9) -/* 0CC610 7F099C20 8C780000 */ lw $t8, ($v1) -/* 0CC614 7F099C24 E70000E8 */ swc1 $f0, 0xe8($t8) -/* 0CC618 7F099C28 8C6B0000 */ lw $t3, ($v1) -/* 0CC61C 7F099C2C E56200EC */ swc1 $f2, 0xec($t3) -/* 0CC620 7F099C30 8C6F0000 */ lw $t7, ($v1) -/* 0CC624 7F099C34 E5E000F0 */ swc1 $f0, 0xf0($t7) -/* 0CC628 7F099C38 8C6E0000 */ lw $t6, ($v1) -/* 0CC62C 7F099C3C E5CC00F4 */ swc1 $f12, 0xf4($t6) -/* 0CC630 7F099C40 8C6C0000 */ lw $t4, ($v1) -/* 0CC634 7F099C44 E58C00F8 */ swc1 $f12, 0xf8($t4) -/* 0CC638 7F099C48 8C6D0000 */ lw $t5, ($v1) -/* 0CC63C 7F099C4C ADA00104 */ sw $zero, 0x104($t5) -/* 0CC640 7F099C50 8C790000 */ lw $t9, ($v1) -/* 0CC644 7F099C54 AF200108 */ sw $zero, 0x108($t9) -/* 0CC648 7F099C58 8C780000 */ lw $t8, ($v1) -/* 0CC64C 7F099C5C AF00010C */ sw $zero, 0x10c($t8) -/* 0CC650 7F099C60 8C6B0000 */ lw $t3, ($v1) -/* 0CC654 7F099C64 AD600110 */ sw $zero, 0x110($t3) -/* 0CC658 7F099C68 8C6F0000 */ lw $t7, ($v1) -/* 0CC65C 7F099C6C ADE80114 */ sw $t0, 0x114($t7) -/* 0CC660 7F099C70 8C6E0000 */ lw $t6, ($v1) -/* 0CC664 7F099C74 ADC80118 */ sw $t0, 0x118($t6) -/* 0CC668 7F099C78 8C6C0000 */ lw $t4, ($v1) -/* 0CC66C 7F099C7C AD80011C */ sw $zero, 0x11c($t4) -/* 0CC670 7F099C80 8C6D0000 */ lw $t5, ($v1) -/* 0CC674 7F099C84 ADA80120 */ sw $t0, 0x120($t5) -/* 0CC678 7F099C88 8C790000 */ lw $t9, ($v1) -/* 0CC67C 7F099C8C AF200124 */ sw $zero, 0x124($t9) -/* 0CC680 7F099C90 8C780000 */ lw $t8, ($v1) -/* 0CC684 7F099C94 AF080128 */ sw $t0, 0x128($t8) -/* 0CC688 7F099C98 8C6B0000 */ lw $t3, ($v1) -/* 0CC68C 7F099C9C E560012C */ swc1 $f0, 0x12c($t3) -/* 0CC690 7F099CA0 8C6F0000 */ lw $t7, ($v1) -/* 0CC694 7F099CA4 ADE00130 */ sw $zero, 0x130($t7) -/* 0CC698 7F099CA8 8C6E0000 */ lw $t6, ($v1) -/* 0CC69C 7F099CAC ADC90134 */ sw $t1, 0x134($t6) -/* 0CC6A0 7F099CB0 8C6C0000 */ lw $t4, ($v1) -/* 0CC6A4 7F099CB4 AD880138 */ sw $t0, 0x138($t4) -/* 0CC6A8 7F099CB8 8C6D0000 */ lw $t5, ($v1) -/* 0CC6AC 7F099CBC E5A0013C */ swc1 $f0, 0x13c($t5) -/* 0CC6B0 7F099CC0 8C790000 */ lw $t9, ($v1) -/* 0CC6B4 7F099CC4 AF200140 */ sw $zero, 0x140($t9) -/* 0CC6B8 7F099CC8 8C780000 */ lw $t8, ($v1) -/* 0CC6BC 7F099CCC AF090144 */ sw $t1, 0x144($t8) -/* 0CC6C0 7F099CD0 8C6B0000 */ lw $t3, ($v1) -/* 0CC6C4 7F099CD4 E5600148 */ swc1 $f0, 0x148($t3) -/* 0CC6C8 7F099CD8 8C6F0000 */ lw $t7, ($v1) -/* 0CC6CC 7F099CDC E5E0014C */ swc1 $f0, 0x14c($t7) -/* 0CC6D0 7F099CE0 8C6E0000 */ lw $t6, ($v1) -/* 0CC6D4 7F099CE4 E5C20150 */ swc1 $f2, 0x150($t6) -/* 0CC6D8 7F099CE8 8C6C0000 */ lw $t4, ($v1) -/* 0CC6DC 7F099CEC E5800154 */ swc1 $f0, 0x154($t4) -/* 0CC6E0 7F099CF0 8C6D0000 */ lw $t5, ($v1) -/* 0CC6E4 7F099CF4 E5A40158 */ swc1 $f4, 0x158($t5) -/* 0CC6E8 7F099CF8 8C790000 */ lw $t9, ($v1) -/* 0CC6EC 7F099CFC C426CCD0 */ lwc1 $f6, %lo(D_80057610)($at) -/* 0CC6F0 7F099D00 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 -/* 0CC6F4 7F099D04 44814000 */ mtc1 $at, $f8 -/* 0CC6F8 7F099D08 E726015C */ swc1 $f6, 0x15c($t9) -/* 0CC6FC 7F099D0C 8C780000 */ lw $t8, ($v1) -/* 0CC700 7F099D10 3C018005 */ lui $at, %hi(D_80057614) # $at, 0x8005 -/* 0CC704 7F099D14 E7000160 */ swc1 $f0, 0x160($t8) -/* 0CC708 7F099D18 8C6B0000 */ lw $t3, ($v1) -/* 0CC70C 7F099D1C E5620164 */ swc1 $f2, 0x164($t3) -/* 0CC710 7F099D20 8C6F0000 */ lw $t7, ($v1) -/* 0CC714 7F099D24 E5E00168 */ swc1 $f0, 0x168($t7) -/* 0CC718 7F099D28 8C6E0000 */ lw $t6, ($v1) -/* 0CC71C 7F099D2C E5C0016C */ swc1 $f0, 0x16c($t6) -/* 0CC720 7F099D30 8C6C0000 */ lw $t4, ($v1) -/* 0CC724 7F099D34 E5800170 */ swc1 $f0, 0x170($t4) -/* 0CC728 7F099D38 8C6D0000 */ lw $t5, ($v1) -/* 0CC72C 7F099D3C E5A00174 */ swc1 $f0, 0x174($t5) -/* 0CC730 7F099D40 8C790000 */ lw $t9, ($v1) -/* 0CC734 7F099D44 E7202A44 */ swc1 $f0, 0x2a44($t9) -/* 0CC738 7F099D48 8C780000 */ lw $t8, ($v1) -/* 0CC73C 7F099D4C E7020178 */ swc1 $f2, 0x178($t8) -/* 0CC740 7F099D50 8C6B0000 */ lw $t3, ($v1) -/* 0CC744 7F099D54 E5600180 */ swc1 $f0, 0x180($t3) -/* 0CC748 7F099D58 8C6F0000 */ lw $t7, ($v1) -/* 0CC74C 7F099D5C E5E00184 */ swc1 $f0, 0x184($t7) -/* 0CC750 7F099D60 8C6E0000 */ lw $t6, ($v1) -/* 0CC754 7F099D64 E5C00188 */ swc1 $f0, 0x188($t6) -/* 0CC758 7F099D68 8C6C0000 */ lw $t4, ($v1) -/* 0CC75C 7F099D6C E58C018C */ swc1 $f12, 0x18c($t4) -/* 0CC760 7F099D70 8C6D0000 */ lw $t5, ($v1) -/* 0CC764 7F099D74 E5AC0190 */ swc1 $f12, 0x190($t5) -/* 0CC768 7F099D78 8C790000 */ lw $t9, ($v1) -/* 0CC76C 7F099D7C E7200194 */ swc1 $f0, 0x194($t9) -/* 0CC770 7F099D80 8C780000 */ lw $t8, ($v1) -/* 0CC774 7F099D84 E7000198 */ swc1 $f0, 0x198($t8) -/* 0CC778 7F099D88 8C6B0000 */ lw $t3, ($v1) -/* 0CC77C 7F099D8C E560019C */ swc1 $f0, 0x19c($t3) -/* 0CC780 7F099D90 8C6F0000 */ lw $t7, ($v1) -/* 0CC784 7F099D94 ADE001A0 */ sw $zero, 0x1a0($t7) -/* 0CC788 7F099D98 8C6E0000 */ lw $t6, ($v1) -/* 0CC78C 7F099D9C ADC001C0 */ sw $zero, 0x1c0($t6) -/* 0CC790 7F099DA0 8C6C0000 */ lw $t4, ($v1) -/* 0CC794 7F099DA4 AD8001C4 */ sw $zero, 0x1c4($t4) -/* 0CC798 7F099DA8 8C6D0000 */ lw $t5, ($v1) -/* 0CC79C 7F099DAC ADA001C8 */ sw $zero, 0x1c8($t5) -/* 0CC7A0 7F099DB0 8C790000 */ lw $t9, ($v1) -/* 0CC7A4 7F099DB4 AF2801CC */ sw $t0, 0x1cc($t9) -/* 0CC7A8 7F099DB8 8C780000 */ lw $t8, ($v1) -/* 0CC7AC 7F099DBC AF0001D0 */ sw $zero, 0x1d0($t8) -/* 0CC7B0 7F099DC0 8C6B0000 */ lw $t3, ($v1) -/* 0CC7B4 7F099DC4 E56001D4 */ swc1 $f0, 0x1d4($t3) -/* 0CC7B8 7F099DC8 8C6F0000 */ lw $t7, ($v1) -/* 0CC7BC 7F099DCC E5E001D8 */ swc1 $f0, 0x1d8($t7) -/* 0CC7C0 7F099DD0 8C6E0000 */ lw $t6, ($v1) -/* 0CC7C4 7F099DD4 E5C801DC */ swc1 $f8, 0x1dc($t6) -/* 0CC7C8 7F099DD8 8C6C0000 */ lw $t4, ($v1) -/* 0CC7CC 7F099DDC E58001E0 */ swc1 $f0, 0x1e0($t4) -/* 0CC7D0 7F099DE0 8C6D0000 */ lw $t5, ($v1) -/* 0CC7D4 7F099DE4 E5A201E4 */ swc1 $f2, 0x1e4($t5) -/* 0CC7D8 7F099DE8 8C790000 */ lw $t9, ($v1) -/* 0CC7DC 7F099DEC E72001E8 */ swc1 $f0, 0x1e8($t9) -/* 0CC7E0 7F099DF0 8C780000 */ lw $t8, ($v1) -/* 0CC7E4 7F099DF4 E70001EC */ swc1 $f0, 0x1ec($t8) -/* 0CC7E8 7F099DF8 8C6B0000 */ lw $t3, ($v1) -/* 0CC7EC 7F099DFC E56001F0 */ swc1 $f0, 0x1f0($t3) -/* 0CC7F0 7F099E00 8C6F0000 */ lw $t7, ($v1) -/* 0CC7F4 7F099E04 E5E201F4 */ swc1 $f2, 0x1f4($t7) -/* 0CC7F8 7F099E08 8C6E0000 */ lw $t6, ($v1) -/* 0CC7FC 7F099E0C ADC00200 */ sw $zero, 0x200($t6) -/* 0CC800 7F099E10 8C6C0000 */ lw $t4, ($v1) -/* 0CC804 7F099E14 E5800204 */ swc1 $f0, 0x204($t4) -/* 0CC808 7F099E18 8C6D0000 */ lw $t5, ($v1) -/* 0CC80C 7F099E1C E5A00208 */ swc1 $f0, 0x208($t5) -/* 0CC810 7F099E20 8C790000 */ lw $t9, ($v1) -/* 0CC814 7F099E24 E720020C */ swc1 $f0, 0x20c($t9) -/* 0CC818 7F099E28 8C780000 */ lw $t8, ($v1) -/* 0CC81C 7F099E2C E7000210 */ swc1 $f0, 0x210($t8) -/* 0CC820 7F099E30 8C6B0000 */ lw $t3, ($v1) -/* 0CC824 7F099E34 E5600214 */ swc1 $f0, 0x214($t3) -/* 0CC828 7F099E38 8C6F0000 */ lw $t7, ($v1) -/* 0CC82C 7F099E3C ADE00218 */ sw $zero, 0x218($t7) -/* 0CC830 7F099E40 8C6E0000 */ lw $t6, ($v1) -/* 0CC834 7F099E44 ADC8021C */ sw $t0, 0x21c($t6) -/* 0CC838 7F099E48 8C6C0000 */ lw $t4, ($v1) -/* 0CC83C 7F099E4C AD800220 */ sw $zero, 0x220($t4) -/* 0CC840 7F099E50 8C6D0000 */ lw $t5, ($v1) -/* 0CC844 7F099E54 E5A00224 */ swc1 $f0, 0x224($t5) -/* 0CC848 7F099E58 8C790000 */ lw $t9, ($v1) -/* 0CC84C 7F099E5C A72003B4 */ sh $zero, 0x3b4($t9) -/* 0CC850 7F099E60 8C780000 */ lw $t8, ($v1) -/* 0CC854 7F099E64 A70003B6 */ sh $zero, 0x3b6($t8) -/* 0CC858 7F099E68 8C6B0000 */ lw $t3, ($v1) -/* 0CC85C 7F099E6C E56003B8 */ swc1 $f0, 0x3b8($t3) -/* 0CC860 7F099E70 8C6F0000 */ lw $t7, ($v1) -/* 0CC864 7F099E74 E5E003BC */ swc1 $f0, 0x3bc($t7) -/* 0CC868 7F099E78 8C6E0000 */ lw $t6, ($v1) -/* 0CC86C 7F099E7C C42ACCD4 */ lwc1 $f10, %lo(D_80057614)($at) -/* 0CC870 7F099E80 E5CA03C0 */ swc1 $f10, 0x3c0($t6) -/* 0CC874 7F099E84 8C6C0000 */ lw $t4, ($v1) -/* 0CC878 7F099E88 E58003C4 */ swc1 $f0, 0x3c4($t4) -/* 0CC87C 7F099E8C 8C6D0000 */ lw $t5, ($v1) -/* 0CC880 7F099E90 E5A003C8 */ swc1 $f0, 0x3c8($t5) -/* 0CC884 7F099E94 8C790000 */ lw $t9, ($v1) -/* 0CC888 7F099E98 E72203CC */ swc1 $f2, 0x3cc($t9) -/* 0CC88C 7F099E9C 8C780000 */ lw $t8, ($v1) -/* 0CC890 7F099EA0 AF0203D0 */ sw $v0, 0x3d0($t8) -/* 0CC894 7F099EA4 8C6B0000 */ lw $t3, ($v1) -/* 0CC898 7F099EA8 AD6203D4 */ sw $v0, 0x3d4($t3) -/* 0CC89C 7F099EAC 8C6F0000 */ lw $t7, ($v1) -/* 0CC8A0 7F099EB0 3C018005 */ lui $at, %hi(D_80057618) # $at, 0x8005 -/* 0CC8A4 7F099EB4 24070020 */ li $a3, 32 -/* 0CC8A8 7F099EB8 ADE203D8 */ sw $v0, 0x3d8($t7) -/* 0CC8AC 7F099EBC 8C6E0000 */ lw $t6, ($v1) -/* 0CC8B0 7F099EC0 240601FF */ li $a2, 511 -/* 0CC8B4 7F099EC4 24050220 */ li $a1, 544 -/* 0CC8B8 7F099EC8 E5C003DC */ swc1 $f0, 0x3dc($t6) -/* 0CC8BC 7F099ECC 8C6C0000 */ lw $t4, ($v1) -/* 0CC8C0 7F099ED0 E58C03E0 */ swc1 $f12, 0x3e0($t4) -/* 0CC8C4 7F099ED4 8C6D0000 */ lw $t5, ($v1) -/* 0CC8C8 7F099ED8 E5AC03E4 */ swc1 $f12, 0x3e4($t5) -/* 0CC8CC 7F099EDC 8C790000 */ lw $t9, ($v1) -/* 0CC8D0 7F099EE0 AF2203E8 */ sw $v0, 0x3e8($t9) -/* 0CC8D4 7F099EE4 8C780000 */ lw $t8, ($v1) -/* 0CC8D8 7F099EE8 AF0203EC */ sw $v0, 0x3ec($t8) -/* 0CC8DC 7F099EEC 8C6B0000 */ lw $t3, ($v1) -/* 0CC8E0 7F099EF0 AD6203F0 */ sw $v0, 0x3f0($t3) -/* 0CC8E4 7F099EF4 8C6F0000 */ lw $t7, ($v1) -/* 0CC8E8 7F099EF8 ADE203F4 */ sw $v0, 0x3f4($t7) -/* 0CC8EC 7F099EFC 8C6E0000 */ lw $t6, ($v1) -/* 0CC8F0 7F099F00 ADC203F8 */ sw $v0, 0x3f8($t6) -/* 0CC8F4 7F099F04 8C6C0000 */ lw $t4, ($v1) -/* 0CC8F8 7F099F08 AD8203FC */ sw $v0, 0x3fc($t4) -/* 0CC8FC 7F099F0C 8C6D0000 */ lw $t5, ($v1) -/* 0CC900 7F099F10 00001025 */ move $v0, $zero -/* 0CC904 7F099F14 E5A00400 */ swc1 $f0, 0x400($t5) -/* 0CC908 7F099F18 8C790000 */ lw $t9, ($v1) -/* 0CC90C 7F099F1C E7200404 */ swc1 $f0, 0x404($t9) -/* 0CC910 7F099F20 8C780000 */ lw $t8, ($v1) -/* 0CC914 7F099F24 AF00041C */ sw $zero, 0x41c($t8) -/* 0CC918 7F099F28 8C6B0000 */ lw $t3, ($v1) -/* 0CC91C 7F099F2C AD680420 */ sw $t0, 0x420($t3) -/* 0CC920 7F099F30 8C6F0000 */ lw $t7, ($v1) -/* 0CC924 7F099F34 ADE00424 */ sw $zero, 0x424($t7) -/* 0CC928 7F099F38 8C6E0000 */ lw $t6, ($v1) -/* 0CC92C 7F099F3C ADC00428 */ sw $zero, 0x428($t6) -/* 0CC930 7F099F40 8C6C0000 */ lw $t4, ($v1) -/* 0CC934 7F099F44 AD84042C */ sw $a0, 0x42c($t4) -/* 0CC938 7F099F48 8C6D0000 */ lw $t5, ($v1) -/* 0CC93C 7F099F4C 24040280 */ li $a0, 640 -/* 0CC940 7F099F50 ADA00430 */ sw $zero, 0x430($t5) -/* 0CC944 7F099F54 8C790000 */ lw $t9, ($v1) -/* 0CC948 7F099F58 AF2804DC */ sw $t0, 0x4dc($t9) -/* 0CC94C 7F099F5C 8C780000 */ lw $t8, ($v1) -/* 0CC950 7F099F60 AF0804E0 */ sw $t0, 0x4e0($t8) -/* 0CC954 7F099F64 8C6B0000 */ lw $t3, ($v1) -/* 0CC958 7F099F68 AD6804E4 */ sw $t0, 0x4e4($t3) -/* 0CC95C 7F099F6C 8C6F0000 */ lw $t7, ($v1) -/* 0CC960 7F099F70 ADE004E8 */ sw $zero, 0x4e8($t7) -/* 0CC964 7F099F74 8C6E0000 */ lw $t6, ($v1) -/* 0CC968 7F099F78 C432CCD8 */ lwc1 $f18, %lo(D_80057618)($at) -/* 0CC96C 7F099F7C 3C018005 */ lui $at, %hi(D_8005761C) # $at, 0x8005 -/* 0CC970 7F099F80 E5D204EC */ swc1 $f18, 0x4ec($t6) -/* 0CC974 7F099F84 8C6C0000 */ lw $t4, ($v1) -/* 0CC978 7F099F88 AD8004F0 */ sw $zero, 0x4f0($t4) -/* 0CC97C 7F099F8C 8C6D0000 */ lw $t5, ($v1) -/* 0CC980 7F099F90 E5A204F4 */ swc1 $f2, 0x4f4($t5) -/* 0CC984 7F099F94 8C790000 */ lw $t9, ($v1) -/* 0CC988 7F099F98 E72204F8 */ swc1 $f2, 0x4f8($t9) -/* 0CC98C 7F099F9C 8C780000 */ lw $t8, ($v1) -/* 0CC990 7F099FA0 E70004FC */ swc1 $f0, 0x4fc($t8) -/* 0CC994 7F099FA4 8C6B0000 */ lw $t3, ($v1) -/* 0CC998 7F099FA8 E5600500 */ swc1 $f0, 0x500($t3) -/* 0CC99C 7F099FAC 8C6F0000 */ lw $t7, ($v1) -/* 0CC9A0 7F099FB0 E5E00504 */ swc1 $f0, 0x504($t7) -/* 0CC9A4 7F099FB4 8C6E0000 */ lw $t6, ($v1) -/* 0CC9A8 7F099FB8 C42CCCDC */ lwc1 $f12, %lo(D_8005761C)($at) -/* 0CC9AC 7F099FBC E5C00508 */ swc1 $f0, 0x508($t6) -/* 0CC9B0 7F099FC0 8C6C0000 */ lw $t4, ($v1) -/* 0CC9B4 7F099FC4 E580050C */ swc1 $f0, 0x50c($t4) -/* 0CC9B8 7F099FC8 8C6D0000 */ lw $t5, ($v1) -/* 0CC9BC 7F099FCC E5A20510 */ swc1 $f2, 0x510($t5) -/* 0CC9C0 7F099FD0 8C790000 */ lw $t9, ($v1) -/* 0CC9C4 7F099FD4 E7200514 */ swc1 $f0, 0x514($t9) -/* 0CC9C8 7F099FD8 8C780000 */ lw $t8, ($v1) -/* 0CC9CC 7F099FDC E7020518 */ swc1 $f2, 0x518($t8) -/* 0CC9D0 7F099FE0 8C6B0000 */ lw $t3, ($v1) -/* 0CC9D4 7F099FE4 E560051C */ swc1 $f0, 0x51c($t3) -/* 0CC9D8 7F099FE8 8C6F0000 */ lw $t7, ($v1) -/* 0CC9DC 7F099FEC E5E00520 */ swc1 $f0, 0x520($t7) -/* 0CC9E0 7F099FF0 8C6E0000 */ lw $t6, ($v1) -/* 0CC9E4 7F099FF4 E5C00524 */ swc1 $f0, 0x524($t6) -/* 0CC9E8 7F099FF8 8C6C0000 */ lw $t4, ($v1) -/* 0CC9EC 7F099FFC E5800528 */ swc1 $f0, 0x528($t4) -/* 0CC9F0 7F09A000 8C6D0000 */ lw $t5, ($v1) -/* 0CC9F4 7F09A004 E5A0052C */ swc1 $f0, 0x52c($t5) -/* 0CC9F8 7F09A008 8C790000 */ lw $t9, ($v1) -/* 0CC9FC 7F09A00C E7200530 */ swc1 $f0, 0x530($t9) -/* 0CCA00 7F09A010 8C780000 */ lw $t8, ($v1) -/* 0CCA04 7F09A014 E70C0534 */ swc1 $f12, 0x534($t8) -/* 0CCA08 7F09A018 8C6B0000 */ lw $t3, ($v1) -/* 0CCA0C 7F09A01C E5600538 */ swc1 $f0, 0x538($t3) -/* 0CCA10 7F09A020 8C6F0000 */ lw $t7, ($v1) -/* 0CCA14 7F09A024 E5EC053C */ swc1 $f12, 0x53c($t7) -/* 0CCA18 7F09A028 8C6E0000 */ lw $t6, ($v1) -/* 0CCA1C 7F09A02C E5C00540 */ swc1 $f0, 0x540($t6) -/* 0CCA20 7F09A030 8C6C0000 */ lw $t4, ($v1) -/* 0CCA24 7F09A034 E5800544 */ swc1 $f0, 0x544($t4) -/* 0CCA28 7F09A038 8C6D0000 */ lw $t5, ($v1) -/* 0CCA2C 7F09A03C E5A00548 */ swc1 $f0, 0x548($t5) -/* 0CCA30 7F09A040 8C790000 */ lw $t9, ($v1) -/* 0CCA34 7F09A044 E720054C */ swc1 $f0, 0x54c($t9) -/* 0CCA38 7F09A048 8C780000 */ lw $t8, ($v1) -/* 0CCA3C 7F09A04C E7000550 */ swc1 $f0, 0x550($t8) -/* 0CCA40 7F09A050 8C6B0000 */ lw $t3, ($v1) -/* 0CCA44 7F09A054 E5600554 */ swc1 $f0, 0x554($t3) -/* 0CCA48 7F09A058 8C6F0000 */ lw $t7, ($v1) -/* 0CCA4C 7F09A05C E5E00558 */ swc1 $f0, 0x558($t7) -/* 0CCA50 7F09A060 8C6E0000 */ lw $t6, ($v1) -/* 0CCA54 7F09A064 E5C0055C */ swc1 $f0, 0x55c($t6) -/* 0CCA58 7F09A068 8C6C0000 */ lw $t4, ($v1) -/* 0CCA5C 7F09A06C E5800560 */ swc1 $f0, 0x560($t4) -/* 0CCA60 7F09A070 8C6D0000 */ lw $t5, ($v1) -/* 0CCA64 7F09A074 E5A00564 */ swc1 $f0, 0x564($t5) -/* 0CCA68 7F09A078 8C790000 */ lw $t9, ($v1) -/* 0CCA6C 7F09A07C E7200568 */ swc1 $f0, 0x568($t9) -/* 0CCA70 7F09A080 8C780000 */ lw $t8, ($v1) -/* 0CCA74 7F09A084 E702056C */ swc1 $f2, 0x56c($t8) -/* 0CCA78 7F09A088 8C6B0000 */ lw $t3, ($v1) -/* 0CCA7C 7F09A08C E5600570 */ swc1 $f0, 0x570($t3) -/* 0CCA80 7F09A090 8C6F0000 */ lw $t7, ($v1) -/* 0CCA84 7F09A094 E5E00574 */ swc1 $f0, 0x574($t7) -/* 0CCA88 7F09A098 8C6E0000 */ lw $t6, ($v1) -/* 0CCA8C 7F09A09C E5C20578 */ swc1 $f2, 0x578($t6) -/* 0CCA90 7F09A0A0 8C6C0000 */ lw $t4, ($v1) -/* 0CCA94 7F09A0A4 E580057C */ swc1 $f0, 0x57c($t4) -/* 0CCA98 7F09A0A8 8C6D0000 */ lw $t5, ($v1) -/* 0CCA9C 7F09A0AC E5A20580 */ swc1 $f2, 0x580($t5) -/* 0CCAA0 7F09A0B0 8C790000 */ lw $t9, ($v1) -/* 0CCAA4 7F09A0B4 E7200584 */ swc1 $f0, 0x584($t9) -/* 0CCAA8 7F09A0B8 8C780000 */ lw $t8, ($v1) -/* 0CCAAC 7F09A0BC E7000588 */ swc1 $f0, 0x588($t8) -/* 0CCAB0 7F09A0C0 8C6B0000 */ lw $t3, ($v1) -/* 0CCAB4 7F09A0C4 E562058C */ swc1 $f2, 0x58c($t3) -/* 0CCAB8 7F09A0C8 8C6F0000 */ lw $t7, ($v1) -/* 0CCABC 7F09A0CC E5E00590 */ swc1 $f0, 0x590($t7) -/* 0CCAC0 7F09A0D0 8C6E0000 */ lw $t6, ($v1) -/* 0CCAC4 7F09A0D4 ADC00594 */ sw $zero, 0x594($t6) -.L7F09A0D8: -/* 0CCAC8 7F09A0D8 8C6C0000 */ lw $t4, ($v1) -/* 0CCACC 7F09A0DC 01826821 */ addu $t5, $t4, $v0 -/* 0CCAD0 7F09A0E0 A5A407D0 */ sh $a0, 0x7d0($t5) -/* 0CCAD4 7F09A0E4 8C790000 */ lw $t9, ($v1) -/* 0CCAD8 7F09A0E8 0322C021 */ addu $t8, $t9, $v0 -/* 0CCADC 7F09A0EC A70507D2 */ sh $a1, 0x7d2($t8) -/* 0CCAE0 7F09A0F0 8C6B0000 */ lw $t3, ($v1) -/* 0CCAE4 7F09A0F4 01627821 */ addu $t7, $t3, $v0 -/* 0CCAE8 7F09A0F8 A5E607D4 */ sh $a2, 0x7d4($t7) -/* 0CCAEC 7F09A0FC 8C6E0000 */ lw $t6, ($v1) -/* 0CCAF0 7F09A100 01C26021 */ addu $t4, $t6, $v0 -/* 0CCAF4 7F09A104 A58007D6 */ sh $zero, 0x7d6($t4) -/* 0CCAF8 7F09A108 8C6D0000 */ lw $t5, ($v1) -/* 0CCAFC 7F09A10C 01A2C821 */ addu $t9, $t5, $v0 -/* 0CCB00 7F09A110 A72407D8 */ sh $a0, 0x7d8($t9) -/* 0CCB04 7F09A114 8C780000 */ lw $t8, ($v1) -/* 0CCB08 7F09A118 03025821 */ addu $t3, $t8, $v0 -/* 0CCB0C 7F09A11C A56507DA */ sh $a1, 0x7da($t3) -/* 0CCB10 7F09A120 8C6F0000 */ lw $t7, ($v1) -/* 0CCB14 7F09A124 01E27021 */ addu $t6, $t7, $v0 -/* 0CCB18 7F09A128 A5C607DC */ sh $a2, 0x7dc($t6) -/* 0CCB1C 7F09A12C 8C6C0000 */ lw $t4, ($v1) -/* 0CCB20 7F09A130 01826821 */ addu $t5, $t4, $v0 -/* 0CCB24 7F09A134 24420010 */ addiu $v0, $v0, 0x10 -/* 0CCB28 7F09A138 1447FFE7 */ bne $v0, $a3, .L7F09A0D8 -/* 0CCB2C 7F09A13C A5A007DE */ sh $zero, 0x7de($t5) -/* 0CCB30 7F09A140 8C790000 */ lw $t9, ($v1) -/* 0CCB34 7F09A144 24020064 */ li $v0, 100 -/* 0CCB38 7F09A148 A72207F0 */ sh $v0, 0x7f0($t9) -/* 0CCB3C 7F09A14C 8C780000 */ lw $t8, ($v1) -/* 0CCB40 7F09A150 A70207F2 */ sh $v0, 0x7f2($t8) -/* 0CCB44 7F09A154 8C6B0000 */ lw $t3, ($v1) -/* 0CCB48 7F09A158 A56007F4 */ sh $zero, 0x7f4($t3) -/* 0CCB4C 7F09A15C 8C6F0000 */ lw $t7, ($v1) -/* 0CCB50 7F09A160 A5E007F6 */ sh $zero, 0x7f6($t7) -/* 0CCB54 7F09A164 8C6E0000 */ lw $t6, ($v1) -/* 0CCB58 7F09A168 ADC007F8 */ sw $zero, 0x7f8($t6) -/* 0CCB5C 7F09A16C 8C6C0000 */ lw $t4, ($v1) -/* 0CCB60 7F09A170 AD8007FC */ sw $zero, 0x7fc($t4) -/* 0CCB64 7F09A174 8C6D0000 */ lw $t5, ($v1) -/* 0CCB68 7F09A178 ADA00800 */ sw $zero, 0x800($t5) -/* 0CCB6C 7F09A17C 8C790000 */ lw $t9, ($v1) -/* 0CCB70 7F09A180 AF200804 */ sw $zero, 0x804($t9) -/* 0CCB74 7F09A184 8C780000 */ lw $t8, ($v1) -/* 0CCB78 7F09A188 AF092A3C */ sw $t1, 0x2a3c($t8) -/* 0CCB7C 7F09A18C 8C6B0000 */ lw $t3, ($v1) -/* 0CCB80 7F09A190 0140C025 */ move $t8, $t2 -/* 0CCB84 7F09A194 AD692A40 */ sw $t1, 0x2a40($t3) -/* 0CCB88 7F09A198 8C6F0000 */ lw $t7, ($v1) -/* 0CCB8C 7F09A19C 254B03A8 */ addiu $t3, $t2, 0x3a8 -/* 0CCB90 7F09A1A0 ADE02A48 */ sw $zero, 0x2a48($t7) -/* 0CCB94 7F09A1A4 8C6E0000 */ lw $t6, ($v1) -/* 0CCB98 7F09A1A8 01407825 */ move $t7, $t2 -/* 0CCB9C 7F09A1AC ADC02A4C */ sw $zero, 0x2a4c($t6) -/* 0CCBA0 7F09A1B0 8C6C0000 */ lw $t4, ($v1) -/* 0CCBA4 7F09A1B4 AD800808 */ sw $zero, 0x808($t4) -/* 0CCBA8 7F09A1B8 8C6D0000 */ lw $t5, ($v1) -/* 0CCBAC 7F09A1BC ADA0080C */ sw $zero, 0x80c($t5) -/* 0CCBB0 7F09A1C0 8C790000 */ lw $t9, ($v1) -.L7F09A1C4: -/* 0CCBB4 7F09A1C4 8DE10000 */ lw $at, ($t7) -/* 0CCBB8 7F09A1C8 25EF000C */ addiu $t7, $t7, 0xc -/* 0CCBBC 7F09A1CC 2739000C */ addiu $t9, $t9, 0xc -/* 0CCBC0 7F09A1D0 AF21085C */ sw $at, 0x85c($t9) -/* 0CCBC4 7F09A1D4 8DE1FFF8 */ lw $at, -8($t7) -/* 0CCBC8 7F09A1D8 AF210860 */ sw $at, 0x860($t9) -/* 0CCBCC 7F09A1DC 8DE1FFFC */ lw $at, -4($t7) -/* 0CCBD0 7F09A1E0 15EBFFF8 */ bne $t7, $t3, .L7F09A1C4 -/* 0CCBD4 7F09A1E4 AF210864 */ sw $at, 0x864($t9) -/* 0CCBD8 7F09A1E8 8C6E0000 */ lw $t6, ($v1) -/* 0CCBDC 7F09A1EC 254D03A8 */ addiu $t5, $t2, 0x3a8 -.L7F09A1F0: -/* 0CCBE0 7F09A1F0 8F010000 */ lw $at, ($t8) -/* 0CCBE4 7F09A1F4 2718000C */ addiu $t8, $t8, 0xc -/* 0CCBE8 7F09A1F8 25CE000C */ addiu $t6, $t6, 0xc -/* 0CCBEC 7F09A1FC ADC10C04 */ sw $at, 0xc04($t6) -/* 0CCBF0 7F09A200 8F01FFF8 */ lw $at, -8($t8) -/* 0CCBF4 7F09A204 ADC10C08 */ sw $at, 0xc08($t6) -/* 0CCBF8 7F09A208 8F01FFFC */ lw $at, -4($t8) -/* 0CCBFC 7F09A20C 170DFFF8 */ bne $t8, $t5, .L7F09A1F0 -/* 0CCC00 7F09A210 ADC10C0C */ sw $at, 0xc0c($t6) -/* 0CCC04 7F09A214 8C6B0000 */ lw $t3, ($v1) -/* 0CCC08 7F09A218 3C018005 */ lui $at, %hi(D_80057620) # $at, 0x8005 -/* 0CCC0C 7F09A21C 240200FF */ li $v0, 255 -/* 0CCC10 7F09A220 E5620FB8 */ swc1 $f2, 0xfb8($t3) -/* 0CCC14 7F09A224 8C6F0000 */ lw $t7, ($v1) -/* 0CCC18 7F09A228 24040007 */ li $a0, 7 -/* 0CCC1C 7F09A22C E5E20FBC */ swc1 $f2, 0xfbc($t7) -/* 0CCC20 7F09A230 8C790000 */ lw $t9, ($v1) -/* 0CCC24 7F09A234 AF200FC0 */ sw $zero, 0xfc0($t9) -/* 0CCC28 7F09A238 8C6C0000 */ lw $t4, ($v1) -/* 0CCC2C 7F09A23C AD800FC4 */ sw $zero, 0xfc4($t4) -/* 0CCC30 7F09A240 8C6D0000 */ lw $t5, ($v1) -/* 0CCC34 7F09A244 C42CCCE0 */ lwc1 $f12, %lo(D_80057620)($at) -/* 0CCC38 7F09A248 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 0CCC3C 7F09A24C ADA00FC8 */ sw $zero, 0xfc8($t5) -/* 0CCC40 7F09A250 8C780000 */ lw $t8, ($v1) -/* 0CCC44 7F09A254 AF000FCC */ sw $zero, 0xfcc($t8) -/* 0CCC48 7F09A258 8C6E0000 */ lw $t6, ($v1) -/* 0CCC4C 7F09A25C ADC00FD0 */ sw $zero, 0xfd0($t6) -/* 0CCC50 7F09A260 8C6B0000 */ lw $t3, ($v1) -/* 0CCC54 7F09A264 A1620FD4 */ sb $v0, 0xfd4($t3) -/* 0CCC58 7F09A268 8C6F0000 */ lw $t7, ($v1) -/* 0CCC5C 7F09A26C A1E20FD5 */ sb $v0, 0xfd5($t7) -/* 0CCC60 7F09A270 8C790000 */ lw $t9, ($v1) -/* 0CCC64 7F09A274 A3220FD6 */ sb $v0, 0xfd6($t9) -/* 0CCC68 7F09A278 8C6C0000 */ lw $t4, ($v1) -/* 0CCC6C 7F09A27C 3C028007 */ lui $v0, %hi(random_byte) # $v0, 0x8007 -/* 0CCC70 7F09A280 24428BCC */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x7434 -/* 0CCC74 7F09A284 A1800FD7 */ sb $zero, 0xfd7($t4) -/* 0CCC78 7F09A288 8C6D0000 */ lw $t5, ($v1) -/* 0CCC7C 7F09A28C ADA80FD8 */ sw $t0, 0xfd8($t5) -/* 0CCC80 7F09A290 8C780000 */ lw $t8, ($v1) -/* 0CCC84 7F09A294 AF000FDC */ sw $zero, 0xfdc($t8) -/* 0CCC88 7F09A298 8C6E0000 */ lw $t6, ($v1) -/* 0CCC8C 7F09A29C E5C00FE0 */ swc1 $f0, 0xfe0($t6) -/* 0CCC90 7F09A2A0 8C6B0000 */ lw $t3, ($v1) -/* 0CCC94 7F09A2A4 E5600FE4 */ swc1 $f0, 0xfe4($t3) -/* 0CCC98 7F09A2A8 8C6F0000 */ lw $t7, ($v1) -/* 0CCC9C 7F09A2AC E5E00FE8 */ swc1 $f0, 0xfe8($t7) -/* 0CCCA0 7F09A2B0 8C790000 */ lw $t9, ($v1) -/* 0CCCA4 7F09A2B4 E7200FEC */ swc1 $f0, 0xfec($t9) -/* 0CCCA8 7F09A2B8 8C6C0000 */ lw $t4, ($v1) -/* 0CCCAC 7F09A2BC E58C0FF0 */ swc1 $f12, 0xff0($t4) -/* 0CCCB0 7F09A2C0 8C6D0000 */ lw $t5, ($v1) -/* 0CCCB4 7F09A2C4 E5A00FF4 */ swc1 $f0, 0xff4($t5) -/* 0CCCB8 7F09A2C8 8C780000 */ lw $t8, ($v1) -/* 0CCCBC 7F09A2CC E7000FF8 */ swc1 $f0, 0xff8($t8) -/* 0CCCC0 7F09A2D0 8C6E0000 */ lw $t6, ($v1) -/* 0CCCC4 7F09A2D4 E5C00FFC */ swc1 $f0, 0xffc($t6) -/* 0CCCC8 7F09A2D8 8C6B0000 */ lw $t3, ($v1) -/* 0CCCCC 7F09A2DC E5601000 */ swc1 $f0, 0x1000($t3) -/* 0CCCD0 7F09A2E0 8C6F0000 */ lw $t7, ($v1) -/* 0CCCD4 7F09A2E4 E5EC1004 */ swc1 $f12, 0x1004($t7) -/* 0CCCD8 7F09A2E8 44816000 */ mtc1 $at, $f12 -/* 0CCCDC 7F09A2EC 8C790000 */ lw $t9, ($v1) -/* 0CCCE0 7F09A2F0 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 0CCCE4 7F09A2F4 44817000 */ mtc1 $at, $f14 -/* 0CCCE8 7F09A2F8 3C014388 */ li $at, 0x43880000 # 272.000000 -/* 0CCCEC 7F09A2FC 44818000 */ mtc1 $at, $f16 -/* 0CCCF0 7F09A300 E7201008 */ swc1 $f0, 0x1008($t9) -/* 0CCCF4 7F09A304 3C018005 */ lui $at, %hi(D_80057624) # $at, 0x8005 -/* 0CCCF8 7F09A308 C424CCE4 */ lwc1 $f4, %lo(D_80057624)($at) -/* 0CCCFC 7F09A30C 8C6C0000 */ lw $t4, ($v1) -/* 0CCD00 7F09A310 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0CCD04 7F09A314 44813000 */ mtc1 $at, $f6 -/* 0CCD08 7F09A318 E584100C */ swc1 $f4, 0x100c($t4) -/* 0CCD0C 7F09A31C 8C6D0000 */ lw $t5, ($v1) -/* 0CCD10 7F09A320 3C014238 */ li $at, 0x42380000 # 46.000000 -/* 0CCD14 7F09A324 44814000 */ mtc1 $at, $f8 -/* 0CCD18 7F09A328 E5A01010 */ swc1 $f0, 0x1010($t5) -/* 0CCD1C 7F09A32C 8C780000 */ lw $t8, ($v1) -/* 0CCD20 7F09A330 3C014320 */ li $at, 0x43200000 # 160.000000 -/* 0CCD24 7F09A334 44815000 */ mtc1 $at, $f10 -/* 0CCD28 7F09A338 AF001054 */ sw $zero, 0x1054($t8) -/* 0CCD2C 7F09A33C 8C6E0000 */ lw $t6, ($v1) -/* 0CCD30 7F09A340 3C014308 */ li $at, 0x43080000 # 136.000000 -/* 0CCD34 7F09A344 44819000 */ mtc1 $at, $f18 -/* 0CCD38 7F09A348 ADC01058 */ sw $zero, 0x1058($t6) -/* 0CCD3C 7F09A34C 8C6B0000 */ lw $t3, ($v1) -/* 0CCD40 7F09A350 3C018005 */ lui $at, %hi(D_80057628) # $at, 0x8005 -/* 0CCD44 7F09A354 AD60105C */ sw $zero, 0x105c($t3) -/* 0CCD48 7F09A358 8C6F0000 */ lw $t7, ($v1) -/* 0CCD4C 7F09A35C E5E01064 */ swc1 $f0, 0x1064($t7) -/* 0CCD50 7F09A360 8C790000 */ lw $t9, ($v1) -/* 0CCD54 7F09A364 E7201068 */ swc1 $f0, 0x1068($t9) -/* 0CCD58 7F09A368 8C6C0000 */ lw $t4, ($v1) -/* 0CCD5C 7F09A36C E580106C */ swc1 $f0, 0x106c($t4) -/* 0CCD60 7F09A370 8C6D0000 */ lw $t5, ($v1) -/* 0CCD64 7F09A374 ADA01070 */ sw $zero, 0x1070($t5) -/* 0CCD68 7F09A378 8C780000 */ lw $t8, ($v1) -/* 0CCD6C 7F09A37C E7001074 */ swc1 $f0, 0x1074($t8) -/* 0CCD70 7F09A380 8C6E0000 */ lw $t6, ($v1) -/* 0CCD74 7F09A384 E5C01078 */ swc1 $f0, 0x1078($t6) -/* 0CCD78 7F09A388 8C6B0000 */ lw $t3, ($v1) -/* 0CCD7C 7F09A38C E56C107C */ swc1 $f12, 0x107c($t3) -/* 0CCD80 7F09A390 8C6F0000 */ lw $t7, ($v1) -/* 0CCD84 7F09A394 E5EC1080 */ swc1 $f12, 0x1080($t7) -/* 0CCD88 7F09A398 8C790000 */ lw $t9, ($v1) -/* 0CCD8C 7F09A39C AF291084 */ sw $t1, 0x1084($t9) -/* 0CCD90 7F09A3A0 8C6C0000 */ lw $t4, ($v1) -/* 0CCD94 7F09A3A4 E58E1088 */ swc1 $f14, 0x1088($t4) -/* 0CCD98 7F09A3A8 8C6D0000 */ lw $t5, ($v1) -/* 0CCD9C 7F09A3AC E5B0108C */ swc1 $f16, 0x108c($t5) -/* 0CCDA0 7F09A3B0 8C780000 */ lw $t8, ($v1) -/* 0CCDA4 7F09A3B4 E7001090 */ swc1 $f0, 0x1090($t8) -/* 0CCDA8 7F09A3B8 8C6E0000 */ lw $t6, ($v1) -/* 0CCDAC 7F09A3BC E5C01094 */ swc1 $f0, 0x1094($t6) -/* 0CCDB0 7F09A3C0 8C6B0000 */ lw $t3, ($v1) -/* 0CCDB4 7F09A3C4 E5661098 */ swc1 $f6, 0x1098($t3) -/* 0CCDB8 7F09A3C8 8C6F0000 */ lw $t7, ($v1) -/* 0CCDBC 7F09A3CC E5E8109C */ swc1 $f8, 0x109c($t7) -/* 0CCDC0 7F09A3D0 8C790000 */ lw $t9, ($v1) -/* 0CCDC4 7F09A3D4 E72210A0 */ swc1 $f2, 0x10a0($t9) -/* 0CCDC8 7F09A3D8 8C6C0000 */ lw $t4, ($v1) -/* 0CCDCC 7F09A3DC E58A10A4 */ swc1 $f10, 0x10a4($t4) -/* 0CCDD0 7F09A3E0 8C6D0000 */ lw $t5, ($v1) -/* 0CCDD4 7F09A3E4 E5B210A8 */ swc1 $f18, 0x10a8($t5) -/* 0CCDD8 7F09A3E8 8C780000 */ lw $t8, ($v1) -/* 0CCDDC 7F09A3EC E70210AC */ swc1 $f2, 0x10ac($t8) -/* 0CCDE0 7F09A3F0 8C6E0000 */ lw $t6, ($v1) -/* 0CCDE4 7F09A3F4 E5C210B0 */ swc1 $f2, 0x10b0($t6) -/* 0CCDE8 7F09A3F8 8C6B0000 */ lw $t3, ($v1) -/* 0CCDEC 7F09A3FC E56210B4 */ swc1 $f2, 0x10b4($t3) -/* 0CCDF0 7F09A400 8C6F0000 */ lw $t7, ($v1) -/* 0CCDF4 7F09A404 E5E210B8 */ swc1 $f2, 0x10b8($t7) -/* 0CCDF8 7F09A408 8C790000 */ lw $t9, ($v1) -/* 0CCDFC 7F09A40C AF2010BC */ sw $zero, 0x10bc($t9) -/* 0CCE00 7F09A410 8C6C0000 */ lw $t4, ($v1) -/* 0CCE04 7F09A414 AD8010C0 */ sw $zero, 0x10c0($t4) -/* 0CCE08 7F09A418 8C6D0000 */ lw $t5, ($v1) -/* 0CCE0C 7F09A41C ADA010C4 */ sw $zero, 0x10c4($t5) -/* 0CCE10 7F09A420 8C780000 */ lw $t8, ($v1) -/* 0CCE14 7F09A424 AF0010C8 */ sw $zero, 0x10c8($t8) -/* 0CCE18 7F09A428 8C6E0000 */ lw $t6, ($v1) -/* 0CCE1C 7F09A42C ADC010CC */ sw $zero, 0x10cc($t6) -/* 0CCE20 7F09A430 8C6B0000 */ lw $t3, ($v1) -/* 0CCE24 7F09A434 AD6010D0 */ sw $zero, 0x10d0($t3) -/* 0CCE28 7F09A438 8C6F0000 */ lw $t7, ($v1) -/* 0CCE2C 7F09A43C ADE010D4 */ sw $zero, 0x10d4($t7) -/* 0CCE30 7F09A440 8C790000 */ lw $t9, ($v1) -/* 0CCE34 7F09A444 AF2010D8 */ sw $zero, 0x10d8($t9) -/* 0CCE38 7F09A448 8C6C0000 */ lw $t4, ($v1) -/* 0CCE3C 7F09A44C 3C190001 */ lui $t9, 1 -/* 0CCE40 7F09A450 AD8010DC */ sw $zero, 0x10dc($t4) -/* 0CCE44 7F09A454 8C6D0000 */ lw $t5, ($v1) -/* 0CCE48 7F09A458 ADA010E0 */ sw $zero, 0x10e0($t5) -/* 0CCE4C 7F09A45C 8C780000 */ lw $t8, ($v1) -/* 0CCE50 7F09A460 AF0010E4 */ sw $zero, 0x10e4($t8) -/* 0CCE54 7F09A464 8C6E0000 */ lw $t6, ($v1) -/* 0CCE58 7F09A468 E5C210E8 */ swc1 $f2, 0x10e8($t6) -/* 0CCE5C 7F09A46C 8C6B0000 */ lw $t3, ($v1) -/* 0CCE60 7F09A470 E56210EC */ swc1 $f2, 0x10ec($t3) -/* 0CCE64 7F09A474 8C6F0000 */ lw $t7, ($v1) -/* 0CCE68 7F09A478 E5E210F0 */ swc1 $f2, 0x10f0($t7) -/* 0CCE6C 7F09A47C 8C6C0000 */ lw $t4, ($v1) -/* 0CCE70 7F09A480 AD9910F4 */ sw $t9, 0x10f4($t4) -/* 0CCE74 7F09A484 8C6D0000 */ lw $t5, ($v1) -/* 0CCE78 7F09A488 E5A01110 */ swc1 $f0, 0x1110($t5) -/* 0CCE7C 7F09A48C 8C780000 */ lw $t8, ($v1) -/* 0CCE80 7F09A490 E7001114 */ swc1 $f0, 0x1114($t8) -/* 0CCE84 7F09A494 8C6E0000 */ lw $t6, ($v1) -/* 0CCE88 7F09A498 E5CE1118 */ swc1 $f14, 0x1118($t6) -/* 0CCE8C 7F09A49C 8C6B0000 */ lw $t3, ($v1) -/* 0CCE90 7F09A4A0 E570111C */ swc1 $f16, 0x111c($t3) -/* 0CCE94 7F09A4A4 8C6F0000 */ lw $t7, ($v1) -/* 0CCE98 7F09A4A8 ADE01120 */ sw $zero, 0x1120($t7) -/* 0CCE9C 7F09A4AC 8C790000 */ lw $t9, ($v1) -/* 0CCEA0 7F09A4B0 AF2011A8 */ sw $zero, 0x11a8($t9) -/* 0CCEA4 7F09A4B4 8C6C0000 */ lw $t4, ($v1) -/* 0CCEA8 7F09A4B8 AD8011AC */ sw $zero, 0x11ac($t4) -/* 0CCEAC 7F09A4BC 8C6D0000 */ lw $t5, ($v1) -/* 0CCEB0 7F09A4C0 ADA011B0 */ sw $zero, 0x11b0($t5) -/* 0CCEB4 7F09A4C4 8C780000 */ lw $t8, ($v1) -/* 0CCEB8 7F09A4C8 E70011B4 */ swc1 $f0, 0x11b4($t8) -/* 0CCEBC 7F09A4CC 8C6E0000 */ lw $t6, ($v1) -/* 0CCEC0 7F09A4D0 E5C011B8 */ swc1 $f0, 0x11b8($t6) -/* 0CCEC4 7F09A4D4 8C6B0000 */ lw $t3, ($v1) -/* 0CCEC8 7F09A4D8 E56C11BC */ swc1 $f12, 0x11bc($t3) -/* 0CCECC 7F09A4DC 8C6F0000 */ lw $t7, ($v1) -/* 0CCED0 7F09A4E0 E5EC11C0 */ swc1 $f12, 0x11c0($t7) -/* 0CCED4 7F09A4E4 8C790000 */ lw $t9, ($v1) -/* 0CCED8 7F09A4E8 E72C11C4 */ swc1 $f12, 0x11c4($t9) -/* 0CCEDC 7F09A4EC 8C6C0000 */ lw $t4, ($v1) -/* 0CCEE0 7F09A4F0 E58C11C8 */ swc1 $f12, 0x11c8($t4) -/* 0CCEE4 7F09A4F4 8C6D0000 */ lw $t5, ($v1) -/* 0CCEE8 7F09A4F8 C424CCE8 */ lwc1 $f4, %lo(D_80057628)($at) -/* 0CCEEC 7F09A4FC 3C018003 */ lui $at, %hi(g_VisibleToGuardsFlag) # $at, 0x8003 -/* 0CCEF0 7F09A500 E5A411CC */ swc1 $f4, 0x11cc($t5) -/* 0CCEF4 7F09A504 8C780000 */ lw $t8, ($v1) -/* 0CCEF8 7F09A508 AF0011D0 */ sw $zero, 0x11d0($t8) -/* 0CCEFC 7F09A50C 8C6E0000 */ lw $t6, ($v1) -/* 0CCF00 7F09A510 ADC911D4 */ sw $t1, 0x11d4($t6) -/* 0CCF04 7F09A514 8C6B0000 */ lw $t3, ($v1) -/* 0CCF08 7F09A518 AD6011D8 */ sw $zero, 0x11d8($t3) -/* 0CCF0C 7F09A51C 8C6F0000 */ lw $t7, ($v1) -/* 0CCF10 7F09A520 ADE011DC */ sw $zero, 0x11dc($t7) -/* 0CCF14 7F09A524 8C790000 */ lw $t9, ($v1) -/* 0CCF18 7F09A528 AF2011E0 */ sw $zero, 0x11e0($t9) -/* 0CCF1C 7F09A52C 8C6C0000 */ lw $t4, ($v1) -/* 0CCF20 7F09A530 AD8011E4 */ sw $zero, 0x11e4($t4) -/* 0CCF24 7F09A534 8C6D0000 */ lw $t5, ($v1) -/* 0CCF28 7F09A538 ADA011E8 */ sw $zero, 0x11e8($t5) -/* 0CCF2C 7F09A53C 8C780000 */ lw $t8, ($v1) -/* 0CCF30 7F09A540 AF0011EC */ sw $zero, 0x11ec($t8) -/* 0CCF34 7F09A544 8C6E0000 */ lw $t6, ($v1) -/* 0CCF38 7F09A548 E5C01278 */ swc1 $f0, 0x1278($t6) -/* 0CCF3C 7F09A54C 8C6B0000 */ lw $t3, ($v1) -/* 0CCF40 7F09A550 AD60127C */ sw $zero, 0x127c($t3) -/* 0CCF44 7F09A554 8C6F0000 */ lw $t7, ($v1) -/* 0CCF48 7F09A558 E5E01280 */ swc1 $f0, 0x1280($t7) -/* 0CCF4C 7F09A55C 8C790000 */ lw $t9, ($v1) -/* 0CCF50 7F09A560 A32012AE */ sb $zero, 0x12ae($t9) -/* 0CCF54 7F09A564 8C6C0000 */ lw $t4, ($v1) -/* 0CCF58 7F09A568 AD8429B0 */ sw $a0, 0x29b0($t4) -/* 0CCF5C 7F09A56C 8C6D0000 */ lw $t5, ($v1) -/* 0CCF60 7F09A570 E5A229B4 */ swc1 $f2, 0x29b4($t5) -/* 0CCF64 7F09A574 8C780000 */ lw $t8, ($v1) -/* 0CCF68 7F09A578 E70029B8 */ swc1 $f0, 0x29b8($t8) -/* 0CCF6C 7F09A57C 8C6E0000 */ lw $t6, ($v1) -/* 0CCF70 7F09A580 ADC029BC */ sw $zero, 0x29bc($t6) -/* 0CCF74 7F09A584 8C6B0000 */ lw $t3, ($v1) -/* 0CCF78 7F09A588 AD6429CC */ sw $a0, 0x29cc($t3) -/* 0CCF7C 7F09A58C 8C6F0000 */ lw $t7, ($v1) -/* 0CCF80 7F09A590 ADE029D0 */ sw $zero, 0x29d0($t7) -/* 0CCF84 7F09A594 8C6C0000 */ lw $t4, ($v1) -/* 0CCF88 7F09A598 8C590000 */ lw $t9, ($v0) -/* 0CCF8C 7F09A59C AD9929D8 */ sw $t9, 0x29d8($t4) -/* 0CCF90 7F09A5A0 8C4D0000 */ lw $t5, ($v0) -/* 0CCF94 7F09A5A4 8C6E0000 */ lw $t6, ($v1) -/* 0CCF98 7F09A5A8 25B80001 */ addiu $t8, $t5, 1 -/* 0CCF9C 7F09A5AC AC580000 */ sw $t8, ($v0) -/* 0CCFA0 7F09A5B0 ADC929DC */ sw $t1, 0x29dc($t6) -/* 0CCFA4 7F09A5B4 8C6B0000 */ lw $t3, ($v1) -/* 0CCFA8 7F09A5B8 AD6929E0 */ sw $t1, 0x29e0($t3) -/* 0CCFAC 7F09A5BC 8C6F0000 */ lw $t7, ($v1) -/* 0CCFB0 7F09A5C0 ADE929E4 */ sw $t1, 0x29e4($t7) -/* 0CCFB4 7F09A5C4 8C790000 */ lw $t9, ($v1) -/* 0CCFB8 7F09A5C8 AF2929E8 */ sw $t1, 0x29e8($t9) -/* 0CCFBC 7F09A5CC 8C6C0000 */ lw $t4, ($v1) -/* 0CCFC0 7F09A5D0 AD8029F8 */ sw $zero, 0x29f8($t4) -/* 0CCFC4 7F09A5D4 8C6D0000 */ lw $t5, ($v1) -/* 0CCFC8 7F09A5D8 ADA02A28 */ sw $zero, 0x2a28($t5) -/* 0CCFCC 7F09A5DC 8C780000 */ lw $t8, ($v1) -/* 0CCFD0 7F09A5E0 AF002A2C */ sw $zero, 0x2a2c($t8) -/* 0CCFD4 7F09A5E4 8C6E0000 */ lw $t6, ($v1) -/* 0CCFD8 7F09A5E8 ADC82A30 */ sw $t0, 0x2a30($t6) -/* 0CCFDC 7F09A5EC 8C6B0000 */ lw $t3, ($v1) -/* 0CCFE0 7F09A5F0 E5622A34 */ swc1 $f2, 0x2a34($t3) -/* 0CCFE4 7F09A5F4 8C6F0000 */ lw $t7, ($v1) -/* 0CCFE8 7F09A5F8 E5E22A38 */ swc1 $f2, 0x2a38($t7) -/* 0CCFEC 7F09A5FC 8C790000 */ lw $t9, ($v1) -/* 0CCFF0 7F09A600 AF202A50 */ sw $zero, 0x2a50($t9) -/* 0CCFF4 7F09A604 8C6C0000 */ lw $t4, ($v1) -/* 0CCFF8 7F09A608 AD802A54 */ sw $zero, 0x2a54($t4) -/* 0CCFFC 7F09A60C 8C6D0000 */ lw $t5, ($v1) -/* 0CD000 7F09A610 E5A02A58 */ swc1 $f0, 0x2a58($t5) -/* 0CD004 7F09A614 8C780000 */ lw $t8, ($v1) -/* 0CD008 7F09A618 AF002A5C */ sw $zero, 0x2a5c($t8) -/* 0CD00C 7F09A61C 8C6E0000 */ lw $t6, ($v1) -/* 0CD010 7F09A620 ADC82A60 */ sw $t0, 0x2a60($t6) -/* 0CD014 7F09A624 8C6B0000 */ lw $t3, ($v1) -/* 0CD018 7F09A628 AD602A64 */ sw $zero, 0x2a64($t3) -/* 0CD01C 7F09A62C 8C6F0000 */ lw $t7, ($v1) -/* 0CD020 7F09A630 ADE02A68 */ sw $zero, 0x2a68($t7) -/* 0CD024 7F09A634 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CD028 7F09A638 AC281A14 */ sw $t0, %lo(g_VisibleToGuardsFlag)($at) -/* 0CD02C 7F09A63C 3C018003 */ lui $at, %hi(obj_collision_flag) # $at, 0x8003 -/* 0CD030 7F09A640 AC281A18 */ sw $t0, %lo(obj_collision_flag)($at) -/* 0CD034 7F09A644 03E00008 */ jr $ra -/* 0CD038 7F09A648 27BD03D0 */ addiu $sp, $sp, 0x3d0 -) -#endif - -#endif void set_cur_player(s32 playernum) @@ -2994,9 +541,51 @@ f32 get_cur_player_fovy(void) { #ifdef NONMATCHING -void sub_GAME_7F09B244(void) { +/* looks vaguely like this, couldn't quite get there */ +PROP sub_GAME_7F09B244(ITEM_IDS arg0) +{ + PROP ret = -1; + switch (arg0) + { + case ITEM_KNIFE: return PROP_CHRKNIFE; /* weapon_multi_hunting_knife */ + case ITEM_WPPK: return PROP_CHRWPPK; /* weapon_multi_pp7 */ + case ITEM_SKORPION: return PROP_CHRSKORPION; /* weapon_multi_klobb */ + case ITEM_AK47: return PROP_CHRKALASH; /* weapon_multi_kf7 */ + case ITEM_UZI: return PROP_CHRUZI; /* weapon_multi_zmg */ + case ITEM_MP5K: return PROP_CHRMP5K; /* weapon_multi_d5k */ + case ITEM_SPECTRE: return PROP_CHRSPECTRE; /* weapon_multi_phantom */ + case ITEM_M16: return PROP_CHRM16; /* weapon_multi_ar33 */ + case ITEM_FNP90: return PROP_CHRFNP90; /* weapon_multi_rcp90 */ + case ITEM_SHOTGUN: return PROP_CHRSHOTGUN; /* weapon_multi_shotgun */ + case ITEM_GRENADELAUNCH: return PROP_CHRGRENADELAUNCH; /* weapon_multi_grenade_laun */ + case ITEM_GRENADE: return PROP_CHRGRENADE; /* weapon_multi_hand */ + case ITEM_REMOTEMINE: return PROP_CHRREMOTEMINE; /* weapon_multi_remote */ + case ITEM_PROXIMITYMINE: return PROP_CHRPROXIMITYMINE; /* weapon_multi_prox */ + case ITEM_TIMEDMINE: return PROP_CHRTIMEDMINE; /* weapon_multi_timed */ + case ITEM_RUGER: return PROP_CHRRUGER; /* weapon_multi_cougar */ + case ITEM_LASER: return PROP_CHRLASER; /* weapon_multi_moonraker */ + case ITEM_SNIPERRIFLE: return PROP_CHRSNIPERRIFLE; /* weapon_multi_sniper */ + case ITEM_MP5KSIL: return PROP_CHRMP5KSIL; /* weapon_multi_d5k_silent */ + case ITEM_TT33: return PROP_CHRTT33; /* weapon_multi_dd44 */ + case ITEM_WPPKSIL: return PROP_CHRWPPKSIL; /* weapon_multi_pp7_silent */ + case ITEM_THROWKNIFE: return PROP_CHRTHROWKNIFE; /* weapon_multi_throwing_knife */ + case ITEM_AUTOSHOT: return PROP_CHRAUTOSHOT; /* weapon_multi_auto_shot */ + case ITEM_ROCKETLAUNCH: return PROP_CHRROCKETLAUNCH; /* weapon_multi_rocket_launch */ + case ITEM_GOLDENGUN: return PROP_CHRGOLDEN; /* weapon_multi_goldengun */ + case ITEM_SILVERWPPK: return PROP_CHRWPPK; /* weapon_multi_pp7_special1 */ + case ITEM_GOLDWPPK: return PROP_CHRWPPK; /* weapon_multi_pp7_special2 */ + case ITEM_TOKEN: ret = PROP_FLAG; + /* weapon_multi_none */ + case ITEM_UNARMED: + case ITEM_FIST: + default: + return ret; + } + return ret; } + + #else GLOBAL_ASM( .late_rodata @@ -3172,48 +761,11 @@ weapon_multi_none: #endif - - - -#ifdef NONMATCHING -void sub_GAME_7F09B368(s32 arg0) { - // Node 0 - return chrSetWeaponFlag4(g_CurrentPlayer->unkA8->unk4, arg0); +void sub_GAME_7F09B368(enum GUNHAND hand) +{ + chrSetWeaponFlag4(g_CurrentPlayer->prop->chr, hand); } -#else -GLOBAL_ASM( -.late_rodata -/*hack for jtbl*/ -.word weapon_multi_none -.word weapon_multi_grenade_laun -.word weapon_multi_rocket_launch -/*.word weapon_multi_hand*/ -/*.word weapon_multi_timed*/ -/*.word weapon_multi_prox*/ -/*.word weapon_multi_remote*/ -/*.word weapon_multi_none*/ -/*.word weapon_multi_none*/ -.text -glabel sub_GAME_7F09B368 -/* 0CFE98 7F09B368 3C0E8008 */ lui $t6, %hi(g_CurrentPlayer) -/* 0CFE9C 7F09B36C 8DCEA0B0 */ lw $t6, %lo(g_CurrentPlayer)($t6) -/* 0CFEA0 7F09B370 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0CFEA4 7F09B374 AFBF0014 */ sw $ra, 0x14($sp) -/* 0CFEA8 7F09B378 8DCF00A8 */ lw $t7, 0xa8($t6) -/* 0CFEAC 7F09B37C 00802825 */ move $a1, $a0 -/* 0CFEB0 7F09B380 0FC1487A */ jal chrSetWeaponFlag4 -/* 0CFEB4 7F09B384 8DE40004 */ lw $a0, 4($t7) -/* 0CFEB8 7F09B388 8FBF0014 */ lw $ra, 0x14($sp) -/* 0CFEBC 7F09B38C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0CFEC0 7F09B390 03E00008 */ jr $ra -/* 0CFEC4 7F09B394 00000000 */ nop -) -#endif - - - - #ifdef NONMATCHING // NOTE: i think the return value from @@ -3237,6 +789,9 @@ void sub_GAME_7F09B398(GUNHAND hand) { GLOBAL_ASM( .late_rodata /*hack for jtbl*/ +.word weapon_multi_none +.word weapon_multi_grenade_laun +.word weapon_multi_rocket_launch .word weapon_multi_hand .word weapon_multi_timed .word weapon_multi_prox diff --git a/src/game/player_2.h b/src/game/player_2.h index 2bd23461..6a1b9077 100644 --- a/src/game/player_2.h +++ b/src/game/player_2.h @@ -8,5 +8,7 @@ s32 get_cur_playernum(void); void set_cur_player_fovy(f32 fovy); s32 sub_GAME_7F09B15C( PropRecord* prop); void set_cur_player_aspect(f32 aspect); +void initBONDdataforPlayer(s32 player_num); +s32 sub_GAME_7F09B4D8(s32 current_player_num); #endif diff --git a/src/game/prop.c b/src/game/prop.c index 2c0786d2..1ffe7a25 100644 --- a/src/game/prop.c +++ b/src/game/prop.c @@ -1,5 +1,6 @@ #include #include +#include "chrai.h" #include "chrlv.h" #include "math_atan2f.h" #include "prop.h" @@ -29,56 +30,27 @@ const char aMp_[] = "mp_"; +s32 load_proptype(PROPDEF_TYPE type) +{ + PropDefHeaderRecord *propdef = (PropDefHeaderRecord *) g_CurrentSetup.propDefs; + s32 count = 0; -#ifdef NONMATCHING -void load_proptype(void) { - + if (propdef != NULL) + { + while (propdef->type != PROPDEF_END) + { + if (propdef->type == (type & 0xFF)) + { + count ++; + } + propdef = &propdef[sizepropdef((PropDefHeaderRecord* ) propdef)]; + } + } + return count; } -#else -GLOBAL_ASM( -.text -glabel load_proptype -/* 036680 7F001B50 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 036684 7F001B54 AFB00014 */ sw $s0, 0x14($sp) -/* 036688 7F001B58 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+0x0c) -/* 03668C 7F001B5C 8E105D0C */ lw $s0, %lo(g_chraiCurrentSetup+0x0c)($s0) -/* 036690 7F001B60 AFB10018 */ sw $s1, 0x18($sp) -/* 036694 7F001B64 AFBF0024 */ sw $ra, 0x24($sp) -/* 036698 7F001B68 AFB30020 */ sw $s3, 0x20($sp) -/* 03669C 7F001B6C AFB2001C */ sw $s2, 0x1c($sp) -/* 0366A0 7F001B70 12000010 */ beqz $s0, .L7F001BB4 -/* 0366A4 7F001B74 00008825 */ move $s1, $zero -/* 0366A8 7F001B78 92030003 */ lbu $v1, 3($s0) -/* 0366AC 7F001B7C 24130030 */ li $s3, 48 -/* 0366B0 7F001B80 309200FF */ andi $s2, $a0, 0xff -/* 0366B4 7F001B84 5263000C */ beql $s3, $v1, .L7F001BB8 -/* 0366B8 7F001B88 8FBF0024 */ lw $ra, 0x24($sp) -.L7F001B8C: -/* 0366BC 7F001B8C 16430002 */ bne $s2, $v1, .L7F001B98 -/* 0366C0 7F001B90 00000000 */ nop -/* 0366C4 7F001B94 26310001 */ addiu $s1, $s1, 1 -.L7F001B98: -/* 0366C8 7F001B98 0FC15A3D */ jal sizepropdef -/* 0366CC 7F001B9C 02002025 */ move $a0, $s0 -/* 0366D0 7F001BA0 00027080 */ sll $t6, $v0, 2 -/* 0366D4 7F001BA4 01D08021 */ addu $s0, $t6, $s0 -/* 0366D8 7F001BA8 92030003 */ lbu $v1, 3($s0) -/* 0366DC 7F001BAC 1663FFF7 */ bne $s3, $v1, .L7F001B8C -/* 0366E0 7F001BB0 00000000 */ nop -.L7F001BB4: -/* 0366E4 7F001BB4 8FBF0024 */ lw $ra, 0x24($sp) -.L7F001BB8: -/* 0366E8 7F001BB8 02201025 */ move $v0, $s1 -/* 0366EC 7F001BBC 8FB10018 */ lw $s1, 0x18($sp) -/* 0366F0 7F001BC0 8FB00014 */ lw $s0, 0x14($sp) -/* 0366F4 7F001BC4 8FB2001C */ lw $s2, 0x1c($sp) -/* 0366F8 7F001BC8 8FB30020 */ lw $s3, 0x20($sp) -/* 0366FC 7F001BCC 03E00008 */ jr $ra -/* 036700 7F001BD0 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif + #ifdef NONMATCHING @@ -341,7 +313,7 @@ void domakedefaultobj(s32 arg0, ObjectRecord *arg1, ? cmdindex) phi_f6 = temp_f6 + 4294967296.0f; } sp78 = phi_f6 * 0.00390625f; - arg1->mtx.m[1][3] = (bitwise s32)(arg1->mtx.m[1][3] / 65536.0f); + arg1->mtx.m[1][3] = (bitwise s32)(arg1->mtx.m[1][3] / M_U16_MAX_VALUE_F); phi_v1 = 1; if (getPlayerCount() >= 2) { @@ -400,7 +372,7 @@ block_8: temp_v1_2 = arg1->pad; if (temp_v1_2 < 0x2710) { - temp_v0_2 = &g_chraiCurrentSetup.pads[temp_v1_2]; + temp_v0_2 = &g_CurrentSetup.pads[temp_v1_2]; sp64 = temp_v0_2; matrix_4x4_7F059908(&sp8C, 0.0f, 0.0f, 0.0f, -temp_v0_2->target.AsArray[0], -temp_v0_2->target.AsArray[1], -temp_v0_2->target.AsArray[2], temp_v0_2->up.AsArray[0], temp_v0_2->up.AsArray[1], temp_v0_2->up.AsArray[2]); spD0 = sp64->pos.AsArray[0]; @@ -422,7 +394,7 @@ block_8: } else { - temp_s0 = &g_chraiCurrentSetup.boundpads[temp_v1_2] + 0xFFF59FC0; + temp_s0 = &g_CurrentSetup.boundpads[temp_v1_2] + 0xFFF59FC0; matrix_4x4_7F059908(&sp8C, 0.0f, 0.0f, 0.0f, -temp_s0->unk18, -temp_s0->unk1C, -temp_s0->unk20, temp_s0->unkC, temp_s0->unk10, temp_s0->unk14); phi_s0 = temp_s0; if ((arg1->flags2 & 1) == 0) @@ -814,14 +786,14 @@ glabel domakedefaultobj /* 036B10 7F001FE0 8FBF0034 */ lw $ra, 0x34($sp) /* 036B14 7F001FE4 86230006 */ lh $v1, 6($s1) .L7F001FE8: -/* 036B18 7F001FE8 3C188007 */ lui $t8, %hi(g_chraiCurrentSetup+0x18) -/* 036B1C 7F001FEC 3C0B8007 */ lui $t3, %hi(g_chraiCurrentSetup+0x1C) +/* 036B18 7F001FE8 3C188007 */ lui $t8, %hi(g_CurrentSetup+0x18) +/* 036B1C 7F001FEC 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0x1C) /* 036B20 7F001FF0 28612710 */ slti $at, $v1, 0x2710 /* 036B24 7F001FF4 10200039 */ beqz $at, .L7F0020DC /* 036B28 7F001FF8 00035100 */ sll $t2, $v1, 4 /* 036B2C 7F001FFC 00037880 */ sll $t7, $v1, 2 /* 036B30 7F002000 01E37823 */ subu $t7, $t7, $v1 -/* 036B34 7F002004 8F185D18 */ lw $t8, %lo(g_chraiCurrentSetup+0x18)($t8) +/* 036B34 7F002004 8F185D18 */ lw $t8, %lo(g_CurrentSetup+0x18)($t8) /* 036B38 7F002008 000F7880 */ sll $t7, $t7, 2 /* 036B3C 7F00200C 01E37823 */ subu $t7, $t7, $v1 /* 036B40 7F002010 000F7880 */ sll $t7, $t7, 2 @@ -878,7 +850,7 @@ glabel domakedefaultobj /* 036C04 7F0020D4 10000085 */ b .L7F0022EC /* 036C08 7F0020D8 AFA900CC */ sw $t1, 0xcc($sp) .L7F0020DC: -/* 036C0C 7F0020DC 8D6B5D1C */ lw $t3, %lo(g_chraiCurrentSetup+0x1C)($t3) +/* 036C0C 7F0020DC 8D6B5D1C */ lw $t3, %lo(g_CurrentSetup+0x1C)($t3) /* 036C10 7F0020E0 01435021 */ addu $t2, $t2, $v1 /* 036C14 7F0020E4 000A5080 */ sll $t2, $t2, 2 /* 036C18 7F0020E8 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -1861,18 +1833,18 @@ glabel setupCctv /* 0375A8 7F002A78 01024023 */ subu $t0, $t0, $v0 /* 0375AC 7F002A7C 000A5080 */ sll $t2, $t2, 2 /* 0375B0 7F002A80 8F190000 */ lw $t9, ($t8) -/* 0375B4 7F002A84 3C0B8007 */ lui $t3, %hi(g_chraiCurrentSetup+0x1C) +/* 0375B4 7F002A84 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0x1C) /* 0375B8 7F002A88 10200008 */ beqz $at, .L7F002AAC /* 0375BC 7F002A8C 8F260004 */ lw $a2, 4($t9) /* 0375C0 7F002A90 00084080 */ sll $t0, $t0, 2 -/* 0375C4 7F002A94 3C098007 */ lui $t1, %hi(g_chraiCurrentSetup+0x18) -/* 0375C8 7F002A98 8D295D18 */ lw $t1, %lo(g_chraiCurrentSetup+0x18)($t1) +/* 0375C4 7F002A94 3C098007 */ lui $t1, %hi(g_CurrentSetup+0x18) +/* 0375C8 7F002A98 8D295D18 */ lw $t1, %lo(g_CurrentSetup+0x18)($t1) /* 0375CC 7F002A9C 01024023 */ subu $t0, $t0, $v0 /* 0375D0 7F002AA0 00084080 */ sll $t0, $t0, 2 /* 0375D4 7F002AA4 10000006 */ b .L7F002AC0 /* 0375D8 7F002AA8 01091821 */ addu $v1, $t0, $t1 .L7F002AAC: -/* 0375DC 7F002AAC 8D6B5D1C */ lw $t3, %lo(g_chraiCurrentSetup+0x1C)($t3) +/* 0375DC 7F002AAC 8D6B5D1C */ lw $t3, %lo(g_CurrentSetup+0x1C)($t3) /* 0375E0 7F002AB0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 /* 0375E4 7F002AB4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 /* 0375E8 7F002AB8 014B1821 */ addu $v1, $t2, $t3 @@ -2028,10 +2000,10 @@ void setupAutogun(undefined8 param_1,ObjectRecord.conflict *param_2) param_2[1].field_0x54 = NULL; if (-1 < iVar1) { if (iVar1 < 10000) { - pOVar4 = &g_chraiCurrentSetup.pads->pos + iVar1 * 0x2c; + pOVar4 = &g_CurrentSetup.pads->pos + iVar1 * 0x2c; } else { - pOVar4 = g_chraiCurrentSetup.boundpads + iVar1 * 0x44 + -680000; + pOVar4 = g_CurrentSetup.boundpads + iVar1 * 0x44 + -680000; } pPVar2 = param_2->Prop; fVar7 = *(&pOVar4->type + 2); @@ -2123,15 +2095,15 @@ glabel setupAutogun /* 03788C 7F002D5C 00044080 */ sll $t0, $a0, 2 /* 037890 7F002D60 01044023 */ subu $t0, $t0, $a0 /* 037894 7F002D64 00084080 */ sll $t0, $t0, 2 -/* 037898 7F002D68 3C098007 */ lui $t1, %hi(g_chraiCurrentSetup+0x18) -/* 03789C 7F002D6C 8D295D18 */ lw $t1, %lo(g_chraiCurrentSetup+0x18)($t1) +/* 037898 7F002D68 3C098007 */ lui $t1, %hi(g_CurrentSetup+0x18) +/* 03789C 7F002D6C 8D295D18 */ lw $t1, %lo(g_CurrentSetup+0x18)($t1) /* 0378A0 7F002D70 01044023 */ subu $t0, $t0, $a0 /* 0378A4 7F002D74 00084080 */ sll $t0, $t0, 2 /* 0378A8 7F002D78 10000009 */ b .L7F002DA0 /* 0378AC 7F002D7C 01091821 */ addu $v1, $t0, $t1 .L7F002D80: -/* 0378B0 7F002D80 3C0B8007 */ lui $t3, %hi(g_chraiCurrentSetup+0x1C) -/* 0378B4 7F002D84 8D6B5D1C */ lw $t3, %lo(g_chraiCurrentSetup+0x1C)($t3) +/* 0378B0 7F002D80 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0x1C) +/* 0378B4 7F002D84 8D6B5D1C */ lw $t3, %lo(g_CurrentSetup+0x1C)($t3) /* 0378B8 7F002D88 01445021 */ addu $t2, $t2, $a0 /* 0378BC 7F002D8C 000A5080 */ sll $t2, $t2, 2 /* 0378C0 7F002D90 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -2254,15 +2226,15 @@ glabel setupAutogun /* 0356BC 7F002CCC 00044080 */ sll $t0, $a0, 2 /* 0356C0 7F002CD0 01044023 */ subu $t0, $t0, $a0 /* 0356C4 7F002CD4 00084080 */ sll $t0, $t0, 2 -/* 0356C8 7F002CD8 3C098006 */ lui $t1, %hi(g_chraiCurrentSetup+0x18) # $t1, 0x8006 -/* 0356CC 7F002CDC 8D294C58 */ lw $t1, %lo(g_chraiCurrentSetup+0x18)($t1) +/* 0356C8 7F002CD8 3C098006 */ lui $t1, %hi(g_CurrentSetup+0x18) # $t1, 0x8006 +/* 0356CC 7F002CDC 8D294C58 */ lw $t1, %lo(g_CurrentSetup+0x18)($t1) /* 0356D0 7F002CE0 01044023 */ subu $t0, $t0, $a0 /* 0356D4 7F002CE4 00084080 */ sll $t0, $t0, 2 /* 0356D8 7F002CE8 10000009 */ b .L7F002D10 /* 0356DC 7F002CEC 01091821 */ addu $v1, $t0, $t1 .L7F002CF0: -/* 0356E0 7F002CF0 3C0B8006 */ lui $t3, %hi(g_chraiCurrentSetup+0x1C) # $t3, 0x8006 -/* 0356E4 7F002CF4 8D6B4C5C */ lw $t3, %lo(g_chraiCurrentSetup+0x1C)($t3) +/* 0356E0 7F002CF0 3C0B8006 */ lui $t3, %hi(g_CurrentSetup+0x1C) # $t3, 0x8006 +/* 0356E4 7F002CF4 8D6B4C5C */ lw $t3, %lo(g_CurrentSetup+0x1C)($t3) /* 0356E8 7F002CF8 01445021 */ addu $t2, $t2, $a0 /* 0356EC 7F002CFC 000A5080 */ sll $t2, $t2, 2 /* 0356F0 7F002D00 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -2326,7 +2298,7 @@ void setupSingleMonitor(s32 arg0, void* monitor, s32 cmdindex) modelLoad(modelnum); scale = monitor->extrascale * (1.0f / 256.0f); - monitor->unk74 = (bitwise s32) ((f32) monitor->unk74 / 65536.0f); + monitor->unk74 = (bitwise s32) ((f32) monitor->unk74 / M_U16_MAX_VALUE_F); if (getPlayerCount() >= 2) { monitor->hidden2 |= 4; @@ -2848,9 +2820,9 @@ glabel setupDoor /* 037FEC 7F0034BC AFA401D0 */ sw $a0, 0x1d0($sp) /* 037FF0 7F0034C0 86390006 */ lh $t9, 6($s1) /* 037FF4 7F0034C4 8E230008 */ lw $v1, 8($s1) -/* 037FF8 7F0034C8 3C088007 */ lui $t0, %hi(g_chraiCurrentSetup+0x1C) +/* 037FF8 7F0034C8 3C088007 */ lui $t0, %hi(g_CurrentSetup+0x1C) /* 037FFC 7F0034CC 00197900 */ sll $t7, $t9, 4 -/* 038000 7F0034D0 8D085D1C */ lw $t0, %lo(g_chraiCurrentSetup+0x1C)($t0) +/* 038000 7F0034D0 8D085D1C */ lw $t0, %lo(g_CurrentSetup+0x1C)($t0) /* 038004 7F0034D4 01F97821 */ addu $t7, $t7, $t9 /* 038008 7F0034D8 000F7880 */ sll $t7, $t7, 2 /* 03800C 7F0034DC 000348C0 */ sll $t1, $v1, 3 @@ -3244,7 +3216,7 @@ glabel setupDoor /* 0385D8 7F003AA8 00000000 */ nop /* 0385DC 7F003AAC 45020004 */ bc1fl .L7F003AC0 /* 0385E0 7F003AB0 8E020014 */ lw $v0, 0x14($s0) -/* 0385E4 7F003AB4 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 0385E4 7F003AB4 0FC14D71 */ jal doorDeactivatePortal /* 0385E8 7F003AB8 02202025 */ move $a0, $s1 /* 0385EC 7F003ABC 8E020014 */ lw $v0, 0x14($s0) .L7F003AC0: @@ -3364,9 +3336,9 @@ glabel setupDoor /* 035E1C 7F00342C AFA401D0 */ sw $a0, 0x1d0($sp) /* 035E20 7F003430 86390006 */ lh $t9, 6($s1) /* 035E24 7F003434 8E230008 */ lw $v1, 8($s1) -/* 035E28 7F003438 3C088006 */ lui $t0, %hi(g_chraiCurrentSetup+0x1C) # $t0, 0x8006 +/* 035E28 7F003438 3C088006 */ lui $t0, %hi(g_CurrentSetup+0x1C) # $t0, 0x8006 /* 035E2C 7F00343C 00197900 */ sll $t7, $t9, 4 -/* 035E30 7F003440 8D084C5C */ lw $t0, %lo(g_chraiCurrentSetup+0x1C)($t0) +/* 035E30 7F003440 8D084C5C */ lw $t0, %lo(g_CurrentSetup+0x1C)($t0) /* 035E34 7F003444 01F97821 */ addu $t7, $t7, $t9 /* 035E38 7F003448 000F7880 */ sll $t7, $t7, 2 /* 035E3C 7F00344C 000348C0 */ sll $t1, $v1, 3 @@ -3767,7 +3739,7 @@ glabel setupDoor /* 036424 7F003A34 00000000 */ nop /* 036428 7F003A38 45020004 */ bc1fl .L7F003A4C /* 03642C 7F003A3C 8E020014 */ lw $v0, 0x14($s0) -/* 036430 7F003A40 0FC14E29 */ jal sub_GAME_7F0535C4 +/* 036430 7F003A40 0FC14E29 */ jal doorDeactivatePortal /* 036434 7F003A44 02202025 */ move $a0, $s1 /* 036438 7F003A48 8E020014 */ lw $v0, 0x14($s0) .L7F003A4C: @@ -4076,8 +4048,8 @@ glabel proplvreset2 /* 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 +/* 03889C 7F003D6C 3C038007 */ lui $v1, %hi(g_ptrStageSetupFile) +/* 0388A0 7F003D70 24635D28 */ addiu $v1, %lo(g_ptrStageSetupFile) # 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 @@ -4085,8 +4057,8 @@ glabel proplvreset2 /* 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(g_chraiCurrentSetup+0) -/* 0388C4 7F003D94 24E75D00 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d00 +/* 0388C0 7F003D90 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) +/* 0388C4 7F003D94 24E75D00 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d00 /* 0388C8 7F003D98 022C6821 */ addu $t5, $s1, $t4 /* 0388CC 7F003D9C ACED0000 */ sw $t5, ($a3) /* 0388D0 7F003DA0 8E2E0004 */ lw $t6, 4($s1) @@ -4214,8 +4186,8 @@ glabel proplvreset2 /* 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(g_chraiCurrentSetup+0) -/* 038A98 7F003F68 24E75D00 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d00 +/* 038A94 7F003F64 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) +/* 038A98 7F003F68 24E75D00 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d00 /* 038A9C 7F003F6C A4C30006 */ sh $v1, 6($a2) .L7F003F70: /* 038AA0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) @@ -4230,8 +4202,8 @@ glabel proplvreset2 /* 038AC0 7F003F90 00000000 */ nop /* 038AC4 7F003F94 0FC2D20C */ jal get_room_data_float2 /* 038AC8 7F003F98 00000000 */ nop -/* 038ACC 7F003F9C 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+0x18) -/* 038AD0 7F003FA0 8E105D18 */ lw $s0, %lo(g_chraiCurrentSetup+0x18)($s0) +/* 038ACC 7F003F9C 3C108007 */ lui $s0, %hi(g_CurrentSetup+0x18) +/* 038AD0 7F003FA0 8E105D18 */ lw $s0, %lo(g_CurrentSetup+0x18)($s0) /* 038AD4 7F003FA4 46000086 */ mov.s $f2, $f0 /* 038AD8 7F003FA8 8E020024 */ lw $v0, 0x24($s0) /* 038ADC 7F003FAC 10400015 */ beqz $v0, .L7F004004 @@ -4258,15 +4230,15 @@ glabel proplvreset2 /* 038B2C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 /* 038B30 7F004000 C6060000 */ lwc1 $f6, ($s0) .L7F004004: -/* 038B34 7F004004 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) -/* 038B38 7F004008 24E75D00 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d00 +/* 038B34 7F004004 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) +/* 038B38 7F004008 24E75D00 */ addiu $a3, %lo(g_CurrentSetup+0) # 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(g_chraiCurrentSetup+0) -/* 038B54 7F004024 24E75D00 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d00 +/* 038B50 7F004020 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) +/* 038B54 7F004024 24E75D00 */ addiu $a3, %lo(g_CurrentSetup+0) # 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) @@ -4311,8 +4283,8 @@ glabel proplvreset2 /* 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(g_chraiCurrentSetup+0) -/* 038C08 7F0040D8 24E75D00 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d00 +/* 038C04 7F0040D4 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) +/* 038C08 7F0040D8 24E75D00 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d00 /* 038C0C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) .L7F0040E0: /* 038C10 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 @@ -4457,8 +4429,8 @@ glabel proplvreset2 /* 038E18 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 /* 038E1C 7F0042EC 00000000 */ nop .L7F0042F0: -/* 038E20 7F0042F0 3C0B8007 */ lui $t3, %hi(g_chraiCurrentSetup+0x0c) -/* 038E24 7F0042F4 8D6B5D0C */ lw $t3, %lo(g_chraiCurrentSetup+0x0c)($t3) +/* 038E20 7F0042F0 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0x0c) +/* 038E24 7F0042F4 8D6B5D0C */ lw $t3, %lo(g_CurrentSetup+0x0c)($t3) /* 038E28 7F0042F8 116002DF */ beqz $t3, .L7F004E78 /* 038E2C 7F0042FC 00000000 */ nop /* 038E30 7F004300 0FC2FF04 */ jal lvlGetSelectedDifficulty @@ -4477,8 +4449,8 @@ glabel proplvreset2 /* 038E64 7F004334 01CFC004 */ sllv $t8, $t7, $t6 /* 038E68 7F004338 0298A025 */ or $s4, $s4, $t8 .L7F00433C: -/* 038E6C 7F00433C 3C128007 */ lui $s2, %hi(g_chraiCurrentSetup+0x0c) -/* 038E70 7F004340 8E525D0C */ lw $s2, %lo(g_chraiCurrentSetup+0x0c)($s2) +/* 038E6C 7F00433C 3C128007 */ lui $s2, %hi(g_CurrentSetup+0x0c) +/* 038E70 7F004340 8E525D0C */ lw $s2, %lo(g_CurrentSetup+0x0c)($s2) /* 038E74 7F004344 24010030 */ li $at, 48 /* 038E78 7F004348 00009825 */ move $s3, $zero /* 038E7C 7F00434C 92430003 */ lbu $v1, 3($s2) @@ -4685,12 +4657,12 @@ type2F_tinted_glass: /* 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(g_chraiCurrentSetup+0x1C) +/* 039170 7F004640 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0x1C) /* 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(g_chraiCurrentSetup+0x1C)($t3) +/* 039184 7F004654 8D6B5D1C */ lw $t3, %lo(g_CurrentSetup+0x1C)($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 @@ -4866,7 +4838,7 @@ type27_wheeled_vehicle: /* 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 +/* 03941C 7F0048EC 0FC1B1E7 */ jal modelGetNodeRwData /* 039420 7F0048F0 00000000 */ nop /* 039424 7F0048F4 8E490008 */ lw $t1, 8($s2) /* 039428 7F0048F8 3C011000 */ li $at, 0x10000000 # 0.000000 @@ -5020,8 +4992,8 @@ other_obj_expand: /* 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(g_chraiCurrentSetup+0x0c) -/* 039654 7F004B24 8E525D0C */ lw $s2, %lo(g_chraiCurrentSetup+0x0c)($s2) +/* 039650 7F004B20 3C128007 */ lui $s2, %hi(g_CurrentSetup+0x0c) +/* 039654 7F004B24 8E525D0C */ lw $s2, %lo(g_CurrentSetup+0x0c)($s2) /* 039658 7F004B28 00009825 */ move $s3, $zero /* 03965C 7F004B2C 92430003 */ lbu $v1, 3($s2) .L7F004B30: @@ -5217,26 +5189,26 @@ other_obj_expand: /* 039938 7F004E08 1000001B */ b .L7F004E78 /* 03993C 7F004E0C 00000000 */ nop .L7F004E10: -/* 039940 7F004E10 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0) -/* 039944 7F004E14 AC205D00 */ sw $zero, %lo(g_chraiCurrentSetup+0)($at) -/* 039948 7F004E18 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+4) -/* 03994C 7F004E1C AC205D04 */ sw $zero, %lo(g_chraiCurrentSetup+4)($at) -/* 039950 7F004E20 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+8) -/* 039954 7F004E24 AC205D08 */ sw $zero, %lo(g_chraiCurrentSetup+8)($at) -/* 039958 7F004E28 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x0c) -/* 03995C 7F004E2C AC205D0C */ sw $zero, %lo(g_chraiCurrentSetup+0x0c)($at) -/* 039960 7F004E30 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x10) -/* 039964 7F004E34 AC205D10 */ sw $zero, %lo(g_chraiCurrentSetup+0x10)($at) -/* 039968 7F004E38 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x14) -/* 03996C 7F004E3C AC205D14 */ sw $zero, %lo(g_chraiCurrentSetup+0x14)($at) -/* 039970 7F004E40 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x18) -/* 039974 7F004E44 AC205D18 */ sw $zero, %lo(g_chraiCurrentSetup+0x18)($at) -/* 039978 7F004E48 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x1C) -/* 03997C 7F004E4C AC205D1C */ sw $zero, %lo(g_chraiCurrentSetup+0x1C)($at) -/* 039980 7F004E50 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x20) -/* 039984 7F004E54 AC205D20 */ sw $zero, %lo(g_chraiCurrentSetup+0x20)($at) -/* 039988 7F004E58 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x24) -/* 03998C 7F004E5C AC205D24 */ sw $zero, %lo(g_chraiCurrentSetup+0x24)($at) +/* 039940 7F004E10 3C018007 */ lui $at, %hi(g_CurrentSetup+0) +/* 039944 7F004E14 AC205D00 */ sw $zero, %lo(g_CurrentSetup+0)($at) +/* 039948 7F004E18 3C018007 */ lui $at, %hi(g_CurrentSetup+4) +/* 03994C 7F004E1C AC205D04 */ sw $zero, %lo(g_CurrentSetup+4)($at) +/* 039950 7F004E20 3C018007 */ lui $at, %hi(g_CurrentSetup+8) +/* 039954 7F004E24 AC205D08 */ sw $zero, %lo(g_CurrentSetup+8)($at) +/* 039958 7F004E28 3C018007 */ lui $at, %hi(g_CurrentSetup+0x0c) +/* 03995C 7F004E2C AC205D0C */ sw $zero, %lo(g_CurrentSetup+0x0c)($at) +/* 039960 7F004E30 3C018007 */ lui $at, %hi(g_CurrentSetup+0x10) +/* 039964 7F004E34 AC205D10 */ sw $zero, %lo(g_CurrentSetup+0x10)($at) +/* 039968 7F004E38 3C018007 */ lui $at, %hi(g_CurrentSetup+0x14) +/* 03996C 7F004E3C AC205D14 */ sw $zero, %lo(g_CurrentSetup+0x14)($at) +/* 039970 7F004E40 3C018007 */ lui $at, %hi(g_CurrentSetup+0x18) +/* 039974 7F004E44 AC205D18 */ sw $zero, %lo(g_CurrentSetup+0x18)($at) +/* 039978 7F004E48 3C018007 */ lui $at, %hi(g_CurrentSetup+0x1C) +/* 03997C 7F004E4C AC205D1C */ sw $zero, %lo(g_CurrentSetup+0x1C)($at) +/* 039980 7F004E50 3C018007 */ lui $at, %hi(g_CurrentSetup+0x20) +/* 039984 7F004E54 AC205D20 */ sw $zero, %lo(g_CurrentSetup+0x20)($at) +/* 039988 7F004E58 3C018007 */ lui $at, %hi(g_CurrentSetup+0x24) +/* 03998C 7F004E5C AC205D24 */ sw $zero, %lo(g_CurrentSetup+0x24)($at) /* 039990 7F004E60 0FC003AE */ jal alloc_init_GUARDdata_entries /* 039994 7F004E64 00002025 */ move $a0, $zero /* 039998 7F004E68 0FC01550 */ jal sub_GAME_7F005540 @@ -5469,8 +5441,8 @@ glabel jpt_8004F02C /* 0388D0 7F003D60 24060100 */ li $a2, 256 /* 0388D4 7F003D64 0FC2F62D */ jal _load_resource_named_to_membank /* 0388D8 7F003D68 24070004 */ li $a3, 4 -/* 0388DC 7F003D6C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D28) # $v1, 0x8007 -/* 0388E0 7F003D70 24635D68 */ addiu $v1, %lo(dword_CODE_bss_80075D28) # addiu $v1, $v1, 0x5d68 +/* 0388DC 7F003D6C 3C038007 */ lui $v1, %hi(g_ptrStageSetupFile) # $v1, 0x8007 +/* 0388E0 7F003D70 24635D68 */ addiu $v1, %lo(g_ptrStageSetupFile) # addiu $v1, $v1, 0x5d68 /* 0388E4 7F003D74 AC620000 */ sw $v0, ($v1) /* 0388E8 7F003D78 00408825 */ move $s1, $v0 /* 0388EC 7F003D7C 0FC308A4 */ jal get_textbank_number_for_stagenum @@ -5478,8 +5450,8 @@ glabel jpt_8004F02C /* 0388F4 7F003D84 0FC30A6E */ jal load_mission_text_bank /* 0388F8 7F003D88 00402025 */ move $a0, $v0 /* 0388FC 7F003D8C 8E2C0000 */ lw $t4, ($s1) -/* 038900 7F003D90 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8007 -/* 038904 7F003D94 24E75D40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d40 +/* 038900 7F003D90 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8007 +/* 038904 7F003D94 24E75D40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d40 /* 038908 7F003D98 022C6821 */ addu $t5, $s1, $t4 /* 03890C 7F003D9C ACED0000 */ sw $t5, ($a3) /* 038910 7F003DA0 8E2E0004 */ lw $t6, 4($s1) @@ -5607,8 +5579,8 @@ glabel jpt_8004F02C /* 038AC8 7F003F58 24420004 */ addiu $v0, $v0, 4 /* 038ACC 7F003F5C 0523FFFD */ bgezl $t1, .L7F003F54 /* 038AD0 7F003F60 8C490004 */ lw $t1, 4($v0) -/* 038AD4 7F003F64 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8007 -/* 038AD8 7F003F68 24E75D40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d40 +/* 038AD4 7F003F64 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8007 +/* 038AD8 7F003F68 24E75D40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d40 /* 038ADC 7F003F6C A4C30006 */ sh $v1, 6($a2) .L7F003F70: /* 038AE0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) @@ -5623,8 +5595,8 @@ glabel jpt_8004F02C /* 038B00 7F003F90 00000000 */ nop /* 038B04 7F003F94 0FC2D4F8 */ jal get_room_data_float2 /* 038B08 7F003F98 00000000 */ nop -/* 038B0C 7F003F9C 3C108007 */ lui $s0, %hi(g_chraiCurrentSetup+0x18) # $s0, 0x8007 -/* 038B10 7F003FA0 8E105D58 */ lw $s0, %lo(g_chraiCurrentSetup+0x18)($s0) +/* 038B0C 7F003F9C 3C108007 */ lui $s0, %hi(g_CurrentSetup+0x18) # $s0, 0x8007 +/* 038B10 7F003FA0 8E105D58 */ lw $s0, %lo(g_CurrentSetup+0x18)($s0) /* 038B14 7F003FA4 46000086 */ mov.s $f2, $f0 /* 038B18 7F003FA8 8E020024 */ lw $v0, 0x24($s0) /* 038B1C 7F003FAC 10400015 */ beqz $v0, .L7F004004 @@ -5651,15 +5623,15 @@ glabel jpt_8004F02C /* 038B6C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 /* 038B70 7F004000 C6060000 */ lwc1 $f6, ($s0) .L7F004004: -/* 038B74 7F004004 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8007 -/* 038B78 7F004008 24E75D40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d40 +/* 038B74 7F004004 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8007 +/* 038B78 7F004008 24E75D40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d40 /* 038B7C 7F00400C 8CEC001C */ lw $t4, 0x1c($a3) /* 038B80 7F004010 51800033 */ beql $t4, $zero, .L7F0040E0 /* 038B84 7F004014 8CE50020 */ lw $a1, 0x20($a3) /* 038B88 7F004018 0FC2D4F8 */ jal get_room_data_float2 /* 038B8C 7F00401C 00000000 */ nop -/* 038B90 7F004020 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8007 -/* 038B94 7F004024 24E75D40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d40 +/* 038B90 7F004020 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8007 +/* 038B94 7F004024 24E75D40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d40 /* 038B98 7F004028 8CF0001C */ lw $s0, 0x1c($a3) /* 038B9C 7F00402C 46000086 */ mov.s $f2, $f0 /* 038BA0 7F004030 8E020024 */ lw $v0, 0x24($s0) @@ -5704,8 +5676,8 @@ glabel jpt_8004F02C /* 038C38 7F0040C8 C7A20150 */ lwc1 $f2, 0x150($sp) /* 038C3C 7F0040CC 5440FFDC */ bnezl $v0, .L7F004040 /* 038C40 7F0040D0 C6060000 */ lwc1 $f6, ($s0) -/* 038C44 7F0040D4 3C078007 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8007 -/* 038C48 7F0040D8 24E75D40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x5d40 +/* 038C44 7F0040D4 3C078007 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8007 +/* 038C48 7F0040D8 24E75D40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x5d40 /* 038C4C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) .L7F0040E0: /* 038C50 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 @@ -5850,8 +5822,8 @@ glabel jpt_8004F02C /* 038E58 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 /* 038E5C 7F0042EC 00000000 */ nop .L7F0042F0: -/* 038E60 7F0042F0 3C0B8007 */ lui $t3, %hi(g_chraiCurrentSetup+0x0c) # $t3, 0x8007 -/* 038E64 7F0042F4 8D6B5D4C */ lw $t3, %lo(g_chraiCurrentSetup+0x0c)($t3) +/* 038E60 7F0042F0 3C0B8007 */ lui $t3, %hi(g_CurrentSetup+0x0c) # $t3, 0x8007 +/* 038E64 7F0042F4 8D6B5D4C */ lw $t3, %lo(g_CurrentSetup+0x0c)($t3) /* 038E68 7F0042F8 116002E3 */ beqz $t3, .L7F004E88 /* 038E6C 7F0042FC 00000000 */ nop /* 038E70 7F004300 0FC3021E */ jal lvlGetSelectedDifficulty @@ -5870,8 +5842,8 @@ glabel jpt_8004F02C /* 038EA4 7F004334 01CFC004 */ sllv $t8, $t7, $t6 /* 038EA8 7F004338 0298A025 */ or $s4, $s4, $t8 .L7F00433C: -/* 038EAC 7F00433C 3C128007 */ lui $s2, %hi(g_chraiCurrentSetup+0x0c) # $s2, 0x8007 -/* 038EB0 7F004340 8E525D4C */ lw $s2, %lo(g_chraiCurrentSetup+0x0c)($s2) +/* 038EAC 7F00433C 3C128007 */ lui $s2, %hi(g_CurrentSetup+0x0c) # $s2, 0x8007 +/* 038EB0 7F004340 8E525D4C */ lw $s2, %lo(g_CurrentSetup+0x0c)($s2) /* 038EB4 7F004344 24010030 */ li $at, 48 /* 038EB8 7F004348 00009825 */ move $s3, $zero /* 038EBC 7F00434C 92430003 */ lbu $v1, 3($s2) @@ -6083,12 +6055,12 @@ type2F_tinted_glass: /* 0391B4 7F004644 05430039 */ bgezl $t2, .L7F00472C /* 0391B8 7F004648 02A02025 */ move $a0, $s5 /* 0391BC 7F00464C 86420006 */ lh $v0, 6($s2) -/* 0391C0 7F004650 3C0D8007 */ lui $t5, %hi(g_chraiCurrentSetup+0x1C) # $t5, 0x8007 +/* 0391C0 7F004650 3C0D8007 */ lui $t5, %hi(g_CurrentSetup+0x1C) # $t5, 0x8007 /* 0391C4 7F004654 27A50118 */ addiu $a1, $sp, 0x118 /* 0391C8 7F004658 28412710 */ slti $at, $v0, 0x2710 /* 0391CC 7F00465C 14200032 */ bnez $at, .L7F004728 /* 0391D0 7F004660 00025900 */ sll $t3, $v0, 4 -/* 0391D4 7F004664 8DAD5D5C */ lw $t5, %lo(g_chraiCurrentSetup+0x1C)($t5) +/* 0391D4 7F004664 8DAD5D5C */ lw $t5, %lo(g_CurrentSetup+0x1C)($t5) /* 0391D8 7F004668 01625821 */ addu $t3, $t3, $v0 /* 0391DC 7F00466C 000B5880 */ sll $t3, $t3, 2 /* 0391E0 7F004670 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -6264,7 +6236,7 @@ type27_wheeled_vehicle: /* 039460 7F0048F0 8D250014 */ lw $a1, 0x14($t1) /* 039464 7F0048F4 50A00009 */ beql $a1, $zero, .L7F00491C /* 039468 7F0048F8 3C01BF80 */ lui $at, 0xbf80 -/* 03946C 7F0048FC 0FC1B363 */ jal extract_id_from_object_structure_microcode +/* 03946C 7F0048FC 0FC1B363 */ jal modelGetNodeRwData /* 039470 7F004900 00000000 */ nop /* 039474 7F004904 8E590008 */ lw $t9, 8($s2) /* 039478 7F004908 3C011000 */ li $at, 0x10000000 # 0.000000 @@ -6418,8 +6390,8 @@ other_obj_expand: /* 039694 7F004B24 26730001 */ addiu $s3, $s3, 1 /* 039698 7F004B28 5461FE0F */ bnel $v1, $at, .L7F004368 /* 03969C 7F004B2C 2468FFFF */ addiu $t0, $v1, -1 -/* 0396A0 7F004B30 3C128007 */ lui $s2, %hi(g_chraiCurrentSetup+0x0c) # $s2, 0x8007 -/* 0396A4 7F004B34 8E525D4C */ lw $s2, %lo(g_chraiCurrentSetup+0x0c)($s2) +/* 0396A0 7F004B30 3C128007 */ lui $s2, %hi(g_CurrentSetup+0x0c) # $s2, 0x8007 +/* 0396A4 7F004B34 8E525D4C */ lw $s2, %lo(g_CurrentSetup+0x0c)($s2) /* 0396A8 7F004B38 00009825 */ move $s3, $zero /* 0396AC 7F004B3C 92430003 */ lbu $v1, 3($s2) .L7F004B40: @@ -6615,26 +6587,26 @@ other_obj_expand: /* 039988 7F004E18 1000001B */ b .L7F004E88 /* 03998C 7F004E1C 00000000 */ nop .L7F004E20: -/* 039990 7F004E20 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0) # $at, 0x8007 -/* 039994 7F004E24 AC205D40 */ sw $zero, %lo(g_chraiCurrentSetup+0)($at) -/* 039998 7F004E28 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+4) # $at, 0x8007 -/* 03999C 7F004E2C AC205D44 */ sw $zero, %lo(g_chraiCurrentSetup+4)($at) -/* 0399A0 7F004E30 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+8) # $at, 0x8007 -/* 0399A4 7F004E34 AC205D48 */ sw $zero, %lo(g_chraiCurrentSetup+8)($at) -/* 0399A8 7F004E38 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x0c) # $at, 0x8007 -/* 0399AC 7F004E3C AC205D4C */ sw $zero, %lo(g_chraiCurrentSetup+0x0c)($at) -/* 0399B0 7F004E40 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x10) # $at, 0x8007 -/* 0399B4 7F004E44 AC205D50 */ sw $zero, %lo(g_chraiCurrentSetup+0x10)($at) -/* 0399B8 7F004E48 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x14) # $at, 0x8007 -/* 0399BC 7F004E4C AC205D54 */ sw $zero, %lo(g_chraiCurrentSetup+0x14)($at) -/* 0399C0 7F004E50 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x18) # $at, 0x8007 -/* 0399C4 7F004E54 AC205D58 */ sw $zero, %lo(g_chraiCurrentSetup+0x18)($at) -/* 0399C8 7F004E58 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x1C) # $at, 0x8007 -/* 0399CC 7F004E5C AC205D5C */ sw $zero, %lo(g_chraiCurrentSetup+0x1C)($at) -/* 0399D0 7F004E60 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x20) # $at, 0x8007 -/* 0399D4 7F004E64 AC205D60 */ sw $zero, %lo(g_chraiCurrentSetup+0x20)($at) -/* 0399D8 7F004E68 3C018007 */ lui $at, %hi(g_chraiCurrentSetup+0x24) # $at, 0x8007 -/* 0399DC 7F004E6C AC205D64 */ sw $zero, %lo(g_chraiCurrentSetup+0x24)($at) +/* 039990 7F004E20 3C018007 */ lui $at, %hi(g_CurrentSetup+0) # $at, 0x8007 +/* 039994 7F004E24 AC205D40 */ sw $zero, %lo(g_CurrentSetup+0)($at) +/* 039998 7F004E28 3C018007 */ lui $at, %hi(g_CurrentSetup+4) # $at, 0x8007 +/* 03999C 7F004E2C AC205D44 */ sw $zero, %lo(g_CurrentSetup+4)($at) +/* 0399A0 7F004E30 3C018007 */ lui $at, %hi(g_CurrentSetup+8) # $at, 0x8007 +/* 0399A4 7F004E34 AC205D48 */ sw $zero, %lo(g_CurrentSetup+8)($at) +/* 0399A8 7F004E38 3C018007 */ lui $at, %hi(g_CurrentSetup+0x0c) # $at, 0x8007 +/* 0399AC 7F004E3C AC205D4C */ sw $zero, %lo(g_CurrentSetup+0x0c)($at) +/* 0399B0 7F004E40 3C018007 */ lui $at, %hi(g_CurrentSetup+0x10) # $at, 0x8007 +/* 0399B4 7F004E44 AC205D50 */ sw $zero, %lo(g_CurrentSetup+0x10)($at) +/* 0399B8 7F004E48 3C018007 */ lui $at, %hi(g_CurrentSetup+0x14) # $at, 0x8007 +/* 0399BC 7F004E4C AC205D54 */ sw $zero, %lo(g_CurrentSetup+0x14)($at) +/* 0399C0 7F004E50 3C018007 */ lui $at, %hi(g_CurrentSetup+0x18) # $at, 0x8007 +/* 0399C4 7F004E54 AC205D58 */ sw $zero, %lo(g_CurrentSetup+0x18)($at) +/* 0399C8 7F004E58 3C018007 */ lui $at, %hi(g_CurrentSetup+0x1C) # $at, 0x8007 +/* 0399CC 7F004E5C AC205D5C */ sw $zero, %lo(g_CurrentSetup+0x1C)($at) +/* 0399D0 7F004E60 3C018007 */ lui $at, %hi(g_CurrentSetup+0x20) # $at, 0x8007 +/* 0399D4 7F004E64 AC205D60 */ sw $zero, %lo(g_CurrentSetup+0x20)($at) +/* 0399D8 7F004E68 3C018007 */ lui $at, %hi(g_CurrentSetup+0x24) # $at, 0x8007 +/* 0399DC 7F004E6C AC205D64 */ sw $zero, %lo(g_CurrentSetup+0x24)($at) /* 0399E0 7F004E70 0FC003AE */ jal alloc_init_GUARDdata_entries /* 0399E4 7F004E74 00002025 */ move $a0, $zero /* 0399E8 7F004E78 0FC01558 */ jal sub_GAME_7F005540 @@ -6867,8 +6839,8 @@ glabel proplvreset2 /* 0366DC 7F003CEC 24060100 */ li $a2, 256 /* 0366E0 7F003CF0 0FC2F053 */ jal _load_resource_named_to_membank /* 0366E4 7F003CF4 24070004 */ li $a3, 4 -/* 0366E8 7F003CF8 3C038006 */ lui $v1, %hi(dword_CODE_bss_80075D28) # $v1, 0x8006 -/* 0366EC 7F003CFC 24634C68 */ addiu $v1, %lo(dword_CODE_bss_80075D28) # addiu $v1, $v1, 0x4c68 +/* 0366E8 7F003CF8 3C038006 */ lui $v1, %hi(g_ptrStageSetupFile) # $v1, 0x8006 +/* 0366EC 7F003CFC 24634C68 */ addiu $v1, %lo(g_ptrStageSetupFile) # addiu $v1, $v1, 0x4c68 /* 0366F0 7F003D00 AC620000 */ sw $v0, ($v1) /* 0366F4 7F003D04 00408825 */ move $s1, $v0 /* 0366F8 7F003D08 0FC302B0 */ jal get_textbank_number_for_stagenum @@ -6876,8 +6848,8 @@ glabel proplvreset2 /* 036700 7F003D10 0FC3047A */ jal load_mission_text_bank /* 036704 7F003D14 00402025 */ move $a0, $v0 /* 036708 7F003D18 8E2C0000 */ lw $t4, ($s1) -/* 03670C 7F003D1C 3C078006 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8006 -/* 036710 7F003D20 24E74C40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x4c40 +/* 03670C 7F003D1C 3C078006 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8006 +/* 036710 7F003D20 24E74C40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x4c40 /* 036714 7F003D24 022C6821 */ addu $t5, $s1, $t4 /* 036718 7F003D28 ACED0000 */ sw $t5, ($a3) /* 03671C 7F003D2C 8E2E0004 */ lw $t6, 4($s1) @@ -7005,8 +6977,8 @@ glabel proplvreset2 /* 0368D4 7F003EE4 24420004 */ addiu $v0, $v0, 4 /* 0368D8 7F003EE8 0523FFFD */ bgezl $t1, .L7F003EE0 /* 0368DC 7F003EEC 8C490004 */ lw $t1, 4($v0) -/* 0368E0 7F003EF0 3C078006 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8006 -/* 0368E4 7F003EF4 24E74C40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x4c40 +/* 0368E0 7F003EF0 3C078006 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8006 +/* 0368E4 7F003EF4 24E74C40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x4c40 /* 0368E8 7F003EF8 A4C30006 */ sh $v1, 6($a2) .L7F003EFC: /* 0368EC 7F003EFC 8CF90010 */ lw $t9, 0x10($a3) @@ -7021,8 +6993,8 @@ glabel proplvreset2 /* 03690C 7F003F1C 00000000 */ nop /* 036910 7F003F20 0FC2CEDB */ jal get_room_data_float2 /* 036914 7F003F24 00000000 */ nop -/* 036918 7F003F28 3C108006 */ lui $s0, %hi(g_chraiCurrentSetup+0x18) # $s0, 0x8006 -/* 03691C 7F003F2C 8E104C58 */ lw $s0, %lo(g_chraiCurrentSetup+0x18)($s0) +/* 036918 7F003F28 3C108006 */ lui $s0, %hi(g_CurrentSetup+0x18) # $s0, 0x8006 +/* 03691C 7F003F2C 8E104C58 */ lw $s0, %lo(g_CurrentSetup+0x18)($s0) /* 036920 7F003F30 46000086 */ mov.s $f2, $f0 /* 036924 7F003F34 8E020024 */ lw $v0, 0x24($s0) /* 036928 7F003F38 10400015 */ beqz $v0, .L7F003F90 @@ -7049,15 +7021,15 @@ glabel proplvreset2 /* 036978 7F003F88 5440FFEE */ bnezl $v0, .L7F003F44 /* 03697C 7F003F8C C6060000 */ lwc1 $f6, ($s0) .L7F003F90: -/* 036980 7F003F90 3C078006 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8006 -/* 036984 7F003F94 24E74C40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x4c40 +/* 036980 7F003F90 3C078006 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8006 +/* 036984 7F003F94 24E74C40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x4c40 /* 036988 7F003F98 8CEC001C */ lw $t4, 0x1c($a3) /* 03698C 7F003F9C 51800033 */ beql $t4, $zero, .L7F00406C /* 036990 7F003FA0 8CE50020 */ lw $a1, 0x20($a3) /* 036994 7F003FA4 0FC2CEDB */ jal get_room_data_float2 /* 036998 7F003FA8 00000000 */ nop -/* 03699C 7F003FAC 3C078006 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8006 -/* 0369A0 7F003FB0 24E74C40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x4c40 +/* 03699C 7F003FAC 3C078006 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8006 +/* 0369A0 7F003FB0 24E74C40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x4c40 /* 0369A4 7F003FB4 8CF0001C */ lw $s0, 0x1c($a3) /* 0369A8 7F003FB8 46000086 */ mov.s $f2, $f0 /* 0369AC 7F003FBC 8E020024 */ lw $v0, 0x24($s0) @@ -7102,8 +7074,8 @@ glabel proplvreset2 /* 036A44 7F004054 C7A20150 */ lwc1 $f2, 0x150($sp) /* 036A48 7F004058 5440FFDC */ bnezl $v0, .L7F003FCC /* 036A4C 7F00405C C6060000 */ lwc1 $f6, ($s0) -/* 036A50 7F004060 3C078006 */ lui $a3, %hi(g_chraiCurrentSetup+0) # $a3, 0x8006 -/* 036A54 7F004064 24E74C40 */ addiu $a3, %lo(g_chraiCurrentSetup+0) # addiu $a3, $a3, 0x4c40 +/* 036A50 7F004060 3C078006 */ lui $a3, %hi(g_CurrentSetup+0) # $a3, 0x8006 +/* 036A54 7F004064 24E74C40 */ addiu $a3, %lo(g_CurrentSetup+0) # addiu $a3, $a3, 0x4c40 /* 036A58 7F004068 8CE50020 */ lw $a1, 0x20($a3) .L7F00406C: /* 036A5C 7F00406C 50A00010 */ beql $a1, $zero, .L7F0040B0 @@ -7248,8 +7220,8 @@ glabel proplvreset2 /* 036C64 7F004274 1420FFF6 */ bnez $at, .L7F004250 /* 036C68 7F004278 00000000 */ nop .L7F00427C: -/* 036C6C 7F00427C 3C0B8006 */ lui $t3, %hi(g_chraiCurrentSetup+0x0c) # $t3, 0x8006 -/* 036C70 7F004280 8D6B4C4C */ lw $t3, %lo(g_chraiCurrentSetup+0x0c)($t3) +/* 036C6C 7F00427C 3C0B8006 */ lui $t3, %hi(g_CurrentSetup+0x0c) # $t3, 0x8006 +/* 036C70 7F004280 8D6B4C4C */ lw $t3, %lo(g_CurrentSetup+0x0c)($t3) /* 036C74 7F004284 116002E1 */ beqz $t3, .L7F004E88 /* 036C78 7F004288 00000000 */ nop /* 036C7C 7F00428C 0FC2FC21 */ jal lvlGetSelectedDifficulty @@ -7268,8 +7240,8 @@ glabel proplvreset2 /* 036CB0 7F0042C0 01CFC004 */ sllv $t8, $t7, $t6 /* 036CB4 7F0042C4 0298A025 */ or $s4, $s4, $t8 .L7F0042C8: -/* 036CB8 7F0042C8 3C128006 */ lui $s2, %hi(g_chraiCurrentSetup+0x0c) # $s2, 0x8006 -/* 036CBC 7F0042CC 8E524C4C */ lw $s2, %lo(g_chraiCurrentSetup+0x0c)($s2) +/* 036CB8 7F0042C8 3C128006 */ lui $s2, %hi(g_CurrentSetup+0x0c) # $s2, 0x8006 +/* 036CBC 7F0042CC 8E524C4C */ lw $s2, %lo(g_CurrentSetup+0x0c)($s2) /* 036CC0 7F0042D0 24010030 */ li $at, 48 /* 036CC4 7F0042D4 00009825 */ move $s3, $zero /* 036CC8 7F0042D8 92430003 */ lbu $v1, 3($s2) @@ -7482,12 +7454,12 @@ type2F_tinted_glass: /* 036FC0 7F0045D0 05430039 */ bgezl $t2, .L7F0046B8 /* 036FC4 7F0045D4 02A02025 */ move $a0, $s5 /* 036FC8 7F0045D8 86420006 */ lh $v0, 6($s2) -/* 036FCC 7F0045DC 3C0D8006 */ lui $t5, %hi(g_chraiCurrentSetup+0x1C) # $t5, 0x8006 +/* 036FCC 7F0045DC 3C0D8006 */ lui $t5, %hi(g_CurrentSetup+0x1C) # $t5, 0x8006 /* 036FD0 7F0045E0 27A50118 */ addiu $a1, $sp, 0x118 /* 036FD4 7F0045E4 28412710 */ slti $at, $v0, 0x2710 /* 036FD8 7F0045E8 14200032 */ bnez $at, .L7F0046B4 /* 036FDC 7F0045EC 00025900 */ sll $t3, $v0, 4 -/* 036FE0 7F0045F0 8DAD4C5C */ lw $t5, %lo(g_chraiCurrentSetup+0x1C)($t5) +/* 036FE0 7F0045F0 8DAD4C5C */ lw $t5, %lo(g_CurrentSetup+0x1C)($t5) /* 036FE4 7F0045F4 01625821 */ addu $t3, $t3, $v0 /* 036FE8 7F0045F8 000B5880 */ sll $t3, $t3, 2 /* 036FEC 7F0045FC 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 @@ -7661,7 +7633,7 @@ type27_wheeled_vehicle: /* 037264 7F004874 8D250014 */ lw $a1, 0x14($t1) /* 037268 7F004878 50A00009 */ beql $a1, $zero, .L7F00491C /* 03726C 7F00487C 3C01BF80 */ lui $at, 0xbf80 -/* 037270 7F004880 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 037270 7F004880 0FC1B3A3 */ jal modelGetNodeRwData /* 037274 7F004884 00000000 */ nop /* 037278 7F004888 8E590008 */ lw $t9, 8($s2) /* 03727C 7F00488C 3C011000 */ li $at, 0x10000000 # 0.000000 @@ -7815,8 +7787,8 @@ other_obj_expand: /* 037498 7F004AA8 26730001 */ addiu $s3, $s3, 1 /* 03749C 7F004AAC 5461FE11 */ bnel $v1, $at, .L7F0042F4 /* 0374A0 7F004AB0 2468FFFF */ addiu $t0, $v1, -1 -/* 0374A4 7F004AB4 3C128006 */ lui $s2, %hi(g_chraiCurrentSetup+0x0c) # $s2, 0x8006 -/* 0374A8 7F004AB8 8E524C4C */ lw $s2, %lo(g_chraiCurrentSetup+0x0c)($s2) +/* 0374A4 7F004AB4 3C128006 */ lui $s2, %hi(g_CurrentSetup+0x0c) # $s2, 0x8006 +/* 0374A8 7F004AB8 8E524C4C */ lw $s2, %lo(g_CurrentSetup+0x0c)($s2) /* 0374AC 7F004ABC 00009825 */ move $s3, $zero /* 0374B0 7F004AC0 92430003 */ lbu $v1, 3($s2) .L7F004B40: @@ -8012,26 +7984,26 @@ other_obj_expand: /* 03778C 7F004D9C 1000001B */ b .L7F004E88 /* 037790 7F004DA0 00000000 */ nop .L7F004E20: -/* 037794 7F004DA4 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0) # $at, 0x8006 -/* 037798 7F004DA8 AC204C40 */ sw $zero, %lo(g_chraiCurrentSetup+0)($at) -/* 03779C 7F004DAC 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+4) # $at, 0x8006 -/* 0377A0 7F004DB0 AC204C44 */ sw $zero, %lo(g_chraiCurrentSetup+4)($at) -/* 0377A4 7F004DB4 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+8) # $at, 0x8006 -/* 0377A8 7F004DB8 AC204C48 */ sw $zero, %lo(g_chraiCurrentSetup+8)($at) -/* 0377AC 7F004DBC 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x0c) # $at, 0x8006 -/* 0377B0 7F004DC0 AC204C4C */ sw $zero, %lo(g_chraiCurrentSetup+0x0c)($at) -/* 0377B4 7F004DC4 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x10) # $at, 0x8006 -/* 0377B8 7F004DC8 AC204C50 */ sw $zero, %lo(g_chraiCurrentSetup+0x10)($at) -/* 0377BC 7F004DCC 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x14) # $at, 0x8006 -/* 0377C0 7F004DD0 AC204C54 */ sw $zero, %lo(g_chraiCurrentSetup+0x14)($at) -/* 0377C4 7F004DD4 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x18) # $at, 0x8006 -/* 0377C8 7F004DD8 AC204C58 */ sw $zero, %lo(g_chraiCurrentSetup+0x18)($at) -/* 0377CC 7F004DDC 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x1C) # $at, 0x8006 -/* 0377D0 7F004DE0 AC204C5C */ sw $zero, %lo(g_chraiCurrentSetup+0x1C)($at) -/* 0377D4 7F004DE4 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x20) # $at, 0x8006 -/* 0377D8 7F004DE8 AC204C60 */ sw $zero, %lo(g_chraiCurrentSetup+0x20)($at) -/* 0377DC 7F004DEC 3C018006 */ lui $at, %hi(g_chraiCurrentSetup+0x24) # $at, 0x8006 -/* 0377E0 7F004DF0 AC204C64 */ sw $zero, %lo(g_chraiCurrentSetup+0x24)($at) +/* 037794 7F004DA4 3C018006 */ lui $at, %hi(g_CurrentSetup+0) # $at, 0x8006 +/* 037798 7F004DA8 AC204C40 */ sw $zero, %lo(g_CurrentSetup+0)($at) +/* 03779C 7F004DAC 3C018006 */ lui $at, %hi(g_CurrentSetup+4) # $at, 0x8006 +/* 0377A0 7F004DB0 AC204C44 */ sw $zero, %lo(g_CurrentSetup+4)($at) +/* 0377A4 7F004DB4 3C018006 */ lui $at, %hi(g_CurrentSetup+8) # $at, 0x8006 +/* 0377A8 7F004DB8 AC204C48 */ sw $zero, %lo(g_CurrentSetup+8)($at) +/* 0377AC 7F004DBC 3C018006 */ lui $at, %hi(g_CurrentSetup+0x0c) # $at, 0x8006 +/* 0377B0 7F004DC0 AC204C4C */ sw $zero, %lo(g_CurrentSetup+0x0c)($at) +/* 0377B4 7F004DC4 3C018006 */ lui $at, %hi(g_CurrentSetup+0x10) # $at, 0x8006 +/* 0377B8 7F004DC8 AC204C50 */ sw $zero, %lo(g_CurrentSetup+0x10)($at) +/* 0377BC 7F004DCC 3C018006 */ lui $at, %hi(g_CurrentSetup+0x14) # $at, 0x8006 +/* 0377C0 7F004DD0 AC204C54 */ sw $zero, %lo(g_CurrentSetup+0x14)($at) +/* 0377C4 7F004DD4 3C018006 */ lui $at, %hi(g_CurrentSetup+0x18) # $at, 0x8006 +/* 0377C8 7F004DD8 AC204C58 */ sw $zero, %lo(g_CurrentSetup+0x18)($at) +/* 0377CC 7F004DDC 3C018006 */ lui $at, %hi(g_CurrentSetup+0x1C) # $at, 0x8006 +/* 0377D0 7F004DE0 AC204C5C */ sw $zero, %lo(g_CurrentSetup+0x1C)($at) +/* 0377D4 7F004DE4 3C018006 */ lui $at, %hi(g_CurrentSetup+0x20) # $at, 0x8006 +/* 0377D8 7F004DE8 AC204C60 */ sw $zero, %lo(g_CurrentSetup+0x20)($at) +/* 0377DC 7F004DEC 3C018006 */ lui $at, %hi(g_CurrentSetup+0x24) # $at, 0x8006 +/* 0377E0 7F004DF0 AC204C64 */ sw $zero, %lo(g_CurrentSetup+0x24)($at) /* 0377E4 7F004DF4 0FC003AE */ jal alloc_init_GUARDdata_entries /* 0377E8 7F004DF8 00002025 */ move $a0, $zero /* 0377EC 7F004DFC 0FC01538 */ jal sub_GAME_7F005540 diff --git a/src/game/ramromreplay.c b/src/game/ramromreplay.c index 982bb43c..a302603a 100644 --- a/src/game/ramromreplay.c +++ b/src/game/ramromreplay.c @@ -732,14 +732,14 @@ void copy_current_ingame_registers_before_ramrom_playback(ramromfilestructure *s state->mpstage_sel = MP_stage_selected; state->gamelength = game_length; state->mp_weapon_set = getMPWeaponSet(); - state->mp_char[0] = (&player_1_char)[0]; - state->mp_char[1] = (&player_1_char)[1]; - state->mp_char[2] = (&player_1_char)[2]; - state->mp_char[3] = (&player_1_char)[3]; - state->mp_handi[0] = (&handicap_player1)[0]; - state->mp_handi[1] = (&handicap_player1)[1]; - state->mp_handi[2] = (&handicap_player1)[2]; - state->mp_handi[3] = (&handicap_player1)[3]; + state->mp_char[0] = player_char[0]; + state->mp_char[1] = player_char[1]; + state->mp_char[2] = player_char[2]; + state->mp_char[3] = player_char[3]; + state->mp_handi[0] = player_handicap[0]; + state->mp_handi[1] = player_handicap[1]; + state->mp_handi[2] = player_handicap[2]; + state->mp_handi[3] = player_handicap[3]; state->mp_contstyle[0] = controlstyle_player[0]; state->mp_contstyle[1] = controlstyle_player[1]; state->mp_contstyle[2] = controlstyle_player[2]; @@ -760,14 +760,14 @@ void copy_recorded_ramrom_registers_to_proper_place_ingame(ramromfilestructure * MP_stage_selected = state->mpstage_sel; game_length = state->gamelength; setMPWeaponSet(state->mp_weapon_set); - (&player_1_char)[0] = state->mp_char[0]; - (&player_1_char)[1] = state->mp_char[1]; - (&player_1_char)[2] = state->mp_char[2]; - (&player_1_char)[3] = state->mp_char[3]; - (&handicap_player1)[0] = state->mp_handi[0]; - (&handicap_player1)[1] = state->mp_handi[1]; - (&handicap_player1)[2] = state->mp_handi[2]; - (&handicap_player1)[3] = state->mp_handi[3]; + player_char[0] = state->mp_char[0]; + player_char[1] = state->mp_char[1]; + player_char[2] = state->mp_char[2]; + player_char[3] = state->mp_char[3]; + player_handicap[0] = state->mp_handi[0]; + player_handicap[1] = state->mp_handi[1]; + player_handicap[2] = state->mp_handi[2]; + player_handicap[3] = state->mp_handi[3]; controlstyle_player[0] = state->mp_contstyle[0]; controlstyle_player[1] = state->mp_contstyle[1]; controlstyle_player[2] = state->mp_contstyle[2]; diff --git a/src/game/spectrum.c b/src/game/spectrum.c index 346c54f8..91283ed5 100644 --- a/src/game/spectrum.c +++ b/src/game/spectrum.c @@ -96,9 +96,7 @@ u8 spec_OUT_port[] = 0xFF, 0x00, 0x00, 0x00 }; -// rodata -//8005C114 -const char aEmDataSpec_rom_seg_rz[] = "em/data/spec_rom.seg.rz"; + @@ -756,7 +754,9 @@ glabel spectrum_p1controller_to_kempston - +// rodata +//8005C114 +const char aEmDataSpec_rom_seg_rz[] = "em/data/spec_rom.seg.rz"; #ifdef NONMATCHING void init_spectrum_game(void) { diff --git a/src/game/stan.c b/src/game/stan.c index ea20cbb0..c36d1b7f 100644 --- a/src/game/stan.c +++ b/src/game/stan.c @@ -162,27 +162,11 @@ s32 stanGetLocusCount(struct StandTileLocusCallbackRecord *arg0); // end forward declarations - - - -#ifdef NONMATCHING -f32 sub_GAME_7F0AEF30(f32 arg0) { - // Node 0 - return arg0; +s32 stanBitwiseCastF32(f32 arg0) +{ + // disgusting + return *(s32*)&arg0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0AEF30 -/* 0E3A60 7F0AEF30 E7AC0000 */ swc1 $f12, ($sp) -/* 0E3A64 7F0AEF34 03E00008 */ jr $ra -/* 0E3A68 7F0AEF38 8FA20000 */ lw $v0, ($sp) -) -#endif - - - - #ifdef NONMATCHING s32 sub_GAME_7F0AEF3C(void *arg0) { @@ -2573,44 +2557,60 @@ glabel sub_GAME_7F0B0688 +#if defined(LEFTOVERDEBUG) #ifdef NONMATCHING -?32 sub_GAME_7F0B07BC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) { - f32 sp24; - f32 sp28; - s32 sp2C; - ?32 sp44; - s32 sp4C; - f32 temp_f2; - f32 temp_f0; - ?32 phi_a0; +/* 99.44% match, only the stack is slightly wrong */ +s32 sub_GAME_7F0B07BC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) { + f32 c_z2; + f32 a_x2; + f32 b_x2; + f32 a_z2; + s32 val2; + f32 c_x; + s32 val1; + f32 b_x; + s32 rc; + f32 c_x2; + f32 a_z; + f32 b_z; + f32 b_z2; + f32 a_x; + f32 c_z; - // Node 0 - temp_f2 = (arg1 - arg5); - temp_f0 = (arg0 - arg4); - sp44 = 1; - sp28 = temp_f0; - sp24 = temp_f2; - sp2C = getRotationalDirectionBetween((arg2 - arg0), (arg3 - arg1), -temp_f0, -temp_f2); - sp4C = (s32) (getRotationalDirectionBetween(sp20, sp1C, (arg6 - arg0), (arg7 - arg1)) * sp2C); - sp2C = getRotationalDirectionBetween((arg6 - arg4), (arg7 - arg5), sp28, sp24); - if (sp4C >= arg8) - { - // Node 1 - sp44 = 0; + + rc = 1; + b_x = -(arg0 - arg4); + c_z = arg7 - arg1; + c_x = arg6 - arg0; + a_x = arg2 - arg0; + a_z = arg3 - arg1; + b_z = -(arg1 - arg5); + + + val1 = getRotationalDirectionBetween(a_x, a_z, b_x, b_z) * getRotationalDirectionBetween(a_x, a_z, c_x, c_z); + + b_z2 = arg1 - arg5; + c_x2 = arg2 - arg4; + b_x2 = arg0 - arg4; + c_z2 = arg3 - arg5; + a_x2 = arg6 - arg4; + a_z2 = arg7 - arg5; + + + val2 = getRotationalDirectionBetween(a_x2, a_z2, b_x2, b_z2) * getRotationalDirectionBetween(a_x2, a_z2, c_x2, c_z2); + + if (val1 >= arg8) { + rc = 0; } - // Node 2 - phi_a0 = sp44; - if ((getRotationalDirectionBetween(sp20, sp1C, (arg2 - arg4), (arg3 - arg5)) * sp2C) >= arg8) - { - // Node 3 - phi_a0 = 0; + + if (val2 >= arg8) { + rc = 0; } - // Node 4 - return phi_a0; + + return rc; } #else -#if defined(LEFTOVERDEBUG) GLOBAL_ASM( .text glabel sub_GAME_7F0B07BC @@ -2704,101 +2704,50 @@ glabel sub_GAME_7F0B07BC /* 0E5440 7F0B0910 00801025 */ move $v0, $a0 ) #endif +#endif #if !defined(LEFTOVERDEBUG) -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B07BC -/* 0E246C 7F0AFA7C 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0E2470 7F0AFA80 E7AC0050 */ swc1 $f12, 0x50($sp) -/* 0E2474 7F0AFA84 AFA60058 */ sw $a2, 0x58($sp) -/* 0E2478 7F0AFA88 C7A40058 */ lwc1 $f4, 0x58($sp) -/* 0E247C 7F0AFA8C C7A60050 */ lwc1 $f6, 0x50($sp) -/* 0E2480 7F0AFA90 E7AE0054 */ swc1 $f14, 0x54($sp) -/* 0E2484 7F0AFA94 C7AA0054 */ lwc1 $f10, 0x54($sp) -/* 0E2488 7F0AFA98 46062301 */ sub.s $f12, $f4, $f6 -/* 0E248C 7F0AFA9C C7A40064 */ lwc1 $f4, 0x64($sp) -/* 0E2490 7F0AFAA0 C7B00060 */ lwc1 $f16, 0x60($sp) -/* 0E2494 7F0AFAA4 AFA7005C */ sw $a3, 0x5c($sp) -/* 0E2498 7F0AFAA8 46045081 */ sub.s $f2, $f10, $f4 -/* 0E249C 7F0AFAAC C7A8005C */ lwc1 $f8, 0x5c($sp) -/* 0E24A0 7F0AFAB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0E24A4 7F0AFAB4 46103001 */ sub.s $f0, $f6, $f16 -/* 0E24A8 7F0AFAB8 240E0001 */ li $t6, 1 -/* 0E24AC 7F0AFABC AFAE002C */ sw $t6, 0x2c($sp) -/* 0E24B0 7F0AFAC0 460A4381 */ sub.s $f14, $f8, $f10 -/* 0E24B4 7F0AFAC4 E7A00024 */ swc1 $f0, 0x24($sp) -/* 0E24B8 7F0AFAC8 E7A20020 */ swc1 $f2, 0x20($sp) -/* 0E24BC 7F0AFACC 46001207 */ neg.s $f8, $f2 -/* 0E24C0 7F0AFAD0 46000487 */ neg.s $f18, $f0 -/* 0E24C4 7F0AFAD4 44074000 */ mfc1 $a3, $f8 -/* 0E24C8 7F0AFAD8 44069000 */ mfc1 $a2, $f18 -/* 0E24CC 7F0AFADC E7AE0018 */ swc1 $f14, 0x18($sp) -/* 0E24D0 7F0AFAE0 0FC2BE20 */ jal getRotationalDirectionBetween -/* 0E24D4 7F0AFAE4 E7AC001C */ swc1 $f12, 0x1c($sp) -/* 0E24D8 7F0AFAE8 C7A60068 */ lwc1 $f6, 0x68($sp) -/* 0E24DC 7F0AFAEC C7B00050 */ lwc1 $f16, 0x50($sp) -/* 0E24E0 7F0AFAF0 C7AA006C */ lwc1 $f10, 0x6c($sp) -/* 0E24E4 7F0AFAF4 C7A40054 */ lwc1 $f4, 0x54($sp) -/* 0E24E8 7F0AFAF8 46103481 */ sub.s $f18, $f6, $f16 -/* 0E24EC 7F0AFAFC C7AC001C */ lwc1 $f12, 0x1c($sp) -/* 0E24F0 7F0AFB00 C7AE0018 */ lwc1 $f14, 0x18($sp) -/* 0E24F4 7F0AFB04 46045201 */ sub.s $f8, $f10, $f4 -/* 0E24F8 7F0AFB08 44069000 */ mfc1 $a2, $f18 -/* 0E24FC 7F0AFB0C AFA20028 */ sw $v0, 0x28($sp) -/* 0E2500 7F0AFB10 44074000 */ mfc1 $a3, $f8 -/* 0E2504 7F0AFB14 0FC2BE20 */ jal getRotationalDirectionBetween -/* 0E2508 7F0AFB18 00000000 */ nop -/* 0E250C 7F0AFB1C 8FAF0028 */ lw $t7, 0x28($sp) -/* 0E2510 7F0AFB20 C7A60068 */ lwc1 $f6, 0x68($sp) -/* 0E2514 7F0AFB24 C7B00060 */ lwc1 $f16, 0x60($sp) -/* 0E2518 7F0AFB28 004F0019 */ multu $v0, $t7 -/* 0E251C 7F0AFB2C C7B2006C */ lwc1 $f18, 0x6c($sp) -/* 0E2520 7F0AFB30 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* 0E2524 7F0AFB34 46103301 */ sub.s $f12, $f6, $f16 -/* 0E2528 7F0AFB38 8FA60024 */ lw $a2, 0x24($sp) -/* 0E252C 7F0AFB3C 8FA70020 */ lw $a3, 0x20($sp) -/* 0E2530 7F0AFB40 460A9381 */ sub.s $f14, $f18, $f10 -/* 0E2534 7F0AFB44 E7AC001C */ swc1 $f12, 0x1c($sp) -/* 0E2538 7F0AFB48 0000C012 */ mflo $t8 -/* 0E253C 7F0AFB4C AFB80034 */ sw $t8, 0x34($sp) -/* 0E2540 7F0AFB50 0FC2BE20 */ jal getRotationalDirectionBetween -/* 0E2544 7F0AFB54 E7AE0018 */ swc1 $f14, 0x18($sp) -/* 0E2548 7F0AFB58 C7A40058 */ lwc1 $f4, 0x58($sp) -/* 0E254C 7F0AFB5C C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0E2550 7F0AFB60 C7B0005C */ lwc1 $f16, 0x5c($sp) -/* 0E2554 7F0AFB64 C7B20064 */ lwc1 $f18, 0x64($sp) -/* 0E2558 7F0AFB68 46082181 */ sub.s $f6, $f4, $f8 -/* 0E255C 7F0AFB6C C7AC001C */ lwc1 $f12, 0x1c($sp) -/* 0E2560 7F0AFB70 C7AE0018 */ lwc1 $f14, 0x18($sp) -/* 0E2564 7F0AFB74 46128281 */ sub.s $f10, $f16, $f18 -/* 0E2568 7F0AFB78 44063000 */ mfc1 $a2, $f6 -/* 0E256C 7F0AFB7C AFA20028 */ sw $v0, 0x28($sp) -/* 0E2570 7F0AFB80 44075000 */ mfc1 $a3, $f10 -/* 0E2574 7F0AFB84 0FC2BE20 */ jal getRotationalDirectionBetween -/* 0E2578 7F0AFB88 00000000 */ nop -/* 0E257C 7F0AFB8C 8FA30070 */ lw $v1, 0x70($sp) -/* 0E2580 7F0AFB90 8FB90034 */ lw $t9, 0x34($sp) -/* 0E2584 7F0AFB94 0323082A */ slt $at, $t9, $v1 -/* 0E2588 7F0AFB98 54200003 */ bnezl $at, .L7F0AFBA8 -/* 0E258C 7F0AFB9C 8FA80028 */ lw $t0, 0x28($sp) -/* 0E2590 7F0AFBA0 AFA0002C */ sw $zero, 0x2c($sp) -/* 0E2594 7F0AFBA4 8FA80028 */ lw $t0, 0x28($sp) -.L7F0AFBA8: -/* 0E2598 7F0AFBA8 8FA4002C */ lw $a0, 0x2c($sp) -/* 0E259C 7F0AFBAC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0E25A0 7F0AFBB0 00480019 */ multu $v0, $t0 -/* 0E25A4 7F0AFBB4 27BD0050 */ addiu $sp, $sp, 0x50 -/* 0E25A8 7F0AFBB8 00004812 */ mflo $t1 -/* 0E25AC 7F0AFBBC 0123082A */ slt $at, $t1, $v1 -/* 0E25B0 7F0AFBC0 14200002 */ bnez $at, .L7F0AFBCC -/* 0E25B4 7F0AFBC4 00000000 */ nop -/* 0E25B8 7F0AFBC8 00002025 */ move $a0, $zero -.L7F0AFBCC: -/* 0E25BC 7F0AFBCC 03E00008 */ jr $ra -/* 0E25C0 7F0AFBD0 00801025 */ move $v0, $a0 -) -#endif + +s32 sub_GAME_7F0B07BC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) { + f32 a_z; + f32 a_x; + f32 b_z; + f32 b_x; + f32 c_x; + + s32 val2; + s32 val1; + f32 c_z; + s32 rc; + + rc = 1; + + b_x = -(arg0 - arg4); + b_z = -(arg1 - arg5); + a_x = (arg2 - arg0); + a_z = (arg3 - arg1); + c_x = arg6 - arg0; + c_z = arg7 - arg1; + val1 = getRotationalDirectionBetween(a_x, a_z, b_x, b_z) * getRotationalDirectionBetween(a_x, a_z, c_x, c_z); + + a_x = (arg6 - arg4); + a_z = (arg7 - arg5); + b_x = (arg0 - arg4); + b_z = (arg1 - arg5); + c_x = arg2 - arg4; + c_z = arg3 - arg5; + + val2 = getRotationalDirectionBetween(a_x, a_z, b_x, b_z) * getRotationalDirectionBetween(a_x, a_z, c_x, c_z); + + if (val1 >= arg8) { + rc = 0; + } + + if (val2 >= arg8) { + rc = 0; + } + return rc; +} #endif @@ -3837,13 +3786,6 @@ glabel sub_GAME_7F0B1410 #endif - - - -#ifdef NONMATCHING -// general regalloc -// almost matching, a single assembly line is wrong: -// e629c: mul.s $f6,$f16,$f4 r e629c: mul.s $f6,$f4,$f16 f32 sub_GAME_7F0B16C4(f32 x1, f32 z1, f32 x2, f32 z2, f32 x3, f32 z3) { u32 stack[8]; @@ -3851,76 +3793,14 @@ f32 sub_GAME_7F0B16C4(f32 x1, f32 z1, f32 x2, f32 z2, f32 x3, f32 z3) result = sqrtf((x2 - x1) * (x2 - x1) + (z2 - z1) * (z2 - z1)); - if (result == 0.0f) { + if (result == 0.0f) + { return sqrtf((x3 - x2) * (x3 - x2) + (z3 - z2) * (z3 - z2)); } - return ((x3 - x1) * (z2 - z1) + -(x2 - x1) * (z3 - z1)) / result; + return ((z2 - z1) * (x3 - x1) + -(x2 - x1) * (z3 - z1)) / result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B16C4 -/* 0E61F4 7F0B16C4 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0E61F8 7F0B16C8 E7AC0048 */ swc1 $f12, 0x48($sp) -/* 0E61FC 7F0B16CC AFA60050 */ sw $a2, 0x50($sp) -/* 0E6200 7F0B16D0 C7A40050 */ lwc1 $f4, 0x50($sp) -/* 0E6204 7F0B16D4 C7A60048 */ lwc1 $f6, 0x48($sp) -/* 0E6208 7F0B16D8 E7AE004C */ swc1 $f14, 0x4c($sp) -/* 0E620C 7F0B16DC AFA70054 */ sw $a3, 0x54($sp) -/* 0E6210 7F0B16E0 46062081 */ sub.s $f2, $f4, $f6 -/* 0E6214 7F0B16E4 C7A80054 */ lwc1 $f8, 0x54($sp) -/* 0E6218 7F0B16E8 C7AA004C */ lwc1 $f10, 0x4c($sp) -/* 0E621C 7F0B16EC AFBF0014 */ sw $ra, 0x14($sp) -/* 0E6220 7F0B16F0 46021482 */ mul.s $f18, $f2, $f2 -/* 0E6224 7F0B16F4 460A4401 */ sub.s $f16, $f8, $f10 -/* 0E6228 7F0B16F8 E7A20020 */ swc1 $f2, 0x20($sp) -/* 0E622C 7F0B16FC 46108102 */ mul.s $f4, $f16, $f16 -/* 0E6230 7F0B1700 E7B0001C */ swc1 $f16, 0x1c($sp) -/* 0E6234 7F0B1704 0C007DF8 */ jal sqrtf -/* 0E6238 7F0B1708 46049300 */ add.s $f12, $f18, $f4 -/* 0E623C 7F0B170C 44803000 */ mtc1 $zero, $f6 -/* 0E6240 7F0B1710 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 0E6244 7F0B1714 C7B0001C */ lwc1 $f16, 0x1c($sp) -/* 0E6248 7F0B1718 46060032 */ c.eq.s $f0, $f6 -/* 0E624C 7F0B171C 46000306 */ mov.s $f12, $f0 -/* 0E6250 7F0B1720 C7A80058 */ lwc1 $f8, 0x58($sp) -/* 0E6254 7F0B1724 C7AA0058 */ lwc1 $f10, 0x58($sp) -/* 0E6258 7F0B1728 4500000D */ bc1f .L7F0B1760 -/* 0E625C 7F0B172C C7B20048 */ lwc1 $f18, 0x48($sp) -/* 0E6260 7F0B1730 C7AA0050 */ lwc1 $f10, 0x50($sp) -/* 0E6264 7F0B1734 C7B2005C */ lwc1 $f18, 0x5c($sp) -/* 0E6268 7F0B1738 C7A40054 */ lwc1 $f4, 0x54($sp) -/* 0E626C 7F0B173C 460A4001 */ sub.s $f0, $f8, $f10 -/* 0E6270 7F0B1740 46049081 */ sub.s $f2, $f18, $f4 -/* 0E6274 7F0B1744 46000182 */ mul.s $f6, $f0, $f0 -/* 0E6278 7F0B1748 00000000 */ nop -/* 0E627C 7F0B174C 46021202 */ mul.s $f8, $f2, $f2 -/* 0E6280 7F0B1750 0C007DF8 */ jal sqrtf -/* 0E6284 7F0B1754 46083300 */ add.s $f12, $f6, $f8 -/* 0E6288 7F0B1758 1000000B */ b .L7F0B1788 -/* 0E628C 7F0B175C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0B1760: -/* 0E6290 7F0B1760 46125101 */ sub.s $f4, $f10, $f18 -/* 0E6294 7F0B1764 C7AA004C */ lwc1 $f10, 0x4c($sp) -/* 0E6298 7F0B1768 C7A8005C */ lwc1 $f8, 0x5c($sp) -/* 0E629C 7F0B176C 46048182 */ mul.s $f6, $f16, $f4 -/* 0E62A0 7F0B1770 460A4481 */ sub.s $f18, $f8, $f10 -/* 0E62A4 7F0B1774 46001107 */ neg.s $f4, $f2 -/* 0E62A8 7F0B1778 46122202 */ mul.s $f8, $f4, $f18 -/* 0E62AC 7F0B177C 46083280 */ add.s $f10, $f6, $f8 -/* 0E62B0 7F0B1780 460C5003 */ div.s $f0, $f10, $f12 -/* 0E62B4 7F0B1784 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0B1788: -/* 0E62B8 7F0B1788 27BD0048 */ addiu $sp, $sp, 0x48 -/* 0E62BC 7F0B178C 03E00008 */ jr $ra -/* 0E62C0 7F0B1790 00000000 */ nop -) -#endif - - - f32 distBetweenPoints2d(f32 o_x,f32 o_z,f32 p_x,f32 p_z) { @@ -5485,52 +5365,15 @@ f32 stanGetPositionYValue(StandTile *tile, f32 p_x, f32 p_z) } - - - -#ifdef NONMATCHING - -// Some instructions misordered -s32 copy_tile_RGB_as_24bit(StandTile *tile, f32 p_x, f32 p_z, u8* rtn) { - - u8 B; - u8 C; - u8 D; - - B = tile->headerMid >> 0x8 & 0xF; - C = tile->headerMid >> 0x4 & 0xF; - D = tile->headerMid & 0xF; - - rtn[0] = (B << 4) | B; - rtn[1] = (C << 4) | C; - rtn[2] = (D << 4) | D; - +void copy_tile_RGB_as_24bit(StandTile *tile, f32 p_x, f32 p_z, u8 *rtn) +{ + u8 B = (tile->mid.half >> 0x8) & 0xF; + u8 C = (tile->mid.half >> 0x4) & 0xF; + u8 D = (tile->mid.half >> 0x0) & 0xF; + rtn[0] = (B << 0x4) | B; + rtn[1] = (C << 0x4) | C; + rtn[2] = (D << 0x4) | D; } -#else -GLOBAL_ASM( -.text -glabel copy_tile_RGB_as_24bit -/* 0E775C 7F0B2C2C AFA50004 */ sw $a1, 4($sp) -/* 0E7760 7F0B2C30 AFA60008 */ sw $a2, 8($sp) -/* 0E7764 7F0B2C34 84830004 */ lh $v1, 4($a0) -/* 0E7768 7F0B2C38 00031203 */ sra $v0, $v1, 8 -/* 0E776C 7F0B2C3C 304F000F */ andi $t7, $v0, 0xf -/* 0E7770 7F0B2C40 00032903 */ sra $a1, $v1, 4 -/* 0E7774 7F0B2C44 30B9000F */ andi $t9, $a1, 0xf -/* 0E7778 7F0B2C48 000F6100 */ sll $t4, $t7, 4 -/* 0E777C 7F0B2C4C 018F6825 */ or $t5, $t4, $t7 -/* 0E7780 7F0B2C50 00197100 */ sll $t6, $t9, 4 -/* 0E7784 7F0B2C54 306B000F */ andi $t3, $v1, 0xf -/* 0E7788 7F0B2C58 01D97825 */ or $t7, $t6, $t9 -/* 0E778C 7F0B2C5C 000BC100 */ sll $t8, $t3, 4 -/* 0E7790 7F0B2C60 030BC825 */ or $t9, $t8, $t3 -/* 0E7794 7F0B2C64 A0ED0000 */ sb $t5, ($a3) -/* 0E7798 7F0B2C68 A0EF0001 */ sb $t7, 1($a3) -/* 0E779C 7F0B2C6C 03E00008 */ jr $ra -/* 0E77A0 7F0B2C70 A0F90002 */ sb $t9, 2($a3) -) -#endif - f32 sub_GAME_7F0B2C74(StandTile *tile, f32 *heights); @@ -6045,8 +5888,8 @@ s32 getTileRoom(StandTile *tile) } - - +//incorrect here so that both this and sub_GAME_7F0B4F9C match +extern s32 sub_GAME_7F0B4F9C(u8 arg0) ; s32 sub_GAME_7F0B2FE0(StandTile *tile) { @@ -6057,39 +5900,14 @@ s32 sub_GAME_7F0B2FE0(StandTile *tile) return sub_GAME_7F0B4F9C(room); } - - - - f32 sub_GAME_7F0B3004(StandTile *tile) { return sub_GAME_7F0B2D14(tile); } - - - - -#ifdef NONMATCHING Gfx * sub_GAME_7F0B3024(Gfx *ptrdl, StandTilePoint *tile_point, u32 RGBAColor) { - return *ptrdl; + return ptrdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B3024 -/* 0E7B54 7F0B3024 AFA50004 */ sw $a1, 4($sp) -/* 0E7B58 7F0B3028 AFA60008 */ sw $a2, 8($sp) -/* 0E7B5C 7F0B302C 03E00008 */ jr $ra -/* 0E7B60 7F0B3030 00801025 */ move $v0, $a0 -) -#endif - - - - - - Gfx * sub_GAME_7F0B3034(Gfx *arg0) { return arg0; } @@ -6098,106 +5916,32 @@ Gfx * sub_GAME_7F0B303C(Gfx * arg0) { return arg0; } +s32 sub_GAME_7F0B3044(void) { + s32 sp1C; + f32 temp_f0; - - - - -#ifdef NONMATCHING -void sub_GAME_7F0B3044(void) { - + sp1C = 0; + if (((dynGetFreeGfx() < 0x1000) || (dynGetFreeVtx() < 0x1000)) && (*D_800413D0 == 0)) { + D_800413C0 = 0.0f; + D_800413C4 = 0.0f; + D_800413C8 = D_800413CC; + *D_800413D0 = 1; + } + if (*D_800413D0 == 0) { + D_800413C0 += D_800413C4; + temp_f0 = D_800413C0; + if (temp_f0 > 1.0f) { + sp1C = 1; + D_800413C0 = temp_f0 - 1.0f; + } + } + D_800413CC += 1; + return sp1C; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B3044 -/* 0E7B74 7F0B3044 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0E7B78 7F0B3048 AFBF0014 */ sw $ra, 0x14($sp) -/* 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 dynGetFreeVtx -/* 0E7B94 7F0B3064 00000000 */ nop -/* 0E7B98 7F0B3068 28411000 */ slti $at, $v0, 0x1000 -/* 0E7B9C 7F0B306C 10200010 */ beqz $at, .L7F0B30B0 -.L7F0B3070: -/* 0E7BA0 7F0B3070 3C048004 */ lui $a0, %hi(D_800413D0) -/* 0E7BA4 7F0B3074 248413D0 */ addiu $a0, %lo(D_800413D0) # addiu $a0, $a0, 0x13d0 -/* 0E7BA8 7F0B3078 8C8E0000 */ lw $t6, ($a0) -/* 0E7BAC 7F0B307C 3C028004 */ lui $v0, %hi(D_800413C0) -/* 0E7BB0 7F0B3080 244213C0 */ addiu $v0, %lo(D_800413C0) # addiu $v0, $v0, 0x13c0 -/* 0E7BB4 7F0B3084 15C0000A */ bnez $t6, .L7F0B30B0 -/* 0E7BB8 7F0B3088 3C018004 */ lui $at, %hi(D_800413C4) -/* 0E7BBC 7F0B308C 44800000 */ mtc1 $zero, $f0 -/* 0E7BC0 7F0B3090 3C0F8004 */ lui $t7, %hi(D_800413CC) -/* 0E7BC4 7F0B3094 24180001 */ li $t8, 1 -/* 0E7BC8 7F0B3098 E4400000 */ swc1 $f0, ($v0) -/* 0E7BCC 7F0B309C 8DEF13CC */ lw $t7, %lo(D_800413CC)($t7) -/* 0E7BD0 7F0B30A0 E42013C4 */ swc1 $f0, %lo(D_800413C4)($at) -/* 0E7BD4 7F0B30A4 3C018004 */ lui $at, %hi(D_800413C8) -/* 0E7BD8 7F0B30A8 AC2F13C8 */ sw $t7, %lo(D_800413C8)($at) -/* 0E7BDC 7F0B30AC AC980000 */ sw $t8, ($a0) -.L7F0B30B0: -/* 0E7BE0 7F0B30B0 3C048004 */ lui $a0, %hi(D_800413D0) -/* 0E7BE4 7F0B30B4 248413D0 */ addiu $a0, %lo(D_800413D0) # addiu $a0, $a0, 0x13d0 -/* 0E7BE8 7F0B30B8 8C990000 */ lw $t9, ($a0) -/* 0E7BEC 7F0B30BC 3C028004 */ lui $v0, %hi(D_800413C0) -/* 0E7BF0 7F0B30C0 3C038004 */ lui $v1, %hi(D_800413CC) -/* 0E7BF4 7F0B30C4 244213C0 */ addiu $v0, %lo(D_800413C0) # addiu $v0, $v0, 0x13c0 -/* 0E7BF8 7F0B30C8 17200011 */ bnez $t9, .L7F0B3110 -/* 0E7BFC 7F0B30CC 8C6313CC */ lw $v1, %lo(D_800413CC)($v1) -/* 0E7C00 7F0B30D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E7C04 7F0B30D4 44811000 */ mtc1 $at, $f2 -/* 0E7C08 7F0B30D8 3C018004 */ lui $at, %hi(D_800413C4) -/* 0E7C0C 7F0B30DC C42613C4 */ lwc1 $f6, %lo(D_800413C4)($at) -/* 0E7C10 7F0B30E0 C4440000 */ lwc1 $f4, ($v0) -/* 0E7C14 7F0B30E4 46062200 */ add.s $f8, $f4, $f6 -/* 0E7C18 7F0B30E8 E4480000 */ swc1 $f8, ($v0) -/* 0E7C1C 7F0B30EC C4400000 */ lwc1 $f0, ($v0) -/* 0E7C20 7F0B30F0 4600103C */ c.lt.s $f2, $f0 -/* 0E7C24 7F0B30F4 00000000 */ nop -/* 0E7C28 7F0B30F8 45020006 */ bc1fl .L7F0B3114 -/* 0E7C2C 7F0B30FC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0E7C30 7F0B3100 46020281 */ sub.s $f10, $f0, $f2 -/* 0E7C34 7F0B3104 24080001 */ li $t0, 1 -/* 0E7C38 7F0B3108 AFA8001C */ sw $t0, 0x1c($sp) -/* 0E7C3C 7F0B310C E44A0000 */ swc1 $f10, ($v0) -.L7F0B3110: -/* 0E7C40 7F0B3110 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0B3114: -/* 0E7C44 7F0B3114 24690001 */ addiu $t1, $v1, 1 -/* 0E7C48 7F0B3118 3C018004 */ lui $at, %hi(D_800413CC) -/* 0E7C4C 7F0B311C 8FA2001C */ lw $v0, 0x1c($sp) -/* 0E7C50 7F0B3120 AC2913CC */ sw $t1, %lo(D_800413CC)($at) -/* 0E7C54 7F0B3124 03E00008 */ jr $ra -/* 0E7C58 7F0B3128 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - - -#ifdef NONMATCHING Gfx * sub_GAME_7F0B312C(Gfx *arg0, s32 arg1) { - // Node 0 return arg0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B312C -/* 0E7C5C 7F0B312C AFA50004 */ sw $a1, 4($sp) -/* 0E7C60 7F0B3130 03E00008 */ jr $ra -/* 0E7C64 7F0B3134 00801025 */ move $v0, $a0 -) -#endif - - - - #ifdef NONMATCHING // Only difference is an extra sw a1,0x34(sp) appearing. diff --git a/src/game/stan.h b/src/game/stan.h index 5af5f975..60ff42d1 100644 --- a/src/game/stan.h +++ b/src/game/stan.h @@ -65,7 +65,7 @@ s32 sub_GAME_7F0B0C24(StandTile **tileStack, f32 start_x, f32 start_z, f32 dest_ s32 sub_GAME_7F0B18B8(StandTile **, f32, f32, f32, s32, f32, f32); s32 getTileRoom(StandTile* tile); PropRecord *sub_GAME_7F0B1410(StandTile *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5); -s32 copy_tile_RGB_as_24bit(StandTile *tile, f32 p_x, f32 p_z, u8* rtn); +void copy_tile_RGB_as_24bit(StandTile *tile, f32 p_x, f32 p_z, u8 *rtn); s32 stanTileDistanceRelated(struct StandTile **arg0, f32 arg1, f32 arg2, f32 arg3, struct StandTileLocusCallbackRecord *arg4); s32 stanGetLocusField0(struct StandTileLocusCallbackRecord *arg0); s32 stanGetLocusCount(struct StandTileLocusCallbackRecord *arg0); diff --git a/src/game/textrelated.c b/src/game/textrelated.c index 446f97fb..74349af9 100644 --- a/src/game/textrelated.c +++ b/src/game/textrelated.c @@ -1,7 +1,7 @@ #include #include #include "textrelated.h" - +#include "bondtypes.h" // data s32 D_80040E80 = 0; @@ -307,33 +307,15 @@ Gfx *combiner_bayer_lod_perspective(Gfx *gdl) } #ifdef NONMATCHING -s32 draw_blackbox_to_screen(void *arg0, void *arg1, void *arg2, void *arg3, void *arg4) { - void *temp_a0; - void *temp_t0; - void *temp_t1; - void *temp_v1; - void *temp_a1; - - // Node 0 - *arg0 = 0xb900031d; - arg0->unk4 = 0x504240; - temp_a0 = (arg0 + 8); - *temp_a0 = 0xfcffffff; - temp_a0->unk4 = 0xfffdf6fb; - temp_t0 = (temp_a0 + 8); - *temp_t0 = 0xfa000000; - temp_t0->unk4 = 0; - temp_t1 = (temp_t0 + 8); - *temp_t1 = (s32) ((((*arg4 & 0x3ff) * 4) | 0xf6000000) | ((*arg3 & 0x3ff) << 0xe)); - temp_v1 = (temp_t1 + 8); - temp_t1->unk4 = (s32) (((*arg2 & 0x3ff) * 4) | ((*arg1 & 0x3ff) << 0xe)); - temp_a1 = (temp_v1 + 8); - temp_v1->unk4 = 0x504240; - *temp_v1 = 0xb900031d; - *temp_a1 = 0xfcff97ff; - temp_a1->unk4 = 0xff2dfeff; - return; - // (possible return value: (temp_a1 + 8)) +Gfx* draw_blackbox_to_screen(Gfx *glist, s32 ulx, s32 uly, s32 lrx, s32 lry) +{ + gDPSetRenderMode(glist++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(glist++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(glist++, 0, 0, 0x00, 0x00, 0x00, 0x00); + gDPFillRectangle(glist++, ulx, uly, lrx, lry); + gDPSetRenderMode(glist++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineLERP(glist++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); + return glist; } #else @@ -398,11 +380,11 @@ glabel draw_blackbox_to_screen #ifdef NONMATCHING -s32 microcode_constructor_related_to_menus(Gfx *gdl, s32 arg1, s32 arg2, s32 arg3, s32 arg4, u32 RGBA) +Gfx * microcode_constructor_related_to_menus(Gfx *gdl, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 color) { gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); gDPSetCombineMode(gdl++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPSetPrimColor(gdl++, 0, 0, RGBA, RGBA, RGBA, RGBA); + gDPSetPrimColor(gdl++, 0, 0, color.word, color.word, color.word, color.word); gDPFillRectangle(gdl++, arg1, arg2, arg3, arg4); gDPSetCombineLERP(gdl++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); return gdl; @@ -477,13 +459,13 @@ glabel microcode_constructor_related_to_menus #ifdef NONMATCHING -void sub_GAME_7F0AD0F8(void) { +Gfx * construct_fontchar_microcode(Gfx *DL,int xpos,int ypos,void *ptr_tbl2entry,void *ptr_unk,void *ptr_tbl1,int ulx,int uly,int lrx,int lry,int unk) { } #else GLOBAL_ASM( .text -glabel sub_GAME_7F0AD0F8 +glabel construct_fontchar_microcode /* 0E1C28 7F0AD0F8 27BDFF10 */ addiu $sp, $sp, -0xf0 /* 0E1C2C 7F0AD0FC 8FB90100 */ lw $t9, 0x100($sp) /* 0E1C30 7F0AD100 AFBF001C */ sw $ra, 0x1c($sp) @@ -1267,7 +1249,7 @@ glabel en_text_write_stuff /* 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 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal construct_fontchar_microcode /* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) /* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 /* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) @@ -1323,7 +1305,7 @@ glabel en_text_write_stuff /* 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 +/* 0E288C 7F0ADD5C 0FC2B43E */ jal construct_fontchar_microcode /* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) /* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 /* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 @@ -1474,7 +1456,7 @@ glabel en_text_write_stuff /* 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 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal construct_fontchar_microcode /* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) /* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 /* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) @@ -1530,7 +1512,7 @@ glabel en_text_write_stuff /* 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 +/* 0E288C 7F0ADD5C 0FC2B43E */ jal construct_fontchar_microcode /* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) /* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 /* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 @@ -1682,7 +1664,7 @@ glabel en_text_write_stuff /* 0DF92C 7F0ACF3C 00006012 */ mflo $t4 /* 0DF930 7F0ACF40 01887021 */ addu $t6, $t4, $t0 /* 0DF934 7F0ACF44 25CFFCE8 */ addiu $t7, $t6, -0x318 -/* 0DF938 7F0ACF48 0FC2B0EE */ jal sub_GAME_7F0AD0F8 +/* 0DF938 7F0ACF48 0FC2B0EE */ jal construct_fontchar_microcode /* 0DF93C 7F0ACF4C AFAF0010 */ sw $t7, 0x10($sp) /* 0DF940 7F0ACF50 00409825 */ move $s3, $v0 /* 0DF944 7F0ACF54 92150000 */ lbu $s5, ($s0) @@ -1738,7 +1720,7 @@ glabel en_text_write_stuff /* 0DFA00 7F0AD010 AFBE0020 */ sw $fp, 0x20($sp) /* 0DFA04 7F0AD014 AFAC001C */ sw $t4, 0x1c($sp) /* 0DFA08 7F0AD018 AFA80024 */ sw $t0, 0x24($sp) -/* 0DFA0C 7F0AD01C 0FC2B0EE */ jal sub_GAME_7F0AD0F8 +/* 0DFA0C 7F0AD01C 0FC2B0EE */ jal construct_fontchar_microcode /* 0DFA10 7F0AD020 AFAF0028 */ sw $t7, 0x28($sp) /* 0DFA14 7F0AD024 00409825 */ move $s3, $v0 /* 0DFA18 7F0AD028 26100002 */ addiu $s0, $s0, 2 diff --git a/src/game/textrelated.h b/src/game/textrelated.h index 546cba1e..1b34a05e 100644 --- a/src/game/textrelated.h +++ b/src/game/textrelated.h @@ -1,6 +1,7 @@ #ifndef _TEXTRELATED_H_ #define _TEXTRELATED_H_ #include +#include "bondtypes.h" extern s32 ptrFirstFontTableSmall; extern s32 ptrSecondFontTableSmall; diff --git a/src/game/title.c b/src/game/title.c index dabdd42f..291589a2 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -295,7 +295,7 @@ glabel sub_GAME_7F007F30 /* 03CBDC 7F0080AC 8C650000 */ lw $a1, ($v1) /* 03CBE0 7F0080B0 50A00008 */ beql $a1, $zero, .L7F0080D4 /* 03CBE4 7F0080B4 8C650008 */ lw $a1, 8($v1) -/* 03CBE8 7F0080B8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 03CBE8 7F0080B8 0FC1B1E7 */ jal modelGetNodeRwData /* 03CBEC 7F0080BC 00C02025 */ move $a0, $a2 /* 03CBF0 7F0080C0 A4550000 */ sh $s5, ($v0) /* 03CBF4 7F0080C4 8E860000 */ lw $a2, ($s4) @@ -305,7 +305,7 @@ glabel sub_GAME_7F007F30 .L7F0080D4: /* 03CC04 7F0080D4 50A00005 */ beql $a1, $zero, .L7F0080EC /* 03CC08 7F0080D8 8FA80128 */ lw $t0, 0x128($sp) -/* 03CC0C 7F0080DC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 03CC0C 7F0080DC 0FC1B1E7 */ jal modelGetNodeRwData /* 03CC10 7F0080E0 00C02025 */ move $a0, $a2 /* 03CC14 7F0080E4 AC550000 */ sw $s5, ($v0) /* 03CC18 7F0080E8 8FA80128 */ lw $t0, 0x128($sp) @@ -547,7 +547,7 @@ glabel sub_GAME_7F007F30 /* 03AA1C 7F00802C 8C650000 */ lw $a1, ($v1) /* 03AA20 7F008030 50A00008 */ beql $a1, $zero, .L7F008054 /* 03AA24 7F008034 8C650008 */ lw $a1, 8($v1) -/* 03AA28 7F008038 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 03AA28 7F008038 0FC1B3A3 */ jal modelGetNodeRwData /* 03AA2C 7F00803C 00C02025 */ move $a0, $a2 /* 03AA30 7F008040 A4550000 */ sh $s5, ($v0) /* 03AA34 7F008044 8E860000 */ lw $a2, ($s4) @@ -557,7 +557,7 @@ glabel sub_GAME_7F007F30 .L7F008054: /* 03AA44 7F008054 50A00005 */ beql $a1, $zero, .L7F00806C /* 03AA48 7F008058 8FA80128 */ lw $t0, 0x128($sp) -/* 03AA4C 7F00805C 0FC1B3A3 */ jal extract_id_from_object_structure_microcode +/* 03AA4C 7F00805C 0FC1B3A3 */ jal modelGetNodeRwData /* 03AA50 7F008060 00C02025 */ move $a0, $a2 /* 03AA54 7F008064 AC550000 */ sw $s5, ($v0) /* 03AA58 7F008068 8FA80128 */ lw $t0, 0x128($sp) @@ -788,7 +788,7 @@ Gfx *retrieve_display_rareware_logo(Gfx *gdl) #endif D_8002A7D0 = (1 - D_8002A7D0); - gSPSegment(gdl++, 2, osVirtualToPhysical(virtualaddress)); + gSPSegment(gdl++, SPSEGMENT_GETITLE, osVirtualToPhysical(virtualaddress)); if ((gunbarrel_mode == 0) || (gunbarrel_mode == 1)) { s32 var1; s32 var2; @@ -820,7 +820,7 @@ Gfx *retrieve_display_rareware_logo(Gfx *gdl) return gdl; } -s32 sub_GAME_7F008DD0(void) { +s32 isGunBarrelInMode2(void) { return (gunbarrel_mode == 2); } @@ -829,11 +829,11 @@ s32 sub_GAME_7F008DD0(void) { 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; +void sub_GAME_7F008DE4(u8 **addr, s32 *size) { + dword_CODE_bss_8006958C = *addr; + *size -= 0x40400; + *addr += 0x40400; + dword_CODE_bss_80069588 = *addr; romCopy(dword_CODE_bss_80069588, &unknown2, ALIGN64_V2(((u32)&unknown2_end - (u32)&unknown2))); sub_GAME_7F01B0E0(dword_CODE_bss_80069588, dword_CODE_bss_8006958C); } @@ -985,7 +985,7 @@ glabel sub_GAME_7F008E80 /* 03DB04 7F008FD4 AD410008 */ sw $at, 8($t2) /* 03DB08 7F008FD8 8FA50060 */ lw $a1, 0x60($sp) /* 03DB0C 7F008FDC 02203025 */ move $a2, $s1 -/* 03DB10 7F008FE0 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 03DB10 7F008FE0 0FC32EBD */ jal texInitPool /* 03DB14 7F008FE4 27A40040 */ addiu $a0, $sp, 0x40 /* 03DB18 7F008FE8 8FA60060 */ lw $a2, 0x60($sp) /* 03DB1C 7F008FEC 8FA70064 */ lw $a3, 0x64($sp) @@ -1051,7 +1051,7 @@ glabel sub_GAME_7F008E80 /* 03DC0C 7F0090DC 24050000 */ li $a1, 0 /* 03DC10 7F0090E0 8E240000 */ lw $a0, ($s1) /* 03DC14 7F0090E4 3C053F00 */ lui $a1, 0x3f00 -/* 03DC18 7F0090E8 0FC1BFC6 */ jal sub_GAME_7F06FF18 +/* 03DC18 7F0090E8 0FC1BFC6 */ jal modelSetAnimRateForDuration /* 03DC1C 7F0090EC 24060000 */ li $a2, 0 /* 03DC20 7F0090F0 3C0F8007 */ lui $t7, %hi(ptr_animation_table) /* 03DC24 7F0090F4 8DEF9538 */ lw $t7, %lo(ptr_animation_table)($t7) @@ -1223,7 +1223,7 @@ glabel sub_GAME_7F008E80 /* 03B944 7F008F54 AD410008 */ sw $at, 8($t2) /* 03B948 7F008F58 8FA50060 */ lw $a1, 0x60($sp) /* 03B94C 7F008F5C 02203025 */ move $a2, $s1 -/* 03B950 7F008F60 0FC32C05 */ jal sub_GAME_7F0CBAF4 +/* 03B950 7F008F60 0FC32C05 */ jal texInitPool /* 03B954 7F008F64 27A40040 */ addiu $a0, $sp, 0x40 /* 03B958 7F008F68 8FA60060 */ lw $a2, 0x60($sp) /* 03B95C 7F008F6C 8FA70064 */ lw $a3, 0x64($sp) @@ -1290,7 +1290,7 @@ glabel sub_GAME_7F008E80 /* 03BA50 7F009060 3C053F19 */ lui $a1, (0x3F19999A >> 16) # lui $a1, 0x3f19 /* 03BA54 7F009064 34A5999A */ ori $a1, (0x3F19999A & 0xFFFF) # ori $a1, $a1, 0x999a /* 03BA58 7F009068 8E240000 */ lw $a0, ($s1) -/* 03BA5C 7F00906C 0FC1C02E */ jal sub_GAME_7F06FF18 +/* 03BA5C 7F00906C 0FC1C02E */ jal modelSetAnimRateForDuration /* 03BA60 7F009070 24060000 */ li $a2, 0 /* 03BA64 7F009074 3C0F8006 */ lui $t7, %hi(ptr_animation_table) # $t7, 0x8006 /* 03BA68 7F009078 8DEF8478 */ lw $t7, %lo(ptr_animation_table)($t7) @@ -1379,7 +1379,7 @@ void sub_GAME_7F00920C(void) if (D_8002A7F8) { - set_obj_instance_scale_to_zero(D_8002A7F8); + clear_model_obj(D_8002A7F8); } } @@ -1466,7 +1466,10 @@ Gfx *sub_GAME_7F009254(Gfx *gdl) { 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)))); + gdl = insert_sniper_sight_eye_intro(gdl); + gdl = insert_sight_backdrop_eye_intro(gdl); + gdl = insert_bond_eye_intro(gdl); + gdl = gunbarrelBloodOverlayDL(gdl); if (intro_state_blood_animation != 0) { gunbarrel_mode++; word_CODE_bss_80069584 = 0; @@ -1479,7 +1482,10 @@ Gfx *sub_GAME_7F009254(Gfx *gdl) { word_CODE_bss_80069584 += INCVAL; intro_eye_counter++; g_TitleX = ((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)))); + gdl = insert_sniper_sight_eye_intro(gdl); + gdl = insert_sight_backdrop_eye_intro(gdl); + gdl = insert_bond_eye_intro(gdl); + gdl = sub_GAME_7F01CA18(gdl); if (intro_eye_counter >= INTRO_EYE_COUNTER_CASE_4) { intro_eye_counter = 0; @@ -1490,7 +1496,10 @@ Gfx *sub_GAME_7F009254(Gfx *gdl) { case 5: word_CODE_bss_80069584 += INCVAL; g_TitleX = ((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)))); + gdl = insert_sniper_sight_eye_intro(gdl); + gdl = insert_sight_backdrop_eye_intro(gdl); + gdl = insert_bond_eye_intro(gdl); + gdl = sub_GAME_7F01CA18(gdl); intro_eye_counter += INTRO_EYE_COUNTER_CASE_5_ADD; @@ -1514,6 +1523,6 @@ Gfx *sub_GAME_7F009254(Gfx *gdl) { return gdl; } -s32 sub_GAME_7F009744(void) { +s32 isGunBarrelInMode9(void) { return (gunbarrel_mode == 9); } diff --git a/src/game/unk_091080.c b/src/game/unk_091080.c index ff891de8..ebda384a 100644 --- a/src/game/unk_091080.c +++ b/src/game/unk_091080.c @@ -460,7 +460,7 @@ void handle_debug_intropos(void) f32 x; bondviewGetCurrentPlayersPosition(); //normally would return a coord3d pos but not here - x = 6.2831855f - get_curplay_horizontal_rotation_in_degrees(); + x = M_TAU_F - get_curplay_horizontal_rotation_in_degrees(); cosf(x); sinf(x); cosf(x); diff --git a/src/game/unk_092E50.c b/src/game/unk_092E50.c index 48c724f9..997bd704 100644 --- a/src/game/unk_092E50.c +++ b/src/game/unk_092E50.c @@ -48,51 +48,78 @@ Gfx MipMap2C_Something2_Setup[] = { //End Dl means this gfx list cannot go any further. perhaps below is a vtx array? u32 D_8003FD90 = 0; -f32 D_8003FD94[] = {0, 0, 0}; -u32 D_8003FDA0 = 0; -u32 D_8003FDA4 = 0xFFFFFFFF; -//D:D_8003FDA8 +f32 g_SkyCloudOffset = 0; +f32 D_8003FD98[] = { 0, 0 }; -u64 D_8003FDA8[] = { - 0x100, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0x3F800000, 0, - 0,0x3F80000000000000, 0, 0x3F800000, - 0, 0,0x3F80000000000000, 0, - 0, 0xBF800000, 0x3F800000, 0, +// TODO: D_8003FDA0 is actually a `struct hand` +u32 D_8003FDA0[] = { + 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000100, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x3F800000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x3F800000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x3F800000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x3F800000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0xBF800000, 0x00000000, 0x3F800000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, #if defined(BUGFIX_R2) - 0, 0,0xc18600da00000000,0x418600da00000000, + 0x00000000, 0x00000000, 0XC18600DA, 0x00000000, + 0X418600DA, 0x00000000, 0x00000000, 0x00000000, #else - 0, 0,0xC19FFFFE00000000,0x419FFFFE00000000, + 0x00000000, 0x00000000, 0xC19FFFFE, 0x00000000, + 0x419FFFFE, 0x00000000, 0x00000000, 0x00000000, #endif - 0, 0, 0, 0, - 0, 0, 0,0xBF80000000000000, - 0xBF800000, 0,0xBF80000000000000, 0xBF800000, - 0x3F800000, 0,0x3F80000000000000, 0x3F800000, - 0,0x3F80000000000000, 0,0x3F8000003F800000, - 0, 0, 0, 0, - 0,0x447A000000000000, 0, 0xFF000000, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0xBF800000, 0x00000000, 0x00000000, 0xBF800000, + 0x00000000, 0x00000000, 0xBF800000, 0x00000000, + 0x00000000, 0xBF800000, 0x00000000, 0x3F800000, + 0x00000000, 0x00000000, 0x3F800000, 0x00000000, + 0x00000000, 0x3F800000, 0x00000000, 0x00000000, + 0x3F800000, 0x00000000, 0x00000000, 0x00000000, + 0x3F800000, 0x3F800000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x447A0000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0xFF000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000 }; -//#endif -// rodata - +u64 D_80040148[] = { 0, 0, 0 }; #ifdef NONMATCHING void sub_GAME_7F092E50(void) { @@ -936,10 +963,14 @@ glabel sub_GAME_7F092E50 #ifdef NONMATCHING -void sub_GAME_7F09343C(void) { +// unsure of arguments +Gfx* sub_GAME_7F09343C(Gfx*, s32) { } #else +// unsure of arguments +Gfx* sub_GAME_7F09343C(Gfx*, s32); + GLOBAL_ASM( .text glabel sub_GAME_7F09343C diff --git a/src/game/unk_092E50.h b/src/game/unk_092E50.h index 71ad86ce..61bfde7d 100644 --- a/src/game/unk_092E50.h +++ b/src/game/unk_092E50.h @@ -3,7 +3,8 @@ #include -extern f32 D_8003FD94[]; +extern f32 g_SkyCloudOffset; +extern u32 D_8003FDA0[]; extern f32 flt_CODE_bss_80079E80; extern f32 flt_CODE_bss_80079E84; diff --git a/src/game/unk_09B7A0.c b/src/game/unk_09B7A0.c index 30e4a2d7..bff88b26 100644 --- a/src/game/unk_09B7A0.c +++ b/src/game/unk_09B7A0.c @@ -400,7 +400,7 @@ glabel sub_GAME_7F09B820 #ifdef NONMATCHING void sub_GAME_7F09BAC4(void) { - //s32 *extract_id_from_object_structure_microcode(void *, void *); /* extern */ + //s32 *modelGetNodeRwData(void *, void *); /* extern */ //void *get_ptr_obj_pos_list_current_entry(); /* extern */ s32 *temp_v0_2; @@ -429,7 +429,7 @@ loop_4: phi_a1_2 = phi_a1; phi_a1_3 = phi_a1; if ((phi_a1->unk0 & 0xFF) == 0x18) { - temp_v0_2 = extract_id_from_object_structure_microcode(temp_a0, phi_a1); + temp_v0_2 = modelGetNodeRwData(temp_a0, phi_a1); if (arg0 == *temp_v0_2) { *temp_v0_2 = arg1; } @@ -497,7 +497,7 @@ glabel sub_GAME_7F09BAC4 /* 0D0654 7F09BB24 304F00FF */ andi $t7, $v0, 0xff /* 0D0658 7F09BB28 55F00009 */ bnel $t7, $s0, .L7F09BB50 /* 0D065C 7F09BB2C 8CA20014 */ lw $v0, 0x14($a1) -/* 0D0660 7F09BB30 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0D0660 7F09BB30 0FC1B1E7 */ jal modelGetNodeRwData /* 0D0664 7F09BB34 00000000 */ nop /* 0D0668 7F09BB38 8C580000 */ lw $t8, ($v0) /* 0D066C 7F09BB3C 56780015 */ bnel $s3, $t8, .L7F09BB94 diff --git a/src/game/unk_0A1DA0.c b/src/game/unk_0A1DA0.c index 5f6c6750..9966326a 100644 --- a/src/game/unk_0A1DA0.c +++ b/src/game/unk_0A1DA0.c @@ -1,6 +1,20 @@ #include +#include #include "math_atan2f.h" #include "unk_0A1DA0.h" +#include "random.h" + +#ifndef VERSION_EU +#define SCALAR_1_7F0A2160 1.5f +#define SCALAR_2_7F0A2160 3.0f +#define SCALAR_3_7F0A2160 0.1f +#else +#define SCALAR_1_7F0A2160 1.8f +#define SCALAR_2_7F0A2160 3.6f +#define SCALAR_3_7F0A2160 0.12f +#endif + +#define UNK_8007A170_MAX 20 // bss //CODE.bss:8007A160 @@ -15,7 +29,7 @@ u32 dword_CODE_bss_8007A16C; // something explosion related // size of each item is 0x2c (see sub_GAME_7F0A3E1C) //CODE.bss:8007A170 -u8 dword_CODE_bss_8007A170[0x370]; +bondstruct_unk_8007A170 dword_CODE_bss_8007A170[UNK_8007A170_MAX]; #ifndef VERSION_EU //CODE.bss:8007A4E0 @@ -27,7 +41,7 @@ u8 dword_CODE_bss_8007B098[8]; // data //D:80040940 -u32 D_80040940 = 0; +s32 D_80040940 = 0; u32 D_80040944 = 0; u32 D_80040948 = 0; u32 D_8004094C = 0; @@ -320,1033 +334,70 @@ glabel sub_GAME_7F0A1DA0 #endif +void sub_GAME_7F0A2160(coord3d* arg0, f32 arg1, f32 arg2) +{ + u32 temp_v0; + f32 sp50; + f32 temp_f24; + u8 field67; + temp_f24 = (2.0f * (randomGetNext() * (1.0f / (f32)UINT_MAX))) - 1.0f; + sp50 = (randomGetNext() * (1.0f / (f32)UINT_MAX) * 1.12f) - .12f; + temp_v0 = randomGetNext(); + ptr_shattered_window_pieces[D_80040940].piece = 1; + ptr_shattered_window_pieces[D_80040940].x = arg0->x; + ptr_shattered_window_pieces[D_80040940].y = arg0->y; + ptr_shattered_window_pieces[D_80040940].z = arg0->z; -#ifdef NONMATCHING -void sub_GAME_7F0A2160(void) { + ptr_shattered_window_pieces[D_80040940].field_0x1c = temp_f24 * SCALAR_1_7F0A2160; + ptr_shattered_window_pieces[D_80040940].field_0x20 = sp50 * SCALAR_2_7F0A2160; + ptr_shattered_window_pieces[D_80040940].field_0x24 = ((2.0f * (temp_v0 * (1.0f / (f32)UINT_MAX))) - 1.0f) * SCALAR_1_7F0A2160; + ptr_shattered_window_pieces[D_80040940].field_0x38 = ((randomGetNext() * (1.0f / (f32)UINT_MAX) * 0.5f) + 1.0f) * arg2; + ptr_shattered_window_pieces[D_80040940].field_0x3a = ((randomGetNext() * (1.0f / (f32)UINT_MAX) * 0.5f) + 1.0f) * arg2; + ptr_shattered_window_pieces[D_80040940].field_0x3c = 0; + ptr_shattered_window_pieces[D_80040940].field_0x48 = ((randomGetNext() * (1.0f / (f32)UINT_MAX) * 0.5f) + 1.0f) * arg2; + ptr_shattered_window_pieces[D_80040940].field_0x4a = ((randomGetNext() * (1.0f / (f32)UINT_MAX) * 0.5f) + 1.0f) * -arg2; + ptr_shattered_window_pieces[D_80040940].field_0x4c = 0; + ptr_shattered_window_pieces[D_80040940].field_0x58 = ((randomGetNext() * (1.0f / (f32)UINT_MAX) * 0.5f) + 1.0f) * -arg2; + ptr_shattered_window_pieces[D_80040940].field_0x5a = ((randomGetNext() * (1.0f / (f32)UINT_MAX) * 0.5f) + 1.0f) * -arg2; + ptr_shattered_window_pieces[D_80040940].field_0x5c = 0; + ptr_shattered_window_pieces[D_80040940].field_0x40 = 0; + ptr_shattered_window_pieces[D_80040940].field_0x42 = 0; + ptr_shattered_window_pieces[D_80040940].field_0x50 = 0; + ptr_shattered_window_pieces[D_80040940].field_0x52 = 0; + ptr_shattered_window_pieces[D_80040940].field_0x60 = 0; + ptr_shattered_window_pieces[D_80040940].field_0x62 = 0; + ptr_shattered_window_pieces[D_80040940].field_0x44 = 5; + ptr_shattered_window_pieces[D_80040940].field_0x45 = 5; + ptr_shattered_window_pieces[D_80040940].field_0x46 = 0x7E; + ptr_shattered_window_pieces[D_80040940].field_0x54 = 5; + ptr_shattered_window_pieces[D_80040940].field_0x55 = 0xFB; + ptr_shattered_window_pieces[D_80040940].field_0x56 = 0x7E; + ptr_shattered_window_pieces[D_80040940].field_0x64 = 0xFB; + ptr_shattered_window_pieces[D_80040940].field_0x65 = 0xFB; + ptr_shattered_window_pieces[D_80040940].field_0x66 = 0x7E; + ptr_shattered_window_pieces[D_80040940].field_0x67 = 0xFF; + + field67 = ptr_shattered_window_pieces[D_80040940].field_0x67; + ptr_shattered_window_pieces[D_80040940].field_0x57 = field67; + ptr_shattered_window_pieces[D_80040940].field_0x47 = field67; + + ptr_shattered_window_pieces[D_80040940].field_0x10 = arg1; + ptr_shattered_window_pieces[D_80040940].field_0x14 = 0.0f; + + ptr_shattered_window_pieces[D_80040940].field_0x18 = (randomGetNext() * (1.0f / (f32)UINT_MAX)) * M_TAU_F; + + ptr_shattered_window_pieces[D_80040940].field_0x28 = (randomGetNext() * (1.0f / (f32)UINT_MAX)) * SCALAR_3_7F0A2160; + ptr_shattered_window_pieces[D_80040940].field_0x2c = (randomGetNext() * (1.0f / (f32)UINT_MAX)) * SCALAR_3_7F0A2160; + ptr_shattered_window_pieces[D_80040940].field_0x30 = (randomGetNext() * (1.0f / (f32)UINT_MAX)) * SCALAR_3_7F0A2160; + + D_80040940++; + if (D_80040940 >= SHATTERED_WINDOW_PIECES_BUFFER_LEN) { + D_80040940 = 0; + } } -#else -#ifndef VERSION_EU -GLOBAL_ASM( -.late_rodata -glabel D_80057718 -.word 0x3f8f5c29 /*1.12*/ -glabel D_8005771C -.word 0x3df5c28f /*0.12*/ -glabel D_80057720 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80057724 -.word 0x3dcccccd /*0.1*/ -.text -glabel sub_GAME_7F0A2160 -/* 0D6C90 7F0A2160 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0D6C94 7F0A2164 AFBF003C */ sw $ra, 0x3c($sp) -/* 0D6C98 7F0A2168 AFB20038 */ sw $s2, 0x38($sp) -/* 0D6C9C 7F0A216C AFB10034 */ sw $s1, 0x34($sp) -/* 0D6CA0 7F0A2170 AFB00030 */ sw $s0, 0x30($sp) -/* 0D6CA4 7F0A2174 F7B80028 */ sdc1 $f24, 0x28($sp) -/* 0D6CA8 7F0A2178 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 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 randomGetNext -/* 0D6CBC 7F0A218C AFA60060 */ sw $a2, 0x60($sp) -/* 0D6CC0 7F0A2190 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 0D6CC4 7F0A2194 4481A000 */ mtc1 $at, $f20 -/* 0D6CC8 7F0A2198 44822000 */ mtc1 $v0, $f4 -/* 0D6CCC 7F0A219C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0D6CD0 7F0A21A0 4481B000 */ mtc1 $at, $f22 -/* 0D6CD4 7F0A21A4 04410005 */ bgez $v0, .L7F0A21BC -/* 0D6CD8 7F0A21A8 468021A0 */ cvt.s.w $f6, $f4 -/* 0D6CDC 7F0A21AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6CE0 7F0A21B0 44814000 */ mtc1 $at, $f8 -/* 0D6CE4 7F0A21B4 00000000 */ nop -/* 0D6CE8 7F0A21B8 46083180 */ add.s $f6, $f6, $f8 -.L7F0A21BC: -/* 0D6CEC 7F0A21BC 46143002 */ mul.s $f0, $f6, $f20 -/* 0D6CF0 7F0A21C0 46000280 */ add.s $f10, $f0, $f0 -/* 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 -/* 0D6D04 7F0A21D4 468084A0 */ cvt.s.w $f18, $f16 -/* 0D6D08 7F0A21D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6D0C 7F0A21DC 44812000 */ mtc1 $at, $f4 -/* 0D6D10 7F0A21E0 00000000 */ nop -/* 0D6D14 7F0A21E4 46049480 */ add.s $f18, $f18, $f4 -.L7F0A21E8: -/* 0D6D18 7F0A21E8 46149202 */ mul.s $f8, $f18, $f20 -/* 0D6D1C 7F0A21EC 3C018005 */ lui $at, %hi(D_80057718) -/* 0D6D20 7F0A21F0 C4267718 */ lwc1 $f6, %lo(D_80057718)($at) -/* 0D6D24 7F0A21F4 3C018005 */ lui $at, %hi(D_8005771C) -/* 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 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 -/* 0D6D44 7F0A2214 8E180000 */ lw $t8, ($s0) -/* 0D6D48 7F0A2218 24120068 */ li $s2, 104 -/* 0D6D4C 7F0A221C 3C118008 */ lui $s1, %hi(ptr_shattered_window_pieces) -/* 0D6D50 7F0A2220 03120019 */ multu $t8, $s2 -/* 0D6D54 7F0A2224 2631A164 */ addiu $s1, %lo(ptr_shattered_window_pieces) # addiu $s1, $s1, -0x5e9c -/* 0D6D58 7F0A2228 8E2F0000 */ lw $t7, ($s1) -/* 0D6D5C 7F0A222C 8FA30058 */ lw $v1, 0x58($sp) -/* 0D6D60 7F0A2230 240E0001 */ li $t6, 1 -/* 0D6D64 7F0A2234 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 0D6D68 7F0A2238 44811000 */ mtc1 $at, $f2 -/* 0D6D6C 7F0A223C 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 0D6D70 7F0A2240 44812000 */ mtc1 $at, $f4 -/* 0D6D74 7F0A2244 4602C282 */ mul.s $f10, $f24, $f2 -/* 0D6D78 7F0A2248 0000C812 */ mflo $t9 -/* 0D6D7C 7F0A224C 01F94021 */ addu $t0, $t7, $t9 -/* 0D6D80 7F0A2250 AD0E0000 */ sw $t6, ($t0) -/* 0D6D84 7F0A2254 8E0A0000 */ lw $t2, ($s0) -/* 0D6D88 7F0A2258 8E290000 */ lw $t1, ($s1) -/* 0D6D8C 7F0A225C C4720000 */ lwc1 $f18, ($v1) -/* 0D6D90 7F0A2260 01520019 */ multu $t2, $s2 -/* 0D6D94 7F0A2264 00005812 */ mflo $t3 -/* 0D6D98 7F0A2268 012B6021 */ addu $t4, $t1, $t3 -/* 0D6D9C 7F0A226C E5920004 */ swc1 $f18, 4($t4) -/* 0D6DA0 7F0A2270 8E180000 */ lw $t8, ($s0) -/* 0D6DA4 7F0A2274 8E2D0000 */ lw $t5, ($s1) -/* 0D6DA8 7F0A2278 C4680004 */ lwc1 $f8, 4($v1) -/* 0D6DAC 7F0A227C 03120019 */ multu $t8, $s2 -/* 0D6DB0 7F0A2280 00007812 */ mflo $t7 -/* 0D6DB4 7F0A2284 01AFC821 */ addu $t9, $t5, $t7 -/* 0D6DB8 7F0A2288 E7280008 */ swc1 $f8, 8($t9) -/* 0D6DBC 7F0A228C 8E080000 */ lw $t0, ($s0) -/* 0D6DC0 7F0A2290 8E2E0000 */ lw $t6, ($s1) -/* 0D6DC4 7F0A2294 C4660008 */ lwc1 $f6, 8($v1) -/* 0D6DC8 7F0A2298 01120019 */ multu $t0, $s2 -/* 0D6DCC 7F0A229C 44824000 */ mtc1 $v0, $f8 -/* 0D6DD0 7F0A22A0 00005012 */ mflo $t2 -/* 0D6DD4 7F0A22A4 01CA4821 */ addu $t1, $t6, $t2 -/* 0D6DD8 7F0A22A8 E526000C */ swc1 $f6, 0xc($t1) -/* 0D6DDC 7F0A22AC 8E0C0000 */ lw $t4, ($s0) -/* 0D6DE0 7F0A22B0 8E2B0000 */ lw $t3, ($s1) -/* 0D6DE4 7F0A22B4 468041A0 */ cvt.s.w $f6, $f8 -/* 0D6DE8 7F0A22B8 01920019 */ multu $t4, $s2 -/* 0D6DEC 7F0A22BC 0000C012 */ mflo $t8 -/* 0D6DF0 7F0A22C0 01786821 */ addu $t5, $t3, $t8 -/* 0D6DF4 7F0A22C4 E5AA001C */ swc1 $f10, 0x1c($t5) -/* 0D6DF8 7F0A22C8 8E190000 */ lw $t9, ($s0) -/* 0D6DFC 7F0A22CC C7B00050 */ lwc1 $f16, 0x50($sp) -/* 0D6E00 7F0A22D0 8E2F0000 */ lw $t7, ($s1) -/* 0D6E04 7F0A22D4 03320019 */ multu $t9, $s2 -/* 0D6E08 7F0A22D8 46048482 */ mul.s $f18, $f16, $f4 -/* 0D6E0C 7F0A22DC 00004012 */ mflo $t0 -/* 0D6E10 7F0A22E0 01E87021 */ addu $t6, $t7, $t0 -/* 0D6E14 7F0A22E4 04410005 */ bgez $v0, .L7F0A22FC -/* 0D6E18 7F0A22E8 E5D20020 */ swc1 $f18, 0x20($t6) -/* 0D6E1C 7F0A22EC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6E20 7F0A22F0 44815000 */ mtc1 $at, $f10 -/* 0D6E24 7F0A22F4 00000000 */ nop -/* 0D6E28 7F0A22F8 460A3180 */ add.s $f6, $f6, $f10 -.L7F0A22FC: -/* 0D6E2C 7F0A22FC 46143002 */ mul.s $f0, $f6, $f20 -/* 0D6E30 7F0A2300 8E090000 */ lw $t1, ($s0) -/* 0D6E34 7F0A2304 8E2A0000 */ lw $t2, ($s1) -/* 0D6E38 7F0A2308 01320019 */ multu $t1, $s2 -/* 0D6E3C 7F0A230C 46000400 */ add.s $f16, $f0, $f0 -/* 0D6E40 7F0A2310 46168101 */ sub.s $f4, $f16, $f22 -/* 0D6E44 7F0A2314 00006012 */ mflo $t4 -/* 0D6E48 7F0A2318 46022482 */ mul.s $f18, $f4, $f2 -/* 0D6E4C 7F0A231C 014C5821 */ addu $t3, $t2, $t4 -/* 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 -/* 0D6E60 7F0A2330 4481C000 */ mtc1 $at, $f24 -/* 0D6E64 7F0A2334 04410005 */ bgez $v0, .L7F0A234C -/* 0D6E68 7F0A2338 468042A0 */ cvt.s.w $f10, $f8 -/* 0D6E6C 7F0A233C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6E70 7F0A2340 44813000 */ mtc1 $at, $f6 -/* 0D6E74 7F0A2344 00000000 */ nop -/* 0D6E78 7F0A2348 46065280 */ add.s $f10, $f10, $f6 -.L7F0A234C: -/* 0D6E7C 7F0A234C 46145402 */ mul.s $f16, $f10, $f20 -/* 0D6E80 7F0A2350 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D6E84 7F0A2354 8E0F0000 */ lw $t7, ($s0) -/* 0D6E88 7F0A2358 8E390000 */ lw $t9, ($s1) -/* 0D6E8C 7F0A235C 01F20019 */ multu $t7, $s2 -/* 0D6E90 7F0A2360 46188102 */ mul.s $f4, $f16, $f24 -/* 0D6E94 7F0A2364 46162480 */ add.s $f18, $f4, $f22 -/* 0D6E98 7F0A2368 00004012 */ mflo $t0 -/* 0D6E9C 7F0A236C 03287021 */ addu $t6, $t9, $t0 -/* 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 randomGetNext -/* 0D6EB0 7F0A2380 A5CD0038 */ sh $t5, 0x38($t6) -/* 0D6EB4 7F0A2384 44828000 */ mtc1 $v0, $f16 -/* 0D6EB8 7F0A2388 04410005 */ bgez $v0, .L7F0A23A0 -/* 0D6EBC 7F0A238C 46808120 */ cvt.s.w $f4, $f16 -/* 0D6EC0 7F0A2390 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6EC4 7F0A2394 44819000 */ mtc1 $at, $f18 -/* 0D6EC8 7F0A2398 00000000 */ nop -/* 0D6ECC 7F0A239C 46122100 */ add.s $f4, $f4, $f18 -.L7F0A23A0: -/* 0D6ED0 7F0A23A0 46142202 */ mul.s $f8, $f4, $f20 -/* 0D6ED4 7F0A23A4 C7B00060 */ lwc1 $f16, 0x60($sp) -/* 0D6ED8 7F0A23A8 8E0B0000 */ lw $t3, ($s0) -/* 0D6EDC 7F0A23AC 8E2C0000 */ lw $t4, ($s1) -/* 0D6EE0 7F0A23B0 01720019 */ multu $t3, $s2 -/* 0D6EE4 7F0A23B4 46184182 */ mul.s $f6, $f8, $f24 -/* 0D6EE8 7F0A23B8 46163280 */ add.s $f10, $f6, $f22 -/* 0D6EEC 7F0A23BC 0000C012 */ mflo $t8 -/* 0D6EF0 7F0A23C0 01987821 */ addu $t7, $t4, $t8 -/* 0D6EF4 7F0A23C4 46105482 */ mul.s $f18, $f10, $f16 -/* 0D6EF8 7F0A23C8 4600910D */ trunc.w.s $f4, $f18 -/* 0D6EFC 7F0A23CC 440A2000 */ mfc1 $t2, $f4 -/* 0D6F00 7F0A23D0 00000000 */ nop -/* 0D6F04 7F0A23D4 A5EA003A */ sh $t2, 0x3a($t7) -/* 0D6F08 7F0A23D8 8E080000 */ lw $t0, ($s0) -/* 0D6F0C 7F0A23DC 8E390000 */ lw $t9, ($s1) -/* 0D6F10 7F0A23E0 01120019 */ multu $t0, $s2 -/* 0D6F14 7F0A23E4 00006812 */ mflo $t5 -/* 0D6F18 7F0A23E8 032D7021 */ addu $t6, $t9, $t5 -/* 0D6F1C 7F0A23EC 0C002914 */ jal randomGetNext -/* 0D6F20 7F0A23F0 A5C0003C */ sh $zero, 0x3c($t6) -/* 0D6F24 7F0A23F4 44824000 */ mtc1 $v0, $f8 -/* 0D6F28 7F0A23F8 04410005 */ bgez $v0, .L7F0A2410 -/* 0D6F2C 7F0A23FC 468041A0 */ cvt.s.w $f6, $f8 -/* 0D6F30 7F0A2400 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6F34 7F0A2404 44815000 */ mtc1 $at, $f10 -/* 0D6F38 7F0A2408 00000000 */ nop -/* 0D6F3C 7F0A240C 460A3180 */ add.s $f6, $f6, $f10 -.L7F0A2410: -/* 0D6F40 7F0A2410 46143402 */ mul.s $f16, $f6, $f20 -/* 0D6F44 7F0A2414 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D6F48 7F0A2418 8E180000 */ lw $t8, ($s0) -/* 0D6F4C 7F0A241C 8E2C0000 */ lw $t4, ($s1) -/* 0D6F50 7F0A2420 03120019 */ multu $t8, $s2 -/* 0D6F54 7F0A2424 46188482 */ mul.s $f18, $f16, $f24 -/* 0D6F58 7F0A2428 46169100 */ add.s $f4, $f18, $f22 -/* 0D6F5C 7F0A242C 00005012 */ mflo $t2 -/* 0D6F60 7F0A2430 018A7821 */ addu $t7, $t4, $t2 -/* 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 randomGetNext -/* 0D6F74 7F0A2444 A5EB0048 */ sh $t3, 0x48($t7) -/* 0D6F78 7F0A2448 C7A00060 */ lwc1 $f0, 0x60($sp) -/* 0D6F7C 7F0A244C 44828000 */ mtc1 $v0, $f16 -/* 0D6F80 7F0A2450 46000007 */ neg.s $f0, $f0 -/* 0D6F84 7F0A2454 04410005 */ bgez $v0, .L7F0A246C -/* 0D6F88 7F0A2458 468084A0 */ cvt.s.w $f18, $f16 -/* 0D6F8C 7F0A245C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D6F90 7F0A2460 44812000 */ mtc1 $at, $f4 -/* 0D6F94 7F0A2464 00000000 */ nop -/* 0D6F98 7F0A2468 46049480 */ add.s $f18, $f18, $f4 -.L7F0A246C: -/* 0D6F9C 7F0A246C 46149202 */ mul.s $f8, $f18, $f20 -/* 0D6FA0 7F0A2470 8E0E0000 */ lw $t6, ($s0) -/* 0D6FA4 7F0A2474 8E2D0000 */ lw $t5, ($s1) -/* 0D6FA8 7F0A2478 01D20019 */ multu $t6, $s2 -/* 0D6FAC 7F0A247C 46184282 */ mul.s $f10, $f8, $f24 -/* 0D6FB0 7F0A2480 46165180 */ add.s $f6, $f10, $f22 -/* 0D6FB4 7F0A2484 00004812 */ mflo $t1 -/* 0D6FB8 7F0A2488 01A9C021 */ addu $t8, $t5, $t1 -/* 0D6FBC 7F0A248C 46003402 */ mul.s $f16, $f6, $f0 -/* 0D6FC0 7F0A2490 4600810D */ trunc.w.s $f4, $f16 -/* 0D6FC4 7F0A2494 44192000 */ mfc1 $t9, $f4 -/* 0D6FC8 7F0A2498 00000000 */ nop -/* 0D6FCC 7F0A249C A719004A */ sh $t9, 0x4a($t8) -/* 0D6FD0 7F0A24A0 8E0A0000 */ lw $t2, ($s0) -/* 0D6FD4 7F0A24A4 8E2C0000 */ lw $t4, ($s1) -/* 0D6FD8 7F0A24A8 01520019 */ multu $t2, $s2 -/* 0D6FDC 7F0A24AC 00005812 */ mflo $t3 -/* 0D6FE0 7F0A24B0 018B7821 */ addu $t7, $t4, $t3 -/* 0D6FE4 7F0A24B4 A5E0004C */ sh $zero, 0x4c($t7) -/* 0D6FE8 7F0A24B8 0C002914 */ jal randomGetNext -/* 0D6FEC 7F0A24BC E7A00044 */ swc1 $f0, 0x44($sp) -/* 0D6FF0 7F0A24C0 44829000 */ mtc1 $v0, $f18 -/* 0D6FF4 7F0A24C4 04410005 */ bgez $v0, .L7F0A24DC -/* 0D6FF8 7F0A24C8 46809220 */ cvt.s.w $f8, $f18 -/* 0D6FFC 7F0A24CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D7000 7F0A24D0 44815000 */ mtc1 $at, $f10 -/* 0D7004 7F0A24D4 00000000 */ nop -/* 0D7008 7F0A24D8 460A4200 */ add.s $f8, $f8, $f10 -.L7F0A24DC: -/* 0D700C 7F0A24DC 46144182 */ mul.s $f6, $f8, $f20 -/* 0D7010 7F0A24E0 C7B20044 */ lwc1 $f18, 0x44($sp) -/* 0D7014 7F0A24E4 8E090000 */ lw $t1, ($s0) -/* 0D7018 7F0A24E8 8E2D0000 */ lw $t5, ($s1) -/* 0D701C 7F0A24EC 01320019 */ multu $t1, $s2 -/* 0D7020 7F0A24F0 46183402 */ mul.s $f16, $f6, $f24 -/* 0D7024 7F0A24F4 46168100 */ add.s $f4, $f16, $f22 -/* 0D7028 7F0A24F8 0000C812 */ mflo $t9 -/* 0D702C 7F0A24FC 01B9C021 */ addu $t8, $t5, $t9 -/* 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 randomGetNext -/* 0D7040 7F0A2510 A70E0058 */ sh $t6, 0x58($t8) -/* 0D7044 7F0A2514 44823000 */ mtc1 $v0, $f6 -/* 0D7048 7F0A2518 24050005 */ li $a1, 5 -/* 0D704C 7F0A251C 2406007E */ li $a2, 126 -/* 0D7050 7F0A2520 240700FB */ li $a3, 251 -/* 0D7054 7F0A2524 04410005 */ bgez $v0, .L7F0A253C -/* 0D7058 7F0A2528 46803420 */ cvt.s.w $f16, $f6 -/* 0D705C 7F0A252C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D7060 7F0A2530 44812000 */ mtc1 $at, $f4 -/* 0D7064 7F0A2534 00000000 */ nop -/* 0D7068 7F0A2538 46048400 */ add.s $f16, $f16, $f4 -.L7F0A253C: -/* 0D706C 7F0A253C 46148482 */ mul.s $f18, $f16, $f20 -/* 0D7070 7F0A2540 C7A60044 */ lwc1 $f6, 0x44($sp) -/* 0D7074 7F0A2544 8E0F0000 */ lw $t7, ($s0) -/* 0D7078 7F0A2548 8E2B0000 */ lw $t3, ($s1) -/* 0D707C 7F0A254C 01F20019 */ multu $t7, $s2 -/* 0D7080 7F0A2550 46189282 */ mul.s $f10, $f18, $f24 -/* 0D7084 7F0A2554 46165200 */ add.s $f8, $f10, $f22 -/* 0D7088 7F0A2558 00004012 */ mflo $t0 -/* 0D708C 7F0A255C 01684821 */ addu $t1, $t3, $t0 -/* 0D7090 7F0A2560 44805000 */ mtc1 $zero, $f10 -/* 0D7094 7F0A2564 46064102 */ mul.s $f4, $f8, $f6 -/* 0D7098 7F0A2568 4600240D */ trunc.w.s $f16, $f4 -/* 0D709C 7F0A256C 440C8000 */ mfc1 $t4, $f16 -/* 0D70A0 7F0A2570 00000000 */ nop -/* 0D70A4 7F0A2574 A52C005A */ sh $t4, 0x5a($t1) -/* 0D70A8 7F0A2578 8E190000 */ lw $t9, ($s0) -/* 0D70AC 7F0A257C 8E2D0000 */ lw $t5, ($s1) -/* 0D70B0 7F0A2580 03320019 */ multu $t9, $s2 -/* 0D70B4 7F0A2584 00007012 */ mflo $t6 -/* 0D70B8 7F0A2588 01AEC021 */ addu $t8, $t5, $t6 -/* 0D70BC 7F0A258C A700005C */ sh $zero, 0x5c($t8) -/* 0D70C0 7F0A2590 8E0F0000 */ lw $t7, ($s0) -/* 0D70C4 7F0A2594 8E2A0000 */ lw $t2, ($s1) -/* 0D70C8 7F0A2598 01F20019 */ multu $t7, $s2 -/* 0D70CC 7F0A259C 00005812 */ mflo $t3 -/* 0D70D0 7F0A25A0 014B4021 */ addu $t0, $t2, $t3 -/* 0D70D4 7F0A25A4 A5000040 */ sh $zero, 0x40($t0) -/* 0D70D8 7F0A25A8 8E090000 */ lw $t1, ($s0) -/* 0D70DC 7F0A25AC 8E2C0000 */ lw $t4, ($s1) -/* 0D70E0 7F0A25B0 01320019 */ multu $t1, $s2 -/* 0D70E4 7F0A25B4 0000C812 */ mflo $t9 -/* 0D70E8 7F0A25B8 01996821 */ addu $t5, $t4, $t9 -/* 0D70EC 7F0A25BC A5A00042 */ sh $zero, 0x42($t5) -/* 0D70F0 7F0A25C0 8E180000 */ lw $t8, ($s0) -/* 0D70F4 7F0A25C4 8E2E0000 */ lw $t6, ($s1) -/* 0D70F8 7F0A25C8 03120019 */ multu $t8, $s2 -/* 0D70FC 7F0A25CC 00007812 */ mflo $t7 -/* 0D7100 7F0A25D0 01CF5021 */ addu $t2, $t6, $t7 -/* 0D7104 7F0A25D4 A5400050 */ sh $zero, 0x50($t2) -/* 0D7108 7F0A25D8 8E080000 */ lw $t0, ($s0) -/* 0D710C 7F0A25DC 8E2B0000 */ lw $t3, ($s1) -/* 0D7110 7F0A25E0 01120019 */ multu $t0, $s2 -/* 0D7114 7F0A25E4 00004812 */ mflo $t1 -/* 0D7118 7F0A25E8 01696021 */ addu $t4, $t3, $t1 -/* 0D711C 7F0A25EC A5800052 */ sh $zero, 0x52($t4) -/* 0D7120 7F0A25F0 8E0D0000 */ lw $t5, ($s0) -/* 0D7124 7F0A25F4 8E390000 */ lw $t9, ($s1) -/* 0D7128 7F0A25F8 01B20019 */ multu $t5, $s2 -/* 0D712C 7F0A25FC 0000C012 */ mflo $t8 -/* 0D7130 7F0A2600 03387021 */ addu $t6, $t9, $t8 -/* 0D7134 7F0A2604 A5C00060 */ sh $zero, 0x60($t6) -/* 0D7138 7F0A2608 8E0A0000 */ lw $t2, ($s0) -/* 0D713C 7F0A260C 8E2F0000 */ lw $t7, ($s1) -/* 0D7140 7F0A2610 01520019 */ multu $t2, $s2 -/* 0D7144 7F0A2614 00004012 */ mflo $t0 -/* 0D7148 7F0A2618 01E85821 */ addu $t3, $t7, $t0 -/* 0D714C 7F0A261C A5600062 */ sh $zero, 0x62($t3) -/* 0D7150 7F0A2620 8E0C0000 */ lw $t4, ($s0) -/* 0D7154 7F0A2624 8E290000 */ lw $t1, ($s1) -/* 0D7158 7F0A2628 01920019 */ multu $t4, $s2 -/* 0D715C 7F0A262C 00006812 */ mflo $t5 -/* 0D7160 7F0A2630 012DC821 */ addu $t9, $t1, $t5 -/* 0D7164 7F0A2634 A3250044 */ sb $a1, 0x44($t9) -/* 0D7168 7F0A2638 8E0E0000 */ lw $t6, ($s0) -/* 0D716C 7F0A263C 8E380000 */ lw $t8, ($s1) -/* 0D7170 7F0A2640 01D20019 */ multu $t6, $s2 -/* 0D7174 7F0A2644 00005012 */ mflo $t2 -/* 0D7178 7F0A2648 030A7821 */ addu $t7, $t8, $t2 -/* 0D717C 7F0A264C A1E50045 */ sb $a1, 0x45($t7) -/* 0D7180 7F0A2650 8E0B0000 */ lw $t3, ($s0) -/* 0D7184 7F0A2654 8E280000 */ lw $t0, ($s1) -/* 0D7188 7F0A2658 01720019 */ multu $t3, $s2 -/* 0D718C 7F0A265C 00006012 */ mflo $t4 -/* 0D7190 7F0A2660 010C4821 */ addu $t1, $t0, $t4 -/* 0D7194 7F0A2664 A1260046 */ sb $a2, 0x46($t1) -/* 0D7198 7F0A2668 8E190000 */ lw $t9, ($s0) -/* 0D719C 7F0A266C 8E2D0000 */ lw $t5, ($s1) -/* 0D71A0 7F0A2670 03320019 */ multu $t9, $s2 -/* 0D71A4 7F0A2674 00007012 */ mflo $t6 -/* 0D71A8 7F0A2678 01AEC021 */ addu $t8, $t5, $t6 -/* 0D71AC 7F0A267C A3050054 */ sb $a1, 0x54($t8) -/* 0D71B0 7F0A2680 8E0F0000 */ lw $t7, ($s0) -/* 0D71B4 7F0A2684 8E2A0000 */ lw $t2, ($s1) -/* 0D71B8 7F0A2688 01F20019 */ multu $t7, $s2 -/* 0D71BC 7F0A268C 00005812 */ mflo $t3 -/* 0D71C0 7F0A2690 014B4021 */ addu $t0, $t2, $t3 -/* 0D71C4 7F0A2694 A1070055 */ sb $a3, 0x55($t0) -/* 0D71C8 7F0A2698 8E090000 */ lw $t1, ($s0) -/* 0D71CC 7F0A269C 8E2C0000 */ lw $t4, ($s1) -/* 0D71D0 7F0A26A0 01320019 */ multu $t1, $s2 -/* 0D71D4 7F0A26A4 0000C812 */ mflo $t9 -/* 0D71D8 7F0A26A8 01996821 */ addu $t5, $t4, $t9 -/* 0D71DC 7F0A26AC A1A60056 */ sb $a2, 0x56($t5) -/* 0D71E0 7F0A26B0 8E180000 */ lw $t8, ($s0) -/* 0D71E4 7F0A26B4 8E2E0000 */ lw $t6, ($s1) -/* 0D71E8 7F0A26B8 03120019 */ multu $t8, $s2 -/* 0D71EC 7F0A26BC 00007812 */ mflo $t7 -/* 0D71F0 7F0A26C0 01CF5021 */ addu $t2, $t6, $t7 -/* 0D71F4 7F0A26C4 A1470064 */ sb $a3, 0x64($t2) -/* 0D71F8 7F0A26C8 8E080000 */ lw $t0, ($s0) -/* 0D71FC 7F0A26CC 8E2B0000 */ lw $t3, ($s1) -/* 0D7200 7F0A26D0 240F00FF */ li $t7, 255 -/* 0D7204 7F0A26D4 01120019 */ multu $t0, $s2 -/* 0D7208 7F0A26D8 00004812 */ mflo $t1 -/* 0D720C 7F0A26DC 01696021 */ addu $t4, $t3, $t1 -/* 0D7210 7F0A26E0 A1870065 */ sb $a3, 0x65($t4) -/* 0D7214 7F0A26E4 8E0D0000 */ lw $t5, ($s0) -/* 0D7218 7F0A26E8 8E390000 */ lw $t9, ($s1) -/* 0D721C 7F0A26EC 01B20019 */ multu $t5, $s2 -/* 0D7220 7F0A26F0 0000C012 */ mflo $t8 -/* 0D7224 7F0A26F4 03387021 */ addu $t6, $t9, $t8 -/* 0D7228 7F0A26F8 A1C60066 */ sb $a2, 0x66($t6) -/* 0D722C 7F0A26FC 8E080000 */ lw $t0, ($s0) -/* 0D7230 7F0A2700 8E2A0000 */ lw $t2, ($s1) -/* 0D7234 7F0A2704 01120019 */ multu $t0, $s2 -/* 0D7238 7F0A2708 00005812 */ mflo $t3 -/* 0D723C 7F0A270C 014B4821 */ addu $t1, $t2, $t3 -/* 0D7240 7F0A2710 A12F0067 */ sb $t7, 0x67($t1) -/* 0D7244 7F0A2714 8E0D0000 */ lw $t5, ($s0) -/* 0D7248 7F0A2718 8E2C0000 */ lw $t4, ($s1) -/* 0D724C 7F0A271C 01B20019 */ multu $t5, $s2 -/* 0D7250 7F0A2720 0000C812 */ mflo $t9 -/* 0D7254 7F0A2724 01991821 */ addu $v1, $t4, $t9 -/* 0D7258 7F0A2728 90640067 */ lbu $a0, 0x67($v1) -/* 0D725C 7F0A272C A0640057 */ sb $a0, 0x57($v1) -/* 0D7260 7F0A2730 8E0E0000 */ lw $t6, ($s0) -/* 0D7264 7F0A2734 8E380000 */ lw $t8, ($s1) -/* 0D7268 7F0A2738 01D20019 */ multu $t6, $s2 -/* 0D726C 7F0A273C 00004012 */ mflo $t0 -/* 0D7270 7F0A2740 03085021 */ addu $t2, $t8, $t0 -/* 0D7274 7F0A2744 A1440047 */ sb $a0, 0x47($t2) -/* 0D7278 7F0A2748 8E0F0000 */ lw $t7, ($s0) -/* 0D727C 7F0A274C 8E2B0000 */ lw $t3, ($s1) -/* 0D7280 7F0A2750 C7B2005C */ lwc1 $f18, 0x5c($sp) -/* 0D7284 7F0A2754 01F20019 */ multu $t7, $s2 -/* 0D7288 7F0A2758 00004812 */ mflo $t1 -/* 0D728C 7F0A275C 01696821 */ addu $t5, $t3, $t1 -/* 0D7290 7F0A2760 E5B20010 */ swc1 $f18, 0x10($t5) -/* 0D7294 7F0A2764 8E190000 */ lw $t9, ($s0) -/* 0D7298 7F0A2768 8E2C0000 */ lw $t4, ($s1) -/* 0D729C 7F0A276C 03320019 */ multu $t9, $s2 -/* 0D72A0 7F0A2770 00007012 */ mflo $t6 -/* 0D72A4 7F0A2774 018EC021 */ addu $t8, $t4, $t6 -/* 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 -/* 0D72B8 7F0A2788 04410004 */ bgez $v0, .L7F0A279C -/* 0D72BC 7F0A278C 468041A0 */ cvt.s.w $f6, $f8 -/* 0D72C0 7F0A2790 44812000 */ mtc1 $at, $f4 -/* 0D72C4 7F0A2794 00000000 */ nop -/* 0D72C8 7F0A2798 46043180 */ add.s $f6, $f6, $f4 -.L7F0A279C: -/* 0D72CC 7F0A279C 8E0A0000 */ lw $t2, ($s0) -/* 0D72D0 7F0A27A0 46143402 */ mul.s $f16, $f6, $f20 -/* 0D72D4 7F0A27A4 3C018005 */ lui $at, %hi(D_80057720) -/* 0D72D8 7F0A27A8 01520019 */ multu $t2, $s2 -/* 0D72DC 7F0A27AC C4327720 */ lwc1 $f18, %lo(D_80057720)($at) -/* 0D72E0 7F0A27B0 8E280000 */ lw $t0, ($s1) -/* 0D72E4 7F0A27B4 46128282 */ mul.s $f10, $f16, $f18 -/* 0D72E8 7F0A27B8 00007812 */ mflo $t7 -/* 0D72EC 7F0A27BC 010F5821 */ addu $t3, $t0, $t7 -/* 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) -/* 0D7300 7F0A27D0 C4367724 */ lwc1 $f22, %lo(D_80057724)($at) -/* 0D7304 7F0A27D4 04410005 */ bgez $v0, .L7F0A27EC -/* 0D7308 7F0A27D8 46804120 */ cvt.s.w $f4, $f8 -/* 0D730C 7F0A27DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D7310 7F0A27E0 44813000 */ mtc1 $at, $f6 -/* 0D7314 7F0A27E4 00000000 */ nop -/* 0D7318 7F0A27E8 46062100 */ add.s $f4, $f4, $f6 -.L7F0A27EC: -/* 0D731C 7F0A27EC 8E0D0000 */ lw $t5, ($s0) -/* 0D7320 7F0A27F0 46142402 */ mul.s $f16, $f4, $f20 -/* 0D7324 7F0A27F4 8E290000 */ lw $t1, ($s1) -/* 0D7328 7F0A27F8 01B20019 */ multu $t5, $s2 -/* 0D732C 7F0A27FC 46168482 */ mul.s $f18, $f16, $f22 -/* 0D7330 7F0A2800 0000C812 */ mflo $t9 -/* 0D7334 7F0A2804 01396021 */ addu $t4, $t1, $t9 -/* 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 -/* 0D7348 7F0A2818 04410004 */ bgez $v0, .L7F0A282C -/* 0D734C 7F0A281C 46805220 */ cvt.s.w $f8, $f10 -/* 0D7350 7F0A2820 44813000 */ mtc1 $at, $f6 -/* 0D7354 7F0A2824 00000000 */ nop -/* 0D7358 7F0A2828 46064200 */ add.s $f8, $f8, $f6 -.L7F0A282C: -/* 0D735C 7F0A282C 8E180000 */ lw $t8, ($s0) -/* 0D7360 7F0A2830 46144102 */ mul.s $f4, $f8, $f20 -/* 0D7364 7F0A2834 8E2E0000 */ lw $t6, ($s1) -/* 0D7368 7F0A2838 03120019 */ multu $t8, $s2 -/* 0D736C 7F0A283C 46162402 */ mul.s $f16, $f4, $f22 -/* 0D7370 7F0A2840 00005012 */ mflo $t2 -/* 0D7374 7F0A2844 01CA4021 */ addu $t0, $t6, $t2 -/* 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 -/* 0D7388 7F0A2858 04410004 */ bgez $v0, .L7F0A286C -/* 0D738C 7F0A285C 468092A0 */ cvt.s.w $f10, $f18 -/* 0D7390 7F0A2860 44813000 */ mtc1 $at, $f6 -/* 0D7394 7F0A2864 00000000 */ nop -/* 0D7398 7F0A2868 46065280 */ add.s $f10, $f10, $f6 -.L7F0A286C: -/* 0D739C 7F0A286C 8E0B0000 */ lw $t3, ($s0) -/* 0D73A0 7F0A2870 46145202 */ mul.s $f8, $f10, $f20 -/* 0D73A4 7F0A2874 8E2F0000 */ lw $t7, ($s1) -/* 0D73A8 7F0A2878 01720019 */ multu $t3, $s2 -/* 0D73AC 7F0A287C 3C0E8008 */ lui $t6, %hi(SHATTERED_WINDOW_PIECES_BUFFER_LEN) -/* 0D73B0 7F0A2880 46164102 */ mul.s $f4, $f8, $f22 -/* 0D73B4 7F0A2884 00006812 */ mflo $t5 -/* 0D73B8 7F0A2888 01ED4821 */ addu $t1, $t7, $t5 -/* 0D73BC 7F0A288C E5240030 */ swc1 $f4, 0x30($t1) -/* 0D73C0 7F0A2890 8E190000 */ lw $t9, ($s0) -/* 0D73C4 7F0A2894 272C0001 */ addiu $t4, $t9, 1 -/* 0D73C8 7F0A2898 AE0C0000 */ sw $t4, ($s0) -/* 0D73CC 7F0A289C 8DCEA160 */ lw $t6, %lo(SHATTERED_WINDOW_PIECES_BUFFER_LEN)($t6) -/* 0D73D0 7F0A28A0 018E082A */ slt $at, $t4, $t6 -/* 0D73D4 7F0A28A4 54200003 */ bnezl $at, .L7F0A28B4 -/* 0D73D8 7F0A28A8 8FBF003C */ lw $ra, 0x3c($sp) -/* 0D73DC 7F0A28AC AE000000 */ sw $zero, ($s0) -/* 0D73E0 7F0A28B0 8FBF003C */ lw $ra, 0x3c($sp) -.L7F0A28B4: -/* 0D73E4 7F0A28B4 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0D73E8 7F0A28B8 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0D73EC 7F0A28BC D7B80028 */ ldc1 $f24, 0x28($sp) -/* 0D73F0 7F0A28C0 8FB00030 */ lw $s0, 0x30($sp) -/* 0D73F4 7F0A28C4 8FB10034 */ lw $s1, 0x34($sp) -/* 0D73F8 7F0A28C8 8FB20038 */ lw $s2, 0x38($sp) -/* 0D73FC 7F0A28CC 03E00008 */ jr $ra -/* 0D7400 7F0A28D0 27BD0058 */ addiu $sp, $sp, 0x58 -) -#endif -#ifdef VERSION_EU -GLOBAL_ASM( -.late_rodata -glabel D_80057718 -.word 0x3f8f5c29 /*1.12*/ -glabel D_8005771C -.word 0x3df5c28f /*0.12*/ -glabel D_8004CDF0 -.word 0x3fe66666 /*1.8*/ -glabel D_8004CDF4 -.word 0x40666666 /*3.6*/ -glabel D_80057720 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80057724 -.word 0x3df5c28f -.text -glabel sub_GAME_7F0A2160 -/* 0D4090 7F0A16A0 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0D4094 7F0A16A4 AFBF003C */ sw $ra, 0x3c($sp) -/* 0D4098 7F0A16A8 AFB20038 */ sw $s2, 0x38($sp) -/* 0D409C 7F0A16AC AFB10034 */ sw $s1, 0x34($sp) -/* 0D40A0 7F0A16B0 AFB00030 */ sw $s0, 0x30($sp) -/* 0D40A4 7F0A16B4 F7B80028 */ sdc1 $f24, 0x28($sp) -/* 0D40A8 7F0A16B8 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 0D40AC 7F0A16BC F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0D40B0 7F0A16C0 AFA40058 */ sw $a0, 0x58($sp) -/* 0D40B4 7F0A16C4 AFA5005C */ sw $a1, 0x5c($sp) -/* 0D40B8 7F0A16C8 0C00262C */ jal randomGetNext -/* 0D40BC 7F0A16CC AFA60060 */ sw $a2, 0x60($sp) -/* 0D40C0 7F0A16D0 3C012F80 */ li $at, 0x2F800000 # 0.000000 -/* 0D40C4 7F0A16D4 4481A000 */ mtc1 $at, $f20 -/* 0D40C8 7F0A16D8 44822000 */ mtc1 $v0, $f4 -/* 0D40CC 7F0A16DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0D40D0 7F0A16E0 4481B000 */ mtc1 $at, $f22 -/* 0D40D4 7F0A16E4 04410005 */ bgez $v0, .L7F0A16FC -/* 0D40D8 7F0A16E8 468021A0 */ cvt.s.w $f6, $f4 -/* 0D40DC 7F0A16EC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D40E0 7F0A16F0 44814000 */ mtc1 $at, $f8 -/* 0D40E4 7F0A16F4 00000000 */ nop -/* 0D40E8 7F0A16F8 46083180 */ add.s $f6, $f6, $f8 -.L7F0A16FC: -/* 0D40EC 7F0A16FC 46143002 */ mul.s $f0, $f6, $f20 -/* 0D40F0 7F0A1700 46000280 */ add.s $f10, $f0, $f0 -/* 0D40F4 7F0A1704 0C00262C */ jal randomGetNext -/* 0D40F8 7F0A1708 46165601 */ sub.s $f24, $f10, $f22 -/* 0D40FC 7F0A170C 44828000 */ mtc1 $v0, $f16 -/* 0D4100 7F0A1710 04410005 */ bgez $v0, .L7F0A1728 -/* 0D4104 7F0A1714 468084A0 */ cvt.s.w $f18, $f16 -/* 0D4108 7F0A1718 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D410C 7F0A171C 44812000 */ mtc1 $at, $f4 -/* 0D4110 7F0A1720 00000000 */ nop -/* 0D4114 7F0A1724 46049480 */ add.s $f18, $f18, $f4 -.L7F0A1728: -/* 0D4118 7F0A1728 46149202 */ mul.s $f8, $f18, $f20 -/* 0D411C 7F0A172C 3C018005 */ lui $at, %hi(D_80057718) # $at, 0x8005 -/* 0D4120 7F0A1730 C426CDE8 */ lwc1 $f6, %lo(D_80057718)($at) -/* 0D4124 7F0A1734 3C018005 */ lui $at, %hi(D_8005771C) # $at, 0x8005 -/* 0D4128 7F0A1738 C430CDEC */ lwc1 $f16, %lo(D_8005771C)($at) -/* 0D412C 7F0A173C 46064282 */ mul.s $f10, $f8, $f6 -/* 0D4130 7F0A1740 46105101 */ sub.s $f4, $f10, $f16 -/* 0D4134 7F0A1744 0C00262C */ jal randomGetNext -/* 0D4138 7F0A1748 E7A40050 */ swc1 $f4, 0x50($sp) -/* 0D413C 7F0A174C 3C108004 */ lui $s0, %hi(D_80040940) # $s0, 0x8004 -/* 0D4140 7F0A1750 2610A590 */ addiu $s0, %lo(D_80040940) # addiu $s0, $s0, -0x5a70 -/* 0D4144 7F0A1754 8E180000 */ lw $t8, ($s0) -/* 0D4148 7F0A1758 24120068 */ li $s2, 104 -/* 0D414C 7F0A175C 3C118007 */ lui $s1, %hi(ptr_shattered_window_pieces) # $s1, 0x8007 -/* 0D4150 7F0A1760 03120019 */ multu $t8, $s2 -/* 0D4154 7F0A1764 26318C74 */ addiu $s1, %lo(ptr_shattered_window_pieces) # addiu $s1, $s1, -0x738c -/* 0D4158 7F0A1768 8E2F0000 */ lw $t7, ($s1) -/* 0D415C 7F0A176C 3C018005 */ lui $at, %hi(D_8004CDF0) # $at, 0x8005 -/* 0D4160 7F0A1770 C422CDF0 */ lwc1 $f2, %lo(D_8004CDF0)($at) -/* 0D4164 7F0A1774 8FA30058 */ lw $v1, 0x58($sp) -/* 0D4168 7F0A1778 240E0001 */ li $t6, 1 -/* 0D416C 7F0A177C 4602C282 */ mul.s $f10, $f24, $f2 -/* 0D4170 7F0A1780 3C018005 */ lui $at, %hi(D_8004CDF4) # $at, 0x8005 -/* 0D4174 7F0A1784 0000C812 */ mflo $t9 -/* 0D4178 7F0A1788 01F94021 */ addu $t0, $t7, $t9 -/* 0D417C 7F0A178C AD0E0000 */ sw $t6, ($t0) -/* 0D4180 7F0A1790 8E0A0000 */ lw $t2, ($s0) -/* 0D4184 7F0A1794 8E290000 */ lw $t1, ($s1) -/* 0D4188 7F0A1798 C4720000 */ lwc1 $f18, ($v1) -/* 0D418C 7F0A179C 01520019 */ multu $t2, $s2 -/* 0D4190 7F0A17A0 00005812 */ mflo $t3 -/* 0D4194 7F0A17A4 012B6021 */ addu $t4, $t1, $t3 -/* 0D4198 7F0A17A8 E5920004 */ swc1 $f18, 4($t4) -/* 0D419C 7F0A17AC 8E180000 */ lw $t8, ($s0) -/* 0D41A0 7F0A17B0 8E2D0000 */ lw $t5, ($s1) -/* 0D41A4 7F0A17B4 C4680004 */ lwc1 $f8, 4($v1) -/* 0D41A8 7F0A17B8 03120019 */ multu $t8, $s2 -/* 0D41AC 7F0A17BC 00007812 */ mflo $t7 -/* 0D41B0 7F0A17C0 01AFC821 */ addu $t9, $t5, $t7 -/* 0D41B4 7F0A17C4 E7280008 */ swc1 $f8, 8($t9) -/* 0D41B8 7F0A17C8 8E080000 */ lw $t0, ($s0) -/* 0D41BC 7F0A17CC 8E2E0000 */ lw $t6, ($s1) -/* 0D41C0 7F0A17D0 C4660008 */ lwc1 $f6, 8($v1) -/* 0D41C4 7F0A17D4 01120019 */ multu $t0, $s2 -/* 0D41C8 7F0A17D8 44824000 */ mtc1 $v0, $f8 -/* 0D41CC 7F0A17DC 00005012 */ mflo $t2 -/* 0D41D0 7F0A17E0 01CA4821 */ addu $t1, $t6, $t2 -/* 0D41D4 7F0A17E4 E526000C */ swc1 $f6, 0xc($t1) -/* 0D41D8 7F0A17E8 8E0C0000 */ lw $t4, ($s0) -/* 0D41DC 7F0A17EC 8E2B0000 */ lw $t3, ($s1) -/* 0D41E0 7F0A17F0 468041A0 */ cvt.s.w $f6, $f8 -/* 0D41E4 7F0A17F4 01920019 */ multu $t4, $s2 -/* 0D41E8 7F0A17F8 0000C012 */ mflo $t8 -/* 0D41EC 7F0A17FC 01786821 */ addu $t5, $t3, $t8 -/* 0D41F0 7F0A1800 E5AA001C */ swc1 $f10, 0x1c($t5) -/* 0D41F4 7F0A1804 8E190000 */ lw $t9, ($s0) -/* 0D41F8 7F0A1808 C424CDF4 */ lwc1 $f4, %lo(D_8004CDF4)($at) -/* 0D41FC 7F0A180C C7B00050 */ lwc1 $f16, 0x50($sp) -/* 0D4200 7F0A1810 03320019 */ multu $t9, $s2 -/* 0D4204 7F0A1814 8E2F0000 */ lw $t7, ($s1) -/* 0D4208 7F0A1818 46048482 */ mul.s $f18, $f16, $f4 -/* 0D420C 7F0A181C 00004012 */ mflo $t0 -/* 0D4210 7F0A1820 01E87021 */ addu $t6, $t7, $t0 -/* 0D4214 7F0A1824 04410005 */ bgez $v0, .L7F0A183C -/* 0D4218 7F0A1828 E5D20020 */ swc1 $f18, 0x20($t6) -/* 0D421C 7F0A182C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4220 7F0A1830 44815000 */ mtc1 $at, $f10 -/* 0D4224 7F0A1834 00000000 */ nop -/* 0D4228 7F0A1838 460A3180 */ add.s $f6, $f6, $f10 -.L7F0A183C: -/* 0D422C 7F0A183C 46143002 */ mul.s $f0, $f6, $f20 -/* 0D4230 7F0A1840 8E090000 */ lw $t1, ($s0) -/* 0D4234 7F0A1844 8E2A0000 */ lw $t2, ($s1) -/* 0D4238 7F0A1848 01320019 */ multu $t1, $s2 -/* 0D423C 7F0A184C 46000400 */ add.s $f16, $f0, $f0 -/* 0D4240 7F0A1850 46168101 */ sub.s $f4, $f16, $f22 -/* 0D4244 7F0A1854 00006012 */ mflo $t4 -/* 0D4248 7F0A1858 46022482 */ mul.s $f18, $f4, $f2 -/* 0D424C 7F0A185C 014C5821 */ addu $t3, $t2, $t4 -/* 0D4250 7F0A1860 0C00262C */ jal randomGetNext -/* 0D4254 7F0A1864 E5720024 */ swc1 $f18, 0x24($t3) -/* 0D4258 7F0A1868 44824000 */ mtc1 $v0, $f8 -/* 0D425C 7F0A186C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0D4260 7F0A1870 4481C000 */ mtc1 $at, $f24 -/* 0D4264 7F0A1874 04410005 */ bgez $v0, .L7F0A188C -/* 0D4268 7F0A1878 468042A0 */ cvt.s.w $f10, $f8 -/* 0D426C 7F0A187C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4270 7F0A1880 44813000 */ mtc1 $at, $f6 -/* 0D4274 7F0A1884 00000000 */ nop -/* 0D4278 7F0A1888 46065280 */ add.s $f10, $f10, $f6 -.L7F0A188C: -/* 0D427C 7F0A188C 46145402 */ mul.s $f16, $f10, $f20 -/* 0D4280 7F0A1890 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D4284 7F0A1894 8E0F0000 */ lw $t7, ($s0) -/* 0D4288 7F0A1898 8E390000 */ lw $t9, ($s1) -/* 0D428C 7F0A189C 01F20019 */ multu $t7, $s2 -/* 0D4290 7F0A18A0 46188102 */ mul.s $f4, $f16, $f24 -/* 0D4294 7F0A18A4 46162480 */ add.s $f18, $f4, $f22 -/* 0D4298 7F0A18A8 00004012 */ mflo $t0 -/* 0D429C 7F0A18AC 03287021 */ addu $t6, $t9, $t0 -/* 0D42A0 7F0A18B0 46089182 */ mul.s $f6, $f18, $f8 -/* 0D42A4 7F0A18B4 4600328D */ trunc.w.s $f10, $f6 -/* 0D42A8 7F0A18B8 440D5000 */ mfc1 $t5, $f10 -/* 0D42AC 7F0A18BC 0C00262C */ jal randomGetNext -/* 0D42B0 7F0A18C0 A5CD0038 */ sh $t5, 0x38($t6) -/* 0D42B4 7F0A18C4 44828000 */ mtc1 $v0, $f16 -/* 0D42B8 7F0A18C8 04410005 */ bgez $v0, .L7F0A18E0 -/* 0D42BC 7F0A18CC 46808120 */ cvt.s.w $f4, $f16 -/* 0D42C0 7F0A18D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D42C4 7F0A18D4 44819000 */ mtc1 $at, $f18 -/* 0D42C8 7F0A18D8 00000000 */ nop -/* 0D42CC 7F0A18DC 46122100 */ add.s $f4, $f4, $f18 -.L7F0A18E0: -/* 0D42D0 7F0A18E0 46142202 */ mul.s $f8, $f4, $f20 -/* 0D42D4 7F0A18E4 C7B00060 */ lwc1 $f16, 0x60($sp) -/* 0D42D8 7F0A18E8 8E0B0000 */ lw $t3, ($s0) -/* 0D42DC 7F0A18EC 8E2C0000 */ lw $t4, ($s1) -/* 0D42E0 7F0A18F0 01720019 */ multu $t3, $s2 -/* 0D42E4 7F0A18F4 46184182 */ mul.s $f6, $f8, $f24 -/* 0D42E8 7F0A18F8 46163280 */ add.s $f10, $f6, $f22 -/* 0D42EC 7F0A18FC 0000C012 */ mflo $t8 -/* 0D42F0 7F0A1900 01987821 */ addu $t7, $t4, $t8 -/* 0D42F4 7F0A1904 46105482 */ mul.s $f18, $f10, $f16 -/* 0D42F8 7F0A1908 4600910D */ trunc.w.s $f4, $f18 -/* 0D42FC 7F0A190C 440A2000 */ mfc1 $t2, $f4 -/* 0D4300 7F0A1910 00000000 */ nop -/* 0D4304 7F0A1914 A5EA003A */ sh $t2, 0x3a($t7) -/* 0D4308 7F0A1918 8E080000 */ lw $t0, ($s0) -/* 0D430C 7F0A191C 8E390000 */ lw $t9, ($s1) -/* 0D4310 7F0A1920 01120019 */ multu $t0, $s2 -/* 0D4314 7F0A1924 00006812 */ mflo $t5 -/* 0D4318 7F0A1928 032D7021 */ addu $t6, $t9, $t5 -/* 0D431C 7F0A192C 0C00262C */ jal randomGetNext -/* 0D4320 7F0A1930 A5C0003C */ sh $zero, 0x3c($t6) -/* 0D4324 7F0A1934 44824000 */ mtc1 $v0, $f8 -/* 0D4328 7F0A1938 04410005 */ bgez $v0, .L7F0A1950 -/* 0D432C 7F0A193C 468041A0 */ cvt.s.w $f6, $f8 -/* 0D4330 7F0A1940 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4334 7F0A1944 44815000 */ mtc1 $at, $f10 -/* 0D4338 7F0A1948 00000000 */ nop -/* 0D433C 7F0A194C 460A3180 */ add.s $f6, $f6, $f10 -.L7F0A1950: -/* 0D4340 7F0A1950 46143402 */ mul.s $f16, $f6, $f20 -/* 0D4344 7F0A1954 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 0D4348 7F0A1958 8E180000 */ lw $t8, ($s0) -/* 0D434C 7F0A195C 8E2C0000 */ lw $t4, ($s1) -/* 0D4350 7F0A1960 03120019 */ multu $t8, $s2 -/* 0D4354 7F0A1964 46188482 */ mul.s $f18, $f16, $f24 -/* 0D4358 7F0A1968 46169100 */ add.s $f4, $f18, $f22 -/* 0D435C 7F0A196C 00005012 */ mflo $t2 -/* 0D4360 7F0A1970 018A7821 */ addu $t7, $t4, $t2 -/* 0D4364 7F0A1974 46082282 */ mul.s $f10, $f4, $f8 -/* 0D4368 7F0A1978 4600518D */ trunc.w.s $f6, $f10 -/* 0D436C 7F0A197C 440B3000 */ mfc1 $t3, $f6 -/* 0D4370 7F0A1980 0C00262C */ jal randomGetNext -/* 0D4374 7F0A1984 A5EB0048 */ sh $t3, 0x48($t7) -/* 0D4378 7F0A1988 C7A00060 */ lwc1 $f0, 0x60($sp) -/* 0D437C 7F0A198C 44828000 */ mtc1 $v0, $f16 -/* 0D4380 7F0A1990 46000007 */ neg.s $f0, $f0 -/* 0D4384 7F0A1994 04410005 */ bgez $v0, .L7F0A19AC -/* 0D4388 7F0A1998 468084A0 */ cvt.s.w $f18, $f16 -/* 0D438C 7F0A199C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4390 7F0A19A0 44812000 */ mtc1 $at, $f4 -/* 0D4394 7F0A19A4 00000000 */ nop -/* 0D4398 7F0A19A8 46049480 */ add.s $f18, $f18, $f4 -.L7F0A19AC: -/* 0D439C 7F0A19AC 46149202 */ mul.s $f8, $f18, $f20 -/* 0D43A0 7F0A19B0 8E0E0000 */ lw $t6, ($s0) -/* 0D43A4 7F0A19B4 8E2D0000 */ lw $t5, ($s1) -/* 0D43A8 7F0A19B8 01D20019 */ multu $t6, $s2 -/* 0D43AC 7F0A19BC 46184282 */ mul.s $f10, $f8, $f24 -/* 0D43B0 7F0A19C0 46165180 */ add.s $f6, $f10, $f22 -/* 0D43B4 7F0A19C4 00004812 */ mflo $t1 -/* 0D43B8 7F0A19C8 01A9C021 */ addu $t8, $t5, $t1 -/* 0D43BC 7F0A19CC 46003402 */ mul.s $f16, $f6, $f0 -/* 0D43C0 7F0A19D0 4600810D */ trunc.w.s $f4, $f16 -/* 0D43C4 7F0A19D4 44192000 */ mfc1 $t9, $f4 -/* 0D43C8 7F0A19D8 00000000 */ nop -/* 0D43CC 7F0A19DC A719004A */ sh $t9, 0x4a($t8) -/* 0D43D0 7F0A19E0 8E0A0000 */ lw $t2, ($s0) -/* 0D43D4 7F0A19E4 8E2C0000 */ lw $t4, ($s1) -/* 0D43D8 7F0A19E8 01520019 */ multu $t2, $s2 -/* 0D43DC 7F0A19EC 00005812 */ mflo $t3 -/* 0D43E0 7F0A19F0 018B7821 */ addu $t7, $t4, $t3 -/* 0D43E4 7F0A19F4 A5E0004C */ sh $zero, 0x4c($t7) -/* 0D43E8 7F0A19F8 0C00262C */ jal randomGetNext -/* 0D43EC 7F0A19FC E7A00044 */ swc1 $f0, 0x44($sp) -/* 0D43F0 7F0A1A00 44829000 */ mtc1 $v0, $f18 -/* 0D43F4 7F0A1A04 04410005 */ bgez $v0, .L7F0A1A1C -/* 0D43F8 7F0A1A08 46809220 */ cvt.s.w $f8, $f18 -/* 0D43FC 7F0A1A0C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4400 7F0A1A10 44815000 */ mtc1 $at, $f10 -/* 0D4404 7F0A1A14 00000000 */ nop -/* 0D4408 7F0A1A18 460A4200 */ add.s $f8, $f8, $f10 -.L7F0A1A1C: -/* 0D440C 7F0A1A1C 46144182 */ mul.s $f6, $f8, $f20 -/* 0D4410 7F0A1A20 C7B20044 */ lwc1 $f18, 0x44($sp) -/* 0D4414 7F0A1A24 8E090000 */ lw $t1, ($s0) -/* 0D4418 7F0A1A28 8E2D0000 */ lw $t5, ($s1) -/* 0D441C 7F0A1A2C 01320019 */ multu $t1, $s2 -/* 0D4420 7F0A1A30 46183402 */ mul.s $f16, $f6, $f24 -/* 0D4424 7F0A1A34 46168100 */ add.s $f4, $f16, $f22 -/* 0D4428 7F0A1A38 0000C812 */ mflo $t9 -/* 0D442C 7F0A1A3C 01B9C021 */ addu $t8, $t5, $t9 -/* 0D4430 7F0A1A40 46122282 */ mul.s $f10, $f4, $f18 -/* 0D4434 7F0A1A44 4600520D */ trunc.w.s $f8, $f10 -/* 0D4438 7F0A1A48 440E4000 */ mfc1 $t6, $f8 -/* 0D443C 7F0A1A4C 0C00262C */ jal randomGetNext -/* 0D4440 7F0A1A50 A70E0058 */ sh $t6, 0x58($t8) -/* 0D4444 7F0A1A54 44823000 */ mtc1 $v0, $f6 -/* 0D4448 7F0A1A58 24050005 */ li $a1, 5 -/* 0D444C 7F0A1A5C 2406007E */ li $a2, 126 -/* 0D4450 7F0A1A60 240700FB */ li $a3, 251 -/* 0D4454 7F0A1A64 04410005 */ bgez $v0, .L7F0A1A7C -/* 0D4458 7F0A1A68 46803420 */ cvt.s.w $f16, $f6 -/* 0D445C 7F0A1A6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4460 7F0A1A70 44812000 */ mtc1 $at, $f4 -/* 0D4464 7F0A1A74 00000000 */ nop -/* 0D4468 7F0A1A78 46048400 */ add.s $f16, $f16, $f4 -.L7F0A1A7C: -/* 0D446C 7F0A1A7C 46148482 */ mul.s $f18, $f16, $f20 -/* 0D4470 7F0A1A80 C7A60044 */ lwc1 $f6, 0x44($sp) -/* 0D4474 7F0A1A84 8E0F0000 */ lw $t7, ($s0) -/* 0D4478 7F0A1A88 8E2B0000 */ lw $t3, ($s1) -/* 0D447C 7F0A1A8C 01F20019 */ multu $t7, $s2 -/* 0D4480 7F0A1A90 46189282 */ mul.s $f10, $f18, $f24 -/* 0D4484 7F0A1A94 46165200 */ add.s $f8, $f10, $f22 -/* 0D4488 7F0A1A98 00004012 */ mflo $t0 -/* 0D448C 7F0A1A9C 01684821 */ addu $t1, $t3, $t0 -/* 0D4490 7F0A1AA0 44805000 */ mtc1 $zero, $f10 -/* 0D4494 7F0A1AA4 46064102 */ mul.s $f4, $f8, $f6 -/* 0D4498 7F0A1AA8 4600240D */ trunc.w.s $f16, $f4 -/* 0D449C 7F0A1AAC 440C8000 */ mfc1 $t4, $f16 -/* 0D44A0 7F0A1AB0 00000000 */ nop -/* 0D44A4 7F0A1AB4 A52C005A */ sh $t4, 0x5a($t1) -/* 0D44A8 7F0A1AB8 8E190000 */ lw $t9, ($s0) -/* 0D44AC 7F0A1ABC 8E2D0000 */ lw $t5, ($s1) -/* 0D44B0 7F0A1AC0 03320019 */ multu $t9, $s2 -/* 0D44B4 7F0A1AC4 00007012 */ mflo $t6 -/* 0D44B8 7F0A1AC8 01AEC021 */ addu $t8, $t5, $t6 -/* 0D44BC 7F0A1ACC A700005C */ sh $zero, 0x5c($t8) -/* 0D44C0 7F0A1AD0 8E0F0000 */ lw $t7, ($s0) -/* 0D44C4 7F0A1AD4 8E2A0000 */ lw $t2, ($s1) -/* 0D44C8 7F0A1AD8 01F20019 */ multu $t7, $s2 -/* 0D44CC 7F0A1ADC 00005812 */ mflo $t3 -/* 0D44D0 7F0A1AE0 014B4021 */ addu $t0, $t2, $t3 -/* 0D44D4 7F0A1AE4 A5000040 */ sh $zero, 0x40($t0) -/* 0D44D8 7F0A1AE8 8E090000 */ lw $t1, ($s0) -/* 0D44DC 7F0A1AEC 8E2C0000 */ lw $t4, ($s1) -/* 0D44E0 7F0A1AF0 01320019 */ multu $t1, $s2 -/* 0D44E4 7F0A1AF4 0000C812 */ mflo $t9 -/* 0D44E8 7F0A1AF8 01996821 */ addu $t5, $t4, $t9 -/* 0D44EC 7F0A1AFC A5A00042 */ sh $zero, 0x42($t5) -/* 0D44F0 7F0A1B00 8E180000 */ lw $t8, ($s0) -/* 0D44F4 7F0A1B04 8E2E0000 */ lw $t6, ($s1) -/* 0D44F8 7F0A1B08 03120019 */ multu $t8, $s2 -/* 0D44FC 7F0A1B0C 00007812 */ mflo $t7 -/* 0D4500 7F0A1B10 01CF5021 */ addu $t2, $t6, $t7 -/* 0D4504 7F0A1B14 A5400050 */ sh $zero, 0x50($t2) -/* 0D4508 7F0A1B18 8E080000 */ lw $t0, ($s0) -/* 0D450C 7F0A1B1C 8E2B0000 */ lw $t3, ($s1) -/* 0D4510 7F0A1B20 01120019 */ multu $t0, $s2 -/* 0D4514 7F0A1B24 00004812 */ mflo $t1 -/* 0D4518 7F0A1B28 01696021 */ addu $t4, $t3, $t1 -/* 0D451C 7F0A1B2C A5800052 */ sh $zero, 0x52($t4) -/* 0D4520 7F0A1B30 8E0D0000 */ lw $t5, ($s0) -/* 0D4524 7F0A1B34 8E390000 */ lw $t9, ($s1) -/* 0D4528 7F0A1B38 01B20019 */ multu $t5, $s2 -/* 0D452C 7F0A1B3C 0000C012 */ mflo $t8 -/* 0D4530 7F0A1B40 03387021 */ addu $t6, $t9, $t8 -/* 0D4534 7F0A1B44 A5C00060 */ sh $zero, 0x60($t6) -/* 0D4538 7F0A1B48 8E0A0000 */ lw $t2, ($s0) -/* 0D453C 7F0A1B4C 8E2F0000 */ lw $t7, ($s1) -/* 0D4540 7F0A1B50 01520019 */ multu $t2, $s2 -/* 0D4544 7F0A1B54 00004012 */ mflo $t0 -/* 0D4548 7F0A1B58 01E85821 */ addu $t3, $t7, $t0 -/* 0D454C 7F0A1B5C A5600062 */ sh $zero, 0x62($t3) -/* 0D4550 7F0A1B60 8E0C0000 */ lw $t4, ($s0) -/* 0D4554 7F0A1B64 8E290000 */ lw $t1, ($s1) -/* 0D4558 7F0A1B68 01920019 */ multu $t4, $s2 -/* 0D455C 7F0A1B6C 00006812 */ mflo $t5 -/* 0D4560 7F0A1B70 012DC821 */ addu $t9, $t1, $t5 -/* 0D4564 7F0A1B74 A3250044 */ sb $a1, 0x44($t9) -/* 0D4568 7F0A1B78 8E0E0000 */ lw $t6, ($s0) -/* 0D456C 7F0A1B7C 8E380000 */ lw $t8, ($s1) -/* 0D4570 7F0A1B80 01D20019 */ multu $t6, $s2 -/* 0D4574 7F0A1B84 00005012 */ mflo $t2 -/* 0D4578 7F0A1B88 030A7821 */ addu $t7, $t8, $t2 -/* 0D457C 7F0A1B8C A1E50045 */ sb $a1, 0x45($t7) -/* 0D4580 7F0A1B90 8E0B0000 */ lw $t3, ($s0) -/* 0D4584 7F0A1B94 8E280000 */ lw $t0, ($s1) -/* 0D4588 7F0A1B98 01720019 */ multu $t3, $s2 -/* 0D458C 7F0A1B9C 00006012 */ mflo $t4 -/* 0D4590 7F0A1BA0 010C4821 */ addu $t1, $t0, $t4 -/* 0D4594 7F0A1BA4 A1260046 */ sb $a2, 0x46($t1) -/* 0D4598 7F0A1BA8 8E190000 */ lw $t9, ($s0) -/* 0D459C 7F0A1BAC 8E2D0000 */ lw $t5, ($s1) -/* 0D45A0 7F0A1BB0 03320019 */ multu $t9, $s2 -/* 0D45A4 7F0A1BB4 00007012 */ mflo $t6 -/* 0D45A8 7F0A1BB8 01AEC021 */ addu $t8, $t5, $t6 -/* 0D45AC 7F0A1BBC A3050054 */ sb $a1, 0x54($t8) -/* 0D45B0 7F0A1BC0 8E0F0000 */ lw $t7, ($s0) -/* 0D45B4 7F0A1BC4 8E2A0000 */ lw $t2, ($s1) -/* 0D45B8 7F0A1BC8 01F20019 */ multu $t7, $s2 -/* 0D45BC 7F0A1BCC 00005812 */ mflo $t3 -/* 0D45C0 7F0A1BD0 014B4021 */ addu $t0, $t2, $t3 -/* 0D45C4 7F0A1BD4 A1070055 */ sb $a3, 0x55($t0) -/* 0D45C8 7F0A1BD8 8E090000 */ lw $t1, ($s0) -/* 0D45CC 7F0A1BDC 8E2C0000 */ lw $t4, ($s1) -/* 0D45D0 7F0A1BE0 01320019 */ multu $t1, $s2 -/* 0D45D4 7F0A1BE4 0000C812 */ mflo $t9 -/* 0D45D8 7F0A1BE8 01996821 */ addu $t5, $t4, $t9 -/* 0D45DC 7F0A1BEC A1A60056 */ sb $a2, 0x56($t5) -/* 0D45E0 7F0A1BF0 8E180000 */ lw $t8, ($s0) -/* 0D45E4 7F0A1BF4 8E2E0000 */ lw $t6, ($s1) -/* 0D45E8 7F0A1BF8 03120019 */ multu $t8, $s2 -/* 0D45EC 7F0A1BFC 00007812 */ mflo $t7 -/* 0D45F0 7F0A1C00 01CF5021 */ addu $t2, $t6, $t7 -/* 0D45F4 7F0A1C04 A1470064 */ sb $a3, 0x64($t2) -/* 0D45F8 7F0A1C08 8E080000 */ lw $t0, ($s0) -/* 0D45FC 7F0A1C0C 8E2B0000 */ lw $t3, ($s1) -/* 0D4600 7F0A1C10 240F00FF */ li $t7, 255 -/* 0D4604 7F0A1C14 01120019 */ multu $t0, $s2 -/* 0D4608 7F0A1C18 00004812 */ mflo $t1 -/* 0D460C 7F0A1C1C 01696021 */ addu $t4, $t3, $t1 -/* 0D4610 7F0A1C20 A1870065 */ sb $a3, 0x65($t4) -/* 0D4614 7F0A1C24 8E0D0000 */ lw $t5, ($s0) -/* 0D4618 7F0A1C28 8E390000 */ lw $t9, ($s1) -/* 0D461C 7F0A1C2C 01B20019 */ multu $t5, $s2 -/* 0D4620 7F0A1C30 0000C012 */ mflo $t8 -/* 0D4624 7F0A1C34 03387021 */ addu $t6, $t9, $t8 -/* 0D4628 7F0A1C38 A1C60066 */ sb $a2, 0x66($t6) -/* 0D462C 7F0A1C3C 8E080000 */ lw $t0, ($s0) -/* 0D4630 7F0A1C40 8E2A0000 */ lw $t2, ($s1) -/* 0D4634 7F0A1C44 01120019 */ multu $t0, $s2 -/* 0D4638 7F0A1C48 00005812 */ mflo $t3 -/* 0D463C 7F0A1C4C 014B4821 */ addu $t1, $t2, $t3 -/* 0D4640 7F0A1C50 A12F0067 */ sb $t7, 0x67($t1) -/* 0D4644 7F0A1C54 8E0D0000 */ lw $t5, ($s0) -/* 0D4648 7F0A1C58 8E2C0000 */ lw $t4, ($s1) -/* 0D464C 7F0A1C5C 01B20019 */ multu $t5, $s2 -/* 0D4650 7F0A1C60 0000C812 */ mflo $t9 -/* 0D4654 7F0A1C64 01991821 */ addu $v1, $t4, $t9 -/* 0D4658 7F0A1C68 90640067 */ lbu $a0, 0x67($v1) -/* 0D465C 7F0A1C6C A0640057 */ sb $a0, 0x57($v1) -/* 0D4660 7F0A1C70 8E0E0000 */ lw $t6, ($s0) -/* 0D4664 7F0A1C74 8E380000 */ lw $t8, ($s1) -/* 0D4668 7F0A1C78 01D20019 */ multu $t6, $s2 -/* 0D466C 7F0A1C7C 00004012 */ mflo $t0 -/* 0D4670 7F0A1C80 03085021 */ addu $t2, $t8, $t0 -/* 0D4674 7F0A1C84 A1440047 */ sb $a0, 0x47($t2) -/* 0D4678 7F0A1C88 8E0F0000 */ lw $t7, ($s0) -/* 0D467C 7F0A1C8C 8E2B0000 */ lw $t3, ($s1) -/* 0D4680 7F0A1C90 C7B2005C */ lwc1 $f18, 0x5c($sp) -/* 0D4684 7F0A1C94 01F20019 */ multu $t7, $s2 -/* 0D4688 7F0A1C98 00004812 */ mflo $t1 -/* 0D468C 7F0A1C9C 01696821 */ addu $t5, $t3, $t1 -/* 0D4690 7F0A1CA0 E5B20010 */ swc1 $f18, 0x10($t5) -/* 0D4694 7F0A1CA4 8E190000 */ lw $t9, ($s0) -/* 0D4698 7F0A1CA8 8E2C0000 */ lw $t4, ($s1) -/* 0D469C 7F0A1CAC 03320019 */ multu $t9, $s2 -/* 0D46A0 7F0A1CB0 00007012 */ mflo $t6 -/* 0D46A4 7F0A1CB4 018EC021 */ addu $t8, $t4, $t6 -/* 0D46A8 7F0A1CB8 0C00262C */ jal randomGetNext -/* 0D46AC 7F0A1CBC E70A0014 */ swc1 $f10, 0x14($t8) -/* 0D46B0 7F0A1CC0 44824000 */ mtc1 $v0, $f8 -/* 0D46B4 7F0A1CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D46B8 7F0A1CC8 04410004 */ bgez $v0, .L7F0A1CDC -/* 0D46BC 7F0A1CCC 468041A0 */ cvt.s.w $f6, $f8 -/* 0D46C0 7F0A1CD0 44812000 */ mtc1 $at, $f4 -/* 0D46C4 7F0A1CD4 00000000 */ nop -/* 0D46C8 7F0A1CD8 46043180 */ add.s $f6, $f6, $f4 -.L7F0A1CDC: -/* 0D46CC 7F0A1CDC 8E0A0000 */ lw $t2, ($s0) -/* 0D46D0 7F0A1CE0 46143402 */ mul.s $f16, $f6, $f20 -/* 0D46D4 7F0A1CE4 3C018005 */ lui $at, %hi(D_80057720) # $at, 0x8005 -/* 0D46D8 7F0A1CE8 01520019 */ multu $t2, $s2 -/* 0D46DC 7F0A1CEC C432CDF8 */ lwc1 $f18, %lo(D_80057720)($at) -/* 0D46E0 7F0A1CF0 8E280000 */ lw $t0, ($s1) -/* 0D46E4 7F0A1CF4 46128282 */ mul.s $f10, $f16, $f18 -/* 0D46E8 7F0A1CF8 00007812 */ mflo $t7 -/* 0D46EC 7F0A1CFC 010F5821 */ addu $t3, $t0, $t7 -/* 0D46F0 7F0A1D00 0C00262C */ jal randomGetNext -/* 0D46F4 7F0A1D04 E56A0018 */ swc1 $f10, 0x18($t3) -/* 0D46F8 7F0A1D08 44824000 */ mtc1 $v0, $f8 -/* 0D46FC 7F0A1D0C 3C018005 */ lui $at, %hi(D_80057724) # $at, 0x8005 -/* 0D4700 7F0A1D10 C436CDFC */ lwc1 $f22, %lo(D_80057724)($at) -/* 0D4704 7F0A1D14 04410005 */ bgez $v0, .L7F0A1D2C -/* 0D4708 7F0A1D18 46804120 */ cvt.s.w $f4, $f8 -/* 0D470C 7F0A1D1C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4710 7F0A1D20 44813000 */ mtc1 $at, $f6 -/* 0D4714 7F0A1D24 00000000 */ nop -/* 0D4718 7F0A1D28 46062100 */ add.s $f4, $f4, $f6 -.L7F0A1D2C: -/* 0D471C 7F0A1D2C 8E0D0000 */ lw $t5, ($s0) -/* 0D4720 7F0A1D30 46142402 */ mul.s $f16, $f4, $f20 -/* 0D4724 7F0A1D34 8E290000 */ lw $t1, ($s1) -/* 0D4728 7F0A1D38 01B20019 */ multu $t5, $s2 -/* 0D472C 7F0A1D3C 46168482 */ mul.s $f18, $f16, $f22 -/* 0D4730 7F0A1D40 0000C812 */ mflo $t9 -/* 0D4734 7F0A1D44 01396021 */ addu $t4, $t1, $t9 -/* 0D4738 7F0A1D48 0C00262C */ jal randomGetNext -/* 0D473C 7F0A1D4C E5920028 */ swc1 $f18, 0x28($t4) -/* 0D4740 7F0A1D50 44825000 */ mtc1 $v0, $f10 -/* 0D4744 7F0A1D54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4748 7F0A1D58 04410004 */ bgez $v0, .L7F0A1D6C -/* 0D474C 7F0A1D5C 46805220 */ cvt.s.w $f8, $f10 -/* 0D4750 7F0A1D60 44813000 */ mtc1 $at, $f6 -/* 0D4754 7F0A1D64 00000000 */ nop -/* 0D4758 7F0A1D68 46064200 */ add.s $f8, $f8, $f6 -.L7F0A1D6C: -/* 0D475C 7F0A1D6C 8E180000 */ lw $t8, ($s0) -/* 0D4760 7F0A1D70 46144102 */ mul.s $f4, $f8, $f20 -/* 0D4764 7F0A1D74 8E2E0000 */ lw $t6, ($s1) -/* 0D4768 7F0A1D78 03120019 */ multu $t8, $s2 -/* 0D476C 7F0A1D7C 46162402 */ mul.s $f16, $f4, $f22 -/* 0D4770 7F0A1D80 00005012 */ mflo $t2 -/* 0D4774 7F0A1D84 01CA4021 */ addu $t0, $t6, $t2 -/* 0D4778 7F0A1D88 0C00262C */ jal randomGetNext -/* 0D477C 7F0A1D8C E510002C */ swc1 $f16, 0x2c($t0) -/* 0D4780 7F0A1D90 44829000 */ mtc1 $v0, $f18 -/* 0D4784 7F0A1D94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0D4788 7F0A1D98 04410004 */ bgez $v0, .L7F0A1DAC -/* 0D478C 7F0A1D9C 468092A0 */ cvt.s.w $f10, $f18 -/* 0D4790 7F0A1DA0 44813000 */ mtc1 $at, $f6 -/* 0D4794 7F0A1DA4 00000000 */ nop -/* 0D4798 7F0A1DA8 46065280 */ add.s $f10, $f10, $f6 -.L7F0A1DAC: -/* 0D479C 7F0A1DAC 8E0B0000 */ lw $t3, ($s0) -/* 0D47A0 7F0A1DB0 46145202 */ mul.s $f8, $f10, $f20 -/* 0D47A4 7F0A1DB4 8E2F0000 */ lw $t7, ($s1) -/* 0D47A8 7F0A1DB8 01720019 */ multu $t3, $s2 -/* 0D47AC 7F0A1DBC 3C0E8007 */ lui $t6, %hi(SHATTERED_WINDOW_PIECES_BUFFER_LEN) # $t6, 0x8007 -/* 0D47B0 7F0A1DC0 46164102 */ mul.s $f4, $f8, $f22 -/* 0D47B4 7F0A1DC4 00006812 */ mflo $t5 -/* 0D47B8 7F0A1DC8 01ED4821 */ addu $t1, $t7, $t5 -/* 0D47BC 7F0A1DCC E5240030 */ swc1 $f4, 0x30($t1) -/* 0D47C0 7F0A1DD0 8E190000 */ lw $t9, ($s0) -/* 0D47C4 7F0A1DD4 272C0001 */ addiu $t4, $t9, 1 -/* 0D47C8 7F0A1DD8 AE0C0000 */ sw $t4, ($s0) -/* 0D47CC 7F0A1DDC 8DCE8C70 */ lw $t6, %lo(SHATTERED_WINDOW_PIECES_BUFFER_LEN)($t6) -/* 0D47D0 7F0A1DE0 018E082A */ slt $at, $t4, $t6 -/* 0D47D4 7F0A1DE4 54200003 */ bnezl $at, .L7F0A1DF4 -/* 0D47D8 7F0A1DE8 8FBF003C */ lw $ra, 0x3c($sp) -/* 0D47DC 7F0A1DEC AE000000 */ sw $zero, ($s0) -/* 0D47E0 7F0A1DF0 8FBF003C */ lw $ra, 0x3c($sp) -.L7F0A1DF4: -/* 0D47E4 7F0A1DF4 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0D47E8 7F0A1DF8 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 0D47EC 7F0A1DFC D7B80028 */ ldc1 $f24, 0x28($sp) -/* 0D47F0 7F0A1E00 8FB00030 */ lw $s0, 0x30($sp) -/* 0D47F4 7F0A1E04 8FB10034 */ lw $s1, 0x34($sp) -/* 0D47F8 7F0A1E08 8FB20038 */ lw $s2, 0x38($sp) -/* 0D47FC 7F0A1E0C 03E00008 */ jr $ra -/* 0D4800 7F0A1E10 27BD0058 */ addiu $sp, $sp, 0x58 -) -#endif -#endif - - #ifdef NONMATCHING @@ -3737,34 +2788,20 @@ void unused_7F0A3BA4(s32 arg0, struct rgba_u8 *arg1) } +void sub_GAME_7F0A3BD8(void) +{ + s32 i; + s32 start_index; + if (1) { start_index = 0; } -#ifdef NONMATCHING -void sub_GAME_7F0A3BD8(void) { - + for (i = start_index; (i < UNK_8007A170_MAX) ^ 0; i++) + { + dword_CODE_bss_8007A170[i].unk0C = 0; + dword_CODE_bss_8007A170[i].unk04 = 0; + dword_CODE_bss_8007A170[i].unk00 = 0; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0A3BD8 -/* 0D8708 7F0A3BD8 3C028008 */ lui $v0, %hi(dword_CODE_bss_8007A170) -/* 0D870C 7F0A3BDC 3C038008 */ lui $v1, %hi(dword_CODE_bss_8007A170 + 0x370) -/* 0D8710 7F0A3BE0 2463A4E0 */ addiu $v1, %lo(dword_CODE_bss_8007A170 + 0x370) # addiu $v1, $v1, -0x5b20 -/* 0D8714 7F0A3BE4 2442A170 */ addiu $v0, %lo(dword_CODE_bss_8007A170) # addiu $v0, $v0, -0x5e90 -.L7F0A3BE8: -/* 0D8718 7F0A3BE8 2442002C */ addiu $v0, $v0, 0x2c -/* 0D871C 7F0A3BEC 0043082B */ sltu $at, $v0, $v1 -/* 0D8720 7F0A3BF0 AC40FFE0 */ sw $zero, -0x20($v0) -/* 0D8724 7F0A3BF4 A440FFD8 */ sh $zero, -0x28($v0) -/* 0D8728 7F0A3BF8 1420FFFB */ bnez $at, .L7F0A3BE8 -/* 0D872C 7F0A3BFC AC40FFD4 */ sw $zero, -0x2c($v0) -/* 0D8730 7F0A3C00 03E00008 */ jr $ra -/* 0D8734 7F0A3C04 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -4132,9 +3169,23 @@ glabel sub_GAME_7F0A3E1C #ifdef NONMATCHING -void sub_GAME_7F0A3EA0(void) { +// not close to matching but functionally equivalent +void sub_GAME_7F0A3EA0(void) +{ + s32 i; + for (i = 0; (i < UNK_8007A170_MAX); i++) + { + if (dword_CODE_bss_8007A170[i].unk04 <= 0) { continue; } + + dword_CODE_bss_8007A170[i].unk00 += g_ClockTimer; + + if ((dword_CODE_bss_8007A170[i].unk00 >= 0) && (dword_CODE_bss_8007A170[i].unk00 >= dword_CODE_bss_8007A170[i].unk04)) { + dword_CODE_bss_8007A170[i].unk04 = 0; + } + } } + #else GLOBAL_ASM( .text diff --git a/src/game/unk_0A1DA0.h b/src/game/unk_0A1DA0.h index 91d80bb8..0768d0e5 100644 --- a/src/game/unk_0A1DA0.h +++ b/src/game/unk_0A1DA0.h @@ -4,13 +4,13 @@ #include typedef struct s_shattered_window_piece { - s32* piece; + s32 piece; f32 x; f32 y; f32 z; f32 field_0x10; f32 field_0x14; - s32 field_0x18; + f32 field_0x18; f32 field_0x1c; f32 field_0x20; f32 field_0x24; @@ -50,9 +50,24 @@ typedef struct s_shattered_window_piece { u8 field_0x67; } s_shattered_window_piece; +typedef struct bondstruct_unk_8007A170 { + u32 unk00; + s16 unk04; + s16 unk06; + u32 unk08; + u32 unk0C; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1c; + u32 unk20; + u32 unk24; + u32 unk28; +} bondstruct_unk_8007A170; + extern s32 SHATTERED_WINDOW_PIECES_BUFFER_LEN; extern s_shattered_window_piece* ptr_shattered_window_pieces; -extern u32 D_80040940; +extern s32 D_80040940; extern u32 D_80040980; extern u32 D_80040984; @@ -78,5 +93,6 @@ Gfx *sub_GAME_7F0A3B40(Gfx *gdl, s32 *arg1); Gfx * sub_GAME_7F0A3330(Gfx *arg0, void * arg1, s32 arg2); void sub_GAME_7F0A2F30(s32 *arg0, s32 arg1, s32 arg2, f32 arg3); struct WatchVertex *setup_watch_rectangles(struct WatchVertex *vtx, s32 startx, s32 startz, s32 width, s32 height, s32 horizontal_offset, s32 vertical_offset); +void sub_GAME_7F0A2160(coord3d * arg0, f32 arg1, f32 arg2); #endif diff --git a/src/game/unk_0B3200.c b/src/game/unk_0B3200.c index 6201c8ed..2bbfb414 100644 --- a/src/game/unk_0B3200.c +++ b/src/game/unk_0B3200.c @@ -1,476 +1,192 @@ #include - +#include "bondtypes.h" // rodata - - -#ifdef NONMATCHING -f32 sub_GAME_7F0B3200(f32 *param_1,f32 *param_2,f32 *param_3,f32 *param_4) - +f32 sub_GAME_7F0B3200(coord2d *arg0, coord2d *arg1, coord2d *arg2, coord2d *arg3) { - if ((*param_2 - *param_1) * param_3[1] - param_4[1] + (param_2[1] - param_1[1]) * *param_4 - *param_3 == 0.00000000) { - return 1.00000000; - } - else { - - if ((((*param_3 - *param_1) * param_3[1] - param_4[1] + (param_3[1] - param_1[1]) * *param_4 - *param_3) / (*param_2 - *param_1) * param_3[1] - param_4[1] + (param_2[1] - param_1[1]) * *param_4 - *param_3 < 0.00000000) || (1.00000000 < ((*param_3 - *param_1) * param_3[1] - param_4[1] + (param_3[1] - param_1[1]) * *param_4 - *param_3) / (*param_2 - *param_1) * param_3[1] - param_4[1] + (param_2[1] - param_1[1]) * *param_4 - *param_3)) { - return 1.00000000; + f32 mult1 = arg2->f[1] - arg3->f[1]; + f32 mult2 = arg3->f[0] - arg2->f[0]; + f32 a = (arg2->f[1] - arg0->f[1]) * mult2 + (arg2->f[0] - arg0->f[0]) * mult1; + f32 b = (arg1->f[1] - arg0->f[1]) * mult2 + (arg1->f[0] - arg0->f[0]) * mult1; + + if (b == 0.0f) + { + return 1.0f; } - } + a /= b; + + if (a < 0.0f || a > 1.0f) + { + return 1.0f; + } + + return a; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B3200 -/* 0E7D30 7F0B3200 C4CE0000 */ lwc1 $f14, ($a2) -/* 0E7D34 7F0B3204 C4E60000 */ lwc1 $f6, ($a3) -/* 0E7D38 7F0B3208 C4880004 */ lwc1 $f8, 4($a0) -/* 0E7D3C 7F0B320C C4C20004 */ lwc1 $f2, 4($a2) -/* 0E7D40 7F0B3210 C4E40004 */ lwc1 $f4, 4($a3) -/* 0E7D44 7F0B3214 C4920000 */ lwc1 $f18, ($a0) -/* 0E7D48 7F0B3218 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0E7D4C 7F0B321C 460E3301 */ sub.s $f12, $f6, $f14 -/* 0E7D50 7F0B3220 E7A80000 */ swc1 $f8, ($sp) -/* 0E7D54 7F0B3224 C7A60000 */ lwc1 $f6, ($sp) -/* 0E7D58 7F0B3228 46041001 */ sub.s $f0, $f2, $f4 -/* 0E7D5C 7F0B322C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E7D60 7F0B3230 46127281 */ sub.s $f10, $f14, $f18 -/* 0E7D64 7F0B3234 46061201 */ sub.s $f8, $f2, $f6 -/* 0E7D68 7F0B3238 46005102 */ mul.s $f4, $f10, $f0 -/* 0E7D6C 7F0B323C 00000000 */ nop -/* 0E7D70 7F0B3240 460C4282 */ mul.s $f10, $f8, $f12 -/* 0E7D74 7F0B3244 C4A80004 */ lwc1 $f8, 4($a1) -/* 0E7D78 7F0B3248 460A2400 */ add.s $f16, $f4, $f10 -/* 0E7D7C 7F0B324C 46064101 */ sub.s $f4, $f8, $f6 -/* 0E7D80 7F0B3250 C4A80000 */ lwc1 $f8, ($a1) -/* 0E7D84 7F0B3254 46124181 */ sub.s $f6, $f8, $f18 -/* 0E7D88 7F0B3258 460C2282 */ mul.s $f10, $f4, $f12 -/* 0E7D8C 7F0B325C 00000000 */ nop -/* 0E7D90 7F0B3260 46003102 */ mul.s $f4, $f6, $f0 -/* 0E7D94 7F0B3264 44803000 */ mtc1 $zero, $f6 -/* 0E7D98 7F0B3268 460A2200 */ add.s $f8, $f4, $f10 -/* 0E7D9C 7F0B326C 46064032 */ c.eq.s $f8, $f6 -/* 0E7DA0 7F0B3270 E7A80010 */ swc1 $f8, 0x10($sp) -/* 0E7DA4 7F0B3274 C7A40010 */ lwc1 $f4, 0x10($sp) -/* 0E7DA8 7F0B3278 45000004 */ bc1f .L7F0B328C -/* 0E7DAC 7F0B327C 00000000 */ nop -/* 0E7DB0 7F0B3280 44810000 */ mtc1 $at, $f0 -/* 0E7DB4 7F0B3284 10000012 */ b .L7F0B32D0 -/* 0E7DB8 7F0B3288 00000000 */ nop -.L7F0B328C: -/* 0E7DBC 7F0B328C 46048403 */ div.s $f16, $f16, $f4 -/* 0E7DC0 7F0B3290 44805000 */ mtc1 $zero, $f10 -/* 0E7DC4 7F0B3294 3C013F80 */ lui $at, 0x3f80 -/* 0E7DC8 7F0B3298 460A803C */ c.lt.s $f16, $f10 -/* 0E7DCC 7F0B329C 00000000 */ nop -/* 0E7DD0 7F0B32A0 45030007 */ bc1tl .L7F0B32C0 -/* 0E7DD4 7F0B32A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E7DD8 7F0B32A8 44814000 */ mtc1 $at, $f8 -/* 0E7DDC 7F0B32AC 00000000 */ nop -/* 0E7DE0 7F0B32B0 4610403C */ c.lt.s $f8, $f16 -/* 0E7DE4 7F0B32B4 00000000 */ nop -/* 0E7DE8 7F0B32B8 45000004 */ bc1f .L7F0B32CC -/* 0E7DEC 7F0B32BC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -.L7F0B32C0: -/* 0E7DF0 7F0B32C0 44810000 */ mtc1 $at, $f0 -/* 0E7DF4 7F0B32C4 10000002 */ b .L7F0B32D0 -/* 0E7DF8 7F0B32C8 00000000 */ nop -.L7F0B32CC: -/* 0E7DFC 7F0B32CC 46008006 */ mov.s $f0, $f16 -.L7F0B32D0: -/* 0E7E00 7F0B32D0 03E00008 */ jr $ra -/* 0E7E04 7F0B32D4 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - -#ifdef NONMATCHING -f32 sub_GAME_7F0B32D8(coord3d *param_1,coord3d *param_2,coord3d *param_3) - +f32 sub_GAME_7F0B32D8(struct coord3d *arg0, coord2d *arg1, coord2d *arg2) { + f32 value2; + f32 value1; + f32 sp24; + f32 mult1; + f32 mult2; - f32 fVar2; - float __x; + mult1 = arg2->x - arg0->y; + mult2 = arg2->y - arg0->z; + value1 = mult2 * arg1->x - mult1 * arg1->y; + value2 = mult1 * arg1->x + mult2 * arg1->y; - __x = (param_1->x - ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y))) * (param_1->x + ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y))); - if (__x < 0.00000000) - { - return 340282346638528859811704183484516925440.00000000; - } - else { - __x = sqrtf(__x); - fVar2 = (f32)(((param_2->x) * (param_3->x - param_1->y) + (param_3->y - param_1->z) * (param_2->y)) - __x); - if (fVar2 < 0.00000000) { - if (fVar2 * fVar2 + ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y)) * ((param_2->x) * (param_3->y - param_1->z) - (param_3->x - param_1->y) * (param_2->y)) <= param_1->x * param_1->x) { - fVar2 = 0.00000000; - } - else { - fVar2 = (f32)340282346638528859811704183484516925440.00000000; - } + sp24 = (arg0->x - value1) * (arg0->x + value1); + + if (sp24 < 0.0f) + { + return 3.4028235e38f; } - } - return fVar2; + + value2 -= sqrtf(sp24); + + if (value2 < 0.0f) + { + if (value2 * value2 + value1 * value1 <= arg0->x * arg0->x) + { + return 0.0f; + } + + return 3.4028235e38f; + } + + return value2; } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800585E0 -.word 0x7f7fffff /*3.4028235e38*/ -glabel D_800585E4 -.word 0x7f7fffff /*3.4028235e38*/ -.text -glabel sub_GAME_7F0B32D8 -/* 0E7E08 7F0B32D8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0E7E0C 7F0B32DC AFBF001C */ sw $ra, 0x1c($sp) -/* 0E7E10 7F0B32E0 F7B40010 */ sdc1 $f20, 0x10($sp) -/* 0E7E14 7F0B32E4 C48A0008 */ lwc1 $f10, 8($a0) -/* 0E7E18 7F0B32E8 C4C80004 */ lwc1 $f8, 4($a2) -/* 0E7E1C 7F0B32EC C4860004 */ lwc1 $f6, 4($a0) -/* 0E7E20 7F0B32F0 C4C40000 */ lwc1 $f4, ($a2) -/* 0E7E24 7F0B32F4 460A4301 */ sub.s $f12, $f8, $f10 -/* 0E7E28 7F0B32F8 C4AE0000 */ lwc1 $f14, ($a1) -/* 0E7E2C 7F0B32FC C4B00004 */ lwc1 $f16, 4($a1) -/* 0E7E30 7F0B3300 46062001 */ sub.s $f0, $f4, $f6 -/* 0E7E34 7F0B3304 460C7102 */ mul.s $f4, $f14, $f12 -/* 0E7E38 7F0B3308 C4920000 */ lwc1 $f18, ($a0) -/* 0E7E3C 7F0B330C 3C018006 */ lui $at, %hi(D_800585E0) -/* 0E7E40 7F0B3310 46100182 */ mul.s $f6, $f0, $f16 -/* 0E7E44 7F0B3314 46062501 */ sub.s $f20, $f4, $f6 -/* 0E7E48 7F0B3318 46007202 */ mul.s $f8, $f14, $f0 -/* 0E7E4C 7F0B331C 00000000 */ nop -/* 0E7E50 7F0B3320 46106282 */ mul.s $f10, $f12, $f16 -/* 0E7E54 7F0B3324 46149101 */ sub.s $f4, $f18, $f20 -/* 0E7E58 7F0B3328 46149180 */ add.s $f6, $f18, $f20 -/* 0E7E5C 7F0B332C 460A4080 */ add.s $f2, $f8, $f10 -/* 0E7E60 7F0B3330 46062202 */ mul.s $f8, $f4, $f6 -/* 0E7E64 7F0B3334 44805000 */ mtc1 $zero, $f10 -/* 0E7E68 7F0B3338 00000000 */ nop -/* 0E7E6C 7F0B333C 460A403C */ c.lt.s $f8, $f10 -/* 0E7E70 7F0B3340 E7A80024 */ swc1 $f8, 0x24($sp) -/* 0E7E74 7F0B3344 C7AC0024 */ lwc1 $f12, 0x24($sp) -/* 0E7E78 7F0B3348 45000003 */ bc1f .L7F0B3358 -/* 0E7E7C 7F0B334C 00000000 */ nop -/* 0E7E80 7F0B3350 1000001D */ b .L7F0B33C8 -/* 0E7E84 7F0B3354 C42085E0 */ lwc1 $f0, %lo(D_800585E0)($at) -.L7F0B3358: -/* 0E7E88 7F0B3358 AFA40030 */ sw $a0, 0x30($sp) -/* 0E7E8C 7F0B335C 0C007DF8 */ jal sqrtf -/* 0E7E90 7F0B3360 E7A2002C */ swc1 $f2, 0x2c($sp) -/* 0E7E94 7F0B3364 C7A2002C */ lwc1 $f2, 0x2c($sp) -/* 0E7E98 7F0B3368 44806000 */ mtc1 $zero, $f12 -/* 0E7E9C 7F0B336C 8FA40030 */ lw $a0, 0x30($sp) -/* 0E7EA0 7F0B3370 46001081 */ sub.s $f2, $f2, $f0 -/* 0E7EA4 7F0B3374 460C103C */ c.lt.s $f2, $f12 -/* 0E7EA8 7F0B3378 00000000 */ nop -/* 0E7EAC 7F0B337C 45020012 */ bc1fl .L7F0B33C8 -/* 0E7EB0 7F0B3380 46001006 */ mov.s $f0, $f2 -/* 0E7EB4 7F0B3384 C4920000 */ lwc1 $f18, ($a0) -/* 0E7EB8 7F0B3388 3C018006 */ lui $at, %hi(D_800585E4) -/* 0E7EBC 7F0B338C 46129102 */ mul.s $f4, $f18, $f18 -/* 0E7EC0 7F0B3390 00000000 */ nop -/* 0E7EC4 7F0B3394 46021182 */ mul.s $f6, $f2, $f2 -/* 0E7EC8 7F0B3398 00000000 */ nop -/* 0E7ECC 7F0B339C 4614A202 */ mul.s $f8, $f20, $f20 -/* 0E7ED0 7F0B33A0 46083280 */ add.s $f10, $f6, $f8 -/* 0E7ED4 7F0B33A4 4604503E */ c.le.s $f10, $f4 -/* 0E7ED8 7F0B33A8 00000000 */ nop -/* 0E7EDC 7F0B33AC 45000003 */ bc1f .L7F0B33BC -/* 0E7EE0 7F0B33B0 00000000 */ nop -/* 0E7EE4 7F0B33B4 10000004 */ b .L7F0B33C8 -/* 0E7EE8 7F0B33B8 46006006 */ mov.s $f0, $f12 -.L7F0B33BC: -/* 0E7EEC 7F0B33BC 10000002 */ b .L7F0B33C8 -/* 0E7EF0 7F0B33C0 C42085E4 */ lwc1 $f0, %lo(D_800585E4)($at) -/* 0E7EF4 7F0B33C4 46001006 */ mov.s $f0, $f2 -.L7F0B33C8: -/* 0E7EF8 7F0B33C8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0E7EFC 7F0B33CC D7B40010 */ ldc1 $f20, 0x10($sp) -/* 0E7F00 7F0B33D0 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0E7F04 7F0B33D4 03E00008 */ jr $ra -/* 0E7F08 7F0B33D8 00000000 */ nop -) -#endif +f32 sub_GAME_7F0B33DC(coord3d *arg0, coord2d *arg1, coord2d *arg2,coord2d *arg3) +{ + f32 spac; + f32 spa8; + coord2d spa0; + f32 sp9c; + f32 sp98; + f32 sp94; + f32 sp90; + f32 sp8c; + f32 sp88; + f32 sp84; + f32 sp80; + f32 sp7c; + f32 sp78; + f32 sp74; + f32 sp70; + f32 sp6c; + f32 sp68; + f32 sp64; + f32 sp60; + f32 sp5c; + f32 sp58; + f32 sp54; + spac = sqrtf(arg3->x * arg3->x + arg3->y * arg3->y); + if (spac == 0.0f) + { + return 1.0f; + } -#ifdef NONMATCHING -void sub_GAME_7F0B33DC(void) { + spa0.x = arg3->x * (1.0f / spac); + spa0.y = arg3->y * (1.0f / spac); + sp98 = arg2->x - arg1->x; + sp9c = arg2->y - arg1->y; + + sp94 = sqrtf(sp98 * sp98 + sp9c * sp9c); + + if (sp94 == 0.0f) + { + goto handlezero; + } + + sp90 = 1.0f / sp94; + sp88 = sp9c * sp90; + sp8c = -sp98 * sp90; + + sp84 = arg0->x * sp88; + sp80 = arg0->x * sp8c; + + if (sp84 * (arg0->y - arg1->x) + sp80 * (arg0->z - arg1->y) < 0.0f) + { + sp84 = -sp84; + sp80 = -sp80; + } + + sp78 = arg1->x + sp84; + sp7c = arg1->y + sp80; + sp70 = arg2->x + sp84; + sp74 = arg2->y + sp80; + + sp68 = (arg3->y * sp78) - (sp7c * arg3->x); + sp6c = (arg0->y * arg3->y) - (arg0->z * arg3->x); + sp64 = (arg3->y * sp70) - (sp74 * arg3->x); + + if (sp64 < sp68) + { + coord2d *tmp; + + spa8 = sp68; + sp68 = sp64; + sp64 = spa8; + + tmp = arg1; + arg1 = arg2; + arg2 = tmp; + + sp88 = -sp88; + sp8c = -sp8c; + } + + if (sp64 == sp68) + { + sp60 = sub_GAME_7F0B32D8(arg0, &spa0, arg1); + sp5c = sub_GAME_7F0B32D8(arg0, &spa0, arg2); + + if (sp5c < sp60) + { + sp60 = sp5c; + } + } + else if (sp64 < sp6c) + { +handlezero: + sp60 = sub_GAME_7F0B32D8(arg0, &spa0, arg2); + } + else if (sp6c < sp68) + { + sp60 = sub_GAME_7F0B32D8(arg0, &spa0, arg1); + } + else + { + sp58 = sp88 * (arg0->y - arg1->x) + sp8c * (arg0->z - arg1->y); + sp54 = sp88 * (arg0->y + arg3->x - arg1->x) + sp8c * (arg0->z + arg3->y - arg1->y); + + if (sp58 == sp54) + { + return 1.0f; + } + + sp60 = (sp58 - arg0->x) * spac / (sp58 - sp54); + } + + if (spac < sp60) + { + return 1.0f; + } + + if (sp60 < 0.0f) + { + return 0.0f; + } + + return (f32) sp60 * (1.0f / spac); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0B33DC -/* 0E7F0C 7F0B33DC 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 0E7F10 7F0B33E0 AFBF001C */ sw $ra, 0x1c($sp) -/* 0E7F14 7F0B33E4 AFB00018 */ sw $s0, 0x18($sp) -/* 0E7F18 7F0B33E8 AFA600B8 */ sw $a2, 0xb8($sp) -/* 0E7F1C 7F0B33EC C4E00000 */ lwc1 $f0, ($a3) -/* 0E7F20 7F0B33F0 C4E20004 */ lwc1 $f2, 4($a3) -/* 0E7F24 7F0B33F4 00A08025 */ move $s0, $a1 -/* 0E7F28 7F0B33F8 46000102 */ mul.s $f4, $f0, $f0 -/* 0E7F2C 7F0B33FC AFA700BC */ sw $a3, 0xbc($sp) -/* 0E7F30 7F0B3400 AFA400B0 */ sw $a0, 0xb0($sp) -/* 0E7F34 7F0B3404 46021282 */ mul.s $f10, $f2, $f2 -/* 0E7F38 7F0B3408 0C007DF8 */ jal sqrtf -/* 0E7F3C 7F0B340C 460A2300 */ add.s $f12, $f4, $f10 -/* 0E7F40 7F0B3410 44803000 */ mtc1 $zero, $f6 -/* 0E7F44 7F0B3414 8FA400B0 */ lw $a0, 0xb0($sp) -/* 0E7F48 7F0B3418 8FA700BC */ lw $a3, 0xbc($sp) -/* 0E7F4C 7F0B341C 46060032 */ c.eq.s $f0, $f6 -/* 0E7F50 7F0B3420 46000386 */ mov.s $f14, $f0 -/* 0E7F54 7F0B3424 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E7F58 7F0B3428 45020006 */ bc1fl .L7F0B3444 -/* 0E7F5C 7F0B342C 44814000 */ mtc1 $at, $f8 -/* 0E7F60 7F0B3430 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E7F64 7F0B3434 44810000 */ mtc1 $at, $f0 -/* 0E7F68 7F0B3438 100000DC */ b .L7F0B37AC -/* 0E7F6C 7F0B343C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0E7F70 7F0B3440 44814000 */ mtc1 $at, $f8 -.L7F0B3444: -/* 0E7F74 7F0B3444 C4E40000 */ lwc1 $f4, ($a3) -/* 0E7F78 7F0B3448 8FA200B8 */ lw $v0, 0xb8($sp) -/* 0E7F7C 7F0B344C 460E4403 */ div.s $f16, $f8, $f14 -/* 0E7F80 7F0B3450 46102282 */ mul.s $f10, $f4, $f16 -/* 0E7F84 7F0B3454 E7AA00A0 */ swc1 $f10, 0xa0($sp) -/* 0E7F88 7F0B3458 C4E60004 */ lwc1 $f6, 4($a3) -/* 0E7F8C 7F0B345C 46103202 */ mul.s $f8, $f6, $f16 -/* 0E7F90 7F0B3460 E7A800A4 */ swc1 $f8, 0xa4($sp) -/* 0E7F94 7F0B3464 C60A0000 */ lwc1 $f10, ($s0) -/* 0E7F98 7F0B3468 C4440000 */ lwc1 $f4, ($v0) -/* 0E7F9C 7F0B346C C6080004 */ lwc1 $f8, 4($s0) -/* 0E7FA0 7F0B3470 C4460004 */ lwc1 $f6, 4($v0) -/* 0E7FA4 7F0B3474 460A2001 */ sub.s $f0, $f4, $f10 -/* 0E7FA8 7F0B3478 E7B00044 */ swc1 $f16, 0x44($sp) -/* 0E7FAC 7F0B347C E7AE00AC */ swc1 $f14, 0xac($sp) -/* 0E7FB0 7F0B3480 46083081 */ sub.s $f2, $f6, $f8 -/* 0E7FB4 7F0B3484 46000102 */ mul.s $f4, $f0, $f0 -/* 0E7FB8 7F0B3488 E7A00098 */ swc1 $f0, 0x98($sp) -/* 0E7FBC 7F0B348C AFA700BC */ sw $a3, 0xbc($sp) -/* 0E7FC0 7F0B3490 46021282 */ mul.s $f10, $f2, $f2 -/* 0E7FC4 7F0B3494 E7A2009C */ swc1 $f2, 0x9c($sp) -/* 0E7FC8 7F0B3498 AFA400B0 */ sw $a0, 0xb0($sp) -/* 0E7FCC 7F0B349C 0C007DF8 */ jal sqrtf -/* 0E7FD0 7F0B34A0 460A2300 */ add.s $f12, $f4, $f10 -/* 0E7FD4 7F0B34A4 44803000 */ mtc1 $zero, $f6 -/* 0E7FD8 7F0B34A8 8FA400B0 */ lw $a0, 0xb0($sp) -/* 0E7FDC 7F0B34AC 8FA700BC */ lw $a3, 0xbc($sp) -/* 0E7FE0 7F0B34B0 46060032 */ c.eq.s $f0, $f6 -/* 0E7FE4 7F0B34B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E7FE8 7F0B34B8 27A500A0 */ addiu $a1, $sp, 0xa0 -/* 0E7FEC 7F0B34BC 45010077 */ bc1t .L7F0B369C -/* 0E7FF0 7F0B34C0 00000000 */ nop -/* 0E7FF4 7F0B34C4 44814000 */ mtc1 $at, $f8 -/* 0E7FF8 7F0B34C8 C7A4009C */ lwc1 $f4, 0x9c($sp) -/* 0E7FFC 7F0B34CC C7A60098 */ lwc1 $f6, 0x98($sp) -/* 0E8000 7F0B34D0 46004483 */ div.s $f18, $f8, $f0 -/* 0E8004 7F0B34D4 02001025 */ move $v0, $s0 -/* 0E8008 7F0B34D8 46003207 */ neg.s $f8, $f6 -/* 0E800C 7F0B34DC 46122282 */ mul.s $f10, $f4, $f18 -/* 0E8010 7F0B34E0 00000000 */ nop -/* 0E8014 7F0B34E4 46124102 */ mul.s $f4, $f8, $f18 -/* 0E8018 7F0B34E8 E7AA002C */ swc1 $f10, 0x2c($sp) -/* 0E801C 7F0B34EC E7AA0088 */ swc1 $f10, 0x88($sp) -/* 0E8020 7F0B34F0 E7A40028 */ swc1 $f4, 0x28($sp) -/* 0E8024 7F0B34F4 E7A4008C */ swc1 $f4, 0x8c($sp) -/* 0E8028 7F0B34F8 C4860000 */ lwc1 $f6, ($a0) -/* 0E802C 7F0B34FC E7A60038 */ swc1 $f6, 0x38($sp) -/* 0E8030 7F0B3500 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 0E8034 7F0B3504 C4860004 */ lwc1 $f6, 4($a0) -/* 0E8038 7F0B3508 460A4382 */ mul.s $f14, $f8, $f10 -/* 0E803C 7F0B350C E7A60034 */ swc1 $f6, 0x34($sp) -/* 0E8040 7F0B3510 C48A0008 */ lwc1 $f10, 8($a0) -/* 0E8044 7F0B3514 46044402 */ mul.s $f16, $f8, $f4 -/* 0E8048 7F0B3518 C6020000 */ lwc1 $f2, ($s0) -/* 0E804C 7F0B351C C7A80034 */ lwc1 $f8, 0x34($sp) -/* 0E8050 7F0B3520 E7AA0030 */ swc1 $f10, 0x30($sp) -/* 0E8054 7F0B3524 C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 0E8058 7F0B3528 46024101 */ sub.s $f4, $f8, $f2 -/* 0E805C 7F0B352C C60C0004 */ lwc1 $f12, 4($s0) -/* 0E8060 7F0B3530 460C5201 */ sub.s $f8, $f10, $f12 -/* 0E8064 7F0B3534 460E2182 */ mul.s $f6, $f4, $f14 -/* 0E8068 7F0B3538 00000000 */ nop -/* 0E806C 7F0B353C 46088102 */ mul.s $f4, $f16, $f8 -/* 0E8070 7F0B3540 44804000 */ mtc1 $zero, $f8 -/* 0E8074 7F0B3544 46043280 */ add.s $f10, $f6, $f4 -/* 0E8078 7F0B3548 4608503C */ c.lt.s $f10, $f8 -/* 0E807C 7F0B354C 00000000 */ nop -/* 0E8080 7F0B3550 45000003 */ bc1f .L7F0B3560 -/* 0E8084 7F0B3554 00000000 */ nop -/* 0E8088 7F0B3558 46007387 */ neg.s $f14, $f14 -/* 0E808C 7F0B355C 46008407 */ neg.s $f16, $f16 -.L7F0B3560: -/* 0E8090 7F0B3560 460E1180 */ add.s $f6, $f2, $f14 -/* 0E8094 7F0B3564 8FA300B8 */ lw $v1, 0xb8($sp) -/* 0E8098 7F0B3568 46106100 */ add.s $f4, $f12, $f16 -/* 0E809C 7F0B356C E7A60078 */ swc1 $f6, 0x78($sp) -/* 0E80A0 7F0B3570 E7A4007C */ swc1 $f4, 0x7c($sp) -/* 0E80A4 7F0B3574 C46A0000 */ lwc1 $f10, ($v1) -/* 0E80A8 7F0B3578 460E5200 */ add.s $f8, $f10, $f14 -/* 0E80AC 7F0B357C E7A80070 */ swc1 $f8, 0x70($sp) -/* 0E80B0 7F0B3580 C4660004 */ lwc1 $f6, 4($v1) -/* 0E80B4 7F0B3584 46103100 */ add.s $f4, $f6, $f16 -/* 0E80B8 7F0B3588 C7B0002C */ lwc1 $f16, 0x2c($sp) -/* 0E80BC 7F0B358C E7A40074 */ swc1 $f4, 0x74($sp) -/* 0E80C0 7F0B3590 C4EA0004 */ lwc1 $f10, 4($a3) -/* 0E80C4 7F0B3594 C7A40078 */ lwc1 $f4, 0x78($sp) -/* 0E80C8 7F0B3598 E7AA0048 */ swc1 $f10, 0x48($sp) -/* 0E80CC 7F0B359C C4E80000 */ lwc1 $f8, ($a3) -/* 0E80D0 7F0B35A0 C7A60048 */ lwc1 $f6, 0x48($sp) -/* 0E80D4 7F0B35A4 E7A8004C */ swc1 $f8, 0x4c($sp) -/* 0E80D8 7F0B35A8 46043282 */ mul.s $f10, $f6, $f4 -/* 0E80DC 7F0B35AC C7A4004C */ lwc1 $f4, 0x4c($sp) -/* 0E80E0 7F0B35B0 C7A8007C */ lwc1 $f8, 0x7c($sp) -/* 0E80E4 7F0B35B4 E7A40020 */ swc1 $f4, 0x20($sp) -/* 0E80E8 7F0B35B8 46044202 */ mul.s $f8, $f8, $f4 -/* 0E80EC 7F0B35BC C7A40030 */ lwc1 $f4, 0x30($sp) -/* 0E80F0 7F0B35C0 46085281 */ sub.s $f10, $f10, $f8 -/* 0E80F4 7F0B35C4 C7A80034 */ lwc1 $f8, 0x34($sp) -/* 0E80F8 7F0B35C8 E7AA0068 */ swc1 $f10, 0x68($sp) -/* 0E80FC 7F0B35CC E7AA0024 */ swc1 $f10, 0x24($sp) -/* 0E8100 7F0B35D0 46064202 */ mul.s $f8, $f8, $f6 -/* 0E8104 7F0B35D4 C7AA0020 */ lwc1 $f10, 0x20($sp) -/* 0E8108 7F0B35D8 460A2102 */ mul.s $f4, $f4, $f10 -/* 0E810C 7F0B35DC 46044381 */ sub.s $f14, $f8, $f4 -/* 0E8110 7F0B35E0 C7A40070 */ lwc1 $f4, 0x70($sp) -/* 0E8114 7F0B35E4 46043182 */ mul.s $f6, $f6, $f4 -/* 0E8118 7F0B35E8 C7A40074 */ lwc1 $f4, 0x74($sp) -/* 0E811C 7F0B35EC E7AE006C */ swc1 $f14, 0x6c($sp) -/* 0E8120 7F0B35F0 460A2102 */ mul.s $f4, $f4, $f10 -/* 0E8124 7F0B35F4 C7AA0024 */ lwc1 $f10, 0x24($sp) -/* 0E8128 7F0B35F8 46005306 */ mov.s $f12, $f10 -/* 0E812C 7F0B35FC 46043481 */ sub.s $f18, $f6, $f4 -/* 0E8130 7F0B3600 C7A60028 */ lwc1 $f6, 0x28($sp) -/* 0E8134 7F0B3604 460A903C */ c.lt.s $f18, $f10 -/* 0E8138 7F0B3608 00000000 */ nop -/* 0E813C 7F0B360C 4502000A */ bc1fl .L7F0B3638 -/* 0E8140 7F0B3610 460C9032 */ c.eq.s $f18, $f12 -/* 0E8144 7F0B3614 46008407 */ neg.s $f16, $f16 -/* 0E8148 7F0B3618 46003107 */ neg.s $f4, $f6 -/* 0E814C 7F0B361C 46009306 */ mov.s $f12, $f18 -/* 0E8150 7F0B3620 00608025 */ move $s0, $v1 -/* 0E8154 7F0B3624 46005486 */ mov.s $f18, $f10 -/* 0E8158 7F0B3628 00401825 */ move $v1, $v0 -/* 0E815C 7F0B362C E7A4008C */ swc1 $f4, 0x8c($sp) -/* 0E8160 7F0B3630 E7B00088 */ swc1 $f16, 0x88($sp) -/* 0E8164 7F0B3634 460C9032 */ c.eq.s $f18, $f12 -.L7F0B3638: -/* 0E8168 7F0B3638 C7B00088 */ lwc1 $f16, 0x88($sp) -/* 0E816C 7F0B363C 02003025 */ move $a2, $s0 -/* 0E8170 7F0B3640 45020012 */ bc1fl .L7F0B368C -/* 0E8174 7F0B3644 460E903C */ c.lt.s $f18, $f14 -/* 0E8178 7F0B3648 27A500A0 */ addiu $a1, $sp, 0xa0 -/* 0E817C 7F0B364C AFA300B8 */ sw $v1, 0xb8($sp) -/* 0E8180 7F0B3650 0FC2CCB6 */ jal sub_GAME_7F0B32D8 -/* 0E8184 7F0B3654 AFA400B0 */ sw $a0, 0xb0($sp) -/* 0E8188 7F0B3658 8FA400B0 */ lw $a0, 0xb0($sp) -/* 0E818C 7F0B365C 27A500A0 */ addiu $a1, $sp, 0xa0 -/* 0E8190 7F0B3660 8FA600B8 */ lw $a2, 0xb8($sp) -/* 0E8194 7F0B3664 0FC2CCB6 */ jal sub_GAME_7F0B32D8 -/* 0E8198 7F0B3668 E7A00060 */ swc1 $f0, 0x60($sp) -/* 0E819C 7F0B366C C7A20060 */ lwc1 $f2, 0x60($sp) -/* 0E81A0 7F0B3670 4602003C */ c.lt.s $f0, $f2 -/* 0E81A4 7F0B3674 00000000 */ nop -/* 0E81A8 7F0B3678 45020038 */ bc1fl .L7F0B375C -/* 0E81AC 7F0B367C C7A800AC */ lwc1 $f8, 0xac($sp) -/* 0E81B0 7F0B3680 10000035 */ b .L7F0B3758 -/* 0E81B4 7F0B3684 46000086 */ mov.s $f2, $f0 -/* 0E81B8 7F0B3688 460E903C */ c.lt.s $f18, $f14 -.L7F0B368C: -/* 0E81BC 7F0B368C 00000000 */ nop -/* 0E81C0 7F0B3690 45020007 */ bc1fl .L7F0B36B0 -/* 0E81C4 7F0B3694 460C703C */ c.lt.s $f14, $f12 -/* 0E81C8 7F0B3698 AFA300B8 */ sw $v1, 0xb8($sp) -.L7F0B369C: -/* 0E81CC 7F0B369C 0FC2CCB6 */ jal sub_GAME_7F0B32D8 -/* 0E81D0 7F0B36A0 8FA600B8 */ lw $a2, 0xb8($sp) -/* 0E81D4 7F0B36A4 1000002C */ b .L7F0B3758 -/* 0E81D8 7F0B36A8 46000086 */ mov.s $f2, $f0 -/* 0E81DC 7F0B36AC 460C703C */ c.lt.s $f14, $f12 -.L7F0B36B0: -/* 0E81E0 7F0B36B0 27A500A0 */ addiu $a1, $sp, 0xa0 -/* 0E81E4 7F0B36B4 C7A80030 */ lwc1 $f8, 0x30($sp) -/* 0E81E8 7F0B36B8 45020006 */ bc1fl .L7F0B36D4 -/* 0E81EC 7F0B36BC C60C0004 */ lwc1 $f12, 4($s0) -/* 0E81F0 7F0B36C0 0FC2CCB6 */ jal sub_GAME_7F0B32D8 -/* 0E81F4 7F0B36C4 02003025 */ move $a2, $s0 -/* 0E81F8 7F0B36C8 10000023 */ b .L7F0B3758 -/* 0E81FC 7F0B36CC 46000086 */ mov.s $f2, $f0 -/* 0E8200 7F0B36D0 C60C0004 */ lwc1 $f12, 4($s0) -.L7F0B36D4: -/* 0E8204 7F0B36D4 C7AA008C */ lwc1 $f10, 0x8c($sp) -/* 0E8208 7F0B36D8 C6020000 */ lwc1 $f2, ($s0) -/* 0E820C 7F0B36DC 460C4181 */ sub.s $f6, $f8, $f12 -/* 0E8210 7F0B36E0 E7AA0024 */ swc1 $f10, 0x24($sp) -/* 0E8214 7F0B36E4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E8218 7F0B36E8 46065102 */ mul.s $f4, $f10, $f6 -/* 0E821C 7F0B36EC C7A60034 */ lwc1 $f6, 0x34($sp) -/* 0E8220 7F0B36F0 46023281 */ sub.s $f10, $f6, $f2 -/* 0E8224 7F0B36F4 46105282 */ mul.s $f10, $f10, $f16 -/* 0E8228 7F0B36F8 46045000 */ add.s $f0, $f10, $f4 -/* 0E822C 7F0B36FC C7AA004C */ lwc1 $f10, 0x4c($sp) -/* 0E8230 7F0B3700 460A3100 */ add.s $f4, $f6, $f10 -/* 0E8234 7F0B3704 46022181 */ sub.s $f6, $f4, $f2 -/* 0E8238 7F0B3708 C7A40048 */ lwc1 $f4, 0x48($sp) -/* 0E823C 7F0B370C 46103282 */ mul.s $f10, $f6, $f16 -/* 0E8240 7F0B3710 46044180 */ add.s $f6, $f8, $f4 -/* 0E8244 7F0B3714 C7A40024 */ lwc1 $f4, 0x24($sp) -/* 0E8248 7F0B3718 460C3201 */ sub.s $f8, $f6, $f12 -/* 0E824C 7F0B371C 46082182 */ mul.s $f6, $f4, $f8 -/* 0E8250 7F0B3720 C7A40038 */ lwc1 $f4, 0x38($sp) -/* 0E8254 7F0B3724 46065380 */ add.s $f14, $f10, $f6 -/* 0E8258 7F0B3728 460E0032 */ c.eq.s $f0, $f14 -/* 0E825C 7F0B372C 00000000 */ nop -/* 0E8260 7F0B3730 45020005 */ bc1fl .L7F0B3748 -/* 0E8264 7F0B3734 46040201 */ sub.s $f8, $f0, $f4 -/* 0E8268 7F0B3738 44810000 */ mtc1 $at, $f0 -/* 0E826C 7F0B373C 1000001B */ b .L7F0B37AC -/* 0E8270 7F0B3740 8FBF001C */ lw $ra, 0x1c($sp) -/* 0E8274 7F0B3744 46040201 */ sub.s $f8, $f0, $f4 -.L7F0B3748: -/* 0E8278 7F0B3748 C7AA00AC */ lwc1 $f10, 0xac($sp) -/* 0E827C 7F0B374C 460E0101 */ sub.s $f4, $f0, $f14 -/* 0E8280 7F0B3750 460A4182 */ mul.s $f6, $f8, $f10 -/* 0E8284 7F0B3754 46043083 */ div.s $f2, $f6, $f4 -.L7F0B3758: -/* 0E8288 7F0B3758 C7A800AC */ lwc1 $f8, 0xac($sp) -.L7F0B375C: -/* 0E828C 7F0B375C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0E8290 7F0B3760 4602403C */ c.lt.s $f8, $f2 -/* 0E8294 7F0B3764 00000000 */ nop -/* 0E8298 7F0B3768 45020005 */ bc1fl .L7F0B3780 -/* 0E829C 7F0B376C 44805000 */ mtc1 $zero, $f10 -/* 0E82A0 7F0B3770 44810000 */ mtc1 $at, $f0 -/* 0E82A4 7F0B3774 1000000D */ b .L7F0B37AC -/* 0E82A8 7F0B3778 8FBF001C */ lw $ra, 0x1c($sp) -/* 0E82AC 7F0B377C 44805000 */ mtc1 $zero, $f10 -.L7F0B3780: -/* 0E82B0 7F0B3780 C7A60044 */ lwc1 $f6, 0x44($sp) -/* 0E82B4 7F0B3784 460A103C */ c.lt.s $f2, $f10 -/* 0E82B8 7F0B3788 00000000 */ nop -/* 0E82BC 7F0B378C 45000004 */ bc1f .L7F0B37A0 -/* 0E82C0 7F0B3790 00000000 */ nop -/* 0E82C4 7F0B3794 44800000 */ mtc1 $zero, $f0 -/* 0E82C8 7F0B3798 10000004 */ b .L7F0B37AC -/* 0E82CC 7F0B379C 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0B37A0: -/* 0E82D0 7F0B37A0 46061002 */ mul.s $f0, $f2, $f6 -/* 0E82D4 7F0B37A4 00000000 */ nop -/* 0E82D8 7F0B37A8 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0B37AC: -/* 0E82DC 7F0B37AC 8FB00018 */ lw $s0, 0x18($sp) -/* 0E82E0 7F0B37B0 27BD00B0 */ addiu $sp, $sp, 0xb0 -/* 0E82E4 7F0B37B4 03E00008 */ jr $ra -/* 0E82E8 7F0B37B8 00000000 */ nop -) -#endif - - diff --git a/src/game/unk_0CC4C0.c b/src/game/unk_0CC4C0.c index 2df30f71..5a0dc1ec 100644 --- a/src/game/unk_0CC4C0.c +++ b/src/game/unk_0CC4C0.c @@ -1,4 +1,5 @@ #include +#include "gbi_extension.h" #include "lvl.h" #include "image.h" #include "unk_0CC4C0.h" @@ -161,67 +162,27 @@ void sub_GAME_7F0CC4C8(void) } +s32 unused_copy_byte_array(u8* src, s32 count, u8* dst) +{ + u8* src_itr; + u8* dst_itr; + src_itr = src; + dst_itr = dst; -#ifdef NONMATCHING -s32 sub_GAME_7F0CC51C(void *arg0, s32 arg1, void *arg2) { - s32 temp_a1; - void *temp_v1; - void *phi_v0; - void *phi_v1; - s32 phi_a1; - void *phi_v1_2; - - // Node 0 - phi_v0 = arg0; - phi_v1 = arg2; - phi_a1 = arg1; - phi_v1_2 = arg2; - if (arg1 > 0) + while (count > 0) { - loop_1: - // Node 1 - temp_a1 = (phi_a1 + -1); - temp_v1 = (phi_v1 + 1); - temp_v1->unk-1 = (s8) *phi_v0; - phi_v0 = (phi_v0 + 1); - phi_v1 = temp_v1; - phi_a1 = temp_a1; - phi_v1_2 = temp_v1; - if (temp_a1 > 0) - { - goto loop_1; - } + *dst_itr = *src_itr; + dst_itr++; + src_itr++; + count--; } - // Node 2 - return (phi_v1_2 - arg2); + + return dst_itr - dst; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CC51C -/* 10104C 7F0CC51C 00801025 */ move $v0, $a0 -/* 101050 7F0CC520 18A00007 */ blez $a1, .L7F0CC540 -/* 101054 7F0CC524 00C01825 */ move $v1, $a2 -.L7F0CC528: -/* 101058 7F0CC528 904E0000 */ lbu $t6, ($v0) -/* 10105C 7F0CC52C 24A5FFFF */ addiu $a1, $a1, -1 -/* 101060 7F0CC530 24630001 */ addiu $v1, $v1, 1 -/* 101064 7F0CC534 24420001 */ addiu $v0, $v0, 1 -/* 101068 7F0CC538 1CA0FFFB */ bgtz $a1, .L7F0CC528 -/* 10106C 7F0CC53C A06EFFFF */ sb $t6, -1($v1) -.L7F0CC540: -/* 101070 7F0CC540 03E00008 */ jr $ra -/* 101074 7F0CC544 00661023 */ subu $v0, $v1, $a2 -) -#endif - - - - -u32 sub_GAME_7F0CC548(s32 arg0) { +u32 texSetLutMode(s32 arg0) { if (arg0 == dword_CODE_bss_8008D140) { return 0; } @@ -279,393 +240,129 @@ s32 sub_GAME_7F0CC690(s32 index,s32 arg1,s32 arg2,s32 arg3,s32 arg4) } - - - -#ifdef NONMATCHING -void sub_GAME_7F0CC714(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CC714 -/* 101244 7F0CC714 14A00003 */ bnez $a1, .L7F0CC724 -/* 101248 7F0CC718 90830008 */ lbu $v1, 8($a0) -/* 10124C 7F0CC71C 03E00008 */ jr $ra -/* 101250 7F0CC720 00601025 */ move $v0, $v1 - -.L7F0CC724: -/* 101254 7F0CC724 8C8E000C */ lw $t6, 0xc($a0) -/* 101258 7F0CC728 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D090) -/* 10125C 7F0CC72C 000EC080 */ sll $t8, $t6, 2 -/* 101260 7F0CC730 07010018 */ bgez $t8, .L7F0CC794 -/* 101264 7F0CC734 00000000 */ nop -/* 101268 7F0CC738 8C42D090 */ lw $v0, %lo(dword_CODE_bss_8008D090)($v0) -/* 10126C 7F0CC73C 00003025 */ move $a2, $zero -/* 101270 7F0CC740 18400012 */ blez $v0, .L7F0CC78C -/* 101274 7F0CC744 00000000 */ nop -/* 101278 7F0CC748 8C830000 */ lw $v1, ($a0) -/* 10127C 7F0CC74C 3C078009 */ lui $a3, %hi(word_CODE_bss_8008C730) -/* 101280 7F0CC750 24E7C730 */ addiu $a3, %lo(word_CODE_bss_8008C730) # addiu $a3, $a3, -0x38d0 -/* 101284 7F0CC754 0003CD02 */ srl $t9, $v1, 0x14 -/* 101288 7F0CC758 03201825 */ move $v1, $t9 -.L7F0CC75C: -/* 10128C 7F0CC75C 84E80000 */ lh $t0, ($a3) -/* 101290 7F0CC760 14680006 */ bne $v1, $t0, .L7F0CC77C -/* 101294 7F0CC764 00064900 */ sll $t1, $a2, 4 -/* 101298 7F0CC768 01255021 */ addu $t2, $t1, $a1 -/* 10129C 7F0CC76C 3C028009 */ lui $v0, %hi(word_CODE_bss_8008C730+1) -/* 1012A0 7F0CC770 004A1021 */ addu $v0, $v0, $t2 -/* 1012A4 7F0CC774 03E00008 */ jr $ra -/* 1012A8 7F0CC778 9042C731 */ lbu $v0, %lo(word_CODE_bss_8008C730+1)($v0) - -.L7F0CC77C: -/* 1012AC 7F0CC77C 24C60001 */ addiu $a2, $a2, 1 -/* 1012B0 7F0CC780 00C2082A */ slt $at, $a2, $v0 -/* 1012B4 7F0CC784 1420FFF5 */ bnez $at, .L7F0CC75C -/* 1012B8 7F0CC788 24E70010 */ addiu $a3, $a3, 0x10 -.L7F0CC78C: -/* 1012BC 7F0CC78C 03E00008 */ jr $ra -/* 1012C0 7F0CC790 24020001 */ li $v0, 1 - -.L7F0CC794: -/* 1012C4 7F0CC794 18A00016 */ blez $a1, .L7F0CC7F0 -/* 1012C8 7F0CC798 00003025 */ move $a2, $zero -/* 1012CC 7F0CC79C 30A40003 */ andi $a0, $a1, 3 -/* 1012D0 7F0CC7A0 10800008 */ beqz $a0, .L7F0CC7C4 -/* 1012D4 7F0CC7A4 00801025 */ move $v0, $a0 -.L7F0CC7A8: -/* 1012D8 7F0CC7A8 24630001 */ addiu $v1, $v1, 1 -/* 1012DC 7F0CC7AC 00035843 */ sra $t3, $v1, 1 -/* 1012E0 7F0CC7B0 24C60001 */ addiu $a2, $a2, 1 -/* 1012E4 7F0CC7B4 1446FFFC */ bne $v0, $a2, .L7F0CC7A8 -/* 1012E8 7F0CC7B8 01601825 */ move $v1, $t3 -/* 1012EC 7F0CC7BC 50C5000D */ beql $a2, $a1, .L7F0CC7F4 -/* 1012F0 7F0CC7C0 00601025 */ move $v0, $v1 -.L7F0CC7C4: -/* 1012F4 7F0CC7C4 24630001 */ addiu $v1, $v1, 1 -/* 1012F8 7F0CC7C8 00036043 */ sra $t4, $v1, 1 -/* 1012FC 7F0CC7CC 25830001 */ addiu $v1, $t4, 1 -/* 101300 7F0CC7D0 00036843 */ sra $t5, $v1, 1 -/* 101304 7F0CC7D4 25A30001 */ addiu $v1, $t5, 1 -/* 101308 7F0CC7D8 00037043 */ sra $t6, $v1, 1 -/* 10130C 7F0CC7DC 25C30001 */ addiu $v1, $t6, 1 -/* 101310 7F0CC7E0 00037843 */ sra $t7, $v1, 1 -/* 101314 7F0CC7E4 24C60004 */ addiu $a2, $a2, 4 -/* 101318 7F0CC7E8 14C5FFF6 */ bne $a2, $a1, .L7F0CC7C4 -/* 10131C 7F0CC7EC 01E01825 */ move $v1, $t7 -.L7F0CC7F0: -/* 101320 7F0CC7F0 00601025 */ move $v0, $v1 -.L7F0CC7F4: -/* 101324 7F0CC7F4 03E00008 */ jr $ra -/* 101328 7F0CC7F8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CC7FC(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CC7FC -/* 10132C 7F0CC7FC 14A00003 */ bnez $a1, .L7F0CC80C -/* 101330 7F0CC800 90830009 */ lbu $v1, 9($a0) -/* 101334 7F0CC804 03E00008 */ jr $ra -/* 101338 7F0CC808 00601025 */ move $v0, $v1 - -.L7F0CC80C: -/* 10133C 7F0CC80C 8C8E000C */ lw $t6, 0xc($a0) -/* 101340 7F0CC810 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D090) -/* 101344 7F0CC814 000EC080 */ sll $t8, $t6, 2 -/* 101348 7F0CC818 07010018 */ bgez $t8, .L7F0CC87C -/* 10134C 7F0CC81C 00000000 */ nop -/* 101350 7F0CC820 8C42D090 */ lw $v0, %lo(dword_CODE_bss_8008D090)($v0) -/* 101354 7F0CC824 00003025 */ move $a2, $zero -/* 101358 7F0CC828 18400012 */ blez $v0, .L7F0CC874 -/* 10135C 7F0CC82C 00000000 */ nop -/* 101360 7F0CC830 8C830000 */ lw $v1, ($a0) -/* 101364 7F0CC834 3C078009 */ lui $a3, %hi(word_CODE_bss_8008C730) -/* 101368 7F0CC838 24E7C730 */ addiu $a3, %lo(word_CODE_bss_8008C730) # addiu $a3, $a3, -0x38d0 -/* 10136C 7F0CC83C 0003CD02 */ srl $t9, $v1, 0x14 -/* 101370 7F0CC840 03201825 */ move $v1, $t9 -.L7F0CC844: -/* 101374 7F0CC844 84E80000 */ lh $t0, ($a3) -/* 101378 7F0CC848 14680006 */ bne $v1, $t0, .L7F0CC864 -/* 10137C 7F0CC84C 00064900 */ sll $t1, $a2, 4 -/* 101380 7F0CC850 01255021 */ addu $t2, $t1, $a1 -/* 101384 7F0CC854 3C028009 */ lui $v0, %hi(word_CODE_bss_8008C730+8) -/* 101388 7F0CC858 004A1021 */ addu $v0, $v0, $t2 -/* 10138C 7F0CC85C 03E00008 */ jr $ra -/* 101390 7F0CC860 9042C738 */ lbu $v0, %lo(word_CODE_bss_8008C730+8)($v0) - -.L7F0CC864: -/* 101394 7F0CC864 24C60001 */ addiu $a2, $a2, 1 -/* 101398 7F0CC868 00C2082A */ slt $at, $a2, $v0 -/* 10139C 7F0CC86C 1420FFF5 */ bnez $at, .L7F0CC844 -/* 1013A0 7F0CC870 24E70010 */ addiu $a3, $a3, 0x10 -.L7F0CC874: -/* 1013A4 7F0CC874 03E00008 */ jr $ra -/* 1013A8 7F0CC878 24020001 */ li $v0, 1 - -.L7F0CC87C: -/* 1013AC 7F0CC87C 18A00016 */ blez $a1, .L7F0CC8D8 -/* 1013B0 7F0CC880 00003025 */ move $a2, $zero -/* 1013B4 7F0CC884 30A40003 */ andi $a0, $a1, 3 -/* 1013B8 7F0CC888 10800008 */ beqz $a0, .L7F0CC8AC -/* 1013BC 7F0CC88C 00801025 */ move $v0, $a0 -.L7F0CC890: -/* 1013C0 7F0CC890 24630001 */ addiu $v1, $v1, 1 -/* 1013C4 7F0CC894 00035843 */ sra $t3, $v1, 1 -/* 1013C8 7F0CC898 24C60001 */ addiu $a2, $a2, 1 -/* 1013CC 7F0CC89C 1446FFFC */ bne $v0, $a2, .L7F0CC890 -/* 1013D0 7F0CC8A0 01601825 */ move $v1, $t3 -/* 1013D4 7F0CC8A4 50C5000D */ beql $a2, $a1, .L7F0CC8DC -/* 1013D8 7F0CC8A8 00601025 */ move $v0, $v1 -.L7F0CC8AC: -/* 1013DC 7F0CC8AC 24630001 */ addiu $v1, $v1, 1 -/* 1013E0 7F0CC8B0 00036043 */ sra $t4, $v1, 1 -/* 1013E4 7F0CC8B4 25830001 */ addiu $v1, $t4, 1 -/* 1013E8 7F0CC8B8 00036843 */ sra $t5, $v1, 1 -/* 1013EC 7F0CC8BC 25A30001 */ addiu $v1, $t5, 1 -/* 1013F0 7F0CC8C0 00037043 */ sra $t6, $v1, 1 -/* 1013F4 7F0CC8C4 25C30001 */ addiu $v1, $t6, 1 -/* 1013F8 7F0CC8C8 00037843 */ sra $t7, $v1, 1 -/* 1013FC 7F0CC8CC 24C60004 */ addiu $a2, $a2, 4 -/* 101400 7F0CC8D0 14C5FFF6 */ bne $a2, $a1, .L7F0CC8AC -/* 101404 7F0CC8D4 01E01825 */ move $v1, $t7 -.L7F0CC8D8: -/* 101408 7F0CC8D8 00601025 */ move $v0, $v1 -.L7F0CC8DC: -/* 10140C 7F0CC8DC 03E00008 */ jr $ra -/* 101410 7F0CC8E0 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0CC8E4(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CC8E4 -/* 101414 7F0CC8E4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 101418 7F0CC8E8 AFBF0014 */ sw $ra, 0x14($sp) -/* 10141C 7F0CC8EC 8C830008 */ lw $v1, 8($a0) -/* 101420 7F0CC8F0 306E0003 */ andi $t6, $v1, 3 -/* 101424 7F0CC8F4 0FC331C5 */ jal sub_GAME_7F0CC714 -/* 101428 7F0CC8F8 AFAE001C */ sw $t6, 0x1c($sp) -/* 10142C 7F0CC8FC 8FA3001C */ lw $v1, 0x1c($sp) -/* 101430 7F0CC900 24010003 */ li $at, 3 -/* 101434 7F0CC904 00402025 */ move $a0, $v0 -/* 101438 7F0CC908 14610008 */ bne $v1, $at, .L7F0CC92C -/* 10143C 7F0CC90C 8FBF0014 */ lw $ra, 0x14($sp) -/* 101440 7F0CC910 24420003 */ addiu $v0, $v0, 3 -/* 101444 7F0CC914 04410003 */ bgez $v0, .L7F0CC924 -/* 101448 7F0CC918 00027883 */ sra $t7, $v0, 2 -/* 10144C 7F0CC91C 24410003 */ addiu $at, $v0, 3 -/* 101450 7F0CC920 00017883 */ sra $t7, $at, 2 -.L7F0CC924: -/* 101454 7F0CC924 10000019 */ b .L7F0CC98C -/* 101458 7F0CC928 01E01025 */ move $v0, $t7 -.L7F0CC92C: -/* 10145C 7F0CC92C 24010002 */ li $at, 2 -/* 101460 7F0CC930 14610007 */ bne $v1, $at, .L7F0CC950 -/* 101464 7F0CC934 24820003 */ addiu $v0, $a0, 3 -/* 101468 7F0CC938 04410003 */ bgez $v0, .L7F0CC948 -/* 10146C 7F0CC93C 0002C083 */ sra $t8, $v0, 2 -/* 101470 7F0CC940 24410003 */ addiu $at, $v0, 3 -/* 101474 7F0CC944 0001C083 */ sra $t8, $at, 2 -.L7F0CC948: -/* 101478 7F0CC948 10000010 */ b .L7F0CC98C -/* 10147C 7F0CC94C 03001025 */ move $v0, $t8 -.L7F0CC950: -/* 101480 7F0CC950 24010001 */ li $at, 1 -/* 101484 7F0CC954 14610008 */ bne $v1, $at, .L7F0CC978 -/* 101488 7F0CC958 2482000F */ addiu $v0, $a0, 0xf -/* 10148C 7F0CC95C 24820007 */ addiu $v0, $a0, 7 -/* 101490 7F0CC960 04410003 */ bgez $v0, .L7F0CC970 -/* 101494 7F0CC964 0002C8C3 */ sra $t9, $v0, 3 -/* 101498 7F0CC968 24410007 */ addiu $at, $v0, 7 -/* 10149C 7F0CC96C 0001C8C3 */ sra $t9, $at, 3 -.L7F0CC970: -/* 1014A0 7F0CC970 10000006 */ b .L7F0CC98C -/* 1014A4 7F0CC974 03201025 */ move $v0, $t9 -.L7F0CC978: -/* 1014A8 7F0CC978 04410003 */ bgez $v0, .L7F0CC988 -/* 1014AC 7F0CC97C 00024103 */ sra $t0, $v0, 4 -/* 1014B0 7F0CC980 2441000F */ addiu $at, $v0, 0xf -/* 1014B4 7F0CC984 00014103 */ sra $t0, $at, 4 -.L7F0CC988: -/* 1014B8 7F0CC988 01001025 */ move $v0, $t0 -.L7F0CC98C: -/* 1014BC 7F0CC98C 03E00008 */ jr $ra -/* 1014C0 7F0CC990 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - -s32 sub_GAME_7F0CC994(void *param_1,void *param_2) +s32 texGetWidthAtLod(struct tex *tex, s32 lod) { - return sub_GAME_7F0CC7FC(param_1,param_2) * sub_GAME_7F0CC8E4(param_1,param_2); + s32 i; + s32 width = tex->width; + + if (lod == 0) + { + return width; + } + + if (tex->unk0c_02) + { + for (i = 0; i < g_TexCacheCount; i++) + { + if (tex->texturenum == g_TexCacheItems[i].texturenum) + { + return g_TexCacheItems[i].widths[lod - 1]; + } + } + + return 1; + } + + for (i = 0; i < lod; i++) + { + width = (width + 1) >> 1; + } + + return width; } +s32 texGetHeightAtLod(struct tex *tex, s32 lod) +{ + s32 i; + s32 height = tex->height; - - - - -#ifdef NONMATCHING -s32 sub_GAME_7F0CC9D4(void *arg0, void *arg1, void *arg2) { - s32 temp_t6; - u32 temp_t7; - s32 temp_ret; - s32 temp_s0; - u32 phi_s2; - s32 phi_s0; - s32 phi_return; - - // Node 0 - temp_t6 = (arg0->unk8 & 3); - temp_t7 = ((u32) arg0->unkB >> 5); - if (temp_t7 != 0) + if (lod == 0) { - // Node 1 - phi_s2 = temp_t7; + return height; } - else + + if (tex->unk0c_02) { - // Node 2 - phi_s2 = 1U; - } - // Node 3 - *arg2 = 0; - if (temp_t6 == 3) - { - // Node 4 - *arg1 = 3; - } - else - { - // Node 5 - if (temp_t6 == 2) + for (i = 0; i < g_TexCacheCount; i++) { - // Node 6 - *arg1 = 2; - } - else - { - // Node 7 - if (temp_t6 == 1) + if (tex->texturenum == g_TexCacheItems[i].texturenum) { - // Node 8 - *arg1 = 2; - } - else - { - // Node 9 - *arg1 = 2; + return g_TexCacheItems[i].heights[lod - 1]; } } + + return 1; } - // Node 10 - phi_s0 = 0; - phi_return = 3; - if (phi_s2 > 0) + + for (i = 0; i < lod; i++) { -loop_11: - // Node 11 - temp_ret = sub_GAME_7F0CC994(arg0, phi_s0); - temp_s0 = (phi_s0 + 1); - *arg2 = (s32) (*arg2 + (temp_ret * 4)); - phi_s0 = temp_s0; - phi_return = temp_ret; - if (temp_s0 != phi_s2) - { - goto loop_11; - } + height = (height + 1) >> 1; } - // Node 12 - return phi_return; + + return height; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CC9D4 -/* 101504 7F0CC9D4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 101508 7F0CC9D8 AFBF0024 */ sw $ra, 0x24($sp) -/* 10150C 7F0CC9DC AFB30020 */ sw $s3, 0x20($sp) -/* 101510 7F0CC9E0 AFB2001C */ sw $s2, 0x1c($sp) -/* 101514 7F0CC9E4 AFB10018 */ sw $s1, 0x18($sp) -/* 101518 7F0CC9E8 AFB00014 */ sw $s0, 0x14($sp) -/* 10151C 7F0CC9EC 8C830008 */ lw $v1, 8($a0) -/* 101520 7F0CC9F0 9082000B */ lbu $v0, 0xb($a0) -/* 101524 7F0CC9F4 00C08825 */ move $s1, $a2 -/* 101528 7F0CC9F8 306E0003 */ andi $t6, $v1, 3 -/* 10152C 7F0CC9FC 00027942 */ srl $t7, $v0, 5 -/* 101530 7F0CCA00 00809825 */ move $s3, $a0 -/* 101534 7F0CCA04 11E00003 */ beqz $t7, .L7F0CCA14 -/* 101538 7F0CCA08 01C01825 */ move $v1, $t6 -/* 10153C 7F0CCA0C 10000002 */ b .L7F0CCA18 -/* 101540 7F0CCA10 01E09025 */ move $s2, $t7 -.L7F0CCA14: -/* 101544 7F0CCA14 24120001 */ li $s2, 1 -.L7F0CCA18: -/* 101548 7F0CCA18 24020003 */ li $v0, 3 -/* 10154C 7F0CCA1C 14620003 */ bne $v1, $v0, .L7F0CCA2C -/* 101550 7F0CCA20 AE200000 */ sw $zero, ($s1) -/* 101554 7F0CCA24 1000000B */ b .L7F0CCA54 -/* 101558 7F0CCA28 ACA20000 */ sw $v0, ($a1) -.L7F0CCA2C: -/* 10155C 7F0CCA2C 24020002 */ li $v0, 2 -/* 101560 7F0CCA30 14620003 */ bne $v1, $v0, .L7F0CCA40 -/* 101564 7F0CCA34 24010001 */ li $at, 1 -/* 101568 7F0CCA38 10000006 */ b .L7F0CCA54 -/* 10156C 7F0CCA3C ACA20000 */ sw $v0, ($a1) -.L7F0CCA40: -/* 101570 7F0CCA40 54610004 */ bnel $v1, $at, .L7F0CCA54 -/* 101574 7F0CCA44 ACA20000 */ sw $v0, ($a1) -/* 101578 7F0CCA48 10000002 */ b .L7F0CCA54 -/* 10157C 7F0CCA4C ACA20000 */ sw $v0, ($a1) -/* 101580 7F0CCA50 ACA20000 */ sw $v0, ($a1) -.L7F0CCA54: -/* 101584 7F0CCA54 1A40000A */ blez $s2, .L7F0CCA80 -/* 101588 7F0CCA58 00008025 */ move $s0, $zero -.L7F0CCA5C: -/* 10158C 7F0CCA5C 02602025 */ move $a0, $s3 -/* 101590 7F0CCA60 0FC33265 */ jal sub_GAME_7F0CC994 -/* 101594 7F0CCA64 02002825 */ move $a1, $s0 -/* 101598 7F0CCA68 8E380000 */ lw $t8, ($s1) -/* 10159C 7F0CCA6C 0002C880 */ sll $t9, $v0, 2 -/* 1015A0 7F0CCA70 26100001 */ addiu $s0, $s0, 1 -/* 1015A4 7F0CCA74 03194021 */ addu $t0, $t8, $t9 -/* 1015A8 7F0CCA78 1612FFF8 */ bne $s0, $s2, .L7F0CCA5C -/* 1015AC 7F0CCA7C AE280000 */ sw $t0, ($s1) -.L7F0CCA80: -/* 1015B0 7F0CCA80 8FBF0024 */ lw $ra, 0x24($sp) -/* 1015B4 7F0CCA84 8FB00014 */ lw $s0, 0x14($sp) -/* 1015B8 7F0CCA88 8FB10018 */ lw $s1, 0x18($sp) -/* 1015BC 7F0CCA8C 8FB2001C */ lw $s2, 0x1c($sp) -/* 1015C0 7F0CCA90 8FB30020 */ lw $s3, 0x20($sp) -/* 1015C4 7F0CCA94 03E00008 */ jr $ra -/* 1015C8 7F0CCA98 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif +s32 texGetLineSizeInBytes(struct tex *tex, s32 lod) +{ + s32 depth = tex->depth; + s32 width = texGetWidthAtLod(tex, lod); + if (depth == G_IM_SIZ_32b) + { + return (width + 3) / 4; + } + + if (depth == G_IM_SIZ_16b) + { + return (width + 3) / 4; + } + + if (depth == G_IM_SIZ_8b) + { + return (width + 7) / 8; + } + + return (width + 15) / 16; +} + + +s32 texGetSizeInBytes(struct tex *tex, s32 lod) +{ + return texGetHeightAtLod(tex, lod) * texGetLineSizeInBytes(tex, lod); +} + + +void sub_GAME_7F0CC9D4(struct tex *tex, s32 *deptharg, s32 *lenarg) +{ + s32 depth = tex->depth; + s32 maxlod = tex->maxlod ? tex->maxlod : 1; + s32 lod; + + *lenarg = 0; + + if (depth == G_IM_SIZ_32b) + { + *deptharg = G_IM_SIZ_32b; + } + else if (depth == G_IM_SIZ_16b) + { + *deptharg = G_IM_SIZ_16b; + } + else if (depth == G_IM_SIZ_8b) + { + *deptharg = G_IM_SIZ_16b; + } + else + { + *deptharg = G_IM_SIZ_16b; + } + + for (lod = 0; lod < maxlod; lod++) { + *lenarg += texGetSizeInBytes(tex, lod) * 4; + } +} s32 sub_GAME_7F0CCA9C(s32 arg0) { @@ -707,7 +404,7 @@ s32 sub_GAME_7F0CCB38(s32 *arg0) s32 temp_t7; s32 temp_v0; - temp_v0 = sub_GAME_7F0CC8E4(arg0, 0U); + temp_v0 = texGetLineSizeInBytes(arg0, 0U); temp_t7 = arg0[2] & 3; if (temp_t7 == 3) { @@ -725,250 +422,49 @@ s32 sub_GAME_7F0CCB38(s32 *arg0) } +Gfx *sub_GAME_7F0CCC50(Gfx *gdl, struct tex *tex, s32 arg2, s32 shifts, s32 shiftt, s32 arg5) +{ + struct image_entry *s0 = &g_Textures[tex->texturenum]; + s32 sp88; + s32 sp84; + s32 line; + u32 stack[4]; + s32 uls; + s32 ult; + s32 lrs; + s32 lrt; + sp88 = sub_GAME_7F0CCA9C(tex->width); + sp84 = sub_GAME_7F0CCA9C(tex->height); -#ifdef NONMATCHING -void sub_GAME_7F0CCC50(void) { + line = texGetLineSizeInBytes(tex, 0); + gDPSetPrimColorViaWord(gdl++, arg5, 0, 0xffffffff); + + if (texSetLutMode(tex->lutmodeindex << G_MDSFT_TEXTLUT)) + { + gDPSetTextureLUT(gdl++, tex->lutmodeindex << G_MDSFT_TEXTLUT); + } + + if (sub_GAME_7F0CC574(0, tex->gbiformat, tex->depth, line, s0->flag3 + line * s0->flag4, 0, 0, sp88 - s0->flag5, sp84 - s0->flag6, shifts, shiftt)) + { + gDPSetTile(gdl++, tex->gbiformat, tex->depth, line, s0->flag3 + line * s0->flag4, 0, 0, + sub_GAME_7F0CCACC(0), sp84 - s0->flag6, shiftt, + sub_GAME_7F0CCACC(0), sp88 - s0->flag5, shifts); + } + + uls = (arg2 == 2 && !tex->unk0c_02 ? 2 : 0) + 0; + ult = (arg2 == 2 && !tex->unk0c_02 ? 2 : 0) + 0; + lrs = (arg2 == 2 && !tex->unk0c_02 ? 2 : 0) + ((tex->width - 1) << 2); + lrt = (arg2 == 2 && !tex->unk0c_02 ? 2 : 0) + ((tex->height - 1) << 2); + + if (sub_GAME_7F0CC690(0, uls, ult, lrs, lrt)) + { + gDPSetTileSize(gdl++, 0, uls, ult, lrs, lrt); + } + + return gdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CCC50 -/* 101780 7F0CCC50 27BDFF70 */ addiu $sp, $sp, -0x90 -/* 101784 7F0CCC54 AFBF0044 */ sw $ra, 0x44($sp) -/* 101788 7F0CCC58 AFB20040 */ sw $s2, 0x40($sp) -/* 10178C 7F0CCC5C AFB1003C */ sw $s1, 0x3c($sp) -/* 101790 7F0CCC60 AFB00038 */ sw $s0, 0x38($sp) -/* 101794 7F0CCC64 AFA60098 */ sw $a2, 0x98($sp) -/* 101798 7F0CCC68 AFA7009C */ sw $a3, 0x9c($sp) -/* 10179C 7F0CCC6C 8CAE0000 */ lw $t6, ($a1) -/* 1017A0 7F0CCC70 3C198005 */ lui $t9, %hi(image_entries) -/* 1017A4 7F0CCC74 00809025 */ move $s2, $a0 -/* 1017A8 7F0CCC78 000E7D02 */ srl $t7, $t6, 0x14 -/* 1017AC 7F0CCC7C 000FC0C0 */ sll $t8, $t7, 3 -/* 1017B0 7F0CCC80 27399300 */ addiu $t9, %lo(image_entries) # addiu $t9, $t9, -0x6d00 -/* 1017B4 7F0CCC84 00A08825 */ move $s1, $a1 -/* 1017B8 7F0CCC88 03198021 */ addu $s0, $t8, $t9 -/* 1017BC 7F0CCC8C 0FC332A7 */ jal sub_GAME_7F0CCA9C -/* 1017C0 7F0CCC90 90A40008 */ lbu $a0, 8($a1) -/* 1017C4 7F0CCC94 AFA20088 */ sw $v0, 0x88($sp) -/* 1017C8 7F0CCC98 0FC332A7 */ jal sub_GAME_7F0CCA9C -/* 1017CC 7F0CCC9C 92240009 */ lbu $a0, 9($s1) -/* 1017D0 7F0CCCA0 AFA20084 */ sw $v0, 0x84($sp) -/* 1017D4 7F0CCCA4 02202025 */ move $a0, $s1 -/* 1017D8 7F0CCCA8 0FC33239 */ jal sub_GAME_7F0CC8E4 -/* 1017DC 7F0CCCAC 00002825 */ move $a1, $zero -/* 1017E0 7F0CCCB0 8FA800A4 */ lw $t0, 0xa4($sp) -/* 1017E4 7F0CCCB4 02401825 */ move $v1, $s2 -/* 1017E8 7F0CCCB8 3C01FA00 */ lui $at, 0xfa00 -/* 1017EC 7F0CCCBC 310900FF */ andi $t1, $t0, 0xff -/* 1017F0 7F0CCCC0 00095200 */ sll $t2, $t1, 8 -/* 1017F4 7F0CCCC4 01415825 */ or $t3, $t2, $at -/* 1017F8 7F0CCCC8 240CFFFF */ li $t4, -1 -/* 1017FC 7F0CCCCC AC6C0004 */ sw $t4, 4($v1) -/* 101800 7F0CCCD0 AC6B0000 */ sw $t3, ($v1) -/* 101804 7F0CCCD4 8E24000C */ lw $a0, 0xc($s1) -/* 101808 7F0CCCD8 26520008 */ addiu $s2, $s2, 8 -/* 10180C 7F0CCCDC AFA20080 */ sw $v0, 0x80($sp) -/* 101810 7F0CCCE0 00046F82 */ srl $t5, $a0, 0x1e -/* 101814 7F0CCCE4 0FC33152 */ jal sub_GAME_7F0CC548 -/* 101818 7F0CCCE8 000D2380 */ sll $a0, $t5, 0xe -/* 10181C 7F0CCCEC 1040000A */ beqz $v0, .L7F0CCD18 -/* 101820 7F0CCCF0 8FA70080 */ lw $a3, 0x80($sp) -/* 101824 7F0CCCF4 3C0FBA00 */ lui $t7, (0xBA000E02 >> 16) # lui $t7, 0xba00 -/* 101828 7F0CCCF8 35EF0E02 */ ori $t7, (0xBA000E02 & 0xFFFF) # ori $t7, $t7, 0xe02 -/* 10182C 7F0CCCFC 02401025 */ move $v0, $s2 -/* 101830 7F0CCD00 AC4F0000 */ sw $t7, ($v0) -/* 101834 7F0CCD04 8E38000C */ lw $t8, 0xc($s1) -/* 101838 7F0CCD08 26520008 */ addiu $s2, $s2, 8 -/* 10183C 7F0CCD0C 0018CF82 */ srl $t9, $t8, 0x1e -/* 101840 7F0CCD10 00194380 */ sll $t0, $t9, 0xe -/* 101844 7F0CCD14 AC480004 */ sw $t0, 4($v0) -.L7F0CCD18: -/* 101848 7F0CCD18 920C0004 */ lbu $t4, 4($s0) -/* 10184C 7F0CCD1C 8E0A0004 */ lw $t2, 4($s0) -/* 101850 7F0CCD20 8E220008 */ lw $v0, 8($s1) -/* 101854 7F0CCD24 318D000F */ andi $t5, $t4, 0xf -/* 101858 7F0CCD28 00ED0019 */ multu $a3, $t5 -/* 10185C 7F0CCD2C 000A5F02 */ srl $t3, $t2, 0x1c -/* 101860 7F0CCD30 AFA00018 */ sw $zero, 0x18($sp) -/* 101864 7F0CCD34 AFA00014 */ sw $zero, 0x14($sp) -/* 101868 7F0CCD38 8FB80088 */ lw $t8, 0x88($sp) -/* 10186C 7F0CCD3C 00022EC0 */ sll $a1, $v0, 0x1b -/* 101870 7F0CCD40 00054F42 */ srl $t1, $a1, 0x1d -/* 101874 7F0CCD44 01202825 */ move $a1, $t1 -/* 101878 7F0CCD48 8FAA0084 */ lw $t2, 0x84($sp) -/* 10187C 7F0CCD4C 00002025 */ move $a0, $zero -/* 101880 7F0CCD50 00007012 */ mflo $t6 -/* 101884 7F0CCD54 016E7821 */ addu $t7, $t3, $t6 -/* 101888 7F0CCD58 AFAF0010 */ sw $t7, 0x10($sp) -/* 10188C 7F0CCD5C 92190005 */ lbu $t9, 5($s0) -/* 101890 7F0CCD60 8FAF00A0 */ lw $t7, 0xa0($sp) -/* 101894 7F0CCD64 8FAE009C */ lw $t6, 0x9c($sp) -/* 101898 7F0CCD68 00194102 */ srl $t0, $t9, 4 -/* 10189C 7F0CCD6C 03084823 */ subu $t1, $t8, $t0 -/* 1018A0 7F0CCD70 AFA9001C */ sw $t1, 0x1c($sp) -/* 1018A4 7F0CCD74 960C0004 */ lhu $t4, 4($s0) -/* 1018A8 7F0CCD78 AFA70080 */ sw $a3, 0x80($sp) -/* 1018AC 7F0CCD7C 30460003 */ andi $a2, $v0, 3 -/* 1018B0 7F0CCD80 318D000F */ andi $t5, $t4, 0xf -/* 1018B4 7F0CCD84 014D5823 */ subu $t3, $t2, $t5 -/* 1018B8 7F0CCD88 AFAB0020 */ sw $t3, 0x20($sp) -/* 1018BC 7F0CCD8C AFAF0028 */ sw $t7, 0x28($sp) -/* 1018C0 7F0CCD90 0FC3315D */ jal sub_GAME_7F0CC574 -/* 1018C4 7F0CCD94 AFAE0024 */ sw $t6, 0x24($sp) -/* 1018C8 7F0CCD98 1040003C */ beqz $v0, .L7F0CCE8C -/* 1018CC 7F0CCD9C 8FA70080 */ lw $a3, 0x80($sp) -/* 1018D0 7F0CCDA0 8E2A0008 */ lw $t2, 8($s1) -/* 1018D4 7F0CCDA4 3C01F500 */ lui $at, 0xf500 -/* 1018D8 7F0CCDA8 30EF01FF */ andi $t7, $a3, 0x1ff -/* 1018DC 7F0CCDAC 000ACEC0 */ sll $t9, $t2, 0x1b -/* 1018E0 7F0CCDB0 314D0003 */ andi $t5, $t2, 3 -/* 1018E4 7F0CCDB4 920A0004 */ lbu $t2, 4($s0) -/* 1018E8 7F0CCDB8 000D5CC0 */ sll $t3, $t5, 0x13 -/* 1018EC 7F0CCDBC 0019C742 */ srl $t8, $t9, 0x1d -/* 1018F0 7F0CCDC0 314D000F */ andi $t5, $t2, 0xf -/* 1018F4 7F0CCDC4 00ED0019 */ multu $a3, $t5 -/* 1018F8 7F0CCDC8 33080007 */ andi $t0, $t8, 7 -/* 1018FC 7F0CCDCC 00084D40 */ sll $t1, $t0, 0x15 -/* 101900 7F0CCDD0 8E080004 */ lw $t0, 4($s0) -/* 101904 7F0CCDD4 01216025 */ or $t4, $t1, $at -/* 101908 7F0CCDD8 018B7025 */ or $t6, $t4, $t3 -/* 10190C 7F0CCDDC 000FCA40 */ sll $t9, $t7, 9 -/* 101910 7F0CCDE0 00084F02 */ srl $t1, $t0, 0x1c -/* 101914 7F0CCDE4 01D9C025 */ or $t8, $t6, $t9 -/* 101918 7F0CCDE8 02401825 */ move $v1, $s2 -/* 10191C 7F0CCDEC 00006012 */ mflo $t4 -/* 101920 7F0CCDF0 012C5821 */ addu $t3, $t1, $t4 -/* 101924 7F0CCDF4 316F01FF */ andi $t7, $t3, 0x1ff -/* 101928 7F0CCDF8 030F7025 */ or $t6, $t8, $t7 -/* 10192C 7F0CCDFC AC6E0000 */ sw $t6, ($v1) -/* 101930 7F0CCE00 AFA30054 */ sw $v1, 0x54($sp) -/* 101934 7F0CCE04 26520008 */ addiu $s2, $s2, 8 -/* 101938 7F0CCE08 0FC332B3 */ jal sub_GAME_7F0CCACC -/* 10193C 7F0CCE0C 00002025 */ move $a0, $zero -/* 101940 7F0CCE10 00002025 */ move $a0, $zero -/* 101944 7F0CCE14 0FC332B3 */ jal sub_GAME_7F0CCACC -/* 101948 7F0CCE18 AFA2004C */ sw $v0, 0x4c($sp) -/* 10194C 7F0CCE1C 8FA3004C */ lw $v1, 0x4c($sp) -/* 101950 7F0CCE20 8FAC0084 */ lw $t4, 0x84($sp) -/* 101954 7F0CCE24 96180004 */ lhu $t8, 4($s0) -/* 101958 7F0CCE28 30590003 */ andi $t9, $v0, 3 -/* 10195C 7F0CCE2C 306A0003 */ andi $t2, $v1, 3 -/* 101960 7F0CCE30 000A6C80 */ sll $t5, $t2, 0x12 -/* 101964 7F0CCE34 00194200 */ sll $t0, $t9, 8 -/* 101968 7F0CCE38 010D4825 */ or $t1, $t0, $t5 -/* 10196C 7F0CCE3C 01987823 */ subu $t7, $t4, $t8 -/* 101970 7F0CCE40 8FA800A0 */ lw $t0, 0xa0($sp) -/* 101974 7F0CCE44 31EE000F */ andi $t6, $t7, 0xf -/* 101978 7F0CCE48 920F0005 */ lbu $t7, 5($s0) -/* 10197C 7F0CCE4C 000ECB80 */ sll $t9, $t6, 0xe -/* 101980 7F0CCE50 8FB80088 */ lw $t8, 0x88($sp) -/* 101984 7F0CCE54 01395025 */ or $t2, $t1, $t9 -/* 101988 7F0CCE58 310D000F */ andi $t5, $t0, 0xf -/* 10198C 7F0CCE5C 000D5A80 */ sll $t3, $t5, 0xa -/* 101990 7F0CCE60 014B6025 */ or $t4, $t2, $t3 -/* 101994 7F0CCE64 000F7102 */ srl $t6, $t7, 4 -/* 101998 7F0CCE68 8FAA009C */ lw $t2, 0x9c($sp) -/* 10199C 7F0CCE6C 030E4823 */ subu $t1, $t8, $t6 -/* 1019A0 7F0CCE70 3139000F */ andi $t9, $t1, 0xf -/* 1019A4 7F0CCE74 8FB80054 */ lw $t8, 0x54($sp) -/* 1019A8 7F0CCE78 00194100 */ sll $t0, $t9, 4 -/* 1019AC 7F0CCE7C 01886825 */ or $t5, $t4, $t0 -/* 1019B0 7F0CCE80 314B000F */ andi $t3, $t2, 0xf -/* 1019B4 7F0CCE84 01AB7825 */ or $t7, $t5, $t3 -/* 1019B8 7F0CCE88 AF0F0004 */ sw $t7, 4($t8) -.L7F0CCE8C: -/* 1019BC 7F0CCE8C 8FA40098 */ lw $a0, 0x98($sp) -/* 1019C0 7F0CCE90 24020002 */ li $v0, 2 -/* 1019C4 7F0CCE94 00001825 */ move $v1, $zero -/* 1019C8 7F0CCE98 14820007 */ bne $a0, $v0, .L7F0CCEB8 -/* 1019CC 7F0CCE9C 00000000 */ nop -/* 1019D0 7F0CCEA0 8E2E000C */ lw $t6, 0xc($s1) -/* 1019D4 7F0CCEA4 000EC880 */ sll $t9, $t6, 2 -/* 1019D8 7F0CCEA8 07200003 */ bltz $t9, .L7F0CCEB8 -/* 1019DC 7F0CCEAC 00000000 */ nop -/* 1019E0 7F0CCEB0 10000001 */ b .L7F0CCEB8 -/* 1019E4 7F0CCEB4 00401825 */ move $v1, $v0 -.L7F0CCEB8: -/* 1019E8 7F0CCEB8 14820007 */ bne $a0, $v0, .L7F0CCED8 -/* 1019EC 7F0CCEBC 00602825 */ move $a1, $v1 -/* 1019F0 7F0CCEC0 8E2C000C */ lw $t4, 0xc($s1) -/* 1019F4 7F0CCEC4 000C5080 */ sll $t2, $t4, 2 -/* 1019F8 7F0CCEC8 05420004 */ bltzl $t2, .L7F0CCEDC -/* 1019FC 7F0CCECC 00001825 */ move $v1, $zero -/* 101A00 7F0CCED0 10000002 */ b .L7F0CCEDC -/* 101A04 7F0CCED4 00401825 */ move $v1, $v0 -.L7F0CCED8: -/* 101A08 7F0CCED8 00001825 */ move $v1, $zero -.L7F0CCEDC: -/* 101A0C 7F0CCEDC 14820007 */ bne $a0, $v0, .L7F0CCEFC -/* 101A10 7F0CCEE0 00603025 */ move $a2, $v1 -/* 101A14 7F0CCEE4 8E2D000C */ lw $t5, 0xc($s1) -/* 101A18 7F0CCEE8 000D7880 */ sll $t7, $t5, 2 -/* 101A1C 7F0CCEEC 05E20004 */ bltzl $t7, .L7F0CCF00 -/* 101A20 7F0CCEF0 00001825 */ move $v1, $zero -/* 101A24 7F0CCEF4 10000002 */ b .L7F0CCF00 -/* 101A28 7F0CCEF8 00401825 */ move $v1, $v0 -.L7F0CCEFC: -/* 101A2C 7F0CCEFC 00001825 */ move $v1, $zero -.L7F0CCF00: -/* 101A30 7F0CCF00 92380008 */ lbu $t8, 8($s1) -/* 101A34 7F0CCF04 270EFFFF */ addiu $t6, $t8, -1 -/* 101A38 7F0CCF08 000E4880 */ sll $t1, $t6, 2 -/* 101A3C 7F0CCF0C 14820007 */ bne $a0, $v0, .L7F0CCF2C -/* 101A40 7F0CCF10 00693821 */ addu $a3, $v1, $t1 -/* 101A44 7F0CCF14 8E39000C */ lw $t9, 0xc($s1) -/* 101A48 7F0CCF18 00194080 */ sll $t0, $t9, 2 -/* 101A4C 7F0CCF1C 05020004 */ bltzl $t0, .L7F0CCF30 -/* 101A50 7F0CCF20 00001825 */ move $v1, $zero -/* 101A54 7F0CCF24 10000002 */ b .L7F0CCF30 -/* 101A58 7F0CCF28 24030002 */ li $v1, 2 -.L7F0CCF2C: -/* 101A5C 7F0CCF2C 00001825 */ move $v1, $zero -.L7F0CCF30: -/* 101A60 7F0CCF30 922A0009 */ lbu $t2, 9($s1) -/* 101A64 7F0CCF34 AFA70064 */ sw $a3, 0x64($sp) -/* 101A68 7F0CCF38 AFA60068 */ sw $a2, 0x68($sp) -/* 101A6C 7F0CCF3C 254DFFFF */ addiu $t5, $t2, -1 -/* 101A70 7F0CCF40 000D5880 */ sll $t3, $t5, 2 -/* 101A74 7F0CCF44 006B8021 */ addu $s0, $v1, $t3 -/* 101A78 7F0CCF48 AFB00010 */ sw $s0, 0x10($sp) -/* 101A7C 7F0CCF4C AFA5006C */ sw $a1, 0x6c($sp) -/* 101A80 7F0CCF50 0FC331A4 */ jal sub_GAME_7F0CC690 -/* 101A84 7F0CCF54 00002025 */ move $a0, $zero -/* 101A88 7F0CCF58 8FA5006C */ lw $a1, 0x6c($sp) -/* 101A8C 7F0CCF5C 8FA60068 */ lw $a2, 0x68($sp) -/* 101A90 7F0CCF60 1040000F */ beqz $v0, .L7F0CCFA0 -/* 101A94 7F0CCF64 8FA70064 */ lw $a3, 0x64($sp) -/* 101A98 7F0CCF68 30AF0FFF */ andi $t7, $a1, 0xfff -/* 101A9C 7F0CCF6C 000FC300 */ sll $t8, $t7, 0xc -/* 101AA0 7F0CCF70 02401025 */ move $v0, $s2 -/* 101AA4 7F0CCF74 3C01F200 */ lui $at, 0xf200 -/* 101AA8 7F0CCF78 30EC0FFF */ andi $t4, $a3, 0xfff -/* 101AAC 7F0CCF7C 000C4300 */ sll $t0, $t4, 0xc -/* 101AB0 7F0CCF80 03017025 */ or $t6, $t8, $at -/* 101AB4 7F0CCF84 30C90FFF */ andi $t1, $a2, 0xfff -/* 101AB8 7F0CCF88 320A0FFF */ andi $t2, $s0, 0xfff -/* 101ABC 7F0CCF8C 010A6825 */ or $t5, $t0, $t2 -/* 101AC0 7F0CCF90 01C9C825 */ or $t9, $t6, $t1 -/* 101AC4 7F0CCF94 AC590000 */ sw $t9, ($v0) -/* 101AC8 7F0CCF98 AC4D0004 */ sw $t5, 4($v0) -/* 101ACC 7F0CCF9C 26520008 */ addiu $s2, $s2, 8 -.L7F0CCFA0: -/* 101AD0 7F0CCFA0 8FBF0044 */ lw $ra, 0x44($sp) -/* 101AD4 7F0CCFA4 02401025 */ move $v0, $s2 -/* 101AD8 7F0CCFA8 8FB20040 */ lw $s2, 0x40($sp) -/* 101ADC 7F0CCFAC 8FB00038 */ lw $s0, 0x38($sp) -/* 101AE0 7F0CCFB0 8FB1003C */ lw $s1, 0x3c($sp) -/* 101AE4 7F0CCFB4 03E00008 */ jr $ra -/* 101AE8 7F0CCFB8 27BD0090 */ addiu $sp, $sp, 0x90 -) -#endif - - - #ifdef NONMATCHING @@ -1338,23 +834,23 @@ glabel sub_GAME_7F0CD430 /* 101FC4 7F0CD494 AFA80064 */ sw $t0, 0x64($sp) .L7F0CD498: /* 101FC8 7F0CD498 02A02025 */ move $a0, $s5 -/* 101FCC 7F0CD49C 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 101FCC 7F0CD49C 0FC331C5 */ jal texGetWidthAtLod /* 101FD0 7F0CD4A0 02402825 */ move $a1, $s2 /* 101FD4 7F0CD4A4 0FC332A7 */ jal sub_GAME_7F0CCA9C /* 101FD8 7F0CD4A8 00402025 */ move $a0, $v0 /* 101FDC 7F0CD4AC 00409825 */ move $s3, $v0 /* 101FE0 7F0CD4B0 02A02025 */ move $a0, $s5 -/* 101FE4 7F0CD4B4 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 101FE4 7F0CD4B4 0FC331FF */ jal texGetHeightAtLod /* 101FE8 7F0CD4B8 02402825 */ move $a1, $s2 /* 101FEC 7F0CD4BC 0FC332A7 */ jal sub_GAME_7F0CCA9C /* 101FF0 7F0CD4C0 00402025 */ move $a0, $v0 /* 101FF4 7F0CD4C4 0040A025 */ move $s4, $v0 /* 101FF8 7F0CD4C8 02A02025 */ move $a0, $s5 -/* 101FFC 7F0CD4CC 0FC33239 */ jal sub_GAME_7F0CC8E4 +/* 101FFC 7F0CD4CC 0FC33239 */ jal texGetLineSizeInBytes /* 102000 7F0CD4D0 02402825 */ move $a1, $s2 /* 102004 7F0CD4D4 00408025 */ move $s0, $v0 /* 102008 7F0CD4D8 02A02025 */ move $a0, $s5 -/* 10200C 7F0CD4DC 0FC33265 */ jal sub_GAME_7F0CC994 +/* 10200C 7F0CD4DC 0FC33265 */ jal texGetSizeInBytes /* 102010 7F0CD4E0 02402825 */ move $a1, $s2 /* 102014 7F0CD4E4 AFA20080 */ sw $v0, 0x80($sp) /* 102018 7F0CD4E8 8EA3000C */ lw $v1, 0xc($s5) @@ -1363,7 +859,7 @@ glabel sub_GAME_7F0CD430 /* 102024 7F0CD4F4 001EC7C2 */ srl $t8, $fp, 0x1f /* 102028 7F0CD4F8 0004CB80 */ sll $t9, $a0, 0xe /* 10202C 7F0CD4FC 0300F025 */ move $fp, $t8 -/* 102030 7F0CD500 0FC33152 */ jal sub_GAME_7F0CC548 +/* 102030 7F0CD500 0FC33152 */ jal texSetLutMode /* 102034 7F0CD504 03202025 */ move $a0, $t9 /* 102038 7F0CD508 1040000A */ beqz $v0, .L7F0CD534 /* 10203C 7F0CD50C 02003825 */ move $a3, $s0 @@ -1462,7 +958,7 @@ glabel sub_GAME_7F0CD430 .L7F0CD670: /* 1021A0 7F0CD670 00008025 */ move $s0, $zero .L7F0CD674: -/* 1021A4 7F0CD674 0FC331C5 */ jal sub_GAME_7F0CC714 +/* 1021A4 7F0CD674 0FC331C5 */ jal texGetWidthAtLod /* 1021A8 7F0CD678 0200B825 */ move $s7, $s0 /* 1021AC 7F0CD67C 8FAF00C8 */ lw $t7, 0xc8($sp) /* 1021B0 7F0CD680 00409825 */ move $s3, $v0 @@ -1479,7 +975,7 @@ glabel sub_GAME_7F0CD430 /* 1021D4 7F0CD6A4 00184880 */ sll $t1, $t8, 2 /* 1021D8 7F0CD6A8 0209A021 */ addu $s4, $s0, $t1 /* 1021DC 7F0CD6AC 02A02025 */ move $a0, $s5 -/* 1021E0 7F0CD6B0 0FC331FF */ jal sub_GAME_7F0CC7FC +/* 1021E0 7F0CD6B0 0FC331FF */ jal texGetHeightAtLod /* 1021E4 7F0CD6B4 02402825 */ move $a1, $s2 /* 1021E8 7F0CD6B8 8FAB00C8 */ lw $t3, 0xc8($sp) /* 1021EC 7F0CD6BC 24010002 */ li $at, 2 @@ -1814,206 +1310,46 @@ glabel sub_GAME_7F0CD7AC #endif +Gfx *sub_GAME_7F0CDB64(Gfx *gdl, struct tex *tex, s32 arg2, s32 arg3, s32 arg4, s32 tile) +{ + s32 masks; + s32 maskt; + s32 line; + s32 uls; + s32 ult; + s32 lrs; + s32 lrt; + s32 sp50; + masks = sub_GAME_7F0CCA9C(tex->width); + maskt = sub_GAME_7F0CCA9C(tex->height); + line = texGetLineSizeInBytes(tex, 0); + sp50 = tex->unk0c_02; + if (texSetLutMode(tex->lutmodeindex << G_MDSFT_TEXTLUT)) + { + gDPSetTextureLUT(gdl++, tex->lutmodeindex << G_MDSFT_TEXTLUT); + } -#ifdef NONMATCHING -void sub_GAME_7F0CDB64(void) { + if (sub_GAME_7F0CC574(tile, tex->gbiformat, tex->depth, line, 0, arg2, arg3, masks, maskt, 0, 0)) + { + gDPSetTile(gdl++, tex->gbiformat, tex->depth, line, 0x0000, tile, 0, + sub_GAME_7F0CCACC(arg3), maskt, G_TX_NOLOD, + sub_GAME_7F0CCACC(arg2), masks, G_TX_NOLOD); + } + uls = (arg4 == 2 && sp50 == 0 ? 2 : 0) + 0; + ult = (arg4 == 2 && sp50 == 0 ? 2 : 0) + 0; + lrs = (arg4 == 2 && sp50 == 0 ? 2 : 0) + ((tex->width - 1) << 2); + lrt = (arg4 == 2 && sp50 == 0 ? 2 : 0) + ((tex->height - 1) << 2); + + if (sub_GAME_7F0CC690(tile, uls, ult, lrs, lrt)) + { + gDPSetTileSize(gdl++, tile, uls, ult, lrs, lrt); + } + + return gdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CDB64 -/* 102694 7F0CDB64 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 102698 7F0CDB68 AFB10038 */ sw $s1, 0x38($sp) -/* 10269C 7F0CDB6C 00808825 */ move $s1, $a0 -/* 1026A0 7F0CDB70 AFBF003C */ sw $ra, 0x3c($sp) -/* 1026A4 7F0CDB74 AFB00034 */ sw $s0, 0x34($sp) -/* 1026A8 7F0CDB78 AFA60078 */ sw $a2, 0x78($sp) -/* 1026AC 7F0CDB7C AFA7007C */ sw $a3, 0x7c($sp) -/* 1026B0 7F0CDB80 00A08025 */ move $s0, $a1 -/* 1026B4 7F0CDB84 0FC332A7 */ jal sub_GAME_7F0CCA9C -/* 1026B8 7F0CDB88 90A40008 */ lbu $a0, 8($a1) -/* 1026BC 7F0CDB8C AFA2006C */ sw $v0, 0x6c($sp) -/* 1026C0 7F0CDB90 0FC332A7 */ jal sub_GAME_7F0CCA9C -/* 1026C4 7F0CDB94 92040009 */ lbu $a0, 9($s0) -/* 1026C8 7F0CDB98 AFA20068 */ sw $v0, 0x68($sp) -/* 1026CC 7F0CDB9C 02002025 */ move $a0, $s0 -/* 1026D0 7F0CDBA0 0FC33239 */ jal sub_GAME_7F0CC8E4 -/* 1026D4 7F0CDBA4 00002825 */ move $a1, $zero -/* 1026D8 7F0CDBA8 AFA20064 */ sw $v0, 0x64($sp) -/* 1026DC 7F0CDBAC 8E03000C */ lw $v1, 0xc($s0) -/* 1026E0 7F0CDBB0 00037080 */ sll $t6, $v1, 2 -/* 1026E4 7F0CDBB4 00032782 */ srl $a0, $v1, 0x1e -/* 1026E8 7F0CDBB8 000E7FC2 */ srl $t7, $t6, 0x1f -/* 1026EC 7F0CDBBC 0004C380 */ sll $t8, $a0, 0xe -/* 1026F0 7F0CDBC0 AFAF0050 */ sw $t7, 0x50($sp) -/* 1026F4 7F0CDBC4 0FC33152 */ jal sub_GAME_7F0CC548 -/* 1026F8 7F0CDBC8 03002025 */ move $a0, $t8 -/* 1026FC 7F0CDBCC 10400009 */ beqz $v0, .L7F0CDBF4 -/* 102700 7F0CDBD0 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 -/* 102704 7F0CDBD4 02201025 */ move $v0, $s1 -/* 102708 7F0CDBD8 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 -/* 10270C 7F0CDBDC AC590000 */ sw $t9, ($v0) -/* 102710 7F0CDBE0 8E09000C */ lw $t1, 0xc($s0) -/* 102714 7F0CDBE4 26310008 */ addiu $s1, $s1, 8 -/* 102718 7F0CDBE8 00095782 */ srl $t2, $t1, 0x1e -/* 10271C 7F0CDBEC 000A5B80 */ sll $t3, $t2, 0xe -/* 102720 7F0CDBF0 AC4B0004 */ sw $t3, 4($v0) -.L7F0CDBF4: -/* 102724 7F0CDBF4 8E020008 */ lw $v0, 8($s0) -/* 102728 7F0CDBF8 8FAD0078 */ lw $t5, 0x78($sp) -/* 10272C 7F0CDBFC 8FAE007C */ lw $t6, 0x7c($sp) -/* 102730 7F0CDC00 8FAF006C */ lw $t7, 0x6c($sp) -/* 102734 7F0CDC04 8FB80068 */ lw $t8, 0x68($sp) -/* 102738 7F0CDC08 00022EC0 */ sll $a1, $v0, 0x1b -/* 10273C 7F0CDC0C 00056742 */ srl $t4, $a1, 0x1d -/* 102740 7F0CDC10 01802825 */ move $a1, $t4 -/* 102744 7F0CDC14 AFA00028 */ sw $zero, 0x28($sp) -/* 102748 7F0CDC18 AFA00024 */ sw $zero, 0x24($sp) -/* 10274C 7F0CDC1C AFA00010 */ sw $zero, 0x10($sp) -/* 102750 7F0CDC20 8FA40084 */ lw $a0, 0x84($sp) -/* 102754 7F0CDC24 8FA70064 */ lw $a3, 0x64($sp) -/* 102758 7F0CDC28 30460003 */ andi $a2, $v0, 3 -/* 10275C 7F0CDC2C AFAD0014 */ sw $t5, 0x14($sp) -/* 102760 7F0CDC30 AFAE0018 */ sw $t6, 0x18($sp) -/* 102764 7F0CDC34 AFAF001C */ sw $t7, 0x1c($sp) -/* 102768 7F0CDC38 0FC3315D */ jal sub_GAME_7F0CC574 -/* 10276C 7F0CDC3C AFB80020 */ sw $t8, 0x20($sp) -/* 102770 7F0CDC40 1040002B */ beqz $v0, .L7F0CDCF0 -/* 102774 7F0CDC44 02201825 */ move $v1, $s1 -/* 102778 7F0CDC48 8E0D0008 */ lw $t5, 8($s0) -/* 10277C 7F0CDC4C 3C01F500 */ lui $at, 0xf500 -/* 102780 7F0CDC50 26310008 */ addiu $s1, $s1, 8 -/* 102784 7F0CDC54 000DCEC0 */ sll $t9, $t5, 0x1b -/* 102788 7F0CDC58 00194F42 */ srl $t1, $t9, 0x1d -/* 10278C 7F0CDC5C 8FB90064 */ lw $t9, 0x64($sp) -/* 102790 7F0CDC60 312A0007 */ andi $t2, $t1, 7 -/* 102794 7F0CDC64 000A5D40 */ sll $t3, $t2, 0x15 -/* 102798 7F0CDC68 31AE0003 */ andi $t6, $t5, 3 -/* 10279C 7F0CDC6C 000E7CC0 */ sll $t7, $t6, 0x13 -/* 1027A0 7F0CDC70 01616025 */ or $t4, $t3, $at -/* 1027A4 7F0CDC74 332901FF */ andi $t1, $t9, 0x1ff -/* 1027A8 7F0CDC78 00095240 */ sll $t2, $t1, 9 -/* 1027AC 7F0CDC7C 018FC025 */ or $t8, $t4, $t7 -/* 1027B0 7F0CDC80 030A5825 */ or $t3, $t8, $t2 -/* 1027B4 7F0CDC84 AC6B0000 */ sw $t3, ($v1) -/* 1027B8 7F0CDC88 AFA30048 */ sw $v1, 0x48($sp) -/* 1027BC 7F0CDC8C 0FC332B3 */ jal sub_GAME_7F0CCACC -/* 1027C0 7F0CDC90 8FA4007C */ lw $a0, 0x7c($sp) -/* 1027C4 7F0CDC94 8FA40078 */ lw $a0, 0x78($sp) -/* 1027C8 7F0CDC98 0FC332B3 */ jal sub_GAME_7F0CCACC -/* 1027CC 7F0CDC9C AFA20040 */ sw $v0, 0x40($sp) -/* 1027D0 7F0CDCA0 8FAC0084 */ lw $t4, 0x84($sp) -/* 1027D4 7F0CDCA4 304D0003 */ andi $t5, $v0, 3 -/* 1027D8 7F0CDCA8 8FA30040 */ lw $v1, 0x40($sp) -/* 1027DC 7F0CDCAC 000D7200 */ sll $t6, $t5, 8 -/* 1027E0 7F0CDCB0 318F0007 */ andi $t7, $t4, 7 -/* 1027E4 7F0CDCB4 8FAD0068 */ lw $t5, 0x68($sp) -/* 1027E8 7F0CDCB8 000FCE00 */ sll $t9, $t7, 0x18 -/* 1027EC 7F0CDCBC 01D94825 */ or $t1, $t6, $t9 -/* 1027F0 7F0CDCC0 8FB9006C */ lw $t9, 0x6c($sp) -/* 1027F4 7F0CDCC4 30780003 */ andi $t8, $v1, 3 -/* 1027F8 7F0CDCC8 00185480 */ sll $t2, $t8, 0x12 -/* 1027FC 7F0CDCCC 31AC000F */ andi $t4, $t5, 0xf -/* 102800 7F0CDCD0 012A5825 */ or $t3, $t1, $t2 -/* 102804 7F0CDCD4 8FAD0048 */ lw $t5, 0x48($sp) -/* 102808 7F0CDCD8 000C7B80 */ sll $t7, $t4, 0xe -/* 10280C 7F0CDCDC 3338000F */ andi $t8, $t9, 0xf -/* 102810 7F0CDCE0 00184900 */ sll $t1, $t8, 4 -/* 102814 7F0CDCE4 016F7025 */ or $t6, $t3, $t7 -/* 102818 7F0CDCE8 01C95025 */ or $t2, $t6, $t1 -/* 10281C 7F0CDCEC ADAA0004 */ sw $t2, 4($t5) -.L7F0CDCF0: -/* 102820 7F0CDCF0 8FA20080 */ lw $v0, 0x80($sp) -/* 102824 7F0CDCF4 24040002 */ li $a0, 2 -/* 102828 7F0CDCF8 8FA80050 */ lw $t0, 0x50($sp) -/* 10282C 7F0CDCFC 14440005 */ bne $v0, $a0, .L7F0CDD14 -/* 102830 7F0CDD00 00001825 */ move $v1, $zero -/* 102834 7F0CDD04 55000004 */ bnezl $t0, .L7F0CDD18 -/* 102838 7F0CDD08 8FA80050 */ lw $t0, 0x50($sp) -/* 10283C 7F0CDD0C 10000002 */ b .L7F0CDD18 -/* 102840 7F0CDD10 00801825 */ move $v1, $a0 -.L7F0CDD14: -/* 102844 7F0CDD14 8FA80050 */ lw $t0, 0x50($sp) -.L7F0CDD18: -/* 102848 7F0CDD18 14440005 */ bne $v0, $a0, .L7F0CDD30 -/* 10284C 7F0CDD1C 00602825 */ move $a1, $v1 -/* 102850 7F0CDD20 55000004 */ bnezl $t0, .L7F0CDD34 -/* 102854 7F0CDD24 00001825 */ move $v1, $zero -/* 102858 7F0CDD28 10000002 */ b .L7F0CDD34 -/* 10285C 7F0CDD2C 00801825 */ move $v1, $a0 -.L7F0CDD30: -/* 102860 7F0CDD30 00001825 */ move $v1, $zero -.L7F0CDD34: -/* 102864 7F0CDD34 14440005 */ bne $v0, $a0, .L7F0CDD4C -/* 102868 7F0CDD38 00603025 */ move $a2, $v1 -/* 10286C 7F0CDD3C 55000004 */ bnezl $t0, .L7F0CDD50 -/* 102870 7F0CDD40 00001825 */ move $v1, $zero -/* 102874 7F0CDD44 10000002 */ b .L7F0CDD50 -/* 102878 7F0CDD48 00801825 */ move $v1, $a0 -.L7F0CDD4C: -/* 10287C 7F0CDD4C 00001825 */ move $v1, $zero -.L7F0CDD50: -/* 102880 7F0CDD50 920C0008 */ lbu $t4, 8($s0) -/* 102884 7F0CDD54 258BFFFF */ addiu $t3, $t4, -1 -/* 102888 7F0CDD58 000B7880 */ sll $t7, $t3, 2 -/* 10288C 7F0CDD5C 14440005 */ bne $v0, $a0, .L7F0CDD74 -/* 102890 7F0CDD60 006F3821 */ addu $a3, $v1, $t7 -/* 102894 7F0CDD64 55000004 */ bnezl $t0, .L7F0CDD78 -/* 102898 7F0CDD68 00001825 */ move $v1, $zero -/* 10289C 7F0CDD6C 10000002 */ b .L7F0CDD78 -/* 1028A0 7F0CDD70 24030002 */ li $v1, 2 -.L7F0CDD74: -/* 1028A4 7F0CDD74 00001825 */ move $v1, $zero -.L7F0CDD78: -/* 1028A8 7F0CDD78 92190009 */ lbu $t9, 9($s0) -/* 1028AC 7F0CDD7C AFA70058 */ sw $a3, 0x58($sp) -/* 1028B0 7F0CDD80 AFA6005C */ sw $a2, 0x5c($sp) -/* 1028B4 7F0CDD84 2738FFFF */ addiu $t8, $t9, -1 -/* 1028B8 7F0CDD88 00187080 */ sll $t6, $t8, 2 -/* 1028BC 7F0CDD8C 006E4021 */ addu $t0, $v1, $t6 -/* 1028C0 7F0CDD90 AFA80010 */ sw $t0, 0x10($sp) -/* 1028C4 7F0CDD94 AFA80054 */ sw $t0, 0x54($sp) -/* 1028C8 7F0CDD98 AFA50060 */ sw $a1, 0x60($sp) -/* 1028CC 7F0CDD9C 0FC331A4 */ jal sub_GAME_7F0CC690 -/* 1028D0 7F0CDDA0 8FA40084 */ lw $a0, 0x84($sp) -/* 1028D4 7F0CDDA4 8FA50060 */ lw $a1, 0x60($sp) -/* 1028D8 7F0CDDA8 8FA6005C */ lw $a2, 0x5c($sp) -/* 1028DC 7F0CDDAC 8FA70058 */ lw $a3, 0x58($sp) -/* 1028E0 7F0CDDB0 10400013 */ beqz $v0, .L7F0CDE00 -/* 1028E4 7F0CDDB4 8FA80054 */ lw $t0, 0x54($sp) -/* 1028E8 7F0CDDB8 30A90FFF */ andi $t1, $a1, 0xfff -/* 1028EC 7F0CDDBC 00095300 */ sll $t2, $t1, 0xc -/* 1028F0 7F0CDDC0 3C01F200 */ lui $at, 0xf200 -/* 1028F4 7F0CDDC4 01416825 */ or $t5, $t2, $at -/* 1028F8 7F0CDDC8 30CC0FFF */ andi $t4, $a2, 0xfff -/* 1028FC 7F0CDDCC 01AC5825 */ or $t3, $t5, $t4 -/* 102900 7F0CDDD0 02201025 */ move $v0, $s1 -/* 102904 7F0CDDD4 AC4B0000 */ sw $t3, ($v0) -/* 102908 7F0CDDD8 8FAF0084 */ lw $t7, 0x84($sp) -/* 10290C 7F0CDDDC 30EE0FFF */ andi $t6, $a3, 0xfff -/* 102910 7F0CDDE0 000E4B00 */ sll $t1, $t6, 0xc -/* 102914 7F0CDDE4 31F90007 */ andi $t9, $t7, 7 -/* 102918 7F0CDDE8 0019C600 */ sll $t8, $t9, 0x18 -/* 10291C 7F0CDDEC 03095025 */ or $t2, $t8, $t1 -/* 102920 7F0CDDF0 310D0FFF */ andi $t5, $t0, 0xfff -/* 102924 7F0CDDF4 014D6025 */ or $t4, $t2, $t5 -/* 102928 7F0CDDF8 AC4C0004 */ sw $t4, 4($v0) -/* 10292C 7F0CDDFC 26310008 */ addiu $s1, $s1, 8 -.L7F0CDE00: -/* 102930 7F0CDE00 8FBF003C */ lw $ra, 0x3c($sp) -/* 102934 7F0CDE04 02201025 */ move $v0, $s1 -/* 102938 7F0CDE08 8FB10038 */ lw $s1, 0x38($sp) -/* 10293C 7F0CDE0C 8FB00034 */ lw $s0, 0x34($sp) -/* 102940 7F0CDE10 03E00008 */ jr $ra -/* 102944 7F0CDE14 27BD0070 */ addiu $sp, $sp, 0x70 -) -#endif - - - #ifdef NONMATCHING @@ -2082,7 +1418,7 @@ Gfx * sub_GAME_7F0CDEA8(Gfx *DL,u8 *arg1,s32 arg2,s32 arg3,s32 arg4,u32 arg5,u32 u32 uVar1; - uVar1 = sub_GAME_7F0CC994(arg5,NULL); + uVar1 = texGetSizeInBytes(arg5,NULL); DL = sub_GAME_7F0CD7AC(DL,arg5); gDPTileSync(DL++); DL = expland_c0DL_psuedocommands(DL,arg1,uVar1); @@ -2106,7 +1442,7 @@ glabel sub_GAME_7F0CDEA8 /* 1029EC 7F0CDEBC AFA60040 */ sw $a2, 0x40($sp) /* 1029F0 7F0CDEC0 AFA70044 */ sw $a3, 0x44($sp) /* 1029F4 7F0CDEC4 00002825 */ move $a1, $zero -/* 1029F8 7F0CDEC8 0FC33265 */ jal sub_GAME_7F0CC994 +/* 1029F8 7F0CDEC8 0FC33265 */ jal texGetSizeInBytes /* 1029FC 7F0CDECC 8FA4004C */ lw $a0, 0x4c($sp) /* 102A00 7F0CDED0 AFA20034 */ sw $v0, 0x34($sp) /* 102A04 7F0CDED4 02002025 */ move $a0, $s0 @@ -2388,10 +1724,10 @@ glabel process_microcode_sort_display_modes_expand_image_calls .L7F0CE258: /* 102D88 7F0CE258 0000A025 */ move $s4, $zero .L7F0CE25C: -/* 102D8C 7F0CE25C 0FC32FBA */ jal calls_load_image_to_buffer +/* 102D8C 7F0CE25C 0FC32FBA */ jal texLoadFromTextureNum /* 102D90 7F0CE260 02602025 */ move $a0, $s3 /* 102D94 7F0CE264 02602025 */ move $a0, $s3 -/* 102D98 7F0CE268 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 102D98 7F0CE268 0FC32EC3 */ jal texFindInPool /* 102D9C 7F0CE26C 02C02825 */ move $a1, $s6 /* 102DA0 7F0CE270 104000F4 */ beqz $v0, .L7F0CE644 /* 102DA4 7F0CE274 00409025 */ move $s2, $v0 @@ -2511,10 +1847,10 @@ glabel process_microcode_sort_display_modes_expand_image_calls /* 102F5C 7F0CE42C 02C02825 */ move $a1, $s6 /* 102F60 7F0CE430 00047B02 */ srl $t7, $a0, 0xc /* 102F64 7F0CE434 31E40FFF */ andi $a0, $t7, 0xfff -/* 102F68 7F0CE438 0FC32FBA */ jal calls_load_image_to_buffer +/* 102F68 7F0CE438 0FC32FBA */ jal texLoadFromTextureNum /* 102F6C 7F0CE43C AFA40080 */ sw $a0, 0x80($sp) /* 102F70 7F0CE440 8FA40080 */ lw $a0, 0x80($sp) -/* 102F74 7F0CE444 0FC32EC3 */ jal sub_GAME_7F0CBB0C +/* 102F74 7F0CE444 0FC32EC3 */ jal texFindInPool /* 102F78 7F0CE448 02C02825 */ move $a1, $s6 /* 102F7C 7F0CE44C 10400068 */ beqz $v0, .L7F0CE5F0 /* 102F80 7F0CE450 02002025 */ move $a0, $s0 @@ -2751,42 +2087,16 @@ def_7F0CE2B4: #endif +void sub_GAME_7F0CE794(Gfx *arg0, Gfx *arg1, s32 arg2) +{ + arg2 = (arg2 >> 3); + arg0 = arg0 + (arg2 - 1); + arg1 = arg1 + (arg2 - 1); - - -#ifdef NONMATCHING -void sub_GAME_7F0CE794(void) { - + while (arg2--) + { + arg1->force_structure_alignment = arg0->force_structure_alignment; + arg1--; + arg0--; + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CE794 -/* 1032C4 7F0CE794 000670C3 */ sra $t6, $a2, 3 -/* 1032C8 7F0CE798 25C2FFFF */ addiu $v0, $t6, -1 -/* 1032CC 7F0CE79C 01C03025 */ move $a2, $t6 -/* 1032D0 7F0CE7A0 000218C0 */ sll $v1, $v0, 3 -/* 1032D4 7F0CE7A4 00642021 */ addu $a0, $v1, $a0 -/* 1032D8 7F0CE7A8 00652821 */ addu $a1, $v1, $a1 -/* 1032DC 7F0CE7AC 01C03825 */ move $a3, $t6 -/* 1032E0 7F0CE7B0 10C0000A */ beqz $a2, .L7F0CE7DC -/* 1032E4 7F0CE7B4 00403025 */ move $a2, $v0 -.L7F0CE7B8: -/* 1032E8 7F0CE7B8 8C980000 */ lw $t8, ($a0) -/* 1032EC 7F0CE7BC 8C990004 */ lw $t9, 4($a0) -/* 1032F0 7F0CE7C0 00C03825 */ move $a3, $a2 -/* 1032F4 7F0CE7C4 24A5FFF8 */ addiu $a1, $a1, -8 -/* 1032F8 7F0CE7C8 2484FFF8 */ addiu $a0, $a0, -8 -/* 1032FC 7F0CE7CC ACB80008 */ sw $t8, 8($a1) -/* 103300 7F0CE7D0 ACB9000C */ sw $t9, 0xc($a1) -/* 103304 7F0CE7D4 14C0FFF8 */ bnez $a2, .L7F0CE7B8 -/* 103308 7F0CE7D8 24C6FFFF */ addiu $a2, $a2, -1 -.L7F0CE7DC: -/* 10330C 7F0CE7DC 03E00008 */ jr $ra -/* 103310 7F0CE7E0 00000000 */ nop -) -#endif - - - - diff --git a/src/game/unk_0CC4C0.h b/src/game/unk_0CC4C0.h index afc58ad5..0befdc2f 100644 --- a/src/game/unk_0CC4C0.h +++ b/src/game/unk_0CC4C0.h @@ -14,7 +14,7 @@ struct image_sound /** * Number of items in sfx array. */ - u16 sfx_len; + s16 sfx_len; /** * Number of items in thing2 array. diff --git a/src/game/watch.c b/src/game/watch.c index 213aaecb..9df6c135 100644 --- a/src/game/watch.c +++ b/src/game/watch.c @@ -2196,11 +2196,11 @@ f32 sub_GAME_7F0A6A2C(f32 arg0) { if (arg0 > 3.1415927f) { - arg0 = arg0 - 6.2831855f; + arg0 = arg0 - M_TAU_F; } else if (arg0 < -3.1415927f) { - arg0 = arg0 + 6.2831855f; + arg0 = arg0 + M_TAU_F; } return arg0; } @@ -2277,9 +2277,9 @@ void sub_GAME_7F0A6A80(void) D_80040B00 = 0xF; } #ifdef VERSION_US - D_80040B14 += ((D_80040B1C * speedgraphframes * 6.2831855f) / 360.0f); + D_80040B14 += ((D_80040B1C * speedgraphframes * M_TAU_F) / 360.0f); #else - D_80040B14 += ((D_80040B1C * jpD_800484D0 * 6.2831855f) / 360.0f); + D_80040B14 += ((D_80040B1C * jpD_800484D0 * M_TAU_F) / 360.0f); #endif D_80040B14 = sub_GAME_7F0A6A2C(D_80040B14); @@ -2367,8 +2367,8 @@ void sub_GAME_7F0A6A80(void) } -#ifdef NONMATCHING -Gfx * sub_GAME_7F0A6EE8(Gfx *DL) + +Gfx *sub_GAME_7F0A6EE8(Gfx *DL) { gSPSetGeometryMode(DL++, G_CULL_BACK); gDPSetCycleType(DL++, G_CYC_1CYCLE); @@ -2377,7 +2377,6 @@ Gfx * sub_GAME_7F0A6EE8(Gfx *DL) gDPSetTextureLOD(DL++, G_TL_TILE); gDPSetTextureLUT(DL++, G_TT_NONE); gDPSetTextureDetail(DL++, G_TD_CLAMP); - gDPSetTexturePersp(DL++, G_TP_PERSP); gDPSetTextureFilter(DL++, G_TF_BILERP); gDPSetTextureConvert(DL++, G_TC_FILT); @@ -2386,129 +2385,9 @@ Gfx * sub_GAME_7F0A6EE8(Gfx *DL) gDPSetAlphaCompare(DL++, G_AC_NONE); gDPSetRenderMode(DL++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetColorDither(DL++, G_CD_MAGICSQ); + + return DL; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0A6EE8 -/* 0DBA18 7F0A6EE8 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 0DBA1C 7F0A6EEC AFBF0014 */ sw $ra, 0x14($sp) -/* 0DBA20 7F0A6EF0 00801025 */ move $v0, $a0 -/* 0DBA24 7F0A6EF4 24830008 */ addiu $v1, $a0, 8 -/* 0DBA28 7F0A6EF8 3C0EB700 */ lui $t6, 0xb700 -/* 0DBA2C 7F0A6EFC 240F2000 */ li $t7, 8192 -/* 0DBA30 7F0A6F00 AC4F0004 */ sw $t7, 4($v0) -/* 0DBA34 7F0A6F04 AC4E0000 */ sw $t6, ($v0) -/* 0DBA38 7F0A6F08 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 -/* 0DBA3C 7F0A6F0C 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 -/* 0DBA40 7F0A6F10 24650008 */ addiu $a1, $v1, 8 -/* 0DBA44 7F0A6F14 AC780000 */ sw $t8, ($v1) -/* 0DBA48 7F0A6F18 AC600004 */ sw $zero, 4($v1) -/* 0DBA4C 7F0A6F1C 3C19BA00 */ lui $t9, (0xBA001701 >> 16) # lui $t9, 0xba00 -/* 0DBA50 7F0A6F20 37391701 */ ori $t9, (0xBA001701 & 0xFFFF) # ori $t9, $t9, 0x1701 -/* 0DBA54 7F0A6F24 24A60008 */ addiu $a2, $a1, 8 -/* 0DBA58 7F0A6F28 3C090080 */ lui $t1, 0x80 -/* 0DBA5C 7F0A6F2C ACA90004 */ sw $t1, 4($a1) -/* 0DBA60 7F0A6F30 ACB90000 */ sw $t9, ($a1) -/* 0DBA64 7F0A6F34 3C0AED00 */ lui $t2, 0xed00 -/* 0DBA68 7F0A6F38 ACCA0000 */ sw $t2, ($a2) -/* 0DBA6C 7F0A6F3C 24C40008 */ addiu $a0, $a2, 8 -/* 0DBA70 7F0A6F40 AFA40058 */ sw $a0, 0x58($sp) -/* 0DBA74 7F0A6F44 0C001107 */ jal viGetX -/* 0DBA78 7F0A6F48 AFA60048 */ sw $a2, 0x48($sp) -/* 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) -/* 0DBA8C 7F0A6F5C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0DBA90 7F0A6F60 468021A0 */ cvt.s.w $f6, $f4 -/* 0DBA94 7F0A6F64 448E8000 */ mtc1 $t6, $f16 -/* 0DBA98 7F0A6F68 44810000 */ mtc1 $at, $f0 -/* 0DBA9C 7F0A6F6C 8FA30058 */ lw $v1, 0x58($sp) -/* 0DBAA0 7F0A6F70 8FAB0048 */ lw $t3, 0x48($sp) -/* 0DBAA4 7F0A6F74 468084A0 */ cvt.s.w $f18, $f16 -/* 0DBAA8 7F0A6F78 46003202 */ mul.s $f8, $f6, $f0 -/* 0DBAAC 7F0A6F7C 24650008 */ addiu $a1, $v1, 8 -/* 0DBAB0 7F0A6F80 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 -/* 0DBAB4 7F0A6F84 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 -/* 0DBAB8 7F0A6F88 24A60008 */ addiu $a2, $a1, 8 -/* 0DBABC 7F0A6F8C 46009102 */ mul.s $f4, $f18, $f0 -/* 0DBAC0 7F0A6F90 3C0FBA00 */ lui $t7, (0xBA001102 >> 16) # lui $t7, 0xba00 -/* 0DBAC4 7F0A6F94 35EF1102 */ ori $t7, (0xBA001102 & 0xFFFF) # ori $t7, $t7, 0x1102 -/* 0DBAC8 7F0A6F98 24C70008 */ addiu $a3, $a2, 8 -/* 0DBACC 7F0A6F9C 24E80008 */ addiu $t0, $a3, 8 -/* 0DBAD0 7F0A6FA0 25020008 */ addiu $v0, $t0, 8 -/* 0DBAD4 7F0A6FA4 4600428D */ trunc.w.s $f10, $f8 -/* 0DBAD8 7F0A6FA8 24440008 */ addiu $a0, $v0, 8 -/* 0DBADC 7F0A6FAC 4600218D */ trunc.w.s $f6, $f4 -/* 0DBAE0 7F0A6FB0 440C5000 */ mfc1 $t4, $f10 -/* 0DBAE4 7F0A6FB4 44183000 */ mfc1 $t8, $f6 -/* 0DBAE8 7F0A6FB8 318D0FFF */ andi $t5, $t4, 0xfff -/* 0DBAEC 7F0A6FBC 3C0CBA00 */ lui $t4, (0xBA001001 >> 16) # lui $t4, 0xba00 -/* 0DBAF0 7F0A6FC0 33190FFF */ andi $t9, $t8, 0xfff -/* 0DBAF4 7F0A6FC4 00194B00 */ sll $t1, $t9, 0xc -/* 0DBAF8 7F0A6FC8 01A95025 */ or $t2, $t5, $t1 -/* 0DBAFC 7F0A6FCC AD6A0004 */ sw $t2, 4($t3) -/* 0DBB00 7F0A6FD0 358C1001 */ ori $t4, (0xBA001001 & 0xFFFF) # ori $t4, $t4, 0x1001 -/* 0DBB04 7F0A6FD4 AC6C0000 */ sw $t4, ($v1) -/* 0DBB08 7F0A6FD8 AC600004 */ sw $zero, 4($v1) -/* 0DBB0C 7F0A6FDC ACA00004 */ sw $zero, 4($a1) -/* 0DBB10 7F0A6FE0 ACAE0000 */ sw $t6, ($a1) -/* 0DBB14 7F0A6FE4 ACC00004 */ sw $zero, 4($a2) -/* 0DBB18 7F0A6FE8 ACCF0000 */ sw $t7, ($a2) -/* 0DBB1C 7F0A6FEC 3C18BA00 */ lui $t8, (0xBA001301 >> 16) # lui $t8, 0xba00 -/* 0DBB20 7F0A6FF0 37181301 */ ori $t8, (0xBA001301 & 0xFFFF) # ori $t8, $t8, 0x1301 -/* 0DBB24 7F0A6FF4 3C190008 */ lui $t9, 8 -/* 0DBB28 7F0A6FF8 ACF90004 */ sw $t9, 4($a3) -/* 0DBB2C 7F0A6FFC ACF80000 */ sw $t8, ($a3) -/* 0DBB30 7F0A7000 3C0DBA00 */ lui $t5, (0xBA000C02 >> 16) # lui $t5, 0xba00 -/* 0DBB34 7F0A7004 35AD0C02 */ ori $t5, (0xBA000C02 & 0xFFFF) # ori $t5, $t5, 0xc02 -/* 0DBB38 7F0A7008 24092000 */ li $t1, 8192 -/* 0DBB3C 7F0A700C AD090004 */ sw $t1, 4($t0) -/* 0DBB40 7F0A7010 AD0D0000 */ sw $t5, ($t0) -/* 0DBB44 7F0A7014 3C0ABA00 */ lui $t2, (0xBA000903 >> 16) # lui $t2, 0xba00 -/* 0DBB48 7F0A7018 354A0903 */ ori $t2, (0xBA000903 & 0xFFFF) # ori $t2, $t2, 0x903 -/* 0DBB4C 7F0A701C 240B0C00 */ li $t3, 3072 -/* 0DBB50 7F0A7020 AC4B0004 */ sw $t3, 4($v0) -/* 0DBB54 7F0A7024 AC4A0000 */ sw $t2, ($v0) -/* 0DBB58 7F0A7028 3C0EFFFE */ lui $t6, (0xFFFE793C >> 16) # lui $t6, 0xfffe -/* 0DBB5C 7F0A702C 3C0CFCFF */ lui $t4, (0xFCFFFFFF >> 16) # lui $t4, 0xfcff -/* 0DBB60 7F0A7030 358CFFFF */ ori $t4, (0xFCFFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff -/* 0DBB64 7F0A7034 35CE793C */ ori $t6, (0xFFFE793C & 0xFFFF) # ori $t6, $t6, 0x793c -/* 0DBB68 7F0A7038 24850008 */ addiu $a1, $a0, 8 -/* 0DBB6C 7F0A703C AC8E0004 */ sw $t6, 4($a0) -/* 0DBB70 7F0A7040 AC8C0000 */ sw $t4, ($a0) -/* 0DBB74 7F0A7044 3C0FBA00 */ lui $t7, (0xBA000801 >> 16) # lui $t7, 0xba00 -/* 0DBB78 7F0A7048 35EF0801 */ ori $t7, (0xBA000801 & 0xFFFF) # ori $t7, $t7, 0x801 -/* 0DBB7C 7F0A704C 24A60008 */ addiu $a2, $a1, 8 -/* 0DBB80 7F0A7050 ACAF0000 */ sw $t7, ($a1) -/* 0DBB84 7F0A7054 ACA00004 */ sw $zero, 4($a1) -/* 0DBB88 7F0A7058 3C18B900 */ lui $t8, (0xB9000002 >> 16) # lui $t8, 0xb900 -/* 0DBB8C 7F0A705C 37180002 */ ori $t8, (0xB9000002 & 0xFFFF) # ori $t8, $t8, 2 -/* 0DBB90 7F0A7060 24C70008 */ addiu $a3, $a2, 8 -/* 0DBB94 7F0A7064 ACD80000 */ sw $t8, ($a2) -/* 0DBB98 7F0A7068 ACC00004 */ sw $zero, 4($a2) -/* 0DBB9C 7F0A706C 3C0D0F0A */ lui $t5, (0x0F0A4000 >> 16) # lui $t5, 0xf0a -/* 0DBBA0 7F0A7070 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 0DBBA4 7F0A7074 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 0DBBA8 7F0A7078 35AD4000 */ ori $t5, (0x0F0A4000 & 0xFFFF) # ori $t5, $t5, 0x4000 -/* 0DBBAC 7F0A707C ACED0004 */ sw $t5, 4($a3) -/* 0DBBB0 7F0A7080 ACF90000 */ sw $t9, ($a3) -/* 0DBBB4 7F0A7084 24E30008 */ addiu $v1, $a3, 8 -/* 0DBBB8 7F0A7088 3C09BA00 */ lui $t1, (0xBA000602 >> 16) # lui $t1, 0xba00 -/* 0DBBBC 7F0A708C 35290602 */ ori $t1, (0xBA000602 & 0xFFFF) # ori $t1, $t1, 0x602 -/* 0DBBC0 7F0A7090 AC690000 */ sw $t1, ($v1) -/* 0DBBC4 7F0A7094 AC600004 */ sw $zero, 4($v1) -/* 0DBBC8 7F0A7098 8FBF0014 */ lw $ra, 0x14($sp) -/* 0DBBCC 7F0A709C 24620008 */ addiu $v0, $v1, 8 -/* 0DBBD0 7F0A70A0 27BD0058 */ addiu $sp, $sp, 0x58 -/* 0DBBD4 7F0A70A4 03E00008 */ jr $ra -/* 0DBBD8 7F0A70A8 00000000 */ nop -) -#endif - - - #ifdef NONMATCHING @@ -2774,7 +2653,7 @@ Gfx *draw_background_health_and_armor_transitioning(Gfx *gdl, Mtx *param_2) } -Gfx *sub_GAME_7F0A77C8(Gfx *gdl) +Gfx *draw_abort_cancel_confirm(Gfx *gdl) { s32 sp7C; s32 sp78; @@ -2802,11 +2681,7 @@ Gfx *sub_GAME_7F0A77C8(Gfx *gdl) sp74 = (j_text_trigger ? 0xA : 0) + 0x88; - #if defined(LEFTOVERDEBUG) - sp70 = sp6C = sp68 = (j_text_trigger ? 3 : 0) + 0x4C; - #else - sp70 = sp6C = sp68 = (j_text_trigger ? 3 : 0) + 0x4E; - #endif + sp70 = sp6C = sp68 = (j_text_trigger ? 3 : 0) + (PAL ? 0x4E : 0x4C); if (watch_item_is_actively_selected != 0) { @@ -2908,7 +2783,7 @@ Gfx *draw_text_mission_status(Gfx *gdl) sp60 = sp60 - sp5C; sub_GAME_7F0AE98C(&sp5C, &sp58, txtptr_2, ptr_second_font, ptr_first_font, 0); 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); + gdl = draw_abort_cancel_confirm(gdl); return gdl; } diff --git a/src/init.c b/src/init.c index e37606eb..ced77339 100644 --- a/src/init.c +++ b/src/init.c @@ -10,6 +10,8 @@ #include "init.h" #include "thread_config.h" +#include "usb.h" + /** * EU .data, offset from start of data_seg : 0x22B0 */ @@ -342,14 +344,28 @@ void mainproc(void *args) idleCreateThread(); viDebugRemoved(); piCreateManager(); +#ifdef ENABLE_USB + // make debug print output available as soon as possible. + // This uses blocking calls, and the PI manager, so can't be called + // before here. + usb_initialize(); +#else rmonCreateThread(); +#endif if (tokenReadIo() != 0) { osStopThread(0); } - osSetThreadPri(0, 0xa); + osSetThreadPri(NULL, 0xa); + // Timers are initialized via: + // schedulerInitThread -> osCreateScheduler -> osCreateViManager -> __osTimerServicesInit schedulerInitThread(); +#ifdef ENABLE_USB + // Unlike the pure source, this version injects a dependency on timer, so can't init + // before here. + rmonCreateThread(); +#endif bossEntry(); } diff --git a/src/libultra/io/pirawwrite.c b/src/libultra/io/pirawwrite.c new file mode 100644 index 00000000..6279b171 --- /dev/null +++ b/src/libultra/io/pirawwrite.c @@ -0,0 +1,10 @@ +#include +#include "piint.h" + +s32 osPiRawWriteIo(u32 devAddr, u32 data) +{ + register u32 stat; + WAIT_ON_IOBUSY(stat); + IO_WRITE((u32)osRomBase | devAddr, data); + return 0; +} diff --git a/src/libultra/io/piwrite.c b/src/libultra/io/piwrite.c new file mode 100644 index 00000000..6ed56dfb --- /dev/null +++ b/src/libultra/io/piwrite.c @@ -0,0 +1,12 @@ +#include +#include +#include "piint.h" + +s32 osPiWriteIo(u32 devAddr, u32 data) +{ + register s32 ret; + __osPiGetAccess(); + ret = osPiRawWriteIo(devAddr, data); + __osPiRelAccess(); + return ret; +} diff --git a/src/libultrare/Makefile.libultrare b/src/libultrare/Makefile.libultrare index 39b1c78b..cdb59703 100644 --- a/src/libultrare/Makefile.libultrare +++ b/src/libultrare/Makefile.libultrare @@ -135,7 +135,9 @@ LIBULTRA_IO_C_FILES := \ pigetstat \ pirawdma \ pirawread \ + pirawwrite \ piread \ + piwrite \ siacs \ si \ sirawdma \ diff --git a/src/memp.c b/src/memp.c index 5bcaed53..2f02968a 100644 --- a/src/memp.c +++ b/src/memp.c @@ -13,7 +13,7 @@ */ //bss -struct s_mempBANK memory_bank_ptrs[7]; +MemoryPool g_mempPools[7]; //data void *ptr_memp_c_debug_debug_notice_list = 0; @@ -40,24 +40,24 @@ void mempCheckMemflagTokens(s32 bstart, s32 bsize) { s_mempMVALS sp20; - memory_bank_ptrs[0].bankstart = bstart; - memory_bank_ptrs[0].bankend = bstart + bsize; + g_mempPools[0].start = bstart; + g_mempPools[0].end = bstart + bsize; sp20 = sdefaultmvals; if (tokenFind(1, "-mf")) { - sp20.var2 = strtol(tokenFind(1, "-mf"), NULL, 0); + sp20.mf = strtol(tokenFind(1, "-mf"), NULL, 0); } if (tokenFind(1, "-ml")) { - sp20.var4 = strtol(tokenFind(1, "-ml"), NULL, 0); + sp20.ml = strtol(tokenFind(1, "-ml"), NULL, 0); } if (tokenFind(1, "-me")) { - sp20.var6 = strtol(tokenFind(1, "-me"), NULL, 0); + sp20.me = 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; + if (sp20.me == 0) { + sp20.mf = 0; + sp20.me = ((j_text_trigger ? 308 : 296) * 1024); + sp20.ml = bsize - sp20.me; } mempSetBankStarts((s32*)&sp20); @@ -82,7 +82,7 @@ void mempSetBankStarts(s32 banks[8]) } var3 = bankstarts[6]; - var1 = (memory_bank_ptrs[0].bankend - memory_bank_ptrs[0].bankstart); + var1 = (g_mempPools[0].end - g_mempPools[0].start); for (i = 0; i < 7; i++) { bankstarts[i] = ((s64)bankstarts[i] * var1) / var3; } @@ -91,11 +91,11 @@ void mempSetBankStarts(s32 banks[8]) bankstarts[i] = ALIGN16_b(bankstarts[i]); } - var2 = memory_bank_ptrs[0].bankstart; + var2 = g_mempPools[0].start; 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; + g_mempPools[i + 1].start = bankstarts[i] + var2; + g_mempPools[i + 1].pos = 0; + g_mempPools[i + 1].end = bankstarts[i + 1] + var2; } } @@ -105,40 +105,55 @@ void mempSetBankStarts(s32 banks[8]) * accepts: A0=size, A1=bank */ #ifdef NONMATCHING -u32 mempAllocBytesInBank(u32 bytes, u8 bank) +// https://decomp.me/scratch/cdPCZ +// Non-matching - maybe asm? +void *mempAllocBytesInBank(s32 bytes, u8 poolnum) { - s32 temp_v0_2; - u32 next; - while (TRUE) { - if (memory_bank_ptrs[bank].nextentry == 0) { - while (TRUE) {} - needmemallocation = 1; + for (;;) + { + u8 *allocation = g_mempPools[poolnum].pos; + + if (g_mempPools[poolnum].pos == 0) // uninitialized + { + for (;;); } - if (memory_bank_ptrs[bank].bankend < memory_bank_ptrs[bank].nextentry) { - nulled_mempLoopAllMemBanks(); - while (TRUE) {} - } - if ((memory_bank_ptrs[bank].nextentry + bytes) >= memory_bank_ptrs[bank].bankend) { - break; - } - 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) {} + else + { + if (g_mempPools[poolnum].pos > g_mempPools[poolnum].end) // overflow + { + nulled_mempLoopAllMemBanks(); + for (;;); + } + + if (g_mempPools[poolnum].pos + bytes > g_mempPools[poolnum].end) // Overflow, try pool 6 + { + poolnum = MEMPOOL_PERMANENT; + + if (g_mempPools[MEMPOOL_PERMANENT].pos + bytes <= g_mempPools[MEMPOOL_PERMANENT].end) // good + { + u32 v0 = needmemallocation; + if (1); + needmemallocation = TRUE; + + if (v0 == 0); + } + else // overflow + { + nulled_mempLoopAllMemBanks(); + for (;;); + } + } + else // good, allocate the mem and exit + { + g_mempPools[poolnum].pos += bytes; + g_mempPools[poolnum].prevpos = allocation; + + if (1); + + return allocation; + } } } - - next = memory_bank_ptrs[bank].nextentry; - memory_bank_ptrs[bank].nextentry += bytes; - memory_bank_ptrs[bank].data2 = next; - - return next; } #else GLOBAL_ASM( @@ -147,10 +162,10 @@ glabel mempAllocBytesInBank /* 00A320 70009720 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 00A324 70009724 AFA5001C */ sw $a1, 0x1c($sp) /* 00A328 70009728 30A700FF */ andi $a3, $a1, 0xff -/* 00A32C 7000972C 3C058006 */ lui $a1, %hi(memory_bank_ptrs) +/* 00A32C 7000972C 3C058006 */ lui $a1, %hi(g_mempPools) /* 00A330 70009730 3C0A8002 */ lui $t2, %hi(needmemallocation) /* 00A334 70009734 254A4404 */ addiu $t2, %lo(needmemallocation) # addiu $t2, $t2, 0x4404 -/* 00A338 70009738 24A53BB0 */ addiu $a1, %lo(memory_bank_ptrs) # addiu $a1, $a1, 0x3bb0 +/* 00A338 70009738 24A53BB0 */ addiu $a1, %lo(g_mempPools) # addiu $a1, $a1, 0x3bb0 /* 00A33C 7000973C AFBF0014 */ sw $ra, 0x14($sp) /* 00A340 70009740 00803025 */ move $a2, $a0 /* 00A344 70009744 0007C100 */ sll $t8, $a3, 4 @@ -219,37 +234,37 @@ s32 mempAddEntryOfSizeToBank(u8* ptrdata, u32 newsize, u8 bank) s32 oldsize; s32 diffsize; - if (needmemallocation && (ptrdata == (u8*)memory_bank_ptrs[6].data2)) { + if (needmemallocation && (ptrdata == (u8*)g_mempPools[6].prevpos)) { bank = 6; } - if (memory_bank_ptrs[bank].nextentry == 0) { + if (g_mempPools[bank].pos == 0) { while(TRUE) {} } - if (ptrdata != (u8*)memory_bank_ptrs[bank].data2) { + if (ptrdata != (u8*)g_mempPools[bank].prevpos) { return 2; } - oldsize = (memory_bank_ptrs[bank].nextentry - memory_bank_ptrs[bank].data2); + oldsize = (g_mempPools[bank].pos - g_mempPools[bank].prevpos); diffsize = (newsize - oldsize); if (diffsize <= 0) { - memory_bank_ptrs[bank].nextentry += diffsize; + g_mempPools[bank].pos += diffsize; return 1; } - if (memory_bank_ptrs[bank].nextentry > memory_bank_ptrs[bank].bankend) { + if (g_mempPools[bank].pos > g_mempPools[bank].end) { nulled_mempLoopAllMemBanks(); while(TRUE) {} } - if (memory_bank_ptrs[bank].nextentry + diffsize > memory_bank_ptrs[bank].bankend) { + if (g_mempPools[bank].pos + diffsize > g_mempPools[bank].end) { nulled_mempLoopAllMemBanks(); while(TRUE) {} } - memory_bank_ptrs[bank].nextentry += diffsize; + g_mempPools[bank].pos += diffsize; return 1; } @@ -267,14 +282,14 @@ glabel mempAddEntryOfSizeToBank /* 00A420 70009820 AFA5001C */ sw $a1, 0x1c($sp) /* 00A424 70009824 11E00006 */ beqz $t7, .L70009840 /* 00A428 70009828 00803825 */ move $a3, $a0 -/* 00A42C 7000982C 3C188006 */ lui $t8, %hi(memory_bank_ptrs+0x6C) -/* 00A430 70009830 8F183C1C */ lw $t8, %lo(memory_bank_ptrs+0x6C)($t8) +/* 00A42C 7000982C 3C188006 */ lui $t8, %hi(g_mempPools+0x6C) +/* 00A430 70009830 8F183C1C */ lw $t8, %lo(g_mempPools+0x6C)($t8) /* 00A434 70009834 14980002 */ bne $a0, $t8, .L70009840 /* 00A438 70009838 00000000 */ nop /* 00A43C 7000983C 24060006 */ li $a2, 6 .L70009840: -/* 00A440 70009840 3C0A8006 */ lui $t2, %hi(memory_bank_ptrs) -/* 00A444 70009844 254A3BB0 */ addiu $t2, %lo(memory_bank_ptrs) # addiu $t2, $t2, 0x3bb0 +/* 00A440 70009840 3C0A8006 */ lui $t2, %hi(g_mempPools) +/* 00A444 70009844 254A3BB0 */ addiu $t2, %lo(g_mempPools) # addiu $t2, $t2, 0x3bb0 /* 00A448 70009848 0006C900 */ sll $t9, $a2, 4 /* 00A44C 7000984C 032A2821 */ addu $a1, $t9, $t2 /* 00A450 70009850 8CA40004 */ lw $a0, 4($a1) @@ -331,19 +346,22 @@ glabel mempAddEntryOfSizeToBank void nulled_mempLoopAllMemBanks(void) { u8 bank; - for (bank = 1; bank < 7; bank++) {} + for (bank = MEMPOOL_MF; bank < MEMPOOL_7; bank++) + { + } } s32 mempGetBankSizeLeft(u8 bank) { if (needmemallocation) { - bank = 6; + bank = MEMPOOL_PERMANENT; } - if ((bank == 4) && (memory_bank_ptrs[4].bankstart == memory_bank_ptrs[4].bankend)) { - bank = 6; + if ((bank == MEMPOOL_STAGE) && (g_mempPools[MEMPOOL_STAGE].start == g_mempPools[MEMPOOL_STAGE].end)) + { + bank = MEMPOOL_PERMANENT; } - return memory_bank_ptrs[bank].bankend - memory_bank_ptrs[bank].nextentry; + return g_mempPools[bank].end - g_mempPools[bank].pos; } // Last three bits contains the bank, the rest contains the size. @@ -352,13 +370,13 @@ u32 mempAllocPackedBytesInBank(u32 sizeandbank) { } void mempResetBank(u8 bank) { - memory_bank_ptrs[bank].data2 = 0; - memory_bank_ptrs[bank].nextentry = memory_bank_ptrs[bank].bankstart; + g_mempPools[bank].prevpos = 0; + g_mempPools[bank].pos = g_mempPools[bank].start; } void mempNullNextEntryInBank(u8 bank) { nulled_mempLoopAllMemBanks(); - if (memory_bank_ptrs[bank].nextentry != 0) { - memory_bank_ptrs[bank].nextentry = 0; + if (g_mempPools[bank].pos != 0) { + g_mempPools[bank].pos = 0; } } diff --git a/src/memp.h b/src/memp.h index 295451e6..caced78e 100644 --- a/src/memp.h +++ b/src/memp.h @@ -8,24 +8,36 @@ */ #define ALIGN16_b(val) (((val) | 0xf) ^ 0xf) -typedef struct s_mempBANK { - u32 bankstart; - u32 nextentry; - u32 bankend; - u32 data2; -} s_mempBANK; +typedef struct MemoryPool { + s32 start; + s32 pos; + s32 end; + s32 prevpos; +} MemoryPool; typedef struct s_mempMVALS { u32 var1; - u32 var2; + u32 mf; u32 var3; - u32 var4; - u32 var5; - u32 var6; - u32 var7; + u32 ml; + u32 stage; + u32 me; + u32 permanent; u32 var8; } s_mempMVALS; +enum MEMPOOL +{ + MEMPOOL_0, + MEMPOOL_MF, + MEMPOOL_2, + MEMPOOL_ML, + MEMPOOL_STAGE, + MEMPOOL_ME, + MEMPOOL_PERMANENT, + MEMPOOL_7 +}; + void mempInitDebugNoticeList(void); void mempCheckMemflagTokens(int bstart,int bsize); void mempSetBankStarts(s32 banks[8]); diff --git a/src/rmon.c b/src/rmon.c index 42f82483..8f8f6a44 100644 --- a/src/rmon.c +++ b/src/rmon.c @@ -3,12 +3,60 @@ */ #include #include +#include #include "libultra/libc/xstdio.h" -#include "deb_print.h" +#include "crash.h" #include "rmon.h" /**/ +#ifdef ENABLE_USB +#include +#include "libultra/os/osint.h" +#include "usb.h" +#define RMON_MESSAGE_QUEUE_SIZE 10 +#define RMON_MESSAGE_PRINTF_BUFFER_LENGTH 56 + +enum RMON_MESG_TYPE { + RMON_MESG_TEST = 1, + RMON_MESG_PRINTF +}; + +struct RmonMesgBase { + int type; +}; + +struct RmonMesgPrintf { + int type; + int length; + char buffer[RMON_MESSAGE_PRINTF_BUFFER_LENGTH]; +}; + +int rmonCurrentMesgStack; +struct RmonMesgBase rmonMesgStack[2]; +int rmonCurrentMesgPrintfStack; +struct RmonMesgPrintf rmonMesgPrintfStack[2]; +OSMesg rmonMesg[RMON_MESSAGE_QUEUE_SIZE]; +OSMesgQueue rmonMessageQueue; + +OSTimer rmonSleeptimer; +OSMesgQueue rmonSleepMq; +OSMesg rmonSleepMesg; + +void rmonHandleTestMsg(struct RmonMesgBase *msg); +void rmonHandlePrintfMsg(struct RmonMesgPrintf *msg); + +// sprintf internal function to unwrap paramaters +extern char *proutSprintf(char *dst, const char *src, size_t count); + +void rmonInit(void) { + rmonCurrentMesgStack = 0; + rmonCurrentMesgPrintfStack = 0; + + osCreateMesgQueue(&rmonMessageQueue, &rmonMesg, RMON_MESSAGE_QUEUE_SIZE); + osCreateMesgQueue(&rmonSleepMq, &rmonSleepMesg, 1); +} +#endif /************************************************************************ Function: rmonMain Args: none @@ -17,65 +65,46 @@ Purpose: This is the main loop of the rmon debugger. It is mostly a protocol parser/dispatcher. ************************************************************************/ void rmonMain(void) { - #ifdef DEBUG - register int newChars; +#ifdef ENABLE_USB + rmonInit(); - somethingToDo = 0; - cmdinptr = cmdoutptr = 0; - - __rmonInit(); - __rmonActive = 1; - - /* - * Loop forever acquiring commands - */ - - for (state = 0, newChars = 0, inPointer = (char *)inbuffer;;) + while (1) { OSMesg work; + struct RmonMesgBase *msg; - osRecvMesg(&__rmonMQ, &work, OS_MESG_BLOCK); - somethingToDo |= (u32)work; - - if (somethingToDo & MSG_BREAKPOINT) + while (0 == osRecvMesg(&rmonMessageQueue, &work, OS_MESG_NOBLOCK)) { - somethingToDo &= ~MSG_BREAKPOINT; - __rmonHitBreak(); + msg = work; + + switch (msg->type) + { + case RMON_MESG_TEST: + rmonHandleTestMsg((struct RmonMesgBase *)msg); + break; + + case RMON_MESG_PRINTF: + rmonHandlePrintfMsg((struct RmonMesgPrintf *)msg); + break; + + default: + break; + } } - if (somethingToDo & MSG_SPBREAKPOINT) - { - somethingToDo &= ~MSG_SPBREAKPOINT; - __rmonHitSpBreak(); - } - - if (somethingToDo & MSG_CPUFAULT) - { - somethingToDo &= ~MSG_CPUFAULT; - __rmonHitCpuFault(); - } - - if (somethingToDo & MSG_THREADCREATE) - { - Debug("rmon: Thread %d created\n", somethingToDo >> 8); - somethingToDo &= ~(MSG_THREADCREATE | 0xffffff00); - } - - if (somethingToDo & MSG_THREADDESTROY) - { - Debug("rmon: Thread %d destroyed\n", somethingToDo >> 8); - somethingToDo &= ~(MSG_THREADDESTROY | 0xffffff00); - } + osSetTimer(&rmonSleeptimer, OS_USEC_TO_CYCLES(1000000), 0, &rmonSleepMq, rmonSleepMesg); + osRecvMesg(&rmonSleepMq, &rmonSleepMesg, OS_MESG_BLOCK); } # endif } /** - * rmonIsDisabled + * rmonGetToken * returns true if this if rmon is disabled */ -s32 rmonIsDisabled(void) { +s32 rmonGetToken(void) { #if defined(DEBUG) + //flesh out sending a token from pc app return FALSE; #else return TRUE; @@ -107,6 +136,10 @@ void osWriteHost(void * buffer, u32 size) { if (buffer); if (size); + #ifdef ENABLE_USB + //flesh out a proper ge parser on pc app + //usb_write(DATATYPE_RAWBINARY , buffer, size); + #endif } @@ -119,6 +152,10 @@ void osReadHost(void * buffer, u32 size) { if (buffer); if (size); + #ifdef ENABLE_USB + //flesh out a proper pc side tool still + //usb_read(buffer, size); + #endif } @@ -161,26 +198,9 @@ void rmon7000CED8(void) { * Removed * rmonPrintf */ -void rmon7000CEE0(void) +void rmonPrintf(void) { } -#if 0 /* rmonPrintf no longer supported !! */ -void rmonPrintf(const char *fmt, ...) -{ - /* print formatted to stdout */ - int ans; - va_list ap; - - if (osGetThreadPri(0) < 128) - __rmonAcquirePrintf(); - va_start(ap, fmt); - ans = _Printf(&proutPrintf, NULL, fmt, ap); - va_end(ap); - rmonFlush(); - if (osGetThreadPri(0) < 128) - __rmonReleasePrintf(); -} -#endif /* * ----------------------------------------------------------------- @@ -189,9 +209,10 @@ void rmonPrintf(const char *fmt, ...) /** - * Send text to Remote Debugger, GE redirects to screen (deboutWriteChar) + * Send text to Remote Debugger, GE redirects to screen (crashAppendChar) */ -static void *proutSyncPrintf(void *str, const char *buf, size_t n) +#ifndef ENABLE_USB +void *proutSyncPrintf(void *str, const char *buf, size_t n) { u32 sent = 0; @@ -201,20 +222,100 @@ static void *proutSyncPrintf(void *str, const char *buf, size_t n) # ifdef USERDB sent += __osRdbSend((u8 *)&buf[sent], n - sent, RDB_TYPE_GtoH_PRINT); # endif - deboutWriteChar(buf[sent++]); + crashAppendChar(buf[sent++]); } #endif return ((void *)1); /* return a fake pointer so that it's not NULL */ } +#endif + /** * Print formatted string to Debugger */ void osSyncPrintf(const char *fmt, ...) { + +#ifdef ENABLE_USB + u8 buffer[100]; +#endif int ans; va_list args; va_start(args, fmt); +#ifdef ENABLE_USB + ans = _Printf(&proutSprintf, buffer, fmt, args); +#else ans = _Printf(&proutSyncPrintf, NULL, fmt, args); +#endif va_end(args); +#ifdef ENABLE_USB + if (ans >= 0) { + if (ans > 99) + { + ans = 99; + } + buffer[ans] = 0; + } + usb_write_text(buffer, ans); +#endif + } + +#ifdef ENABLE_USB +/** + * Print formatted string to Debugger. + * This is a non blocking call. The printf message will be copied + * to the rmon printf queue. It is possible for the queue to overflow (wrap around). + * The printf message is copied to a local byte array, truncating the message if necessary. + */ +void osAsyncPrintf(const char *format, ...) +{ + s32 written; + va_list args; + + struct RmonMesgPrintf *dest = &rmonMesgPrintfStack[rmonCurrentMesgPrintfStack]; + rmonCurrentMesgPrintfStack++; + if (rmonCurrentMesgPrintfStack > 1) { + rmonCurrentMesgPrintfStack = 0; + } + dest->type = RMON_MESG_PRINTF; + + va_start(args, format); + written = _Printf(proutSprintf, dest->buffer, format, args); + va_end(args); + if (written >= 0) { + if (written > RMON_MESSAGE_PRINTF_BUFFER_LENGTH - 1) + { + written = RMON_MESSAGE_PRINTF_BUFFER_LENGTH - 1; + } + dest->buffer[written] = 0; + } + + dest->length = written; + + osSendMesg(&rmonMessageQueue, (OSMesg)dest, OS_MESG_NOBLOCK); +} + +void osQueueTest(void) +{ + struct RmonMesgBase *dest = &rmonMesgStack[rmonCurrentMesgStack]; + rmonCurrentMesgStack++; + if (rmonCurrentMesgStack > 1) { + rmonCurrentMesgStack = 0; + } + dest->type = RMON_MESG_TEST; + osSendMesg(&rmonMessageQueue, (OSMesg)dest, OS_MESG_NOBLOCK); +} + +void rmonHandleTestMsg(struct RmonMesgBase *msg) +{ + usb_write_text("????\n", 6); +} + +void rmonHandlePrintfMsg(struct RmonMesgPrintf *msg) +{ + // pending read data will abort write, so clobber any incoming data. + //usb_purge(); + usb_write_text(msg->buffer, msg->length); +} +#endif \ No newline at end of file diff --git a/src/rmon.h b/src/rmon.h index 8f5fec3f..94648564 100644 --- a/src/rmon.h +++ b/src/rmon.h @@ -7,7 +7,7 @@ #define _RMON_H_ void rmonMain(void); -s32 rmonIsDisabled(void); +s32 rmonGetToken(void); s32 rmonStatus(void); void osWriteHost(void * arg0, u32 arg1); void osReadHost(void * arg0, u32 arg1); diff --git a/src/sched.c b/src/sched.c index f194d2a2..2b280675 100644 --- a/src/sched.c +++ b/src/sched.c @@ -3,7 +3,7 @@ #include "init.h" #include "sched.h" #include -#include "deb_print.h" +#include "crash.h" #include "fr.h" #include "joy.h" #include "music.h" @@ -121,7 +121,7 @@ void CheckDisplayErrorBuffer(u32 *buffer) { if ((stderr_permitted && stderr_active) || stderr_enabled ) { - deboutDrawToBuffer(buffer); + crashRenderFrame(buffer); currentcount = osGetCount(); } } @@ -138,8 +138,8 @@ void CheckDisplayErrorBufferEvery16Frames(u32 framecount) { if (userCompareValue < (osGetCount() - currentcount)) { - deboutDrawToBuffer((u16*)cfb_16[0]); - deboutDrawToBuffer((u16*)cfb_16[1]); + crashRenderFrame((u16*)cfb_16[0]); + crashRenderFrame((u16*)cfb_16[1]); } } } diff --git a/src/speed_graph.c b/src/speed_graph.c index 6ef8345b..b10fdbc6 100644 --- a/src/speed_graph.c +++ b/src/speed_graph.c @@ -141,31 +141,31 @@ void speedGraphVideoRelated_2(void) { void profileSetMarker(s32 arg0) { s32 index; - s32 var2; + s32 mf; OSIntMask mask; s32 index2; unknown_s *pp; index = arg0 & 0xFFFF; mask = osSetIntMask(OS_IM_NONE); - var2 = arg0 >> 16; + mf = arg0 >> 16; index2 = dword_CODE_bss_800607D0[index]; - if (var2 == 3) + if (mf == 3) { // set highest bit - var2 = dword_CODE_bss_8005F3F0[index] | 0x8000; + mf = dword_CODE_bss_8005F3F0[index] | 0x8000; } - else if (var2 == 6) + else if (mf == 6) { // clear highest bit - var2 = dword_CODE_bss_8005F3F0[index] & 0x7FFF; + mf = dword_CODE_bss_8005F3F0[index] & 0x7FFF; } pp = &dword_CODE_bss_800604B0[index][index2]; - pp->unk0 = var2; + pp->unk0 = mf; pp->osCount = osGetCount(); - dword_CODE_bss_8005F3F0[index] = var2; + dword_CODE_bss_8005F3F0[index] = mf; index2++; diff --git a/src/thread_config.h b/src/thread_config.h index 139a4e63..34df3cad 100644 --- a/src/thread_config.h +++ b/src/thread_config.h @@ -17,6 +17,10 @@ #define AUDI_THREAD_PRIORITY (OSPri)20 #define SCHED_THREAD_PRIORITY (OSPri)30 #define TLB_THREAD_PRIORITY (OSPri)40 +#ifdef ENABLE_USB +#define RMON_THREAD_PRIORITY (OSPri)120 +#else #define RMON_THREAD_PRIORITY (OSPri)250 +#endif #endif diff --git a/src/token.c b/src/token.c index 77d4e285..17dded58 100644 --- a/src/token.c +++ b/src/token.c @@ -52,7 +52,7 @@ s32 tokenReadIo(void) u32 address; s32 debug = FALSE; address = 0xFFB000; - if (rmonIsDisabled()) { + if (rmonGetToken()) { g_TokenString[0] = 0; } else { for (ptr = g_TokenString, end = (g_TokenString + G_TOKEN_STRING_LEN); (ptr != end); ptr++) { diff --git a/src/usb.c b/src/usb.c new file mode 100644 index 00000000..6880d791 --- /dev/null +++ b/src/usb.c @@ -0,0 +1,1610 @@ +/*************************************************************** + usb.c + +Allows USB communication between an N64 flashcart and the PC +using UNFLoader. +https://github.com/buu342/N64-UNFLoader +***************************************************************/ + +#include "usb.h" +#include +#include +#include +#include + + +s32 everdrive_status; + +/********************************* + Data macros +*********************************/ + +// Input/Output buffer size. Always keep it at 512 +#define BUFFER_SIZE 512 + +// USB Memory location +#define DEBUG_ADDRESS 0x04000000-DEBUG_ADDRESS_SIZE // Put the debug area at the 63MB area in ROM space + +// Data header related +#define USBHEADER_CREATE(type, left) (((type<<24) | (left & 0x00FFFFFF))) + + +/********************************* + Libultra macros for libdragon +*********************************/ + +#define ALIGN(s, align) (((u32)(s) + ((align)-1)) & ~((align)-1)) + + +/********************************* + Parallel Interface macros +*********************************/ + +#define N64_PI_ADDRESS 0xA4600000 + +#define N64_PI_RAMADDRESS 0x00 +#define N64_PI_PIADDRESS 0x04 +#define N64_PI_READLENGTH 0x08 +#define N64_PI_WRITELENGTH 0x0C +#define N64_PI_STATUS 0x10 + + +/********************************* + 64Drive macros +*********************************/ + +// How many cycles for the 64Drive to wait for data. +// Lowering this might improve performance slightly faster at the expense of USB reading accuracy +#define D64_POLLTIME 2000 + +// Cartridge Interface definitions. Obtained from 64Drive's Spec Sheet +#define D64_BASE_ADDRESS 0xB0000000 +#define D64_CIREG_ADDRESS 0x08000000 +#define D64_CIBASE_ADDRESS 0xB8000000 + +#define D64_REGISTER_STATUS 0x00000200 +#define D64_REGISTER_COMMAND 0x00000208 +#define D64_REGISTER_LBA 0x00000210 +#define D64_REGISTER_LENGTH 0x00000218 +#define D64_REGISTER_RESULT 0x00000220 + +#define D64_REGISTER_MAGIC 0x000002EC +#define D64_REGISTER_VARIANT 0x000002F0 +#define D64_REGISTER_BUTTON 0x000002F8 +#define D64_REGISTER_REVISION 0x000002FC + +#define D64_REGISTER_USBCOMSTAT 0x00000400 +#define D64_REGISTER_USBP0R0 0x00000404 +#define D64_REGISTER_USBP1R1 0x00000408 + +#define D64_ENABLE_ROMWR 0xF0 +#define D64_DISABLE_ROMWR 0xF1 +#define D64_COMMAND_WRITE 0x08 + +// Cartridge Interface return values +#define D64_MAGIC 0x55444556 + +#define D64_USB_IDLE 0x00 +#define D64_USB_IDLEUNARMED 0x00 +#define D64_USB_ARMED 0x01 +#define D64_USB_DATA 0x02 +#define D64_USB_ARM 0x0A +#define D64_USB_BUSY 0x0F +#define D64_USB_DISARM 0x0F +#define D64_USB_ARMING 0x0F + +#define D64_CI_IDLE 0x00 +#define D64_CI_BUSY 0x10 +#define D64_CI_WRITE 0x20 + + +/********************************* + EverDrive macros +*********************************/ + +#define ED_BASE 0x10000000 +#define ED_BASE_ADDRESS 0x1F800000 +#define ED_GET_REGADD(reg) (0xA0000000 | ED_BASE_ADDRESS | (reg)) + +#define ED_REG_USBCFG 0x0004 +#define ED_REG_VERSION 0x0014 +#define ED_REG_USBDAT 0x0400 +#define ED_REG_SYSCFG 0x8000 +#define ED_REG_KEY 0x8004 + +#define ED_USBMODE_RDNOP 0xC400 +#define ED_USBMODE_RD 0xC600 +#define ED_USBMODE_WRNOP 0xC000 +#define ED_USBMODE_WR 0xC200 + +#define ED_USBSTAT_ACT 0x0200 +#define ED_USBSTAT_RXF 0x0400 +#define ED_USBSTAT_TXE 0x0800 +#define ED_USBSTAT_POWER 0x1000 +#define ED_USBSTAT_BUSY 0x2000 + +#define ED_REGKEY 0xAA55 + +#define ED3_VERSION 0xED640008 +#define ED7_VERSION 0xED640013 + +/* +#define CART_ID_V2 0xED640007 +#define CART_ID_V3 0xED640008 +#define CART_ID_X7 0xED640013 +#define CART_ID_X5 0xED640014 +*/ + + +/********************************* + SummerCart64 macros +*********************************/ + +#define SC64_SDRAM_BASE 0x10000000 + +#define SC64_BANK_ROM 1 + +#define SC64_REGS_BASE 0x1E000000 +#define SC64_REG_SCR (SC64_REGS_BASE + 0x00) +#define SC64_REG_VERSION (SC64_REGS_BASE + 0x08) +#define SC64_REG_USB_SCR (SC64_REGS_BASE + 0x10) +#define SC64_REG_USB_DMA_ADDR (SC64_REGS_BASE + 0x14) +#define SC64_REG_USB_DMA_LEN (SC64_REGS_BASE + 0x18) + +#define SC64_MEM_BASE (SC64_REGS_BASE + 0x1000) +#define SC64_MEM_USB_FIFO_BASE (SC64_MEM_BASE + 0x0000) +#define SC64_MEM_USB_FIFO_LEN (4 * 1024) + +#define SC64_SCR_SDRAM_WRITE_EN (1 << 0) + +#define SC64_VERSION_A 0x53363461 + +#define SC64_USB_STATUS_BUSY (1 << 0) +#define SC64_USB_STATUS_READY (1 << 1) +#define SC64_USB_CONTROL_START (1 << 0) +#define SC64_USB_CONTROL_FIFO_FLUSH (1 << 2) + +#define SC64_USB_BANK_ADDR(b, a) ((((b) & 0xF) << 28) | ((a) & 0x3FFFFFF)) +#define SC64_USB_LENGTH(l) (ALIGN((l), 4) / 4) +#define SC64_USB_DMA_MAX_LEN (2 * 1024 * 1024) +#define SC64_USB_FIFO_ITEMS(s) (((s) >> 3) & 0x7FF) + +/********************************* + Function Prototypes +*********************************/ + +static void usb_findcart(); +static void usb_64drive_write(int datatype, const void* data, int size); +static u32 usb_64drive_poll(); +static void usb_64drive_read(); +void usb_everdrive_readreg(u32 reg, u32* result); +static void usb_everdrive_write(int datatype, const void* data, int size); +static u32 usb_everdrive_poll(); +static void usb_everdrive_read(); +void usb_everdrive_writereg(u32 reg, u32 value); +static void usb_sc64_write(int datatype, const void* data, int size); +static u32 usb_sc64_poll(); +static void usb_sc64_read(); +void usb_everdrive_usbbusy(void); +u8 usb_everdrive_canread(void); +void usb_everdrive_readusb(void* buffer, int size); + +u32 usb_everdrive_read_version; +static void usb_everdrive_wait_pidma(void); + + +/********************************* + Globals +*********************************/ + +// Function pointers +void (*funcPointer_write)(int datatype, const void* data, int size); +u32 (*funcPointer_poll)(); +void (*funcPointer_read)(); + +// USB globals +static u32 usb_cart = CART_NONE; +#ifdef __GNUC__ + static u8 __attribute__((aligned(16))) usb_buffer[BUFFER_SIZE]; +#else + static u8 usb_buffer_alloc[BUFFER_SIZE+18]; + static u8 *usb_buffer; +#endif +int usb_datatype = 0; +int usb_datasize = 0; +int usb_dataleft = 0; +int usb_readblock = -1; + +// Message globals +#if !USE_OSRAW + OSMesg dmaMessageBuf; + OSIoMesg dmaIOMessageBuf; + OSMesgQueue dmaMessageQ; +#endif + +// osPiRaw +#if USE_OSRAW + extern s32 __osPiRawWriteIo(u32, u32); + extern s32 __osPiRawReadIo(u32, u32 *); + extern s32 __osPiRawStartDma(s32, u32, void *, u32); + + #define osPiRawWriteIo(a, b) __osPiRawWriteIo(a, b) + #define osPiRawReadIo(a, b) __osPiRawReadIo(a, b) + #define osPiRawStartDma(a, b, c, d) __osPiRawStartDma(a, b, c, d) +#endif + + +/********************************* + USB functions +*********************************/ + +/*============================== + usb_initialize + Initializes the USB buffers and pointers + @returns 1 if the USB initialization was successful, 0 if not +==============================*/ + +u32 usb_initialize() +{ + #ifndef __GNUC__ + usb_buffer = (u8*)OS_DCACHE_ROUNDUP_ADDR(&usb_buffer_alloc[0]); + #endif + + // Initialize the debug related globals + memset(usb_buffer, 0, BUFFER_SIZE); + + // Create the message queue + #if !USE_OSRAW + osCreateMesgQueue(&dmaMessageQ, &dmaMessageBuf, 1); + #endif + + // Find the flashcart + usb_findcart(); + + // Set the function pointers based on the flashcart + switch (usb_cart) + { + case CART_64DRIVE: + funcPointer_write = usb_64drive_write; + funcPointer_poll = usb_64drive_poll; + funcPointer_read = usb_64drive_read; + break; + case CART_EVERDRIVE: + funcPointer_write = usb_everdrive_write; + funcPointer_poll = usb_everdrive_poll; + funcPointer_read = usb_everdrive_read; + break; + case CART_SC64: + funcPointer_write = usb_sc64_write; + funcPointer_poll = usb_sc64_poll; + funcPointer_read = usb_sc64_read; + break; + default: + return 0; + } + return 1; +} + + +/*============================== + usb_findcart + Checks if the game is running on a 64Drive, EverDrive or a SummerCart64. +==============================*/ + +static void usb_findcart() +{ + // PI requires 8 byte aligned address. + u32 pibuff[5]; + u32 *up; + + up = (u32*)OS_DCACHE_ROUNDUP_ADDR(&pibuff[0]); + + *up = 0x12345678; + + // Read the cartridge and check if we have a 64Drive. + #if USE_OSRAW + osPiRawReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_MAGIC, up); + #else + osPiReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_MAGIC, up); + #endif + if (*up == D64_MAGIC) + { + usb_everdrive_read_version = *up; + usb_cart = CART_64DRIVE; + return; + } + + *up = 0x12345678; + + // Read the cartridge and check if we have a SummerCart64. + #if USE_OSRAW + osPiRawReadIo(SC64_REG_VERSION, &up); + #else + osPiReadIo(SC64_REG_VERSION, up); + #endif + if (*up == SC64_VERSION_A) + { + usb_cart = CART_SC64; + return; + } + + *up = 0x12345678; + + // Since we didn't find a 64Drive or SummerCart64, let's assume we have an EverDrive + // Write the key to unlock the registers, then read the version register + usb_everdrive_writereg(ED_REG_KEY, ED_REGKEY); + usb_everdrive_readreg(ED_REG_VERSION, up); + + usb_everdrive_read_version = *up; + + // Check if we have an EverDrive + if (*up == ED7_VERSION || *up == ED3_VERSION) + { + // Set the USB mode + usb_everdrive_writereg(ED_REG_SYSCFG, 0); + usb_everdrive_writereg(ED_REG_USBCFG, ED_USBMODE_RDNOP); + + // Set the cart to EverDrive + usb_cart = CART_EVERDRIVE; + return; + } +} + + +/*============================== + usb_getcart + Returns which flashcart is currently connected + @return The CART macro that corresponds to the identified flashcart +==============================*/ + +char usb_getcart() +{ + return usb_cart; +} + + +/*============================== + usb_write + Writes data to the USB. + Will not write if there is data to read from USB + @param The DATATYPE that is being sent + @param A buffer with the data to send + @param The size of the data being sent +==============================*/ + +void usb_write(int datatype, const void* data, int size) +{ + // If no debug cart exists, stop + if (usb_cart == CART_NONE) + return; + + // If there's data to read first, stop + if (usb_dataleft != 0) + return; + + // Call the correct write function + funcPointer_write(datatype, data, size); +} + +void usb_write_text(const u8* data, int size) +{ + usb_write(DATATYPE_TEXT, data, size); +} + + +/*============================== + usb_poll + Returns the header of data being received via USB + The first byte contains the data type, the next 3 the number of bytes left to read + @return The data header, or 0 +==============================*/ + +u32 usb_poll() +{ + // If no debug cart exists, stop + if (usb_cart == CART_NONE) + return 0; + + // If we're out of USB data to read, we don't need the header info anymore + if (usb_dataleft <= 0) + { + usb_dataleft = 0; + usb_datatype = 0; + usb_datasize = 0; + usb_readblock = -1; + } + + // If there's still data that needs to be read, return the header with the data left + if (usb_dataleft != 0) + return USBHEADER_CREATE(usb_datatype, usb_dataleft); + + // Call the correct read function + return funcPointer_poll(); +} + + +/*============================== + usb_read + Reads bytes from USB into the provided buffer + @param The buffer to put the read data in + @param The number of bytes to read +==============================*/ + +s32 usb_read(void* buffer, int nbytes) +{ + int read = 0; + int left = nbytes; + int offset = usb_datasize-usb_dataleft; + int copystart = offset%BUFFER_SIZE; + int block = BUFFER_SIZE-copystart; + int blockoffset = (offset/BUFFER_SIZE)*BUFFER_SIZE; + + // If no debug cart exists, stop + if (usb_cart == CART_NONE) + return read; + + // If there's no data to read, stop + if (usb_dataleft == 0) + return read; + + // Read chunks from ROM + while (left > 0) + { + // Ensure we don't read too much data + if (left > usb_dataleft) + left = usb_dataleft; + if (block > left) + block = left; + + // Call the read function if we're reading a new block + if (usb_readblock != blockoffset) + { + usb_readblock = blockoffset; + funcPointer_read(); + } + + // Copy from the USB buffer to the supplied buffer + memcpy((u8*)buffer+read, usb_buffer+copystart, block); + + // Increment/decrement all our counters + read += block; + left -= block; + usb_dataleft -= block; + blockoffset += BUFFER_SIZE; + block = BUFFER_SIZE; + copystart = 0; + } + + return read; +} + + +/*============================== + usb_skip + Skips a USB read by the specified amount of bytes + @param The number of bytes to skip +==============================*/ + +void usb_skip(int nbytes) +{ + // Subtract the amount of bytes to skip to the data pointers + usb_dataleft -= nbytes; + if (usb_dataleft < 0) + usb_dataleft = 0; +} + + +/*============================== + usb_rewind + Rewinds a USB read by the specified amount of bytes + @param The number of bytes to rewind +==============================*/ + +void usb_rewind(int nbytes) +{ + // Add the amount of bytes to rewind to the data pointers + usb_dataleft += nbytes; + if (usb_dataleft > usb_datasize) + usb_dataleft = usb_datasize; +} + + +/*============================== + usb_purge + Purges the incoming USB data +==============================*/ + +void usb_purge() +{ + usb_dataleft = 0; + usb_datatype = 0; + usb_datasize = 0; + usb_readblock = -1; +} + + +/********************************* + 64Drive functions +*********************************/ + +/*============================== + usb_64drive_wait + Wait until the 64Drive is ready + @return 0 if success or -1 if failure +==============================*/ + +s8 usb_64drive_wait() +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *retp; + + u32 timeout = 0; // I wanted to use osGetTime() but that requires the VI manager + + retp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + // Wait until the cartridge interface is ready + do + { + #if USE_OSRAW + osPiRawReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_STATUS, retp); + #else + osPiReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_STATUS, retp); + #endif + + // Took too long, abort + if((timeout++) > 10000) + return -1; + } + while(((*retp) >> 8) & D64_CI_BUSY); + (void) timeout; // Needed to stop unused variable warning + + // Success + return 0; +} + + +/*============================== + usb_64drive_setwritable + Set the write mode on the 64Drive + @param A boolean with whether to enable or disable +==============================*/ + +void usb_64drive_setwritable(u8 enable) +{ + usb_64drive_wait(); + #if USE_OSRAW + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_COMMAND, enable ? D64_ENABLE_ROMWR : D64_DISABLE_ROMWR); + #else + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_COMMAND, enable ? D64_ENABLE_ROMWR : D64_DISABLE_ROMWR); + #endif + usb_64drive_wait(); +} + + +/*============================== + usb_64drive_waitidle + Waits for the 64Drive's USB to be idle +==============================*/ + +static int usb_64drive_waitidle() +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *statusp; + + u32 timeout = 0; // I wanted to use osGetTime() but that requires the VI manager + + statusp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + do + { + #if USE_OSRAW + osPiRawReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, statusp); + #else + osPiReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, statusp); + #endif + *statusp = ((*statusp) >> 4) & D64_USB_BUSY; + if (timeout++ > 128) + return 0; + } + while((*statusp) != D64_USB_IDLE); + return 1; +} + + +/*============================== + usb_64drive_armstatus + Checks if the 64Drive is armed + @return The arming status +==============================*/ + +static u32 usb_64drive_armstatus() +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *statusp; + + statusp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + #if USE_OSRAW + osPiRawReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, statusp); + #else + osPiReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, statusp); + #endif + return (*statusp) & 0xf; +} + + +/*============================== + usb_64drive_waitdisarmed + Waits for the 64Drive's USB to be disarmed +==============================*/ + +static void usb_64drive_waitdisarmed() +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *statusp; + + statusp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + do + { + #if USE_OSRAW + osPiRawReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, statusp); + #else + osPiReadIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, statusp); + #endif + *statusp = (*statusp) & 0x0F; + } + while ((*statusp) != D64_USB_IDLEUNARMED); +} + + +/*============================== + usb_64drive_write + Sends data through USB from the 64Drive + Will not write if there is data to read from USB + @param The DATATYPE that is being sent + @param A buffer with the data to send + @param The size of the data being sent +==============================*/ + +static void usb_64drive_write(int datatype, const void* data, int size) +{ + int left = size; + int read = 0; + + // Spin until the write buffer is free and then set the cartridge to write mode + if (!usb_64drive_waitidle()) + return; + usb_64drive_setwritable(TRUE); + + // Write data to SDRAM until we've finished + while (left > 0) + { + int block = left; + if (block > BUFFER_SIZE) + block = BUFFER_SIZE; + + // Copy the data to the global buffer + memcpy(usb_buffer, (void*)((char*)data+read), block); + + // If the data was not 32-bit aligned, pad the buffer + if (block < BUFFER_SIZE && size%4 != 0) + { + u32 i; + u32 size_new = (size & ~3)+4; + block += size_new-size; + for (i=size; i> 1); + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP1R1, (size & 0xFFFFFF) | (datatype << 24)); + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, D64_COMMAND_WRITE); + #else + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP0R0, (DEBUG_ADDRESS) >> 1); + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP1R1, (size & 0xFFFFFF) | (datatype << 24)); + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, D64_COMMAND_WRITE); + #endif + + // Spin until the write buffer is free and then disable write mode + usb_64drive_waitidle(); + usb_64drive_setwritable(FALSE); +} + + +/*============================== + usb_64drive_arm + Arms the 64Drive's USB + @param The ROM offset to arm + @param The size of the data to transfer +==============================*/ + +static void usb_64drive_arm(u32 offset, u32 size) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *retp; + + retp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + *retp = usb_64drive_armstatus(); + + if ((*retp) != D64_USB_ARMING && (*retp) != D64_USB_ARMED) + { + usb_64drive_waitidle(); + + // Arm the 64Drive, using the ROM space as a buffer + #if USE_OSRAW + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, D64_USB_ARM); + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP0R0, (offset >> 1)); + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP1R1, (size & 0xFFFFFF)); + #else + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, D64_USB_ARM); + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP0R0, (offset >> 1)); + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBP1R1, (size & 0xFFFFFF)); + #endif + } +} + + +/*============================== + usb_64drive_disarm + Disarms the 64Drive's USB +==============================*/ + +static void usb_64drive_disarm() +{ + // Disarm the USB + #if USE_OSRAW + osPiRawWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, D64_USB_DISARM); + #else + osPiWriteIo(D64_CIBASE_ADDRESS + D64_REGISTER_USBCOMSTAT, D64_USB_DISARM); + #endif + usb_64drive_waitdisarmed(); +} + + +/*============================== + usb_64drive_poll + Returns the header of data being received via USB on the 64Drive + The first byte contains the data type, the next 3 the number of bytes left to read + @return The data header, or 0 +==============================*/ + +static u32 usb_64drive_poll() +{ + int i; + + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *retp; + + retp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + // Arm the USB buffer + usb_64drive_waitidle(); + usb_64drive_setwritable(TRUE); + usb_64drive_arm(DEBUG_ADDRESS, DEBUG_ADDRESS_SIZE); + + // Burn some time to see if any USB data comes in + for (i=0; i size) + block = size; + addr = BUFFER_SIZE - block; + + // Request to read from the USB + usb_everdrive_writereg(ED_REG_USBCFG, ED_USBMODE_RD | addr); + + // Wait for the FPGA to transfer the data to its internal buffer + usb_everdrive_usbbusy(); + + // Read from the internal buffer and store it in our buffer + usb_everdrive_readdata(buffer, ED_GET_REGADD(ED_REG_USBDAT + addr), block); + buffer = (char*)buffer + block; + size -= block; + } +} + + +/*============================== + usb_everdrive_write + Sends data through USB from the EverDrive + Will not write if there is data to read from USB + @param The DATATYPE that is being sent + @param A buffer with the data to send + @param The size of the data being sent +==============================*/ + +static void usb_everdrive_write(int datatype, const void* data, int size) +{ + char wrotecmp = 0; + char cmp[] = {'C', 'M', 'P', 'H'}; + int read = 0; + int left = size; + int offset = 8; + u32 header = (size & 0x00FFFFFF) | (datatype << 24); + + // Put in the DMA header along with length and type information in the global buffer + usb_buffer[0] = 'D'; + usb_buffer[1] = 'M'; + usb_buffer[2] = 'A'; + usb_buffer[3] = '@'; + usb_buffer[4] = (header >> 24) & 0xFF; + usb_buffer[5] = (header >> 16) & 0xFF; + usb_buffer[6] = (header >> 8) & 0xFF; + usb_buffer[7] = header & 0xFF; + + // Write data to USB until we've finished + while (left > 0) + { + int block = left; + int blocksend, baddr; + if (block+offset > BUFFER_SIZE) + block = BUFFER_SIZE-offset; + + // Copy the data to the next available spots in the global buffer + memcpy(usb_buffer+offset, (void*)((char*)data+read), block); + + // Restart the loop to write the CMP signal if we've finished + if (!wrotecmp && read+block >= size) + { + left = 4; + offset = block+offset; + data = cmp; + wrotecmp = 1; + read = 0; + continue; + } + + // Ensure the data is 16 byte aligned and the block address is correct + blocksend = (block+offset)+15 - ((block+offset)+15)%16; + baddr = BUFFER_SIZE - blocksend; + + // Set USB to write mode and send data through USB + usb_everdrive_writereg(ED_REG_USBCFG, ED_USBMODE_WRNOP); + usb_everdrive_writedata(usb_buffer, ED_GET_REGADD(ED_REG_USBDAT + baddr), blocksend); + + // Set USB to write mode with the new address and wait for USB to end + usb_everdrive_writereg(ED_REG_USBCFG, ED_USBMODE_WR | baddr); + usb_everdrive_usbbusy(); + + // Keep track of what we've read so far + left -= block; + read += block; + offset = 0; + } +} + + +/*============================== + usb_everdrive_poll + Returns the header of data being received via USB on the EverDrive + The first byte contains the data type, the next 3 the number of bytes left to read + @return The data header, or 0 +==============================*/ +static u32 usb_everdrive_poll() +{ + // PI requires 8 byte aligned address. + u8 allocbuff[32]; + u8 *buffp; + + int len; + int offset = 0; + + buffp = (u8*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + // Wait for the USB to be ready + usb_everdrive_usbbusy(); + + // Check if the USB is ready to be read + if (!usb_everdrive_canread()) + return 0; + + // Read the first 8 bytes that are being received and check if they're valid + usb_everdrive_readusb(buffp, 16); + if (buffp[0] != 'D' || buffp[1] != 'M' || buffp[2] != 'A' || buffp[3] != '@') + return 0; + + // Store information about the incoming data + usb_datatype = (int)buffp[4]; + usb_datasize = (int)buffp[5]<<16 | (int)buffp[6]<<8 | (int)buffp[7]<<0; + usb_dataleft = usb_datasize; + usb_readblock = -1; + + // Begin receiving data + usb_everdrive_writereg(ED_REG_USBCFG, ED_USBMODE_RD | BUFFER_SIZE); + len = (usb_datasize + BUFFER_SIZE-usb_datasize%BUFFER_SIZE)/BUFFER_SIZE; + + // While there's data to service + while (len--) + { + // Wait for the USB to be ready and then read data + usb_everdrive_usbbusy(); + usb_everdrive_readdata(usb_buffer, ED_GET_REGADD(ED_REG_USBDAT), BUFFER_SIZE); // TODO: Replace with usb_everdrive_readusb? + + // Tell the FPGA we can receive more data + if (len != 0) + usb_everdrive_writereg(ED_REG_USBCFG, ED_USBMODE_RD | BUFFER_SIZE); + + // Copy received block to ROM + usb_everdrive_writedata(usb_buffer, ED_BASE + DEBUG_ADDRESS + offset, BUFFER_SIZE); + offset += BUFFER_SIZE; + } + + // Read the CMP Signal + usb_everdrive_usbbusy(); + usb_everdrive_readusb(buffp, 16); + if (buffp[0] != 'C' || buffp[1] != 'M' || buffp[2] != 'P' || buffp[3] != 'H') + { + // Something went wrong with the data + usb_datatype = 0; + usb_datasize = 0; + usb_dataleft = 0; + usb_readblock = -1; + return 0; + } + + // Return the data header + return USBHEADER_CREATE(usb_datatype, usb_datasize); +} + + +/*============================== + usb_everdrive_read + Reads bytes from the EverDrive ROM into the global buffer with the block offset +==============================*/ + +static void usb_everdrive_read() +{ + // Set up DMA transfer between RDRAM and the PI + osWritebackDCacheAll(); + #if USE_OSRAW + osPiRawStartDma(OS_READ, + ED_BASE + DEBUG_ADDRESS + usb_readblock, usb_buffer, + BUFFER_SIZE); + #else + osPiStartDma(&dmaIOMessageBuf, OS_MESG_PRI_NORMAL, OS_READ, + ED_BASE + DEBUG_ADDRESS + usb_readblock, usb_buffer, + BUFFER_SIZE, &dmaMessageQ); + (void)osRecvMesg(&dmaMessageQ, NULL, OS_MESG_BLOCK); + #endif +} + + +/********************************* + SummerCart64 functions +*********************************/ + +/*============================== + usb_sc64_read_usb_scr + Reads SummerCart64 REG_USB_SCR register + @return value of REG_USB_SCR register +==============================*/ + +static u32 usb_sc64_read_usb_scr(void) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *usb_scrp; + + usb_scrp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + #if USE_OSRAW + osPiRawReadIo(SC64_REG_USB_SCR, usb_scrp); + #else + osPiReadIo(SC64_REG_USB_SCR, usb_scrp); + #endif + return *usb_scrp; +} + + +/*============================== + usb_sc64_read_usb_fifo + Loads one element from USB FIFO + @return value popped from USB FIFO +==============================*/ + +static u32 usb_sc64_read_usb_fifo(void) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *datap; + + datap = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + #if USE_OSRAW + osPiRawReadIo(SC64_MEM_USB_FIFO_BASE, datap); + #else + osPiReadIo(SC64_MEM_USB_FIFO_BASE, datap); + #endif + + return *datap; +} + + +/*============================== + usb_sc64_waitidle + Waits for the SummerCart64 USB interface to be idle + @return 0 if interface is ready, -1 if USB cable is not connected +==============================*/ + +static s8 usb_sc64_waitidle(void) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *usb_scrp; + + usb_scrp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + do + { + *usb_scrp = usb_sc64_read_usb_scr(); + if (!((*usb_scrp) & SC64_USB_STATUS_READY)) { + // Reset usb_cart type if USB cable is not connected + usb_cart = CART_NONE; + return -1; + } + } while ((*usb_scrp) & SC64_USB_STATUS_BUSY); + + return 0; +} + + +/*============================== + usb_sc64_waitdata + Waits for the SummerCart64 USB FIFO to contain specified amount of data or for full FIFO + @param length in bytes + @return number of available bytes in FIFO, -1 if USB cable is not connected +==============================*/ + +static s32 usb_sc64_waitdata(u32 length) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *usb_scrp; + + u32 wait_length = ALIGN(MIN(length, SC64_MEM_USB_FIFO_LEN), 4); + u32 bytes = 0; + + usb_scrp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + do + { + *usb_scrp = usb_sc64_read_usb_scr(); + if (!((*usb_scrp) & SC64_USB_STATUS_READY)) { + // Reset usb_cart type if USB cable is not connected + usb_cart = CART_NONE; + return -1; + } + bytes = SC64_USB_FIFO_ITEMS((*usb_scrp)) * 4; + } while (bytes < wait_length); + + return (s32) bytes; +} + + +/*============================== + usb_sc64_setwritable + Enable ROM (SDRAM) writes in SummerCart64 + @param A boolean with whether to enable or disable +==============================*/ + +static void usb_sc64_setwritable(u8 enable) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *scrp; + + scrp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + #if USE_OSRAW + osPiRawReadIo(SC64_REG_SCR, scrp); + osPiRawWriteIo(SC64_REG_SCR, enable ? ((*scrp) | SC64_SCR_SDRAM_WRITE_EN) : ((*scrp) & (~SC64_SCR_SDRAM_WRITE_EN))); + #else + osPiReadIo(SC64_REG_SCR, scrp); + osPiWriteIo(SC64_REG_SCR, enable ? ((*scrp) | SC64_SCR_SDRAM_WRITE_EN) : ((*scrp) & (~SC64_SCR_SDRAM_WRITE_EN))); + #endif +} + + +/*============================== + usb_sc64_write + Sends data through USB from the SummerCart64 + @param The DATATYPE that is being sent + @param A buffer with the data to send + @param The size of the data being sent +==============================*/ + +static void usb_sc64_write(int datatype, const void* data, int size) +{ + u8 dma[4] = {'D', 'M', 'A', '@'}; + u32 header = USBHEADER_CREATE(datatype, size); + u8 cmp[4] = {'C', 'M', 'P', 'H'}; + u8 wrote_cmp = FALSE; + + size_t block_size = MIN(BUFFER_SIZE, DEBUG_ADDRESS_SIZE); + size_t usb_block_max_size = MIN(DEBUG_ADDRESS_SIZE, SC64_USB_DMA_MAX_LEN); + + u8* data_ptr = (u8*) data; + u32 sdram_address = SC64_SDRAM_BASE + DEBUG_ADDRESS; + + int offset; + int left; + u32 transfer_length; + + // Wait until ready + if (usb_sc64_waitidle()) + { + // Do nothing if USB cable is not connected + return; + } + + // Enable SDRAM writes + usb_sc64_setwritable(TRUE); + + // Prepare transfer header + memcpy(usb_buffer, dma, sizeof(dma)); + memcpy(usb_buffer + sizeof(dma), &header, sizeof(header)); + + offset = sizeof(dma) + sizeof(header); + left = size; + transfer_length = 0; + + while (left > 0) + { + // Calculate data copy length + size_t data_length = MIN(MIN(left, block_size - offset), usb_block_max_size - transfer_length); + u32 dma_length; + + // Fill buffer + memcpy(usb_buffer + offset, data_ptr, data_length); + + // Write CMPH at the end of data + if (!wrote_cmp && (left - data_length) <= 0) + { + wrote_cmp = TRUE; + data_ptr = cmp; + offset = MIN(offset + data_length, block_size); + left = sizeof(cmp); + continue; + } + + // Calculate RDRAM -> PI transfer length + dma_length = ALIGN(offset + data_length, 4); + + // Write data to buffer in SDRAM + osWritebackDCache(usb_buffer, dma_length); + #if USE_OSRAW + osPiRawStartDma(OS_WRITE, sdram_address, usb_buffer, dma_length); + #else + osPiStartDma(&dmaIOMessageBuf, OS_MESG_PRI_NORMAL, OS_WRITE, sdram_address, usb_buffer, dma_length, &dmaMessageQ); + osRecvMesg(&dmaMessageQ, NULL, OS_MESG_BLOCK); + #endif + + // Update pointers and remaining data tracking + data_ptr += data_length; + sdram_address += dma_length; + offset = 0; + left -= data_length; + transfer_length = sdram_address - (SC64_SDRAM_BASE + DEBUG_ADDRESS); + + // Continue filling SDRAM buffer if total length is lower than maximum transfer length or if there's no more data + if ((transfer_length < usb_block_max_size) && (left > 0)) + { + continue; + } + + // Disable SDRAM writes if there's no more data to write + if (left <= 0) + { + usb_sc64_setwritable(FALSE); + } + + // Setup hardware registers + #if USE_OSRAW + osPiRawWriteIo(SC64_REG_USB_DMA_ADDR, SC64_USB_BANK_ADDR(SC64_BANK_ROM, DEBUG_ADDRESS)); + osPiRawWriteIo(SC64_REG_USB_DMA_LEN, SC64_USB_LENGTH(transfer_length)); + osPiRawWriteIo(SC64_REG_USB_SCR, SC64_USB_CONTROL_START); + #else + osPiWriteIo(SC64_REG_USB_DMA_ADDR, SC64_USB_BANK_ADDR(SC64_BANK_ROM, DEBUG_ADDRESS)); + osPiWriteIo(SC64_REG_USB_DMA_LEN, SC64_USB_LENGTH(transfer_length)); + osPiWriteIo(SC64_REG_USB_SCR, SC64_USB_CONTROL_START); + #endif + + // Wait for transfer to complete if there's more data to send + if (left > 0) + { + if (usb_sc64_waitidle()) + { + // Disable SDRAM writes + usb_sc64_setwritable(FALSE); + + // Stop sending data if USB cable has been disconnected + return; + } + } + + // Reset SDRAM address and transfer length + sdram_address = SC64_SDRAM_BASE + DEBUG_ADDRESS; + transfer_length = 0; + } +} + + +/*============================== + usb_sc64_poll + Returns the header of data being received via USB on the SummerCart64 + The first byte contains the data type, the next 3 the number of bytes left to read + @return The data header, or 0 +==============================*/ + +static u32 usb_sc64_poll(void) +{ + // PI requires 8 byte aligned address. + u32 allocbuff[5]; + u32 *buffp; + + u32 sdram_address; + int left; + + // Load how many 32 bit words are in FIFO + u32 fifo_items = SC64_USB_FIFO_ITEMS(usb_sc64_read_usb_scr()); + + buffp = (u32*)OS_DCACHE_ROUNDUP_ADDR(&allocbuff[0]); + + // Check data if there's at least DMA@ and header in FIFO + if (fifo_items >= 2) + { + // Load and check DMA@ identifier + *buffp = usb_sc64_read_usb_fifo(); + if (memcmp(buffp, "DMA@", 4) != 0) + { + // Return if identifier is wrong + return 0; + } + + // Load header + *buffp = usb_sc64_read_usb_fifo(); + + // Fill USB read data variables + usb_datatype = USBHEADER_GETTYPE((*buffp)); + usb_dataleft = USBHEADER_GETSIZE((*buffp)); + usb_datasize = usb_dataleft; + usb_readblock = -1; + + // Calculate copy length, data size + CMPH identifier aligned to 4 bytes + left = ALIGN(usb_datasize + 4, 4); + + // Starting address in SDRAM + sdram_address = SC64_SDRAM_BASE + DEBUG_ADDRESS; + + // Enable SDRAM writes + usb_sc64_setwritable(TRUE); + + // Copy data until finished + while (left > 0) + { + // Calculate transfer length + s32 dma_length = MIN(left, BUFFER_SIZE); + + // Wait for data in FIFO + dma_length = usb_sc64_waitdata(dma_length); + if (dma_length < 0) + { + // Disable SDRAM writes + usb_sc64_setwritable(FALSE); + + // Stop waiting for data if USB cable has been disconnected + return 0; + } + + // Load data from FIFO to buffer in RDRAM + #if USE_OSRAW + osPiRawStartDma(OS_READ, SC64_MEM_USB_FIFO_BASE, usb_buffer, dma_length); + #else + osPiStartDma(&dmaIOMessageBuf, OS_MESG_PRI_NORMAL, OS_READ, SC64_MEM_USB_FIFO_BASE, usb_buffer, dma_length, &dmaMessageQ); + osRecvMesg(&dmaMessageQ, NULL, OS_MESG_BLOCK); + #endif + + // Copy data from RDRAM to SDRAM + #if USE_OSRAW + osPiRawStartDma(OS_WRITE, sdram_address, usb_buffer, dma_length); + #else + osPiStartDma(&dmaIOMessageBuf, OS_MESG_PRI_NORMAL, OS_WRITE, sdram_address, usb_buffer, dma_length, &dmaMessageQ); + osRecvMesg(&dmaMessageQ, NULL, OS_MESG_BLOCK); + #endif + + // Update tracking variables + left -= dma_length; + sdram_address += dma_length; + } + + // Disable SDRAM writes + usb_sc64_setwritable(FALSE); + + // Return USB header + return USBHEADER_CREATE(usb_datatype, usb_dataleft); + } + + // Return no USB header if FIFO is empty + return 0; +} + + +/*============================== + usb_sc64_read + Reads bytes from the SummerCart64 ROM into the global buffer with the block offset +==============================*/ + +static void usb_sc64_read(void) +{ + // Calculate address in SDRAM + u32 sdram_address = SC64_SDRAM_BASE + DEBUG_ADDRESS + usb_readblock; + + // Set up DMA transfer between RDRAM and the PI + #if USE_OSRAW + osPiRawStartDma(OS_READ, sdram_address, usb_buffer, BUFFER_SIZE); + #else + osPiStartDma(&dmaIOMessageBuf, OS_MESG_PRI_NORMAL, OS_READ, sdram_address, usb_buffer, BUFFER_SIZE, &dmaMessageQ); + osRecvMesg(&dmaMessageQ, NULL, OS_MESG_BLOCK); + #endif + + // Invalidate cache + osInvalDCache(usb_buffer, BUFFER_SIZE); +} diff --git a/src/usb.h b/src/usb.h new file mode 100644 index 00000000..601146c8 --- /dev/null +++ b/src/usb.h @@ -0,0 +1,126 @@ +#ifndef UNFL_USB_H +#define UNFL_USB_H + +#include + + /********************************* + DataType macros + *********************************/ + + // UNCOMMENT THE #DEFINE IF USING LIBDRAGON + ///#define LIBDRAGON + + // Settings + #define USE_OSRAW 0 // Use if you're doing USB operations without the PI Manager (libultra only) + #define DEBUG_ADDRESS_SIZE 8*1024*1024 // Max size of USB I/O. The bigger this value, the more ROM you lose! + + // Cart definitions + #define CART_NONE 0 + #define CART_64DRIVE 1 + #define CART_EVERDRIVE 2 + #define CART_SC64 3 + + // Data types defintions + #define DATATYPE_TEXT 0x01 + #define DATATYPE_RAWBINARY 0x02 + #define DATATYPE_HEADER 0x03 + #define DATATYPE_SCREENSHOT 0x04 + + extern int usb_datatype; + extern int usb_datasize; + extern int usb_dataleft; + extern int usb_readblock; + + + /********************************* + Convenience macros + *********************************/ + + // Use these to conveniently read the header from usb_poll() + #define USBHEADER_GETTYPE(header) ((header & 0xFF000000) >> 24) + #define USBHEADER_GETSIZE(header) ((header & 0x00FFFFFF)) + + + /********************************* + USB Functions + *********************************/ + + /*============================== + usb_initialize + Initializes the USB buffers and pointers + @return 1 if the USB initialization was successful, 0 if not + ==============================*/ + + extern u32 usb_initialize(); + + + /*============================== + usb_getcart + Returns which flashcart is currently connected + @return The CART macro that corresponds to the identified flashcart + ==============================*/ + + extern char usb_getcart(); + + + /*============================== + usb_write + Writes data to the USB. + Will not write if there is data to read from USB + @param The DATATYPE that is being sent + @param A buffer with the data to send + @param The size of the data being sent + ==============================*/ + + extern void usb_write(int datatype, const void* data, int size); + + extern void usb_write_text(const u8* data, int size); + + + /*============================== + usb_poll + Returns the header of data being received via USB + The first byte contains the data type, the next 3 the number of bytes left to read + @return The data header, or 0 + ==============================*/ + + extern u32 usb_poll(); + + + /*============================== + usb_read + Reads bytes from USB into the provided buffer + @param The buffer to put the read data in + @param The number of bytes to read + ==============================*/ + + extern s32 usb_read(void* buffer, int size); + + + /*============================== + usb_skip + Skips a USB read by the specified amount of bytes + @param The number of bytes to skip + ==============================*/ + + extern void usb_skip(int nbytes); + + + /*============================== + usb_rewind + Rewinds a USB read by the specified amount of bytes + @param The number of bytes to rewind + ==============================*/ + + extern void usb_rewind(int nbytes); + + + /*============================== + usb_purge + Purges the incoming USB data + ==============================*/ + + extern void usb_purge(); + +#endif + diff --git a/test_files.sh b/test_files.sh index 288fd563..2368e549 100755 --- a/test_files.sh +++ b/test_files.sh @@ -16,7 +16,7 @@ usage() { } [ $# -eq 0 ] && usage -while getopts "i:ch" arg; do +while getopts "i:chv" arg; do case $arg in i) SRC="${OPTARG}" diff --git a/tools/ge-stats.py b/tools/ge-stats.py index 402a6e5f..e2737a0a 100755 --- a/tools/ge-stats.py +++ b/tools/ge-stats.py @@ -186,12 +186,14 @@ class StatResults: -def mtime_os(file, now): +def mtime_os(file, now): + print('using os') return int(os.path.getmtime(file)) -def mtime_git(file, now): +def mtime_git(file, now): + print('using git') try: date_str = now.strftime('%Y-%m-%dT%H:%M:%S%z') result = subprocess.run(['git', 'log', '-1', '--format=\"%ct\"', '--date=local', '--before=\"' + date_str + '\"', '--', file], stdout=subprocess.PIPE, universal_newlines=True) @@ -236,7 +238,11 @@ def process_source_files(search, stats: StatResults, mtime_resolver): sfc.asm_functions = set() sfc.parent = s - sfc.mtime = mtime_resolver(file, stats.now) + sfc.mtime = mtime_resolver(file, stats.now) + import datetime + + x = datetime.datetime.fromtimestamp(sfc.mtime) + print(sfc.path, ' = ', x.strftime('%c')) # The `completed` list is manually configured to specify which files should not be # counted against the total. This is done by simply not adding asm function @@ -661,7 +667,8 @@ def main(): # if this is just getting status on nonmatching files, ignore modified time lookup. if print_method == 'non_matching' and not run_report: mtime_use_os = True - + + print(subprocess.run(['git', 'diff', 'origin/master', '--name-only', '"@{10 minutes ago}"']).stdout) # Default to using git log to get the file's modified date. # Git log will be much slower, but cloning a new repo (i.e., github actions online) # will reset all the modified timestamps to the same value, so will need to diff --git a/tools/mktex/.gitignore b/tools/mktex/.gitignore new file mode 100644 index 00000000..a96ed9a8 --- /dev/null +++ b/tools/mktex/.gitignore @@ -0,0 +1 @@ +build/tex2png diff --git a/tools/mktex/Makefile b/tools/mktex/Makefile new file mode 100644 index 00000000..aa8e0d8f --- /dev/null +++ b/tools/mktex/Makefile @@ -0,0 +1,13 @@ +TEX2PNG_C_FILES := \ + src/tex2png.c \ + src/libpdtex/pdtex.c \ + src/libpdtex/reader.c \ + src/libpdtex/writer.c + +tex2png: $(TEX2PNG_C_FILES) + gcc $(TEX2PNG_C_FILES) -lpng -lz -O3 -o build/tex2png + +clean: + rm -f build/tex2png + +default: tex2png diff --git a/tools/mktex/README.md b/tools/mktex/README.md new file mode 100644 index 00000000..701cd4a9 --- /dev/null +++ b/tools/mktex/README.md @@ -0,0 +1,29 @@ +# pd-tex + +A C library and programs for converting Perfect Dark and GoldenEye textures between their binary formats and PNG. Currently only the binary to PNG conversion is implemented. + +## What's Inside + +* `libpdtex` - The core library for working with the binary format. It presents textures to the caller as a `struct pd_tex`. +* `tex2png` - A C program that converts a single texture to multiple PNG images (multiple levels of detail), using libpdtex and your OS's libpng. + +## Requirements + +* `libpng` +* `make` + +## Compiling + +Run `make`. + +## tex2png + +Example invocation: + + ./tex2png path/to/texture.bin output/ + +...where the file at `path/to/texture.bin` is the texture data sliced from the ROM, and `output/` is an existing directory where the PNGs will be created. + +A PNG image will be created for each level of detail within the texture. Each PNG's filename is generated using the base filename of the texture and the level of detail. For example, using the texture name `foo.bin`, the PNG images will be named `foo-0.png`, `foo-1.png` and so on. All textures have a 0 level of detail, but the other levels may not exist. + +Where possible, the pixel format used in the PNGs will be the same as the one in the binary texture. Some formats used by textures aren't available in PNG which means it may need to be converted. For example, textures allow RGBA16 (5/5/5/1) which requires a conversion to RGBA32 (8/8/8/8) for the PNG. diff --git a/tools/mktex/src/libpdtex/pdtex.c b/tools/mktex/src/libpdtex/pdtex.c new file mode 100644 index 00000000..163866fe --- /dev/null +++ b/tools/mktex/src/libpdtex/pdtex.c @@ -0,0 +1,163 @@ +#include +#include +#include +#include +#include +#include "pdtex.h" + +/** + * libpdtex - A library for reading and writing PD textures. + * + * Each PD texture, herein called a pdtex, can contain up to 7 images at + * different levels of detail (LOD). Each image can use a different pixel format + * and compression algorithm. + * + * PD uses a variety of compression algorithms on its texture data, and + * sometimes more than one on the same image. Depending on the compression + * algorithm and pixel format, the data can be rearranged to place all the alpha + * values separate to the colour values for better compression. libpdtex + * provides an abstraction for the compression and decompression of this data. + * + * The user of this library interacts with it by using pdtex and pdimage + * structs. A pdtex is pretty much just an array of pdimages. A pdimage contains + * the dimensions, format and pixel data in that format. pdimages also contain + * a property for the compression algorithm, despite the pixel data having been + * decompressed already. This is so the caller can request that a particular + * compression method be used when writing a texture. + */ + +int g_TexFormatNumChannels[] = { 4, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1 }; +int g_TexFormatHas1BitAlpha[] = { 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }; +int g_TexFormatChannelSizes[] = { 256, 32, 256, 32, 256, 16, 8, 256, 16, 256, 16, 256, 16 }; +int g_TexFormatBitsPerPixel[] = { 32, 16, 24, 15, 16, 8, 4, 8, 4, 16, 16, 16, 16 }; + +int reader_read(FILE *fp, struct pd_tex *tex); +int writer_write(FILE *fp, struct pd_image *image); + +struct pd_tex *pdtex_allocate(void) +{ + return calloc(1, sizeof(struct pd_tex)); +} + +void pdtex_free(struct pd_tex *tex) +{ + if (tex) { + for (int i = 0; i < PDTEX_MAX_IMAGES; i++) { + free(tex->images[i].pixels); + } + + free(tex->palette); + free(tex); + } +} + +void pdtex_flip(struct pd_tex *tex) +{ + uint8_t buffer[1000]; + int rowlen; + + for (int i = 0; i < PDTEX_MAX_IMAGES; i++) { + if (tex->images[i].exists) { + struct pd_image *image = &tex->images[i]; + int top = 0; + int bottom = image->height - 1; + + if (image->format == PDFORMAT_RGBA16_CI8 + || image->format == PDFORMAT_IA16_CI8 + || image->format == PDFORMAT_RGBA16_CI4 + || image->format == PDFORMAT_IA4_CI4) { + // Paletted + rowlen = image->width; + } else if (image->format == PDFORMAT_I4) { + // 4 bits in ROM, but at this point it's 8 bits + rowlen = image->width; + } else if (image->format == PDFORMAT_RGB15) { + rowlen = 2 * image->width; + } else { + // Not paletted + rowlen = g_TexFormatBitsPerPixel[image->format] * image->width / 8; + } + + while (top < bottom) { + memcpy(buffer, &image->pixels[top * rowlen], rowlen); + memcpy(&image->pixels[top * rowlen], &image->pixels[bottom * rowlen], rowlen); + memcpy(&image->pixels[bottom * rowlen], buffer, rowlen); + + top++; + bottom--; + } + } + } +} + +int pdtex_read(struct pd_tex *tex, char *filename) +{ + FILE *fp = fopen(filename, "rb"); + + if (!fp) { + return errno; + } + + if (!reader_read(fp, tex)) { + return 1; + } + + fclose(fp); + + return 0; +} + +int pdtex_write(struct pd_image *image, char *filename) +{ + FILE *fp = fopen(filename, "wb"); + + if (!fp) { + return errno; + } + + if (!writer_write(fp, image)) { + return 1; + } + + fclose(fp); + + return 0; +} + +void pdtex_print(struct pd_tex *tex) +{ + int i; + + if (tex->palette) { + printf("Palette: %d colours\n", tex->numcolours); + + for (i = 0; i < tex->numcolours; i++) { + printf("0x%02x%02x\n", tex->palette[i * 2], tex->palette[i * 2 + 1]); + } + } else { + printf("Palette: NULL\n"); + } + + struct pd_image *image = &tex->images[0]; + + printf("Exists: %d\n", image->exists); + printf("Format: %d\n", image->format); + printf("Compression: %d\n", image->compression); + printf("Width: %d\n", image->width); + printf("Height: %d\n", image->height); + + if (image->pixels) { + printf("Pixels:"); + + for (i = 0; i < 0x100; i++) { + if ((i % 0x10) == 0) { + printf("\n"); + } + + printf("%02x ", image->pixels[i]); + } + printf("\n"); + } else { + printf("Pixels: NULL"); + } +} diff --git a/tools/mktex/src/libpdtex/pdtex.h b/tools/mktex/src/libpdtex/pdtex.h new file mode 100644 index 00000000..9634b92b --- /dev/null +++ b/tools/mktex/src/libpdtex/pdtex.h @@ -0,0 +1,61 @@ +#ifndef IN_PDTEX_H +#define IN_PDTEX_H +#include +#include +#include + +#define PDTEX_MAX_IMAGES 7 + +enum pd_format { + PDFORMAT_RGBA32, + PDFORMAT_RGBA16, + PDFORMAT_RGB24, + PDFORMAT_RGB15, + PDFORMAT_IA16, + PDFORMAT_IA8, + PDFORMAT_IA4, + PDFORMAT_I8, + PDFORMAT_I4, + PDFORMAT_RGBA16_CI8, + PDFORMAT_RGBA16_CI4, + PDFORMAT_IA16_CI8, + PDFORMAT_IA4_CI4, +}; + +enum pd_compression { + PDCOMPRESSION_HUFFMAN = 2, + PDCOMPRESSION_HUFFMANPERHCHANNEL, + PDCOMPRESSION_RLE, + PDCOMPRESSION_LOOKUP, + PDCOMPRESSION_HUFFMANLOOKUP, + PDCOMPRESSION_RLELOOKUP, + PDCOMPRESSION_HUFFMANBLUR, + PDCOMPRESSION_RLEBLUR, +}; + +struct pd_image { + bool exists; + enum pd_format format; + enum pd_compression compression; + int width; + int height; + uint8_t *pixels; +}; + +struct pd_tex { + uint8_t *palette; + int numcolours; + struct pd_image images[PDTEX_MAX_IMAGES]; +}; + +struct pd_tex *pdtex_allocate(void); + +void pdtex_free(struct pd_tex *tex); + +int pdtex_read(struct pd_tex *tex, char *filename); + +int pdtex_write(struct pd_image *image, char *filename); + +void pdtex_print(struct pd_tex *tex); + +#endif diff --git a/tools/mktex/src/libpdtex/reader.c b/tools/mktex/src/libpdtex/reader.c new file mode 100644 index 00000000..a6b6cda0 --- /dev/null +++ b/tools/mktex/src/libpdtex/reader.c @@ -0,0 +1,877 @@ +#include +#include +#include +#include +#include +#include +#include "pdtex.h" + +/** + * The functions in this file are copied from PD decomp's texdecompress.c. + * + * Refer to decomp for function documentation. + */ + +uint8_t *var800ab540; +int var800ab544; +int var800ab548; +int total_read; +void *g_RzipUnused; + +extern int g_TexFormatNumChannels[]; +extern int g_TexFormatHas1BitAlpha[]; +extern int g_TexFormatChannelSizes[]; +extern int g_TexFormatBitsPerPixel[]; + +void pdtex_flip(struct pd_tex *tex); + +int rzipInflate(uint8_t *src, uint8_t *dst) +{ + int ret; + z_stream strm; + + if (src[0] == 0x11 && src[1] == 0x73) { + src += 5; + } else if (src[0] == 0x11 && src[1] == 0x72) { + src += 2; + } else { + fprintf(stderr, "rzipInflate: Not 1172 or 1173\n"); + fprintf(stderr, "%02x ", src[0]); + fprintf(stderr, "%02x ", src[1]); + fprintf(stderr, "%02x ", src[2]); + fprintf(stderr, "%02x ", src[3]); + fprintf(stderr, "%02x ", src[4]); + fprintf(stderr, "%02x ", src[5]); + fprintf(stderr, "%02x ", src[6]); + fprintf(stderr, "%02x ", src[7]); + fprintf(stderr, "\n"); + return Z_STREAM_ERROR; + } + + strm.zalloc = Z_NULL; + strm.zfree = Z_NULL; + strm.opaque = Z_NULL; + ret = inflateInit2(&strm, -15); + + if (ret != Z_OK) { + return ret; + } + + strm.avail_in = 0x2000; + strm.next_in = src; + + do { + strm.avail_out = 0x2000; + strm.next_out = dst; + + ret = inflate(&strm, Z_FINISH); + + if (ret == Z_STREAM_ERROR) { + return Z_STREAM_ERROR; + } + } while (strm.avail_out == 0); + + g_RzipUnused = strm.next_in; + + inflateEnd(&strm); + + return Z_OK; +} + +void *rzipGetUnused(void) +{ + return g_RzipUnused; +} + +static void texSetBitstring(uint8_t *arg0) +{ + var800ab540 = arg0; + var800ab544 = 0; + var800ab548 = 0; + total_read = 0; +} + +static int texReadBits(int numbits) +{ + while (var800ab548 < numbits) { + var800ab544 = *var800ab540 | var800ab544 << 8; + var800ab540++; + var800ab548 += 8; + } + + total_read += numbits; + var800ab548 -= numbits; + + return var800ab544 >> var800ab548 & (1 << numbits) - 1; +} + +static void texInflateHuffman(uint8_t *dst, int numiterations, int chansize) +{ + uint16_t frequencies[2048]; + int16_t nodes[2048][2]; + int32_t i; + int32_t rootindex; + int32_t sum; + uint16_t minfreq1; + uint16_t minfreq2; + int32_t minindex1; + int32_t minindex2; + bool done = false; + + // Read the frequencies list + for (i = 0; i < chansize; i++) { + frequencies[i] = texReadBits(8); + } + + // Initialise the tree + for (i = 0; i < 2048; i++) { + nodes[i][0] = -1; + nodes[i][1] = -1; + } + + // Find the two smallest frequencies + minfreq1 = 9999; + minfreq2 = 9999; + + for (i = 0; i < chansize; i++) { + if (frequencies[i] < minfreq1) { + if (minfreq2 < minfreq1) { + minfreq1 = frequencies[i]; + minindex1 = i; + } else { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } else if (frequencies[i] < minfreq2) { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } + + // Build the tree. + // For each node in tree, a branch value < 10000 means this branch + // leads to another node, and the value is the target node's index. + // A branch value >= 10000 means the branch is a leaf node, + // and the value is the channel value + 10000. + while (!done) { + sum = frequencies[minindex1] + frequencies[minindex2]; + + if (sum == 0) { + sum = 1; + } + + frequencies[minindex1] = 9999; + frequencies[minindex2] = 9999; + + if (nodes[minindex1][0] < 0 && nodes[minindex1][1] < 0) { + nodes[minindex1][0] = minindex1 + 10000; + rootindex = minindex1; + frequencies[minindex1] = sum; + + if (nodes[minindex2][0] < 0 && nodes[minindex2][1] < 0) { + nodes[minindex1][1] = minindex2 + 10000; + } else { + nodes[minindex1][1] = minindex2; + } + } else if (nodes[minindex2][0] < 0 && nodes[minindex2][1] < 0) { + nodes[minindex2][0] = minindex2 + 10000; + rootindex = minindex2; + frequencies[minindex2] = sum; + + if (nodes[minindex1][0] < 0 && nodes[minindex1][1] < 0) { + nodes[minindex2][1] = minindex1 + 10000; + } else { + nodes[minindex2][1] = minindex1; + } + } else { + for (rootindex = 0; nodes[rootindex][0] >= 0 || nodes[rootindex][1] >= 0 || frequencies[rootindex] < 9999; rootindex++); + + frequencies[rootindex] = sum; + nodes[rootindex][0] = minindex1; + nodes[rootindex][1] = minindex2; + } + + // Find the two smallest frequencies again for the next iteration + minfreq1 = 9999; + minfreq2 = 9999; + + for (i = 0; i < chansize; i++) { + if (frequencies[i] < minfreq1) { + if (minfreq1 > minfreq2) { + minfreq1 = frequencies[i]; + minindex1 = i; + } else { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } else if (frequencies[i] < minfreq2) { + minfreq2 = frequencies[i]; + minindex2 = i; + } + } + + if (minfreq1 == 9999 || minfreq2 == 9999) { + done = true; + } + } + + // Read bits off the bitstring, traverse the tree + // and write the channel values to dst + for (i = 0; i < numiterations; i++) { + int indexorvalue = rootindex; + + while (indexorvalue < 10000) { + indexorvalue = nodes[indexorvalue][texReadBits(1)]; + } + + if (chansize <= 256) { + dst[i] = indexorvalue - 10000; + } else { + int value = indexorvalue - 10000; + dst[i * 2 + 0] = value >> 8; + dst[i * 2 + 1] = value & 0xff; + } + } +} + +static void texInflateRle(uint8_t *dst, int blockstotal) +{ + int btfieldsize = texReadBits(3); + int rlfieldsize = texReadBits(3); + int blocksize = texReadBits(4); + int cost; + int fudge; + int blocksdone; + int i; + + // Calculate the fudge value + cost = btfieldsize + rlfieldsize + blocksize + 1; + fudge = 0; + + while (cost > 0) { + cost = cost - blocksize - 1; + fudge++; + } + + blocksdone = 0; + + while (blocksdone < blockstotal) { + if (texReadBits(1) == 0) { + // Found a literal directive + if (blocksize <= 8) { + dst[blocksdone] = texReadBits(blocksize); + blocksdone++; + } else { + uint16_t *tmp = (uint16_t *)dst; + tmp[blocksdone] = texReadBits(blocksize); + blocksdone++; + } + } else { + // Found a run directive + int startblockindex = blocksdone - texReadBits(btfieldsize) - 1; + int runnumblocks = texReadBits(rlfieldsize) + fudge; + + if (blocksize <= 8) { + for (i = startblockindex; i < startblockindex + runnumblocks; i++) { + dst[blocksdone] = dst[i]; + blocksdone++; + } + + // The next instruction must be a literal + dst[blocksdone] = texReadBits(blocksize); + blocksdone++; + } else { + uint16_t *tmp = (uint16_t *)dst; + + for (i = startblockindex; i < startblockindex + runnumblocks; i++) { + tmp[blocksdone] = tmp[i]; + blocksdone++; + } + + // The next instruction must be a literal + tmp[blocksdone] = texReadBits(blocksize); + blocksdone++; + } + } + } +} + +static int texBuildLookup(uint8_t *lookup, int bitsperpixel) +{ + int numcolours = texReadBits(11); + int i; + + if (bitsperpixel <= 16) { + for (i = 0; i < numcolours; i++) { + int value = texReadBits(bitsperpixel); + lookup[i * 2 + 0] = (value >> 8) & 0xff; + lookup[i * 2 + 1] = value & 0xff; + } + } else if (bitsperpixel <= 24) { + for (i = 0; i < numcolours; i++) { + int value = texReadBits(bitsperpixel); + lookup[i * 4 + 0] = (value >> 24); + lookup[i * 4 + 1] = (value >> 16) & 0xff; + lookup[i * 4 + 2] = (value >> 8) & 0xff; + lookup[i * 4 + 3] = value & 0xff; + } + } else { + for (i = 0; i < numcolours; i++) { + uint32_t value = texReadBits(24) << 8 | texReadBits(bitsperpixel - 24); + + lookup[i * 4 + 0] = (value >> 24); + lookup[i * 4 + 1] = (value >> 16) & 0xff; + lookup[i * 4 + 2] = (value >> 8) & 0xff; + lookup[i * 4 + 3] = value & 0xff; + } + } + + return numcolours; +} + +static int texGetBitSize(int decimal) +{ + int count = 0; + + decimal--; + + while (decimal > 0) { + decimal >>= 1; + count++; + } + + return count; +} + +static void texReadAlphaBits(uint8_t *dst, int count) +{ + int i; + + for (i = 0; i < count; i++) { + dst[i] = texReadBits(1); + } +} + +static void texChannelsToPixels(uint8_t *src, int width, int height, uint8_t *dst, int format) +{ + int x; + int y; + int pos = 0; + int mult = width * height; + + switch (format) { + case PDFORMAT_RGBA32: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 4 + 0] = src[pos]; + dst[x * 4 + 1] = src[pos + mult]; + dst[x * 4 + 2] = src[pos + mult * 2]; + dst[x * 4 + 3] = src[pos + mult * 3]; + pos++; + } + dst += width * 4; + } + + break; + case PDFORMAT_RGB24: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 3 + 0] = src[pos]; + dst[x * 3 + 1] = src[pos + mult]; + dst[x * 3 + 2] = src[pos + mult * 2]; + pos++; + } + dst += width * 3; + } + + break; + case PDFORMAT_RGBA16: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 2 + 0] = src[pos] << 3 | src[pos + mult] >> 2; + dst[x * 2 + 1] = src[pos + mult] << 6 | src[pos + mult * 2] << 1 | src[pos + mult * 3]; + pos++; + } + dst += width * 2; + } + + break; + case PDFORMAT_IA16: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 2 + 0] = src[pos]; + dst[x * 2 + 1] = src[pos + mult]; + pos++; + } + dst += width * 2; + } + + break; + case PDFORMAT_RGB15: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 2 + 0] = src[pos] << 3 | src[pos + mult] >> 2; + dst[x * 2 + 1] = src[pos + mult] << 6 | src[pos + mult * 2] << 1 | 1; + pos++; + } + dst += width * 2; + } + + break; + case PDFORMAT_IA8: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x] = src[pos] << 4 | src[pos + mult]; + pos++; + } + dst += width; + } + + break; + case PDFORMAT_I8: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x] = src[pos]; + pos++; + } + dst += width; + } + + break; + case PDFORMAT_IA4: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x += 2) { + dst[x >> 1] = src[pos] << 5 | src[pos + mult * 3] << 4 | src[pos + 1] << 1 | src[pos + mult * 3 + 1]; + pos += 2; + } + if (width & 1) { + pos--; + } + + dst += width; + } + + break; + case PDFORMAT_I4: + memcpy(dst, src, width * height); + break; + } +} + +static void texInflateLookup(int width, int height, uint8_t *dst, uint8_t *lookup, int numcolours, int format) +{ + int x; + int y; + int bitspercolour = texGetBitSize(numcolours); + + switch (format) { + case PDFORMAT_RGBA32: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + int index = texReadBits(bitspercolour); + dst[x * 4 + 0] = lookup[index * 4 + 0]; + dst[x * 4 + 1] = lookup[index * 4 + 1]; + dst[x * 4 + 2] = lookup[index * 4 + 2]; + dst[x * 4 + 3] = lookup[index * 4 + 3]; + } + + dst += width * 4; + } + + break; + case PDFORMAT_RGB24: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + int index = texReadBits(bitspercolour); + dst[x * 3 + 0] = lookup[index * 4 + 1]; + dst[x * 3 + 1] = lookup[index * 4 + 2]; + dst[x * 3 + 2] = lookup[index * 4 + 3]; + } + + dst += width * 3; + } + + break; + case PDFORMAT_RGBA16: + case PDFORMAT_IA16: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + int index = texReadBits(bitspercolour); + dst[x * 2 + 0] = lookup[index * 2 + 0]; + dst[x * 2 + 1] = lookup[index * 2 + 1]; + } + + dst += width * 2; + } + + break; + case PDFORMAT_RGB15: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + int index = texReadBits(bitspercolour); + dst[x * 2 + 0] = lookup[index * 2 + 0] << 1 | ((lookup[index * 2 + 1] >> 7) & 1); + dst[x * 2 + 1] = lookup[index * 2 + 1] << 1 | 1; + } + + dst += width * 2; + } + + break; + case PDFORMAT_IA8: + case PDFORMAT_I8: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x] = lookup[texReadBits(bitspercolour) * 2 + 1]; + } + + dst += width; + } + + break; + case PDFORMAT_IA4: + case PDFORMAT_I4: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x += 2) { + dst[x >> 1] = lookup[texReadBits(bitspercolour) * 2 + 1] << 4; + + if (x + 1 < width) { + dst[x >> 1] |= lookup[(texReadBits(bitspercolour) * 2) + 1]; + } + } + + dst += width >> 1; + } + + break; + } +} + +static void texInflateLookupFromBuffer(uint8_t *src, int width, int height, uint8_t *dst, uint8_t *lookup, int numcolours, int format) +{ + int x; + int y; + uint16_t indexesarray[0x2000]; + uint16_t *indexes = indexesarray; + + if (numcolours <= 256) { + for (int i = 0; i < width * height; i++) { + indexesarray[i] = src[i]; + } + } else { + for (int i = 0; i < width * height; i++) { + indexesarray[i] = src[i * 2]; + } + } + + switch (format) { + case PDFORMAT_RGBA32: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 4 + 0] = lookup[indexes[x] * 4 + 0]; + dst[x * 4 + 1] = lookup[indexes[x] * 4 + 1]; + dst[x * 4 + 2] = lookup[indexes[x] * 4 + 2]; + dst[x * 4 + 3] = lookup[indexes[x] * 4 + 3]; + } + + dst += width * 4; + indexes += width; + } + + break; + case PDFORMAT_RGB24: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 3 + 0] = lookup[indexes[x] * 4 + 1]; + dst[x * 3 + 1] = lookup[indexes[x] * 4 + 2]; + dst[x * 3 + 2] = lookup[indexes[x] * 4 + 3]; + } + + dst += width * 3; + indexes += width; + } + + break; + case PDFORMAT_RGBA16: + case PDFORMAT_IA16: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 2 + 0] = lookup[indexes[x] * 2 + 0]; + dst[x * 2 + 1] = lookup[indexes[x] * 2 + 1]; + } + + dst += width * 2; + indexes += width; + } + + break; + case PDFORMAT_RGB15: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x * 2 + 0] = lookup[indexes[x] * 2] << 1 | (lookup[indexes[x] * 2 + 1] >> 7); + dst[x * 2 + 1] = lookup[indexes[x] * 2 + 1] << 1 | 1; + } + + dst += width * 2; + indexes += width; + } + + break; + case PDFORMAT_IA8: + case PDFORMAT_I8: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + dst[x] = lookup[indexes[x] * 2]; + } + + dst += width; + indexes += width; + } + + break; + case PDFORMAT_IA4: + case PDFORMAT_I4: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x += 2) { + dst[x >> 1] = lookup[indexes[x] * 2] << 4 | lookup[indexes[x + 1] * 2]; + } + + dst += width >> 1; + indexes += width; + } + + break; + } +} + +static void texBlur(uint8_t *pixels, int width, int height, int method, int chansize) +{ + int x; + int y; + + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + int cur = pixels[y * width + x] + chansize * 2; + int left = x > 0 ? pixels[y * width + x - 1] : 0; + int above = y > 0 ? pixels[(y - 1) * width + x] : 0; + int aboveleft = x > 0 && y > 0 ? pixels[(y - 1) * width + x - 1] : 0; + + switch (method) { + case 0: + pixels[y * width + x] = (cur + left) % chansize; + break; + case 1: + pixels[y * width + x] = (cur + above) % chansize; + break; + case 2: + pixels[y * width + x] = (cur + aboveleft) % chansize; + break; + case 3: + pixels[y * width + x] = (cur + (left + above - aboveleft)) % chansize; + break; + case 4: + pixels[y * width + x] = (cur + ((above - aboveleft) / 2 + left)) % chansize; + break; + case 5: + pixels[y * width + x] = (cur + ((left - aboveleft) / 2 + above)) % chansize; + break; + case 6: + pixels[y * width + x] = (cur + ((left + above) / 2)) % chansize; + break; + } + } + } +} + +static void texAlignIndices(uint8_t *src, int width, int height, int format, uint8_t *dst) +{ + int x; + int y; + + if (format == PDFORMAT_RGBA16_CI8 || format == PDFORMAT_IA16_CI8) { + // 1 index per byte -> copy it + memcpy(dst, src, width * height); + } else if (format == PDFORMAT_RGBA16_CI4 || format == PDFORMAT_IA4_CI4) { + // 2 indexes per byte -> convert it to 1 index per byte + for (y = 0; y < height; y++) { + int readside = 0; + + for (x = 0; x < width; x++) { + int value = readside ? src[x / 2] & 0xf : src[x / 2] >> 4; + *dst = value; + dst++; + + readside = 1 - readside; + } + + src += (width + 1) / 2; + } + } +} + +static void texInflateZlib(struct pd_tex *tex, int arg2, int forcenumimages) +{ + uint8_t scratch[0x800]; + int numimages; + int format; + + if (arg2 && forcenumimages) { + numimages = forcenumimages; + } else { + numimages = 1; + } + + format = texReadBits(8); + + tex->numcolours = texReadBits(8) + 1; + tex->palette = malloc(tex->numcolours * 2); + + for (int i = 0; i < tex->numcolours; i++) { + tex->palette[i * 2 + 0] = texReadBits(8); + tex->palette[i * 2 + 1] = texReadBits(8); + } + + for (int i = 0; i < numimages; i++) { + struct pd_image *image = &tex->images[i]; + + image->exists = true; + image->format = format; + image->width = texReadBits(8); + image->height = texReadBits(8); + image->pixels = malloc(image->width * image->height); + + rzipInflate(var800ab540, scratch); + + texAlignIndices(scratch, image->width, image->height, image->format, image->pixels); + texSetBitstring(rzipGetUnused()); + } +} + +static void texInflateNonZlib(struct pd_tex *tex, int arg2, int forcenumimages) +{ + uint8_t scratch[0x20000]; + uint8_t lookup[0x10000]; + int numimages; + int value; + + numimages = arg2 && forcenumimages ? forcenumimages : 1; + + for (int i = 0; i < numimages; i++) { + struct pd_image *image = &tex->images[i]; + + image->exists = true; + image->format = texReadBits(4); + image->width = texReadBits(8); + image->height = texReadBits(8); + image->compression = texReadBits(4); + image->pixels = malloc(image->width * image->height * sizeof(uint32_t)); + + switch (tex->images[i].compression) { + case PDCOMPRESSION_HUFFMAN: + texInflateHuffman(scratch, g_TexFormatNumChannels[image->format] * image->width * image->height, g_TexFormatChannelSizes[image->format]); + + if (g_TexFormatHas1BitAlpha[image->format]) { + texReadAlphaBits(&scratch[image->width * image->height * 3], image->width * image->height); + } + + texChannelsToPixels(scratch, image->width, image->height, image->pixels, image->format); + break; + case PDCOMPRESSION_HUFFMANPERHCHANNEL: + for (int j = 0; j < g_TexFormatNumChannels[image->format]; j++) { + texInflateHuffman(&scratch[image->width * image->height * j], image->width * image->height, g_TexFormatChannelSizes[image->format]); + } + + if (g_TexFormatHas1BitAlpha[image->format]) { + texReadAlphaBits(&scratch[image->width * image->height * 3], image->width * image->height); + } + + texChannelsToPixels(scratch, image->width, image->height, image->pixels, image->format); + break; + case PDCOMPRESSION_RLE: + texInflateRle(scratch, g_TexFormatNumChannels[image->format] * image->width * image->height); + + if (g_TexFormatHas1BitAlpha[image->format]) { + texReadAlphaBits(&scratch[image->width * image->height * 3], image->width * image->height); + } + + texChannelsToPixels(scratch, image->width, image->height, image->pixels, image->format); + break; + case PDCOMPRESSION_LOOKUP: + value = texBuildLookup(lookup, g_TexFormatBitsPerPixel[image->format]); + texInflateLookup(image->width, image->height, image->pixels, lookup, value, image->format); + break; + case PDCOMPRESSION_HUFFMANLOOKUP: + value = texBuildLookup(lookup, g_TexFormatBitsPerPixel[image->format]); + texInflateHuffman(scratch, image->width * image->height, value); + texInflateLookupFromBuffer(scratch, image->width, image->height, image->pixels, lookup, value, image->format); + break; + case PDCOMPRESSION_RLELOOKUP: + value = texBuildLookup(lookup, g_TexFormatBitsPerPixel[image->format]); + texInflateRle(scratch, image->width * image->height); + texInflateLookupFromBuffer(scratch, image->width, image->height, image->pixels, lookup, value, image->format); + break; + case PDCOMPRESSION_HUFFMANBLUR: + value = texReadBits(3); + texInflateHuffman(scratch, g_TexFormatNumChannels[image->format] * image->width * image->height, g_TexFormatChannelSizes[image->format]); + texBlur(scratch, image->width, g_TexFormatNumChannels[image->format] * image->height, value, g_TexFormatChannelSizes[image->format]); + + if (g_TexFormatHas1BitAlpha[image->format]) { + texReadAlphaBits(&scratch[image->width * image->height * 3], image->width * image->height); + } + + texChannelsToPixels(scratch, image->width, image->height, image->pixels, image->format); + break; + case PDCOMPRESSION_RLEBLUR: + value = texReadBits(3); + texInflateRle(scratch, g_TexFormatNumChannels[image->format] * image->width * image->height); + texBlur(scratch, image->width, g_TexFormatNumChannels[image->format] * image->height, value, g_TexFormatChannelSizes[image->format]); + + if (g_TexFormatHas1BitAlpha[image->format]) { + texReadAlphaBits(&scratch[image->width * image->height * 3], image->width * image->height); + } + + texChannelsToPixels(scratch, image->width, image->height, image->pixels, image->format); + break; + } + + if (var800ab548 == 0) { + var800ab540++; + } else { + var800ab548 = 0; + } + } +} + +static void texLoad(struct pd_tex *tex) +{ + int sp14a8 = texReadBits(1); + int iszlib = texReadBits(1); + int lod = texReadBits(6); + + if (iszlib) { + texInflateZlib(tex, sp14a8, lod); + } else { + texInflateNonZlib(tex, sp14a8, lod); + } +} + +int reader_read(FILE *fp, struct pd_tex *tex) +{ + size_t len; + uint8_t *buffer; + + fseek(fp, 0, SEEK_END); + len = ftell(fp); + fseek(fp, 0, SEEK_SET); + + buffer = malloc(len); + + fread(buffer, len, 1, fp); + + texSetBitstring(buffer); + + texLoad(tex); + + pdtex_flip(tex); + + return 1; +} diff --git a/tools/mktex/src/libpdtex/writer.c b/tools/mktex/src/libpdtex/writer.c new file mode 100644 index 00000000..f49c04d0 --- /dev/null +++ b/tools/mktex/src/libpdtex/writer.c @@ -0,0 +1,10 @@ +#include +#include +#include +#include +#include "pdtex.h" + +int writer_write(FILE *fp, struct pd_image *image) +{ + return 0; +} diff --git a/tools/mktex/src/tex2png.c b/tools/mktex/src/tex2png.c new file mode 100644 index 00000000..8760572e --- /dev/null +++ b/tools/mktex/src/tex2png.c @@ -0,0 +1,276 @@ +#include +#include +#include +#include +#include +#include "libpdtex/pdtex.h" + +/** + * tex2png - Convert a PD texture to PNG images. + * + * Each PD texture, herein called a pdtex, can contain up to 7 images at + * different levels of detail (LOD). Each image can use a different pixel format + * and compression algorithm. + * + * tex2png is called with two arguments: + * 1) a path to a single pdtex, which is a binary slice of the PD ROM, and + * 2) a path to a directory where the PNGs will be created. + * + * PNG filenames are generated by combining the original filename with the LOD. + * For example, if the pdtex's basename is foo.bin then the PNG files may be + * named foo-0.png, foo-1.png and so on. If a pdtex doesn't contain an image for + * a particular LOD then no PNG will be created for that LOD. + * + * The N64's pixel formats are more granular than what PNG supports, so pixel + * format are converted where necessary. For example, a pdtex using the 2 byte + * 5/5/5/1 (R/G/B/A) format is converted to regular 4 byte RGBA for PNG. + */ + +static int usage(void) +{ + fprintf(stderr, "Usage: tex2png \n"); + fprintf(stderr, "eg. tex2png 0000.bin pngs/\n"); + + return 1; +} + +/** + * Return a filename for writing a LOD PNG. + * + * eg. if infile is "foo/0000.bin", dir is "pngs" and lod is 6, + * return "pngs/0000-6.png" + */ +static void make_lod_filename(char *infile, char *dir, int lod, char *dst) +{ + char *base = basename(infile); + char *ptr; + + ptr = strrchr(base, '.'); + + if (ptr) { + ptr[0] = '\0'; + } + + snprintf(dst, 1024, "%s/%s-%d.png", dir, base, lod); +} + +static int tex_format_to_png_format(enum pd_format pdformat) +{ + switch (pdformat) { + case PDFORMAT_RGBA32: + case PDFORMAT_RGBA16: + return PNG_FORMAT_RGBA; + case PDFORMAT_RGB24: + case PDFORMAT_RGB15: + return PNG_FORMAT_RGB; + return PNG_FORMAT_RGB; + case PDFORMAT_IA16: + case PDFORMAT_IA8: + case PDFORMAT_IA4: + return PNG_FORMAT_GA; + case PDFORMAT_I8: + case PDFORMAT_I4: + return PNG_FORMAT_GRAY; + case PDFORMAT_RGBA16_CI8: + case PDFORMAT_RGBA16_CI4: + return PNG_FORMAT_RGBA | PNG_FORMAT_FLAG_COLORMAP; + case PDFORMAT_IA16_CI8: + return PNG_FORMAT_GA | PNG_FORMAT_FLAG_COLORMAP; + case PDFORMAT_IA4_CI4: + return PNG_FORMAT_GA | PNG_FORMAT_FLAG_COLORMAP; + } + + fprintf(stderr, "Unrecognised format 0x%02x\n", pdformat); + return 0; +} + +/** + * Convert RGBA 5/5/5/1 to RGBA 8/8/8/8. + */ +static void rgba16_to_rgba32(uint8_t *in, png_bytep out, int numpixels) +{ + int outpos = 0; + int i; + + for (i = 0; i < numpixels; i++) { + uint16_t rgba16 = in[i * 2] << 8 | in[i * 2 + 1]; + uint8_t r = (rgba16 >> 11) & 0x1f; + uint8_t g = (rgba16 >> 6) & 0x1f; + uint8_t b = (rgba16 >> 1) & 0x1f; + out[outpos + 0] = r * 8; + out[outpos + 1] = g * 8; + out[outpos + 2] = b * 8; + out[outpos + 3] = (rgba16 & 1) * 255; + outpos += 4; + } +} + +/** + * Convert RGB 5/5/5 to RGB 8/8/8. + */ +static void rgb15_to_rgb24(uint8_t *in, png_bytep out, int numpixels) +{ + int outpos = 0; + int i; + + for (i = 0; i < numpixels; i++) { + uint16_t rgb15 = in[i * 2] << 8 | in[i * 2 + 1]; + uint8_t r = (rgb15 >> 11) & 0x1f; + uint8_t g = (rgb15 >> 6) & 0x1f; + uint8_t b = (rgb15 >> 1) & 0x1f; + out[outpos + 0] = r * 8; + out[outpos + 1] = g * 8; + out[outpos + 2] = b * 8; + outpos += 3; + } +} + +/** + * Convert IA 4/4 to IA 8/8. + */ +static void ia8_to_ia16(uint8_t *in, png_bytep out, int numpixels) +{ + int outpos = 0; + int i; + + for (i = 0; i < numpixels; i++) { + out[outpos + 0] = ((in[i] >> 4) & 0xf) * 16; + out[outpos + 1] = (in[i] & 0xf) * 16; + outpos += 2; + } +} + +/** + * Convert IA 3/1 to IA 8/8. + */ +static void ia4_to_ia16(uint8_t *in, png_bytep out, int numpixels) +{ + int outpos = 0; + int i; + + for (i = 0; i < (numpixels + 1) / 2; i++) { + out[outpos + 0] = ((in[i] >> 1) & 7) * 32; + out[outpos + 1] = (in[i] & 1) * 255; + outpos += 2; + } +} + +/** + * Convert I 4 to I 8. + */ +static void i4_to_i8(uint8_t *in, png_bytep out, int numpixels) +{ + int i; + + for (i = 0; i < numpixels; i++) { + out[i] = in[i] * 16; + } +} + +/** + * Convert a pdtex image to PNG and write it to disk. + * + * To do this, build the PNG using libpng and convert the pixel data into a + * format that's supported by PNG. + */ +static bool write_image(struct pd_image *image, struct pd_tex *tex, char *outfile) +{ + png_image png; + png_bytep buffer; + uint8_t *palette = NULL; + + memset(&png, 0, sizeof(png)); + + png.version = PNG_IMAGE_VERSION; + png.width = image->width; + png.height = image->height; + png.format = tex_format_to_png_format(image->format); + + if (png.format | PNG_FORMAT_FLAG_COLORMAP) { + png.colormap_entries = tex->numcolours; + palette = malloc(PNG_IMAGE_COLORMAP_SIZE(png)); + } + + buffer = malloc(PNG_IMAGE_SIZE(png)); + + if (!buffer) { + fprintf(stderr, "Unable to allocate memory for PNG buffer\n"); + return false; + } + + switch (image->format) { + case PDFORMAT_RGBA16: + rgba16_to_rgba32(image->pixels, buffer, image->width * image->height); + break; + case PDFORMAT_RGB15: + rgb15_to_rgb24(image->pixels, buffer, image->width * image->height); + break; + case PDFORMAT_IA8: + ia8_to_ia16(image->pixels, buffer, image->width * image->height); + break; + case PDFORMAT_IA4: + ia4_to_ia16(image->pixels, buffer, image->width * image->height); + break; + case PDFORMAT_I4: + i4_to_i8(image->pixels, buffer, image->width * image->height); + break; + case PDFORMAT_RGBA16_CI8: + rgba16_to_rgba32(tex->palette, palette, tex->numcolours); + memcpy(buffer, image->pixels, PNG_IMAGE_SIZE(png)); + break; + case PDFORMAT_RGBA16_CI4: + rgba16_to_rgba32(tex->palette, palette, tex->numcolours); + memcpy(buffer, image->pixels, PNG_IMAGE_SIZE(png)); + break; + case PDFORMAT_IA16_CI8: + memcpy(palette, tex->palette, tex->numcolours * 2); + memcpy(buffer, image->pixels, PNG_IMAGE_SIZE(png)); + break; + case PDFORMAT_IA4_CI4: + ia8_to_ia16(tex->palette, palette, tex->numcolours); + memcpy(buffer, image->pixels, PNG_IMAGE_SIZE(png)); + break; + default: + memcpy(buffer, image->pixels, PNG_IMAGE_SIZE(png)); + break; + } + + if (!png_image_write_to_file(&png, outfile, 0, buffer, 0, palette)) { + fprintf(stderr, "Unable to write PNG to '%s': %s\n", outfile, png.message); + return false; + } + + return true; +} + +int main(int argc, char **argv) +{ + if (argc != 3) { + return usage(); + } + + struct pd_tex *tex = pdtex_allocate(); + + if (!tex) { + fprintf(stderr, "Unable to allocate memory for texture\n"); + return 1; + } + + if (pdtex_read(tex, argv[1]) != 0) { + fprintf(stderr, "Unable to read texture at '%s'\n", argv[1]); + return 1; + } + + for (int i = 0; i < PDTEX_MAX_IMAGES; i++) { + if (tex->images[i].exists) { + char filename[1024]; + make_lod_filename(argv[1], argv[2], i, filename); + + if (!write_image(&tex->images[i], tex, filename)) { + return 1; + } + } + } + + return 0; +}